机器学习12推荐系统

推荐系统(Recommender Systems) 

推荐系统根据浏览用户过去买过什么书,或过去评价过什么电影来判断并推荐新产品给用户。

这些系统会为像亚马逊和网飞这样的公司带来很大一部分收入。

因此,对推荐系统性能的改善,将对这些企业的有实质性和直接的影响。


对机器学习来说,特征是很重要的,你所选择的特征,将对你学习算法的性能有很大的影响。因此,在机器学习中有一种大思想,它针对一些问题,可能并不是所有的问题,而是一些问题,有算法可以为你自动学习一套好的特征。推荐系统就是一个例子。


例子: 我们有 5 部电影和 4 个用户, 我们要求用户为电影打分。  




基于内容的推荐系统(Content Based Recommendations)

在一个基于内容的推荐系统算法中,假设对于希望推荐的东西有一些数据,这些数据是有关这些东西的特征。

在例子中,假设每部电影都有两个特征,如 x1代表浪漫程度,x2 代表动作程度。


下面我们要基于这些特征来构建一个推荐系统算法。 

假设我们采用线性回归模型,可以针对每一个用户都训练一个线性回归模型。



代价函数:



上面的代价函数只是针对一个用户的, 为了学习所有用户, 我们将所有用户的代价函数求和



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




在之前的基于内容的推荐系统中,对于每一部电影,我们都掌握了可用的特征,使用这些特征训练出了每一个用户的参数。

相反地,如果我们拥有用户的参数,我们可以学习得出电影的特征。


首先,用户要对拥有特征的电影进行评分,此时就可以学习出用户的偏好参数。

之后,上线新电影时,用户对其观看并打分,此时针对这个新电影,就可以根据用户的偏好参数来自动学习出电影的特征。

—————————————————————————————————————————————————————————


协同过滤(Collaborative Filtering)

但是如果我们既没有用户的参数,也没有电影的特征,这两种方法都不可行了。

协同过滤算法可以同时学习这两者。

优化目标改为同时针对 x 和 θ 进行:


对代价函数求偏导数的结果如下:


注:在协同过滤从算法中,我们通常不使用bias项,如果需要的话,算法会自动学得。  


协同过滤算法使用步骤如下:



对于电影 x(i)和另一电影 x(j),依据两部电影特征向量之间的距离 ||x(i)-x(j)|| 的大小,可以判断它们是否为同一类电影。


小结:



—————————————————————————————————————————————————————————


举例子:  

1.当给出一件产品时,你能否找到与之相关的其它产品。 

2.一位用户最近看上一件产品,有没有其它相关的产品,你可以推荐给他。 


我将要做的是:实现一种选择的方法,写出协同过滤算法的预测情况。
 

我们有关于五部电影的数据集,我将要做的是,将这些用户的电影评分,进行分组并存到一个矩阵中。 

我们有五部电影,以及四位用户,那么这个矩阵 Y 就是一个 5 行 4 列的矩阵,它将这些电影的用户评分数据都存在矩阵里:


推出评分:


找到相关影片:



现在既然你已经对特征参数向量进行了学习,那么我们就会有一个很方便的方法来度量两部电影之间的相似性。

例如说:电影 i 有一个特征向量 x(i),你是否能找到一部不同的电影 j,保证两部电影的特征向量之间的距离 x(i)和 x(j)很小,那就能很有力地表明电影 i 和电影 j 在某种程度上有相似,至少在某种意义上,某些人喜欢电影 i,或许更有可能也对电影 j 感兴趣。 

总结一下, 当用户在看某部电影 i 的时候,如果你想找 5 部与电影非常相似的电影,为了能给用户推荐 5 部新电影,你需要做的是找出电影 j,在这些不同的电影中与我们要找的电影 i 的距离最小,这样你就能给你的用户推荐几部不同的电影了。 

通过这个方法, 希望你能知道, 如何进行一个向量化的计算来对所有的用户和所有的电影进行评分计算。 同时希望你也能掌握, 通过学习特征参数, 来找到相关电影和产品的方法。



实现细节:均值归一(Implementational Detail_ Mean Normalization)



内容概要:本文介绍了基于SMA-BP黏菌优化算法优化反向传播神经网络(BP)进行多变量回归预测的项目实例。项目旨在通过SMA优化BP神经网络的权重和阈值,解决BP神经网络易陷入局部最优、收敛速度慢及参数调优困难等问题。SMA算法模拟黏菌寻找食物的行为,具备优秀的全局搜索能力,能有效提高模型的预测准确性和训练效率。项目涵盖了数据预处理、模型设计、算法实现、性能验证等环节,适用于多变量非线性数据的建模和预测。; 适合人群:具备一定机器学习基础,特别是对神经网络和优化算法有一定了解的研发人员、数据科学家和研究人员。; 使用场景及目标:① 提升多变量回归模型的预测准确性,特别是在工业过程控制、金融风险管理等领域;② 加速神经网络训练过程,减少迭代次数和训练时间;③ 提高模型的稳定性和泛化能力,确保模型在不同数据集上均能保持良好表现;④ 推动智能优化算法与深度学习的融合创新,促进多领域复杂数据分析能力的提升。; 其他说明:项目采用Python实现,包含详细的代码示例和注释,便于理解和二次开发。模型架构由数据预处理模块、基于SMA优化的BP神经网络训练模块以及模型预测与评估模块组成,各模块接口清晰,便于扩展和维护。此外,项目还提供了多种评价指标和可视化分析方法,确保实验结果科学可信。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值