tag推荐系统的关键问题以及解决方案
,其中 表示通过改query点击url的次数除以通过query点击所有url的总次数。
同时 , 表示通过通过q访问u的次数除以通过所有qeury访问u的总次数,不停地迭代,最后将seed中的tag扩散出去,针对每个url/query,去概率最大的几个tag。
tag推荐当有了tag数据后,就是利用tag完成那两个产品推荐,首先说明一下可能的feature
1.用户user 使用tag的次数
2.item被打上tag的次数
3,tag被多少个user使用过
4.tag被用在多少个item上面
5.p(tag|user)
6.p(item|tag)
7.p(tag|item)
8.p(user|tag)
利用这些数据以及常用的理论,进行推荐:
1.基于tag给用户推荐item计算user对item的喜好程度,最直接的做法 用户使用tag越多,tag用户item的越多,那么用户可能越喜欢。
很容易想到万能的tf-idf,如果这个tag被其他用户用过的越少,说明这个tag也能代表user的兴趣,同样如果item被使用的其他的tag越少,tag越能刻画item,转化为:
也可以利用 概率模型直接算,p(u,i) = 。
在实际使用时,无法两类,基于用户还是基于item,比如item-based,用户最近访问的item,选取item最可能的属于的tag,p(tag|item)分值较大的,然后将这个tag热门的内容推荐出来,p(item|tag)比较大的item,准确率可能比较低,但是复杂度低。
2.tag推荐两个思路,推荐用户常用的tag以及item上常用的tag,也就是 大的tag列表。
<推荐系统实践>做过对比试验,两个都提供,用户使用的概率最大,所以类似douban等都会将内容提供出来
一些思考:tag是连接user 和item的手段,更清楚的表达的用户的意图,比较像topic model,在user-item中间引入一层具备 语义信息的概念。