推荐系统(Recommender Systems)

1.问题形式化

举例:亚马逊推荐新书给你,网飞公司试图推荐新电影给你,等等。这些推荐系统,根据浏览你过去买过什么书,或过去评价过什么电影来判断。这些系统会带来很大一部分收入,比如为亚马逊和像网飞这样的公司。因此,对推荐系统性能的改善,将有实质性和直接的影响。
对机器学习来说,特征是很重要的,你所选择的特征,将对你学习算法的性能有很大的影响。因此,在机器学习中有一种大思想,它针对一些问题,可能并不是所有的问题,而是一些问题,有算法可以为你自动学习一套好的特征。
我们从一个例子开始定义推荐系统的问题:
假使我们是一个电影供应商,我们有 5 部电影和 4 个用户,我们要求用户为电影打分。
推荐系统(Recommender Systems)_第1张图片
前三部电影是爱情片,后两部则是动作片,我们可以看出 Alice 和 Bob 似乎更倾向与爱情片,而 Carol 和 Dave 似乎更倾向与动作片。并且没有一个用户给所有的电影都打过分。
我们希望构建一个算法来预测他们每个人可能会给他们没看过的电影打多少分,并以此作为推荐的依据。
推荐系统(Recommender Systems)_第2张图片

2.基于内容的推荐系统

在一个基于内容的推荐系统算法中,假设对于我们希望推荐的东西有一些数据,这些数据是有关这些东西的特征。
案例:假设每部电影都有两个特征,如1代表电影的浪漫程度,2代表电影的动作程度.
推荐系统(Recommender Systems)_第3张图片
推荐系统(Recommender Systems)_第4张图片
上面的代价函数只是针对一个用户的,为了学习所有用户,将所有用户的代价函数求和:
推荐系统(Recommender Systems)_第5张图片

3.协同过滤

在之前的基于内容的推荐系统中,对于每一部电影,都掌握了可用的特征,使用这些特征训练出了每一个用户的参数。相反地,如果拥有用户的参数,我们可以学习得出电影的特征。
推荐系统(Recommender Systems)_第6张图片
注:在协同过滤从算法中,我们通常不使用方差项,如果需要的话,算法会自动学得。协同过滤算法使用步骤如下:
推荐系统(Recommender Systems)_第7张图片
通过这个学习过程获得的特征矩阵包含了有关电影的重要数据,这些数据不总是人能读懂的,但是可以用这些数据作为给用户推荐电影的依据。
例如,如果一位用户正在观看电影 (),我们可以寻找另一部电影(),依据两部电影的特征向量之间的距离∥() − ()
∥的大小。
协同过滤(Collaborative Filtering)是一种常用的推荐系统算法。它基于用户的历史行为和与其他用户的相似性来预测用户可能喜欢的物品或内容。

协同过滤算法有两种主要类型:基于用户的协同过滤和基于物品的协同过滤。

基于用户的协同过滤通过比较用户之间的历史行为,找到具有相似行为模式的用户,然后给目标用户推荐这些相似用户喜欢的物品。

基于物品的协同过滤则是通过比较物品之间的相似性来进行推荐。它会根据用户的历史偏好,找到与用户已经喜欢的物品相似的其他物品,并将这些物品推荐给用户。

协同过滤算法的优点是能够根据用户的实际行为和偏好进行推荐,而不需要事先知道物品的详细信息。然而,它也存在一些挑战,如稀疏性问题(即用户与物品之间的交互数据往往是稀疏的)、冷启动问题(对于新用户或新物品如何进行推荐)等。

4.协同过滤算法

推荐系统(Recommender Systems)_第8张图片

5.向量化:低秩矩阵分解

学习协同过滤算法的向量化实现,以及说说有关该算法你可以做的其他事情。
举例子:
1.当给出一件产品时,你能否找到与之相关的其它产品。
2.一位用户最近看上一件产品,有没有其它相关的产品,你可以推荐给他。
我将要做的是:实现一种选择的方法,写出协同过滤算法的预测情况。
我们有关于五部电影的数据集,我将要做的是,将这些用户的电影评分,进行分组并存到一个矩阵中。我们有五部电影,以及四位用户,那么 这个矩阵 就是一个 5 行 4 列的矩阵,它将这些电影的用户评分数据都存在矩阵里:
推荐系统(Recommender Systems)_第9张图片
推荐系统(Recommender Systems)_第10张图片
有一个很方便的方法来度量两部电影之间的相似性。例如说:电影 有一个特征向量(),你是否能找到一部不同的电
影 ,保证两部电影的特征向量之间的距离()和()很小,那就能很有力地表明电影和电影 在某种程度上有相似,至少在某种意义上,某些人喜欢电影 ,或许更有可能也对电影
感兴趣。总结一下,当用户在看某部电影 的时候,如果你想找 5 部与电影非常相似的电影,为了能给用户推荐 5 部新电影,你需要做的是找出电影 ,在这些不同的电影中与我
们要找的电影 的距离最小,这样你就能给你的用户推荐几部不同的电影了。

6.推行工作上的细节:均值归一化

案例:
来看下面的用户评分数据:
推荐系统(Recommender Systems)_第11张图片
如果我们新增一个用户 Eve,并且 Eve 没有为任何电影评分,那么我们以什么为依据为 Eve 推荐电影呢?
我们首先需要对结果 矩阵进行均值归一化处理,将每一个用户对某一部电影的评分减去所有用户对该电影评分的平均值:
推荐系统(Recommender Systems)_第12张图片
在这里插入图片描述

你可能感兴趣的:(人工智能,机器学习)