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

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

相关文章

Python中4大日志记录库比较的终极PK

《Python中4大日志记录库比较的终极PK》日志记录框架是一种工具,可帮助您标准化应用程序中的日志记录过程,:本文主要介绍Python中4大日志记录库比较的相关资料,文中通过代码介绍的非常详细,... 目录一、logging库1、优点2、缺点二、LogAid库三、Loguru库四、Structlogphp

SpringBoot整合Kafka启动失败的常见错误问题总结(推荐)

《SpringBoot整合Kafka启动失败的常见错误问题总结(推荐)》本文总结了SpringBoot项目整合Kafka启动失败的常见错误,包括Kafka服务器连接问题、序列化配置错误、依赖配置问题、... 目录一、Kafka服务器连接问题1. Kafka服务器无法连接2. 开发环境与生产环境网络不通二、序

C++简单日志系统实现代码示例

《C++简单日志系统实现代码示例》日志系统是成熟软件中的一个重要组成部分,其记录软件的使用和运行行为,方便事后进行故障分析、数据统计等,:本文主要介绍C++简单日志系统实现的相关资料,文中通过代码... 目录前言Util.hppLevel.hppLogMsg.hppFormat.hppSink.hppBuf

linux系统中java的cacerts的优先级详解

《linux系统中java的cacerts的优先级详解》文章讲解了Java信任库(cacerts)的优先级与管理方式,指出JDK自带的cacerts默认优先级更高,系统级cacerts需手动同步或显式... 目录Java 默认使用哪个?如何检查当前使用的信任库?简要了解Java的信任库总结了解 Java 信

macOS彻底卸载Python的超完整指南(推荐!)

《macOS彻底卸载Python的超完整指南(推荐!)》随着python解释器的不断更新升级和项目开发需要,有时候会需要升级或者降级系统中的python的版本,系统中留存的Pytho版本如果没有卸载干... 目录MACOS 彻底卸载 python 的完整指南重要警告卸载前检查卸载方法(按安装方式)1. 卸载

docker编写java的jar完整步骤记录

《docker编写java的jar完整步骤记录》在平常的开发工作中,我们经常需要部署项目,开发测试完成后,最关键的一步就是部署,:本文主要介绍docker编写java的jar的相关资料,文中通过代... 目录all-docker/生成Docker打包部署文件配置服务A的Dockerfile (a/Docke

Oracle数据库在windows系统上重启步骤

《Oracle数据库在windows系统上重启步骤》有时候在服务中重启了oracle之后,数据库并不能正常访问,下面:本文主要介绍Oracle数据库在windows系统上重启的相关资料,文中通过代... oracle数据库在Windows上重启的方法我这里是使用oracle自带的sqlplus工具实现的方

MySQL使用EXISTS检查记录是否存在的详细过程

《MySQL使用EXISTS检查记录是否存在的详细过程》EXISTS是SQL中用于检查子查询是否返回至少一条记录的运算符,它通常用于测试是否存在满足特定条件的记录,从而在主查询中进行相应操作,本文给大... 目录基本语法示例数据库和表结构1. 使用 EXISTS 在 SELECT 语句中2. 使用 EXIS

JWT + 拦截器实现无状态登录系统

《JWT+拦截器实现无状态登录系统》JWT(JSONWebToken)提供了一种无状态的解决方案:用户登录后,服务器返回一个Token,后续请求携带该Token即可完成身份验证,无需服务器存储会话... 目录✅ 引言 一、JWT 是什么? 二、技术选型 三、项目结构 四、核心代码实现4.1 添加依赖(pom

基于Python实现自动化邮件发送系统的完整指南

《基于Python实现自动化邮件发送系统的完整指南》在现代软件开发和自动化流程中,邮件通知是一个常见且实用的功能,无论是用于发送报告、告警信息还是用户提醒,通过Python实现自动化的邮件发送功能都能... 目录一、前言:二、项目概述三、配置文件 `.env` 解析四、代码结构解析1. 导入模块2. 加载环