本周中主要讲解了推荐系统的相关知识。推荐系统应该是目前机器学习领域或者说人工智能领域最热门的方向之一,还有NLP、CV等,主要内容包含:
常见的推荐系统有三种主要的应用常景:
推荐系统对用户的核心价值,主要表现在:
推荐系统的主要工作是:
个性化推荐系统解决的是用户很内容的关联关系,它是二者之间的桥梁。基于用户的兴趣偏好,把用户感兴趣的物品或者视频、资讯等推荐给用户,给用户带来沉浸式的体验。
推荐系统应用的十分广泛:如果你考虑网站像亚马逊,或网飞公司或易趣,或iTunes Genius,有很多的网站或系统试图推荐新产品给用户。如,亚马逊推荐新书给你,网飞公司试图推荐新电影给你,等等。
这些推荐系统,根据浏览你过去买过什么书,或过去评价过什么电影来判断。这些系统会带来很大一部分收入,比如为亚马逊和像网飞这样的公司。
因此对推荐系统性能的改善,将对这些企业的有实质性和直接的影响。
通过一个栗子来了解推荐系统
假使我们是一个电影供应商,我们有 5 部电影和 4 个用户,我们要求用户为电影打分

前三部是爱情片,后面两部是动作片。Alice和Bob更倾向于爱情片,Carol和Dave更倾向于动作片。一些标记
在一个基于内容的推荐系统算法中,我们假设对于我们希望推荐的东西有一些数据,这些数据是有关这些东西的特征。现在假设电影有两个特征:

那么每部电影都有一个特征向量,如第一部电影的是[0,9 0]
针对特征来构建一个推荐系统算法。假设使用的是线性回归模型,针对每个用户使用该模型,\theta^{(1)}表示的是第一个用户的模型的参数。定义如下:
针对电影i和用户 j,该线性回归模型的代价为预测误差的平方和,加上正则化项:

其中 i:r(i,j)表示我们只计算那些用户 j 评过分的电影。在一般的线性回归模型中,误差项和正则项应该都是乘以1/2m,在这里我们将m去掉。并且我们不对方差项\theta_0进行正则化处理。
针对所有用户的代价函数求和:

如果我们要用梯度下降法来求解最优解,我们计算代价函数的偏导数后得到梯度下降的更新公式为:

上面基于内容的过滤算法是通过电影的特征,使用特征来训练出每个用户的参数。相反,如果使用用户的参数,也可以学习得出电影的特征:

如果没有用户的参数和电影的特征,协同过滤算法便可以同时学习这两者

对代价函数求出偏导数的结果是:

协同过滤算法的过程:
协同过滤的优化目标:

协同过滤算法可以做的事情:
假设5部电影,4位用户,存放在矩阵中:
Movie | Alice (1) | Bob (2) | Carol (3) | Dave (4) |
|---|---|---|---|---|
Love at last | 5 | 5 | 0 | 0 |
Romance forever | 5 | ? | ? | 0 |
Cute puppies of love | ? | 4 | 0 | ? |
Nonstop car chases | 0 | 0 | 5 | 4 |
Swords vs. karate | 0 | 0 | 5 | ? |
推出相应的评分

找出类似的影片


上图中,假设新来个用户Eva,他没有对任何的电影进行评分,那我们以什么依据来给他推荐电影呢?
