写点什么

用户手势数据首次用于电商场景:淘宝提出用户实时意图预测算法 DIPN,效果秒杀传统模型

  • 2019-07-09
  • 本文字数:4227 字

    阅读完需:约 14 分钟

用户手势数据首次用于电商场景:淘宝提出用户实时意图预测算法DIPN,效果秒杀传统模型

用户消费行为预测已然是电商领域的经典问题。通过对用户实时意图的理解,我们可以感知用户当下正处于哪个阶段,比如是在买还是在逛,从而可以根据不同阶段制定不同的营销和推荐策略,进而提升营销和推荐效果。

本文相关工作已在 KDD 2019(25th ACM SIGKDD conference on knowledge discovery and data mining,数据挖掘领域国际顶级会议)正式发表,详细介绍了淘系技术部算法团队如何利用用户的多种实时行为识别用户的实时意图。

一、背景

十亿级别的移动终端,为手机淘宝的情景计算提供了无限可能。本文主要介绍如何利用用户与手机的交互数据对用户实时的购买行为进行预测。


基于大数据分析,通过感知用户在淘宝上的浏览链路,情景计算得以实时感知用户当前的购买倾向。越长的商品详情页停留,越频繁的商品图片滑动,越多的商品评价查看,都预示着用户对商品的购买欲望。掌握用户实时的购买倾向可以帮助营销团队针对不同消费欲望的用户采取不同的营销策略,刺激用户消费,最终达到刺激平台 GMV 增长的目的。比如针对购买倾向增高的用户,平台可以采取发放红包或者限时打折的方式刺激用户完成消费。


另外,通过对用户实时购买意图的理解,我们可以感知用户当下处于哪个阶段,比如是在买还是在逛,从而可以根据不同阶段制定不同的推荐策略,提升推荐效果和用户体验。


用户消费行为预测是电商领域的经典问题,对用户购买概率进行预测也已经不是一个新鲜的问题。但是传统的云上计算预测的是用户的长期购买概率,大多根据用户的历史浏览、收藏和加购商品等数据,预测未来一段较长的时间内(比如一周)用户的购买概率。


相比于长期购买概率,用户的实时购买概率(比如一小时内的购买概率)更能反映用户购买倾向的变化,也使得营销算法的制定可以更加灵活有效。但是,对用户购买概率进行实时识别也带来了更大的挑战。


单纯基于用户的传统云上行为对用户的实时购买意图进行预测很难达到理想的效果,原因是用户的云上行为粒度太粗,很难反映用户的实时状态。表 1 统计了手淘每个用户平均每天产生的不同的行为数。我们可以看到,用户的浏览、收藏和加购等云上行为每天平均只有 40 个,而用户每天的点击和滑动行为数分别是云上行为数的 10 倍和 30 倍。因此基于用户的端上行为,我们可以更加细粒度的刻画用户行为,从而更好地预测用户的实时意图。


表1:手淘用户每天产生的各种行为数


接下来,我们将详细介绍我们是如何结合用户的云上行为数据以及实时交互数据来预测用户的实时购买意图的。相关工作已被国际会议 KDD 2019 接收《Buying or Browsing? : PredictingReal-time Purchasing Intent using Attention-based Deep Network with MultipleBehavior》。

二、数据

我们首先简单介绍一下我们使用的用户相关数据。


  • 用户滑动手势数据。该数据包含了用户日常使用手淘的滑动手势数据,包括四种基本动作:打开页面,离开页面,滑动和点击。每种动作都记录了该动作发生的时间,页面以及该动作在手机屏幕上的落点位置。对于滑动动作,该数据记录了滑动动作的起始位置和结束位置,以及滑动动作的持续时间。

  • 用户点击控件数据。该数据包含了用户点击控件产生的信息,包括点击控件名,点击页面名以及该点击行为发生的时间。

  • 用户云上行为数据。该数据包含了传统的用户浏览、收藏、加购、下单和搜索等基本行为。

  • 用户基础特征数据。该数据包含了用户的基础特征,比如年龄,性别和活跃度等。

  • 用户统计特征数据。该数据包含了基于用户历史行为的统计特征,比如用户最近 1 个月的收藏、加购和下单次数。


经过特征提取和离散化,我们为用户滑动手势数据中的每个行为提取了 14 种特征,为点击控件数据中的每个行为提取了 3 个特征,为云上行为数据中的每个行为提取了 6 个特征。每个特征首先被编码成 one-hot 向量,然后经过转化得到低维的 embedding 向量。我们使用 embedding 向量作为模型的输入,并与模型一同训练。

三、挑战

基于用户的多种行为对用户的实时购买意图进行预测面临以下技术难点:


  • 如何有效利用多种用户行为全方位的刻画用户?

  • 如何有效地挖掘端上海量弱信号的价值,避免繁杂的手动挖掘特征?

  • 如何表征不同的用户行为之间的联系?

  • 如何捕捉不同的用户行为模式之间的共性以及差别?


我们设计了 Deep Intent Prediction Network (DIPN)模型,通过晚期融合、RNN 自动提取特征、层级注意力机制和多任务学习来克服上述技术挑战。

四、模型

我们采用端到端的深度学习模型对用户的多种数据进行建模来预测用户的实时购买意图。图 1 展示了 DIPN 模型的基本框架。由于我们需要处理三种不同形态的行为序列数据,我们需要设计合理的方法来对这些数据进行融合。


一般有两种数据融合方式:早期融合(early fusion)和晚期融合(late fusion)。早期融合指的是在特征上进行融合,首先进行不同特征的连接,然后再输入到一个模型中进行训练。晚期融合(late fusion)指的是特征分别进入不同的模型,然后对模型输出的特征进行连接,进而预测最终结果。由于不同数据的产生频率不一致,早期融合通常会造成一定程度的信息损失,为此我们采用了晚期融合(late fusion)方法。接下来我们分层介绍 DIPN。


图1:Deep Intent Prediction Network

4.1 RNN Layer

相比于传统的浏览、收藏、加购和下单等用户行为数据,对端上海量弱信号(用户点击控件数据和用户滑动手势数据)进行特征挖掘更加具有挑战性。为了有效地挖掘海量弱信号中有价值的特征,同时避免繁杂的手动挖掘特征,我们采用了 RNN 模型来对时间序列数据建模,从而可以更好地捕捉时间序列数据的时序性和长依赖关系。为了缓解模型训练过程中的梯度消失问题,我们使用了 GRU 作为 RNN 模型的基本单元。

4.2 Hierarchical Attention Layer

在 DIPN 中,我们采用了晚期融合的方式融合三种不同形态的行为序列数据,一个简单的融合方式是对三个 RNN 模型的最后输出进行直接的拼接,但是这种方式忽略了不同行为序列之间的交互。为此,我们设计了层级注意力机制( hierachical attention mechnism ):底层注意力机制( intra-viewattention )可以聚焦到每个行为序列的内部,用于识别用户的重要动作,上层注意力机制( inter-viewattention )负责行为序列特征间的交叉融合,使用了类似于 Transformer 的自注意力机制思想,对于序列内的每个动作,计算该动作与其他序列内每个动作的距离,以便捕捉异步动作间的重要交叉特征。


  • 底层注意力机制( intra-view attention )。底层注意力机制用来识别每个行为序列内部对于预测购买意图贡献更多的行为。由于用户当前的行为能够更好地体现用户的实时意图,我们通过计算行为序列内的每个行为与当前行为的相关度作为该行为的注意力分数,计算公式如下:


  • 其中代表 RNN 的最后输出单元。与传统的注意力机制不同的是,我们最后没有采用加权平均的方法得到最终的输出,而是使用元素积( element-wise product )的方式得到一个新的行为序列,该行为序列与原始行为序列维度相同,计算公式如下:


  • 其中 hs ,ht 和 hb 代表我们使用的三种行为序列。

  • 上层注意力机制( inter-view attention )。上层注意力机制负责不同行为序列之间的交叉融合。用户的商品相关行为、滑动行为和点击行为从不同角度同时刻画了用户的行为模式。例如,当一个用户对一件商品感兴趣时,在他最终下单前通常会浏览一下该商品的评论并且比较一下其他相似的商品。这个过程会产生一些商品相关行为、滑动行为和点击行为。因此,如何捕捉不同行为之间的交互关系对于用户实时意图的预测至关重要。在这里,我们采用了 Transformer 的自注意力机制思想,如下图所示。

  • 图2:intra attention mechnism

  • 定两个行为序列,对于其中一个行为序列内部的每个行为,我们计算该行为与另一序列内部每个行为之间的相关性。这样对于每个序列我们会得到一个新的注意力序列,最后我们会通过点击操作连接两个注意力序列,计算公式如下。


4.3 Multi-task Layer

我们希望通过多任务学习更好地捕捉不同的用户行为模式之间的共性以及差别,同时提高模型的泛化能力。为此,我们使用 DIPN 同时预测两种任务:实时购买意图和长期购买意图。由于用户行为模式的复杂性,一些细微的差别往往会导致模型产出错误的结果。而通过同时预测用户的实时意图和长期意图,我们可以提高模型的抗干扰能力。DIPN 的损失函数如下所示:


五、实验

5.1 模型部署

DIPN 模型会通过 AliNN 转换,最终部署在 walle 平台上,并且借助 DBFS 特征服务实时获取模型所需要的用户实时特征,从而达到预测用户实时意图的目的,如图 3 所示。


图3:情景计算模型部署框架

5.2 测试模型

在本实验中,我们测试 DIPN 模型的效果。除了 DIPN 模型,我们还设计了若干对比实验,各测试模型介绍如下:


  • GBDT:该方法使用【1】中的模型和特征统计方法,同时新加了用户的基础特征和统计特征。我们的目的是通过对比观察用户的端上特征对于用户实时意图预测带来的收益。

  • RNN+DNN:该方法使用【2】中的 RNN 模型,并且使用 DNN 模型提取用户的基础特征和统计特征。

  • DIPN-early-fusion:该模型使用了早期融合方式,将三种行为序列按时间顺序拼接在一起。

  • DIPN-no-attention:该模型没有使用注意力机制。

  • DIPN-no-intra-view-attention:该模型没有使用底层注意力机制。

  • DIPN-no-inter-view-attention:该模型没有使用上层注意力机制。

  • DIPN-no-multi-task:该模型没有使用多任务学习。

  • DIPN:完整的 DIPN 模型。


表2:实验结果

5.3 实验结果与分析

实验结果如表 2 所示,通过分析各模型的 AUC ,我们能够得到以下结论。


  • DIPN 模型效果显著好于单独使用云上行为的 GBDT 和 RNN 模型( AUC 分别提高 5.6% 和 5.3% )。这体现了多种数据融合的优势,能够全方位细粒度的刻画用户的行为模式。

  • 层级注意力机制在 DIPN 中起着重要作用,能够更好地对多种数据源进行有效的融合。

  • 多任务学习可以更好地捕捉不同的用户行为模式之间的共性以及差别,同时提高模型的泛化能力。

5.4 线上 A/B 桶测试

为了进一步验证用户实时意图识别模型在实际场景中的应用效果,我们在去年”双十一”进行的惊喜红包发放场景中进行了线上的 A/B 桶测试。我们设计了如下三个桶进行试验。


  • 全发桶:该桶中的全部用户都将得到惊喜红包,

  • 全不发桶:该桶中的全部用户都不会得到惊喜红包,

  • 模型桶:该桶中被模型选中的用户才会得到惊喜红包。

相关工作:

【1】Peter Romov and Evgeny Sokolov. 2015. RecSys Challenge 2015: Ensemble


Learning with Categorical Features. In RecSys ’15 Challenge. Article 1, 4 pages.


【2】Humphrey Sheil, Omer Rana, and Ronan Reilly. 2018. Predicting purchasing


intent: Automatic Feature Learning using Recurrent Neural Networks. CoRR


abs/1807.08207 (2018).


2019-07-09 07:0012598

评论

发布
暂无评论
发现更多内容

大家都说程序员是吃青春饭的、Android研发没前景,那等Android研发年纪大了又该怎么办?

android 程序员 移动开发

太厉害了,终于有人能把Android 事件分发机制讲的明明白白了!

android 程序员 移动开发

如何在跳槽后,Android程序员摸鱼也能学习进阶,为下次换工作进大厂拿高薪!

android 程序员 移动开发

如何设计一个秒杀系统?

android 程序员 移动开发

实现长图片自动循环滚动效果

android 程序员 移动开发

小巫随笔13

android 程序员 移动开发

如何在10分钟内让Android应用大小减少-60%?

android 程序员 移动开发

字节跳动面试官:我用这10个问题,淘汰了80%的Android面试者------

android 程序员 移动开发

尽快的学会某项技术,以应付面试遇到的问题

android 程序员 移动开发

【死磕NIO】— NIO基础详解

chenssy

11月日更 死磕 Java 死磕 NIO

如何在AndroidStudio中使用手势解锁

android 程序员 移动开发

字节跳动上千道精选面试题还不刷起来!2019-2020大厂高级面试题集合(Handler,性能优化

android 程序员 移动开发

对Jetpack Compose设计实现的解读与思考

android 程序员 移动开发

如何在Adapter中优雅的使用Context

android 程序员 移动开发

字节瞧不上大龄程序员,我开始慌了……

android 程序员 移动开发

字节跳动Android一面凉凉,竟以为一面是HR面---

android 程序员 移动开发

字节跳动千万用户量级直播活动技术保障实践

android 程序员 移动开发

太恐怖了!移动开发APP-可视化埋点技术原理竟然是这样的?!

android 程序员 移动开发

字节跳动抖音安卓客户端日常实习 3+1 面经(已 OC)

android 程序员 移动开发

安卓移动软件开发:手机防火墙的实现

android 程序员 移动开发

天天给-App-抓包,还不懂-HTTP-代理吗?---实用-HTTP

android 程序员 移动开发

如何快速编写Markdown、博客文档(语法收藏)

android 程序员 移动开发

实战_Android后台启动Activity实践之路

android 程序员 移动开发

字节、腾讯2020高频Android面试题;JVM虚拟机原理深入解析(建议收藏

android 程序员 移动开发

安卓开发教你如何自定义View并实现炫酷进度条

android 程序员 移动开发

官方推荐 Flow 取代 LiveData,有必要吗?

android 程序员 移动开发

字节码插桩--你也可以轻松掌握

android 程序员 移动开发

字节跳动上传了一份“面试官版Android面试小册”,不讲一句废话

android 程序员 移动开发

FVM 切换VSCode 的Flutter版本

坚果

flutter 11月日更

字节跳动,华为,阿里巴巴,小米

android 程序员 移动开发

安卓工具类之app获取版本渠道信息工具类

android 程序员 移动开发

用户手势数据首次用于电商场景:淘宝提出用户实时意图预测算法DIPN,效果秒杀传统模型_AI&大模型_郭龙(凌祎)_InfoQ精选文章