概述
- 标签是一种无层次化结构的、用来描述信息的关键词,它可以用来 描述物品的语义。
- 根据给物品打标签的人的不同,标签应用一般分为两种
- 一种是让作者或者专 家给物品打标签;
- 另一种是让普通用户给物品打标签,也就是UGC(User Generated Content,用 户生成的内容)的标签应用。
- 标签的作用
- 表达:标签系统帮助我表达对物品的看法。(30%的用户同意。)
- 组织:打标签帮助我组织我喜欢的电影。(23%的用户同意。)
- 学习:打标签帮助我增加对电影的了解。(27%的用户同意。)
- 发现:标签系统使我更容易发现喜欢的电影。(19%的用户同意。)
- 决策:标签系统帮助我判定是否看某一部电影。(14%的用户同意。)
- UGC 标签系统的代表应用
- Delicious
- Delicous可算是标签系统里的开山鼻祖,它允许用户给互联网上的每个网页打标签,从而通 过标签重新组织整个互联网。
- CiteULike
- CiteULike是一个著名的论文书签网站,它允许研究人员提交或者收藏自己感兴趣的论文并 且给论文打标签,从而帮助用户更好地发现和自己研究领域相关的优秀论文。
- Last.fm
- Last.fm是一家著名的音乐网站,它通过分析用户的听歌行为预测用户对音乐的兴趣,从而给用户推荐个性化的音乐。作为多媒体,音乐不像文本那样可以很容易地分析内容信息。为了在不 进行复杂音频分析的情况下获得音乐的内容信息,Last.fm引入了UGC标签系统,让用户用标签 标记音乐和歌手。
- 豆瓣
- 豆瓣是中国著名的评论和社交网站,同时也是中国个性化推荐领域的领军企业之一。
- 它允许用户对图书和电影打 标签,借此获得图书和电影的内容信息和语义,并用这种信息改善推荐效果。
- Hulu
- Hulu是美国著名的视频网站。视频作为一种最为复杂的多媒体,获取它的内容信息是最困难 的,因此Hulu也引入了用户标签系统来让用户对电视剧和电影进行标记。
- Delicious
用户打标
- 基本思路
- 用户为什么要打标签?
- 在设计基于标签的个性化推荐系统之前,我们需要深入了解用户的标注行为(即打标签的行 为),知道用户为什么要标注,用户怎么标注,只有深入了解用户的行为,我们才能基于这个行 为设计出令他们满意的个性化推荐系统。
- Morgan Ames研究图片分享网站中用户标注的动机问题,并从两个维度进行探讨。
- 社会维度
- 有些用户标注是给内容上传者使用的(便于上传者组织自己的信息)
- 而有些用户标注是 给广大用户使用的(便于帮助其他用户找到信息)
- 功能维度
- 有些标注用于更好地 组织内容,方便用户将来的查找
- 而另一些标注用于传达某种信息,比如照片的拍摄时间和地点等。
- 社会维度
- 用户怎么打标签?
- 用户打什么样的标签?
- Scott A. Golder 总结了Delicious上的标签,将它们分为如下几类:
- 表明物品是什么:比如是一只鸟,就会有“鸟”这个词的标签;是豆瓣的首页,就有一个 标签叫“豆瓣”;是乔布斯的首页,就会有个标签叫“乔布斯”。
- 表明物品的种类:比如在Delicious的书签中,表示一个网页类别的标签包括 article( blog(博客)、 book(图书)等。
- 表明谁拥有物品:比如很多博客的标签中会包括博客的作者等信息。
- 表达用户的观点:比如用户认为网页很有趣,就会打上标签funny(有趣),认为很无聊, 就会打上标签boring(无聊)。
- 用户相关的标签:比如 my favorite(我最喜欢的)、my comment(我的评论)等。
- 用户的任务:比如 to read(即将阅读)、job search(找工作)等。
- Scott A. Golder 总结了Delicious上的标签,将它们分为如下几类:
- 用户为什么要打标签?
- 应用案例 — Hulu
- 类型(Genre):主要表示这个电视剧的类别, 比如《豪斯医生》属于医学剧情片 (medical drama)。
- 时间(Time):主要包括电视剧发布的时间,有时也包括电视剧中事件发生的时间,比 如20世纪90年代。
- 人物(People):主要包括电视剧的导演、演员和剧中重要人物等。
- 地点(Place):剧情发生的地点,或者视频拍摄的地点等。
- 语言(Language):这部电视剧使用的语言。
- 奖项(Awards):这部电视剧获得的相关奖项。
- 其他(Details):包含不能归类到上面各类中的其他所有标签。
标签在推荐系统中的应用
- 基于标签的推荐系统
- 豆瓣
- 首先,在每本书的页面 上,豆瓣都提供了一个叫做“豆瓣成员常用标签”的应用,它给出了这本书上用户最常打的标签。
- 同时,在用户给书做评价时,豆瓣也会让用户给图书打标签。
- 最后,在最终的个性化推荐结果里, 豆瓣利用标签将用户的推荐结果做了聚类,显示了对不同标签下用户的推荐结果,从而增加了推 荐的多样性和可解释性。
- 基于标签的推荐算法
- 基础算法
- 步骤
- 统计每个用户最常用的标签。
- 对于每个标签,统计被打过这个标签次数最多的物品。
- 对于一个用户,首先找到他常用的标签,然后找到具有这些标签的最热门物品推荐给这 个用户。
- 缺点
- 倾向于给热门标签对应的热门物品很大的权重,因此会造成推荐热门的物品给 用户,从而降低推荐结果的新颖性。
- TagBasedTFIDF++:对热门物品做惩罚
- 对于新 用户或者新物品,这个集合( B (u ) B (i ) )中的标签数量会很少。
- 为了提高推荐的准确率,我们 可能要对标签集合做扩展,比如若用户曾经用过“推荐系统”这个标签,我们可以将这个标签的 相似标签也加入到用户标签集合中,比如“个性化”、“协同过滤”等标签。
- 不是所有标签都能反应用户的兴趣。比如,在一个视频网站中,用户可能对一个视频打了一 个表示情绪的标签,比如“不好笑”,但我们不能因此认为用户对“不好笑”有兴趣,并且给用 户推荐其他具有“不好笑”这个标签的视频。相反,如果用户对视频打过“成龙”这个标签,我 们可以据此认为用户对成龙的电影感兴趣,从而给用户推荐成龙其他的电影。
- 标签清理的另一个重要意义在于将标签作为推荐解释。如果我们要把标签呈现给用户,将其 作为给用户推荐某一个物品的解释,对标签的质量要求就很高。
- 倾向于给热门标签对应的热门物品很大的权重,因此会造成推荐热门的物品给 用户,从而降低推荐结果的新颖性。
- 步骤
- 基础算法
- 基于图的推荐算法
- PersonalRank算法计算所有物品节点相对于当前用户节点在图上的相关性,然后按照相关性从大到小的排序,给用户推荐排名最高的 N个物品。
- 基于标签的推荐解释
- 豆瓣
- 豆瓣读书推荐结果包括两部分
- 上面是一个标签云,表示用户的兴趣分布, 标签的尺寸越大,表示用户对这个标签相关的图书越感兴趣。
- 豆瓣这样组织推荐结果页面有很多好处:
- 首先是提高了推荐结果的多样性。
- 我们知道,一个 用户的兴趣在长时间内是很广泛的,但在某一天却比较具体。因此,我们如果想在某一天击中用 户当天的兴趣,是非常困难的。而豆瓣通过标签云,展示了用户的所有兴趣,然后让用户自己根据他今天的兴趣选择相关的标签,得到推荐结果,从而极大地提高了推荐结果的多样性,使得推 荐结果更容易满足用户多样的兴趣。
- 首先是提高了推荐结果的多样性。
- 豆瓣这样组织推荐结果页面有很多好处:
- 标签云也提供了推荐解释功能。用户通过这个界面可以知道豆瓣给自己推荐的每一本 书都是基于它认为自己对某个标签感兴趣。而对于每个标签,用户总能通过回忆自己之前的行为 知道自己是否真的对这个标签感兴趣。
- 上面是一个标签云,表示用户的兴趣分布, 标签的尺寸越大,表示用户对这个标签相关的图书越感兴趣。
- 豆瓣读书推荐结果包括两部分
- 豆瓣
- 豆瓣
给用户推荐标签
- 为什么要给用户推荐标签
- 方便用户输入标签
- 让用户从键盘输入标签无疑会增加用户打标签的难度,这样很多用 户不愿意给物品打标签,因此我们需要一个辅助工具来减小用户打标签的难度,从而提 高用户打标签的参与度。
- 提高标签质量
- 同一个语义不同的用户可能用不同的词语来表示。这些同义词会使标签 的词表变得很庞大,而且会使计算相似度不太准确。而使用推荐标签时,我们可以对词 表进行选择,首先保证词表不出现太多的同义词,同时保证出现的词都是一些比较热门 的、有代表性的词。
- 方便用户输入标签
- 如何给用户推荐标签
- 比较简单的方 法有4种:
- 第0种方法就是给用户u推荐整个系统里最热门的标签(这里将这个算法称为PopularTags)
- 第1种方法就是给用户u推荐物品i上最热门的标签(这里将这个算法称为ItemPopularTags)。
- 第2种方法是给用户u推荐他自己经常使用的标签(这里将这个算法称为UserPopularTags)。
- 第3种算法是前面两种的融合(这里记为HybridPopularTags),该方法通过一个系数将上面的 推荐结果线性加权,然后生成最终的推荐结果。
- 基于图的标签推荐算法
- 比较简单的方 法有4种: