直播推荐、搜索中的召回、相关性、多目标精排、特征、重排 - 多目标精排(1)

2024-02-15 22:30

本文主要是介绍直播推荐、搜索中的召回、相关性、多目标精排、特征、重排 - 多目标精排(1),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、深度排序模型在淘宝直播的演进与应用

淘内直播这篇文章把几种常见的多目标(mtl mmoe ple 这几种是默认每种目标之间没有关系 所以共同share一个底层数据、essm gmsl 贝叶斯mtl 与前面相反 把几种目标之间按照序串联起来 以此建模)写的很清楚

1:最基础的mtl

重点1:在shared MLP layer层还是共享,然后每个目标有自己的specific MLP layer。这种通过人工指定哪些要共享的方式称为hard parameter sharing layer

2:mmoe

重点1:mmoe通过定义多个专家网络(里面一般由多个mlp层),再通过门控实现对不同目标间的权重学习,这种成为soft parameter sharing。输入层特征经过softmax得到多个专家网络的权重

详解谷歌之多任务学习模型MMoE(KDD 2018) - 知乎

3:腾讯ple(CGC的进阶版本)

重点1:MMoE是所有的专家组都是共享的,它没有每个目标自己的一个专家组网络,所以又提出了在每个目标都有一个Specific的Expert的优化方案

重点2:MMOE共享层之间没有交互,PLE中共享专家网络、每个目标独有专家网络之间可以进行交互

腾讯 at RecSys2020最佳长论文 - 多任务学习模型PLE

Progressive LayeredExtraction(PLE):ANovelMulti-Task Learning(MTL)ModelforPersonalizedRecommendations_learner_ctr的博客-CSDN博客

4:esmm

重点1:通过引入pCTCVR=pCVR*pCTR的目标,对于cvr问题来说(点击+转化样本)解决了样本选择偏差问题(因为引入了ctr的曝光样本)

(1) ESSM可以看官方出版的中文文档介绍:https://github.com/alibaba/x-deeplearning/wiki/%E5%85%A8%E7%A9%BA%E9%97%B4%E5%A4%9A%E4%BB%BB%E5%8A%A1%E6%A8%A1%E5%9E%8B(ESMM)

ESMM 引入两个预估展现点击率(CTR)和展现后点击转化率(CTCVR)作为辅助任务。ESMM 将 pCVR 作为一个中间变量,并将其乘以 pCTR 得到 pCTCVR,而不是直接基于有偏的点击样本子集进行 CVR 模型训练。pCTCVR 和 pCTR 是在全空间中以所有展现样本估计的,因此衍生的 pCVR 也适用于全空间并且缓解了“样本选择偏差”问题 

CVR 任务的特征表示网络与 CTR 任务共享,后者用更丰富的样本进行训练,使用上了迁移学习的优点

损失函数,l函数是交叉熵损失函数:

构造训练数据集如下: 对于CTR任务,单击的展现被标记为$y = 1,否则为 $y=0;对于 CTCVR 任务,同时发生点击和转化事件的展现被标记为 $ y & z = 1  ,否则 $ y & z = 0 $,$y 和 $ y & z  ,这实际上是利用点击和转化标签的序列依赖性。所以是全空间的样本

5:GMSL

重点1:lazada提出来的GMSL网络在shared layer后面,为不同目标接了几个网络(这个很像mtl),然后每个目标的输出值再一起组成一个gru网络,每个node都对应一个有序的目标,最后一个node的输出值就可以是最后一个目标的预测值

6:淘内直播的贝叶斯多目标网络

重点1:最上层的多目标刻画 P(t1,t2,t3|x,H)=P(t3|t1,t2,x,H)*P(t2|t1,x,H)*P(t1,x,H) x代表特征

重点2:loss刻画 -L(x,H)=w1*log(P(t3|t1,t2,x,H))+w2*log(P(t2|t1,x,H))+w3*log(P(t1|x,H))

二、多任务学习时,不同任务怎么控制动态带来不同程度的梯度传播(经常用在比如essm这种ctr cvr,差异很大的任务中)

多任务学习中的梯度归一,GradNorm_1066196847的博客-CSDN博客

GiW(t)是任务 i 的带权损失,对需要更新的神经网络参数W(W表示神经网络参数,wi表示label loss中各个label的权重)的梯度的L2范数,这里用 GiW(t) 代表 loss的量级,为什么可以用权重的梯度的L2范数代表loss量级,可以具体看下面这篇文章讲解每个参数反向传播时,如果loss越大,反向传播时候的每个参数的梯度也就越大

一文弄懂神经网络中的反向传播法——BackPropagation - Charlotte77 - 博客园

公式中的i代表第i个学习任务(ctr cvr可以当算作一个i),Li(0)代表第0次迭代时候的loss,Li(t)代表第t次迭代时候的loss,这两个相比,越大说明到第t次时迭代越慢(和Li(0)的差距很小)。那么 Li(t)~ 和 Etask[Li(t)~](代表的是多次loss的均值)的比值 ri(t) 也就越大。在计算Grad Loss时,两个值相减之后Grad Loss也就越小,也就是带来一个小的梯度loss(对应下面公式的L(grad))

  

再计算L(gard)对wi​(t)的求导,L(grad)越小,梯度更新量也越小,求导数值也就越小

在上面公式中w(t+1)=w(t)+lambda*beta(t),这里的beta(t)就是L(grad)的导数,所以可以写成

w(t+1)=w(t) + lambda * L(grad)导数,lambda在文章中说是学习率,但是这里的 + 应该是 - 才对,因为这样 L(grad) 越小,w(t) - lambda * L(grad)导数 就会越大

总结:Li(t)越大,迭代越慢,ri(t) 也越大,导致贡献的Grad Loss越小,导数值也越小,更新w(i+1)时,在w(i)基础上减去的梯度越小,w(i+1)也越大。也就是越慢更新的任务,下一次对总梯度影响比例就越大

扩展:当某个任务的loss量级 GiW(t) 过小,导数值也越小,然后同上

-----------------------------------------------------------------------------------

上面的GradNorm只控制了不同任务带来的梯度影响程度,但是没有考虑到多个任务如果带来的梯度更新是相反的情况下该怎么办

这篇关于直播推荐、搜索中的召回、相关性、多目标精排、特征、重排 - 多目标精排(1)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

Qt QCustomPlot库简介(最新推荐)

《QtQCustomPlot库简介(最新推荐)》QCustomPlot是一款基于Qt的高性能C++绘图库,专为二维数据可视化设计,它具有轻量级、实时处理百万级数据和多图层支持等特点,适用于科学计算、... 目录核心特性概览核心组件解析1.绘图核心 (QCustomPlot类)2.数据容器 (QCPDataC

Java内存分配与JVM参数详解(推荐)

《Java内存分配与JVM参数详解(推荐)》本文详解JVM内存结构与参数调整,涵盖堆分代、元空间、GC选择及优化策略,帮助开发者提升性能、避免内存泄漏,本文给大家介绍Java内存分配与JVM参数详解,... 目录引言JVM内存结构JVM参数概述堆内存分配年轻代与老年代调整堆内存大小调整年轻代与老年代比例元空

深度解析Java DTO(最新推荐)

《深度解析JavaDTO(最新推荐)》DTO(DataTransferObject)是一种用于在不同层(如Controller层、Service层)之间传输数据的对象设计模式,其核心目的是封装数据,... 目录一、什么是DTO?DTO的核心特点:二、为什么需要DTO?(对比Entity)三、实际应用场景解析

Go语言中nil判断的注意事项(最新推荐)

《Go语言中nil判断的注意事项(最新推荐)》本文给大家介绍Go语言中nil判断的注意事项,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1.接口变量的特殊行为2.nil的合法类型3.nil值的实用行为4.自定义类型与nil5.反射判断nil6.函数返回的

python 常见数学公式函数使用详解(最新推荐)

《python常见数学公式函数使用详解(最新推荐)》文章介绍了Python的数学计算工具,涵盖内置函数、math/cmath标准库及numpy/scipy/sympy第三方库,支持从基础算术到复杂数... 目录python 数学公式与函数大全1. 基本数学运算1.1 算术运算1.2 分数与小数2. 数学函数

Python Pillow 库详解文档(最新推荐)

《PythonPillow库详解文档(最新推荐)》Pillow是Python中最流行的图像处理库,它是PythonImagingLibrary(PIL)的现代分支和继承者,本文给大家介绍Pytho... 目录python Pillow 库详解文档简介安装核心模块架构Image 模块 - 核心图像处理基本导入

HTML5 中的<button>标签用法和特征

《HTML5中的<button>标签用法和特征》在HTML5中,button标签用于定义一个可点击的按钮,它是创建交互式网页的重要元素之一,本文将深入解析HTML5中的button标签,详细介绍其属... 目录引言<button> 标签的基本用法<button> 标签的属性typevaluedisabled

CSS Anchor Positioning重新定义锚点定位的时代来临(最新推荐)

《CSSAnchorPositioning重新定义锚点定位的时代来临(最新推荐)》CSSAnchorPositioning是一项仍在草案中的新特性,由Chrome125开始提供原生支持需... 目录 css Anchor Positioning:重新定义「锚定定位」的时代来了! 什么是 Anchor Pos

HTML5 搜索框Search Box详解

《HTML5搜索框SearchBox详解》HTML5的搜索框是一个强大的工具,能够有效提升用户体验,通过结合自动补全功能和适当的样式,可以创建出既美观又实用的搜索界面,这篇文章给大家介绍HTML5... html5 搜索框(Search Box)详解搜索框是一个用于输入查询内容的控件,通常用于网站或应用程

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

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