一、书籍介绍
《推荐系统实践》项亮编著,陈义、王益审校,人民邮电出版社。
本篇读书笔记主要针对该书的第四章内容。
二、结构概览
三、主要内容
推荐系统主要是为了联系用户的兴趣和物品。对此,我们一般有三种方式:
第一:物品-利用用户喜欢过的物品,给用户推荐与他喜欢过的物品相似的物品(基于物品的算法)
第二:用户-利用和用户兴趣相似的用户,给用户推荐那些和他们兴趣爱好相似的其他用户喜欢的物品(基于用户的算法)
第三:通过一些特征联系用户和物品,如物品的属性集合、隐语义向量、标签等。
我们本本部主要讨论标签。
标签从来源上一般分为两种:一种是让作者或专家给物品打标签;一种让普通用户给物品打标签。即UGC标签,也是本部分的重点内容。
1.UGC标签系统的代表应用。
(1)Delicious
用户给互联网上的每个网页打标签,从而通过标签重新组织互联网。
(2)CiteUlike
论文书签网站-研究人员可以提交或收藏自己感兴趣的论文并且给论文打标签
(3)Last.fm
音乐网站,引入UGC标签系统。
(4)豆瓣
(5)HuLu
视频网站
—标签的作用:
*表达:标签系统有助于我们表达对物品的看法
*组织:标签系统有助于我归类组织我喜欢的物品
*学习:标签系统有助于我增加对物品的了解
*发现:标签系统使我更容易发现喜欢的物品
*决策:标签系统有助于我判断这个物品是否要使用
2. 标签系统中的推荐问题
(1)用户为什么进行标注
要找到UGC打标签的动力:内容上传者对内容的管理?便于帮助其他用户找到信息,从而使自己的内容可以得到更多的喜欢?帮助其他用户?传达某种信息?方便将来的查找?……
(2)用户如何打标签
用户打标签背后的规律:标签流行度呈非常典型的长尾分布。我们对标签的使用和设计都需要考虑到这一点。
(3)用户打什么样的标签
a)表明物品是什么
b)表明物品的种类
c)表明谁拥有物品
d)表达用户的观点(有趣、喜欢等)
e)用户相关的标签(我喜欢)
f)用户的任务(即将阅读等)
在给用户提供标签选择的时候可以考虑以上几种类型。
3.基于标签的推荐系统
用户标签的行为数据集一般由一个三元组(用户、物品、标签)表示。
(1)实验设置
对于用户u,R(u)为用户u的长度为N的推荐列表,里面包含我们认为用户会打比奥前的物品。T(u)是测试集中用户u实际上打过标签的物品集合。
(2)算法
算法描述:统计每个用户最常用的标签,对于每个标签,统计被打过这个标签次数最多的物品;对于一个用户,首先找到他常用的标签,然后找到具有这些标签的最热门物品推荐给这个用户。
用户u对物品i的兴趣公式如下:
(3)算法改进
a)TF-IDF
*热门标签权重过大,公式改进:
*热门物品惩罚
b)数据稀疏性
对于新用户或新物品,B(u)和B(i)交集的标签数量很少,因此需要对标签集合做拓展,将相似标签也加入到用户标签集合中。因此最为关键的是对每个标签找到和它相似的标签。
找到相似的标签,第一种方法,同义词,根据同义词词典进行拓展。第二种方法,当两个标签同时出现在很多物品的标签集合中,我们可以认为这两个标签具有较大的相似度,公式如下:
注意—进行标签拓展能够提高基于标签的物品推荐的准确率和召回率,但可能会稍微降低推荐结果的覆盖率和新颖度。
c)标签清理
用户打标签过程中有一些无用的、重复的标签。
*去除词频很高的停止词;
*去除同义词(比如因词根不同或因分隔符导致的同义词);
(4)基于图的推荐算法
首先,将用户打标签行为表示到一张图上。其次,构建SimpleTagGragh,计算用户对物品的兴趣公式。
(5)基于标签的推荐解释
四种类型标签解释的展示方式:
a)RelSort 对推荐物品做解释时使用的是用户以前使用过且物品上有的标签,给出了用户对标签的兴趣和标签与物品的相关度,但标签按照和物品的相关度排序。
b)PrefSort 对推荐物品做解释时使用的是用户以前使用过且物品上有的标签,给出了用户对标签的兴趣和标签与物品的相关度,但标签按照用户的兴趣程度排序。
c)RelOnly 对推荐物品做解释时使用的是用户以前使用过且物品上有的标签,给出了标签与物品的相关度,且标签按照和物品的相关度排序。
d)PrefOnly 对推荐物品做解释时使用的是用户以前使用过且物品有的标签,给出了用户对标签的兴趣程度,且标签按照用户的兴趣程度排序。
从一个调查中可以看出:
*物品为什么推荐给我-RelSort>PrefOnly>=PreSort>RelOlny
*判定是否喜欢推荐的物品-RelSort>PreSort>PrefOnly>RelOlny
*判定物品是否符合我的兴趣-RelSort>PreSort>RelOlny>PrefOnly
*整体满意度:PrefOnly>RelSort>PreSort>RelOlny
从整体来看,
用户对标签的兴趣更有助于用户理解为什么推荐物品;用户对标签的兴趣和物品标签的相关度更有助于用户判定是否喜欢被推荐的物品;物品标签相关度更有助于用户判定物品是否符合当前的兴趣;客观类标签相比主观类标签对用户更有用。
4.给用户推荐标签
(1)为什么要给用户推荐标签
方便用户输入标签;提高标签质量
(2)如何给用户推荐标签
a)推荐最热门的标签(popularTags)
b)给用户u推荐物品i上最热门的标签(ItemPopularTags)
c)给用户u推荐他自己经常使用的标签(UserPopularTags)
d)综合b)+c)两种方法(HybridPopularTags)
在a)b)c)三种方法中,ItemPopularTags具有最好的准确率和召回率。HybridPopularTags在融合系数=0.8,取得率最好的准确度,优于ItemPopularTags。
但是无论a)b)c)d)任何一种方法都有一个缺陷,即无法对新用户或者不热门的物品很难有推荐结果。可以考虑从物品内容数据中抽取关键词作为标签或者进行标签拓展。
(3)基于图的标签推荐算法
图模型也可用于标签推荐。
延伸阅读: