一、概述
u2tag2i:基于标签的泛化推荐,先统计用户偏好的tag向量,然后匹配所有的Item,(这个tag一般是item的标签、分类、关键词等tag),可以利用jaccard距离公式算相似性评分;
优点:
基于内容的推荐一般是推荐系统的起步阶段,而且会持续存在,其重要性不可替代。
(1) 为某一用户做推荐的时候不需要使用其他用户的数据。
(2) 产品冷启动阶段,新的物品要被推荐出去,首选内容推荐。
(3) 可解释性好,产品的特征决定了推荐值。
缺点:
(1) 某些物品的特征提取比较难。
(2) 过于专门化。永远不会推荐和用户曾经喜欢的物品不相干的物品,完全没有利用其它用户的喜好来提高对此用的推荐质量。
(3) 对于新用户有冷启动问题。新用户的用户画像为空,无法做出推荐。
新用户冷启动:推荐目前热度最高的物品、让新用户主动选择一些标签tag做推荐
适用场景:特别适合文本领域,比如新闻推荐等。核心在于把物品描述以及内容更好的利用起来。
二、整体流程
1、原始数据(music_meta)
musicid 音乐id desc 简单音乐描述信息(文本内容) catgory 音乐类别
对music_meta数据的简单描述信息desc进行抽取,然后将其作为物品的内容,然后进行分词,利用tf-idf进行关键词抽取,得到top3的关键词,能够得到物品的关键词表:
musicid 音乐id keywords 关键词列表(tag)
由u2u2i(上一篇博客) 可以知道基于用户听歌日志表得到用户对音乐的喜爱程度字段
userid , musicid, rating AS score
2、制作用户标签
3、物品标签(即关键词)和用户标签做相似匹配
物品标签做倒排优化:
原来:
musicid keywords
item_id: 刘德华、潘玮柏、周杰伦
倒排后:
(
刘德华,i1:0.3,i3:0.5,i7:0.7
潘玮柏,i2:0.8,i9:0.7,i11:0.1
)
用户标签:
user_id: 刘德华、潘玮柏
可以用基于jaccard距离:用户标签和物品标签的交集除以其并集,作为用户对物品的评分。