直播推荐、搜索中的召回、相关性、多目标精排、特征、重排 - 多目标精排(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

相关文章

MySQL 缓存机制与架构解析(最新推荐)

《MySQL缓存机制与架构解析(最新推荐)》本文详细介绍了MySQL的缓存机制和整体架构,包括一级缓存(InnoDBBufferPool)和二级缓存(QueryCache),文章还探讨了SQL... 目录一、mysql缓存机制概述二、MySQL整体架构三、SQL查询执行全流程四、MySQL 8.0为何移除查

MySql9.1.0安装详细教程(最新推荐)

《MySql9.1.0安装详细教程(最新推荐)》MySQL是一个流行的关系型数据库管理系统,支持多线程和多种数据库连接途径,能够处理上千万条记录的大型数据库,本文介绍MySql9.1.0安装详细教程,... 目录mysql介绍:一、下载 Mysql 安装文件二、Mysql 安装教程三、环境配置1.右击此电脑

在 Windows 上安装 DeepSeek 的完整指南(最新推荐)

《在Windows上安装DeepSeek的完整指南(最新推荐)》在Windows上安装DeepSeek的完整指南,包括下载和安装Ollama、下载DeepSeekRXNUMX模型、运行Deep... 目录在www.chinasem.cn Windows 上安装 DeepSeek 的完整指南步骤 1:下载并安装

深入理解Apache Airflow 调度器(最新推荐)

《深入理解ApacheAirflow调度器(最新推荐)》ApacheAirflow调度器是数据管道管理系统的关键组件,负责编排dag中任务的执行,通过理解调度器的角色和工作方式,正确配置调度器,并... 目录什么是Airflow 调度器?Airflow 调度器工作机制配置Airflow调度器调优及优化建议最

nginx-rtmp-module构建流媒体直播服务器实战指南

《nginx-rtmp-module构建流媒体直播服务器实战指南》本文主要介绍了nginx-rtmp-module构建流媒体直播服务器实战指南,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有... 目录1. RTMP协议介绍与应用RTMP协议的原理RTMP协议的应用RTMP与现代流媒体技术的关系2

Spring Boot统一异常拦截实践指南(最新推荐)

《SpringBoot统一异常拦截实践指南(最新推荐)》本文介绍了SpringBoot中统一异常处理的重要性及实现方案,包括使用`@ControllerAdvice`和`@ExceptionHand... 目录Spring Boot统一异常拦截实践指南一、为什么需要统一异常处理二、核心实现方案1. 基础组件

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

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

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

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

如何用Java结合经纬度位置计算目标点的日出日落时间详解

《如何用Java结合经纬度位置计算目标点的日出日落时间详解》这篇文章主详细讲解了如何基于目标点的经纬度计算日出日落时间,提供了在线API和Java库两种计算方法,并通过实际案例展示了其应用,需要的朋友... 目录前言一、应用示例1、天安门升旗时间2、湖南省日出日落信息二、Java日出日落计算1、在线API2

Spring Boot 中整合 MyBatis-Plus详细步骤(最新推荐)

《SpringBoot中整合MyBatis-Plus详细步骤(最新推荐)》本文详细介绍了如何在SpringBoot项目中整合MyBatis-Plus,包括整合步骤、基本CRUD操作、分页查询、批... 目录一、整合步骤1. 创建 Spring Boot 项目2. 配置项目依赖3. 配置数据源4. 创建实体类