推荐系统
此系列笔记来源于
Coursera上吴恩达老师的机器学习课程
推荐系统
基于内容的推荐算法
上图是一个 四位用户 对 五部电影的打分情况 加上 各电影的特征值
对于每个电影的特征值 我们还要加上特征的截距项
如
接下来要用线性回归模型来构建一个推荐系统算法,我们对每个用户都训练一个线性回归模型。
其中 表示我们只计算那些用户 j 评过分的电影。在一般的线性回归模型中,误差项和正则项应该都是乘以 ,在这里我们将 m 去掉,因为这并不影响我们最小化代价函数。并且我们不对方差项进行正则化处理。
如果用梯度下降法求解,更新公式为:(偏导数部分已计算)
协同过滤
之前我们是根据可用的特征,训练出了每位用户的参数,但相反地,如果我们拥有用户的参数,我们也可以来学习得出电影的特征。
在这里,协同过滤算法便指的是 我们可以根据不同用户的评分,及参数,来学习电影的特征值,进而我们又可以用这些特征值去更好地预测用户的评分,就这样来不断的优化算法。
然而借由 预测 ,再借由 预测 …… 这一过程我们可以高效地用一个式子来进行:
步骤:
1、初始化 为一些随机的小值
2、使用梯度下降算法最小化代价函数
3、训练完算法后,我们便可以预测为用户 j 给电影 i 的评分
向量化
我们先将 所有用户对所有电影的评分 放在一个矩阵中
记作 表示第j名用户对第i部电影的评分
例:
我们的预测值:
我们可以将电影的特征和用户的参数转化为一个大矩阵
这被称为低秩矩阵分解,接着计算这个预测评分的矩阵
另外在这里将不再需要 和
寻找相关内容
对于电影 i 有特征 ,电影 j 有特征
当电影 i 和 电影 j 相关时,只需要 较小即可
找到与电影 i 最相关的五部电影,就是找到 最小的五部电影 j
均值归一化
还是刚才的例子,此时我们增加一名新的用户 Eve,她从未对电影评过分
如果我们按照之前的步骤,那么我们最后计算出来 Eve的参数矩阵一定是零矩阵,那我们以什么为依据为 Eve 推荐电影呢?
这里我们就要用到均值归一化。
我们先对已知的其他用户对各个电影的评分求一个平均值,再将这些评分减去各个电影对应的均值
就是均值矩阵
接着我们对这个新得到的 Y 矩阵来训练算法,步骤和之前一样。
如果我们要用这个新训练出来的算法预测评分,我们只需要预测的评分加上均值即可,即 ,对于 Eve,新模型便会认为她给每部电影的评分都是平均分
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?