阿里飞猪推荐算法探索实践

导读:本文的主题为阿里飞猪推荐算法探索实践,首先会介绍电商背景下主流推荐技术的发展,例如基于全空间的CVR预估技术的发展历程等 ( ESMM / ESM^2 / HM^3 );接着会重点结合旅行行业的特色,进一步介绍飞猪推荐算法的现状及发展 。
01电商推荐算法简介
首先和大家分享一下电商的推荐算法 。
1. 推荐技术框架

阿里飞猪推荐算法探索实践

文章插图
 
电商的推荐技术框架大致可以分为如下四个部分:
① 基础能力:主要包括基础数据、样本、特征和机器学习平台四个方面 。
具体涉及到基础数据的处理,样本、特征怎样做,以及后续机器学习平台涉及到的一系列流程,包括样本生成,模型训练,模型校验以及模型上线等 。
② 算法模型:主要包括召回,初排,精排和重排 。
召回阶段:业界正从协同过滤往基于深度学习的Deep Match方向衍化 。
协同过滤简单地说就是一份i2i数据,它是一份全局的相似数据,具体来说,它会根据用户点过的商品去推荐和该商品相关的商品,这样就会丢掉很多个性化的信息 。举个例子:用户A和B都点击了同一个商品,那对A和B来说,后面的推荐结果在召回层面是一样的 。但A和B为什么会去点这个商品呢?事实上,会有一些context信息的,比如会存在不同的行为序列等 。我们是希望考虑用户的行为序列去做相应的召回,所以模型在往基于深度学习的Deep Match方向做衍化 。例如,阿里最近的一个工作应该是发表在SIGIR2021上的PDN模型,该模型研究了如何更好的把u2i和i2i数据做一个更好的结合 。
精排阶段:正在从以FTRL为代表的线性模型和以GBDT为代表的非线性模型往深度模型的方向发展 。
这其中,阿里妈妈提出的DIN模型为深度学习方向的代表性模型 。它对我们建模用户行为序列提供了非常好的指导 。随后也有很多基于DIN的一些衍化工作,比如针对怎样捕捉用户兴趣的衍化,提出了DIEN模型;针对怎样建模用户更长时间周期的行为,提出了超长行为序列建模的思想 。另外,在CVR预估领域,代表性的工作是阿里妈妈提出的ESMM模型,我们也基于此有一些后续的研究成果 。
③ 线上服务:采用的是统一的TPP推荐方案,在TPP方案内部嵌套了相应的基础服务 。比如做特征处理的ABFS,做召回的BE,做储存的IGraph等 。这些组件集成在TPP方案里,再用这套推荐方案去承接线上各类推荐场景 。
④ 业务场景:比如手淘的猜你喜欢,店铺、商家私域,还有逛逛、订阅、购后场景等
2. 基于全空间的CVR预估—ESMM模型回顾
接下来我们基于全空间的CVR预估,讲讲这个方向最近的一些进展 。首先回顾一下阿里妈妈发在SIGIR 2018上的ESMM模型 。
阿里飞猪推荐算法探索实践

文章插图
 
① 传统CVR预估面临的三大技术挑战:
Sample Selection Bias(SSB)问题
传统的CVR预估是用点击的样本去train一个模型,点击之后购买,它的label就是1,没有买,label就是0 。但事实上,商品在曝光时,推荐系统就要估出它们的CVR分 。所以会存在training space和inference space不一致的问题 。
Data Sparsity ( DS ) 问题
传统CVR预估的数据量比CTR预估的数据量少几个数量级 。所以,CVR预估存在数据稀疏性问题 。如果拿数据量很少的数据集去train一个深度模型,相应的Embedding的学习也会不充分,进一步影响CVR模型的预估效果 。
购买正样本的缺乏
用户实际产生的购买行为确实是非常少的,导致了绝对正样本的缺乏
② ESMM建模方法
引入CTR/CTCVR任务为辅助任务
我们可以看下下面这个公式:是指从曝光到购买的一个概率,就等于 。CTR就是从曝光到点击的概率,CVR就是从点击到购买的概率 。
阿里飞猪推荐算法探索实践

文章插图
 
我们怎么去获得CVR的预估值?ESMM的建模思路是,直接在模型中引入了两个基于全空间的辅任务,比如CTR和CTCVR 。一条样本曝光之后,我们能够知道他是否会点击,是否会购买的 。所以这两个任务的label是提前知道的 。我们可以基于这两个引入的辅任务,对CVR做预估 。
阿里飞猪推荐算法探索实践

文章插图
 
ESMM模型结构如上图:它有两个塔,分别代表CTR和CVR,同时基于这两个塔定义了两个辅任务 。比如CTR,还有CTCVR(它代表CTR和CVR的乘积) 。这样,给定一条曝光样本,我们知道它接下来是否会发生点击,是否会发生购买 。再通过梯度回传的方式,就可以把CVR也给估出来 。


推荐阅读