标签:
本笔记为自己学习之用,对笔记内容感兴趣的读者还请购买正版书籍《推进系统实践》,尊重作者著作权益!
第2章 利用用户行为数据
2.1 用户行为数据简介
2.2 用户行为分析
2.2.1 用户活跃度和物品流行度的分布
Power Law,长尾分布
2.2.2 用户活跃度和物品流行度的关系
基于用户行为数据设计的推荐算法一般称为协同过滤算法,比如:
1.基于邻域的方法(neighborhood-based)
2.隐语义模型(latent factor model)
3.基于图的随机游走算法(random walk on graph)
2.3 实验设计和算法评测
2.3.1 数据集
2.3.2 实验设计
2.3.3 评测指标:准确率/召回率(Recall/Precision)
2.4 基于邻域的算法(基于统计,没有学习过程)
2.4.1 基于用户的协同过滤算法(反应和用户兴趣相似小群体热点)
1.找个和目标用户兴趣相似的用户集合(用户相似度矩阵)
Jaccard、余弦相似度,物品-用户倒排表
算法改进:对冷门物品采取过相同的行为更能说明他们兴趣相似度,惩罚热门物品
2.找到这个集合中用户喜欢的,且目标用户没有听说过的物品推荐给目标用户。
缺点:
1.用户兴趣相似度矩阵随用户数增大,其运算时间复杂度和空间复杂度和用户数近似平方关系;
2.很难对推荐结果做出解释。
2.4.2 基于物品的协同过滤算法(维系用户的历史兴趣,反应用户的兴趣传承)
1.计算物品之间的相似度(物品相似度矩阵);
Wij = |N(i)∩N(j)| / |N(i)|, 惩罚热门物品,Wij = |N(i)∩N(j)| /( |N(i)| |N(j)|)1/2,提高覆盖率,降低流行度。
2.根据物品相似度和用户历史行为给用户生成推荐列表。
缺点:
1.物品相似度矩阵随物品数增大,其运算时间复杂度和空间复杂度和物品数近似平方关系;
2.4.3 UserCF和ItemCF的综合比较
UserCF多用于新闻推荐( 更加社会化,热门程度,时效性,更新快),如今日头条,各类新闻客服端;
物品更新速度远快于新用户加入速度,完全可以推荐最热门的新闻给新用户。
ItemCF多用于图书,电影,电子商务网站,如亚马逊,淘宝,用户兴趣比较固定和持久,物品(相似度矩阵)更新不会太快。
长尾物品丰富,适用于用户个性化需求强烈的领域,新用户对一个物品产生行为,就可以给他推荐相关其他物品。
2.5 隐语义模型(Latent factor)的算法(基于机器学习)
2.5.1 基础算法
具有比较好的理论基础,雅虎做得比较好
通过隐含特征联系用户兴趣和物品
http://blog.csdn.net/harryhuang1990/article/details/9924377
缺点:很难实现实时的推荐,经典的LFM模型每次训练都需要扫描所有的用户行为记录,反复迭代,来计算用户隐类向量pu和物品隐类向量qi,非常耗时。
2.5.2 基于LFM的实际系统的例子
改进了经典LFM算法。
2.5.3 LFM和基于邻域的方法的比较
1.理论基础
LFM有比较好理论基础,是一种学习方向,通过优化一个设定的指标建立最优模型;
基于领域的算法更多是一种基于统计的方法,没有学习过程。
2.离线计算空间复杂度
假定M个用户,N个物品,则中间计算过程需要的存储空间:
UserCF:O(M*M);
ItemCF:O(N*N);
LFM:O(F*(M+N).F为隐类数目
在M、N很多的情况下,LFM更节约内存。
3.离线计算的时间复杂度
一般情况下LFM时间高于UserCF和ItemCF,因为需要迭代计算,总体上没有本质差别。
4.在线计算时间复杂度
UserCF:用户有新行为,不一定造成推荐结果的立即变化
ItemCF: 用户有新行为,一定造成推荐结果的世事变化
LFM: 用户有新行为,推荐结果不会发生变化
4.推荐解释
UserCF:不支持
ItemCF: 很好的支持
LFM: 不支持
2.6 基于图的模型
2.6.1 用户行为数据的二分图表示
2.6.2 基于图的推荐算法
标签:
原文地址:http://www.cnblogs.com/Dillonn/p/4517480.html