专栏首页小小挖掘机RS Meet DL(53)-DUPN:通过多任务学习用户的通用表示

RS Meet DL(53)-DUPN:通过多任务学习用户的通用表示

本文介绍的文章题目是:《Perceive Your Users in Depth: Learning Universal User Representations from Multiple E-commerce Tasks》

论文的下载地址为:https://arxiv.org/pdf/1805.10727.pdf

视频介绍:https://yq.aliyun.com/video/play/1377?do=login&accounttraceid=2a655d82-06ce-4c03-a7bf-9e7c8f36b76e

本文以淘宝搜索和推荐场景为背景,通过一个多任务模型来学习用户的通用表示,并对比了多任务模型和单任务模型的一些实验效果,并对多任务模型以及模型迁移等方面给出了一些经验介绍。咱们一起来看看。

1、多任务学习的优势

我们为什么要使用多任务学习呢?或者说,多任务学习相比于单任务学习有哪几方面的优势呢?总结主要有两点: 1)使用一个多任务学习模型,可以共享一部分网络结构,相比于使用多个单任务学习模型,其总体的网络结构大小更小,在线CPU使用率更低,对于在线服务更加友好,可以保证线下服务性能的稳定性,支撑更大的QPS。同时,对于存储资源也会大大的节省,我们没必要为每一个任务保存一份embedding词表,而只需保存一份即可。 2)在淘宝中,使用多任务学习,可以学习到更通用的用户、商品的向量表示,这些向量可以更方便地迁移到其他任务中。

基于以上两点,接下来我们首先介绍本文的多任务学习模型,然后详细介绍下多任务模型和单任务模型的效果,以及模型的迁移能力,最后,介绍下一些多任务模型使用上的经验。

2、多任务模型

本文提出的模型称为DUPN网络( Deep User Perception Network),其整体的架构如下图所示:

可以看到,一共分为五层,行为序列层、Embedding层、LSTM层、Attention层、下游多任务层。接下来,我们分别介绍这几部分。

2.1 行为序列层

模型的输入是用户的行为序列x = {x1,x2,...,xN},行为序列中的每一个行为都有两部分组成,例如第i个行为xi被表示成<itemi,propertyi>,itemi表示这次行为对应的淘宝中的商品,不仅仅是商品本身,还包含商品的一些side-information,比如店铺ID、品牌、品类、标签等等。propertyi表示此次行为的一些属性,比如场景(scenario,如搜索、推荐、聚划算等等场景)时间、类型(点击、购买、加入购物车等等)。

2.2 Embedding层

在定义好模型的输入之后,输入大多是ID类特征,因此通过Embedding层转换为对应的Embedding:

用户的每个行为被表示为:

对item feature来说,包括商品id、店铺、品牌、品类、标签,这些在淘宝中词表的大小分别为1G、1M、10M、1M、100K,对应的embedding的长度分别为32、24、24、16和28。这些有的是multi-hot的,比如商品可能会有多个标签,应该会通过pooling操作进行转换。

而对于行为property来说,场景、时间和类型的embedding的长度均为16。因此最终每一个行为的Embedding长度为32 + 24 + 24 + 16 + 28 + 16 * 3 = 172。

2.3 LSTM层

得到了每一个行为的Embedding表示之后,首先通过一个LSTM层,把序列信息考虑进来,LSTM层的表示如下:

每个hidden state的计算如下:

输出的每个hidden state是128维的向量。

2.4 Attention层

在LSTM层之后,通过Attention层来决定行为的重要程度。举个简单的例子来说明为什么要用Attention层。例如,某用户点击浏览一条连衣裙,然后购买了一个手机,浏览了一些扫地机器人、笔记本电脑等。如果此时该用户输入搜索query为iphone,那么用户行为中关于服饰的记录重要性明显降低,因为这些记录并不能反映该用户当前的兴趣,而之前关于手机的行为记录能更多的表达用户当前的兴趣。

那么Attention层的结构如下:

结合总体网络结构看看attention层:

图中粉色和蓝色以及黑色虚线为模型的输入,粉色线代表行为behavior相关的embedding、蓝色线代表LSTM层的hidden state输出、黑色为用户和query的embedding。通过多层全连接神经网络得到权重作为输出,然后权重和对应的hidden state进行加权平均,得到attention层的输出,同样是一个128维的向量。

经过attention层得到的128维的向量,拼接上128维的用户向量,最终得到一个256维向量作为用户的表达。用户信息包括用户年龄、性别、购买力、购买偏好等等。

2.5 下游任务

下游任务这里介绍了4个,分别是CTR、L2R(Learning to Rank)、用户达人偏好FIFP、用户购买力度量PPP。感觉前两个是主要的任务,后两个任务主要用于使得学到的用户表示更加通用。除此之外,为了验证模型的迁移能力,还介绍了第五个任务,即来预测用户对某个店铺的偏好,该任务并非和上述四个任务同时学习,而是取上述四个任务学习之后的用户表达进行学习,验证其是否可以直接使用在新任务中。

2.5.1 点击率CTR预估

这里输入有两部分,一是我们刚才得到的256维的用户向量表示,另一个是Item的feature对应的128维向量表示,item的向量表示,还是刚刚说到的5部分,分别是商品id、店铺、品牌、品类、标签,对应的embedding长度分别是32、24、24、16和28,这里和Embedding层的embedding是共享的。

CTR预估任务的loss是logloss:

2.5.2 排序权重学习Learning to Rank

这里想要学习的是一些用于排序的特征的权重,部分特征如下:

通过权重的学习,对不同的排序特征进行加权,来使得转化率最大化,网络结构如下:

这里的loss如下:

这里yi取值为1或-1,代表第i个样本的label,ni是基于不同的行为类型的样本权重,ri是m维的排序特征,weight(repi;θ)是上图结构中左边部分的输出。也是m维的。这里m为26。

2.5.3 用户达人偏好预测FIFP

这一部分的结构如下:

预测用户是否会follow某一些达人,输入分别是刚才得到的256维的用户表示以及一些达人的特征。这里的损失同样为logloss。

2.5.4 用户购买力度量PPP

这里将用户的购买力分为7档,来预测用户的购买力属于哪一档。

2.5.5 店铺偏好SPP

该部分同样是一个二分类任务,结构如下:

这一部分在后面的实验结果中,咱们进一步介绍。

3、实验结果

这一部分介绍模型的一些实验结果,主要分为四部分,首先对比了DUPN和一些Baselines的效果比较,随后对比了多任务学习和单任务学习效果,然后通过第五个任务验证了模型的迁移能力,最后对attention进行了简单的分析。

3.1 DUPN VS Baselines

这里选取的Baselines有四种,分别是Wide、Wide & Deep、DSSM和CNN-max,而DUPN方面,又分了五种情形,分别计作DUPN-nobp/bplstm/bpatt/all/w2v。DUPN-nobp表示不使用behavior property;DUPN-bplstm表示只在lstm部分使用behavior property;DUPN-bpatt表示只在attention部分使用behavior property;DUPN-all即我们刚才所描述的整个模型框架。前面四种中,embedding都是通过end-2-end的方式进行训练的,即随机初始化embedding,然后根据模型一起进行训练,而DUPN-w2v对embedding进行预训练。

因此,一共9种模型,结果如下:

可一看到,所有任务上,都为DUPN-all的效果最好。

3.2 多任务学习 VS 单任务学习

多任务学习模型和各个单任务学习模型在测试集上的效果对比如下:

可以看到,尽管在训练集上的误差多任务学习模型会偏大,但是在测试集上的效果,多任务学习模型反而更好,模型的泛化能力得到了提升。

3.3 模型迁移能力验证

接下来通过店铺偏好实验来验证一下模型的迁移能力。在训练完包含前4个任务的多任务模型之后,有下面几种方法应用于第5种任务上:

End-to-end Re-training with Single task (RS):使用DUPN的网络结构单独训练这一个新任务。 End-to-end Re-training with All tasks (RA):使用DUPN的网络结构重新训练5个任务 Representation Transfer (RT):将学习到的用户表示以及店铺属性作为输入,训练一个简单的网络,这里用户表示不会被更新 Network Fine Tuning (FT):将学习到的用户表示以及店铺属性作为输入,训练一个简单的网络,这里用户表示会随着网络训练而Fine Tuning。

上述四种方法的训练过程如下图所示:

上图中横坐标为训练轮次,纵坐标为AUC值。效果最佳的为绿色曲线FT,一方面FT收敛较快,另一方面其最终AUC值也最高,为0.675左右。这说明之前的网络已经达到了较好的训练效果,进行一些微调后便可以很快的得到最终结果。而黑色曲线RA虽然收敛速度较慢,最后仍然可以达到和FT同样高的AUC值。但显而易见FT的代价较低。

3.4 用户Attention分析

用户Attention分析从两方面进行,一是搜索关键词时和用户历史行为的相关性:

颜色越深表示相关性越高,可以看到,用户搜索laptop时, 那么attention更多的会集中在耳机、手机之类商品,而搜索连衣裙T恤之类,服饰相关的类目会起到比较大的作用。

第二个是不同行为类别的attention:

整体来说,用户的成交行为重要性最高,高于点击、加购物车和收藏行为。但比较有趣的一点是,用户越近的一些点击行为越能反映用户的兴趣,但是最近的成交行为并不能反映。这和大家的认知相同,当用户购买了某件商品后,近期可能不会再购买该类别商品,因此颜色较浅,相反,几个小时以前或者几天以前的购买行为能更反映用户兴趣。

3.5 线上A/B test实验

将该模型应用于线上的实验,各种指标都有明显提升:

4、多任务模型使用技巧

最后,论文还讲解了两点多任务模型的使用技巧,一是模型的更新,二是模型的拆分。

4.1 日级增量更新

随着时间和用户兴趣的变化,ID特征的Embedding需要不断更新,但不能每次都重新训练模型,因为这大概需要耗费4天左右的时间。因此通常的做法是每天使用前一天的数据做增量学习,这样一方面能使训练时间大幅下降,能在一天内完成;另一方面可以让模型更贴近近期数据。

4.2 模型拆分

模型拆分的示意图如下:

由于CTR任务是point-wise的,如果有1w个物品的话,需要计算1w次结果,如果每次都调用整个模型的话,其耗费是十分巨大的。但其实,user Reprentation只用计算一次就好。因此我们会将模型进行一个拆解,使得红色部分只计算一次,而蓝色部分可以反复调用红色部分的结果进行多次计算。

4.3 BN问题

这是论文中没有但是在视频中有所提及的。Batch normalization能很好的提升模型效果,使AUC显著提升。但需要注意的是,训练样本中BN记住的离线均值和方差和在线数据中一定要保持一致。举例来说,在训练样本中会做各种过滤和采样,例如把点击和成交样本采样,那么这样会导致某些维度的均值会远远高于实际线上的均值,虽然在测试集上的AUC也能提升,但这对在线效果非常不利。

5、总结

这篇文章感觉非常有借鉴意义。不仅验证了多任务学习相对于单任务学习的优势,同时为建模用户行为提供了新的思路。除此之外,还介绍了阿里在模型应用上的一些经验,值得借鉴。

这篇文章发出时可能还没有Transformer,我觉得将LSTM层换成一层Transformer也许效果会有提升,感兴趣的同学可以试一试。

本文分享自微信公众号 - 小小挖掘机(wAIsjwj),作者:石晓文

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-06-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 多维度分析:推荐效果明显的产品属性

    互联网从 web1.0 到 web3.0,正慢慢推动着人类社会的发展,颠覆着原有产业形态,信息量也急剧膨胀,我们正处于一个高速发展的信息时代。

    石晓文
  • 万字长文解读电商搜索——如何让你买得又快又好

    一个产品的搜索功能,是用户快速触达所需信息的通道,起到了引导用户走向的重要作用;优秀的产品必然有成熟、体验良好的搜索功能。

    石晓文
  • 推荐系统遇上深度学习(三十七)--基于多任务学习的可解释性推荐系统

    论文名称:《Why I like it: Multi-task Learning for Recommendation and Explanation》 论文地...

    石晓文
  • Linux系统的用户和用户组管理

    用户在系统中是分角色的,在Linux系统中,由于角色的不同,权限和所完成的任务也不同; 值得注意的是用户的角色是通过UID和GID识别的; 特别是UID,在运维...

    剑行者
  • Linux用户和组管理

    PASSWORD:口令,系统用口令来验证用户的合法性口令不再直接保存在passwd文件中,通常将passwd文件中的口令字段使用一个“x”来代替,将/etc /...

    职场亮哥
  • 用css3简单的制作3d半透明立方体图片展示

    以上是实图展示需要用到的主要元素: 1、perspective:定义 3D 元素距视图的距 2、transform:允许我们对元素进行旋转、缩放、移动或倾斜...

    IMWeb前端团队
  • 用css3简单的制作3d半透明立方体图片展示

    ? 以上是实图展示需要用到的主要元素: 1、perspective:定义 3D 元素距视图的距 2、transform:允许我们对元素进行旋转、缩放、移动...

    IMWeb前端团队
  • DOM

    概念: 文档对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标记语言的标准编程接口。 DOM的设计是以对象管理...

    羊羽shine
  • Vue.js学习笔记(2)

    程序员不务正业
  • day60_BOS项目_12

    黑泽君

扫码关注云+社区

领取腾讯云代金券