推荐系统-深度学习在1688推荐系统中的落地实践

前言

推荐导购场景在电商中是重要的满足用户“逛”和“买”的场景,本次主要聚焦在深度学习在阿里B2B电商推荐系统中的应用,其中包括商品推荐中的召回(多兴趣Deep Match)、排序(自研DMR)的相关工作,在新兴的互动内容场景(直播、短视频)中通过异构网络来解决异构信息的精准匹配问题。


本文分享大纲如下:

  1. 发展历史
  2. 商品召回:Deep Match
  3. 商品排序:DIN-DIEN, DMR
  4. 内容排序:直播排序

1. 发展历史

1688推荐系统这三年发展的一个roadmap:
推荐系统-深度学习在1688推荐系统中的落地实践_第1张图片

1.1. 2017年

从17年开始,我们才更加的专注于个性化的分发,不管是搜索还是推荐。如果做推荐的同学们也知道:一开始,我们要做召回、排序、业务的定制以及类似的一些工作。所以我们在17年的时候,主要借助阿里之前淘系的基建,比如SWING&E-TREC这些I2I方法,这其实就是协同过滤的升级版本,然后去进行一个基本的召回方式,以及用LR到GBDT去做一个最初是的CTR预估。到去年年底的时候,我们从LR到GBDT转换到W&DL,因为当时,大概是16年吧,谷歌的W&DL的论文出来后,然后17年在阿里有一个比较大的场景的一些实践。可能针对业务定制的使我们的Unblance I2I,这个I2I的意思呢?是我们总有一些业务是一些小小的商品池,它是一个比较特定的,他不是一个全域可推荐的范围,当我们进行一个大的商品出发的时候,就是定向的往这个商品池里触发。

1.2 2018年

18年深度学习在业界越来越火,所以我们顺着这个潮流,在排序当中走到了DIN和DIEN,这两个工作是阿里妈妈背景的团队做的在广告上的一个CTR的模型的排序,以及顺着Youtube的Deep Match的工作,我们也做了我们这边的Deep Match,以及一些机制的构建,不足了之前我们只有CTR模型没有CVR模型的短板,一些标题党商品会往下落。

1.3 2019年

在最近的一年,我们在召回上去进行一个多兴趣点的Deep Match的尝试,在粗排上从GBDT走到了双塔,以及在排序当中,之前是借鉴公司以及业界的一些先进的经验。我们这边有一些自己的更多的创新工作,比如在CTR中有一些DMR,等一下会详细讲到(AAAI 2020),还有就是在CVR模型当中走到了ESMM+MMOE这样子的模型。最近特别火的就是直播了,以及直播这种内容化的一些推荐。

2. 商品召回

大家知道,一开始做召回的话主要就是协同过滤的方法,例如比较经典的是I2I召回和U2I召回,1688使用过的是Deep Match U2I召回。
推荐系统-深度学习在1688推荐系统中的落地实践_第2张图片
LFM: 隐语义模型

2.1. I2I召回

  1. 采用了Swing/e-trec等启发式方法,效果好,普适性高;
  2. 因为有i2i的关系,用户如果有新的行为,马上能够进行一个触发,可以进行实时的召回
  3. 可解释性有保障;

2.2. U2I召回

  1. 采用了优化方法,通常比启发式方法更加靠谱
  2. 主要由user ID来进行一个embedding召回,新的行为进来后,比较难进行实时更新(实时效率低可以进行弥补)
  3. 可解释性比较差(并没有办法解决)

2.3. Deep Match U2I召回

推荐系统-深度学习在1688推荐系统中的落地实践_第3张图片
16年YouTube提出的Deep Match的方法主要是解决了之前召回效率低的问题,因为这种方法是把用户的历史序列记忆对应的user profile 进行一个embedding之后,然后通过一个MLP得到一个用户的表征。这个表征由于是实时生成的,用户的足迹是不断往里面增加的,那么这个效率是比较高的。Deep Match模型可以更多的用到一些商品侧的自身的一些行为、类目和属性信息,从而能更好地构建模型。但是他的可解释性比较差。另外召回的badcase还是惊喜是一个各花入个眼的方法,需要新上ABTest给出答案。
推荐系统-深度学习在1688推荐系统中的落地实践_第4张图片
在Youtube Deep Match的基础上,我们基于序列上下文的Attention,构建用户表征,即通过时间衰减/行为类别/停留时间等信息对用户序列进行建模,模型结构图如上所示:

经过线上测试uv点击率+0.92%,人均点击次数+9.81%,发现性曝光占比+8.04%。


2.4 Practical Lessons

  1. 因为是一个match过程,所以我们选择了随机负采样作为负样本;
  2. Position Embedding很有效,用户行为的远近是比较重要的
  3. Item Features Sequence能有效增加信息量

2.5 迭代方向

  1. 用户多兴趣提取
  2. 双塔结构,利用target的side information辅助

3. 商品排序

  1. DIN
    推荐系统-深度学习在1688推荐系统中的落地实践_第5张图片
    17年的时候,我们演进到了WDL的过程,然后18年的时候,因为阿里妈妈在KDD18的时候发表了DIN的那篇paper,同时也在公司内部做了一些介绍。我们就顺着这个潮流从WDL走到了纯的用户向量表征再接MLP的范式;

DIN是显性的用户表征学习,对behavior和candidate引入了Attention,使得用户表征随着候选的不同而发生了变化。DIN结构如上图所示。
推荐系统-深度学习在1688推荐系统中的落地实践_第6张图片

3.1 线上效果(baseline:WDL)

  1. CUN: CTR+5%,CVR+11%
  2. 1688: CTR +4%,CVR +1%

3.2 关于Attention

  1. concat(keys,querys,keys*querys,keys-querys)+Relu+MLP
  2. 运算量=400候选*50sequence+400MLP
  3. 线上DIN在400个候选RTP打分的相应时间为15ms

3.3 DIN没有考虑的信息:

用户长期兴趣偏好(广告区别于推荐)词袋模型,序列不敏感(对最近的行为无额外的偏好)没利用raw feature

4. LSRMM


基于DIN存在的一些问题,我们做了一些改进,提出了LSRMM(long short-Range Mixture Model),该模型能够去抽取一些长期的用户偏好。这个兴趣偏好不是end-to-end学习出来的,而是直接通过离线的方式统计出来用户在各个时间是否都对于一个特定的类别的东西有一个偏好。比如我喜欢羽毛球,那么再额外的候选中会出现羽毛球。

4.1 LSRMM的特点:

  1. 长期兴趣偏好:长期兴趣提取后,缩减候选,形成单独序列
  2. 行为时序信息利用:近期(session)短序列截取,形成单独序列
  3. 利用raw-feature信息:GBDT EMBEDDING处理统计类raw-feature

4.2 线上效果

CUN CTR+1.5%, CVR + 3.32%(baseline: DIN)

5. DIEN


当我们知道DIN和DIEN的时候,这两篇paper都出来了,但是为什么我们没有直接上DIEN而是用了DIN呢?主要原因在于DIEN在用户表征例有两层GRU结构,用GRU跑起来还是一个串行结构,它不能并行。我们预估起来,他这个耗时比较厉害,存在一定上线的工程风险,所以我们这边线上了DIN在上了DIEN。

5.1 模型演化过程

  1. GRU+Attention+GRU
  2. GRU+Attention+ATGRU
  3. GRU+Attention+ATGRU+Auxiliary Loss

推荐系统-深度学习在1688推荐系统中的落地实践_第7张图片

5.2 Practical Lessons-rt降低之路(1000个item打分时长)

这是我们做的一些优化以及改进DIN效率,原版DIEN(350ms):

  1. user feature只传一次,节省通信开销(340ms)
  2. 第一层RNN只跑一次(250ms)
  3. Embedding size降低至32(140ms),(这个会影响效果)
  4. 简化attention后(140ms)
  5. 分batch并发请求(100ms内)
    各种方法benchmark结果比较:
    推荐系统-深度学习在1688推荐系统中的落地实践_第8张图片

6. DMR:Deep Match to Rank

推荐系统-深度学习在1688推荐系统中的落地实践_第9张图片
DMR使我们最新发表在AAAI2020上的论文(oral),在Ranking中融合了Matching的思想,建模u2i相关性。DIN和DIEN都是聚焦用户兴趣相关性的建模。而DMR又往前走了一步,对u2i相关性进行建模。这个相关性可以直接衡量用户对商品的偏好程度,从而提升模型的效果。这个u2i相关性是无法通过统计的方法得到的,因为通常不会给用户推荐重复的商品。也无法从召回得到,因为通过是有多路召回,没路召回的相关性不能比较。
DMR提供了一个统一的任意u2i相关性的建模方法。DMR中采用两个子网络建模u2i相关性,其中user-to-item Network直接通过user和item向量内积建立u2i的相关性,并且用一个辅助的deepmatch任务联合训练,促使更大的内积表征更强的相关性,从而提升效果。item-to-item网络采用简介的方式建模u2i相关性,类似于DIN网络,我们先做一个target Attention,这个attention权重可以理解成i2i权重。在讲权重求和得到第二种u2i相关性。DMR提供了一个u2i相关性建模的范式,可以很方便地加入到其他深度模型中。

6.1 DMR实验

6.2 线上效果

  1. uv-ctr相对提升1.23%
  2. 人均点击次数相对提升9.13%
  3. pv-ctr相对提升3.61%
  4. L-O转换相对提升1.81%

7 内容推荐

1688自2019年开始大规模的去做直播业务,最近直播有多火呢?连法院拍卖这件事都开始上直播了。

7.1. 1688直播推荐的业务背景

  1. 电商内容化重要方向,提升用户的时长与黏性
  2. B类采购批发,小商家为主,主要类目为女装/童装/配饰/食品等。
  3. 转化率高,目前频道页UV转化率17%,全导购场景第一;
  4. 核心考察指标为买家数(转化率),同时关注点击与用户时长。

7.2. 直播在1688上面临的一些问题

  1. 只用排序就OK了的场景,因为每个时段同场次在线的直播数还不过1000,不过1000的话那未必有一个召回的诉求。给1000个打分我们的模型还是能罩得住的,所以我们对召回的诉求就不强。
  2. 直播是一个多目标学习的过程,在哪里建模也都是一个多目标的过程,比如既要点击率又要在观看时间长,又要转化率高,还有粉丝亲密度的问题。
  3. 还有一个问题:直播这个东西,本来我们是推商品的,这边又开始推直播了。我们就像商品和直播之间是一个什么样的关系。是不是商品很不错,那么它对应的老板做直播就不错的。其实答案是否定的。就是商家和商家的直播之间还是不一样的,有很多商检日常商品经营的好的,未必就是直播做的好的。所以它是一个内容的异构网络。

7.3. 直播排序迭代V1:特征工程+机器学习

推荐系统-深度学习在1688推荐系统中的落地实践_第10张图片

业务初期选择了特征工程+机器学习LR/GBDT,核心在于实时数据、实时交叉特征打点日志的建设。在特征工程上,选取了经典的user,item(live),user X item三个维度,这相比于之前排权重,uv和转换率都有一个明显的提升。

7.4 直播算法排序迭代V2:深度学习双序列模型+多目标学习(multi seq MTL Model)


我们通过拆解用户行为轨迹中,直播和商品作为两条不同的行为序列去进行分别的Attention,直播中每一个卖家都在贴一个正在介绍的商品,所以图中会有一个candidate Item。

此外,由于DNN类模型难以处理Scale不一的实时统计特征,我们采取了DNN+GBDT embedding的模型结构,实时统计特征预训练GBDT模型,线上实时获取多棵叶子节点的Multi-Hot encoding当做表征,在连接Dense层映射为表征向量。相比于V1版本离线测试显示CTR和CVR AUC均有增长,线上预测UV CTR + 2.2%,CVR+5.2%,AST+17.6%。

7.5 直播算法迭代V3:Item到Live异构行为激活(HIN Attention)


动机

  1. V2中用户行为是同构的,即item->Item Att,Live->Live Att,但是对于大多数用户,但是对于大多数用户,尤其是直播新人仅有Item行为的用户。最重要的是基于用户商品行为到直播的Item->Live的异构推荐排序。
  2. 引入一路Candidate Live到Item Seq的兴趣提取单元,并在Live和Item表征中尝试了几种方法:
    1. End2End Share Embedding,与V2模型中的其他部分Live和item embedding共享,共同训练End2End not share embedding,为该路HIN Attention单独声明和训练embedding。
    2. HIN Pre-train,基于Live2Item 的边关系,User2Item和User2Live的异构网络,集合HIN Metapath2vec的方案预训练的embedding,与其可融入更多信息。
  3. 效果: 当前上线:End2End not share CVR + 2.47%, 停留时长AST+3.92%。

Future

预期要完成的工作

  1. 粗排网络
    1. 同时开播业务体量达到一定量级后,基于基于双塔向量召回的粗排模型。
  2. 多目标MTL:
    1. MMOE结构,多个Expert Net 建模不同的目标,多业务场景已经验证有效。
    2. 多目标级联Bayesian Net结构优化;
  3. 异构网络HIN:
    1. 引入更多关系(如粉丝关注)的预训练向量,也可以用于召回和商业化的商品分销。
    2. 端到端的HIN2Rec建模,如直接在模型中直播间本次讲解的多个商品去实时表征直播
  4. 内容理解
    1. 业界正在探索的方向,还没有很成熟的落地。

URL: https://mp.weixin.qq.com/s/OU_alEVLPyAKRjVlDv1o-w

你可能感兴趣的:(人工智能系列,推荐系统)