13.推荐系统

news/2024/12/2 19:50:05/

例如一个电影推荐系统,一共有n个用户,m个电影,每部电影都有一定的特征,例如爱情片的比例、动作片的比例。n个用户对看过的电影进行评分,推荐系统如何给用户推荐新电影,预测用户对新电影的评分?

预测一个给电影打分的系统。

先介绍一些符号:

  • n_u:表示用户数量
  • n_m:表示电影数量
  • r(i,j):代表用户j给电影i进行了评价
  • y^{(i.j)}:表示用户j对电影i所给出的评分

则推荐系统的问题是:给出了r(i,j)y^{(i.j)}数据,然后去查找那些没有被评级的电影并试图预测这些电影的评价星级。

13.1 内容推荐算法

可以使用线性回归的方法进行训练,得到用户对于特征的参数\theta,之后就可以根据\theta^T对电影进行打分。

  • r(i,j):代表用户j给电影i进行了评价
  • y^{(i.j)}:表示用户j对电影i所给出的评分
  • \theta^{(j)}:是每个用户x^{(i)}的一个参数
  • x^{(i)}:是特定电影的一个特征向量
  • m^{(j)}:评价了电影j的用户数量

优化目标函数是:

内容推荐算法:因为假设变量是已有的,即不同电影的各个特征,我们有描述电影内容的特征量,这个电影的爱情程度怎样、动作成分有多少,同时我们用了这些描述电影内容特征量来做出预测。但对于许多电影来说,我们并没有这样的特征量或者很难获取所有电影的此类特征或者其他我们销售的东西。

13.2 协同过滤

协同过滤算法能自行学习所要使用的特征。

我们无法得到每部电影中不同特征的比例,例如电影中爱情和动作的比例?除非人工审核每一部电影,但是太耗时。这里有一个思路,首先用户根据自己的喜好对特征打分,通过计算可以大致确定已经打过分的电影它的特征值,根据已经确定的特征值,又可以计算出每个用户对这部电影的评分。

 假设我们的用户告诉了我们的偏好,也就是说用户们给了我们\theta^{(1)}...\theta^{(n_{u})}的值,而我们想要学习的电影i的特征向量x^{(i)},能做的就是提出以下优化问题:

先有鸡还是先有蛋…

根据特征向量x^{(i)}可以以通过线性回归得到用户的\theta向量,通过用户提供的\theta向量可以估计每部电影的特征数值。这就有点像鸡和蛋的问题。我们可以随机选取x^{(i)}向量计算得到特征数值,然后再通过线性回归去更新\theta,这样不停的迭代直到最后的收敛。

如果你有了电影的特征,就可以解出这个最小化问题找到用户参数\theta;如果你拥有参数\theta,也可以用该参数估计特征x。我们也可以将两种函数合并为一个目标函数:

  1. 首先我们会把x\theta初始为小的随机值,这里有点像神经网络训练
  2. 要用梯度下降或者其他高级的优化算法把这个代价函数最小化,如果求导的话,会发现梯度下降法写出的更新式如下图第二点所示
  3. 最后给你一个用户,如果这个用户有一些参数\theta以及给你一部电影带有已知的特征x,我们可以预测该用户给这部电影的评分\theta^Tx

13.3 矢量化-低秩矩阵分解

可以把n个用户对m部电影的评分结果表示为m\times n的矩阵

这个矩阵可以表示为X\theta^T

“低秩矩阵”表示,行、列都具有相关性。通俗来讲,就是可以用一部分的行、列来表示另一部分行、列。

通过特征值之间的偏差,我们可以找到类型相近的电影。

13.4 均值规范化

之前无论是参数\theta特征x,都基于每个用户都对多个电影进行的评分,每部电影也被多个用户评分。对于新用户,他可能还没有对任何一部电影进行评分,一种思路就是把所有用户对每部电影的评分的均值作为新用户的初始评分。


http://www.ppmy.cn/news/471349.html

相关文章

学习HCIP的day.15

目录 三层架构 一、网络拓扑冗余 1、线路冗余 2、设备冗余 3、网关冗余 4、电源冗余 二、三和一(网关、根网桥、SVI) 三、管理vlan 四、三层交换机 五、网关冗余 六、名词注解: 七、数据交换方法: 1、原始交…

内核模块代码解析与模块的传参和依赖

一、内核模块基础代码解析 Linux内核的插件机制——内核模块 类似于浏览器、eclipse这些软件的插件开发,Linux提供了一种可以向正在运行的内核中插入新的代码段、在代码段不需要继续运行时也可以从内核中移除的机制,这个可以被插入、移除的代码段被称为…

Sony/索尼 NW-ZX300A ZX300 无损音乐播放器4.4口

https://item.taobao.com/item.htm?spma1z0d.7625083.1998302264.6.5c5f4e69ELHOcm&id557859816402 (特价3天)Sony/索尼 NW-ZX300A ZX300 无损音乐播放器4.4口 转载于:https://www.cnblogs.com/pengmn/p/10381174.html

【ZLR-T81 200A漏电继电器】

系列型号: ZLR-T81漏电继电器 ZLR-T81+ZCT-35漏电继电器 ZLR-T81+ZCT-80漏电继电器 ZLR-T81+ZCT-120漏电继电器 一、产品用途 ZLR-T81漏电继电器(以下简称继电器)适用于交流电压为380.660V.至1140V系统中…

运算放大器---虚短和虚断

运算放大器—虚短和虚断 前言 运算放大器两板斧:“虚短”“虚断” 虚短:在分析运算放大器处于线性状态时,可把两输入端视为等电位,这一特性称为虚假短路,简称虚短;当某一端接地的时候:V- V …

在职族必看!不露痕迹面试,拿到心仪offer的4个绝密技巧!求职软件屏蔽功能根本毫无作用!...

为了无缝衔接,许多人都会选择在职找工作,但如果被当前公司发现,很可能会酿成职业生涯的一次悲剧。 一位网友问:在职面试怎么避免被当前公司发现?boss直聘上的屏蔽功能是不是没用? 网友扎心回复:…

运放(一)-虚短虚断与深度负反馈

一、深度负反馈 一个运算放大器,其输出电压 其中A为运放的开环增益。 对于上图所示的负反馈电路,反馈系数为F,其负相输入电压 (1)与(2)联立可以得到 其中1AF称为反馈深度,当1AF远大于1时,称电路处于深度负反馈状态。 对…

RxJava2 背压

1 背压 在RxJava中,会遇到被观察者发送消息太快以至于它的操作符或者订阅者不能及时处理相关的消息,这就是典型的背压(Back Pressure)场景。 BackPressure经常被翻译为背压,背压的字面意思比较晦涩,难以理解。它是指在异步场景下&…