10 月 23 - 25 日,QCon 上海站即将召开,现在大会已开始正式报名,可以享受 8 折优惠 了解详情
写点什么

阿里提出联合预估算法 JUMP:点击率和停留时长预测效果最优

  • 2018-06-05
  • 本文字数:1453 字

    阅读完需:约 5 分钟

停留时长预估

对于停留时间的预估,我们借鉴了“生存分析”(Survival Analysis) 的思想,通过时间发生的时间去近似用户在一个内容上停留的时间;从概念上来说,停留时长被认为是“离开当前内容”这个事件的发生时间。如果我们记用户的停留时长的样本为 O,假设存在一个函数,将 O 映射到一个简单的分布 f 上:

这里 f 可能是一个高斯分布,伽马分布等。可以证明的是:

其中 F 表示累计概率分布(CDF),T 是对 O 的在线近似。那么有了上述公式后,我们就可以使用最大似然估计去预估样本的停留时间。我们分析了 RecSys15 数据及上的停留时间,原始分布如左下图,然而我们对停留时间取 log 后,得到了右下图。我们很高兴的发现在取 log 之后,停留时间是符合正态分布的。

于是我们取 g 为 log 函数,f 为正态分布函数,最终我们能得到似然函数:

学习建模

我们记一个用户的会话为一个行为序列:\(s_k=\{(i_j,\log \tau _j,\delta _j)\},j=1,2,\cdots ,k\)。其中 i 表示第 j 个点击的商品,\(\tau _j\) 表示停留时间,而\(\delta _j\) 是一个 bool 类型,表示是否是会话的最后一个商品(或者停留时间过长)。我们假设样本是从一个分布 P(S) 中采样出来,那么可以将分布分解为 2 项的积。

其中前一项表示点击率的似然,后一项表示停留时间的似然;\(s_{k-1}\) 表示会话中第 k 次点击前的行为。为了从会话的行为中抽取更多的有效信息,我们提出了一种三层 RNN 模型去编码。

Attention Layer: 我们设计注意力机制主要目的是去除会话中的噪音,保留真正有效的信息。表示 fast-slow 层的输出,a 对应 attention 的权重,对应的计算方法如下面公式:

Fast-Slow Layer: fast-slow 层提出了一种新奇的 RNN 网络。当我们处理第 j 个输入\((i_j,\log \tau _j,\delta _j)\) 的时候,会进入一个 F-S 处理单元,其中包括一个慢元子和一个快元子序列,慢元子会记忆更多长期的记忆,而快元子会更多的获取当前的信息。F-S 处理单元如下图所示:

Embedding Layer: 网络的最底层是一个 embedding 层,该层将一个二元组\((i_j,\log \tau _j)\) 映射到一个向量上,我们使用 batch-normalizing 对输入进行标准化:

实验

为了验证算法的性能,我们将 JUMP 算法对比了主流的基于会话的预估算法,验证在点击率预估和停留时长预估上的效果。对比的算法包括 GRU、IGRU、NARM、DTGRU,RMTP、ATRP、NSR,使用的数据集是 RecSys15、CIKM16 和 REDDIT。

点击率预估的结果如下表所示,我们可以看到在全部数据集上,JUMP 算法都能超越其他算法,取得最好的 Recall、MRR 和 NDCG 指标。

同时我们观察了 embedding 维度对 recall 指标的影响,结果如下图。我们可以到看随着 embedding 维度的提升,recall 指标都能得到一定的上升,但是基本都在 100 维左右达到最高;其次,我们仍然可以发现,JUMP 算法取得的效果是优于其他算法的,蓝色曲线总是在其他曲线之上。

除了点击率外,我们观察了在时间预估这个任务上的效果,结果如下表所示。对比 ATRP、RMTP 和 NSR 算法,JUMP 能明显提升预估的准度。

总结

本文提出了一种新奇的算法 JUMP,同时预估一个会话中的点击率和停留时间。主要有 3 点重要贡献:

  1. 使用生存分析的方法来建模用户的停留时间,建立在可靠的数据理论基础上;
  2. 提出了一种三层的 RNN 结构,基于注意力机制能提升模型的鲁棒性,降低噪音的影响;
  3. 使用了一种全新设计的 fast-slow 结构,加强对短会话的学习能力。大量实验验证了算法的有效性,在多个公开数据集上的结果,对比其他的算法都有大幅提升。

论文全文链接:

http://www.cs.zju.edu.cn/people/qianhui/pub/Zhou18.pdf

2018-06-05 17:5410278

评论

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

2B 销售系统设计需要考虑的 3 个层面

boshi

团队管理 销售管理

两个剪辑透明化融合视频特效处理

老猿Python

Python 音视频 视频剪辑 视频特效 引航计划

卷王本卷

FunTester

内卷 FunTester

HUAWEI雄起!顶级网络工程师总结出了这份网络协议开源笔记

Java 架构 面试 程序人生 编程语言

linux之秘钥登录

入门小站

Linux

考试试卷存储设计

guangbao

iPhone13全线机型上线WeTest云手机平台

WeTest

Elasticsearch IK 分词扩展词典(qbit)

qbit

elastic 扩展词 分词

2021年9月数据库流行度排行解读:聊聊国产数据库可以从哪方面做到以用户为中心

墨天轮

数据库 TiDB oceanbase 国产数据库 达梦

2021 DEMO CHINA创新中国总决赛峰会闭幕,光子晶体斩获2021 DEMO GOD

创业邦

在线985,211高校查询

入门小站

工具

吃串串,数签签,这个AI神器一秒搞定

百度大脑

人工智能 EasyDL

天壤完成新一轮战略融资 加速构建数字化转型通用智能平台

InfoQ 天津

低代码平台的功能及其用处

低代码小观

程序员 低代码 开发工具 低代码开发平台 无代码

MPU:鸿蒙轻内核的任务栈的溢出检察官

华为云开发者联盟

鸿蒙 内核 任务栈 MPU 内存保护单元

p3c 插件,是怎么检查出你那屎山的代码?

小傅哥

小傅哥 代码规范 p3m pmd 开发手册

带你读论文丨基于视觉匹配的自适应文本识别

华为云开发者联盟

损失函数 视觉 文本识别 文档识别 视觉匹配

一文带你了解经典的Java垃圾回收机制

华为云开发者联盟

Java JVM 对象 垃圾回收机制 垃圾收集器

JavaScript “上层”语言

Augus

JavaScript 9月日更

密码学系列之:1Password的加密基础PBKDF2

程序那些事

算法 加密解密 密码学 程序那些事

什么是低代码自动化以及它如何使你受益?

低代码小观

程序员 自动化 工具 低代码 低代码开发平台

maven如何忽略指定的远程仓库

小江

maven nexus 迁移 java;

百度信息流和搜索业务中的KV存储实践

百度Geek说

后端 搜索

MLOps生产中的机器学习:为什么你应该关心数据和概念漂移 易筋 ARTS 打卡 Week 67

John(易筋)

ARTS 打卡计划

大厂面试喜欢考算法,该怎么破?

博文视点Broadview

深入理解Netty-从偶现宕机看Netty流量控制

vivo互联网技术

Java、 框架 netty

回帖抽大奖——5分钟极速体验AI技术能力

百度大脑

人工智能

[微服务] You built it.You fix it.

baiyutang

微服务 9月日更

Linux之常见的存储架构

在即

9月日更

华为云顾炯炯:云原生应用传送网络AND的实现架构与核心技术分享

华为云开发者联盟

网络 华为云 应用传送网络 ADN 东数西算

OceanBase 源码解读(五):租户的一生

OceanBase 数据库

数据开发 oceanbase OceanBase 开源 OceanBase 社区版 OceanBase 数据库大赛

阿里提出联合预估算法JUMP:点击率和停留时长预测效果最优_阿里巴巴_周腾飞_InfoQ精选文章