一、书籍介绍
《推荐系统实践》项亮编著,陈义、王益审校,人民邮电出版社。
本篇读书笔记主要针对该书的第二章内容。
二、结构概览
利用用户数据书籍结构三、主要内容
推荐结果是否好,取决于我们是否深入用户。我们可以通过用户留下的文字和行为了解用户兴趣和需求。有两种方法了解用户兴趣,第一,用户在注册的时候主动告诉我们喜欢什么,但是存在一定的缺点a)是否能理解用户的描述语言;b)兴趣的不断变化无法知晓;c)用户是否可以准确描述自己的兴趣。第二,利用算法自动挖掘用户行为数据,推测出用户喜欢什么。
用户行为本身是蕴含一定规律的,算法就是要通过计算机去发现这些数据中蕴含着的规律,从而为产品设计提供指导,提高用户体验。
1. 用户行为数据简介
用户行为一般在个性化推荐系统中分为两种:
1)显性反馈行为:明确表示对物品喜好(如有些网站的评分、喜欢不喜欢等)
2)隐性反馈行为:明确表示对物品喜好(如页面浏览行为)-数据量大
按照反馈方向还可以分为正反馈和负反馈。在隐性反馈行为中较难区分正负反馈。
2.用户行为分析
通过去了解用户行为数据的规律去对算法设计起指导作用。
(1)用户活跃度和物品流行度的分布
用户行为数据同时也满足长尾分布的规律,即物品流行度和用户活跃度均满足长尾分布。(物品流行度指对物品产生过行为的用户总数。用户活跃度指用户产生过行为的物品总数。)用公式表达即:
fi(k)为被k个用户产生过行为的物品数;fu(k)为对k个物品产生过行为的用户数。(2)用户活跃度和物品流行度的关系
a)新用户会倾向于阅读热门物品。用户越活跃,越倾向于浏览冷门物品。
b)基于用户行为数据设计的推荐算法一般称为协同过滤算法。后面将详细介绍各种算法。
3. 基于邻域的算法
(1)基于用户的协同过滤算法(UserCF)
-基础算法
定义:当一个用户A需要个性化推荐时,可以先找到和他相似兴趣的其他用户,然后把那些用户喜欢的、而用户A没有听说过的物品推荐给A。
步骤:1⃣️找到和目标用户兴趣相似的用户集合;2⃣️找到这个集合中用户喜欢的,且目标用户没有听说过的物品推荐给目标用户。
公式表达如下:
1⃣️计算用户兴趣相似度
jaccard公式 余弦相似度代码实现:可以先计算出交集不为0的用户集合。
2⃣️推荐和他兴趣相似的K个用户喜欢的物品
用户u对物品i的感兴趣程度;s(u,k)包含和用户u兴趣最接近的k个用户,N(i)时对物品i有过行为的用户集合,Wuv是用户u和用户v的兴趣相似度,r代表用户v对物品i的兴趣*K个和他兴趣相似用户的选取是UserCF算法中的重要参数。K值和准确率召回率无线性关系,选择合适的K对于获得高的推荐系统精度比较重要。K越大,推荐结果越热门。K越大覆盖率越低。
-用户相似度计算的改进
问题1:对热门物品,很多用户都可能会有相似行为(比如可能所有人都会买新华字典,但不代表他们兴趣相似)
解决方案:惩罚用户共同兴趣列表中热门物品对他们相似度的影响。
(2)基于物品的协同过滤算法(ItemCF)
典型运用:亚马逊、YouTube
-基础算法
定义:给用户推荐那些和他们之前喜欢的物品相似的物品。(注意:ItemCF算法并不利用物品的内容属性计算物品之间的相似度,它主要通过分析用户的行为计算物品之间的相似度。例如物品A和B有很大相似度是因为喜欢物品A的用户大都也喜欢物品相似度)
步骤:1⃣️计算物品之间的相似度。2⃣️根据物品的相似度和用户的历史行为给用户生成推荐列表。
步骤1⃣️公式:
喜欢物品i的用户中有多少比例的用户也喜欢物品j公式优化:任何物品都会和热门的物品有很大的相似度。
惩罚物品j的权重实现:建立用户-物品倒排表——C矩阵——余弦相似度矩阵
步骤2⃣️
公式:
用户u对物品j的兴趣*精度也是和K无线性关系,随着K增加,结果流行度会逐渐提高,但当K增加到一定程度,流行度就不会再有明显变化。K增加会降低系统的覆盖率。
-用户活跃度对物品相似度的影响
问题:有些用户活跃并不能代表自身的兴趣(如开书店的买了很多书来卖)
解决方案(ItemCF-IUF):
IUF:活跃用户对物品相似度的贡献应该小于不活跃的用户,增加参数修正-物品相似度归一化
提高推荐的准确率,提高推荐覆盖率和多样性。
最大值归一化(3)UserCF和ItemCF的综合比较
-UserCF的推荐结果着重于反映和用户兴趣相似的群体的热点,更社会化;而ItemCF的推荐结果着重于维系用户的历史兴趣,更个性化。
优缺点对比-思考:为什么一般新闻网站一般都使用UserCF?
第一,新闻用户兴趣个性化程度一般比较粗粒度,比较注重时效性和热门程度,推荐和他相似爱好的用户阅读的新闻,即保证了时效性又有一定的个性化。
第二,新闻更新非常快,如果使用ItemCF没需要维护一张更新很快的物品相关度的表,技术实现有困难。UserCF只需维护用户相似性表。
-哈利波特问题
问题:《哈利波特》太热门,几乎购买任何一本书的人都会购买。
解决方案:加大对热门物品的惩罚。(但仍旧无法完全解决问题。
问题的本质:两个不同领域的最热门物品之间往往具有比较高的相似度。解决方案:引入物品的内容数据结局这个问题。
4. 隐语义模型
a)基础算法
定义:从数据出发,基于用户行为统计自动聚类。(主要针对推荐方法对物品兴趣进行分类,对于用户先得到他的兴趣分类,然后从分类中选他可能喜欢的物品)
LFM公式:
用户u对物品i的兴趣针对隐性反馈数据,负样本采样遵循的原则:对于每个用户,保证正负样本均衡(数目相似);对每个用户采样负样本时,要选取那些很热门但是用户没有行为的。
LFM模型的缺点:很难实现实时的推荐,一般只能每天训练一次。
b)LFM与基于领域方法的比较。
-理论基础:LFM学习方法;基于领域的方法统计方案;
-离线计算的空间复杂度:LFM优于基于领域的方法,节省内存。
-离线计算的时间复杂度:一般而言,LFM的时间复杂度高于基于领域的方法,但实际上没有质的区别。
-在线实时推荐:LFM基本可以认为无法在线实时推荐,基于领域的方法可以。
-推荐解释:ItemCF可以,LFM无法提供。
5.基于图的模型
(1)用户行为数据的二分图表示
用户二分图模型(2)基于图的推荐算法
给用户u推荐物品就转化为度量用户顶点和与顶点没有直接相连的物品节点再图上的相关性,相关性越高的物品推荐权重越高。
-相关性取决因素:
*两个顶点之间的路经数;
*两个顶点之间的路径长度;
*两个顶点之间的路径经过的顶点。
-PersonalRank算法:随机游走。
-PersonalRank算法缺点:时间复杂度上。解决方案:减少迭代次数;从矩阵论出发,重新设计算法。
四、思考与总结
用户行为数据是推荐算法的基础,在这个领域已经有非常多的研究,对于应该选择那种类型的计算模型,我们应该根据自身的产品的性质进行选择,以目标为导向,结合技术实现。
网友评论