本章主要讲的是如何利用利用用户的标签数据。推荐系统一种重要的工作方式是通过一些特征联系用户和物品,给用户推荐那些具有用户喜欢的特征的物品,而用户标签则是一种很重要的特征表现方式。标签一方面描述了用户的兴趣,蕴含了很多用户兴趣信息,同时也表示了物品的语义,从而将用户和物品联系起来。利用标签解决推荐问题的时候需要注意两个问题:
- 如何为用户设计合适的标签?
- 如何利用用户标签为其推荐物品?
如何为用户设计合适的标签?
标签是能够准确描述物品内容属性的关键词,需要根据具体任务来设定对应的标签。标签最好是系统设计者自己提供的,因为一般用户不是按照设计者的想法操作,而是可能会给物品打上各种奇怪的标签,这对后面的标签清洗带来了很多工作。文中作者对标签的设定写了两种案例。一个是对Delicious的标签总结,Delicious的标签大致包括这几类:
- 表明物品是什么
- 表明物品的种类
- 表明谁拥有物品
- 表达用户的观点
- 用户相关的标签
- 用户的任务
另外一个案例就是Hulu的标签,包括类型、时间、人物、地点、语言、奖项和其他(不能归到特定类的物品均放到其他这一类中)。
如何利用用户标签为其推荐物品?
首先就是要对标签进行清洗。不是所有的标签都能反应用户的兴趣,有些标签反而对推荐结果产生不好的影响,比如用户对一个视频打上“不好笑”的标签,那我们不能将“不好笑”作为该用户的标签而推荐一些“不好笑”的视频给他。而且,标签清洗的另外一个重要意义在于将标签作为推荐解释,清洗后的标签质量得到了提高,从而使得推荐结果更加有说服力。一般标签清洗的方法有下面这些:
- 去除词频很高的停止词
- 去除因词根不同造成的同义词,比如recommender system和recommendation system
- 去除因分隔符造成的同义词,比如collaborative_filtering和collaborative-filtering
- 让用户反馈来修正标签
基于用户标签数据的推荐算法,作者主要还是提出了基于统计信息(根据标签对用户和物品进行统计找联系)或者基于图算法(计算用户和物品之间路径上的权重乘积)的那一套。不过我感觉现在都是直接将标签作为一种特征,对其进行one-hot编码或者直接归一化后传到神经网络中即可。
个人总结:这一章给我印象最深刻的就是标签的推荐解释功能。推荐系统的一个关键点就在于要有说服力。想想看在没有推荐系统的时候我们是怎么寻找物品的?一种很重要的方式就是好友的推荐,好友的一般靠谱,值得信赖,所以推荐系统的一个关键就在于推荐要有说服力,而标签就是提高推荐说服力的一个有力工具。其实有时候用户自己也不知道自己喜欢什么,这时候来个标签对物品进行一个简要的归类,很可能就能让用户对推荐的物品产生兴趣从而购买。不过推荐系统的设计者最好提前设计好一些有用的标签,从而方便用户输入标签(如果要自己写标签,很多用户可能觉得麻烦而不想写),提高标签质量(标签标准没法统一,后面的清洗工作加大)。
网友评论