一文带你掌握推荐系统( 三 )


标签、关键词、实体、分类、主题、词嵌入向量等,都是内容推荐中的一些手段 。
基于内容推荐的核心是得到内容画像和用户画像,整体实现流程是先通过内容挖掘得到内容画像,然后基于用户的行为生成对应的用户画像,再基于用户画像和内容之间的相似度来给用户推荐不同的内容 。
举个栗子:
现在要推荐一个新的视频,但视频没有画像,无法推荐,只能随机推一部分流量先看下效果;
通过对标题文本进行分析之后发现这是个娱乐类的视频,这个时候就能定向推一部分用户了,效果会比随机推荐好;
经过对文本进一步分析后发现内容属于某影视剧的主题,那这个时候就可以基于该主题进行分发,会更精准一些;
通过对视频内容识别之后,发现视频中有XX明星,那这个时候推给Ta的粉丝,效果会更好 。
以上,就是在内容挖掘之后,基于内容画像进行的推荐 。
对于消费了该视频的用户,就可以打上XX标签、主题,然后再不断更新用户画像对应的维度和权重 。
此外在新内容冷启动的时候,也可以先计算和现有物品的相似度,然后再基于相似度推荐给可能感兴趣的人群 。
近邻推荐
也就是大名鼎鼎的基于用户的协同过滤和基于物品的协同过滤 。核心思想是物以类聚,人以群分…
基于用户的协同过滤
整体思想是找到和用户相似的群体,给用户推荐这群用户中比较流行但该用户没有听说过的东西 。
比如A点击喜欢了一篇文章,这个时候就可以给A推荐Ta所在群体中其他人喜欢,但是A没有看过的文章 。
这个策略的主要问题在于如何计算用户之间的相似度,通常的计算方法有两种:
【一文带你掌握推荐系统】计算用户之间的余弦相似度;
计算用户之间有正反馈物品的相似度,比如A喜欢了的文章和B喜欢了的文章有多少是重合的 。
基于物品的协同过滤
用户协同过滤的思想是计算用户-用户的相似度,物品协同过滤就是基于物品-物品相似度的推荐,先找到用户喜欢过的物品最相似的物品列表,然后给用户推荐这些物品 。
只不过这个物品-物品的相似度并不是直接计算得到的,而是通过喜欢物品一的用户和喜欢物品二的用户的交集来计算的,两个物品相似是因为它们出现在很多共同用户的喜好列表中 。
这里面需要注意的是热门物品和其他物品之间的相似度,理论上来说大多数用户都可能会喜欢热门物品,这样就可能造成热门物品-单个物品的相似度很高,所以需要适当的对热门物品进行降权处理 。
矩阵分解
矩阵分解可以看作是隐语义模型的一种实现方式,核心是为了获得物品和用户的隐向量,然后基于隐向量进行后续的计算和推荐 。
近邻推荐是基于用户-用户或者用户-物品矩阵中已有的数据去计算未知的数据,矩阵分解则是将这个矩阵分解为两个小矩阵,后续的计算不再使用原始矩阵,而是采用这两个小矩阵 。

一文带你掌握推荐系统

文章插图
 
比如分解用户-物品矩阵后得到用户u的向量是 Pu,物品i的向量是Qi,那么要计算物品i推荐给用户u的推荐分数,直接计算点积即可 。
矩阵分解有时也被称作SVD,但SVD 和矩阵分解不能划等号,因为除了SVD还有一些别的矩阵分解方法 。
比如加了用户隐式反馈行为和属性的SVD++,加了时间因素的Time-SVD,还有用来求解矩阵的交替最小二乘法ALS等…
基于关联规则的推荐
关联规则更多是基于统计模型的推荐,表现形式为A和B有很大的关联性,买了A我就给你推荐B 。
通常在电商中运用的比较多,比如买了个炒锅为你推荐锅铲,买了个手机为你推荐耳机等…
基于图模型的推荐
图模型指的是把用户行为表示为二分图模型,将个性化推荐算法放到二分图模型上 。
那给用户u推荐物品的问题就可以转化为度量用户顶点Vu和与它没有边相连的物品顶点在图上的相关性,相关性越高,物品在推荐列表中的权重越高 。
深度学习
CNN、RNN等…
混合推荐
通常情况下上面的这些算法大都是同时存在的,毕竟本身就会有N个推荐引擎 。
通常情况下,常见的混合策略一般是加权、交叉、切换、分级、分层…