推荐系统
链接:https://pan.baidu.com/s/1PtLt2ZlKLWisf5fDfKfP2A 密码:tba2
Next-item Recommendation via Discriminatively Exploiting User Behaviors
介绍
推荐系统是电子商务网站的一个基本组成,它试图根据用户的偏好给用户推荐最合适的商品或者服务给用户。随着电子商务机制的发展,大量的用户交互行为(浏览、点击、收藏、购物车、购买)被记录下来了,其中隐含着很多消费模式。这些丰富的信息日志给理解用户历史的稳定的偏好和现在的消费动机提供了机会,可能进一步对更智能的推荐有贡献。
沿着这个方向,我们对了解客户的交互行为特别感兴趣。现存的工作可以概括为两个模式。
第一个模式是普通的推荐,这类型的推荐主要关注从交互中挖掘$user$和$item$的静态的关联,传统的协同过滤方法就是这类型的代表。然而,很多方法从静态的角度考虑给出的$user-item$的具体的关系,忽视了序列中隐藏的动态的用户偏好。
另一个模式是基于序列模式挖掘或者是转换模型来推荐下一个$item$。研究人员最近展示出了很多在电子商务场景中的应用,电子商务场景中用户的配置文件是不可见的,所以推荐系统基于用户在短会话中的交互来开发。这些基于会话的模型,提供了对用户在短期的做决策的理解。
但是动态偏好和如何很好的融合历史稳定的偏好和目前的消费动机仍然没有很多探索。
事实上,用户的交互行为自然的随时间形成一个行为序列,它可以动态的从长期的角度显示用户的历史偏好和从短期的角度显示当前的消费动机。
我们得出这样的结论: 一个更出色的推荐系统不仅要考虑用户的历史稳定偏好, 还要考虑到当前的消费动机,有区别地利用不同的$item$或$user$行为类型。
本文的框架
本文提出一个新的框架,叫Behavior-Intensive Neural Network (BINN),用来处理推荐下一个$item$的问题。本文的框架包含两个部分,神经$Item$嵌入和有区别的行为学习。
特别的,我们提出一个新的$item$嵌入的方法,获得一个统一的特征空间来学习$item$的潜在表达,并且可以捕捉$item$之间的序列相似度。与传统的项目嵌入基于项目图像或文本描述等固有特征方法不同的是, 我们的神经项嵌入方法通过直接利用用户的协同的时序交互来生成$item$的表达。
我们两种不同的行为,会话行为学习和偏好行为学习,分别表示用户目前的消费动机和通过用户交互行为 得到历史稳定的偏好。特别的,我们分别开发了两个深度神经网络结构,来联合学习会话行为和偏好行为,最后, 通过匹配潜在空间中可能的$item$, BINN 给目标用户生成推荐。
本文的贡献
我们建议通过整合用户的历史偏好和当前的动机来提出$item$推荐, 这些都是从用户的交互行为中学到的。
我们提出了一种新的神经网络 (BINN), 它包括通过用户的交互分别使用两种适用的神经网络架构。
模型介绍
问题定义
下一项推荐是根据历史预测交互预测用户下一步要访问的内容。
- 随着用户交互自然地随时间形成序列,信息系统的日志历史$H$是一组顺序交互$H=${$S_1,S_2,…,S_n$},其中$|H|= n$ ,$n$表示用户个数。每个$user$ $u$ 具有相应的交互序列$S_u \in H$,其可以表示为 $S_u=${$(x_1,b_1),(x_2,b_2),…,(x_T,B_T)$},其中$x_j$表示用户$u$ 第$j$项操作。$b_j$表示行为类型(浏览、点击、收藏、购物车、购买)。
给定目标用户$u$的项目$S_u=${$(x_1,b_1),(x_2,b_2),…,(x_T,B_T)$}以及所有用户的顺序交互行为$H$,个性化的下一个$item$推荐任务是预测目标用户$u$在下次访问中最有可能访问的项目$x_{T +1}$。
模型图
Neural Item Embedding
在BINN的第一阶段,Neural Item Embedding目的是通过从$item$上的大量顺序行为中学习$item$之间的相似性来为每个$item$生成统一的表示。
原因
顺序推荐器的先前工作总是使用1-of-N编码或在深度学习架构中添加额外的嵌入层来表示$item$。然而,对于大型电子商务平台中的一系列物品,一方面,1-of-N编码网络可能花费过长的时间,并且由于高稀疏性所以总是无法很好地优化。另一方面,添加额外的嵌入层可能会使网络在某种程度上失去性能。而且,这两种方法都无法揭示用户交互中隐含的$item$的顺序相似性。
Discriminative Behaviors Learning
在获得$item$嵌入后,Discriminative Behaviors Learning(DBL)可以探索顺序行为作为先验知识,以推荐目标用户在下次访问中最有可能访问的$item$。
用户的决策过程主要受两个因素的影响:她目前的动机和历史偏好。更具体地说,用户目前的消费动机在短期内是动态的,最近的波动对于反映短期特征也很重要。考虑到所有最近的行为(例如,点击,收藏,购物车,购买)可能意味着用户在短期内的消费动机,我们使用所有类型的短期行为来表示当前的消费动机。另一方面,至于利用用户的历史偏好,并非所有类型的行为都能描绘出用户的偏好。例如,我们可以假设,如果用户只是点击它而不是最后购买,则不喜欢该$item$。因此,为了对用户的历史偏好进行建模,我们仅保留能够从交互历史(即购买行为)清楚地描绘用户的潜在偏好的行为。
实际上,用户的交互过程是一系列伴随时间的隐式反馈。因此,与传统的推荐系统不同,我们以静态方式探索$user-item$交互,我们通过顺序建模来处理下一项推荐。具体而言,我们设计了两种判别行为学习方法:会话行为学习(SBL)和偏好行为学习(PBL),以分别学习用户的当前消费动机和历史稳定偏好。此外,在此基础上,我们开发了两个基于LSTM的独立深度神经架构,共同学习这两种行为学习的动机和偏好。
Session Behaviors Learning
通过判别式$D_{SBL}(x_I,x_j)= \Phi ((t-i) \leq ts)$ 来确定某个$item$ $x_i$是否是会话行为元素。其中$\Phi (a)$ 是判别函数,$a$ 为真则等于1,否则等于0。$ts$ 是人工指定的,在本文中$ts$被设置为10作为默认值。
本文开发了一个Contextual LSTM(CLSTM)来学习用户当前的消费动机。在初始化之后,在第$j$ 个交互步骤,每个交互的隐藏状态$h_j$由先前的隐藏状态$h_{j-1}$,当前$item$嵌入$v_j$ 和当前行为向量$b_j$更新($b_j$是行为的one-hot 表示)
其中$i_j, f_j, o_j$ 分别是第$j$步的输入门,忘记门,输出门。$v_j$是$item$嵌入向量,$b_j$是行为向量,$c_j$是单元存储器 ,$h_j$是第$j$步的输出。
我们使用最终输出状态$h_{t -1}$ 表示用户$u$的当前消费动机,即$\Psi_{SBL}= h_{t -1}$。利用上述网络结构,SBL可以自然地对用户会话行为的波动进行建模,以获得当前消费动机的表示。
Preference Behaviors Learning
如上所述,更智能的推荐系统不仅应考虑用户当前的消费动机,还应考虑历史稳定的偏好。因此,除了在短期内利用SBL的消费动机之外,PBL用于从长期的偏好行为中学习用户稳定的历史偏好。实际上,只有部分行为意味着用户的偏好。通过判别式$D_{PBL}(v_i,b_i)=\Phi (b_i \in P)$ 确定某种相互作用$(v_i,b_i) \in S_u$是否是偏好行为的元素。
其中$P$是偏好行为集合。其中包含的偏好行为有收藏,购物车,购买。
与SBL不同,PBL是历史偏好的全部表示,具有较少的波动。这使SBL的体系结构无法很好地获得用户的历史偏好。所以,我们将CLSTM调整为Bi-CLSTM的双向架构。以充分利用向前和向后的上下文信息进行偏好的长期表示。
我们可以通过平均合并层为用户u生成偏好行为$\Psi _{PBL}$的统一表示:$ \Psi _{PBL} = average(h_1^P,h_2^P,…,h_m^P)$
特别地,将嵌入偏好交互作为上述网络的输入,PBL能够学习和描述每个用户的个性化偏好。 这可以帮助BINN更好地理解用户的历史稳定偏好。
到目前为止,从判别行为学习(DBL),我们已经建模了两个行为学习模式:会话行为学习$\Psi _{SBL}$和偏好行为学习$\Psi _{PBL}$。 然后,在完全连接的层之后,我们可以生成下一个项目的$d$维表示$v_t$