推荐系统遇上深度学习(一一五)-[阿里]上下文感知的生成式重排网络

今天分享一篇阿里在重排序方面的工作。重排序目前也受到越来越多的关注,目前大多数的重排序方法使用的新的排序分对精排阶段得到的候选列表进行重排,忽略了物品之间的相互影响关系等上下文信息。而本文提出了一种新的生成式重排网络,一起来看一下。

1、背景

一个完整的推荐系统大都分为召回、精排和重排几个阶段。由于精排阶段大都使用point-wise方法,在预估ctr/cvr等指标时无法考虑上下文曝光的影响,因此需要重排阶段对精排结果进行进一步排序。

重排序目前也受到越来越多的关注,当前大多重排策略使用不同于精排阶段的排序公式对结果进行排序,主要分为两类方法。第一类是global point-wise方法,这类方法忽略了物品之间的相互影响;另一类是local list-wise方法,这类方法将精排结果作为输入,输出每个物品新的排序分,如下图中,精排结果为i1,i2,i3,i4,通过list-wise的模型给每个物品输出新的排序分,最终的重排结果为i1,i4,i3,i2。这类方法大都使用贪婪的方式对结果进行重排,排序结果并非是最优的,例如对于i3来说,0.2的预估值是将其排在i1和i2之后,i4之前得到的,一旦重排结果变为i1,i4,i3,i2,其预估值会发生变化,因此是次优的。

重排阶段有效利用上下文信息能够大大改善重排效果。比如将一个便宜的物品放在一个较贵的物品之后,相较于直接推荐便宜的物品,更能够激发用户的购买欲望。那么应如何有效利用这些上下文信息呢?论文借鉴Actor-Critic的思路,提出了一种生成式重排网络(Generative Rerank Network,简称GRN),一起来看一下。

2、GRN介绍

GRN主要借鉴Actor-critic的思路,主要包含了两部分的网络:Evaluator和 Generator。Evaluator采用 Bi-LSTM 和自注意力机制分别捕获列表的序列信息和物品之间的相互影响,在考虑上下文影响的情况下更好地预测最终排序列表中每个物品的交互概率。Generator则通过pointer-network、GRU和注意力机制来生成最终的重排列表,并通过Evaluator的反馈进行更新。接下来对这两部分进行详细介绍。

2.1 符号定义

上图中,V代表实际最终展示给用户的重排结果,而O代表生成器生成的重排结果,二者有所区别。

2.2 Evaluator介绍

Evaluator的结构如下图所示:

可以看到,Evaluator的输入是V,也就是最终展示给用户的重排列表,同时使用双向lstm来捕获用户在浏览过程中的意图变化以及使用self-attention来捕捉物品之间的相互影响关系。对列表中的第t个物品来说,两部分的输出分别记作htat,随后与物品特征xvt和用户特征xu进行拼接,通过MLP输出每个物品的预估值:

而Evaluator使用二分类交叉熵损失进行训练:

2.3 Generator介绍

Generator的结构如下图所示:

对Generator,主要分为三层Evolving Layer、Activating Layer和Selector Layer。

Evolving Layer

Evolving Layer使用GRU来提取已选择结果的顺序信息,对于每一个选择的物品,都对应一个隐状态的输出h

Activating Layer

已选择的物品对于未选择物品有着不同的影响,比如用户在浏览了许多衣服之后,也许会希望浏览一些其他品类的物品。因此,Generator使用Activating Layer来计算每个未选择物品与已选择物品的相关性权重,并进行加权:

Selector Layer

最后,Selector Layer用来计算每一步该选择的物品,对于每一个未选择的物品,通过MLP来计算对应的未归一化权重,并通过softmax对权重进行归一化,并选择剩余物品中权重最大的作为改步的输出。特别地,MLP层的输入包含了三部分,分别是用户和物品的特征,以及Activating Layer输出的加权向量:

那么,generator通过循环执行直到生成的列表长度达到预设的长度为止。最终生成的列表计作O。

最后的问题是,如何对generator进行训练?这里借鉴的是policy-gradient的训练方法。奖励定义分为两部分,分别是Self reward和Differential reward。Self reward通过Evaluator计算得到:

Differential reward的含义是重排列表中某个物品带来的用户交互概率的差异,其结果也通过Evaluator计算得到:

那么将上述两部分奖励结合,生成的重排列表O中第t个物品的奖励为:

最终的损失函数为:

2.4 训练过程

再来看一下GRN的训练过程。GRN采用的是两阶段交替训练的策略,首先训练Evaluator,随后固定Evaluator,训练Generator,如此循环。具体过程如下图所示:

3、实验结果及分析

最后看一下GRN的实验结果,首先是离线结果:

再来看一下线上的表现,GRN部署在淘宝的猜你喜欢模块,并通过边缘计算实现端上实时重排,减少了整体的耗时约30ms。同时,考虑到总时间成本较长,进一步实现了提前触发和延迟完成机制。 特别地,在当前页面的最后一个位置之前几个位置请求 GRN。 此外,GRN 在每次请求时都会返回比预期更多的结果,以弥补下一次请求的空缺。最终,线上指标也得到了不错的提升。

好了,论文就介绍到这里啦~~

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,045评论 5 468
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,114评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,120评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,902评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,828评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,132评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,590评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,258评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,408评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,335评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,385评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,068评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,660评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,747评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,967评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,406评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,970评论 2 341

推荐阅读更多精彩内容