您的位置:首页 > 其它

推荐系统——标签推荐系统:UGC的标签应用

2017-07-23 11:15 429 查看
UGC: user generated content, 用户生成的内容。
Delicious
允许用户给互联网的每个网页打标签,从而通过标签重新组织整个互联网。

CiteULike
是一个著名的论文书签网站,允许研究人员提交或者收藏自己感兴趣并且给论文打标签,帮助用户更好的发现与自己领域相关的优秀论文。

Last.fm
分析用户的听歌行为预测用户对音乐的兴趣,从而给用户推荐个性化的音乐。

豆瓣
允许用户对图书和电影打标签,借此获得图书和电影的内容信息和语义,并用这种信息改善推荐效果。

标签系统推荐中的问题有两个:
如何利用用户打标签的行为为其推荐物品

如何在用户给物品打标签时为其推荐适合该物品的标签

推荐算法

定义一个三元组(u,i,b)表示用户u给物品i打了标签b,如何推荐?

1、统计每个用户最常用的标签

2、对于每个标签,统计被打过这个标签次数最多的物品

3、对于一个用户,找到他常用的标签,找到具有这些标签的最热门的物品推荐给这个用户

用户u对物品i的兴趣公式如下:p(u,i)=∑bnu,bnb,i

其中nu,b是用户u打过标签b的次数,nb,i是物品i被打过标签b的次数。

但是该公式存在很多缺点:

1、倾向于给热门标签对应的热门物品很大的权重,借鉴TF-IDF的思想更新如下:

p(u,i)=∑bnu,blog(1+n(u)b)nb,ilog(1+n(u)i)

其中n(u)b记录了标签b被多少个不同的用户使用过,n(u)i记录物品i被多少个不同的用户打过标签。

2、对于新用户或者新物品,标签数量较少。进行标签扩展(常用话题模型),标签扩展的本质是对每个标签找到和它相似的标签,即计算标签之间的相似度。

3、并不是所有的标签都可以反映用户的兴趣,因此我们需要对标签进行清理。去除词频很高的停止词;去除词根不同造成的同义词(recommender system 和 recommendation system);去除分隔符造成的同义词(collaborative_filtering和collaborative-filtering);让用户反馈标签是否合适等。

基于图的推荐算法

利用图模型做基于标签数据的个性化推荐。

首先将用户打标签的行为表示到一张图上,对于三元组(u,i,b)在图中增加三条边:用户u对应的顶点v(u)和物品i对应的顶点v(i);v(b)和v(u); v(i)和v(b)之间加一条。如下图所示:



基于图的算法中,用户对物品的兴趣公式如下:

p(i|u)=∑bp(i|b)p(b|u)

公式假定用户对物品的兴趣通过标签传递,此时转化为基于图的推荐模型

但是此时我们的问题是:当用户u遇到物品i的时候,会给i打什么标签,重新设计顶点的启动概率如下:

rv(k)=⎧⎩⎨⎪⎪α(v(k)=v(u))1−α(v(k)=v(i))0(others)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  标签 ugc