推荐系统 用户画像 标签聚类 个性化搜索

来源:互联网 发布:无线访客网络设置 编辑:程序博客网 时间:2024/05/16 10:49

最近在做短视频推荐,和别的部门配合着做,我们部门做用户画像这一部分。回头看看,我们部门以前做的用户画像只能称之为“所谓的用户画像”。如果一个人不懂用户画像还好指挥来指挥去真的让人无言,不知道其他公司的有没有这样的人儿那,哈哈,扯远了,言归正传。这篇文章只是对文献[1]的一个总结与实践,像我这种才学浅显的人只能照猫画虎了。
1、标签&标签问题
用户可以对物品打标签,这些标签存在:
(1)标签冗余。比如“父亲”与“爸爸”标签是一个意思。
(2)标签语意不明。如“苹果”可以是苹果手机、水果,也可能是纽约。
(3)各种噪音。拼写错误等。
既然存在问题,有没有能够缓解这种问题的办法呢?聚类就是其中的方法之一
2、标签聚类&聚类算法
“用聚类就行了,多简单!”总是说这句话的人要么是大牛,要么是浅薄。从概率上讲,大牛总是少的,浅薄总是多的,哈哈,老想扯点题外话,收拢回来。
聚类为什么可以缓解标签冗余、模糊和噪音等问题那。
(1)通过聚类,冗余的标签可能归结为一个簇。例如“父亲”与“爸爸”都是一个簇里的标签
(2)某一个标签语义可以通过簇里其他标签的语义加以明确。例如有一个簇:橘子,香蕉,苹果。在该簇中,苹果就是水果。
…………
说道聚类,就会涉及聚类算法。聚类算法很多,这里简单说一下“层次聚类算法”层次聚类PDF。这里借助一个例子简单说一下层次聚类。
这里写图片描述
如上图所示为层次聚类算法结果图。最上边的水平轴代表了相似度(combination similarity)。举例来说,当我们选择相似度为0.4作为分裂点的时候,我们就可以得到24个聚类簇。选择相似度0.1作为分裂点,就可以得到12个聚类簇。层次聚类不需要事先设定聚类的个数。
3、基于标签的个性化搜索算法
现在,标签已经聚类完成,那么则么计算用户与每个标签簇的关系,物品与每个标签簇的关系?
对于用户u对簇c的兴趣可以计算:
这里写图片描述
其中A表示<用户、物品、标签>记录条数,R表示物品(资源)集合,简单地说,就是用户大的标签中属于簇c的个数比上用户打的标签的总个数。
物品r对簇c的关系可以计算:
这里写图片描述
有了用户与标签簇的关系以及物品与标签簇的关系,那么就可以计算出用户对物品的感兴趣程度:
这里写图片描述
多说一句,计算出relevance(u,r)后就可以作为一种推荐粗过滤的线下模型,为线上推荐提供候选数据。
那么接下来的问题就是,如果用户输入一个标签,怎样根据用户画像为用户返回个性化推荐呢?
对于一个搜索q来说,可以计算出q与物品r的相似度,然后降序排列得到返回列表rankscore(q,r),如果把用户和物品之间的相似度考虑进来,对rankscore(q,r)进行重新排序,则可以返回个性化搜索结果:
这里写图片描述
到此,我们把用户profile,标签聚类,查询q作为输入,返回了个性化搜索结果p_rankscore

[1]Personalization in Folksonomies Based on Tag Clustering
Jonathan Gemmell, Andriy Shepitsen, Bamshad Mobasher, Robin Burke

1 0
原创粉丝点击