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

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

相关文章

在Spring Boot中浅尝内存泄漏的实战记录

《在SpringBoot中浅尝内存泄漏的实战记录》本文给大家分享在SpringBoot中浅尝内存泄漏的实战记录,结合实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录使用静态集合持有对象引用,阻止GC回收关键点:可执行代码:验证:1,运行程序(启动时添加JVM参数限制堆大小):2,访问 htt

MySQL 中查询 VARCHAR 类型 JSON 数据的问题记录

《MySQL中查询VARCHAR类型JSON数据的问题记录》在数据库设计中,有时我们会将JSON数据存储在VARCHAR或TEXT类型字段中,本文将详细介绍如何在MySQL中有效查询存储为V... 目录一、问题背景二、mysql jsON 函数2.1 常用 JSON 函数三、查询示例3.1 基本查询3.2

mysql的基础语句和外键查询及其语句详解(推荐)

《mysql的基础语句和外键查询及其语句详解(推荐)》:本文主要介绍mysql的基础语句和外键查询及其语句详解(推荐),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋... 目录一、mysql 基础语句1. 数据库操作 创建数据库2. 表操作 创建表3. CRUD 操作二、外键

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

Python获取中国节假日数据记录入JSON文件

《Python获取中国节假日数据记录入JSON文件》项目系统内置的日历应用为了提升用户体验,特别设置了在调休日期显示“休”的UI图标功能,那么问题是这些调休数据从哪里来呢?我尝试一种更为智能的方法:P... 目录节假日数据获取存入jsON文件节假日数据读取封装完整代码项目系统内置的日历应用为了提升用户体验,

Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

Spring Boot 配置文件之类型、加载顺序与最佳实践记录

《SpringBoot配置文件之类型、加载顺序与最佳实践记录》SpringBoot的配置文件是灵活且强大的工具,通过合理的配置管理,可以让应用开发和部署更加高效,无论是简单的属性配置,还是复杂... 目录Spring Boot 配置文件详解一、Spring Boot 配置文件类型1.1 applicatio

MySQL INSERT语句实现当记录不存在时插入的几种方法

《MySQLINSERT语句实现当记录不存在时插入的几种方法》MySQL的INSERT语句是用于向数据库表中插入新记录的关键命令,下面:本文主要介绍MySQLINSERT语句实现当记录不存在时... 目录使用 INSERT IGNORE使用 ON DUPLICATE KEY UPDATE使用 REPLACE