推荐系统论文粗读记录【二】

2024-02-26 02:18

本文主要是介绍推荐系统论文粗读记录【二】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.【MMoE】《Modeling Task Relationships in Multi-task Learning with Multi-gate Mixture-of-Experts》
作者: Ma, Jiaqi and Zhao, Zhe and Yi, Xinyang and Chen, Jilin and Hong, Lichan and Chi, Ed H.
发布时间: 2018-07
来源: In Proceedings of the 24th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining (KDD '18). Association for Computing Machinery。cites:73。
引用数: 182
地址: https://doi.org/10.1145/3219819.3220007
笔记: 多任务学习模型 based on Multi-gate Mixture-of-Experts。如下图©所示。模型是在shared bottom模型的基础上进行改进,混合多个expert和gate。each tower network is a single-layer neural network with 8 hidden units. and each expert implemented as a single-layer network with 16 hidden units。在这里插入图片描述模型原理: h k h^k hk表示tower network, f k ( x ) f^k(x) fk(x)表示expert network, g k ( x ) g^k(x) gk(x)表示gate。 y k = h k ( f k ( x ) ) y_k=h^k(f^k(x)) yk=hk(fk(x)) f k ( x ) = ∑ i = 1 n g k ( x ) i f i ( x ) f^k(x)=\sum_{i=1}^{n}g^k(x)_if_i(x) fk(x)=i=1ngk(x)ifi(x) g k ( x ) = s o f t m a x ( W g k x ) g^k(x)=softmax(W_{gk}x) gk(x)=softmax(Wgkx)

2.【DMTL】《Distillation based Multi-task Learning: A Candidate Generation Model for Improving Reading Duration》
作者: Zhong Zhao and Yanmei Fu and Hanming Liang and Li Ma and Guangyao Zhao and Hongwei Jiang
发布时间: 2021-02
来源: eprint arXiv:2102.07142
引用数:
地址: https://arxiv.org/abs/2102.07142
笔记: 背景:low quality but attractive title 被推荐给用户,破坏用户行为。解决方案:为点击和阅读时长同时建模。多任务学习【MTL】。两个挑战:对没有标记dislike的0阅读时长的负样本处理;在只能处理单任务的双塔结构候选集生成模型上进行多任务学习。由两个模型【ESMM模型】和【DSSM模型】组合构建。两个任务:the click task and the duration task。在这里插入图片描述利用MMoE模型构建多任务学习模型。其CTR和CVR的计算如下,其中g(x)和f(x)在MMoE模型中有介绍。 e c ( x i ) = ∑ k = 1 K g c k ( x i ) f k ( x i ) ( 公 式 2 ) e_c(x_i)=\sum_{k=1}^{K}g_{ck}(x_i)f_k(x_i) \space\space\space\space\space\space\space\space(公式2) ec(xi)=k=1Kgck(xi)fk(xi)        (2) e d ( x i ) = ∑ k = 1 K g d k ( x i ) f k ( x i ) ( 公 式 3 ) e_d(x_i)=\sum_{k=1}^{K}g_{dk}(x_i)f_k(x_i) \space\space\space\space\space\space\space\space(公式3) ed(xi)=k=1Kgdk(xi)fk(xi)        (3)对于样本x的pCTR和pCVR的计算如下,其中 h ( ⋅ ) h(·) h()在MMoE模型中有介绍。 P c t r ( x i , θ t ) = s i g m o i d ( h c ( e c ( x i ) ) ) ( 公 式 4 ) Pctr(x_i,\theta_t)=sigmoid(h_c(e_c(x_i))) \space\space\space\space\space\space\space\space(公式4) Pctr(xi,θt)=sigmoid(hc(ec(xi)))        (4) P c v r ( x i , θ t ) = s i g m o i d ( h d ( e d ( x i ) ) ) ( 公 式 5 ) Pcvr(x_i,\theta_t)=sigmoid(h_d(e_d(x_i))) \space\space\space\space\space\space\space\space(公式5) Pcvr(xi,θt)=sigmoid(hd(ed(xi)))        (5)根据 P c t r Pctr Pctr P c v r Pcvr Pcvr计算出 P c t c v r Pctcvr Pctcvr P c t c v r ( x i , θ t ) = P c t r ( x i , θ t ) P c v r ( x i , θ t ) ( 公 式 6 ) Pctcvr(x_i,\theta_t)=Pctr(x_i,\theta_t)Pcvr(x_i,\theta_t) \space\space\space\space\space\space\space\space(公式6) Pctcvr(xi,θt)=Pctr(xi,θt)Pcvr(xi,θt)        (6)the duration task的损失函数,二分类交叉熵: L d ( θ t ) = − ∑ i = 1 N z i l o g p c t c v r ( x i , θ t ) + ( 1 − z i ) l o g ( 1 − l o g p c t c v r ( x i , θ t ) ) ( 公 式 7 ) L_d(\theta_t)=-\sum_{i=1}^{N}z_ilogp_{ctcvr}(x_i,\theta_t)+(1-z_i)log(1-logp_{ctcvr}(x_i,\theta_t))\space\space\space\space\space\space\space\space(公式7) Ld(θt)=i=1Nzilogpctcvr(xi,θt)+(1zi)log(1logpctcvr(xi,θt))        (7)the click task的损失函数,二分类交叉熵: L c ( θ t ) = − ∑ i = 1 N z i l o g p c t r ( x i , θ t ) + ( 1 − z i ) l o g ( 1 − l o g p c t r ( x i , θ t ) ) ( 公 式 8 ) L_c(\theta_t)=-\sum_{i=1}^{N}z_ilogp_{ctr}(x_i,\theta_t)+(1-z_i)log(1-logp_{ctr}(x_i,\theta_t))\space\space\space\space\space\space\space\space(公式8) Lc(θt)=i=1Nzilogpctr(xi,θt)+(1zi)log(1logpctr(xi,θt))        (8)由两个任务的损失函数可以得到多任务学习器的损失函数: L t e a c h e r ( θ t ) = w 1 L d ( θ t ) + w 2 L c ( θ t ) ( 公 式 9 ) L_{teacher}(\theta_t)=w_1L_d(\theta_t)+w_2L_c(\theta_t)\space\space\space\space\space\space\space\space(公式9) Lteacher(θt)=w1Ld(θt)+w2Lc(θt)        (9)以上就是DMTL模型中的MMoE模块部分。
利用DSSM蒸馏候选集生成,使用双塔结构,利用DNNs分别计算user vector( R ( u i ) R(u_i) R(ui))和item vector( S ( v i ) S(v_i) S(vi)),根据两个向量可以预测CTCVR: p ( z i = 1 ∣ R ( u i ) , S ( v i ) , θ s ) = s i g m o i d ( R ( u i ) T S ( v i ) ) ( 公 式 10 ) p(z_i=1|R(u_i),S(v_i),\theta_s)=sigmoid(R(u_i)^TS(v_i))\space\space\space\space\space\space\space\space(公式10) p(zi=1R(ui),S(vi),θs)=sigmoid(R(ui)TS(vi))        (10)其中 θ \theta θ是可训练的参数,期望就是【公式6】和【公式10】尽可能相等。因此,可以在保持候选生成模型高效的同时使用【公式10】精确地估计CTCVR。把多任务模型【公式9】称teacher,双塔候选集生成模型【公式10】称student。然后使用蒸馏方法将学到的知识从teacher转到student。蒸馏的loss使用KL散度: L s t u d e n t ( θ s ) = P c t c v r ( x i , θ t ) P c t c v r ( x i , θ t ) p ( z i = 1 ∣ R ( u i ) , S ( v i ) , θ s ) + ( 1 − P c t c v r ( x i , θ t ) ) 1 − P c t c v r ( x i , θ t ) 1 − p ( z i = 1 ∣ R ( u i ) , S ( v i ) , θ s ) ( 公 式 11 ) L_{student}(\theta_s)=Pctcvr(x_i,\theta_t)\frac{Pctcvr(x_i,\theta_t)}{p(z_i=1|R(u_i),S(v_i),\theta_s)}+(1-Pctcvr(x_i,\theta_t))\frac{1-Pctcvr(x_i,\theta_t)}{1-p(z_i=1|R(u_i),S(v_i),\theta_s)}\space\space\space\space\space\space\space\space(公式11) Lstudent(θs)=Pctcvr(xi,θt)p(zi=1R(ui),S(vi),θs)Pctcvr(xi,θt)+(1Pctcvr(xi,θt))1p(zi=1R(ui),S(vi),θs)1Pctcvr(xi,θt)        (11)然后整合teacher的loss和student的loss: L ( θ t , θ s ) = L t e a c h e r ( θ t ) + L s t u d e n t ( θ s ) L(\theta_t,\theta_s)=L_{teacher}(\theta_t)+L_{student}(\theta_s) L(θt,θs)=Lteacher(θt)+Lstudent(θs)以上就是DMTL模型原理。

3.【Wide&Deep】《Wide & Deep Learning for Recommender Systems》
作者: Cheng, Heng-Tze and Koc, Levent and Harmsen, Jeremiah and Shaked, Tal and Chandra, Tushar and Aradhye, Hrishi and Anderson, Glen and Corrado, Greg and Chai, Wei and Ispir, Mustafa and Anil, Rohan and Haque, Zakaria and Hong, Lichan and Jain, Vihan and Liu, Xiaobing and Shah, Hemal
发布时间: 2016-09
来源: Association for Computing Machinery / Proceedings of the 1st Workshop on Deep Learning for Recommender Systems
引用数: 1009
地址: https://doi.org/10.1145/2988450.2988454
笔记: 背景:1、广泛的特征转换向量积记录特征之间的交互有效且可解释,但是需要更多的特征工程。2、深度学习模型通过学习稀疏特征的低维稠密向量可以更好地表示隐含特征组合。并且只需要较少的特征工程。结合两者的优势:wide linear model的特征交互标记和deep neural network的隐含特征组合学习。
Wide模块是一个线性模型, y = w T x + b y=w^Tx+b y=wTx+b.input包含未处理的特征和转换过的特征。转换的方法为特征向量积 ϕ k ( x ) = ∏ i = 1 d x i c k i c k i ∈ { 0 , 1 } \phi_k(x)=\prod\limits_{i=1}^{d}x_i^{c_{ki}}\space\space\space c_{ki}\in\{0,1\} ϕk(x)=i=1dxicki   cki{0,1},其中 c k i c_{ki} cki是一个boolean变量,当第 i i i个特征是第 k k k转换变量 ϕ k \phi_k ϕk时值为1,否则为0。
Deep模块是一个反馈神经网络,将每个稀疏的、高维类别特征转换为低维的、稠密的向量。向量一开始被随机初始化,然后通过模型训练更新得到最终的低维稠密向量,并被输入到神经网络的隐藏层。隐藏层执行的操作是 a l + 1 = f ( W ( l ) a ( l ) + b ( l ) ) a^{l+1}=f(W^{(l)}a^{(l)}+b^{(l)}) al+1=f(W(l)a(l)+b(l)),其中 f f f为ReLU激活函数。
最终的预测模型为: P ( Y = 1 ∣ x ) = σ ( w w i d e T [ x , ϕ ( x ) ] + w d e e p T a ( l f ) + b ) P(Y=1|\mathbf x)=\sigma(\mathbf w^T_{wide}[\mathbf x, \phi(\mathbf x)]+\mathbf w^T_{deep}a^{(l_f)}+b) P(Y=1x)=σ(wwideT[x,ϕ(x)]+wdeepTa(lf)+b)
在这里插入图片描述

4.【DSSM】《Learning deep structured semantic models for web search using clickthrough data》
作者: Huang, Po-Sen and He, Xiaodong and Gao, Jianfeng and Deng, Li and Acero, Alex and Heck, Larry
发布时间: 2013-10
来源: Association for Computing Machinery / Proceedings of the 22nd ACM International Conference on Information & Knowledge Management
引用数: 599
地址: https://doi.org/10.1145/2505515.2505665
笔记: 模型运用于document rank 分为两步:1)将Term vector映射成语义特征向量;2)计算语义特征向量和query的相似度(cosine similarity)。其中第一部分如下图中的下半部分,是一个DNN网络,输出层和隐藏层使用的tanh激活函数。In web search, given the query, the documents are sorted by their semantic relevance scores。在这里插入图片描述Word Hashing:在输入层使用word hashing来解决实际应用中词汇太大不好管理的问题。主要目的就是减少输入层bag-of-words向量的维度。原理:letter n-grams;e.g. 单词good加上开始和结束标识 => #good#,然后使用letter tri-grams => #go, goo, ood, od#,最后得到向量。下图是word hashing生成向量的不同n-grams的冲突情况。在这里插入图片描述

5.【DeepFM】《A Factorization-Machine based Neural Network for CTR Prediction》
作者: Huifeng Guo, Ruiming Tang, Yunming Ye, Zhenguo Li, Xiuqiang He
发布时间: 2017-03
来源: eprint arXiv:1703.04247v1
引用数: 1188
地址: https://arxiv.org/abs/1703.04247
笔记: 结合现有的FM模型和DNN模型。自动学习特征(end-to-end),no need of feature engineering besides raw features。模型的灵感来自于【Wide&Deep模型】。FM模块负责一阶特征建模,输出一个 y F M y_{FM} yFM,DNN模块负责二阶特征交互建模,输出一个 y D N N y_{DNN} yDNN,最终模型预测的结果 y ^ = s i g m o i d ( y F M + y D N N ) \hat y=sigmoid(y_{FM} + y_{DNN}) y^=sigmoid(yFM+yDNN)在这里插入图片描述

这篇关于推荐系统论文粗读记录【二】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/747426

相关文章

Oracle查询优化之高效实现仅查询前10条记录的方法与实践

《Oracle查询优化之高效实现仅查询前10条记录的方法与实践》:本文主要介绍Oracle查询优化之高效实现仅查询前10条记录的相关资料,包括使用ROWNUM、ROW_NUMBER()函数、FET... 目录1. 使用 ROWNUM 查询2. 使用 ROW_NUMBER() 函数3. 使用 FETCH FI

Python将大量遥感数据的值缩放指定倍数的方法(推荐)

《Python将大量遥感数据的值缩放指定倍数的方法(推荐)》本文介绍基于Python中的gdal模块,批量读取大量多波段遥感影像文件,分别对各波段数据加以数值处理,并将所得处理后数据保存为新的遥感影像... 本文介绍基于python中的gdal模块,批量读取大量多波段遥感影像文件,分别对各波段数据加以数值处

在C#中获取端口号与系统信息的高效实践

《在C#中获取端口号与系统信息的高效实践》在现代软件开发中,尤其是系统管理、运维、监控和性能优化等场景中,了解计算机硬件和网络的状态至关重要,C#作为一种广泛应用的编程语言,提供了丰富的API来帮助开... 目录引言1. 获取端口号信息1.1 获取活动的 TCP 和 UDP 连接说明:应用场景:2. 获取硬

JAVA系统中Spring Boot应用程序的配置文件application.yml使用详解

《JAVA系统中SpringBoot应用程序的配置文件application.yml使用详解》:本文主要介绍JAVA系统中SpringBoot应用程序的配置文件application.yml的... 目录文件路径文件内容解释1. Server 配置2. Spring 配置3. Logging 配置4. Ma

Golang的CSP模型简介(最新推荐)

《Golang的CSP模型简介(最新推荐)》Golang采用了CSP(CommunicatingSequentialProcesses,通信顺序进程)并发模型,通过goroutine和channe... 目录前言一、介绍1. 什么是 CSP 模型2. Goroutine3. Channel4. Channe

2.1/5.1和7.1声道系统有什么区别? 音频声道的专业知识科普

《2.1/5.1和7.1声道系统有什么区别?音频声道的专业知识科普》当设置环绕声系统时,会遇到2.1、5.1、7.1、7.1.2、9.1等数字,当一遍又一遍地看到它们时,可能想知道它们是什... 想要把智能电视自带的音响升级成专业级的家庭影院系统吗?那么你将面临一个重要的选择——使用 2.1、5.1 还是

Python MySQL如何通过Binlog获取变更记录恢复数据

《PythonMySQL如何通过Binlog获取变更记录恢复数据》本文介绍了如何使用Python和pymysqlreplication库通过MySQL的二进制日志(Binlog)获取数据库的变更记录... 目录python mysql通过Binlog获取变更记录恢复数据1.安装pymysqlreplicat

高效管理你的Linux系统: Debian操作系统常用命令指南

《高效管理你的Linux系统:Debian操作系统常用命令指南》在Debian操作系统中,了解和掌握常用命令对于提高工作效率和系统管理至关重要,本文将详细介绍Debian的常用命令,帮助读者更好地使... Debian是一个流行的linux发行版,它以其稳定性、强大的软件包管理和丰富的社区资源而闻名。在使用

Ubuntu系统怎么安装Warp? 新一代AI 终端神器安装使用方法

《Ubuntu系统怎么安装Warp?新一代AI终端神器安装使用方法》Warp是一款使用Rust开发的现代化AI终端工具,该怎么再Ubuntu系统中安装使用呢?下面我们就来看看详细教程... Warp Terminal 是一款使用 Rust 开发的现代化「AI 终端」工具。最初它只支持 MACOS,但在 20

windows系统下shutdown重启关机命令超详细教程

《windows系统下shutdown重启关机命令超详细教程》shutdown命令是一个强大的工具,允许你通过命令行快速完成关机、重启或注销操作,本文将为你详细解析shutdown命令的使用方法,并提... 目录一、shutdown 命令简介二、shutdown 命令的基本用法三、远程关机与重启四、实际应用