内容简介:用户画像刻画一些用户维度的信息,例如这个人的学历,经济收入状况等等,以后无论是用户推荐,分类,排序,都会有用户画像的相关应用。均方误差(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上下文。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
互联网+秋叶课堂:我的网课创业
秋叶 / 北京:机械工业出版社 / 2016-3-1 / 39.0
在线教育被很多人视为 “互联网+”创业热潮中的下一个风口,越来越多的老师和创业者选择在线教育创业。本书作者秋叶老师2013年双11正式带一帮小伙伴开始在线教育创业,在短短两年内“从0到1”,累计做到了超500万元的销售业绩,成为国内Office领域在线教育运营最成功的团队之一。在这本书中秋叶老师结合自己的实战经历,向各位完整剖析了两年创业的真实复盘思考,是一本值得在线教育创业同行入手的必读书。 ......一起来看看 《互联网+秋叶课堂:我的网课创业》 这本书的介绍吧!