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


基于模型的推荐算法种类非常多 , 最常用的有矩阵分解算法、分解机算法等 。 目前深度学习算法、强化学习算法、迁移学习算法也在推荐系统中得到大规模采用 。
基于模型的推荐算法 , 基于用户历史行为数据、标的物metadata、用户画像数据等构建一个机器学习模型 , 利用数据训练模型 , 求解模型参数 。 最终利用该模型来预测用户对未知标的物的偏好 。 下面图就是基于模型的推荐系统模型训练与预测的流程 。
清澈如初|个性化推荐算法(推荐系统)概要基于模型的推荐算法有三类预测方式 , 一类是预测标的物的评分 , 基于评分的大小表示对标的物的偏好程度 。 第二类是采用概率的思路 , 预测用户对标的物的喜好概率 , 利用概率值的大小来预测用户对标的物的喜好程度 。 另外一类是采用分类的思路 , 将每个标的物看成一类 , 通过预测用户下一个(几个)标的物所属的类别来做推荐 。 矩阵分解算法就是预测用户对标的物的评分 , logistic回归算法就是概率预测方法 , 而youtube发表的深度学习推荐就是基于分类思路的算法(参见参考文献10) 。
【清澈如初|个性化推荐算法(推荐系统)概要】矩阵分解算法是将用户评分矩阵M分解为两个矩阵U、V的乘积 。 U代表的用户特征矩阵 , V代表标的物特征矩阵 。 某个用户对某个标的物的评分 , 就可以采用矩阵U对应的行(该用户的特征向量)与矩阵V对应的列(该标的物的特征向量)的乘积 。 分解机算法是矩阵分解算法的推广 , 这里不做介绍 。
随着最近几年深度学习在图像识别、语音识别领域的大获成功 。 有很多研究者及工业实践者将深度学习用于推荐系统 , 也取得了非常好的成绩 , 如youtube、Netflix、阿里、京东、网易、携程等 , 都将深度学习部署到了实际推荐业务中 , 并取得了非常好的转化效果(参考后面的参考文献中对应的论文) 。
强化学习及迁移学习等新的方法也开始在推荐业务中崭露头角 , 有兴趣的读者可以阅读文末对应的参考文献 。
3. 群组个性化范式
群组个性化范式需要先将用户分组 , 分组的原则是非常重要的 。 一般有如下两类分组方案 。
(1)基于用户画像圈人的推荐
先基于用户的人口统计学数据或者用户行为数据构建用户画像 。 用户画像一般用于做精准的运营 , 通过显示特征将一批人圈起来 , 对这批人做针对性的运营 。 在前面也做了介绍 , 这里不再说明 。
(2)采用聚类算法的推荐
聚类是非常直观的一种思路 , 将行为偏好相似的用户聚成一类 , 他们有相似的兴趣 。 常用的聚类策略有如下两类 。

  • a 将用户嵌入一个高维向量空间 , 基于用户的向量表示做聚类
将用户相关特征嵌入向量空间的方式有很多 , 下面都是非常主流的做法 。
采用基于内容推荐的思路 , 可以构建用户的特征向量(TF-IDF , LDA , 标签等 , 前面已经介绍过) 。 有了用户的特征向量就可以聚类 , 该类所有用户特征向量的加权平均就是该组用户的特征向量 , 再利用群组特征向量与标的物特征向量的内积来计算群组与标的物的相似度 , 从而为该群组做个性化推荐 。
采用基于用户的协同过滤的思路 , 可以构建用户和标的物的行为矩阵 , 矩阵的元素就是用户对标的物的评分 , 利用该矩阵的行向量就构建了一个衡量用户特征的向量 , 基于该特征向量可以对用户聚类 。 先对该组用户所有的特征向量求均值 , 可以取k个最大的特征 , 其他特征忽略不计(设置为0) , 最终得到该组用户的特征 。 最后就可以根据基于用户协同过滤的思路来为该组用户计算推荐列表了 。
利用矩阵分解可以得到每个用户的特征向量 , 我们可以用该组用户特征向量的均值来作为该用户组的特征向量 。 再利用用户组的特征向量与标的物特征向量的内积来计算群组对该标的物的偏好 , 所有偏好计算出来后 , 通过降序排列就可以为该组用户推荐topN的标的物列表了 。 前面我们提到的电视猫的重排序算法就是基于该思路实现的 。