当用户给一个物品打上一个标签的时候,这个标签起到了转承的作用,一方面描述了用户的兴趣,另外一方面表示了物品的语义,将用户与物品连接起来。本章主要讨论UGC(User Generated Content, 用户生成的内容)的标签应用,研究用户给物品打标签的行为,探讨如何通过分析这种行为对用户进行个性化推荐。
4.1 UGC标签系统的应用代表
Delicious,CiteULike,Last.fm,豆瓣,Hulu
我们对豆瓣比较了解,它允许用户对图书和电影打标签,借此获得图书和电影的内容信息和语义,并用这种信息改善推荐效果。
标签系统最大的优势就是在于可以发挥群体的智能,获得对物品内容信息比较准确的关键词描述,而准确的内容信息是提升个性化推荐系统性能的重要资源。进而帮助用户发现喜欢的电影,决定是否看某一部电影。表达用户对物品的看法、组织用户喜欢的电影和增加用户对电影的了解。标签如何发挥作用呢?
4.2 标签系统中的推荐问题
首先要解决一下三个问题:
- 用户为什么要打标签
- 用户如何打标签
- 用户打什么样的标签
解决上述三个问题之后就回到标签系统中的两个主要的推荐问题:
- 如何利用用户打标签的行为为其推荐物品?也就是基于标签的推荐。
- 如何在用户打标签时候推荐合适该物品的标签?也就是标签的推荐。
4.2.1 用户为什么要进行标注
从两个维度进行讨论。1社会维度,一种是自用,另外一种是他用。2功能维度,一种是帮忙查找,另外一种是传达信息。
4.2.2 用户如何打标签
打标签的过程隐藏着一个长尾分布。即大多数的标签流行度都很低,少数的标签流行度很高。
4.2.3 用户打什么样的标签
定义、类别、拥有者、观点、任务、用户相关的标签等。当然还有好多奇奇怪怪的标签。
4.3 基于标签的推荐系统
一个用户标签行为的数据集一般由一个三元组集合表示(u,i,b)即用户u,物品i,标签b。
没看懂这句话:
在最终的个性化推荐结果里,豆瓣利用标签将用户的推荐结果做了聚类,显示了对不同标签下用户的推荐结果,从而增加了推荐的多样性和可解释性。
4.3.1 实验设置
使用留一法,通过学习训练集中的用户标签数据预测测试集上用户会给什么物品打标签。
度量方法
覆盖率:推荐个数占总个数的多少。
多样性:结果是否覆盖绝大多数兴趣点,即使用余弦相似度度量之后计算所有用户推荐列表多样性的平均值。
新颖性:推荐结果的平均热门程度。流行度为给这个物品打过标签的用户个数。
准确率、召回率
4.3.2 一个最简单的算法
p
(
u
,
i
)
=
∑
b
n
u
,
b
n
b
,
i
p(u,i) = \sum\limits_b {{n_{u,b}}{n_{b,i}}}
p(u,i)=b∑nu,bnb,i
其中B(u)为用户u打过的标签集合,B(i)为物品i被打过的标签集合,
n
u
,
b
{n_{u,b}}
nu,b是用户u打过标签b的次数,
n
b
,
i
{n_{b,i}}
nb,i是物品i被打过标签b的次数。该算法名字叫SimpleTagBased标记。
用户----->常用标签-------->被标签标记次数最多的物品
4.3.3 算法的改进
参考文献
项亮. 推荐系统实践[M]. 人民邮电出版社, 2012.