推荐系统实战2

转移

用户的行为分为显性行为和硬性行为。前者明确的表现用户对于物品的喜好,后者则不能明确表现。前者是诸如评分,喜欢不喜欢。很多网站都只有隐性行为。对比来看,前者明确传达用户兴趣,通常数量少,正负反馈均有,后者不能明确传达,数量庞大,只有正反馈。

新用户热衷于浏览热门的物品,老用户热衷于冷门的物品。


基于用户的协同过滤算法,两个步骤:找到和目标用户兴趣相似的用户集合,找到集合中用户喜欢且目标用户没有听说过的物品推荐给用户。首先需要计算用户相似度。用户对冷门物品采取行为更能说明他们兴趣的相似度。如几乎所有人都购买过新华字典,但是购买数据挖掘导论的人显然兴趣更加相似。对通用物品权值可考虑进行处理。(相似用户集合,单个相似用户)

基于物品的协同过滤算法,目前业界使用最多的算法。物品A和物品B相似度是因为喜欢物品A的用户大都喜欢物品B。两个步骤,计算物品之间的相似度,根据物品的相似度和用户的历史行为为用户生成推荐列表。同上理论,对于热门物品的权重加一定的惩罚因素。同时,活跃用户对于物品的相似度的贡献要小于不活跃用户。

UserCF推荐着重于反映用户兴趣相似的小群体热点。而ItemCF着重于维系用户历史兴趣。前者更加社交化,反映用户所在的小兴趣群体中物品的热门程度,后者更加个性化,对用户兴趣的延伸。


冷启动问题分三类:

用户冷启动,新用户如何个性化推荐。物品冷启动,新的物品怎样传递到它感兴趣的用户。系统冷启动,新的系统的启动。

热度分 = 初始热度分 + 用户交互产生的热度分 – 随时间衰减的热度分

Score = S0 + S(Users) – S(Time)

初始热度不应该相同,让用户关注度高的类别获得更高的初始热度分,从而获得更多的曝光。对于重大事件的报道,如何让它入库时就有更高的热度,我们采用的是热词匹配的方式。

例如对于单条新闻,用户可以点击阅读(click),收藏(favor),分享(share),评论(comment)这四种行为,我们为不同的行为赋予分数,就能得到新闻的实时用户行为分为:

S(Users) = 1*click + 5*favor + 10*comment + 20*share

这里对不同行为赋予的分数为1,5,10,20,但这个值不能是一成不变的;当用户规模小的时候,各项事件都小,此时需要提高每个事件的行为分来提升用户行为的影响力;当用户规模变大时,行为分也应该慢慢降低,因此做内容运营时,应该对行为分不断调整。

当然也有偷懒的办法,那就是把用户规模考虑进去,算固定用户数的行为分,即:

S(Users) = (1*click + 5*favor + 10*comment + 20*share)/ DAU * N(固定数)

这样就保证了在不同用户规模下,用户行为产生的行为分基本稳定。

对于冷启动问题,1、可以先提供非个性化推荐,提供热门排行榜。2、社交账号授权。3、登录时询问用户对物品的反馈。4、根据用户性别年龄等信息做初步推荐。

对于新加入的物品,利用专家知识,直接赋值,然后数据反馈修正。

用户的注册信息分为三种,人口统计学信息(年龄性别职业民族学历等),用户兴趣描述询问,其他网站数据。

利用人口统计学特征再进一步结合热门排行榜进行推荐。推荐数据可离线。如性别-关联电视剧表,年龄-关联电视剧表,职业-关联电视剧表。根据相关表查询时又可根据权重相互叠加给出推荐列表。利用用户的人口统计学特征越多,越能准确的预测用户兴趣。

询问用户兴趣的方式,即用户第一个访问推荐系统的时候,给用户提供典型物品,让用户反馈是否喜欢,根据用户的初期反馈作为推荐冷启动数据。一般而言推荐的物品1需要比较热门,太冷门用户不知道内容无法做出准确反馈;2具有代表性和区分性,不能是大众化的;3具有多样性,涵盖主流的元素。


一种内容过滤(另一种是协同过滤)算法:利用物品的内容建立空间向量模型,如一个电影,内容有导演演员等将实体作为标签,如果是文本内容就需要引入理解自然语言的技术抽取关键词。对于中文,将文本进行分词,将字流转换为词流,然后从词流中检测出实体(如人名地名),然后对关键词进行排名计算权重,生成关键词向量。物品如果是电影,根据演员在剧中的重要程度赋予权重。虽然丢失了一些信息,如关键词之间的关联,但是对于绝大部分已经足够提供满意的结果。给定向量以后可以计算两个物品的余弦夹角。

内容过滤算法,在覆盖率上优秀,但是忽略了用户行为,从而忽略了用户行为所包含的规律,因此精度较低,但是新颖度高。当然有时候用户的行为强烈的受某一个属性影响,使用内容过滤优于协同过滤。

物品冷启动,发挥专家的作用。潘多拉,国外的个性化音乐电台产品,歌最多有400个特征,潘多拉称特征为基因,建立400维的坐标,通过向量相似度计算歌曲相似度。


推荐系统的目的是联系用户的兴趣和物品,这种联系需要不同的媒介。

标签是一种无层次结构,用来描述信息的关键词。根据给物品打标签的人,标签应用分为两种,作者和专家打,再就是用户自己打UGC。让用户去描述定义标签显然是比较重的方式,只对特殊的产品有用。有一种有意思的做法,专家打标签,分发给用户的时候让用户点击是否某标签符合物品。

基于标签的推荐是具有多样性的,同时提供了推荐理由。推荐理由首先让用户觉得标签云是有意义的,然后觉得从某个标签推荐某种物品是有意义的。就推荐理由而言,客观类标签优于主观类标签。

你可能感兴趣的:(推荐系统实战2)