5、 GateNet
GateNet是将门控机制应用在深度学习CTR预估模型中。推荐系统中常用的深度学习模型Wide & Deep,YoutubeNet,DeepFM等,可以看到这些模型都包括embedding layer和MLP hidden layers,那么将门控机制和这两种layer相结合,便产生了Feature Embedding Gate和Hidden Gate,如图7,接下来对二者分别介绍。
图7.GateNet的结构。左图是标准的DNN网络,中图是带有特征嵌入门的模型,右图是带有隐藏门的深度模型
Feature Embedding Gate
Feature Embedding Gate主要是在embedding layer增加门控机制,用于从特征中选择更为重要的特征。如果模型中带有Feature Embedding Gate,其网络结构如图25中图所示。假设输入的离散特征,经过Embedding layer得到E=[e1,e2,e3,...,ei,...ef],其中,f代表特征域的个数,ei代表第i个域的embedding向量,长度为K。接下来,embedding向量会通过Feature Embedding Gate进行转换。首先,对每一个embedding向量,通过下面的公式来计算门值gi,代表该向量的重要程度:
然后,将embedding向量ei和门值gi计算哈达玛积,得到gei,并得到最终的输出gated feature embedding GE:
上面是对Feature Embedding Gate的一个概要介绍,其具体的做法包括多种,比如输出的gi是一个跟ei同样长度的向量,那么此时称门为bit-wise gate,如果输出的gi是一个值,那么此时称门为vector-wise gate。二者的区别如图8。另一种就是是否所有的域都用同一个参数矩阵W,如果每个域的参数矩阵都不相同,称之为field private,如果所有域的参数矩阵相同,称之为field sharing。
图8. 特征嵌入门。左图表示矢量特征嵌入门,右图是比特特征嵌入门
Hidden Gate
与上一部分类似,Hidden Gate主要是在MLP中增加门控机制,用于选择更加重要的特征交互传递到更深层的网络。如果模型中带有Hidden Gate,其网络结构如图25右侧图所示。假设a(l)是第l层隐藏层的输出:
接下来将a(l)输入到hidden gate中,计算方式如下:
综上所述,模型的总体表述为:
其中,yˆ∈(0,1)是CTR的预测值,σ是sigmoid函数,b|L|是偏置,|L|是DNN的深度。学习过程的目的是最小化以下目标函数(交叉熵):
当前SOTA! 平台收录GateNet共1个模型实现资源。
项目 | SOTA!平台项目详情页 |
GateNet | 前往 SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/gatenet |
6、 IPRec
随着移动互联网中在线社交网络的蓬勃发展,本文提出了一个新颖的社交推荐场景,名为Package Recommendation。在这种场景中,用户不再被推荐单个项目或项目列表,而是被推荐异构且类型多样对象的组合(称为包,例如,包括新闻、媒体和观看新闻的朋友)。与传统推荐不同,在包推荐中,包中的对象被明确显示给用户,用户会对显式展示的对象表现出极大的兴趣,反过来这些对象可能对用户行为产生重大影响,并显著改变传统的推荐模式。传统和包推荐模式的区别如图9所示。
图9. (a) 现实世界中社交平台中的一个典型的包推荐例子。新闻的发布者和点击该新闻的朋友也明确显示出来,这将对用户产生一定的影响。(b)包推荐和传统推荐的比较
图10. IPRec框架。它包含三个部分。(a) 包建模模块,通过包内和包间注意力网络学习包嵌入,以捕捉多方面的影响和协作信息;(b) 用户建模模块,通过细粒度和粗粒度聚合网络对不同粒度的用户偏好进行建模,以及评级预测模块,通过学习的用户和包嵌入预测评级
IPRec的第一个组成部分是包的建模模块,它的目的是学习包的潜在表示。如前所述,在包推荐中,存在着连接一个包中的对象的包内连接,以及连接多个包的包间连接。因此,作者设计了两个注意力网络,分别称为包内和包间注意力网络,以应对包内和包间连接。包内注意力网络融合了对象层面的属性,它配备了一个社会影响编码器来分解来自社会关系的多方面影响,并配备了一个交互层来推导包内表示,编码包内异质对象的复杂和多方面的影响。另一方面,包间关注网络通过闸门注意力机制聚合相邻的包,以捕捉协作特征。
Intra-Package Attention Network
给定一个包P = {O𝜏|𝜏∈T }推荐给用户𝑢,在本文方案中,T = {Article, Media, Friend},其中,OArticle = {𝑎},OMedia = {𝑚},OFriend= {𝑢1, 𝑢2, - - -, 𝑢𝑥 }。对朋友𝑢𝑖对文章𝑎的社会影响进行分解,具体如下
u𝑖和a是初始表示,(W_𝑓)k和(W_𝑎)k是disentangled矩阵。随后,就包P中的文章𝑎而言,OFriend∈P中的朋友的社会影响力被编码为第k个 disentangled embedding fk:
不同的disentangled空间中的朋友代表对当前用户𝑢的社会影响有不同的贡献,进一步,可以将来自𝐾分解空间的影响与注意力机制结合起来:
接下来,由于包中的异质对象对用户的行为有多方面的影响,令包中的每个对象都相互影响,从而协同融合异质的不同信息。回顾一下,有文章𝑎、媒体𝑚和朋友{𝑢1, - -, 𝑢𝑥}的表示,表示为a、m和f,定义七个组合为:
然后,利用注意力机制,提炼出对当前用户𝑢不同重要性的多面信息,并将其融合为:
Inter-Package Attention Network
给定一个包集𝑃={P_1, ... , P_|𝑃 |},其中,每个包P𝑖∈𝑃与当前包P有相互联系,引入gate filter聚合包集,融合协作信息如下:
IPRec的第二个组成部分是用户建模模块,其目的是捕捉用户的基本偏好。直观地说,一个包中的异质对象和不同的包都为用户的偏好提供了多方面的信息,它们从不同的角度表明用户的兴趣。因此,在两个不同的粒度上将这些多方面的异质信息纳入用户偏好,包括用一个细粒度的特征聚合网络来融合相关的对象,用一个粗粒度的包聚合网络来聚合历史上交互的包。
Fine-Grained Aggregation Network
给定一个用户𝑢,将与𝑢相关的不同类型的对象表示为A𝑢=(A𝑢)1 ∪ - - ∪(A_𝑢)T,例如,𝑢阅读的文章或者𝑢订阅的媒体。提取包中所有与用户互动过的对象,以捕捉细粒度的用户偏好。首先,区分同一类型的多个目标对用户偏好聚合的贡献。对于(A_𝑢)t中的所有𝑡类型的对象,用节点级的注意力在𝑡类型空间中进行聚合,即:
此外,给定用户𝑢在不同类型空间{u1, ..., u|T| }中的多个嵌入,学习不同类型空间中多方面信息的注意力权重,然后用类型级注意力将其汇总如下:
Coarse-Grained Aggregation Network
为了进一步捕捉用户在粗粒度层面上的偏好,用一个门控注意力机制来汇总用户𝑢的历史交互包,如下所示:
现在我们得到了用户𝑢和包P的表征,即𝑢˜和𝑝˜,将它们连接起来,用两层MLP预测𝑦u P和P之间互动的概率得分:
最后,我们优化以下交叉熵损失来估计模型参数Θ:
当前SOTA! 平台收录IPRec共2个模型实现资源。
项目 | SOTA!平台项目详情页 |
IPRec | 前往 SOTA!模型平台获取实现资源:https://sota.jiqizhixin.com/project/iprec |
前往 SOTA!模型资源站(sota.jiqizhixin.com)即可获取本文中包含的模型实现代码、预训练模型及API等资源。
网页端访问:在浏览器地址栏输入新版站点地址 sota.jiqizhixin.com ,即可前往「SOTA!模型」平台,查看关注的模型是否有新资源收录。
移动端访问:在微信移动端中搜索服务号名称「机器之心SOTA模型」或 ID 「sotaai」,关注 SOTA!模型服务号,即可通过服务号底部菜单栏使用平台功能,更有最新AI技术、开发资源及社区动态定期推送。