推荐系统的目的是联系用户的兴趣和物品,这种联系需要依赖于不同的媒介。GroupLens在文章1中认为目前流行的推荐系统基本上通过三种方式来联系用户兴趣和物品。如图1所示,第一种方式是通过用户喜欢过的物品:可以给用户推荐与他喜欢过的物品相似的物品,这就是前面提到的基于物品的算法(item-based)。第二种方式是通过和用户兴趣相似的其他用户:可以给用户推荐那些和他们兴趣爱好相似的其他用户喜欢的物品,这也是前面提到的基于用户的算法(user-based)。除了这两种方法,第三个也是最重要的方式是通过一些特征(feature)来联系用户和物品,可以给用户推荐那些具有用户喜欢的特征的物品。这里的特征有不同的表现方式,比如可以表现为物品的属性集合(比如对于图书,属性集合就包括了作者、出版社、主题和关键词等),也可以表现为隐语义向量(latent factor vector),这可以通过前面提出的隐语义模型(Latent Factor Model)学习得到。在本章中,我们将讨论一种重要的特征表现方式:标签

enter image description here

图1 推荐系统联系用户和物品的几种途径

根据维基百科的定义2,标签是一种无层次化结构的、用来描述信息的关键词。因此,标签可以用来准确地描述物品的语义。根据给物品打标签的人的不同,标签应用一般分为两种。第一种是让作者或者编辑给物品打标签,而另一种是让普通用户给物品打标签,也就是UGC的标签应用。表1列出了这两种不同的标签系统的代表网站。在本章中,我们主要讨论UGC的标签应用,研究用户给物品打标签的行为,以及如何通过分析这种行为给用户进行个性化推荐。

表1 两种不同的标签系统的代表网站

enter image description here

UGC的标签系统是一种很重要的表示用户兴趣和物品语义的方式。当一个用户对一个物品打上一个标签后,这个标签一方面描述了用户的兴趣,另一方面也表示了物品的语义,从而将用户和物品联系了起来。

UGC标签系统的代表应用


UGC标签系统是很多Web 2.0网站的必要组成部分,本节将讨论使用UGC标签系统的代表网站:UGC标签系统的鼻祖美味书签(Delicious)、论文书签网站CiteULike、音乐网站Lastfm、视频网站Hulu、书和电影评论网站豆瓣等。下面将分别介绍这些应用。

Delicious

美味书签(Delicous)是标签系统里的开山鼻祖了,它允许用户给互联网上的每个网页打上标签,从而通过标签的方式重新组织整个互联网。图2是Delicious中被用户打上recommender system标签最多的网页,这些网页反应了用户心目中和推荐系统最相关的网页。图3是Delicious中“豆瓣电台”这个网页被用户打的最多的标签,可以看到这些标签确实准确地描述了豆瓣电台。

enter image description here

图2 Delicious中被打上recommender system标签的网页

enter image description here

图3 Delicious中“豆瓣电台”网页被用户打的最多的标签

CiteULike

CiteULike是一个著名的论文书签网站,它允许研究人员提交或者收藏他们感兴趣的论文,给论文打标签,从而帮助用户更好地发现和自己研究领域相关的优秀论文。我们知道,研究人员搜索自己研究领域值得参考的论文是很费时费力的工作,而CiteULike通过群体智能,让每个研究人员对自己了解的论文进行标记,从而帮助用户更好更快地发现自己感兴趣的论文。图4展示了CiteULike中一篇被用户打的标签最多的有关推荐系统评测的文章,可以发现,最多的两个标签是collaborative-filtering(协同过滤)和evaluate(评测),确实比较准确地反应了这篇论文的主要内容。 enter image description here

图4 CiteULike中一篇论文的标签

Lastfm

Lastfm是一家著名的音乐网站,它通过分析用户的听歌行为来预测用户对音乐的兴趣,从而给用户推荐个性化的音乐。作为多媒体,音乐不像文本那样可以很容易地分析它的内容信息。为了在不进行复杂的音频分析的情况下获得音乐的内容信息,Lastfm引用了标签系统,让用户用标签标记音乐和歌手。图5展示了披头士乐队在Lastfm中的标签云(tag cloud)。从这个标签云可以看到,披头士应该是一个英国的传统摇滚乐队,流行于上世纪60年代。

enter image description here

图5 Lastfm中披头士乐队的标签云

豆瓣

豆瓣是中国著名的评论和社交网站,同时也是中国个性化推荐邻域的领军企业之一。豆瓣在个性化推荐领域进行了广泛的尝试,标签系统也是他们尝试的领域之一。他们允许用户对图书和电影进行标签,从而获得图书和电影的内容信息,并用这种信息来改善他们的推荐效果。图7展示了《数据挖掘导论》在豆瓣被用户标记的情况。如图7所示,最多的几个标签分别是:数据挖掘、计算机、计算机科学、数据分析、IT数据分析。这些标签准确地反应了这本书的内容信息。

enter image description here

图6 豆瓣读书中《数据挖掘导论》一书的常用标签

Hulu

Hulu是美国著名的视频网站。视频作为一种最为复杂的多媒体,获取它的内容信息是最困难的,因此,Hulu也引入了用户标签系统来让用户对电视剧和电影进行标记。图7展示了美剧《豪斯医生》的常用标签,可以看到,Hulu对标签做了分类,并展示了每一类最热门的标签。从类型(genre)看,豪斯医生是一部医学片(medical drama);从时间看,这部剧开始于2004年;从人物看,这部美剧的主演是hugh laurie,他在剧中饰演的人物是greg house。 enter image description here

图7 Hulu中《豪斯医生》的常用标签

从前面的各种应用可以看到,标签系统在各种各样的网站中(音乐、视频和社交等)都得到了广泛的应用。标签系统的最大优势在于可以发挥群体的智能,获得物品内容信息的比较准确的关键词描述,而准确的内容信息是提升个性化推荐系统的重要资源。

标签系统中的推荐问题


标签行为作为一种重要的用户行为,蕴含了很多反映用户兴趣的信息,因此深入研究用户的标签行为可以很好地指导个性化推荐系统提升自己的推荐质量。同时,标签作为一种重要的内容表示方式,比传统的内容属性表示更能反应用户对物品的看法,并且表示形式非常简单,便于很多算法处理。

标签系统中的推荐问题主要有以下两个。

  • 如何利用用户的标签行为给用户推荐物品(tag-based recommendation)?

  • 如何在用户给物品打标签时给用户推荐适合于该物品的标签(tag recommendation)?

为了研究上面的两个问题,我们首先需要解答下面三个问题。

  • 用户为什么要打标签(Why)?

  • 用户怎么打标签(How)?

  • 用户打什么样的标签(What)?

用户为什么要标注

在设计基于Tag的个性化推荐系统之前,我们需要深入了解用户的标注行为,知道用户为什么要标注,用户怎么标注,只有深刻地了解用户的行为,我们才能基于这个行为给用户设计出令他们满意的个性化推荐系统。

Morgan Ames研究图片分享网站中用户标注的动机问题3,他将用户标注的动机分解成两个维度。首先是社会维度,有些用户标注是为了给内容的上传者使用的,而有些用户标注是为了给广大用户使用的。令一个维度是功能维度,有些标注是为了更好地组织内容,方便用户将来的查找,而另一些标注是为了传达某种信息,比如照片的拍摄时间和地点等。

用户如何打标签

在互联网中,尽管每个用户的行为看起来是随机的,但其实这些表面随机的行为的背后蕴含着很多规律。在这一节中,我们通过研究美味书签的数据集,来发现用户标注行为中的一些统计规律。

德国的研究人员公布过一个很庞大的美味书签的数据集4,该数据集包含了2003年9月到2007年12月美味书签用户4.2亿条标签行为记录。本节选用该数据集2007年一整年的数据进行分析,对该数据集的统计特性进行研究。

本节将统计数据集的以下信息。

  • 用户活跃度的分布。

  • 物品流行度的分布。

  • 标签热门度的分布。

  • 用户标签行为随时间演化的曲线。

  • 用户相隔一段时间兴趣变化的情况。

  • 物品的生命周期。

*[****具体统计结果待书正式出版时公布**]*

用户打什么样的标签

用户在看到一个物品时,我们最希望他打的标签是能够准确描述物品内容属性的关键词。但用户往往不是按照我们的想法去操作,而是可能会给物品打上各种各样奇怪的标签。

Scott A. Golder 总结了美味书签上的标签,将它们分为如下的几类。

  • 表明物品是什么:比如是一只鸟,就会有“鸟”这个词的标签;是豆瓣的首页,就有一个标签叫“豆瓣”;是乔布斯的首页,就会有个标签叫“乔布斯”。

  • 表明物品的种类:比如在美味书签中,表示一个网页的类别的标签包括 article(文章)、 blog(博客)、 book(图书)等。

  • 表明谁拥有物品 :比如很多博客的标签中会包括博客的作者等信息。

  • 表达用户的观点:比如用户认为网页很有趣,就会有funny(有趣)的标签,认为很无聊,就会打上boring(无聊)的标签。

  • 用户相关的标签:有些标签,比如 my favorite(我最喜欢的)、my comment(我的评论)等。

  • 用户的任务:比如 to read(即将阅读)、 job search(找工作)等。

很多不同的网站也设计了自己的标签分类系统,比如Hulu对视频的标签就做了分类。

图8是著名的美剧《豪斯医生》的标签。可以看到,Hulu将电视剧的标签分成了几类。

  • 类型(Genre):主要表示这个电视剧的类别,比如《豪斯医生》是属于医学剧情片(medical drama),同时有喜剧(comedy)、悬疑(mystery)的成分。

  • 时间(Time):主要包括电视剧发布的时间,有时也包括电视剧中事件发生的时间,比如是二战期间,或者是上世纪90年代。

  • 人物(People):主要包括电视剧的导演、演员和剧中重要人物等。

  • 地点(Place):剧情发生的地点,或者是视频拍摄的地点等。

  • 语言(Language):这部电视剧使用的语言。

  • 奖项(Awards):这部电视剧获得的相关奖项。

  • 其他(Details):包含了不能归类到上面各类的其他所有标签。

enter image description here

图8 著名美剧《豪斯医生》在视频网站Hulu上的标签分类


1 文章名是Tagsplanations : Explaining Recommendations using Tags。

2 具体见http://en.wikipedia.org/wiki/Tag_(metadata)

3 具体见 Why We Tag: Motivations for Annotation in Mobile and Online Media

4 数据集见 http://www.dai-labor.de/en/competence_centers/irml/datasets/

下一篇

评论

推荐 0
聚类分析?

推荐 0
惊讶于lastfm上the beatles的tag里,british invasion那么小。

推荐 0
谢谢大家评论,这一章现在是作为样章放出来的,和最终出版的时候可能还不太一样,有些内容可能要放到前面的章节。另外,我参考了很多grouplens在这方面的工作。其实tag的部分和内容推荐有些重合,所以我这一章主要讨论UGC tag的问题。如果是作者或者编辑提供的tag,我准备就放到内容推荐部分了。

算法和后面的实验这几周会陆续公布,但样章中不会公布实验结果,只会包括算法。大家可以先自己实现一下,看看和最终出版时的实验结果是否一致,嘿嘿

推荐 0
用标签做内容管理时经常困惑。如果不时不时回头重新整理一遍,会越来越乱。
为什么会越来越乱?不太懂你的意思。 –  xlvector 2011-12-22 11:35
譬如,一开始有几个东西需要加标签,当时对他们的分类有个想法,以后每次给新的东西加标签时常常会遇到新情况或者新想法,而新想法可能会对之前的分类法有调整,这就影响到了之前加过的标签。。。 –  大头 2011-12-22 14:03
是有这个问题,特别是作者给标签的时候,比如我给我自己的博客文章打标签的时候就有这个问题。不过UGC的标签好一点,如果是做奉献的目的(方便别人搜索资源),那应该还行。 –  xlvector 2011-12-23 10:35

推荐 0
关注作者的进一步解读。

推荐 0
总结的很好,关于tag方面的研究,推荐参考Shilad和Jesse的一些文章:)

推荐 0
期待

推荐 0
必入的书籍啊

推荐 0
很有意思的内容。期待更多实战的介绍!
这两周就公布,不过阿稳说我python写的不专业,所以大家先凑和着看,最后出版时会让NB人review所有的代码,哈哈 –  xlvector 2011-12-22 11:36

推荐 0
用自然语言去描述推荐逻辑,在这个方面来说,中文比英文更有优势。

期待本书的更多章节。
何解?中文某些“词”的抽象层次和涵盖面也大,优势在哪里呢? –  梁涛 2011-12-14 15:57
准确的说是中国人容易看懂中文的 –  xlvector 2011-12-22 11:36

我要评论

需要登录后才能发言
登录未成功,请修改提交。

相关图书

封面
推荐系统实践