图卷积注意网络与神经协同过滤

2022-04-06 06:15黄俊辉
黑龙江大学工程学报 2022年1期
关键词:向量注意力卷积

黄俊辉,杨 艳,b,*

(黑龙江大学 a.计算机科学技术学院;b.黑龙江省数据库与并行计算重点实验室,哈尔滨 150080)

0 引 言

目前,个性化的推荐系统借助多样化的信息平台,如电子商务、各种广告、社交媒体以及各种文娱平台等,便利着大众生活。基于协同过滤(Collaborative filtering,CF)的原理预测用户未来感兴趣的项目,一般是将用户和项目按照某种规则参数化,进而计算二者之间的相似性。

在推荐领域当中,从早期的基于矩阵分解的方法[1]到如今的基于深度学习的方法,所解决的核心问题一直都是如何获取用户与项目嵌入向量的高质量表示[2]。传统做法是将用户与项目的特征属性进行简单的编码,如采用ONE-HOT将用户与项目进行特征编码或者对用户与项目的交互矩阵进行矩阵分解得到用户与项目的隐式嵌入表示,进而进行预测。这些方法的局限性在于简单的编码形式对于用户与项目之间更细粒度下的相关性表达不够充分,最终影响推荐的效果。而基于神经网络的方法可以通过深度网络架构从简单的特征中逐层学习高阶的嵌入表示,并引入非线性特征,从而拓展了传统嵌入表示。但是一般的深度网络没有对用户和项目之间的显式CF信息进行建模,最终导致预测的性能不佳[3]。

近年来,图卷积神经网络在深度学习领域取得了极大的成果,同样在推荐领域有不俗的表现[4-5]。首先图卷积神经网络可以在图结构上学习到优秀的嵌入表示,其次在用户与项目的二部图上进行图卷积操作可以显式的建模二者之间的CF特征,从而提高推荐的性能。但是这类方法主要存在两个问题:①考虑各个节点影响力时没有考虑不同项目之间的差异性。受到注意力机制的启发,将注意力机制引入到传统的图卷积神经网络中改进推荐性能,并且和使用前馈网络生成权重的方法不同,通过采用经典的解码-编码模式的注意力机制[6],以求尽可能减少参数量。②在多次卷积传播的过程中用户与项目的嵌入表示会趋于一致,这样不同卷积层的结果差异性会减小。对于如何整合不同卷积层的结果,受到残差网络的启发,通过合理的设计聚合器聚合不同卷积层的结果可以解决这个问题。

为了解决现有模型的两个主要问题,提出了融合注意力机制和残差网络思想的基于注意力的神经协同图卷积模型(An attention recommendation model for graph convolution,GCA-NR),通过类比传统图卷积理论性的说明了GCA-NR卷积核设计的合理性,并且通过实验验证了GCA-NR在性能提升上的有效性。

1 相关工作

1.1 基于模型的CF方法

现代推荐系统是将用户和项目按照某种规则进行嵌入[7],并对他们的交互模式进行建模。对于此类方法,想要增强推荐效果最直观的想法就是整合一些辅助信息增强嵌入向量效果,如项目信息、用户信息、社会关系[8]以及外部知识图[9]等。这种改进思路取得了显著的效果,但是通过简单内积的方式建模交互模式不足以表现复杂的非线性关系。通过采用深度学习框架代替内积的方法可以建模交互模式中的复杂非线性关系,能够解决这个问题。

但是,这些方法都是通过嵌入函数获取嵌入向量,利用交互函数充当相似性的度量。根据CF原理,若所建模的交互函数尽可能的完美,应该可以捕获行为相似性的传递性。但是通过实践发现传统的方法所取得的嵌入向量在向量空间当中并不能很好的捕获这种传递性,即不能显式地对CF信号进行编码。

1.2 基于图的CF方法

基于图的CF方法是利用用户和项目的交互图来推断用户的偏好。在早期的研究当中采用过标签传递的方法捕获CF信息,具体做法是将用户所交互过的项目打上标签并在图结构上将这些标签进行传递。这类方法虽然可显式地捕获CF特征,但缺少用于优化目标的模型参数,因此在表现上和基于模型的方法相比略显不足,ItemRank[10]和BiRank[11]就是这类方法的典型代表。

针对上述问题,近年提出了一些新的方法,如HOP-Rec[12],将基于图的方法和基于嵌入的方法相结合,既可以显式的利用图结构捕获CF信息又可以通过嵌入的方法优化模型。首先执行随机游走,用以捕获丰富的CF信息即用户与邻居以及多跳邻居之间的交互数据,之后将丰富的交互数据以贝叶斯个性化排序[13](Bayesian personalized ranking,BPR)为目标进行优化。经过实验,发现和一般的基于模型和基于图的CF方法相比,HOP-Rec在性能上具有明显的优越性。但是,该方法并没有完全探索图中的高阶连通性即仅通过随机游走等方式丰富了数据信息而没有直接优化模型的嵌入方式;同时这种基于随机游走的方式使得模型性能受到随机游走因子的极大影响,这对优化工作也是一项极大的挑战。

1.3 基于图卷积神经网络的CF方法

针对探索图中高阶连通性的问题,现有的主流研究方法采用在用户与项目交互图上设计专门的卷积核进行图卷积运算,使得模型可以更好地挖掘图中的高阶连通性。

GC-MC[14]方法是在用户和项目交互图上进行图卷积运算的尝试,同传统的推荐算法相比具有不小的提升。由于只是用了一个卷积层,因此同样未能揭示高阶连通性。

PinSage[15]方法是一种工业解决方案,是在项目图中采用多个卷积图层进行操作。由于是在项目图中进行的图卷积,因而忽略了用户与项目的互动。

NGCF[16]方法是运用图卷积神经网络进行推荐的一个崭新的研究成果。该模型就是在用户与项目交互图上进行多层图卷积操作。根据实验效果,相比于之前的方法,该模型性能优秀,对图中的高阶连通性有很好的捕获效果。但该方法在处理不同的项目对用户的影响因子的问题上只采用了简单的根据出度和入度加权的方式,没有考虑到不同项目对用户影响力不同的问题,其次针对用户偏好的建模只采用点积的方式,不足以充分利用所捕获的丰富的高阶CF信息。

1.4 基于注意力机制的CF方法

注意力模型[17]现在已经成为了神经网络领域的一个重要概念。在自然语言处理、统计学习、语音识别等领域有着重要的运用。注意力机制可以通过人类视觉机制进行直观的解释:人类在观察图片信息的时候会给与图片不同的部分以不同的关注,类比到对于数据信息的处理当中,在一个序列预测模型中预测下一个元素,和前几个元素都正相关,但是前几个元素每一个对于贡献的占比是不一样的,这样可以为每一个元素分配不同比重的方法就是注意力机制。

在注意力模型当中,共有3个主要的模块:Query、Key、Value,见图1。使用注意力机制时首先确定Query和Key,再比较二者的相似性计算权重,最后将各部分信息同 Value一起进行加权整合。一般来说取Key=Value。

图1 注意力机制运作流程

注意力机制在推荐领域中也有丰富的运用,如DIN,该模型就是根据注意力机制在一个用户的行为序列上为该序列的每一个元素赋予不同的权重,再加权聚合每一个元素用以预测序列的下一个元素。

2 GCA-NR模型

GCA-NR的整体结构见图2。由图2可见,GCA-NR由3个组件组成:提供初始化用户和项目嵌入向量的嵌入层;运用图卷积在用户和项目交互图上提取高阶CF信息的用以优化嵌入的传播层;根据所得到的嵌入向量预测用户和项目偏好程度的预测层。

图2 GCA-NR模型结构图

2.1 嵌入层

根据现在主流的推荐模型,对用户与项目进行形式化表述,记用户x为ux,项目y为iy,用户x的嵌入向量为eux∈Rd,项目y的嵌入向量为eiy∈Rd,其中d是嵌入向量的维度,用户的嵌入矩阵为U,项目的嵌入矩阵为I。

用户与项目的嵌入矩阵,在一般的基于深度学习的方法中是直接将其输入到特征提取层或者预测层中。但是在基于图卷积神经网络的方法中,嵌入矩阵就是参数矩阵,需要经过图卷积层对这些嵌入进行优化,优化的方式是端到端的。

2.2 嵌入传播层

该模块的任务就是通过在用户与项目的交互图上进行图卷积操作获取最终的嵌入向量。

用户与项目的交互见图3,蓝色是用户节点,黄色是项目节点。

图3 用户和项目交互的二部图

2.2.1 引入注意力机制的卷积核

记存在一个用户x与项目y对(ux,iy)初次传播:

首先是特征信息提取:

mu←i=ρuieiy

(1)

其中,ρui为注意力系数,通过注意力机制获得

αui=f(eux,eiy)

(2)

其中,f采用欧式距离刻画eux,eiy之间的相似度,欧氏距离能够体现个体数值特征的绝对差异,可捕获一些更细粒度下的特征信息。

ρui=softmax(αui)

(3)

特征整合:

(4)

其中,W为权重矩阵,mu←u=eux,Nu为用户u的所有邻居,g为自行选用的激活函数,本文采用的是RELU 函数。

第l次传播:

每次卷积传播都要经历特征信息提取和整合的过程,特征信息提取:

(5)

特征整合:

(6)

通过上述公式,可获得每个用户节点初次传播和第l次传播后更新的特征向量,而项目节点的获取同理可得。因此,根据更新公式,每一次传播,把图中所有的节点都更新完毕,并且更新时各个节点之间相互不干扰,可采用并行操作。

2.2.2 卷积核的合理性

引入注意力机制后,模型可以捕获用户和项目与它们邻居节点之间的CF信号。

根据图卷积理论,图卷积神经网络(Graph convolutional neural network,GCNN)的卷积核的通式可以被表述为

Hl+1=G(Hl,A)

(7)

其中,Hl为第l次传播后节点的特征矩阵,特别的当l=0的时候,Hl=X表示初始化的节点特征矩阵,A为图结构的邻接矩阵,G为卷积核。可以根据不同的需要,设计成不同的函数,得到不同的图卷积模型。现代图卷积网络最常用的实现形式如下:

Hl+1=σ(LHlWl)

(8)

卷积核的节点形式可以表示为

(9)

mu←i=Δeiy

(10)

(11)

其中,Nu和Ni为用户u和项目i的一跳以内的邻居数量;mu←u为节点自身的特征向量。

在GCA-NR模型中,同样是将一个节点的所有邻居节点的特征加以整合激活,同时显式的引入了节点自身信息。但是在信息提取过程中没有采用和度相关的系数,之间采用了一个动态的注意力系数。

通过对引入SNL后的卷积核进行研究,发现系数的作用就是对邻接矩阵进行归一化。GCA-NR模型中的动态注意力系数能够完成这个任务。在图卷积中,规范化邻接矩阵的目的是为了平衡具有不同度的节点的影响力,而注意力机制可完成在动态下根据需要平衡不同度的节点的影响力的任务。因此在广义的角度,GCA-NR模型中的动态注意力系数解决了这个问题。同时传统卷积核仅在形式上的规范化是不合常理的:若是出入度越高,给予的修正惩罚越高,这是反逻辑的一种现象,因为越受欢迎的项目也大概率越容易被其他用户所接受,而兴趣广泛的用户也应该越容易接受新的项目。因此模型不但满足一个卷积核的理论需要,而且更具解释性。

2.3 预测层

经过上述的嵌入传播层,包括初次传播在内,假设模型进行了l次的传播,可得到除初始化外l个不同的嵌入向量。为了进行预测,需要整合这些不同的特征向量。理论上卷积传播的次数越多,嵌入向量包含的特征越有价值;在实践中,随着卷积传播次数的增加,嵌入向量的变化也越来越小。因此为了解决这种问题,保证嵌入表示的质量,通过采用以下聚合方式将所有的嵌入向量加以整合得到最终的嵌入向量:

(12)

其中,P为聚合器,采用的聚合方式:

(13)

其中,h为激活函数,采用的是tanh函数。

(14)

采用点积的方式预测评分:

(15)

与欧式距离相比,点积评测的方式更注重二者在抽象空间内角度的差异,而非注重在具体距离上的差异,这样使得模型更具鲁棒性。

2.4 优化器

学习并且优化模型的参数,采用BPR损失函数。因为GCA-NR不需要学习到每个用户具体的喜好,只需要GCA-NR可以在两个项目中为目标用户选择一个他所偏好的项目。具体来说模型为每一位用户区分他所交互过的项目和他所没有交互过的项目:

(16)

3 实 验

3.1 数据集介绍

测试模型性能的数据集是2个可以被公开访问的数据集:Gowalla[19],Amazon-book[20]。2个数据集的基本情况见表1。

表1 数据集介绍

Gowalla:从Gowalla获得的签到数据集,包含有用户及其签到的地点,特别的为了保证数据集的质量,同大多数推荐系统处理的一样,通过采用了10核设置优化数据集(10核设置[21]即保留与用户有10次交互的项目)。

Amazon-book:属于亚马逊在推荐系统领域被广泛使用的书籍推荐数据集,同样采用了10核设置。

数据集划分策略[22]如下:取数据集中80%的部分用作训练集,又从训练集中抽取15%的交互数据作为验证集测试超参数的性能。数据集其余的部分则用作测试集。

3.2 实验设置

3.2.1 评价指标

为了评估top@k推荐和偏好排名的有效性,采用了在推荐系统领域之中被广泛使用的两个指标recall@K,ndcg@K[23]。默认情况下将K取为20。

3.2.2 基线方法

MF:是基于模型的协同过滤方法最经典最基础的一个,采用奇异值分解(Singular value decomposition,SVD),求解矩阵分解(Matrix decomposition,MD),采用BPR损失函数优化参数。

NeuMF:加入了深度学习框架的CF模型,该模型将用户和项目嵌入接入多层前馈网络以提取非线性特征交互最终用以预测评分的模型。该模型中前馈网络层数采用了3层,每层的维度相同。

HOP-Rec:是基于图的模型中最经典的一个,通过随机游走获取图结构中的高阶交互信息,来补强用户和项目的特征,以达到提高推荐效果的目的。

GC-MC:是运用了图卷积神经网络的模型,是图卷积网络在推荐系统中的初次尝试,只采用了一层传播的图卷积网络,即只用来捕获了一阶邻居的信息。

NGCF:是最先进的运用了图卷积神经网络的模型,采用了多层传播的模式,可以更好地捕获图结构中所包含的CF信号,也是本文模型重点的比较对象。

3.2.3 实验设置

在Tensorflow中实现了GCA-NR模型,并使用Xavier初始化程序来初始化模型参数,对除了HOP-Rec以外的模型使用Adam优化器优化。

将嵌入向量维度统一设置为64,将批大小统一设置为1 024。

对于超参数,将学习率分别设置在0.000 1,0.000 5和0.001;将L2范数的归一化系数分别设置在0.000 01,0.000 1,0.001,0.01。

对于HOP-Rec模型,将随机游走的参数分别设置为1,2,3。

对于GC-MC、NGCF和GCA-NR采用了dropout技术,丢失系数分别设置为了0.1,0.2,0.4,0.6。

进行性能比较,将NGCF和GCA-NR的传播深度都固定为了3层。

3.3 实验效果展示

进行了2个实验:①将GCA-NR同其他模型进行性能比对,用以证明GCA-NR的有效性;②超参数实验,测试在不同超参数下GCA-NR的表现能力的规律,从而确定最佳超参数。

3.3.1 GCA-NR的有效性

传统方法和基于神经网络的方法相比差距明显,而引入图结构信息后的推荐模型性能的改进也更明显,结果见表2。GCA-NR相较于现有的基于图卷积网络的模型性能具有一定的改善,但是改善的幅度并不是很明显,一部分原因来自于设备受限,另一部分则是基于注意力机制的卷积核的设计。

表2 模型性能实验

3.3.2 超参数实验

在图卷积网络当中,传播层数是对性能影响最大的一个参数,因此实验着重对传播层数进行了测试,结果见表3。由表3可见,随着层数的增加网络的性能有较为明显的改善,但是同样的随着网络层数的增加,模型的复杂度也有明显的上升。因此综合考虑,建议采用3层作为最佳层数进行实践。

经过实验,展现并测试了GCA-NR模型的性能效果。

4 结 论

通过总结基于模型的CF推荐算法的发展历史,以及图卷积在基于模型的CF算法中的优良表现,将编码-解码形式的注意力机制引入模型,创新了传统的卷积核,并且说明了这种卷积核的合理性,提高了模型捕获CF信号的能力,增强了推荐效果;又通过基于神经网络和残差思想的聚合器,更全面地获取到每一次卷积传播中有价值的特征。

尝试将序列信息引入传统的用户和项目交互的二部图中,采用自注意力机制和注意力机制相结合的方法,增强在整体兴趣和短期兴趣的捕获能力;尝试将胶囊网络和记忆网络运用到高低阶特征交互信息的融合上以追求性能的提高。

猜你喜欢
向量注意力卷积
向量的分解
让注意力“飞”回来
基于3D-Winograd的快速卷积算法设计及FPGA实现
聚焦“向量与三角”创新题
如何培养一年级学生的注意力
卷积神经网络的分析与设计
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
A Beautiful Way Of Looking At Things
向量垂直在解析几何中的应用