【论文阅读笔记】Challenging the Long Tail Recommendation(挑战长尾推荐)
摘要
论文链接Challenging the Long Tail Recommendation
针对长尾推荐问题,提出三种基于图的算法
1)Hitting Time algorithm
2)Absorbing Time algorithm
3)Absorbing Cost algorithm
算法
1、算法问题定义
三种算法都是基于图表示的user-item 信息
如上图,表示用户 ,表示电影 。上图右下角为用户-电影评分数据(称作邻接矩阵,用A表示),评分信息在图结构中用U-M连线的权重表示,U-M之间没有连线表示该用户没有看过这部电影。
此时问题就转化为如下:
给定一个 user-item 加权无向图 G(V,E),和其邻接矩阵A,以及一个用户节点 q,寻找 k 个item满足以下条件:最接近用户节点q;item在长尾部分。
2、算法:
三种算法都是基于随机游走(random work)来计算相似度
1)Hitting Time algorithm
2)Absorbing Time algorithm
3)Absorbing Cost algorithm
该算法基于以下假设:爱好广泛(例如爱好多种电影)的用户和爱好专一的用户的评分数据的价值不同。因此作者提出一种新的特征 user-entropy(用户熵),用来表示从一个item节点跳跃到用户结点所需要的 “成本” 。作者提出两种user-entropy:item-based user entropy和topic-based uer entropy。
item-based user entropy 计算公式:
其中是用户 i 对 item j 的评分数据。
topic-based uer entropy 计算公式:
其中用户主题概率分布是基于LDA得到的(具体不作介绍)。
3、实验和评估
数据集:Movielens 1M数据集 和作者自己爬取的豆瓣电影评分数据集。
评估标准
准确率:作者采用的是召回率
长尾评估:popularity(frequency of rating)
质量评估:推荐序列和用户兴趣序列的相似度
多样性
效率:耗费时间
模型训练
由于采用整个user-item graph训练复杂度会特别高,因此作者选取一定数量(记为 )节点的子图来进行训练,并对这个数量 的取值做了一定探讨,发现采取一定量节点的子图对模型效果影响不大,但是极大提升训练效率:
PS:目前论文中还有部分没有完全搞懂的地方,搞懂之后继续补充,第一次写博客,多包涵。