推荐系统遇上深度学习(七十四)-[天猫]MIND:多兴趣向量召回

本文介绍的论文是:《Multi-Interest Network with Dynamic Routing for Recommendation at Tmall》

关于召回阶段的算法,以youtube DNN为代表的向量化召回方式是目前的主流算法之一,但是目前的大多数算法仅仅将用户的兴趣表示成单个的Embedding,这是不足以表征用户多种多样的兴趣的,同时容易造成头部效应。因此本文提出了MIND,同时生成多个表征用户兴趣的Embedding,来提升召回阶段的效果,一起来学习一下。

1、背景

在天猫的推荐过程中,推荐系统也被拆分为召回和排序阶段。

本文重点关注召回阶段的算法。召回阶段的目标是得到数千个跟用户兴趣紧密相关的商品候选集。在天猫场景下,用户每天都要与成百上千的商品发生交互,用户的兴趣表现得多种多样。如下图所示,不同的用户之间兴趣不相同,同时同一个用户也会表现出多样的兴趣:

因此,对于用户兴趣的建模显得至关重要。目前召回阶段主流的算法是协同过滤和向量化召回。协同过滤面临稀疏性的问题。而向量化召回方法如youtube dnn,将用户的兴趣表示成一个固定长度的向量。

但在天猫场景下,对于用户多样化的兴趣,一个Embedding往往是不够的,除非这个Embedding的长度足够大,具有足够的表征能力。除此之外,只有一个Embedding会造成一定的头部效应,召回的结果往往是比较热门领域的商品(头部问题),对于较为小众领域的商品,召回能力不足。

解决上述问题的方法也很简单,搞多个用户Embedding就好了嘛,而本文要介绍的MIND,正是通过生成多个表征用户兴趣的Embedding,来提升召回阶段的效果,一起来学习一下。(昨天听了俊林老师的讲座,这个方向也是他比较看好的)

2、MIND

2.1 问题概述

召回阶段的目标是对于每个用户u∈U的请求,从亿级的商品池I中,选择成百上千的符合用户兴趣的商品候选集。每条样本可以表示成三元组(Iu,Pu,Fi),其中Iu是用户u历史交互过的商品集合,Pu是用户画像信息,比如年龄和性别,Fi是目标商品的特征,如商品ID、商品品类ID。

那么MIND的核心任务是将用户相关的特征转换成一系列的用户兴趣向量:

而目标商品向量Fi也被转换为一个Embedding:

当得到用户和商品的向量表示之后,通过如下的score公式计算得到topN的商品候选集:

整个MIND的框架如下:

接下来,详细介绍MIND中的各部分。

2.2 Embedding Layer

如上图,MIND的输入中包含三部分,用户的画像信息Pu、用户历史行为Iu和目标商品Fi。每个部分都包含部分的类别特征,类别特征会转换为对应的embedding。对用户画像信息部分来说,不同的embedding最终拼接在一起。而对于用户历史行为Iu中的商品和目标商品Fi来说,商品ID、品牌ID、店铺ID等转换为embedding后会经过avg-pooling layer来得到商品的embedding表示。

2.3 Multi-Interest Extractor Layer

接下来是最为关键的 Multi-Interest Extractor Layer,这里借鉴的是Hiton提出的胶囊网络。有关胶囊网络,下面的图可以帮助你快速理解(图片来源于知乎:https://zhuanlan.zhihu.com/p/68897114):

可以看到,胶囊网络和传统的神经网络较为类似。传统神经网络输入一堆标量,首先对这堆标量进行加权求和,然后通过非线性的激活函数得到一个标量输出。而对胶囊网络来说,这里输入的是一堆向量,首先对这组向量进行仿射变换,然后进行加权求和,随后通过非线性的"squash"方程进行变换,得到另一组向量的输出。

而MIND中的Multi-Interest Extractor Layer,与胶囊网络主要有两个地方不同:

1)在胶囊网络中,每一个输入向量和输出向量之间都有一个单独的仿射矩阵,但是MIND中,仿射矩阵只有一个,所有向量之间共享同一个仿射矩阵。主要原因是用户的行为数量长度不同,使用共享的仿射矩阵不仅可以减少参数,同时还能对应另一处的改变,即不同用户输出向量的个数K是基于他历史行为长度自适应计算的:

上面基于用户历史行为长度自适应计算输出向量个数K'的策略,对于那些交互行为较少的用户来说,可以减少这批用户的存储资源。

2)为了适应第一个改变,胶囊网络中权重的初始化由全部设置为0变为基于正太分布的初始化。

下图是整个Multi-Interest Extractor Layer的过程:

通过Multi-Interest Extractor Layer,得到了多个用户向量表示。接下来,每个向量与用户画像embedding进行拼接,经过两层全连接层(激活函数为Relu)得到多个用户兴趣向量表示。每个兴趣向量表征用户某一方面的兴趣。

2.4 Label-aware Attention Layer

在上一步得到用户兴趣向量之后,由于不同用户的兴趣向量个数不同,通过Label-aware Attention Layer对这些向量进行加权(只应用于训练阶段),类似DIN中的做法:

而计算公式为:

上图中的Q相当于目标商品的embedding,K和V都是用户的兴趣向量。值得注意的一点是,在softmax的时候,对得到的attention score,通过指数函数进行了一定的缩放。当p接近0时(这里应该是假设了向量的内积大于1吧),对softmax是一种平滑作用,使得各attention score大小相近,当p>1且不断增加时,对softmax起到的是一种sharpen作用,attention score最大那个兴趣向量,在sofamax之后对应的权重越来越大,此时更类似于一种hard attention,即直接选择attention score最大的那个向量。实验表明hard attention收敛速度更快。

2.5 Training & Serving

在训练阶段,使用经过Label-aware Attention Layer得到的用户向量和目标商品embedding,计算用户u和商品i交互的概率(这里和youtube DNN相似,后文中说也进行了采样):

而目标函数(而非损失函数)为:

而在线上应用阶段,只需要计算用户的多个兴趣向量,然后每个兴趣向量通过最近邻方法(如局部敏感哈希LSH)来得到最相似的候选商品集合。同时,当用户产生了一个新的交互行为,MIND也是可以实时响应得到用户新的兴趣向量的。

3、实验结果

接下来看下实验结果。

对于离线实验,文中使用MIND和BASE模型(如youtube DNN)等进行了对比,结果如下:

而在线上实验时,为了进行对比,不同的召回模型都使用同样的排序模型作为下游,并比较了一周内不同实验组的CTR:

可以看到,无论是线上还是线下实验,MIND都取得了不错的效果。

4、总结

目前召回阶段,有几个值得不错的方向,比如MIND中的用户兴趣多Embedding拆分和基于Graph的召回,大伙不妨可以尝试一下。

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

推荐阅读更多精彩内容