推荐系统是机器学习中的一个重要的应用。对机器学习来说特征选择是很重要的,所选择的特征将对学习算法的性能有很大的影响,推荐系统可以自动学习一套好的特征。具体应用:

  1. 降低信息过载,提高站点的点击率/转化率。
  2. 加深对用户的了解,为用户提供定制化服务。
  3. 帮助用户找到想要的商品,可以让小众的用户找到自己感兴趣的内容(长尾理论)。

推荐系统采用的算法有:基于内容的算法、协同过滤算法、基于模型的算法(用机器学习来预测)、混合算法(现实应用中一般通过给不同算法的结果加权重来综合结果)。

3.4.1 基于内容的推荐系统

基于内容的推荐系统的概念:

基于内容的推荐系统:根据用户对物品的评价历史,以及物品之间的相似度进行推荐。

算法主要步骤:

  1. 物品表征建模:从物品中抽取出一些特征来表示该物品。
  2. 用户喜好特征建模:从用户对某些物品的历史评价中,学习用户的偏好模型。
  3. 推荐物品:通过匹配某一用户的偏好及候选物的特征,为此用户推荐一组相关性最大的物品。

基于内容的电影推荐系统:

电影推荐

模型:用户数量\(n_u\)、电影数量\(n_m\)、若用户\(j \)给电影i打过分则\(r(i,j)=1\)、用户\(j \)给电影\(i\)的评分\(y^{(i , j)}\)、用户\(j \)评过分的电影总数\(m^{(j)}\)
用户\(j\)的参数向量:电影\(i\)的特征向量:用户\(j \)对\(i\)电影评分预测为基于内容的推荐系统的算法如下:

代价函数:</br>
用户\(j\)代价函数:
所有用户的代价函数:

梯度下降算法:</br>

3.4.3 协同过滤算法

协同过滤的概念:

基于用户的协同算法:分析各个用户对物品的评价(通过浏览记录、购买记录等)->依据用户对物品的评价计算得出所有用户之间的相似度->选出与当前用户最相似的N个用户->将这N个用户评价最高并且当前用户又没有浏览过的物品推荐给当前用户。</br>
基于物品的协同算法:分析各个用户对物品的浏览记录->依据浏览记录分析得出所有物品之间的相似度->对于当前用户评价高的物品,找出相似度最高的N个物品->将这N个物品推荐给用户。

基于协同过滤的电影推荐系统:

自学习电影和用户的特征:</br>

  • 若掌握了每一部电影的可用特征,使用这些特征可训练出每一个用户的参数:\(θ^{(1)} ,…, θ^{(n_u)}\)
  • 若拥有用户的参数,就可以学习得出所有电影的特征:\(x^{(1)} ,…, x^{(n_m)}\)
  • 协同过滤在既没有用户的参数,也没有电影的特征,可以同时学习用户参数以及电影特征:
    \(θ→x→θ→⋯\)
  • 代价函数:
  • 梯度下降:

推荐系统应用注意点:

如何推荐:

均值归一化:

  • 计算每部电影的评分平均值\(μ_i\)。
  • 将每一个用户对某一部电影的评分减去对该电影的评分平均值。
  • 用新的数据集训练算法。
  • 预测出来的评分,需将平均值重新加回去:

电影推荐均值归一化