- UGC: user generated content, 用户生成的内容。
- Delicious
- 允许用户给互联网的每个网页打标签,从而通过标签重新组织整个互联网。
- CiteULike
- 是一个著名的论文书签网站,允许研究人员提交或者收藏自己感兴趣并且给论文打标签,帮助用户更好的发现与自己领域相关的优秀论文。
- Last.fm
- 分析用户的听歌行为预测用户对音乐的兴趣,从而给用户推荐个性化的音乐。
- 豆瓣
- 允许用户对图书和电影打标签,借此获得图书和电影的内容信息和语义,并用这种信息改善推荐效果。
- 标签系统推荐中的问题有两个:
- 如何利用用户打标签的行为为其推荐物品
- 如何在用户给物品打标签时为其推荐适合该物品的标签
推荐算法
定义一个三元组
1、统计每个用户最常用的标签
2、对于每个标签,统计被打过这个标签次数最多的物品
3、对于一个用户,找到他常用的标签,找到具有这些标签的最热门的物品推荐给这个用户
用户u对物品i的兴趣公式如下:
其中
但是该公式存在很多缺点:
1、倾向于给热门标签对应的热门物品很大的权重,借鉴TF-IDF的思想更新如下:
其中
2、对于新用户或者新物品,标签数量较少。进行标签扩展(常用话题模型),标签扩展的本质是对每个标签找到和它相似的标签,即计算标签之间的相似度。
3、并不是所有的标签都可以反映用户的兴趣,因此我们需要对标签进行清理。去除词频很高的停止词;去除词根不同造成的同义词(recommender system 和 recommendation system);去除分隔符造成的同义词(collaborative_filtering和collaborative-filtering);让用户反馈标签是否合适等。
基于图的推荐算法
利用图模型做基于标签数据的个性化推荐。
首先将用户打标签的行为表示到一张图上,对于三元组
基于图的算法中,用户对物品的兴趣公式如下:
公式假定用户对物品的兴趣通过标签传递,此时转化为基于图的推荐模型
但是此时我们的问题是:当用户u遇到物品i的时候,会给i打什么标签,重新设计顶点的启动概率如下: