关于算法:分类TAB商品流多目标排序模型的演进

4次阅读

共计 4560 个字符,预计需要花费 12 分钟才能阅读完成。

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 将更有可能被点击转化。当然这有待于咱们进一步剖析。

* 文 / 吴利福
@得物技术公众号

正文完
 0