一种融合社会化标签的协同过滤推荐算法
推荐系统是为解决信息过载和发掘长尾物品而提出的一种有效的工具,它与搜索引擎相互配合,共同为用户提 供可靠便捷的服务。推荐系统可以应用在很多场合,比如电 影、音乐、图书、文章、新闻、网页和广告等领域。代表性 网站有亚马逊、Netflix、豆瓣、LastFM、YouTube、Facebook 以及淘宝等。推荐系统可以提供个性化的推荐,满足用户随 时变化和差异化的需求
社会化标签作为Web2.0发展的产物,是一种非常有效 的网络资源组织工具。社会化标签有两方面的含义:第一, 表示用户的兴趣;第二,表示物品的语义。通过标签用户和 物品可以联系起来。利用社会化标签可以组织网站内容,推 荐物品以及标签。社会化标签除了这些功用外,还可以与现 有的推荐系统配合,产生更加有效的推荐,这是本文所要研 究的内容,利用社会化标签信息,在经典的基于评分的推荐 系统上产生更好的推荐效果。将社会化标签和评分相融合的算法也是推荐系统领域 研究的一个热门方向。Tso-Sutter提出了
一种可以将标签融合 于标准的协同过滤算法,他直接将标签当作二值化数据,作 为用户的特征向量或物品的特征向量。Bogers和Van Den Bosh 通过计算标签的重合度,来表示用户或物品之间的相似度。Gemmel提出了加权的混合推荐算法,他将基于图的标签推
荐算法和基于用户和物品的协同过滤算法相结合,通过加权计算二者的流行度产生推荐。
Gedikli和Jannach利用标签来表示用户喜欢或不喜欢的物品具有的特征,通过对标签的评分可以得到用户最终对物品的评分。Yi zhen在评分矩阵上使用了PMF产生推荐,将 标 签 信 息 加 入 到PMF的正则化项 中,在模型生成的 过 程 中 融 入 了 标
图1 标签扩展评分矩阵
签的信息。此外,还有更加复杂的方法。Yueshen Xu和JianweiYin提出了一种可以把UGC(User Generated Content)信息和 评分结合的方法,UGC包括标签和评论,所使用的方法是 CTR(Collaborative Topic Regression),该方法于2011年被Wang 和Blei提出,是结合PMF和LDA的一种混合模型,CTR不仅可 以被用来做评分预测,还可以获取物品描述中的隐变量。
本文结合现有的基于内存的推荐算法,提出了一种整 合隐语义向量的标签融合算法,下面将重点介绍该算法以及 相关的一些内容,最后对算法的有效性进行验证。
1 相关推荐算法
1.1 基于内存的算法
1.1.1 基于用户的协同过滤算法
基于用户的协同过滤算法的思想是:具有相同爱好的 用户会选择相同的物品。该算法包括两个步骤:a.找到和目 标用户兴趣相似的用户集合;b.找出这个集合中用户喜欢但 是目标用户没有购买的物品。每一个用户可以看作是n维向量,每一个物品的评分作 为向量的元素,这样用户的相似度就可以转换为计算向量的 相似度。下面是三种常见的相似度计算的方法。
其中(1)是欧式距离,(2)是余弦夹角,(3)是Pearson相关系数。ru,i 为用户u对物品i的评分, 和 分别是用户u和用 户v在各自所评物品集上的均值。在计算获得目标用户的相似用户集后,便可根据相似用户预测待推荐物品的评分。评分的计算公式为式(4)。
其中 S (u , K ) 表示目标用户u的K个相似用户, 表示对物品 i评过分的用户集合,最终的相似用户是这两个集合的交集。 ru 和 rn 分别表示用户u和用户n在各自评分集上的均值。该公式 的含义是对所有相似用户对物品i的评分作加权平均。
1.1.2 基于物品的协同过滤算法
基于物品的协同过滤算法分为两个步骤:a. 根据用户已 评分过的物品分别找出每个物品的K个相似度最高的物品。 b.找出用户未做评价的物品预测其分数。计算目标物品的相似物品是将每个物品看作是一个m维 向量,每个用户的评分是向量中的项。计算相似度公式和基于用户的推荐算法类似,这里要补充的是一种修正的余弦相似度(Adjust Cosine Similarity),如公式(5)所示。该公式被Sarwar在MovieLens上证明是最佳的相似度计算方法,然而在其他的数据集中,该公式不一定是最优的。
利用公式(6)可以预测待推荐物品的评分,该公式的含 义是对相似物品的评分作加权平均。其中, S (u , K ) 表示和物 品i相似的K个物品的集合, N (u ) 表示用户u评过分的物品。 ri 表示物品i的平均分。
1.2 隐因子模型
隐因子模型(LFM)的核心思想是通过隐含的特征将用户 和物品联系起来。对于分析用户行为背后的含义以及物品的 分类有很好的效果。
LFM的思想很简单,将评分矩阵R分解为两个低维的矩 阵P和Q,如式(7)所示,针对每一个评分,引入隐变量l。然 后通过最小化均方误差学习P、Q矩阵,如式(8)所示,为了下降算法优化参数。
2 融合标签的协同推荐算法
2.1 标签扩展评分矩阵
传统的评分矩阵是<用户,物品,评分>这是一个二维 的关系,而标签矩阵<用户,物品,标签>是一个三维的关 系,因为用户可以给一个物品打多个标签,而评分只有一 个。要使用基于评分的方法,必须将三维的标签矩阵转化为 二维矩阵。图1为转化的关系图,可以将其转化为两个二维 矩阵。其中水平方向将用户打过的标签作为用户向量的一部 分,垂直方向将标记过物品的标签作为物品向量的一部分。 对于UserTag和ItemTag向量中的值,使用TF-IDF(Term Frequency-Inverse Document Frequency)表示,如公式(9),这里将UserTag和ItemTag看作是文档。
其中TFij 为词频,描述的是第i个标签在文档j中所占的比例, IDFi 为逆文档频率, ni 为第i个关键词在N篇文档中出 现的次数,所以 ni 越大 IDFi 越小。二者的乘积 wij 定义为第i个标签在文档j中的权值。一个标签在一篇文档中出现的频率越高对权值的贡献越大,在所有文档中出现的频率越高对 权值的贡献越小。这样有了权值的定义,就可以把一个文档表示为向量 d j = (w1 j , w 2 j ,..., w kj ) 。
2.2 提取隐语义
接下来提取标签的隐语义,所使用的模型是LMF,需 要式(10)来提取用户和物品中的隐语义。
最终得到 Pu = ( pu1 , ..., puK ) 和 Pi = ( pi1 , ..., piK ) 向量,它们分别表示了用户的偏好隐语义和物品的特征隐语义。
2.3 评分和隐语义整合
将标签信息的格式转换为评分的格式,然后可以利用 评分的协同推荐算法,将用户或物品的评分向量和标签向,物品向量表示为 i = (r i ,..., r i , pi ,..., pi ) ,p是隐变量,它的个数为K。整合 后,可以使用新的用户向量计算用户的相似度,或使用新物
品向量计算物品的相似度。这里将这两个方法称为usertagCF和itemtagCF。
2.4 模型学习和推荐
所提的算法利用了协同过滤中基于内存和基于模型的 算法, L MF需要训练, 具体的训练过程在1.2节中已有介 绍,这里需要说明的是影响推荐的两个参数,一个是用户或 物品的邻居个数K,另一个是用户或物品的隐变量个数F。
3 实验设计与实验结果
3.1 评测指标
本文选择均方根误差(RMSE)和平均绝对误差(MAE)作 为评价的主要标准。
RMSE和MAE是评分预测问题的两个常用指标。其中T为测试集, rui 是实际的评分, rui 是预测的评分。
3.2 实验设计
(1)实验数据
实验采用的数据集是MovieLens 最新的100k数据集,
该数据集包含706名用户对8570部电影的100023 个评分以及
2488 个标签,时间范围为1996年4月2日到2015年3月30日。 (2)算法实现 根据标签数据集统计UserTag和ItemTag中的TF-IDF值,
利用该标签数据训练LFM模型,参数设置为学习率0.15,步 长0.04,通过多次迭代后获取用户或物品的特征向量p,将p 与用户或物品的评分向量融合,本算法使用的相似度公式为 Pearson相似度。
算法的实现过程中涉及到两个重要的参数,一个是用 户或物品的邻居数目K,另一个是LFM模型中的隐变量个数 F。这两个变量的取值不同,对最终的RMSE和MAE会造成 不同的影响。
3.3 实验结果 (1)userCF和usertagCF的结果比较 基于用户的协同过滤和将标签和评分融合后的协同过
滤比较结果如表1所示,可以发现,随着K的变化RMSE和
MAE都在减小, user tag CF在K=40时性能就已经开始改善 了,随着K值的增大,可以看到提升逐步增加。表2为不同F 值下usertagCF的结果对比,可以发现F=5左右时,RMSE和 MAE的值都是最小的,说明隐变量不是越多越好。
(2) itemCF和itemtagCF的比较 表3为基于物品的协同过滤算法在融合标签前后的结果
比较,可以发现,随着K的增大,RMSE和MAE都在减小,也 是在K=40的时候性能开始改善。表4为不同F值对itemtagCF的 影响。随F值的增大,性能在逐步改善。与usertagCF不同,F 值在较大的情况下仍能提升性能,这是因为测试的数据集中 物品的数目约为用户数目的12倍,如果要对物品向量产生影 响,物品的隐语义数目应高于用户隐语义数目。
4 结束语
本文提出了一种将社会化标签和评分相融合的方法,该算法相较于基于模型的方法,具有实现简单、运行较快的优点。通过实验证明,该算法可以有效地较少预测误差。
评论