推荐系统--矩阵分解(2)

推荐系统–矩阵分解(1)
推荐系统–矩阵分解(2)
推荐系统–矩阵分解(3)
推荐系统–矩阵分解(4)
推荐系统–矩阵分解(5)
推荐系统–矩阵分解(6)

3 BiasSVD:考虑偏置

有一些用户会给出偏高的评分,有一些物品也会收到偏高的评分,比如电影观众为铁粉,一些受某时期某事件影响的电影。所以需要考虑偏置对评分的影响,其公式如下:
L(θ)=arg⁡min⁡⏟pu,qi∑u,i(rui−μ−bu−bi−puTqi)2+λ(∥pu∥22+∥qi∥22+∥bu∥22+∥bi∥22)(4)\begin{aligned} L(\theta)=\underbrace{\arg \min }_{p_{u}, q_{i}} \sum_{u, i}\left(r_{u i}-\mu-b_{u}-b_{i}-p_{u}^{T} q_{i} \right)^{2} \\ +\lambda\left(\left\|p_{u}\right\|_{2}^{2}+\left\|q_{i}\right\|_{2}^{2}+\left\|b_{u}\right\|_{2}^{2}+\left\|b_{i}\right\|_{2}^{2}\right) \end{aligned} \tag4L(θ)=pu,qiargminu,i(ruiμbubipuTqi)2+λ(pu22+qi22+bu22+bi22)(4)
符号说明:
用户的预测评分为:rui^=puTqi+μ+bu+bi\hat{r_{ui}} = p_{u}^T q_{i} + \mu + b_{u} + b_{i}rui^=puTqi+μ+bu+bi
偏差为:eui=rui−rui^e_{ui}=r_{ui}-\hat{r_{ui}}eui=ruirui^
μ\muμ:训练集中所有评分记录的全局平均数,表示了训练数据的总体评分情况,对于固定的数据集,它是一个常数;
bub_ubu:用户uuu的偏置,独立于物品特征的因素,表示某一特定用户的打分习惯。例如,对于批判性用户对于自己的评分比较苛刻,倾向于打低分;而乐观型用户则打分比较保守,总体打分要偏高;
bib_ibi:物品iii的偏置,特立于用户兴趣的因素,表示某一特定物品得到的打分情况。以电影为例,好片获得的总体评分偏高,而烂片获得的评分普遍偏低,物品偏置捕获的就是这样的特征。
对公式(4)求偏导,理后可以得到迭代公式为:
pu,k=pu,k+η(euiqk,i−λpu,k)qk,i=qk,i+η(euipu,k−λqi,k)bu=bu+η(eui−λbu)bi=bi+η(eui−λbi)(5)\begin{aligned} p_{u, k} &=p_{u, k}+\eta\left(e_{u i} q_{k, i}-\lambda p_{u, k}\right) \\ q_{k, i} &=q_{k, i}+\eta\left(e_{u i} p_{u, k}-\lambda q_{i, k}\right) \\ b_{u} &=b_{u}+\eta\left(e_{ui} -\lambda b_{u}\right) \\ b_{i} &=b_{i}+\eta\left(e_{ui} -\lambda b_{i}\right) \end{aligned} \tag5 pu,kqk,ibubi=pu,k+η(euiqk,iλpu,k)=qk,i+η(euipu,kλqi,k)=bu+η(euiλbu)=bi+η(euiλbi)(5)

4 SVD++:增加历史行为

通过观看B站上的视频,终于把SVD++核心思想搞清楚了:

  • 它是来探索物品与物品之间关联关系的,比如对逃学威龙1评分高的人,可能也会给逃学威龙2高评分;
  • 由于需要探索物品与物品之间的关联关系,可以使用显式反馈,也可以使用显式反馈+隐式反馈;
  • 利用隐式反馈来探索物品与物品之间的关联关系,信息更加丰富:少数用户会主动点评电影或者美食,大多数用户只会浏览或者观看,也就是说显式反馈比隐式反馈少。

SVD++模型的步骤如下:

  • 对于某一个用户uuu,它提供了反馈的物品集合定义为N(u)N(u)N(u)
  • 假设j∈N(u)j \in N(u)jN(u),该物品jjj和预测物品iii之间的关系为wijw_{ij}wij
  • 将这个关系作为预测评分的一个部分,则有如下公式:
    rui^=μ+bu+bi+puTqi+1∣N(u)∣∑j∈N(u)wij(6)\begin{aligned} \hat{r_{ui}}=\mu+b_{u}+b_{i}+p_{u}^T q_{i} + \frac{1}{\sqrt{|N(u)|}} \sum_{j \in N(u)}w_{ij} \tag6 \end{aligned} rui^=μ+bu+bi+puTqi+N(u)1jN(u)wij(6)
    引入1∣N(u)∣\frac{1}{\sqrt{|N(u)|}}N(u)1是为了消除不同∣N(u)∣|N(u)|N(u)个数引起的差异。
    WWW矩阵如下表所示:
t1t_1t1t2t_2t2t3t_3t3t4t_4t4
t1t_1t1w11w_{11}w11w12w_{12}w12w13w_{13}w13w14w_{14}w14
t2t_2t2w21w_{21}w21w22w_{22}w22w23w_{23}w23w24w_{24}w24
t3t_3t3w31w_{31}w31w32w_{32}w32w33w_{33}w33w34w_{34}w34
t4t_4t4w41w_{41}w41w42w_{42}w42w43w_{43}w43w44w_{44}w44
  • WWW矩阵维度为n×nn \times nn×n,维度很大,我们对WWW进行矩阵分解后得到如下公式:
    rui^=μ+bu+bi+puTqi+1∣N(u)∣xuT∑j∈N(u)yj(7)\begin{aligned} \hat{r_{ui}}=\mu+b_{u}+b_{i}+p_{u}^{T} q_{i} + \frac{1}{\sqrt{|N(u)|}} x_u^T \sum_{j \in N(u)}y_{j} \tag7 \end{aligned} rui^=μ+bu+bi+puTqi+N(u)1xuTjN(u)yj(7)
    在这里插入图片描述
  • xux_uxu表示用户的隐向量,可以用pup_upu替换,这样就减少了对WWW矩阵的分解,则上式可以表示为:
    rui^=μ+bu+bi+puTqi+1∣N(u)∣puT∑j∈N(u)yj=μ+bu+bi+puT(qi+1∣N(u)∣∑j∈N(u)yj)(10)\begin{aligned} \hat{r_{ui}}=\mu+b_{u}+b_{i}+p_{u}^{T} q_{i} + \frac{1}{\sqrt{|N(u)|}} p_u^T \sum_{j \in N(u)}y_{j} \\ = \mu+b_{u}+b_{i}+p_{u}^{T} \left(q_{i} + \frac{1}{\sqrt{|N(u)|}} \sum_{j \in N(u)}y_{j}\right)\tag{10} \end{aligned} rui^=μ+bu+bi+puTqi+N(u)1puTjN(u)yj=μ+bu+bi+puTqi+N(u)1jN(u)yj(10)

其优化目标函数:
L(θ)=arg⁡min⁡⏟pu,qi∑u,i(rui−μ−bu−bi−puTqi−puT1∣N(u)∣∑j∈N(u)yj)2+λ(∥pu∥22+∥qi∥22+∥bu∥22+∥bi∥22+∑j∈N(u)∥yj∥22)(11)\begin{aligned} L(\theta) = \underbrace{\arg \min }_{p_{u}, q_{i}} \sum_{u, i}\left(r_{ui}-\mu-b_{u}-b_{i}-p_{u}^{T} q_{i} -p_{u}^{T} \frac{1}{\sqrt{|N(u)|}} \sum_{j \in N(u)} y_{j}\right)^{2} \\ +\lambda\left(\left\|p_{u}\right\|_{2}^{2}+\left\|q_{i}\right\|_{2}^{2}+\left\|b_{u}\right\|_{2}^{2}+\left\|b_{i}\right\|_{2}^{2}+\sum_{j \in N(u)}\left\|y_{j}\right\|_{2}^{2}\right) \end{aligned} \tag{11} L(θ)=pu,qiargminu,iruiμbubipuTqipuTN(u)1jN(u)yj2+λpu22+qi22+bu22+bi22+jN(u)yj22(11)

对公式(11)求偏导,令eui=rui−rui^e_{ui}=r_{ui}- \hat{r_{ui}}eui=ruirui^,整理后可以得到迭代公式:
bu=bu+η⋅(eui−λ⋅bu)bi=bi+η⋅(eui−λ⋅bi)pu=pu+η⋅(eui⋅qi−λ⋅pu)qi=qi+η⋅(eui(pu+1∣N(u)∣∑j∈N(u)yj)−λ⋅qi)yj=yj+η⋅(eui⋅1∣N(u)∣qi−λ⋅qi)(12)\begin{aligned} b_u = b_u + \eta \cdot (e_{ui} - \lambda \cdot b_u) \\ b_i = b_i + \eta \cdot (e_{ui} - \lambda \cdot b_i) \\ p_u = p_u + \eta \cdot (e_{ui} \cdot q_i - \lambda \cdot p_u) \\ q_i = q_i + \eta \cdot (e_{ui}(p_u + \frac{1}{\sqrt{|N(u)|}}\sum_{j \in N(u)} y_j) - \lambda \cdot q_i) \\ y_j = y_j + \eta \cdot (e_{ui} \cdot \frac{1}{\sqrt{|N(u)|}} q_i - \lambda \cdot q_i) \\ \end{aligned} \tag{12} bu=bu+η(euiλbu)bi=bi+η(euiλbi)pu=pu+η(euiqiλpu)qi=qi+η(eui(pu+N(u)1jN(u)yj)λqi)yj=yj+η(euiN(u)1qiλqi)(12)
参考的迭代公式如下:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/507547.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

tga文件怎么打开_教你win10系统怎么打开stp文件

stp文件怎么打开呢?近来有很多小伙伴反映有朋友发送了一个stp文件给它,搞了半天也没能打开。其实打开stp文件很简单,不过前提是需要有绘图软件。我给大家整理了打开stp文件的图文教程,赶紧来瞧瞧吧有些朋友在使用win10系统的过程中…

python爬取电子病历_一种基于中文电子病历的实体识别方法技术

本发明专利技术提供了一种基于中文电子病历的实体识别方法,涉及医疗实体识别技术领域。针对目前国内缺少公开中文电子病历标注语料库的缺陷,本发明专利技术通过构建整理医学词典,提出了一种半自动语料库标注方法,节省了人工标注的…

推荐系统--矩阵分解(4)

推荐系统–矩阵分解(1) 推荐系统–矩阵分解(2) 推荐系统–矩阵分解(3) 推荐系统–矩阵分解(4) 推荐系统–矩阵分解(5) 推荐系统–矩阵分解(6) 7 基于情感分析的矩阵分解 7.1 引入 【摘要】推荐系统旨在基于丰富的信息预测用户的偏好,例如用户评分、人口统计和评论…

yarn 卸载包_0609-6.1.0-如何卸载CDH6.1

1.文档编写目的Fayson在两年前的文章中介绍过CDH的卸载,参考《如何卸载CDH(附一键卸载github源码)》。除非你是使用Cloudera官方提供的一键安装脚本安装的CDH,否则并没有现成的一键卸载的脚本供使用。为了更好的理解CDH的卸载,这里再次简单介…

推荐系统--矩阵分解(3)

推荐系统–矩阵分解(1) 推荐系统–矩阵分解(2) 推荐系统–矩阵分解(3) 推荐系统–矩阵分解(4) 推荐系统–矩阵分解(5) 推荐系统–矩阵分解(6) 5 TimeSVD:增加时间因素 物品的受欢迎度随着时间而改变,例如,电影可以因外部事件(如新电影中演员…

python安装不了是什么问题_安装不上python的模块怎么办?别怕,我这有妙招!

之前我们介绍过如何在Python中安装第三方的包:Python以第三方包丰富而著称,你想要的功能几乎都可以通过pip命令安装,避免什么都要自己重新造轮子尬尴。但是pip安装有两个常见问题,第一是下载慢,第二是无法安装。慢的原…

推荐系统--矩阵分解(5)

推荐系统–矩阵分解(1) 推荐系统–矩阵分解(2) 推荐系统–矩阵分解(3) 推荐系统–矩阵分解(4) 推荐系统–矩阵分解(5) 推荐系统–矩阵分解(6) 8 基于隐式反馈的矩阵分解 8.1 引入 相对于显示反馈的评分数据,隐式反馈有以下几方面的特征: 只有正反馈&…

xss跨站脚本攻击_网络安全xss跨站脚本攻击原理

以下在未经授权的网站操作均为违法行为XSS跨站脚本攻击xss的危害网络钓鱼,盗取各类账号密码我们先来看一下下面的案例:先来记住一下下面中的表我们来做一个转发上面页面显示已经登录,但是突然页面中提醒再此登录此时,我们并没有多…

推荐系统--联邦学习下的矩阵分解(6)

推荐系统–矩阵分解(1) 推荐系统–矩阵分解(2) 推荐系统–矩阵分解(3) 推荐系统–矩阵分解(4) 推荐系统–矩阵分解(5) 推荐系统–矩阵分解(6) 9 应用于联邦学习的矩阵分解 这个部分主要参考以下两篇论文: 2008-Collaborative Filtering for Implicit Feedback Dat…

python类的特殊方法汇总_Python笔记001-类的特殊方法

Python笔记001-类的特殊方法以下是我学习《流畅的Python》后的个人笔记,现在拿出来和大家共享,希望能帮到各位Python学习者。首次发表于: 微信公众号:科技老丁哥,ID: TechDing,敬请关注。本篇主要知识点:类…

什么是联邦学习

联邦学习 1.1 联邦学习的概念 历史:联邦学习最早在 2016 年由谷歌提出,原本用于解决安卓手机终端用户在本地更新模型的问题; 本质:联邦学习本质上是一种分布式机器学习技术,或机器学习框架。 目标:联邦学…

循环自增_大学C语言—循环结构及应用

基础知识常见循环结构及形式for循环for(设置初始值;循环条件判断;设置循环增减量){语句1;语句2;…… 语句n;}while循环while(条件判断){语句1;语句2;……语句n;}do-while循环d…

论文写作的辅助工具

1 英文翻译 translate.google.cn 2 英文句子 我们以前的做法是要求每个同学收集一些经典的句子,现在有一个网站已经把这个工作做好了,这个可以解决60%句子问题,接下来就是写作的逻辑 https://www.phrasebank.manchester.ac.uk/ 3 画图工具…

dac0832控制电机驱动流程图_某驱动电机控制器拆解实拍照片

小编作为一个电控专业100%小白,机缘巧合获得某纯电动汽车驱动电机控制器一台,拆解之,权为业内人士参考之用,文中显得外行、用词不对及谬误之处还请各位大神不吝赐教!外观标牌背面拆解固定托架侧面拆解固定托架拆解固定…

推荐系统--安全联邦矩阵分解(7)

相关论文: Secure Federated Matrix Factorization 论文源代码见: https://github.com/Di-Chai/FedMF 1 摘要 为了保护用户隐私和满足法律法规,联邦(机器)学习近年来获得了广泛的关注。 联邦学习的关键原则是在不需要知道每个用…

联邦学习--数据攻击(1)

参考论文:Deep Leakage from Gradients(NeurIPS 2019) 源代码: https://github.com/mit-han-lab/dlg 核心思想:作者通过实验得到,从梯度可以反推用户的个人信息。并验证了其在计算机视觉和自然语言处理任务…

python制作图_Python做图的方法

最近一直没有更新文章,在学习Machine learning。然后业余在kaggle那里瞎转,对Python常用的作图摸了个遍,本文将对这些作图方法做个简单介绍一般我们作图主要是为了看数据分布、数据趋势、以及比较大小。常用的图包括:line(折线图)…

联邦学习--数据攻击(2)

参考论文:See through Gradients: Image Batch Recovery via GradInversion(CVPR 2021 ) 源代码: 核心思想:解决了Deep Leakage from Gradients(NeurIPS 2019)中batch大于1效果无效的情况。 缺点…

python简单网络爬虫_【Python】 简单网络爬虫实现

介绍网络爬虫(英语:网络爬虫),也称为网络蜘蛛(蜘蛛)是一个Web机器人用于自动浏览万维网。其目的通常是为了编译web索引。\u2014\u2014维基百科web爬虫程序可以节省他们访问的页面,以便搜索引擎可以为用户搜索生成索引。一般来说,有两个步骤:1。获取网页内容2。准备获得web内容和…

对抗攻击(1)

本文是根据李宏毅老师在B站上的视频整理而来,视频地址为: https://www.bilibili.com/video/BV1n3411y7xD?p65 1 无目标和有目标攻击的区别 无目标攻击:攻击后的标签不确定,只要是和原始标签差别越大越好。 有目标攻击&#xff…