清澈如初|个性化推荐算法(推荐系统)概要( 八 )


(2)基于用户行为的推荐
在一个成熟的推荐产品中 , 会包含很多用户的行为 , 如用户的收藏、点赞、购买、播放、浏览、搜索等 , 这些行为代表了用户对标的物的某种偏好 。 我们可以基于该用户行为来进行关联推荐 。 具体的策略有如下4类 。

  • a 比如常用的矩阵分解算法
可以将用户的行为矩阵分解为用户特征矩阵和物品特征矩阵 , 物品特征矩阵可以看成是衡量物品的一个向量 , 利用该向量我们就可以计算两个标的物之间的相似度了 。
  • b 采用嵌入的思路做推荐
用户的所有行为可以看成是一个文档 , 每个标的物可以看成是一个词 , 我们可以采用类似word2vec的思路 , 最终训练出每个词(即标的物)的向量表示 , 利用该向量表示可以计算标的物之间的相似度 。
  • c 我们可以将用户对标的物的所有操作行为投射到一个二维表(或者矩阵)上
行是用户 , 列是标的物 , 表中的元素就是用户对该标的物的操作(评分或者点击等隐式行为) , 通过这种方式我们就构建了一个二维表 。 这个二维表的列向量就可以用来表示标的物 。 这样我们就可以采用向量相似来计算标的物之间的相似度了 。
  • d 采用购物篮的思路做推荐 , 这种思路非常适合图书、电商等的推荐
经常一起购买(或者浏览)的标的物形成一个列表(一个购物篮) , 将过去一段时间所有的购物篮收集起来 。任何一个标的物 , 我们可以找到跟它出现在同一个购物篮的标的物及次数 , 统计完该次数后 , 我们就可以按照该次数降序排列 , 那么这个列表就可以当做标的物的关联推荐了 。 该推荐思路非常直观易懂 , 可解释性强 。 下面图就是亚马逊网站上采用该思路的两类关联推荐 。
清澈如初|个性化推荐算法(推荐系统)概要(3) 基于标签推荐
如果标的物是包含标签的 , 比如视频推荐 。 我们就可以利用标签来构建向量 , 每个标签代表一个维度 。 总标签的个数就是向量的维度 , 这样每个标的物就可以利用标签的向量来表示了 。 一般标的物的标签个数远远小于总标签的个数 , 所以这个向量是稀疏向量 。 这样我们就可以基于稀疏向量的表示来计算标的物之间的相似度了 。
(4)基于标的物聚类的推荐
我们可以将标的物按照某个维度聚类 , 同一类具备某些相似性 , 那么我们在推荐时 , 就可以将同一类的其他标的物作为关联推荐 。 我们需要解决的问题是 , 某些类可能数量很小 , 不够做推荐 , 这时可以采用一些策略来补充(如补充热门推荐等)不足的数量 。
5. 笛卡尔积范式
笛卡尔积范式的推荐算法一般可以先采用标的物关联标的物范式计算出待推荐的标的物列表 。 再根据用户的兴趣来对该推荐列表做重排(调整标的物列表的顺序)、增补(增加用户的个性化兴趣)、删除(比如过滤掉用户看过的)等 。 由于笛卡尔积范式的推荐算法在真实业务场景中使用不多 , 这里不再详细讲解 。
到目前为止 , 我们讲完了常用的召回策略 。 召回除了根据上面的一些算法策略外 , 还跟具体业务及产品形态有关 , 可以基于更多的其他维度(如时间、地点、用户属性、收入、职业等)来做召回 。
智能电视上的推荐 , 早上、白天、晚上推荐的不一样 , 节假日和平常推荐的也不一样 。 上班族早上需要上班 , 时间不充足 , 可能推荐短视频或者新闻更加合适 , 白天一般是老人在家 , 可以推荐戏曲、抗战类节目等 , 晚上主人回家又会推荐不一样的内容 。
基于地点的召回 , 要求在不同的地方推荐不一样的标的物 , 典型的应用有美团外卖 , 你在不同的地方 , 给你推荐的是你所在地附近几公里范围内的餐厅 。
个性化召回算法本章节主要讲解itemcf与usercf的基础理论部分与理论公式升级部分 , 并详细介绍itemcf与usercf的优缺点分析


推荐阅读