IJCAI阿里论文 | JUMP: 一种点击和停留时长的协同预估器

简介: 小叽导读:在搜索和推荐场景中,基于会话的预测日益受到人们的兴趣和重视,大多这类算法都是基于递归神经网络(RNNs)技术或者它的变种。然而,已有的算法一方面会忽略“停留时长”在表达用户偏好程度上的重要性,另一方面在非常短或者有噪音的会话上会预估得不准。

小叽导读:在搜索和推荐场景中,基于会话的预测日益受到人们的兴趣和重视,大多这类算法都是基于递归神经网络(RNNs)技术或者它的变种。然而,已有的算法一方面会忽略“停留时长”在表达用户偏好程度上的重要性,另一方面在非常短或者有噪音的会话上会预估得不准。因此在该文章的的工作中,我们提出了一种联合预估算法JUMP,基于会话去同时预测用户的点击和停留时长。
▌摘要

JUMP使用一种新奇的三层RNN结构去编码用户的一次会话,包括使用一个“快慢层”去缓解短会话的问题,使用一个“注意力层”去解决会话噪音的问题。大量的实验表明JUMP算法能在点击率预估和停留时长预估上,超越最新的其他算法。

▌停留时长预估

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

image

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

image


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

image


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

image

▌学习建模

我们记一个用户的会话为一个行为序列:image。其中i表示第j个点击的商品,image表示停留时间,而image是一个bool类型,表示是否是会话的最后一个商品(或者停留时间过长)。我们假设样本是从一个分布P(S)中采样出来,那么可以将分布分解为2项的积。
image
其中前一项表示点击率的似然,后一项表示停留时间的似然;image表示会话中第k次点击前的行为。为了从会话的行为中抽取更多的有效信息,我们提出了一种三层RNN模型去编码image

image


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

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

image


EmbeddingLayer:网络的最底层是一个embedding层,该层将一个二元组 image映射到一个向量上,我们使用batch-normalizing对输入进行标准化:

image


▌实验

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

点击率预估的结果如下表所示,我们可以看到在全部数据集上,JUMP算法都能超越其他算法,取得最好的Recall、MRR和NDCG指标。
image
同时我们观察了embedding维度对recall指标的影响,结果如下图。我们可以到看随着embedding维度的提升,recall指标都能得到一定的上升,但是基本都在100维左右达到最高;其次,我们仍然可以发现,JUMP算法取得的效果是优于其他算法的,蓝色曲线总是在其他曲线之上。
image
除了点击率外,我们观察了在时间预估这个任务上的效果,结果如下表所示。对比ATRP、RMTP和NSR算法,JUMP能明显提升预估的准度。

image


▌总结

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

原文发布时间为:2018-07-09
本文作者:匿名
本文来自云栖社区合作伙伴“ 阿里技术”,了解相关信息可以关注“ 阿里技术”。

相关文章
|
人工智能 监控 中间件
魔搭开源版GPTS来啦!轻松搭建个人超级智能体!
Openai DEV day上推出了GPT Stores, 允许用户通过聊天、直接配置的方式进行GPT的定制
|
存储 API C++
【Qt 信号槽】深入探索 Qt 信号和槽机制中的引用传递“ (“A Deep Dive into Reference Passing in Qt Signal and Slot Mechanism“)
【Qt 信号槽】深入探索 Qt 信号和槽机制中的引用传递“ (“A Deep Dive into Reference Passing in Qt Signal and Slot Mechanism“)
1399 0
|
SQL 存储 分布式计算
【收藏】MongoDB 常用查询语句汇总
【收藏】MongoDB 常用查询语句汇总
1828 0
|
8月前
|
编解码 JavaScript 前端开发
如何在网页播放英文的m3u8文件(基于Javascript搭建的在线网页工具)
什么是m3u8?又该如何在网页中高效、便捷地播放英文的m3u8文件呢?今天这篇文章就带你一起了解,并推荐一种基于Javascript搭建的在线网页工具,让你轻松解决播放问题。
2217 0
|
人工智能
MV-MATH:中科院开源多模态数学推理基准,多视觉场景评估新标杆
MV-MATH 是中科院自动化所推出的多模态数学推理基准数据集,旨在评估多模态大语言模型在多视觉场景中的数学推理能力。该数据集包含2009个高质量的数学问题,涵盖11个数学领域和3个难度级别,适用于智能辅导系统和多模态学习研究。
325 0
|
存储 Java
【潜意识Java】期末考试可能考的选择题(附带答案解析)
本文整理了 Java 期末考试中常见的选择题,涵盖数据类型、控制结构、面向对象编程、集合框架、异常处理、方法、流程控制和字符串等知识点。每道题目附有详细解析,帮助考生巩固基础,加深理解。通过这些练习,考生可以更好地准备考试,掌握 Java 的核心概念和语法。
834 1
|
缓存 负载均衡 Java
Nacos 集群部署时性能优化配置
Nacos 集群部署时性能优化配置
743 2
|
自然语言处理 并行计算 数据可视化
免费开源法律文档比对工具:技术解析与应用
这款免费开源的法律文档比对工具,利用先进的文本分析和自然语言处理技术,实现高效、精准的文档比对。核心功能包括文本差异检测、多格式支持、语义分析、批量处理及用户友好的可视化界面,广泛适用于法律行业的各类场景。
748 1
|
存储 自然语言处理 索引
|
Python
Python时间戳与datetime转换指南
Python时间戳与datetime转换指南
957 0

热门文章

最新文章