读书笔记:推荐系统实践-第四章-利用用户标签数据

1、UGC标签系统的代表应用

  • Delicious:给网页打标签
  • CiteULike:给论文打标签
  • Last.fm:给音乐打标签
  • 豆瓣:书影音
  • Hulu:视频

打标签的作用:

  • 表达 标签系统帮助我表达对物品的看法。
  • 组织 打标签帮助我组织我喜欢的电影。
  • 学习 打标签帮助我增加对电影的了解。
  • 发现 标签系统使我更容易发现喜欢的电影。
  • 决策 标签系统帮助我判定是否看某一部电影。

2、标签系统中的推荐问题

2.1 用户为什么标注?

  • 社会维度:便于上传者组织自己的信息,便于帮助其他用户找到信息
  • 功能维度:更好地组织内容,方便用户将来的查找;传达某种信息,比如照片的拍摄时间和地点等

2.2 用户如何打标签?

读书笔记:推荐系统实践-第四章-利用用户标签数据_第1张图片

2.3 用户打什么标签?

我们希望是能够准确描述物品内容属性的关键词,但是实际上会打上奇奇怪怪的各种标签。
比如:是什么?种类,谁拥有,用户观点,用户相关的标签,用户的目的

3、基于标签的推荐系统

豆瓣标签与产品线:

  • 在每本书的页面 上,有“豆瓣成员常用标签”的应用
  • 在用户给书做评价时,豆瓣也会让用户给图书打标签。
  • 在最终的个性化推荐结果里, 豆瓣利用标签将用户的推荐结果做了聚类,显示了对不同标签下用户的推荐结果

用户标签行为一般用一个三元组集合表示(u,i,b),表示用户u给物品i打上了标签b

3.1 实验设置

测评方法:

  • 准确率&召回率
  • 覆盖率
  • 多样性:用物品标签向量的余弦相似度度量物品之间的相似度,然后利用下面的公式计算,然后将之合在一起计算均值就是整体的多样性。
    读书笔记:推荐系统实践-第四章-利用用户标签数据_第2张图片
  • 新颖性:推荐结果的平均热门程程度。 对于物品i,定义它的流行度item_pop(i)为给这个物品打过标签的用户数
    读书笔记:推荐系统实践-第四章-利用用户标签数据_第3张图片

3.2 一个最简单的算法(SimpleTagBased)

  • 统计每个用户最常用的标签
  • 对于每个标签,统计被打过这个标签次数最多的物品
  • 对于一个用户,首先找他常用的标签,然后找到具有这些标签的最热门物品进行推荐
    读书笔记:推荐系统实践-第四章-利用用户标签数据_第4张图片

3.3 算法的改进

3.3.1 TF-IDF

  • 改进原因:倾向于给热门标签和热门物品很大的权重,可以利用TF-IDF,对公式进行改进

  • 改进方法:

    • 对热门标签进行惩罚(TagBasedTFIDF):
      在这里插入图片描述
    • 对热门物品和热门标签进行惩罚agBasedTFIDF++
      在这里插入图片描述
  • 改进效果:适当惩罚热门标签和热门物品,在增进推荐结果个性化的同时并不会降低推荐结果的离线精度

3.3.2 数据稀疏性:标签扩展

  • 改进原因:刚好用户喜欢的标签和物品所在的标签重合的概率,在用户是新用户或者物品时新物品的时候会很低,所以可以使用标签扩展的方法,将相似的标签也加入到用户标签集合中。

  • 改进方法:相似度的计算,可以使用从数据中统计中得到的标签相似度。
    读书笔记:推荐系统实践-第四章-利用用户标签数据_第5张图片

  • 改进效果:能够提高基于标签的物品推荐的准确率和召回率,但可能会稍微降低推荐结果的覆盖率和新颖度。

3.3.3 标签清理

  • 改进原因:
    • 不是所有的标签都反应出用户的兴趣
    • 可以将标签用来作为推荐理由,所以需要标签质量很高
  • 改进方法
    • 标签清理
      • 去除词频很高的停止词;
      • 去除因词根不同造成的同义词,比如 recommender system和recommendation system;
      • 去除因分隔符造成的同义词,比如 collaborative_filtering和collaborative-filtering
    • 利用用户反馈,判断标签适不适合

3.4 基于图的推荐算法

  • 用图来表示标签、用户、物品

    • 要定义3种不同的顶点,即用户顶点、物品顶点和标签顶点,相互之间用边相连
      读书笔记:推荐系统实践-第四章-利用用户标签数据_第6张图片
  • 利用PersonalRank计算所有物品节点相对于当前用户节点在图上的相关性,然后按照相关性从大到小的排序,给用户推荐排名最高的 N个物品。

  • 用图模型来解释前面3.2的算法:构建一个图,从用户指向标签,再从标签指向物品,然后利用PersonalRank算法计算。
    读书笔记:推荐系统实践-第四章-利用用户标签数据_第7张图片

3.5 基于标签的推荐解释

  • 用户对标签的兴趣对帮助用户理解为什么给他推荐某个物品更有帮助;
  • 用户对标签的兴趣和物品标签相关度对于帮助用户判定自己是否喜欢被推荐物品具有同样的作用
  • 物品标签相关度对于帮助用户判定被推荐物品是否符合他当前的兴趣更有帮助;
  • 客观事实类标签相比主观感受类标签对用户更有作用

4、给用户推荐标签

4.1 为什么要给用户推荐标签

  • 方便用户输入标签
  • 提高标签质量

4.2 如何给用户推荐标签

  • PopularTags:给用户u推荐整个系统里最热门的标签
  • ItemPopularTags:给用户u推荐物品i上最热门的标签
  • UserPopularTags:给用户u推荐他自己经常使用的标签
  • HybridPopularTags:通过一个系数将上面的 推荐结果线性加权,生成最终的推荐结果

4.3 实验设计与结果

10折交叉验证
读书笔记:推荐系统实践-第四章-利用用户标签数据_第8张图片
读书笔记:推荐系统实践-第四章-利用用户标签数据_第9张图片
读书笔记:推荐系统实践-第四章-利用用户标签数据_第10张图片
对新用户或者不热门的物品进行推荐的一些想法:

  • 从物品的内容数据中抽取关键词作为标签。
  • 针对有结果,但结果不太多的情况,可以做一些关键词扩展,类似3.3.2

4.4 基于图的标签推荐算法

步骤:生成图,利用PersonalRank算法进行排名。需要重新定义顶点的启动概率,只有用户和物品有非0的启动概率。
在这里插入图片描述

你可能感兴趣的:(推荐系统)