基于内容推荐系统

基于内容的推荐系统:利用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 推荐。

3评估

你可能感兴趣的:(基于内容推荐系统)