您的位置:首页 > 其它

从工业角度谈推荐系统的过去、现在和未来(三)

2017-03-26 11:19 615 查看

四. 经验教训

1. Implicit vs explicit

一般都认为隐性信息更有用,真的更有用吗?如果是,为什么呢?

(1)隐性信息一般具有以下特点:

。。1.更稠密dense,并且所有用户的都能得到。诚然,评分数据总体来说是很稀疏的,之前netflix的百万美元挑战赛给出的数据稀疏度大概是1.2%,毕竟评分数据是要消耗更多注意力的数据。

。。2. 能更好的表示用户的行为和真实的想法。比如你不是很赞成川普的观点,但是还是想经常看到他的内容(以便吐槽他),这是显式反馈无法捕捉的。而人们在Quora上投出一些赞成票也许只是为了鼓励一下作者,或者表达一些作者的同情,甚至只是因为政治正确而投,实际上对内容很难说真正感兴趣。

。。3. 与最终的目标函数联系更紧密

。。4. 与 A/B test 结果更相关

上面3和4th,比如CTR预估当然关注的是点击这个隐式反馈。

例如:rating vs watching,在IMDB的电影排名中,对比一下用票房排名和用评分排名,票房其实是一种隐式反馈的量化,表示“看过”,而评分则是显式反馈。

然而:隐性反馈通常在刻画长时记忆时表现得不好,例如:clickbait(点击诱饵)。隐式反馈有个比较大的问题就是:短视。现在有很多手段来吸引用户点击,比如高亮的标题,还有一些“三俗”的图片,都会吸引用户点击,这种利用了人性弱点的隐式反馈,对平台的长期价值是有损的,所以也不能一味使用隐式反馈,而是需要隐式反馈和显式反馈结合使用,兼顾短期利益和长期价值。

解决:在表示long-term goal时 集合多种Implicit 和 explicit信息。

2. Be thoughtful about your training data 深刻地理解数据,并且仔细深入地理解业务需求,明确什么样子的数据才是我们真正需要的。

Xavier Amatriain举了个例子,训练一个分类器,用来自动识别优质答案或劣质答案。这个问题似乎很简单,实际上你要思考,下面这些答案是好的还是不好的:

抖机灵的答案 某个领域的网红给了个很短的答案 很长、很有料的答案,但是没有人点赞内容有料,但是错别字多。

这些都是需要我们去深入业务理解,到底什么样的数据才是我们要找的。

3. Your model will learn what you teach it to learn,所以要为模型定义好学习任务。

一个机器学习模型有三个因素构成:

训练数据(隐式反馈或者显式反馈)
目标函数(比如用户阅读一篇回答的概率)
衡量指标(比如准确率或者召回率)


例子1:假如现在有这么一个问题:用用户的购物历史以及历史评分,去优化用户走进电影院看完一部电影并且给出高分的概率,NDCG作为模型的评价指标,4分以上作为正样本。

这样就比较清晰的定义了学习任务的三元素:

训练数据:用户购物历史和历史评分
目标函数:用户走进电影院看完电影且给出高分的概率
衡量指标:NDCG


如果定义评价指标时模糊不清,如不说明是4分以上的作为正样本的话,就失去了显式反馈的信息,失去了对平台长期利益的关注。

例子2:还有个例子,Quora的兴趣feed排序。

Quora的首页是结合了多个用户隐式反馈的排序模型,给每一种用户行为建立一个预测模型,预测它发生的概率,结合每一种行为带来的长期价值大小,然后加权,即期望价值。这个例子里面的三元素也可定义清楚:

训练数据:用户的显式反馈和隐式反馈

目标函数:一个story的展示价值,量化定义为用户行为的期望价值

衡量指标:任何排序模型指标都可以

4. 推荐可解释比精准更有意义

5. Learn to deal with presentation bias

例如用户是视觉偏好页面左面从上到下的地方。

Better options:引入注意力模型或者是E&E方法(如 MAB)

所以说,用户界面非常重要,因为UI—Algorithm–UI,UI产生的用户反馈是算法的输入,而算法的输出又会展示在UI街面上。

6. 矩阵分解大法好,Xavier Amatriain很推崇Matrix Factorization,因为它既有监督学习,又有无监督学习。

两种学习方法就这样结合在一个算法里:

它可以用来降维,这部分通常是PCA这样的无监督学习算法承担的,矩阵分解得到的隐因子就是降维后的特征,可以直接作为其他学习算法的输入;
它还可以做聚类,比如Non-negative Matrix Factorization就常常用来做聚类;
SVD就是一种回归,标准的监督学习。
矩阵分解还有一些变种:ALS(交替最小二乘),SVD++(结合特征的SVD),FM(因子机),TF(张量分解)。


7. 万能的集成方法

本质上,集成算法是把某个模型的输出变成另一个模型的特征。如果你很难决策到底用哪个算法时,千万不要纠结,所有的都用,然后集成之。

集成还有一个好处就是:某个推荐算法可能更适合某个场景下,这样被集成的算法就可以各自handle各自擅长的场景,最后集大成。

具体集成方法可选的很多,如logistic regression,GBDT,Random Forest,ANN。

8. 特征工程,虽然深度学习的大火让某些领域的机器学习应用更加端到端了,但是推荐系统这个王国里面,特征工程还是要谈一谈, 好的特征有以下特点:

可复用。可复用就是说不止一个模型可以用,换个模型一样用。

可转换。特征是既可以直接使用,也可以进行一些尺度转换的,比如对数转换等。

可解释。特征的物理意义需要很清楚。

可靠。特征出现异常的话需要能及时监控到,也要容易调试。

Xavier以Quora的答案排序为例,举了一些他们现在用到的特征算是好特征: 一个是答案本身的特征,如回答的质量;第二个是互动类型的特征,如投票,评论;还有用户特征,如他在某个话题下的专业程度。 深度学习给了另一种全新的特征工程之路,也是值得探索的,或许是人工特征工程的终结者,拭目以待。


**9. 对你的推荐系统要了如执掌,**Xavier 提到在Quora内部就有个工具,可以看到某个人的首页feed的每一个内容的分数,以及每个分数计算所依赖的特征,这样就很清楚知道为什么你“看到/没看到”某个人的回答或问题。

10. 数据和模型是重要,但正确的演进路径更不容忽视。



此处上面的步骤中有几个难点,详见: 推荐系统老司机的十条经验

五、未来方向

**1. 间接的反馈**indirct feedback

挑战:
用户只能点击我们show的items,但是这些items都是我们的model认为应该被推荐的。没有counterfactual(与事实相反的量)??
隐式反馈数据并没有真的“negatives”


potential解决方案:
注意力模型
Context 也是间接的/隐式的反馈
E&E 方法和learning across time
。。。


2. Value-aware recommendations

推荐系统优化的是发生某个行为的概率
不同的点击/行为有不同的“reward”
Different margin in ecommerce
Different "quality" Of content
Long-term retenti on VS. short-term cl icks (clickbait)

In Quora,向用户推荐一个item的概率用的是各种行为的加权和。
value-aware recommendations 的极端应用:
suggest items to create that have the highest value
Netflix : Which shows to produce or license


Quora: Answers and questions that are not in the service

3. 整体页面优化

举个例子:



4.其他:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: