推荐系统与应用随记

栏目: 数据库 · 发布时间: 6年前

内容简介:用户画像刻画一些用户维度的信息,例如这个人的学历,经济收入状况等等,以后无论是用户推荐,分类,排序,都会有用户画像的相关应用。均方误差(MSE) 均方根误差(RMSE)对式子除以T,使得其与测试样本T无关。得到用户在每个物品上平均的一个差异度。

用户画像刻画一些用户维度的信息,例如这个人的学历,经济收入状况等等,以后无论是用户推荐,分类,排序,都会有用户画像的相关应用。

推荐系统与应用随记

均方误差(MSE) 均方根误差(RMSE)

对式子除以T,使得其与测试样本T无关。得到用户在每个物品上平均的一个差异度。

你能拿到用户对商品的一个评分,例如:一颗星,两颗星或者直接的一个分数值。

推荐系统与应用随记

用户有没有点,以及用户在这个页面的停留时间,视频看没看等等,有这么个是与否的用户行为在,根据这些行为也是可以建立准确度的评判标准。

提升准确率可以减少topN的量,可以只推荐一篇或者两篇,这样可以很好的拟合用户的兴趣,它很有可能会点。问题是用户如果还想看这两篇以外的呢,那其他的就没有召回来。所以准确率和召回率这两项是互相影响的。好的推荐要尽量的使得这两项有个比较好的结果。另外 推荐系统对precision的要求更高一些。

ROC AUC

推荐系统与应用随记

I代表全部商品的量。所有推荐的商品 覆盖了全部商品的多少。

从信息论的角度来看就是:1000w的商品中,每个商品被推荐的次数除以总次数。

如果电商有1000w的商品,你推荐的商品只覆盖了其中20w,那这推荐就是有问题的。

推荐系统与应用随记

1/2|R(u)|(|R(u)-1|)表示从推荐列表中任意取两个的可能取法。除以它表示任意两个的平均相似度。 1-平均相似度表示任意两个的平均差异度。差异度就是多样性有多高。

s(i,j)的计算方法,例如:在电商的体系当中,他会有类目这个属性,建立的向量中也会包含这个分类属性。如果两个商品品类不同的话,可以把相似度设置为0

推荐系统与应用随记

新颖度和惊喜度这两个标准不太好评定,需要通过用户反馈和调研来获取。

推荐系统一般推荐的是热门信息,大部分用户都是趋同的

基于内容的推荐

推荐系统与应用随记

对每一份资料建立向量,对每个要推荐的内容(item)进行挖掘,每个item都是一个向量,假设有4000个词的词表,每个词在item向量中会占据一个固定的位置,如果这个词在这个文档中出现过,我们就会去计算这个词在文档中的重要程度,然后把重要程度填在相应的位置,每个文档都会产生一个向量。

对用户也建立一份相应的资料,资料的建法是 用户之前总会阅读过一些资料,那么这些看过的资料应该也会有向量,即4000个词对应相应程度的向量。然后对这些看过的资料向量做一个平均或者加权平均。或者是将这些资料的向量先揉在一块建立一个向量。

用用户的向量和文档的向量去求一个相似度。通常用用户的向量和那些用户没有看过的文档资料进行比对,挑出来一些比较接近的文档。

协同过滤

协同过滤一种基于近邻的算法,意思是我需要去找到和我最接近的邻居,根据这些邻居来做决策。

推荐系统与应用随记

1.基于近邻去做综合的判定。

2.近邻怎么找?依托于用户在共同商品上的行为,即A,B用户在a,b,c,d,e 5个商品上的得分,去判定这两个用户之间是不是近邻,如果是近邻 那么他们有多近。

推荐系统与应用随记

找近邻?现在有商品a,b 用户A,B,C,D,E 用户分别对商品a,b都有一个打分。基于各自用户对商品的打分向量来计算商品的相似度。

相似度/距离定义

推荐系统与应用随记

Jaccard相似度一般用于TopN推荐,要么用户看了要么没看。

基于物品的协同过滤

推荐系统与应用随记

R_xi预测用户x对商品i的评分。

通过计算找回来了最接近的五个物品I(i1,i2,i3,i4,i5)

推荐系统与应用随记

1号电影如果要推荐给5号用户,预测1号电影推荐给5号用户的得分。

推荐系统与应用随记

这里的权重(用户的打分)取的是TopN的权重,没有把所有的电影拿过来,原因是在电商的体系当中,如果你要推荐商品,电商总共的商品也许有上千万,那这个时候如果每一个商品都拿来比对,显然是不可行的,所以我们只会取TopN这一部分,比如上图只取了3号和5号两部电影,评估一下把1号电影推荐给5号用户会得多少分!!

基于用户的协同过滤

推荐系统与应用随记

预测用户i对商品j的评分Vi,j

大K表示归一化因子,用来做加权平均。

推荐系统与应用随记

基于用户的是求列向量之间的相识度。计算每一列和5号列的相识度,取出其中的TopN,假设3号和11号和他是最接近的,求相识度时建议用皮尔森来求。

注意:公式比较粗略,可以参考: www.cnblogs.com/zhangchaoya…

UserCF vs ItemCF

推荐系统与应用随记

对于买过,推荐结果集中又包含的同类商品,推荐模型本身是不能帮你处理的,需要自己根据得到的结果集进行处理。

CF的优缺点

推荐系统与应用随记

冷启动问题

推荐系统与应用随记

隐语义模型

推荐系统与应用随记

用户对某些电影打分高,一般是基于某些因素去做的,例如:演员,主题等等。

对电影做打分,好或者不好,一般是某些因素在的。

假设打分取决于3个因素,那我们就来看看,用户和这3个因素的关联,以及电影和这三个因素的关联,这就是所谓的矩阵分解。

推荐系统与应用随记

矩阵分解的物理意义,可以这么理解,M*N的矩阵可以看成是M*F的矩阵和F*N的矩阵相乘(M*N=M*F * F*N)。是这N个用户对这F个隐层因素上的值或者得分,以及这M个商品对这F个隐层因素上的值或者得分之间做一个关联 决定了他最后的得分。

推荐系统与应用随记

用户和隐层的关联与商品和隐层的关联,做乘法的意思就是看看这关联一不一致,不一致的话它就是负向的(负的得分),一致的话他就是一个正向的(正的得分)。

因素怎么判别?矩阵分解!

推荐系统与应用随记

SVD分解在这种场景下不一定合适,第一它的时间复杂度太高,第二因为有些位置是空的(没有得分),它会在这个位置填上一个零,但这是你人为的填充,当你分解后还原回来的时候,这个位置的值依然很小,达不到我们对缺省位置填充值的这么一个作用。

SVD对于有缺省的值,因为你必须要在这个缺省的位置填上一个分数,你又没有东西可以填,很多时候你会给他一个零,但在给零的情况下,就相当于你人为的给了他一个分数,所以他在把这个矩阵还原回来的时候,这个缺省值的位置依据会趋于零,这个方式是不合理的。

推荐系统与应用随记

如果要用矩阵分解,又不想受到没有得分位置的影响,怎么办?办法是假设现在有个U个用户,D个item,我想要找到K个关联因子,让已经有得分的位置尽量的接近,没有分数的位置不管它。

推荐系统与应用随记
r_ij:第i个用户对j个商品的评分,依据我分解出来的矩阵做预测,他的得分会是多少呢?得分是通过两个向量的内积得到的,例如上面图中的[1,-2,0]*[-1,4,2]=5。 我们让预测出来的得分和相应位置已经有得分位置的值最接近。
推荐系统与应用随记
第一个因子对最后的推荐贡献了多少,第二个因子对最后的推荐贡献了多,第三个因子对最后的推荐贡献了多,把所有的这些因子的贡献加在一块就是最后的推荐值。每个用户都会有一个平均打分, 每部电影大家打他也会有一个平均打分, 所有人在所有电影上的得分也会有一个均值。 这三个均值也会影响最后的结果。我想把这3个均值也加到公式中最后的影响因素里头。

Time表示前面我们指的context上下文。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Essential PHP Security

Essential PHP Security

Chris Shiflett / O'Reilly Media / 2005-10-13 / USD 29.95

Being highly flexible in building dynamic, database-driven web applications makes the PHP programming language one of the most popular web development tools in use today. It also works beautifully wit......一起来看看 《Essential PHP Security》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具