本文将介绍Alibaba发表在KDD’19 的论文《Practice on Long Sequential User Behavior Modeling for Click-Through Rate Prediction》。文章针对长序列用户行为建模的问题从线上系统和算法两方面进行改进,已经成功部署在阿里巴巴的广告系统。

使用深度学习对用户兴趣建模在离线评估阶段带来了显著提升,但是在线部署时面对大量的流量请求难以实时推理,尤其是在对长序列用户行为数据,系统的延时和存储代价几乎是随着行为长度线性增长。为了解决长序列建模的挑战,作者从两个方面进行考虑:

1.从线上角度考虑,引入UIC(user interest center),从整个模型中分离出最消耗资源的。UIC依赖于用户的行为触发

2.从算法角度考虑,引入记忆架构,MIMN(Multi-channel user Interest Memory Network),捕捉长序列行为

Theoretically, the co-design solution of UIC and MIMN enables us to handle the user interest modeling with unlimited length of sequential behavior data.

无限长?带着怀疑又好奇态度拜读下这篇大作。

  • UIC

首先为什么需要建模用户的长序列行为?下图是使用基础模型(DIN)在不同长度行为序列上实验的结果,可以看出当长度到达1000时AUC相比长度100时增加了0.6%。

图(A)是一个典型的CTR实时预估系统架构,主要由特征管理组件、模型管理组件和预测服务器组成。为了保证系统低延时和高吞吐量,用户的行为特征通常被存储在额外的存储系统,阿里使用的是自研TAIR。当新的流量请求到达时,特征更新到预测服务器参与实时推理计算,阿里使用DIEN实验发现,当行为序列长度达到150时,系统延时和吞吐量已经到达边缘了,更不用说1000的长度。

对用户长期行为建模有两个主要的限制:

1)存储限制

阿里拥有6亿用户,如果每个用户最大行为长度为150,至少需要1T的存储空间;长度到1000时,需要6T存储空间。更大的内存消耗,将会导致计算复杂度增加

2)延时限制

CTR预估模块根据输入的候选商品集合,输出对应的概率,这个过程通常需要在10ms内完成。DIEN在行为长度达到1000时,在500QPS延时达到了200ms,难以满足在线广告系统500QPS30ms的限制。

为了解决上述提到的长序列行为建模的问题,作者设计了UIC(user interest center)模块。图(B)是UIC模块的示意,(A)(B)的区别在于用户兴趣表示计算,在(B)中,UIC会为每个用户维持一个最新的兴趣表示,UIC的更新仅取决于用户的行为,不再是流量触发,可以做到无延时。实际应用证明,UIC+DIEN将1000长度的200ms减少到19ms在500QPS下。

  • MIMN

从算法模型来看,建模长序列相当困难,RNN无法胜任,attention机制虽然可以更加有效的处理长序列,但是需要存储所有原始的用户行为序列,存储和计算代价太大。MIMN借鉴神经图灵机的思想,对长序列进行建模。下图是MIMN的架构

UIC存储MIMN的外部记忆,当用户产生新行为时进行更新。通过这种方式,UIC可以递增的从行为序列中捕获用户的兴趣,但是当存储资源有限时,固定维度的向量表达能力有限。作者提出了记忆利用正则化增加UIC单元的表示能力,同时提出了记忆归纳单元捕获高阶信息。

神经图灵机

神经图灵机使用一个记忆网络存储信息,通过读写控制器进行记忆读写。

记忆利用正则化

标准NTM存在记忆利用不平衡问题,导致记忆利用不充分。作者根据不同的记忆块,正则化写权重。

记忆归纳单元

记忆归纳单元将每个记忆块作为一个用户兴趣通道。在时间步t选择一个k个通道,对选中的通道更新
\[
S_t(i)=GRU(S_{t+1}(i),M_t(i),e_t)
\]
可以实现下面的结果

enen……,回家了有点懒,剩下的部分下次更新……

references:
[1] Alibaba. Practice on Long Sequential User Behavior Modeling for Click-Through Rate Prediction. KDD'19

阿里CTR预估:用户行为长序列建模的更多相关文章

  1. 0-3为变长序列建模modeling variable length sequences

    在本节中,我们会讨论序列的长度是变化的,也是一个变量 we would like the length of sequence,n,to alse be a random variable 一个简单的 ...

  2. 主流CTR预估模型的演化及对比

    https://zhuanlan.zhihu.com/p/35465875 学习和预测用户的反馈对于个性化推荐.信息检索和在线广告等领域都有着极其重要的作用.在这些领域,用户的反馈行为包括点击.收藏. ...

  3. 【项目】百度搜索广告CTR预估

    -------倒叙查看本文. 6,用auc对测试的结果进行评估: auc代码如下: #!/usr/bin/env python import sys def auc(labels,predicted_ ...

  4. 【项目】搜索广告CTR预估(二)

    项目介绍 给定查询和用户信息后预测广告点击率 搜索广告是近年来互联网的主流营收来源之一.在搜索广告背后,一个关键技术就是点击率预测-----pCTR(predict the click-through ...

  5. 闲聊DNN CTR预估模型

    原文:http://www.52cs.org/?p=1046 闲聊DNN CTR预估模型 Written by b manongb 作者:Kintocai, 北京大学硕士, 现就职于腾讯. 伦敦大学张 ...

  6. 计算广告CTR预估系列(七)--Facebook经典模型LR+GBDT理论与实践

    计算广告CTR预估系列(七)--Facebook经典模型LR+GBDT理论与实践 2018年06月13日 16:38:11 轻春 阅读数 6004更多 分类专栏: 机器学习 机器学习荐货情报局   版 ...

  7. 为什么要用深度学习来做个性化推荐 CTR 预估

    欢迎大家前往腾讯云技术社区,获取更多腾讯海量技术实践干货哦~ 作者:苏博览 深度学习应该这一两年计算机圈子里最热的一个词了.基于深度学习,工程师们在图像,语音,NLP等领域都取得了令人振奋的进展.而深 ...

  8. CTR预估算法之FM, FFM, DeepFM及实践

    https://blog.csdn.net/john_xyz/article/details/78933253 目录目录CTR预估综述Factorization Machines(FM)算法原理代码实 ...

  9. 深度学习在CTR预估中的应用

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由鹅厂优文发表于云+社区专栏 一.前言 二.深度学习模型 1. Factorization-machine(FM) FM = LR+ e ...

随机推荐

  1. H3C 局域网与OSI参考模型

  2. 洛谷P5022 旅行 题解 去环/搜索

    题目链接:https://www.luogu.org/problem/P5022 这道题目一开始看的时候没有思路,但是看到数据范围里面有一个: \(m = n-1\) 或 \(m = n\) ,一下子 ...

  3. 不通过DataRow,直接往DataTable中添加新行DataTable.LoadDataRow(object[],bool)

    DataTable dtver = new DataTable();                dtver.Columns.Add("VERSION");            ...

  4. 微信小程序wx.request POST获取不到数据解决办法

    get //发起请求     wx.request({       url: 'http://www.xiaochengxu.com/home/index/curd', //仅为示例,并非真实的接口地 ...

  5. Eclipse设置默认编码为UTF-8

    需要设置的几处地方为: Window->Preferences->General ->Content Type->Text->JSP 最下面设置为UTF-8 Window ...

  6. Spring Data JPA查询指定列,并返回实体(改)

    现有PostEntiy实力,包含各种属性,如: /** * @Auther: DingShuo * @Date: 2018/7/18 11:09 * @Description: */ @Entity ...

  7. win10 uwp 使用 Azure DevOps 自动构建

    通过 Azure DevOps 可以做到自动构建程序,覆盖计划.创建.编程.测试.部署.发布.托管.共享等各个环节,适用于大多数的语言.平台. 本文继续使用图床为例告诉大家如何使用 Azure Dev ...

  8. Lavarel之环境配置 .env

    .env 文件位于项目根目录下,作为全局环境配置文件. 1. 配置参数 // 运行环境名称 APP_ENV=local // 调试模式,开发阶段启用,上线状态禁用. APP_DEBUG=true // ...

  9. http请求头包括了哪些常见内容

    Host: www.study.com                // 请求的地址域名和端口,不包括协议 Connection: keep-alive    // 连接类型,持续连接 Upgrad ...

  10. ASP.NET MVC 实现页落网资源分享网站+充值管理+后台管理(16)之轻博客

    源码下载地址:http://www.yealuo.com/Sccnn/Detail?KeyValue=c891ffae-7441-4afb-9a75-c5fe000e3d1c 项目到上面一步其实已经算 ...