美文网首页
1.推荐算法串讲

1.推荐算法串讲

作者: 艾特大圣 | 来源:发表于2016-11-21 12:40 被阅读0次

    推荐算法

    1、 基于内容的推荐

    2、 基于近邻的推荐(协同过滤)

    3、 基于矩阵分解的隐语义模型(LFM,FM,FFM)

    4、 word2vec在推荐中的应用


    基于内容的推荐

    常用于和文本有关的推荐。比如新闻推荐,电影推荐。

    具体做法

    对用户来说,他看过哪些新闻,电影,这些新闻电影会有一些关键词。用这些关键词可以构建一个向量描述这个用户。Wij代表第i个词对用户j的重要度。

    对新闻、电影来说,也是有一些关键字,或用tfidf去统计。总之也是得到个向量。

    然后就可以用相似度了。比如夹角余弦。

    在聚类中我们说余弦值不容易收敛,那是因为聚类是要做多次迭代的,我们这里没有迭代所以可放心使用。

    而具体做法可以把每个文档向量化,比如tfidt,向量维度是一个个单词,值是单词的tfidf值。

    对于用户,可以把它过去看过的那些文档拿过来(可以有时间衰减),综合出一个向量代表这个人。


    基于近邻的算法

    knn,ann,协同过滤,都是基于近邻的一种,协同过滤是其中最有名的。

    协同过滤算法是基于 物品——用户 矩阵工作的。行是物品,列是用户。每个元素是用户对物品的打分。

    定义物品间相似度时,最简单直接的方法使用用户交集。jaccard相似度就可以干这个。

    基于物品的协同是怎么做的呢,对用户A推存电影,脑补下面过程:

    共6部电影,他看了4部,剩下2部没看——我们要做的就是根据他对另4个电影的评分,估计出他会对这2个的打分。是体做法

    对电影1

    计算那4部电影和它的相似度,用皮尔森相似度。

    每一行是一个电影的所有用户评分,把这一行中心化。(在行的级别做中心化)

    这4+A都做了中心化后,计算相似度,有了4个数字。假设我们是按照top 2 的规则来做推荐,也就是根据两个最接近的物品做推荐。所以,从这四个相似度中,选择最大的两个。

    把这2个相似度做权值,用户A对这2个电影的评分做加权平均得到估计的评分。

    其它个电影都这么做一遍,得到2个估计评分,排序后推荐。

    计算中注意细节

    用户没评分的电影不参与相似度的计算。也就是不参的最后的加权平均

    估计出来评分也不参与后续估分什算。因为本来就是估计的。

    优点

    无需任何先验知识,结构简单

    缺点

    不考虑环境上下文

    没有包含物品相似信息:由于完全基于用户行为计算的物品相以度。假设两个商家的两个完全一样的物品,除非有相同的用户行为,否则是得不到相似的。解决办法,引入基于内容的推荐,多个推荐组。再学习排序。


    隐语义模型(LFM)

    http://www.cnblogs.com/hxsyl/p/4881685.html

    用矩阵分解的思想去完成矩阵填空。但不能甲svd去做,原因有2

    1、 时间复杂度是立方级别的

    2、 矩阵中是有很多缺失值的,不能用0简单填充。所以用的是建立方程组的方式,定义损失丞数,梯度下降。加上正则项,并约定都是正数,非负矩阵分解。

    netflix的进一步优化,加上了物品偏置项,用户偏置项,平均偏执项(时间因素),这么三个偏置项。其思想和线性回归中的加上偏置项,避免所有回归线都只能通过原点一样。

    所以最后的数学模型多了三项。总之就是引入了更多能体现个性化的项。比如有的人就是偏激,就是打分低,有的就是慷慨,一律高分。有的电影就是垃圾,有的就是精品。群体在不同时段平均表现就不一样,比如双11全民疯狂。这就是三个偏置项的作用。

    见netflix的效果对比。


    wordtovec在推荐中的巧妙应用

    可看作是基于上下文推荐

    覆盖率比协同过滤高,即召回更多商品

    把用户行为序列当做一个个单词去学习。

    wtv是基于窗口学习的,它能学到男-女=国王-女王,能学到中国=美国,北京=纽约这样的知识。

    这是一个典型的跨界巧妙应用。

    相关文章

      网友评论

          本文标题:1.推荐算法串讲

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