Press "Enter" to skip to content

分类TAB商品流多目标排序模型的演进|得物技术

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

1. 概述

 

分类TAB商品流是得物app购买页面内除“推荐”页外的所有TAB内的商品推荐流,如“鞋类”、“箱包”等。当用户进入分类TAB中,我们可以简化为给定<userId, tabId, itemId> 三元组的商品流推荐,可以看出,分类TAB的推荐场景跟其他“开放式”推荐场景的最大差异在于,是限定条件下(品类)的推荐,与搜索场景有一点相似度,分类TAB代表着用户的品类意图。以我们目前的迭代进度,现阶段主要聚焦于<userId, ItemId>的二元建模,实际上<userId, tabId>,即用户的行为与TAB的相关性,以及<tabId, itemId>,即TAB与商品的相关性,是我们后续进行差异化建模需要着重考虑的;以下的相关进展主要讲述较为通用的商品推荐模型的落地迭代。 我们以多目标排序模型作为精排策略。

 

2. 模型

 

2.1 Base ESMM

 

从多目标学习范式上,我们选择ESMM模型的范式作为我们的精排模型,关于ESMM的介绍在这里我们不做过多阐述,详情参考论文。从论文中,我们可知ESMM的架构如下:

 

 

业务上的baseline 模型,是将上图中的MLP layer 替换为DeepFM模型的结构,加入FM结构学习交叉信息。但从整体上该模型仍然较为浅层,没有对用户的信息表征做更多的抽取,为此我们将模型结构进行了升级。

 

2.2 模型整体结构

 

我们现阶段的建模是<userId, itemId>,从样本表征的角度看,item是比较稠密而且稳定的部分,在大样本的环境下,大部分信息都能够被id embedding所表达,相反,user部分是比较稀疏的部分,而对于user的描述,则需要大量的泛化特征,用户序列行为的引入和建模,可大大增强样本之间的区分性,从而提升模型的分类性能。因此我们引入用户建模模块来表征用户兴趣。

 

从模型的整体结构上,我们不改变ESMM的学习范式,我们只对生成ctr logits、cvr logits的结构做改进,整体模型结构如图:

 

 

其中Deep Interest Transformer结构如下图:

 

 

从整体上看,我们可以看出,对于ctr 任务和cvr任务,每个任务都有各自的main net和bias net;用户兴趣建模模块学习出的用户向量被两个任务所共享,即interest transformer 作为一个信息抽取模块,抽取的信息与其他诸如cross features的表征进行concat,共同作为底层的共享信息。

 

2.2.1 用户行为序列建模

 

我们认为用户的行为与其下一个点击的商品具有相关性,或是相同类目、品牌或系列等重要属性。为了拆解和分析用户行为序列与推荐商品的相关性对推荐效率的影响,我们以商品的三级类目为分析维度,如下:

 

我们以tab商品流线上用户的行为日志进行分析,绘出target item 的三级类目与用户行为序列商品的三级类目的关系对推荐效率的影响,如下图:

 

 

横坐标是描述推荐商品的类目与用户行为序列的商品的类目,其序列中相同三级类目的行为商品数量;纵坐标则是pvctr;从整体趋势上来看,target item的类目与用户行为序列中的商品类目越相关,pvctr越高。当然,从直觉上,点击序列越长(用户活跃度越高)是否点击率就越高,为此我们分析了序列长度与pvctr的关系,如下图:

 

 

显然,用户活跃度的偏差也影响了pvctr,但通过对比,可以明显看出,用户活跃度对pvctr的影响,其趋势是小的(斜率);而推荐商品的类目与用户行为序列中的商品类目相关性的趋势是相对明显的。

 

而如何去建模打分商品与用户行为序列的相关性,attention显然是一种可靠的方法,self-attention可以建模用户行为序列中的各个商品之间的相关性,而target-attention则是建模候选商品与用户行为序列的相关性的方法。

 

模型中的Deep Interest Transformer 是学习用户表征的结构,我们选取用户的行为序列:实时购买、点击立即购买、收藏、点击商品行为,7天内的购买、点击立即购买、收藏、点击商品行为,融合出一个长达120长度的用户行为序列,超出长度部分做截断,不足的长度进行默认填充。

 

Deep Interest Transformer 首先对用户的行为序列进行multi-head self-attention,以此学习序列中各个元素间的相关性,此为对用户序列进行encode;对于待打分商品,我们称其为target item,我们进行decode时,是将target item 的embedding表示作为attention中的Q,而用户序列的encode表示的向量作为attention中的K、V,此为target-attention,即对于不同的打分item,计算该item与用户行为序列中的元素的相关性,因此对于不同的target item,其所激活的用户行为序列的元素有所不同,从而生成不同的用户兴趣向量,最终将有效的区分不同target item的打分。

 

2.2.2 bias 网络

 

推荐系统中存在各种各样的bias,对于tab商品流,我们从几个维度来分析用户本身的bias,如用户的性别、使用设备、注册地。

 

对比图省略,图意为, 不同的用户群体存在着不同的偏差,如男性用户对酒饮、手表类目点击率较高而女性用户则在美妆和女装类目点击率较高;Android用户对数码类目点击率较高而iOS用户低;我们选择国内东南西北四个具有代表性的地区(上海、广东、四川、北京)进行分析,发现诸如酒饮、潮玩、配饰等类目,具有明显的地域偏差。

 

为显式地建模这种bias,我们为每个任务增加了一个bias net,每个任务单独增加了一个网络进行建模,其输出的logits与主网络进行相加。bias net 在此阶段中,我们只用了用户的特征作为bias net 的输入。这个单独的网络是用于建模用户自身的bias,比如有些用户偏向于逛逛但不点击,有些用户却又具有较高的点击率,即活跃度的差异等等。在这种情况下,使用一个单独的bias net去建模这种用户自身与推荐结果无关的bias,是一种相对于单纯增加bias特征在主网络中学习而言更有效的方法。

 

更一般的来讲,bias net不仅仅局限于仅用user embedding进行输入。推荐系统有许多bias,这些bias如果单纯的作为特征用以主网络输入,效果将不如单独用一个bias net来学习这些偏差。bias net不仅可以建模用户对于position的点击偏差, 还可以建模用户对于时间特征的偏差,可以更一般的将用户向量和各种偏差特征的表示进行concat,而后输入bias net 进行学习。

 

综上,以上的模型改动是我们在分类TAB商品流中的第二版多目标模型,已进行长时间实验,获得不错的线上收益并已推全。

 

3. 用户长期行为序列建模

 

3.1 长期兴趣

 

从以上版本的迭代中,我们所使用的用户行为局限于用户的实时画像中的商品序列以及用户离线7天内的商品序列,从序列样本分析来看,我们以120的长度作为序列最大长度,其中有效的商品序列长度,平均仅61;有效的商品长度中位数仅65。如下表:

 

 

即大量的序列长度被无效的默认值所填充,在attention进行mask后,这大大的削弱了用户的兴趣表达。因此,有效扩充用户的有效行为长度,将能够更加丰富用户的行为特征,这对一些不活跃用户使其能够根据长期行为进行推荐。实际上尽管是行为十分丰富的用户,其长期购买、收藏等行为,对当前的推荐也是有益的。

 

在以上的分析中我们以三级类目为分析桥梁得出用户行为序列与候选商品的相关性对pvctr的趋势性影响;对于用户长期的序列,是否同样有这种趋势,为此我们将用户长期序列剔除7天以内的序列后进行分析,如下图:

 

 

可以看出,推荐的商品类目与用户长期行为过的类目仍然存在相关性;用户的长期序列商品中的类目与候选商品类目越相关,候选商品pvctr越高。

 

因此直观的做法是我们引入了用户的长期行为,而不考虑用户行为的时间跨度。我们从用户最近行为的160个商品中,按照去重的方式填充到我们之前构造的序列中,并按照时间先后截断最近的120个行为。从上表可以看出,填充长序列后,用户的有效序列行为长度,中位数达120,平均数达101。这大大丰富了用户的特征表达。

 

从离线评估指标看,ctr auc:+0.3%,cvr auc:+0.1%。

 

3.2 长短期兴趣建模

 

在以上的版本中,我们的建模方式都是将用户的所有行为融合为一个大的序列,以此生成用户兴趣向量。实际上,用户的不同行为时间跨度所反应的兴趣有所不同,我们希望在模型中建模用户不同时间跨度的行为来描述用户不同粒度的兴趣。

 

而且从点击的商品进行分析,用户短期的行为中的类目与点击的商品类目相关性更高,而长期行为的类目的相关性更低。如下图:

 

 

明显的,用户点击的商品与最近行为的10个商品的类目重合度是最高的,而与曾经行为过的第50个之后的商品,类目相关性逐渐明显降低。

 

为了考虑这种短期和长期行为序列对候选商品的影响,对此我们将用户的行为划分为短周期行为、长周期行为,在用户兴趣建模中考虑长短兴趣,长短期序列我们目前是通过实时画像、离线画像进行划分。实验上我们尝试了以下两种方法进行建模。

 

长短期兴趣分别建模

 

分别建模短期兴趣、长期兴趣用户向量,分别为Sv 、Lv;然后将[Sv,Lv]  进行concat得到用户兴趣向量Uv ,由上层各自任务的网络进行学习;如图:

 

 

即 Uv=concat([Sv, Lv])

 

长短期兴趣通过gate网络进行融合

 

短期兴趣、长期兴趣用户向量,分别为Sv 、Lv ,通过gate网络融合,如图:

 

 

即 Uv = aSv + (1-a)Lv

 

其中gate net,输入是用户特征向量以及attention学习的用户长、短期兴趣向量,通过MLP网络以sigmoid函数进行激活,以此将短期向量、长期向量通过fusion gate 进行融合,得到新的用户兴趣表达 Uv 。至于如何选择gate 网络的特征,我们参考了MMoE的结构,同时我们认为能够对用户长短期兴趣进行区分的应当是用户本身的特征。

 

综上两种长短期兴趣建模方法,从离线评估指标看 auc:约+0.1%,已结合上述的长期兴趣建模在分类TAB场景上线实验。两种建模方式对最终的效果基本相当。诚然,第一种方式,将长短期兴趣进行concat后交给上层任务自主学习,同时也增加了上层各个任务的specific 网络参数。而第二种方式将取决于gate 网络的学习。

 

4. 展望

 

如上所述,分类TAB的推荐场景,实际上属于<userId, tabId, itemId> 三元组的商品流推荐,我们目前所做的工作集中在<userId, itemId> 二元组的建模上,并且主要是在user 侧的建模以提升泛化性。但TAB本身的信息也是该场景的一个考量因素,比如用户在不同TAB中,有些偏向于高点击,有些偏向于浏览,如何在模型中考量建模不同TAB的差异性,将是后续的一个方向。

 

同时,item与TAB本身的相关性也将是一个考量方向,TAB从品类上看类似于搜索品类词,具有品类意图,item与TAB具有强相关性和弱相关性区分,类似于搜索的类目相关性强弱相关性分档。我们认为与TAB强相关并且命中了用户兴趣的item将更有可能被点击转化。当然这有待于我们进一步分析。

 

*文 /吴利福

Be First to Comment

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注