推荐、搜索、广告中的召回、相关性、多目标精排 - 召回篇
一、召回
智能推荐算法在直播场景中的应用 - 知乎
花椒直播推荐系统高级算法工程师王洋:智能推荐系统在直播场景中的应用_哔哩哔哩_bilibili
1:基于item的协同过滤(求出来item之间的相似性,也叫itemCF),然后根据用户已经交互过的item求出来用户对没有交互的物品的交互概率。再限制一些条件,就可以得到召回结果(在直播里面,item可以分为商家item、商品item),商家item数量少,使用itemCF计算、存储上不会太多,直播售卖的商品item一般也不会太多(不像电商里面,一个羽毛球就可能是几千种,在直播中不可能这几千种羽毛球都有进行直播售卖,大多数情况下是一些大厂的、热门的羽毛球才会开直播)
对A,B两个物品计算相似性:分母是根号3*根号1,根号3是因为A与3个用户都有交互,根号1是因为B只和1个用户有交互,分子是共同有交互的个数。实际上理解这个有个极端的例子:假如AB都和3个用户有交互,那么根号3*根号3是3,最终相似性是1
在计算user和item的相似性时,可以看到user1和两个item都计算后进行相加,user3只和1个item计算后相加,显然不公平,因为相加的越多自然越大。但是user之间是不可比的,每个user在计算的时候,会同时和相同个数量的item进行计算
2:基于隐向量的协同过滤 利用用户和item的交互稀疏行为,进行矩阵分解,得到用户矩阵,item矩阵,然后进行内积召回
这种矩阵分解,后面有一些改进(用深度学习的方法,上面学习user item隐向量后,再用dnn学习两者的交互函数),比如
神经网络+矩阵分解(NCF),得到user、item的向量后,不是直接内积,而是concat再过mlp层最终得到score
神经矩阵分解(NeuMF):得到user、item的向量后,不仅求得内积,也像NCF一样经过mlp,然后两部分concat,最后得到score
这种办法更适用于item数量多一些的业务,就不像上面的协同过滤那样担心存储问题了,每个user、item的都可以保存下来
3:Youtube-dnn。后面的各种召回模型中都有item侧特征,在直播中应该是商家item、商品item共同提取的特征才对
4:双塔召回(也叫基于内积模型的向量检索方法),及其优化办法
阿里广告技术最新突破:全链路联动-面向最终目标的全链路一致性建模 - 知乎
上面的youtube-dnn实际上是一种双塔召回,双塔召回的办法有许多,阿里对这个做了优化,从下面几个问题分析
(1) 在优化召回整个过程中,应该像阿里这样:沿着精准值预估的技术路线,在召回提出了新的可以面向任意目标(RPM (RPM=CTR*Bid) ,GMV (GMV=CTCVR*Price等)的全库向量召回技术PDM
(2) ctr为预估目标,这个从样本上就能学习到,不用特地优化
(3) 多样性,多兴趣
其中(1)两个点在阿里这篇文章中进行了解决。将user item的向量内积融入bid单价,导致向量内积的结果会包含RPM最大化
首先这个u a代表user和item的向量(通过pctr模型训练得到),然后乘上了加权系数,最基本的权重1,然后是和bid相关的权重,这里为了使得bid的权重更大些,使用user和所有item的平均相关性作为分母,相当于做了下加权。但是这样可能过于考虑了bid,可能相乘更好一些(而且不是user和item的平均相关性,而是user和当前item的相关性,也就是当user和某个item相关性强时,考虑bid的意义也大些)。ln(bid)是个常见的对数值特征的处理办法,在大值处减少影响程度
上面是考虑ecpm这个目标的RPM最大化,如果要考虑GMV的话,需要把user item的向量从pctr模型得到换成pctcvr得到即可
同时文章中提到,从最开始效果比较差的曝光、点击样本,到再加入unpv样本
整个架构图是上面这样,有几个点需要注意
(1) 首先是召回模型+精排模型联合训练,召回模型的loss组成由下面这几部分
曝光、点击样本上的loss(这个loss不是上面的pctr那条链路,而是旁边的auc_pctr,这个在每个batch中,正样本加入了batch内的随机K个item的负采样) + 蒸馏loss(蒸馏loss只针对unpv样本,而且loss的计算是精排模型的预测结果 - 召回双塔的预测结果,就像把精排模型的预测结果当做label一样去拟合,distill_loss = (logit_rank - logit_recall)**2)
(2) 联合训练时user_feature item_feature是共享embedding,蒸馏loss不对精排产生影响
5:bert召回
使用bert的3个优点
(1) BERT采用pre-train+fine-turning的训练模式,基于超大量语料进行pre-train,在pre-train过程BERT已经能学好单词、句法、语义等特征,具体任务只需用较少量的数据进行fine-truning。
(2) BERT是双向语言模型,拥有上下文信息。相比GPT(单向语言模型)和ELMO(粗暴的双向语言模型,前向和后向简单相加),BERT有得天独厚的优势
(3) BERT采用Transformer作为特征提取器,相比RNN LSTM,Transformer具有两点优势:RNN不可并行,BERT可并行;RNN很难捕捉长序列的依赖关系,Transformer可以
性能不好,但是效果好的bert召回,这种一般上不了线。将query和doc按照bert的输入方式放在输入层,然后后面是bert,最后output中,既可以先sum_polling再mlp得到score(58同城),也可以把[CLS]那个位置的embedding用来做二分类看两个相关性多少(美团好像是)
深度语义模型 BERT 在 58 同城搜索的实践 - AIQ
最基础的双塔bert,因为query和doc是各自编码,少了交互,所以精度不高。但是有点也很明白,编码部分是可以提前计算的(58、qq看点都这样做过)
QQ看点:https://baijiahao.baidu.com/s?id=1652686974246350252&wfr=spider&for=pc
对双塔bert最后面计算query和doc向量的值时选择的办法(回归和pairwise最好)
双塔的基础上进行模型蒸馏(使用有交互的bert)
Poly-Encoder,介于没有交互和完全交互之间的思想。将query(假设长度是32)经过bert编码后,下一层定义N(N<=query的长度,一般不会太大,因为要做attention)个code,然后这N个code和32个编码向量做attention,得到N个attention向量,这N个向量再和item经过bert后的向量进行attention得到query最终的向量。然后这个向量和item向量做回归/pairwise(这个也是58他们做的最好的一个模型)
58同城的item是多模态的(多种表达),在直播中也是这样,直播间名+直播间介绍+主播名+卖的商品名+卖的商品的介绍。人为的把文档划分成多个文本域,每一个文本域经过一个独立的Bert塔,得到各文本域的语义向量。划分成多个文本域之后,文档这部分,就可以得到多个文本域的语义表达,而Query塔这边得到一种语义表达,然后也是进行Attention计算,得到一个动态的文档语义表达,最后接一个匹配层。这是在Embedding层进行交互
6:多兴趣召回。这种常常发生在用户在电商场景,直播场景,因为在里面用户会看不同类目的item,将这些类目混杂在一起进行召回是不合理的,最好是分别求出来向量进行内积召回
可以具体看这篇文章,里面加入了博主在调研时候发现的一些好文章,博主把自己总结的一些点也总结在了里面:Multi-Interest Network with Dynamic Routing for Recommendation at Tmall(MIND)_1066196847的博客-CSDN博客
下面给出这种思路中最重要的动态路径这个思想的两张重要的图
7:多模态召回
全民K歌直播推荐算法实践
在全民K歌中,除了item传统的特征之外,还另起了两个其他的item-tower,分别是歌曲song的特征、视频的特征,如果在淘宝直播中那么就是淘宝商品的embedding、整个直播视频的embedding。上面图中是把user-embedding和item的这3个embedding汇总到一个圆圈中,我觉得应该是把Live-view和song-view和media-view concat在一起再和user-embedding进计算
8:图网络召回
陌陌直播如何做到推荐系统的从 0 到 1 - AIQ
在直播推荐这个场景,构建图矩阵的时候,应该是一个异构图,图里面包含用户和主播、商品的各种交互关系(点击观看、评论、送礼物、关注),构建出来这样的图之后,比如用户和主播 观看这层数据,利用graphsage这种图卷积可以来得到node的embedding,然后在搜索/推荐时,利用向量进行召回;也可以设计规则利用user - (query) - item这样的关系,召回有link关系的node作为召回结果
9:规则召回
Dolphin.海豚会|基于推荐算法提升直播业务的效能实践_用户
上面5类中,相似召回(item协同过滤)、向量召回在前面都讲过了,前面3类在淘宝直播中大概不会有,但是前1 2是会有的
推荐、搜索、广告中的召回、相关性、多目标精排 - 召回篇相关推荐
- 直播推荐、搜索中的召回、相关性、多目标精排 - 相关性篇
二.搜索相关性 电商搜索:相关性匹配 - 知乎 上面这篇文章中说的很好,把相关性从简到易分到3种(结构化匹配.文本匹配.语义匹配) I:召回.粗排中用到结构化匹配的方式来控制相关性(query的类目是 ...
- 预训练技术在美团到店搜索广告中的应用
猜你喜欢 0.2021年轻人性生活调研报告1.如何搭建一套个性化推荐系统?2.从零开始搭建创业公司后台技术栈3.2021年10月份热门报告免费下载4.微博推荐算法实践与机器学习平台演进5.腾讯PCG推 ...
- 深度学习新技术在搜狗搜索广告中的深化应用
大家好,我是来自搜狗搜索广告应用策略研究组的舒鹏,目前主要负责搜索广告算法研究工作,今天的题目是深度学习新技术在搜狗搜索广告中的深化应用.深度学习技术已经出现很多年,它在各个场景中都有应用,本次演讲的 ...
- 再看同义变换在百度搜索广告中的应用总结
一.概述 原文:同义变换在百度搜索广告中的应用,https://mp.weixin.qq.com/s/ybkbU8p_3jgKuCGdNWeG8w 二. 关键词匹配问题定义 2.1 定义 输入:que ...
- 推荐与广告 中的概念和指标
推荐与广告 目录 推荐与广告 CTR(Click-Through-Rate)即点击通过率,CTR=实际点击次数/展示量,是互联网广告常用的术语, 基本介绍 点击率 点击量 计算公式为:CTR=实际点击 ...
- 推荐搜索系统中关于多场景学习的常见方法
今天的博文主要参考了以下材料: 1 2020年阿里<Scenario-aware and Mutual-based approach for Multi-scenario Recommendat ...
- 搜索系统中的文本相关性实践经验
前言 文本相关性问题就是判断两个文本之间的相关程度,也是搜广推中的重点问题之一.本篇文章主要粗略总结这方面的一些实践经验,包括特征.模型以及部署上需要注意的问题,都是本人在工作中积累的实际经验,非综述 ...
- 直播推荐、搜索中的召回、相关性、多目标精排、特征、重排 - 多目标精排(3) - loss权重的4种方案
一.多目标学习在推荐系统的应用(MMOE/ESMM/PLE) - 知乎 这篇文章中主要针对回归任务.分类任务两种目标来对不同任务设置不同的参数.博主主要记录下里面的公式推导部分和这样做的原因 (1) ...
- 搜索、推荐、广告中的曝光偏差问题
作者 | wulc 整理 | NewBeeNLP 机器学习本质上是在学习数据的分布, 其有效性的假设是模型 training 和 serving 时的数据是独立同分布(Independent and ...
最新文章
- 以Linux系统上的gcc为例,解密C语言编译背后的全过程!
- Spark详解(十):SparkShuffle机制原理分析
- Log4j 2使用教程
- linux添加审计账户_Linux下利用psacct审计系统帐号连接时间, 用户操作
- 面试小问题——Object中有哪些常用方法?
- MaxCompute使用常见问题总结
- Java基础知识强化之网络编程笔记05:UDP之多线程实现聊天室案例
- 【Pytorch】interpolate==>上下采样函数
- mongoDB mac 安装 小白必备
- 一女程序员被判 9 个月:因薪酬等问题离职,rm -f * 删库,瘫痪 6 个小时
- JAVA实时运算_Java 实时运算簿页面
- mysql 命令 kill_详解mysql数据库实用工具--percona-toolkit的7大分类
- Java常用Linux命令集合
- 项目管理:RASCI模型
- 计算机设置鼠标关灯,老司机详解罗技鼠标怎样关闭灯光
- word中域代码与题注的结合实现自动编号和超简便交叉引用
- 微信昵称乱码 mysql_微信登录昵称中文乱码 Emoji表情乱码问题总结
- Error in Summary.factor ‘min’ not meaningful for factors
- Dwz点击左侧菜单动态添加Tab标签图标
- 智能音箱 功放与喇叭选型 参考
热门文章
- (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
- 【48期分享】4款产品发布PPT模板免费下载
- php 微信登陆unionid,微信扫码登陆/微信公交号 登录PHP 自适应 UnionID统一用户
- 微信小程序后端mysql数据库_微信小程序后台springboot+mybatis+mysql“采坑”集锦
- 中国移动飞信协议分析
- 毕业设计学习锋迷商城笔记
- EOQ的计算公式简化
- 【光环国际】学好团队管理的4点建议
- 学校人力资源管理系统-数据字典
- 微信打赏功能暗示内容付费时代渐近