基于内容的推荐系统:利用item之间的相似度,为用户推荐与之前选择过的物品最相似的物品;能够解决冷启动的问题。
主要任务:计算item-profile、计算user-item(推荐列表top-k 或者计算预测评分)、评估;
1.item-profile:
获得item的主要特征,根据实际需求,特征获得方式有较大差别;
比如:
电影特征:导演、演员、题材、制片方、简介、上映时间;
利用电影特征构造特征向量,计算相似度。离散值:0、1向量表示;连续值可以取平均值作为其特征,比如所有看过这个电影的用户给予的平均分作为其特征。
两个电影,每个都有5个演员,并且有有两个演员同时演了这两部电影,已知这两个电影的用户平均分是3,4分,则向量表示为:a表示权重,可以适当的调整。
0 1 1 0 1 1 0 1 3a
1 1 0 1 0 1 1 0 4a
计算余弦相似度即可。
文档特征(新闻、网页、书等):作者、出版时间、题材、摘要、分类;
文档、图片类型的特征提取方法:
将文档内容分词、去停用词、计算TF.IDF(或者word2Vector),将得分最高的词条作为特征,或者根据阙值计算。这些关键词就是这篇文档的特征代表,向量话,方便后面的相似度计算。
相似度计算:word2vec 计算相似度、jaccard 相似度(计算共现的比例)、余弦相似度、LSH算法;
图片的本身文字的信息较少:可以从tags中获得,(tags收集用户的评论、描述、标签)注:同时还有标签推荐系统,帮助用户推荐标注标签。
2.user-profile
效用矩阵:
boolean值:1代表喜欢(看过),0代表不喜欢(没看过);
user-item 0-1矩阵
value值:rating值;
直接是user-item的评分矩阵
(可以正则化处理,每个评分-用户的平均打分值;大于0表示积极的喜欢,负数表示不喜欢)user-item特征矩阵
比如:成龙(特征)演过三个电影,用户U对这三个电影的打分分别为:3,4,5。用户U的所有的打分的平均分是3分,则可以就算出用户U对成龙这个特征的偏好值:((3-3)+(4-3)+(5-3))/3=1;同理计算出其他特征的偏好;构造出与item-profile结构一样的矩阵,点item向量与user-profile点乘就能够预测出所有没有看过电影的分值,然后将分值高的推荐给用户;算法的评估MAE等。
其他计算方式:
核心思想:未打过分的item 与已评item计算相似度,并加权求和,在取平均值,获得itemList
将item 分成两部分(用户U看过的S,没有看过的V);
取V中的一个v,计算它和S中的相似度的的加权平均分;(权重即为U对S的评分)
遍历V,可以得到用户U的一个item的偏好列表值,top-k 推荐。
网友评论