BINN: behavior-intensive neural network

论文: Learning from History and Present: Next-item Recommendation via Discriminatively Exploiting User Behaviors

发表在KDD 2018上,科大的论文。本来想搞一个一手的中文稿,结果一作说是直接用英文写的,我就挑拣着硬翻好了...有些黑体的问题过段时间补充在文末。

“学习历史和现在:判别性地学习用户行为进行下一个物品推荐”。

摘要:现代电子商务中,用户行为包含很多信息,例如消费习惯、动态偏好等。session-based推荐越来越流行,但是现存工作主要探索短期行为,没有考虑长期稳定的兴趣。本文提出BINN(行为密集神经网络?),结合用户的长期兴趣(历史)和短期行为(现在)来进行next-item 推荐。BINN包括两个部分,一是Neural Item Embedding, 二是Discriminative Behaviors Learning。用了两个数据集,天池和京东。

1. introduction

目前的推荐系统有两种范式:

1. General Recommenders :大多是从交互中挖掘用户或物品之间的静态关联。比如协同过滤、因子分解什么的。 这些工作考虑了用户物品之间的特定关系,但是没有考虑在序列交互中的用户偏好。

2. Sequential Recommenders:基于序列模式挖掘或者transition建模。比如不可见用户信息,只能根据session内行为推荐。这些工作考虑了短期的决策过程(当然就没怎么利用历史了,但是人家都不可见用户信息了,本来也利用不了吧...又当然,这不重要...)。

显然了,历史和现在都是有用的,例子:

看图就知道,只考虑长期偏好不行,只考虑短期兴趣也不行,综合起来就很棒,说的就是BINN。

本文主要就是提出了BINN,同时利用历史和现在的行为,搞出了state of the art的效果,顺便提了一嘴用户冷启动(不是重点)。

2. 相关工作

这部分就是介绍下现存工作,按照上面说过的逻辑,主要分为两种,general和sequential,general其实说的就是传统的模型,sequential就避不开rnn了,这里不细说了。

3. BINN: behavior-intensive neural network

3.1 准备和概览

问题定义:personalized next-item recommendation

就是对于给定u,根据他的历史行为S_u, 以及所有用户的行为H,预测他下次操作(点击、收藏、购买啥啥的)的item。S_u里,x是item,b是behavior;H里,有n个S,表示n个user。

framework:

上面介绍里也说了,可以分成两部分,一个是A:embedding部分,一个是B:学习部分;B又可以分成两部分,一个是Session的,CLSTM学短期,一个是preference的,Bi-CLSTM学长期。

3.2 A: Neural Item Embedding

这部分是为了搞出一个对item的统一表示。

顺序推荐器的先前工作总是使用1-of-N编码或在深度学习架构中添加额外的嵌入层来表示itemitem。然而,对于大型电子商务平台中的一系列物品,一方面,1-of-N编码网络可能花费过长的时间,并且由于高稀疏性所以总是无法很好地优化。另一方面,添加额外的嵌入层可能会使网络在某种程度上失去性能。而且,这两种方法都无法揭示用户交互中隐含的itemitem的顺序相似性。(Next-item Recommendation via Discriminatively Exploiting User Behaviors

万物皆可embedding,w2v牛逼。这里更进了一步,提出一个w-item2vec,相比普通的i2v,考虑进去了item的frequency当做权重。用的是skip-gram,看图看得出来。word2vec不细说了,自己搜一下,可以参考 通俗理解word2vecNLP之--Word2Vec详解 - 郭耀华 - 博客园

改造之后的i2v实际上只是增加了frequency权重:

这里小提示一点,1-sigma(x)=sigma(-x)

优化目标

上面(5)里大K是S_u的长度,E是负采样数,也就是(4)里的小k遍历的。但是这里的theta为什么这样加呢?【问题1】

3.3 Discriminative Behaviors Learning

一个用户的决策过程被当前动机和历史偏好影响,当前动机要考虑全部行为(包括展示之类的),历史偏好考虑正向行为(只展示什么的就不算了),在电商里,点击也要算在“当前动机”里,但是点了没买就不要算到历史偏好里了。

3.3.1 Session Behaviors Learning

其实就是说t和i是不是一个session里的事

这里为啥是t-i呢?【问题2】

contextual lstm:

具体的有没有个图啥的?【https://www.jianshu.com/p/9dc9f41f0b29】【注1】这里的行为向量是one-hot的(对应CLSTM里的单词的topic)。最后用h_t-1 作为user当前动机的表示。

3.3.2 Preference Behaviors Learning

不同于短期的,长期偏好波动要小很多,C-LSTM可能不大好用了,于是就用双向的。

公式跟前面没啥差别,就是加了方向而已,状态concat起来,最后均值池化:

3.3.3 在SBL和PBL后面接一个全连接,就可以得到d维的item表示,就是对next-item的预测。

3.4 模型学习和测试

上面的DBL是联合学习的,用MSE做loss,用adagrad优化:

预测过程几乎显然,既然3.3.3可以得到d维预测,那与3.2里的emb搞一个相似度就好了。

4. 实验结果

4.1 数据

过滤行为少于10的user和频次小于5的item

按时间9/1分割训练测试集

在训练集里没出现过的item和user都在test里删掉了。这些删掉的user后面用来看了冷启动的效果。

4.2 基线方法

S-POP :recommends the item with the largest number of interactions by the target user. 推荐跟当前用户交互最多的那些item。(感觉有点弱啊)

BPR-MF:a widely used matrix factorzation methods, 优化的是pairwise ranking objective function via SGD.

Item-KNN: 找用户刚刚消费的item的最近邻。用什么找最近?【问题3】

GRU4Rec:uses the basic GRU with a TOP1 loss function and session-parallel minibatching。https://www.cnblogs.com/daniel-D/p/5602254.html

GRU4Rec Concat :similar with GRU4Rec. Differently,  do not use the session-partition, and the users’ interaction sequences are fed to the GRU4Rec independently as a whole. 什么意思?【问题4】

HRNN Init : a hierarchical RNN for personalized crosssession recommendations, which is based on GRU4Rec and adds an additional GRU layer to model information across the user’s sessions for tracking the evolution of the user’s interest.

HRNN All : similar with HRNN, but the user representation generated by an additional GRU layer is used for initialization and propagated in input as each step of the next session.

参数:所有rnn偶像隐层节点都是100,学习率0.1。BINN的emb是64维。

4.3 评估标准

都是越高越好:

recall@20  前20个item不分先后,只看正确的比例。

MRR@20  Mean Reciprocal Rank ,就是“正确结果的排序的倒数的平均值”,排序超过20的算0.

4.4 结果

4.4.1 item emb可视化

w-i2v表现比i2v好,大概是因为考虑进了frequency。京东的效果看起来比天池好,分界清晰,可能是因为京东数据更稠密。

4.4.2 推荐表现

天池:1. BINN最屌。2.看mrr指标,rnn之间的比较可以看出,考虑了个性化信息的更好。(binn,hrnn > gru) 3. p-pop表现不错,因为啥?We guess a possible reason is that users’ interactions on Tianchi have a high degree of repetitiveness and this dateset has a large amount of item candidates when making recommendations. That fact makes the generation of “non-trivial” personalized recommendations (i.e., P-POP) very challenging [27].【问题5】

京东: 1. BINN还说最屌,rnn的明显好于传统的。2. 没有个性化信息的反而更好(gru-concat>hrnn),说明不合适的个性化策略不大好。

京东效果好于天池。可能是,京东比天池的交互多、user多、item少。

4.4.3 用户冷启动

没有行为的时候BINN推荐不了,所以从新用户的第二个item开始看效果。第二个怎么看?有多少算多少,直到达到10开始按10算?【问题6】

刚开始的时候BINN退化成CLSTM,因为没有行为。随着交互增多,效果变好。

深度模型表现不错。

BINN厉害吧。

4.4.4 用户历史的长度

对于RNN模型来说,用户历史的长度是否有影响?

这一段感觉有点不明所以...最后就说确实长度有影响,感觉看图表现也不怎么明显啊。【问题7】

【问题1】frequency这么添加一方面是强调被点击越多的item权重越大,另一方面就是方便梯度求解。

【问题2】这个公式是判断i的操作是否属于一个session中,i不是预测的,预测的是t+1时刻的. (公式D_SBL的“含义”应该是“SBL”的功能?判断“i的操作是否属于一个session”有什么意义呢?)(D函数是一个判别器,判断哪些是需要输入的)

【问题3】item-knn是用什么计算的相似度?w-i2v的emb吗还是别的什么?相似度计算不是item2vec,是完全不考虑序列关系的相似度计算,计算集合中商品同时出现的概率。

【问题4】GRU4Rec的两个版本应该是训练方式的不同吧,具体没有去更详细的了解。

【问题5】效果好是因为商品种类太多了,而每个商品的被点击次数较少,导致简单的方法反而效果非常好(当然,这也是我们对结果的分析后的一种猜测)

【问题6】训练的时候我们默认设置了一个最小的值,这是为了方便模型的训练,其实也可以通过mask来控制训练的长度。这里我们是模拟用户交互过程,一轮推荐是建立在知道用户之前的交互序列的基础上的,也就是说我们推荐了一个item 1然后用户点了另一个item2,那么这一个item2就应该看作新一轮的输入。也因此,MSE损失函数中t是从ts+1到|S_u|而不是只有ts+1。

【问题7】用户长度这一块确实没啥一致性结论,这个结果我没有详细分析,一方面是因为不是所有的用户点击序列都是很长的,就导致其实这个长度分析不是很稳定.

【注0】pbl长度是动态的,可观测样本之前的都算。意味着,假如用户历史行为有m个,那么进入SBL的有10个(一个session),进入PBL的有m-10个(假如都符合要求)。pbl这部分也有自己的判别函数,符合要求的才是输入,不符合的就不是。

【注1】这里用的是加入peephole-connection的LSTM。CLSTM跟LSTM没啥区别,只是“输入”多了一个Topic向量,对应本文中的behavior vector,看公式也可以看出来。CLSTM本来是用在nlp的。

以上部分问题为原作者回答,部分为我自己理解。感谢作者解答疑惑,感谢飞妹帮我联系作者。

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