专栏首页小小挖掘机RS Meet DL(52)-基于注意力机制的用户行为建模框架ATRank

RS Meet DL(52)-基于注意力机制的用户行为建模框架ATRank

本文来介绍一下阿里巴巴数据技术团队与北京大学共同提出的 ATRank ,ATRank是基于注意力机制的用户异构行为建模框架,可应用于推荐系统中,一起来了解一下吧。

论文名称《ATRank: An Attention-Based User Behavior Modeling Framework for Recommendation》

论文地址:https://arxiv.org/abs/1711.06632

示例代码地址:https://github.com/jinze1994/ATRank/tree/master/atrank

1、背景

正如一个单词可以通过其上下文来表示,那么一个用户也可以通过其过往的行为序列来表示。但随着技术的发展,越来越多样化的用户行为可以被捕捉并保存在数据库中,使得用户行为表现出异构性,高度多样性。以电商领域的推荐为例、一个用户可能浏览、购买、收藏商品,领取、使用优惠券、点击广告、搜索关键词、写评论或者观看商家提供的商品介绍视频等等。这些不同的行为为我们更全面的理解一个用户提供了不同的视角。

面对用户如此多样化的行为,要想做到更精确的推荐,很大的挑战来自于能否对用户的异构行为数据进行更精细的处理。在这样的背景下,本文提出一个通用的用户行为序列建模框架,试图融合不同类型的用户行为,并以此框架进行推荐任务。

2、模型框架

我们先来看一下本文提出的用户行为建模框架的整体架构:

该框架分为以下几个模块:原始特征空间(raw feature spaces)、行为嵌入空间(behavior embedding spaces)、隐语义空间(atent semantic spaces)、行为交互层(behavior interaction layers)、下游网络层(downstream application network)。

接下来,我们首先定义一下用户行为序列表示,随后对上面几个模块进行依次介绍。

2.1 用户行为序列定义

用户行为序列被定义为U={(aj,oj,tj)|j=1,2,...,m}。其中,每一个行为被表示称三元组(a,o,t)。a代表用户的行为种类,o代表该行为发生时的一些特征表示,不同的行为种类的话,这里的特征可能是不同的。举个简单的例子,如果一个用户行为是购买行为,那么特征更多的是有关这个购买的物品的,如果一个用户行为是搜索关键词,那么特征更多是关于这个关键词的。t代表用户行为发生时的时间戳。

2.2 Raw Feature Spaces

在这一层中呢,会对用户行为进行进行分组,主要是按照不同的行为目标实体,而非不同的用户行为。还是举例说明一下。如浏览、购买、收藏商品,这些都是商品相关行为、领取、使用优惠券时优惠券相关的行为等等。那么这里划分不是按照浏览、购买、收藏商品去进行划分,而是根据商品行为、优惠券行为去进行划分。

划分后的结果表示为G={bg1,bg2,...,bgn}。这样,在每一个组bgi里,特征o都是相同的。

2.3 Behavior Embedding Spaces

在这一层,要将用户的行为转换为嵌入向量。对于用户在bgi这一组中的某一个行为(aj,oj,tj),我们会将aj、oj、tj分别转换为嵌入向量。

这里按照不同的组bgi进行划分的主要原因是针对不同的组,特征o是不同的。

下面主要来讲一下对时间t的编码方式,t是行为发生时的时间戳,首先会计算与当前时间的一个时间间隔,但此时仍然是一个连续变量,不好将其转换为embedding表示。这里文中提到了一种离散化的表示方法,将时间间隔按照如下的区间进行离散化:

在得到每个行为的embedding表示后,可以根据组别,得到每个组的embedding表示:

其中:

值得注意的是,每组得到的embedding可能是不同长度的,一是由于用户行为在每组下面的序列长度是不同的,二是由于不同的行为所包含的信息量也是差别很大的,如用户的一次购买行为,所能体现出的偏好信息是比一次关键词搜索是更多的,因而往往需要更长的embedding。

此外,这里的ubg1,ubg2,...,ubgn并非是一个向量,而是一组向量,即仍然是每一个行为对应一个向量,示意如下:

在不同组中,有些特征的embedding可能是共享的,如店铺ID、品类ID等等,但需要注意的是,对于时间的embedding在不同组是不共享的。

2.4 Latent Semantic Spaces

由于每组中行为的最终embedding长度不一,同时所处的向量空间也不同。这里其实就是通过线性变换来将其统一到同一个语义空间。

具体来说:

然后,在得到S之后,再通过多个投影矩阵,将S映射到多个不同的语义空间。

同样,这里的过程表示如下:

2.5 Self-Attention Layer

接下来,对每一个语义空间中的向量,经过一层self-attention layer,Self-Attention Layer想必大家都很熟悉了,在前面的文章中,咱们用excel将整个过程详细地捋了一遍,感兴趣的话可以查看原来的论文:

通俗易懂!使用Excel和TF实现Transformer!

在self-attention中,要分别输入queries和keys,queries用来计算Q、keys用来计算K和V。这里的的queries是Sk,而keys是S,过程表示如下:

写到这里,用户行为建模的过程就结束了,来回顾一下上面的整个流程(下图中每一个单元格代表的是一个向量):

这里还是想说,上面的过程仅仅是我的个人理解,网上的参考资料或者给出的示例代码中,均无法提供很好的参考依据。所以如果大家有不同的见解,欢迎与我一起讨论。

2.6 Downstream Application Network

在对用户行为进行建模之后,接下来我们就可以做许多下游任务了。文中是以推荐任务为例。这里仍然使用类似于self-attention的过程:

数学公式是不是看着头大?还是用excel来表示一下吧,假设下游任务是一个物品相关的行为:

好了,本文的介绍就到这里了,本文的重点是对用户行为序列建模的方法的介绍,对用户行为序列进行建模后,可以用于多种不同的下游任务,相比于DIN、DIEN和DSIN,它考虑了用户更多样的用户行为,但由于本文的时间比较早,所以也没有和DIN等模型进行对比,实践中感觉是可以尝试一下的。

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

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

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

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

我来说两句

0 条评论
登录 后参与评论

相关文章

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

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

    石晓文
  • 推荐系统遇上深度学习(一零五)-[腾讯]提升推荐多样性的推荐框架FAT

    作为2021年的第一篇原创,首先祝大家在新的一年里身体健康,万事顺意。今天给大家介绍的是腾讯发表的一篇论文《Future-Aware Diverse Trend...

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

    本文介绍的文章题目是:《Perceive Your Users in Depth: Learning Universal User Representation...

    石晓文
  • (十)如何进行A/B测试?

    对于平台化产品,产品和运营一直在解决的核心价值问题是---如何让用户用最快的速度找到并消费自己感兴趣的、急切需要的、超越期待的好内容,好服务。每一...

    砖家认证
  • 江南春豪掷亿元“全城示爱”,朋友圈广告弱爆了

    文:罗超;封面图:分众传媒框架屏幕展示“全城示爱”活动。 每一年情人节都是商家竞逐主战场,近年来在技术手段和互联网玩家的助推之下玩法更加丰富多彩。今年情人节则会...

    罗超频道
  • 没有"白走的路",每一步都算数——恩,每一步也要看得见的分析!

    原作者 是不是在等 本文为CDA线下活动分享嘉宾原创作品,转载需授权 去年,乐坛伯乐李宗盛在为某品牌代言时的一句宣言,曾刷爆朋友圈 ——人生没有白走的路,每...

    CDA数据分析师
  • 数据库系统概述必背知识点整理

    慕白
  • 大数据就是“大而全”?诸葛io邱千秋:数据“瘦身”后威力才更大

    引言:李彦宏说过,如果以英国的工业革命来比喻的话,大数据就是煤,Ai技术就是蒸汽机。数据越多,动力越足,这几乎是常识性问题,但是事实真的就是这样吗? 记者 | ...

    数据猿
  • 时空大数据云平台

    为了解决当前数据中心运营过程中的数据管理组织混乱,无法深入数据本身,无法实现在线查看、浏览、分析计算等问题,我司推出了一款时空大数据云平台,能够实现数据的在线管...

    魏守峰
  • 导航设计的10种模式

    导航设计的目的就是需要突出产品的核心,扁平化用户的任务路径。让用户能够顺利的在产品中畅行,让用户时刻清楚自己在应用中所处的位置,及如何前往目的页面。

    Shawn.W

扫码关注云+社区

领取腾讯云代金券