推荐系统经验

作者: Liam_ml | 来源:发表于2018-12-11 22:51 被阅读10次
    1. 隐式反馈比显式反馈

    显示反馈指的是行为就是表明态度,兴趣,比如点赞,评论,投票。
    就是用户发出这些行为时并不是为了表达兴趣/态度,只是在正常行为。

    • 隐式数据更加稠密
    • 隐式数据更能反应用户的真实意向
    1. 理解数据

    目标,问题往往需要依靠人去定义,这样的话,需要很了解数据背后的业务,数据的含义。

    1. 为模型定义好学习任务
    • 是用什么数据
    • 怎么定义目标
    • 如何衡量结果
    1. 注意可解释性

    这里其实就是说推荐要展示出理由给用户,让用户知道每一项推荐的项目是怎么得到的。

    比如Quora的feed推荐给出的“被你关注的人投票”的理由:

    比如Quora给出的推荐话题给出的“被你关注的人关注”的理由:

    比如Netflix给出的“因为看过给出好评的电影而推荐”的理由:

    1. 利用矩阵分解

    Xavier Amatriain很推崇Matrix Factorization,因为它既有监督学习,又有无监督学习。

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

    它可以用来降维,这部分通常是PCA这样的无监督学习算法承担的,矩阵分解得到的隐因子就是降维后的特征,可以直接作为其他学习算法的输入;

    它还可以做聚类,比如Non-negative Matrix Factorization就常常用来做聚类;

    SVD就是一种回归,标准的监督学习。

    矩阵分解还有一些变种:ALS(交替最小二乘),SVD++(结合特征的SVD),FM(因子机),TF(张量分解)。

    总之,在推荐系统里,使劲压榨矩阵分解的效果。

    1. 利用集成模型

    Netflix的冠军模型,那可是100多种算法集成在一起的,真是应了那句话:比你效果好的模型还比你更努力。

    实际上任何推荐系统也不可能是单一算法在起作用,而是多种算法集成在一起。集成方法理论上不会比你其中那个最好的算法差。在推荐系统中,你至少可以集成基于内容推荐和协同过滤两种。

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

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

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

    1. 做好特征工程
    • 复用性
    • 可解释性
    • 可靠性
      Xavier以Quora的答案排序为例,举了一些他们现在用到的特征算是好特征:

    一个是答案本身的特征,如回答的质量;第二个是互动类型的特征,如投票,评论;还有用户特征,如他在某个话题下的专业程度。

    深度学习给了另一种全新的特征工程之路,也是值得探索的,或许是人工特征工程的终结者,拭目以待。

    相关文章

      网友评论

        本文标题:推荐系统经验

        本文链接:https://www.haomeiwen.com/subject/uieyhqtx.html