题目:在推荐系统中对社交属性的深度表达来应用双图attention网络
论文地址:https://arxiv.org/pdf/1903.10433.pdf
ABSTRACT
社交推荐利用社交信息来解决传统协作过滤中的稀疏性和冷启动问题方法。但是,大多数现有模型都假设社会影响来自朋友用户的信息是静态的并且处于恒定权重的形式下或固定约束。为了减轻这个强有力的假设,在本文中,我们提出了双图attention网络来进行协作学习两种社交效果的影响程度,其中一个是建模user-attention权重,另一个由动态和上下文感知的权重。我们还扩展了user领域中的社会效应到item领域,因此可以利用相关iten中的数据来进一步缓解数据稀疏问题。此外,考虑到不同的社会两个域中的实体可以相互影响,由于用户对商品的偏好,我们提出了一项新的基于策略的建议 + 基于上下文多层的融合策略来权衡各种社会影响的相互作用。在一个基准上进行实验数据集和商业数据集验证了我们模型中关键组件的有效性。结果表明,我们的模型可以实现与其他最新的社交推荐方法相同的准确率。
1 INTRODUCTION
推荐系统,旨在对用户的潜在兴趣进行过滤和推荐,具有广泛的应用并且可以带来大量的商业利益,尤其是在信息过载问题普遍存在的情况下和万维网的快速发展。 推荐人使用的常规协作筛选(CF)方法会遇到数据稀疏和冷启动问题。 为此,社交推荐可以避免利用用户的社交网络合并了更多有用的信息,已建议减轻这两个问题[5,12,18,19]。
以前作品和局限性 如今有很多集成了项目推荐和社交网络服务(SNS)的复合平台。 这些平台上的用户可以单击或为商品评分并与朋友互动。 用户对一件物品的偏好可能会受到她的朋友的影响,这激励了我们探索这种社会效应以提高推荐质量。先前的社会推荐研究无法建立社会模型以各种方式产生影响,例如通过信任传播[5,12,21],正则化损失[19,38],矩阵分解[8,17,36],网络嵌入[16、32、41]和深度神经网络[4、31]。
图1:用户社交网络中的两种社交效应(即同形效应和影响效应)的图示以及相关项目之间的图示。 这4种社交的关系共同影响了用户对item的决定。
但是,这些研究有几个共同的局限性。 第一,大多数研究假设相关的用户具有相似的偏好。这个假设不适合当代SNS,因为有各种类型的在线朋友,例如密友,休闲朋友和活动朋友[42]。 因此,直接把社交网络上的关系都看做相同权重是不合适的。其次,大多数作品会静态模拟朋友的影响。 这种假设忽略了社会效应的动态信息。 实际上,用户可能是在特定人群中受到一群特定朋友的影响项目,这使得社会影响是动态的,并依赖于具体环境。 第三,以前的方法缺乏可解释性对于社交影响,即它们无法明确指出用户的他们的朋友影响了对一项物品的偏好。
动机和理由 在现实世界中,人们的决定可能会受到各种因素及其行为的影响是多方面原因的结果。为此,我们探讨推荐系统中分为四个不同的社会影响,包括用户域中的两个影响,item域的两个影响,如图1所示。在用户域中,朋友可以通过两种方式相互影响。一方面,用户倾向于与朋友有相似的喜好,这被称为“社交同质”[23](图1.(a))。社会同质性经常会对用户导致固有的影响:不变+独立。另外,某位用户的朋友购买了一个item,可能会推荐给该用户,该用户可能会点击此个item,称为“社交影响”[20](图1.(b))。实际上,社会影响导致的影响,可能会随特定上下文而动态变化。例如,一个商业分析师可能会由不同的朋友(这些朋友会被娱乐新闻或商业新闻而影响)而有着不一样的分析结果。 因此,我们可以区分两个可能会影响用户偏好的情况:来自“社交同质”的静态效果、来自“社会影响”的动态效应,我们将相应用户的偏好称为静态和动态偏好(图1的部分)。
此外,在item中,存在类似的“社会效应”。一方面,某些相关item在暴露给用户时往往具有类似的性质。我们称这种是“item同质”(图1.(c)),这些是由用户的静态属性决定的。另一方面,如果在某个社区中某个item很受欢迎,其他相关项目将变成更有可能被该社交组中的用户点击的对象,这种现象可以称为“item影响”,具体取决于在特定情况下(图1.(d))。例如,一位商人和一位研究员都读了一篇关于人工智能的文章,但商人更喜欢另一篇关于金融的文章人工智能公司的信息,而研究人员倾向于点击在另一篇有关AI前沿突破的文章,我们称这种为动态影响。最后,如图1中的1〜4所示。用户域和项目域中的影响可能会共同产生影响用户对一项商品的决定。这种现象普遍存在Epinion,TwiŠer,Facebook和Netƒix等
方法与结果 为此,在本文中,我们提出DANSER(Dual graph Attention Networks for modeling multifaceted Social Eects in Recommender systems),在里面用到了GAT。DANSER由两个gats图构成,一个是user-gat,里面由两个gat组成,分别描述用户的同质、影响,另一个是item-gat,在用户域中,一个用于捕获社交同质性的GAT主动汇总了反映用户偏好的相邻用户的嵌入,并且输出用户静态特征的embedding。 另一个GAT会捕捉社交影响力,目的在于卷积相邻用户的上下文相关的一些属性,它表征了user和候选item的相关性,并输出用户的动态偏好embedding。 在item域中,两个类似的GAT作为双重架构旨在模拟物品的静态和动态在项间同质和影响的影响下,在相关项目之间。 这种双重机制具有两个优点:i)捕获同质性和影响力的GAT可以利用以下优势,对两个社会效应进行协作建模全局和局部视图,以调查用户项交互;ii)项目域中的两个GAT合并了来自相关领域的信息项目,可以进一步缓解数据稀疏性问题
因为user和item静态特征(静态也可以换成动态)可以共同影响一个用户在某个item上的行为。而且这4种行为在不同的user-item对上还有不一样的权重,所以我们提出来一个策略,来动态给这4个行为进行加权。我们把这个问题看成是一个上下文问题,并且把加权问题看成是一个有条件的策略。然后我们的问题就变成了优化损失。在模型训练过程中,我们使用随机策略梯度来更新我们基于神经网络的策略单元,并设计一个局部图感知的正则化来减少计算成本。 为了验证我们的模型,我们对来自Epinions的一个基准数据集进行实验,以及来自WeChat Top Story的商业数据集进行试验。结果表明,DANSER的性能优于最新模型在明确的反馈意见下(MAE改善了2.9%)和隐式反馈(增加4.5%的AUC)。
我们的贡献可以总结成下面这几点
i)一般方面:我们区分社会同质性、影响性;考虑静态、动态影响的社会影响力概念。 我们将用户领域中的两种社交效应扩展到项目领域,因此在推荐者中研究了四种社交效应系统。 这些一般方面使模型可以捕获更多信息信息并提高其能力。
ii)新颖的方法:我们提出了 DANSER,具有两个双重GAT和一个政策单元。 我们是第一个在社交推荐任务使用GAT的人,双重GAT可以在用户和项目领域中共同对四个社交效果进行建模。政策单位基于上下文,动态权衡两个领域中社会效应的四个相互作用根据具体情况。
iii)多方面的实验:我们将DANSER部署到一个基准数据集和商业数据集。 实验结果证明了DANSER相对于最新技术的优越性,所提出组件的有效性以及它的优点对社会效应进行建模具有良好的可解释性。
2简单介绍和背景介绍
在这篇文章中,我们首先整理出来一个user-item的交互矩阵R = {rui}M*N,M和N分别是user和item的总数。对于一个有隐式反馈的推荐系统,R由0 1组成,1代表用户点击了item,0代表没点击。对于显示反馈的系统,rui就是u对i的打分了(取值范围是1~5,越大代表越满意,0代表没有打分)。
RI(u)代表u用户打分过的item集合,RU(i)代表对i这个item打分过的用户集合。
我们假设用户之间的友谊网络存在信任,是一个图GU = (Vu,Eu),Vu是所有的用户集合,Eu是所有用户之间的边。Fu代表u用户的邻居用户,我们建议将u v两个用户之间的交互频率e(uv)也作为一个特征,代表着两个用户的连接程度。
问题表述:社交推荐任务可以定义为下面这样,给交互关系R(user和item之间),再给社交关系GU,我们来寻找在R中还没有过交互的u i之间的可能交互程度,也就是预测u点击未点击过的i的概率(为了隐式反馈),或者是u对i的打分(为了显式反馈)
3方法论
我们首先介绍模型框架。 对于每个部分,我们开始从动机和直觉出发,然后介绍技术细节。 其次,我们提出一些训练技巧来改善模型性能。 最后,我们讨论在我们的模型中两个关键单元。
3.1 Model Framework
图2概述了DANSER。 我们将详细介绍每个部分的细节。
原始输入和item隐式网络。模型要求有两个原始输入:user-item的交互矩阵R、用户社交网络矩阵GU。社交推荐方法侧重于利用用户社交网络来解决推荐器系统中的数据稀疏性问题。大多数现有方法都独立推荐系统中的item,因为没有明确表示两者之间关系的先验信息。 一种计算两个item之间相似度或相关性 s(ij)的方法是:计算共同点击或评分这两个item的用户数量。这个因素给我们了一个评判两个Item是否相似很客观的解释:i与j,if s(ij)>τ,τ为固定阈值,就定义成相似。 我们将item之间的隐式关系定义成一个矩阵,GI =(VI,EI)VI是item集,EI是连接两个相关item的所有边的集合。
Embedding Layer
原始的用户或者item都是一种one-hot类型的表达方式,我们需要把这种方式变成低维表达。通过15 2这两篇文章的介绍,每一个用户都可以用下面两种方式进行表达:用户特征的embedding(user-specific-embedding)、用户评分过的item(item-based-user-embedding)可以记录用户历史交互过的item信息对当前决策的潜在影响。这2种embedding可以有效的解决“假负类”样本、提高模型准确率(假负类说的就是原本是正类,却被模型预测成负类。一旦有了这两种embedding,一个是用户兴趣,一个是用户的历史行为,结合起来就可以有效的避免这种情况)。同样的,item也可以像上面那样进行表达(item-specific-embedding、user-based-item-embedding)。
对于user-specific-embedding,我们定义了P={pu}D×M,D是嵌入维度,pu代表了用户u的embedding向量;对于item-based-user-embedding,我们先定义了一个embedding-lookup-table Y={yi}D*N,yi是item的潜在因子,也是一个向量,D维,用户评分过的item集合 RI(u)将会通过Y这个tabel一个个查出来向量,然后形成yu={yi | j∈RI(u)}【举个例子,假设用户评分过a b c这3个item,a b c分别取Y中查找embedding,都是D维,然后用某种方法,比如取mean,求得D维的embedding】。用户嵌入反映了用户的固有偏好(“固有”概念强调它不包含社交信息,仅取决于用户自己)。
类似的,对于item-specific-embedding,我们定义了Q = {qi }D×N,qi代表着item-i的向量;对于item-based-user-embedding,我们定义了X = {xu }D×M,xu是用户潜在因子,也是一个向量,D维,评分过这个item的用户集合RU(i)会通过X这个table一个个查出来向量,然后像上面一个输入item的向量:Xi = {xv |v ∈ RU (i)}。同样,这样做出来的item向量也只是item自身的信息,不掺杂社交信息
Dual GCN/GAT Layer
图卷积网络(GCN)[14]对图中的相邻节点进行局部卷积运算,并为每个节点输出新的表示形式,以便将图结构信息编码为低维节点表示形式。 这种操作可以看作是卷积神经网络(CNN)从网格结构到通用图的扩展。 GCN会在每个卷积中平均聚合邻居的embedding向量,并以同等重要性对待每个邻居节点。 相比之下,图注意力网络(GAT)[30]利用注意力机制来考虑来自相邻节点的不同权重,这使模型能够滤除噪声并关注重要的相邻节点。
为了利用用户社交网络GU和item直接的关系网络GI,我们提出了双图关注网络,即GCN / GAT的扩展,作为非线性聚合两个网络中邻居节点的嵌入的一种手段,从而产生了来自朋友和相关项目可以通过图传播到相邻节点。如第1节所述,我们可以区分社交推荐系统中user(item)的两种社交效果:同质效果和影响效果。 它们以不同的方式共同影响用户的偏好和项目属性。 DANSER 使用两个双重GAT来共同学习user静态/动态偏好和item静态/动态属性的不同深度表示。
I. GAT to capture social homophily (marked as blue in Fig. 2).
首先,通过用户嵌入,我们用P这个向量表示用户固有的偏好向量。然后,GCN / GAT操作可以通过以下方式输出用户的新的表示形式:用户静态偏好因子P∗
其中,σ, WP, bP分别是激活函数(估计是relu),权重矩阵,bias偏置项,P∗是用户更新后的表达。他通过从 GU(用户社交网络)中获得注意力权重
其中每一个元素是这样计算的
下面开始对上面的那些公式做下详细解释
首先还是从GAT的本来计算原理上做下解释,GAT主要分下面几步(假设只有一个特征通道),hi hj分别代表两个节点的特征向量,先利用下面公式计算出来一个关联度
||表示拼接,意思是每个节点的特征向量先乘以线性变换参数W,从F维度变成F’维度,然后拼接起来形成 2*F’ 的维度,再乘以前面的 aT 参数,得到一个数字
再用下面的softmax公式对关联度做归一化,得到注意力系数
再利用注意力系数对邻域节点进行有区别的信息聚合,完成图卷积操作
看完了计算GAT的方法,再看上面的利用社交矩阵实现GAT就比较容易了
1:首先看attention计算注意力系数
其中WE是权重矩阵。ΓU (u) = {u} ∪ F (u),F(u)是用户的临接矩阵,再和自身u求并集,也就是说计算注意力系数的时候,把自身也考虑到分母中。GAT中是通过softmax,论文中是直接求占比;GAT中求关联度是将两个node的特征向量合并在一起,再乘以个aT 参数,得到一个数字,论文中是
计算方式几乎一致,首先也是把两个user的向量先乘以线性变换参数Wp,从D维度变成F’维度,然后拼接起来形成 2*F’ 的维度;aT参数变成了前面的wUTz,其中的wU是一个权重向量,z是wE* e(uv),wE也是权重矩阵,e(uv)是两个用户某种连接关系的连接频率;然后再一点乘,就得到了一个数字,相当于GAT中的e(ij),这样就把社交关系e(uv)考虑进去了
2:上面只是计算两个用户的举例,所有用户都可以像上面一样计算,参数共享,最终得到
,就相当于是从用户社交矩阵中得到的注意力系数,因为用到了e(uv)
3:然后再对1公式进行解释
给定用户u v时,GAT权重保持不变,这意味着因子矩阵P∗对于用户是固定的。 这种设计符合直觉,即社会同质性有助于用户偏好的静态效果,这就是为什么我们将其称为静态偏好因子
II. GAT to capture social inuence (marked as yellow in Fig. 2)
与social homophily相反,社交影响效果通常是上下文感知的,并且该模型需要为 user 的不同候选 item 输出不同的注意力权重。 通过嵌入层,我们将Yu作为用户u单击的items的嵌入集合。 然后,我们让用户u点击的每个item都与候选item-i+进行交互
上面的点乘操作可以帮助模型将预估item与自己历史评分过的item结合起来,并在特定上下文建立动态的dynamic social inuence。 我们定义item-based user embedding
上面公式的做法是将预估item和用户点击过的item集合一起考虑,使用max-pooling,得到D维特征,其中每个mui+ 是用下面的方式进行产出:
这个很好理解,先解释每个变量意义:m(u)(i+)d 是m(u)(i+) 的第d维特征,y(i+)d是y(i+)的第d维特征 y(i+)是预估item-i+的embedding,y(j)d是y(j)的第d维特征 y(j)是用户u评分过的item集合中第j个的embedding。再看做法:分别把预估item-i+的embedding和用户u评分过的item集合 RI(u) 个每个item的embedding进行逐元素相乘,然后max-pooling(假设用户u评分过5个item,embedding维度是d,那么就得到5个d维的embedding,然后计算d维中每一维的最大值,作为最终的用户embedding,就相当于I中社交同质性中的Pu Pv)
为了定义用户动态属性因子 user dynamic preference factor M(i+)*,我们和I中一样,也是从用户的社交信息中进行聚合
v ∈ ΓU (u) v是用户u的邻居用户之一。从上面公式可以看出来,GAT的权重取决于用户历史评分过的item集合、候选集i+(这两个因素表示成上面的 M(i+)* )。这种设计符合直觉,即社交会有助于用户对上下文感知的效果,因此我们将其称为动态偏好因子
下面再对上面的公式进行下解释,权重的分子是这样计算的:uv两个用户的embedding先各自乘以Wm这个特征转换矩阵,从D维度变成F’维度,然后拼接起来形成 2*F’ 的维度,GAT中的aT参数变成了前面的wUT z,其中的wU是一个权重向量 T是转置,z是wE* e(uv),wE也是权重矩阵,e(uv)是两个用户某种连接关系的连接频率;然后再一点乘,就得到了一个数字,相当于GAT中的e(ij),这样就把社交关系e(uv)考虑进去了。用户u又有好多邻居(加上自身),求比例就能求出来用户u对每个邻居的一个偏重因子(即权重)
剩下的部分和I中一样
III. GAT to capture item-to-item homophily (marked as green in Fig. 2)
同样,我们使用embedding-Q来表示item的embedding(这个应该是预训练出来的),然后利用GAT来结合社交信息
不同于user 的social homophily中的计算GAT的权重方式
i j两个item的向量先都乘以 Wq这个权重,从D维度变成F’维度,然后拼接起来形成 2*F’ 的维度,再点乘wi这个权重矩阵得到一个数字,相当于GAT中的e(ij),再求下i这个item在所有邻居节点中所占权重就得到了gat中用到的权重。可以看到 item-to-item同质影响embedding是由item的基础属性决定的,所以我们可以称之为静态属性因子
IV. GAT to capture item-to-item inuence (marked as red in Fig. 2)
Item-item之间的影响因子取决于特定的目标用户。因此,我们需要对有相关关系的item产生不同的权重(产生这个权重需要利用到不同的目标用户)。和产生用户社交影响embedding一样,我们计算 user-based item表达的时候,也是需要同时使用目标user(u+)和评分过当前item的用户集合来进行计算
上面n(i)(u+)d,x(u+)d,x(v)d分别是n(i)(u+),x(u+),x(v)的第d维特征,x(u+)是目标用户u+的预训练embedding(或者说是静态特征得到的embedding,文中没有说明是怎么得到的),x(v)是评分过当前item的用户集合之一,n(i)(u+)就是结合目标用户u+和评分过目标item的用户集合的item-embeding
然后就是和上面III中一样的计算方法
Pairwise Neural Interaction Layer
因为用户的决定取决于:user喜好和item属性,我们可以用上面计算的4个因子(2个喜好因子、2个属性因子)来互相交叉以影响最终决策。我们参考[11]中提出来的idea,把4个结果分别输入到不同的神经网络中,编号 a ∈ {1, 2, 3, 4}
这个公式看着有点复杂。计算顺序是这样
首先按照z0的做法,把4个向量按照对应的顺序进行逐元素相加(但是看Figure2,首先是逐元素相乘,其次乘积项也和z0不一样,不知道该以哪个为准,论文怎么会出现这样的bug),逐元素处理过后,分别经过k个mlp层
Policy-Based Fusion Layer
接下来将前面4个相互作用的特征sa融合成一个特征。考虑到“同质、影响”会合起来对用户喜好和item属性共同影响,对应唯一的user集合和item集合来说,双重社会效应的重要性可能不同。为此,我们提出了一种新的基于策略的融合策略,可以根据特定的user\item来动态分配权重给四个交互的特征。
我们将权重分配建模为上下文multi-armed bandit 问题[1],其中用 γ∈{1、2、3、4}表示的动作指示要选择的特征。上下文是用户项目(user-item pair)对, 进行动作后的误差代表推荐损失。在这个问题中,随机策略可以写为条件概率 p(γ∣pu,qi),它可以表征给定预测user和预测item(u,i),该如何进行对4个特征确定权重。
为了使这个问题可解,我们把p(γ∣pu,qi)变成一个神经网络的近似问题(策略网络)
合成表示可以写成
我们称上述策略为单头策略网络。 受[29]的启发,我们可以将其扩展为mutli-head。 我们利用 L 个不同的独立策略网络,最终权重由每个策略网给出的平均权重给出。训练策略网络是由随机策略梯度进行,将会在3.2节进行解释
Output Layer
User-i点击item-i的概率可以用下面公式计算得到
在“隐示反馈”的场景中我们需要预测点击概率,nn()就是一个利用sigmoid激活函数的mlp网络。如果需要打分预测,nn()就是一个没有激活函数的mlp网络
Loss Function
Loss函数是用来评测预测值和真实值直接的gap。对于“隐示反馈”的场景,我们用下面公式
对于“显示反馈”场景,用下面
3.2 Training
在本小节中,我们介绍一些训练技术以提高模型性能。
Mini-Batch Training
我们使用mini-batch训练方式来计算梯度。对于每一次迭代,我们考虑B个user-item对。对于每个(u,i)对,用FU(u)来代表u的邻居节点,FI(i)来代表i的邻居节点,RI(v)来代表用户v点击过的item集合,RU(j)代表评分过item-j的user集合,这些都会一起输入到模型中来计算梯度。一旦一个epoch训练完毕,数据将会被打乱,以便在训练优化中抵消足够的噪声。在每个mini-batch中,因为每个user的邻居数(friends-num)不一样多,我们需要利用补0的方式来定义一个 以最大邻居数为维度的矩阵。邻居数据肯定是一个长尾分布,所以padding会导致空间和时间的复杂度,因此我们有一个采样机制:1) 对于那些邻居数超过F个的用户,我们统一采样F个邻居作为输入;2) 对于小于F个的,直接填0。我们还尝试了其他的采样办法,比如在一个node的子图周围进行有重启的随机游走(PWR)[28],但是我们发现在邻居节点上进行随机采样可以获得一种竞争的性能。这种现象可以从社会学研究中得到证明: 人们经常会受到社交环境中的其他用户的影响[7]。因此我们就采用了这种简单的做法来减少时间复杂度,在实验部分,我们将会判断F这个采样大小的性能影响。
Local-Graph Aware Regularization
常识知道正则化可以避免过拟合。在我们的模型中,我们使用L1正则来解决embedding参数稀疏问题,loss可以写成下面这样
但是这个loss计算起来有高复杂度,因为在每个batch中,我们需要计算所有users items的梯度。这样的方式不适合大数据。最近工作[43]提出mini-batch aware regularization的方法来解决这个问题,在每个batch的训练中,只有每个user-item对(u,i)的embedding参数会被用来计算正则损失。在我们的研究工作中,我们应用这种思路到图结构中,称之为local-graph aware regularization。在每个batch的训练中,我们限制user、item和他们的邻居节点 这些向量在隐示反馈网络中的参数。新的正则损失可以被写成
实际上,local-graph aware regularization是把每个batch的正则化的损失分成了很多小部分,并保证一旦一个epoch训练完毕,每一个user item都能均等的进行正则化。把上面两部分加起来,loss function是
其中λ是准确率和复杂度的折中参数。
除了上面的操作外,对于神经网络中的参数(权重矩阵、bias向量),我们会用dropout来代替传统的正则。我们未来实验中会探讨不同dropout概率对效果的影响程度。
Policy Gradient
在训练阶段,我们以随机方式训练策略网络。假设pL(γ∣pu,qi)为第L个策略网络给出的激活概率,并且随机变量 γ 服从多项式分布。对于每个策略网络,我们画出γ∼Multi(pL(γ∣pu,qi)),然后将sγ馈送到输出层,从而给出预测并返回损失。我们利用loss来训练策略网络。这个设计可以用actor-critic的术语来进行表达。
给定上下文环境(user-u item-,第L个策略网络需要利用策略pl(γ∣pu,qi)来给出一个结果每一个结果都会有一个loss,可以用来训练策略网络。我们将这个loss定义为减去所选交互特征后的lossL(sγ)是把sγ应用在输出层时的loss。我们旨在最大化上面计算的loss
策略梯度方法 REINFORCE [33]可用于更新一个策略网络中的参数(表示为 θ),并且梯度可得出如下:
Training Algorithm
DANSER的训练过程中,迭代的更新了策略网络和前馈网络(包括embedding训练、双图GAT、成对的神经网络交互、输出层)。这些过程都用下面的Alg1伪代码进行了实现,首先我们通过优化 (2)公式的损失,来更新np步前馈网络(迭代更新)。然后我们通过进行相应的策略梯度来独立地训练L个策略网络
Complexity Analysis
由于复杂度和可伸缩性是图算法的两个重要问题,因此我们计算下DANSER的复杂度。为了进行训练,我们需要批量更新一个batch中B个user-item对的所有friends-users和相关items,时间复杂度是O(BFCD),其中C是
ΓU (u) = {u} ∪ F (u) 用户u + 用户u的邻居节点;ΓI (i) :根据item之间的关系矩阵,得到i这个item的邻居节点 + 自身,所以C就是预估item user的最大邻居数。我们可以限制C在一个最大值Ct(Ct的取值可以从用户最近点击过的item数量进行得到)。F是我们采样函数中的friend-num。D是embedding维度。所以我们计算GAT的时候,复杂度就是O(BFCD)。因此,DANSER 可以线性缩放用户项目互动的数量。
3.3 Discussions
在这节中,我们讨论我们的关键单元的有效性,双图GAT层,还有策略单元,也是为了把DANSER的更多细节给展示出来。
Justication of Dual GATs
在训练截断,捕获同质效果的GAT。在训练过程中,捕获同质效果的GAT将为那些对商品的偏好在总体上与目标用户相似(用预测item、邻居用户的相关item进行对比,相似性怎么样)的用户上给予更大的权重,因此静态偏好(eg: 属性 )因子用于在全局捕获朋友用户的静态影响(eg: 相关的items) ,而且这些权重也因用户而异。动态偏好因子会从本地视图中捕获上下文的影响。在每个领域中,双重GAT起到双重效果的建模,并采用全局和局部视图来对不同的 user 和 item 以进行更准确的调查。
为了更形象一点,我们举了下面这个case来说明DANSER的有效性:为目标用户u+来推荐预估item-i+。i +和i1 i2相似(可以看图3的左右两边)。
假设u+只点击了过i1 i2,u+的朋友是u1 u4。之前的方式平均看待每个friends的影响效果。假设u1和u+点击过相同的item,u4没有,那么作为u+的朋友,u1的权重就要比u4大得多。u2和u3就一样大,但比u1 u4都小。所以静态权重不能区别对待u2 u3,即使知道i+和i1 i2相似 + u1点击过i1 + u2u3点击过i2。
在DANSER中,会有两个不同的attention权重,一个用于捕获user-specific-static-effect (for homophily),还有一个用于动态捕获上下文。当预估i+和i1(也和i2)相似时,用于捕获社交影响的GAT就会更在乎u1 u2(和i2相似时,就是u1 u3)。然后两个GAT一起就会在u2上与赋予更大的权重(和i2相似时,就是u3)。DANSER的全局和局部视图可以协同工作,以在特定上下文中选择与目标用户相似的“正确”邻居,从而提高模型的表达能力。在第4.5节中,我们将通过案例研究验证上述论点。
Justication of Policy-Based Fusion
基于策略的融合层在训练时就像一个随机网络,而 REINFORCE 算法可以帮助探索四个交互特征上的最佳权重分布。 由于具有大值的交互特征在训练中更容易被选择,因此提供“最佳”功能的交互神经层将更加频繁地被训练。 这种机制带来了两个主要好处。 首先,政策网络可以过滤“正确的”用户项样本,以训练相应的交互神经层以及以前的GCN / GAT和嵌入层。 其次,将随机模式引入训练过程,这可以帮助摆脱局部最优。与其他简单策略相比,我们在实验部分进行的消融研究也验证了基于策略的融合的优越性。
4 EXPERIMENTS
为了全面的测试我们的DANSER模型,我们在下面几个问题上进行了实验
RQ1:DANSER和现在最好的社交推荐模型相比,效果怎样
RQ2: DANSER中的关键组件(双重GAT和基于策略的融合)是否对提高性能来说,必不可少?
RQ3: DANSER中的超参数如何影响推荐性能?
RQ4: DANSER如何从现实数据中解释四种不同的社会影响?
4.1 Experiment Setup
4.1.1 数据集
我们将模型应用到一个用于社交推荐 Epinions 的公共基准数据集和一个商业数据集 WeChat Top Story 。 我们在表1中提供了这两个数据集的一些统计信息。关于这两个数据集的基本信息总结如下:
Epinions: Epinions是一个消费者评论网站,用户可以评估某些商品,并将其他用户添加到他的信任列表中。 Epinions 数据集[22]包含两部分信息:user-item交互对,其中item的评分大小为1到5(显式反馈),并且有用户之间的直接信任关系(可以看做社交属性)。 该数据集已被广泛用作社交推荐的实验集。 在进行其他工作[10、16、31、36]之后,我们为每个数据集随机选择80%的用户-项目交互作为训练集,其余20%作为测试集。WeChat: 我们还将模型部署在现实世界中的文章推荐系统 WeChat Top Story 上。 该数据集是用户在该平台上点击文章来构建的。 与 Epinions 不同,此数据集仅包含隐式反馈,即我们仅知道用户是否单击了文章。 此外,朋友关系是双向的。 我们按时间顺序排列 user-article,并使用前90%的记录来训练我们的模型,并使用其余的记录来评估预测性能。 由于正样本和负样本在此数据集中相当不平衡,因此我们统一对负样本进行采样,以使一个用户的正样本和负样本数量相同。
4.1.2 Implementation Details
我们使用 Tensorflow 来实现我们的模型,并将其部署在具有 8G 内存的GTX 1080 GPU上。 Epinions的超参数设置如下:批量大小 B = 64,嵌入尺寸 D = 10,dropout ratio τ = 0.5,正则化系数 λ= 0.001,采样大小 F = 30,截短长度 Ct = 30,multi_head L = 4,策略梯度的batch数量 np =1000。学习率 η= 0.1,ζ= 0.01。 The Leaky ReLu 斜率为0.2。 在成对交互神经层中,我们采用三层神经网络,神经元数为10 − 16 − 8 − 4。
4.1.3对比办法
在本节,说明了在社交推荐领域的几个好办法,这里我不做详细记录,可以从论文中得到(SVD++、DELF、TrustPro、TrustMF、TrustSVD、NSCR、SREPS)。
我们还构造了DANSER的几种变体进行研究(DualEMB, DualGCN, userGAT, and itemGAT)。
DualEMB:去掉了相邻节点上的卷积
DualGCN:把GAT变成GCN
userGAT:删除了item-GAT中的两个操作
itemGAT:删除了user-GAT中的两个操作
此外,为了评估基于策略的融合层的必要性,我们考虑以下变体。DANSER-m and DANSER-a分别用最大池化层、平均层来处理4个交互特征。DANSER-c把4个交互特征concat在一起作为输出层的输入数据。DANSER-w移除了策略网络,给与相同的权重,并且一起在前馈网络中进行更新权重
4.1.4 Evaluation Protocol
我们采用不同的指标来评估推荐效果。 由于两个数据集拥有不同的反馈,因此我们为它们考虑不同的指标。 对于具有明确反馈的 Epinions,我们将MAE和RMSE(在其他论文中经常被使用)用作评估指标。 对于具有隐式反馈的微信,我们使用Precision@k(简称P@ k)和 AUC,这是0-1分类的两个公认指标。 评估效果。 我们将每个实验重复十次,并报告平均效果。
4.2 Comparative Results: RQ1
我们在表2中报告了 DANSE 和其他方法的实验结果。我们可以看到,DANSER和其他办法比起来提升比较大,Epinions提升了2.87%的mae值,wechat提升了4.48%的auc。结果验证了所提出的社会推荐模型的优越性。在这些实验中我们也能发现一些端倪。首先像 TrustMF、TrustSVD 这类的矩阵因子方法可以在 Epinions 上取得很好的 acc,但是 wechat 就不行。第二,NSCR 比其他的线性模型表现的好得多,证明了神经网络方法在捕获非线性信息的优越性。第三,即使 DELF没有用到社交信息,他的表现也和用到了社交信息的TrustSVD NSCR 表现的一样好,这大概是出于两个 reason,user-item的embedding + 神经层的特征交互可以更好地表征 user-item直接的联系;其他用到社交信息的模型 TrustSVD NSCR 对社交信息用的不好。实际上,NSCR用到了图正则化,并已静态方式来约束邻居用户。这些设置都是基于之前的一个经验 - 用户朋友的想好都相似,但是显然不适合当前社交 SNS
4.3 Ablation Study: RQ2
为了验证模型中某些组件的有效性,我们做了些实验,实验结果写在了 table3。我们先把 DANSER 和 DaulEMB、DaulGCN进行对比。正如我们能看到的,GCNs可以捕获在图结构中隐藏的社交信息,并提升推荐准确率(相对DualEMB mae提升1.0%),而GAT可以通过区分朋友的重要性权重来进一步提高性能(约提高0.8%的实现)。然后我们对比了 DANSER和userGAT、iteGAT的区别,结果证明同时拥有user item的网络可以更好的提升性能,比单独使用user好多了
我们还单独验证了policy-based融合层的有效性。结果证明policy-based融合和策略梯度方法又可以提升一些准确率。对Epinions,提升是相当重要的。一个可能的原因是Epinions中的社交信息比wechat中更加异质性。所以对不同社交信息赋予不同的权重很重要。更重要的是,DualEMB可以看做DELF的扩展版,当我们把4个embedding进行concat的操作换成了我们的policy单元,就提升了很多的性能
在第一节中我们强调社交推荐要解决数据稀疏、冷启动这些大问题。我们看看DANSER对冷启动问题的效果。上面的图4展示了用户点击item数量不同、用户朋友数量不同时,几种模型的性能,我们展示了中位数,即75% 25%的MAE/AUC。
随着用户点击tem增加,上下限的差距变小,证明模型越来越好。通常,DANSER可以获得更好的方差性能等。
对于用户朋友数的增加,三种模型发生的性能改变是不一样的,DualEMB只改善了一点,DualGCN,性能有下降,DANSER变得更好。这大概是因为随着用户朋友数的增加,GCN会包含很多误导类信息,但是GAT会过滤掉噪声,并专注在重要的邻居朋友上
4.4 Parameter Sensitivity: RQ3
我们通过一些超参数来研究模型的性能变化,其中包括正则化参数 λ,dropout ρ,嵌入维数 D,采样大小 F.(其他超参数对模型性能影响不大,所以暂不探讨)。结果如图5所示,并给我们带来了启发。 i)正则化参数起着重要作用,如果参数太大,则该模型将无法专注于最小化推荐损失。 ii)如果dropout 率太大,则随机模式会阻碍训练。如果ρ太小,将失去正则化效果。 iii)需要适当的嵌入尺寸。如果它太小,则模型缺乏表达性;而如果它太大,则表示向量将变得如此稀疏,从而导致性能下降。 iv)随着样本数量的增加,准确性提高,但计算成本也随之增加。因此,适当的样本量可以在复杂性和准确性之间保持良好的平衡。
4.5 Case Study: RQ4
我们对四个 user-item 的案例进行了研究,并在图6中显示了四个GAT按节点大小给出的权重。我们可以看到,对于同一个user或item,两个homophily-GAT的权重保持不变,而两个influence-GAT对于不同的 user-item 对有所不同。此外,influence-GAT倾向于为具有相同 label 的节点分配更大的权重,这呼应了3.3节中的论点,即influence-GAT在特定情况下倾向于集中在相似的节点上。此外,policy权重在从四个GAT表示中选择最主要的交互特征方面也起到了作用。
更重要的是,我们可以通过两级图示来分解推荐系统中社会效应的模型可解释性:i)对于特定的user-item对(u,i),policy权重首先指示把用户域、item域中的社交影响进行组合,ii)四个社交效应的对应GAT进一步给出了给定项目i的每个朋友的影响程度以及给定用户u的每个相关项目的影响程度。