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

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 UV安装、升级、卸载详细步骤记录

《PythonUV安装、升级、卸载详细步骤记录》:本文主要介绍PythonUV安装、升级、卸载的详细步骤,uv是Astral推出的下一代Python包与项目管理器,主打单一可执行文件、极致性能... 目录安装检查升级设置自动补全卸载UV 命令总结 官方文档详见:https://docs.astral.sh/

Java SWT库详解与安装指南(最新推荐)

《JavaSWT库详解与安装指南(最新推荐)》:本文主要介绍JavaSWT库详解与安装指南,在本章中,我们介绍了如何下载、安装SWTJAR包,并详述了在Eclipse以及命令行环境中配置Java... 目录1. Java SWT类库概述2. SWT与AWT和Swing的区别2.1 历史背景与设计理念2.1.

统一返回JsonResult踩坑的记录

《统一返回JsonResult踩坑的记录》:本文主要介绍统一返回JsonResult踩坑的记录,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录统一返回jsonResult踩坑定义了一个统一返回类在使用时,JsonResult没有get/set方法时响应总结统一返回

基于Python实现一个简单的题库与在线考试系统

《基于Python实现一个简单的题库与在线考试系统》在当今信息化教育时代,在线学习与考试系统已成为教育技术领域的重要组成部分,本文就来介绍一下如何使用Python和PyQt5框架开发一个名为白泽题库系... 目录概述功能特点界面展示系统架构设计类结构图Excel题库填写格式模板题库题目填写格式表核心数据结构

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

Java日期类详解(最新推荐)

《Java日期类详解(最新推荐)》早期版本主要使用java.util.Date、java.util.Calendar等类,Java8及以后引入了新的日期和时间API(JSR310),包含在ja... 目录旧的日期时间API新的日期时间 API(Java 8+)获取时间戳时间计算与其他日期时间类型的转换Dur

Linux系统中的firewall-offline-cmd详解(收藏版)

《Linux系统中的firewall-offline-cmd详解(收藏版)》firewall-offline-cmd是firewalld的一个命令行工具,专门设计用于在没有运行firewalld服务的... 目录主要用途基本语法选项1. 状态管理2. 区域管理3. 服务管理4. 端口管理5. ICMP 阻断

java对接海康摄像头的完整步骤记录

《java对接海康摄像头的完整步骤记录》在Java中调用海康威视摄像头通常需要使用海康威视提供的SDK,下面这篇文章主要给大家介绍了关于java对接海康摄像头的完整步骤,文中通过代码介绍的非常详细,需... 目录一、开发环境准备二、实现Java调用设备接口(一)加载动态链接库(二)结构体、接口重定义1.类型

Windows 系统下 Nginx 的配置步骤详解

《Windows系统下Nginx的配置步骤详解》Nginx是一款功能强大的软件,在互联网领域有广泛应用,简单来说,它就像一个聪明的交通指挥员,能让网站运行得更高效、更稳定,:本文主要介绍W... 目录一、为什么要用 Nginx二、Windows 系统下 Nginx 的配置步骤1. 下载 Nginx2. 解压

如何确定哪些软件是Mac系统自带的? Mac系统内置应用查看技巧

《如何确定哪些软件是Mac系统自带的?Mac系统内置应用查看技巧》如何确定哪些软件是Mac系统自带的?mac系统中有很多自带的应用,想要看看哪些是系统自带,该怎么查看呢?下面我们就来看看Mac系统内... 在MAC电脑上,可以使用以下方法来确定哪些软件是系统自带的:1.应用程序文件夹打开应用程序文件夹