融合注意力机制的食谱推荐方法研究

2022-02-25 06:44黄文清李飞龙
软件导刊 2022年1期
关键词:异构食材注意力

董 浩,黄文清,李飞龙,江 山

(浙江理工大学信息学院,浙江 杭州 310000)

0 引言

随着移动互联网的菜谱分享、饮食点评及外卖等生活类服务普及,人们越来越倾向于接受推荐系统建议,在饮食推荐系统帮助下挑选感兴趣的食物[1],而病人也可以筛选适合自己病情的食物[2-3]。目前推荐系统应用主要集中在电商、电影等领域[4],推荐方法主要分为协同过滤法和基于内容的推荐两种[5]。协同过滤法收集用户与项目之间的交互,例如评分和购买等,再借此识别用户之间的相似度以确定推荐的项目列表;基于内容的推荐则是通过比较用户交互过的项目与其他项目的相似度来给出建议。但是传统的推荐方法无法直接应用在食谱推荐领域,主要原因是食谱不是原始的,同一种食物可能因为步骤、食材、分量等差别被定义为不同食谱,造成食谱种类激增,分布过于稀疏,导致推荐效果较差;另外,一个人的饮食偏好除了与食物有关,也与自身的特征有关,传统的推荐方法无法将这些信息融入模型中。

针对上述问题,研究人员融合了一些新的方法,如针对食谱稀疏问题,将用户与食谱的交互映射到用户与食谱的食材交互上,从而将食谱转化为食材、做法、分量等元素的组合,大大增强了交互数据的稠密度。也有一些研究利用用户特征给用户打标签,再将标签与食谱建立关联映射。然而,这些方法在利用用户与食谱交互时没有考虑不同交互类型间的关联,以及不同用户相似的交互行为之间的潜在联系。图1 为该示例演示,显然,不同用户查看和选择食谱这两种交互意味着不同等级的兴趣,应该被区别对待。同时,这两种交互也有内在联系,如果不能准确捕捉则会导致推荐系统精准度降低。

Fig.1 Examples of common user’s interaction with recipes图1 用户与食谱常见交互示例

本文提出一种注意力属性异构网络嵌入模型。该模型用异构网络表示用户与食物两种节点之间的交互,综合考虑节点特征、同一类型下不同节点的交互、同一节点上不同类型的交互,最后生成节点嵌入并利用相似度计算出推荐食谱列表。首先将用户与食谱的特征进行转换,对节点进行基础的嵌入表示,然后设计两种注意力机制分别学习不同交互对某一节点的影响:①特征注意力机制,学习同一类型的交互下相邻节点的特征相似度对中心节点的影响;②交互注意力机制,学习不同交互类型间相互作用的影响,最后组合成完整的节点嵌入。在优化上,本文采用基于meta-path 的随机游走算法对节点进行采样获得交互序列,再将交互序列作为训练样本输入异构skip-gram 模型进行训练。

(1)构建了一个注意力属性异构网络嵌入模型——

AAHNE(Attention Attributed Heterogeneous Network Embedding,AAHNE),该嵌入模型可以学习不同种类节点在不同交互类型中的嵌入表示,并利用这些嵌入表示在不同交互类型下生成推荐列表。

(2)提出一个基于注意力属性异构网络嵌入的食谱推荐方法。该方法全面集成了用户与食物组成的异构网络中提取的各种信息,以增强推荐性能,包括用户的身体信息、职业信息等用户特征,食物的食材种类、分量、做法等食物特征,以及用户与食物的交互记录。本文使用注意力机制来构建特征之间的相似度对用户兴趣的影响,以及不同交互类型之间的相互作用。

(3)使用下厨房数据集进行实验评估该方法的性能。实验结果表明,AAHNE 优于其他基准线方法。

1 相关工作

本文在异构网络嵌入模型和食谱推荐两个领域进行相关研究阐述。

1.1 异构网络嵌入模型

随着社交网络的发展,异构网络嵌入引起广泛关注。异构网络嵌入在保留网络拓扑结构和不同类型节点属性的同时,将网络中的节点使用低维向量表示。异构网络拥有不同类型的节点,节点之间也有不同类型的连接[6],这种网络可以很好地承接现实世界中的关系映射。因此,使用异构网络提高预测与推荐性能研究兴起。Shi 等[7]最先将异构网络引入推荐领域,采用基于元路径的相关性以捕获对象之间存在连通的可能性,实现了相同类型的相似对象与不同类型的相关对象推荐,但该方法并没有将相同类型与不同类型的情况整合;为了改进以这一点,Shi 等[8]在2019 年提出了HERec 模型,将节点的嵌入信息通过个性化线性融合和非线性融合转化为有用的信息用于提高推荐性能;Ji 等[9]提出通过异构网络建模,以更丰富地表达不同偏好类型间的潜在联系;Zheng 等[10]提出一种基于双重相似度正则化的方法来同时约束用户和物品;Yu 等[11]则在社交推荐领域提出了隐朋友概念,根据社交网络对不同用户的影响程度,将不同数量的相似用户合并为目标用户的隐朋友,改善了不可靠关系的不利影响。这些基于元路径的方法优点在于充分利用了异构网络结构,缺点是对新加入网络的节点缺少泛化能力。

与本文相似的研究是GATNE 方法[12],该方法引入节点属性来增强网络的泛化能力,对于还未出现在网络中的节点,如果存在已知的属性,便可根据属性特征生成特征嵌入而不是随机进行初始化。在生成节点的边嵌入时使用注意力机制,获取其他类型的边对目标类型边嵌入的影响。但是该方法与本文存在一些差异,主要体现在嵌入向量的生成方式不同。GATNE 生成节点在特定类型边上嵌入时,对于周边连接节点采用平均采样。由于不同类型的食材对于用户偏好的影响差异较大,所以本文采用注意力机制进行加权采样,如一个用户的嵌入偏向于川味的食谱,则川味食材对他的嵌入影响会更大,而杭帮菜的影响会更小。

1.2 食谱推荐方法

随着食谱和外卖网站的发展[13],食谱推荐系统受到持续关注。推荐系统任务分为项目排名和评分预测两种,其中项目排名是本文重点,即根据用户的特征信息与交互信息预测出一个可能感兴趣的推荐列表。

食谱推荐系统最常见的为协同过滤推荐[14-15],但通常面临数据稀疏问题,所以通常会将协同过滤和基于内容的过滤方法结合为混合过滤方法[16]。在此基础上,Ueda等[17]基于矩阵分解提出了一种学习用户食材偏好的推荐方法。其方法是将食谱分解为食材,根据用户对食材的喜好程度以及食材在食谱中出现的频率对食材进行加权评分,再将用户对食材的评分综合为对食谱的评分。该方法解决了食谱交互列表稀疏问题,但由于仅分解到食材层面,对于新的食材没有冷启动能力。

在此基础上,Mokdara 等[18]尝试进一步将食材的成分分解为特征,使用包含多层感知器的深度神经网络将食谱成分向量作为输入,从中提取特征并训练出向量模型,用以生成用户的偏好与标签,该模型还可以通过与用户的交互对模型进行迭代修正。该方法深入研究了食谱隐藏因素对用户偏好的影响,对于新的食材也可很好地做特征分解。

此前的研究仅停留在食谱层面,为了纳入更多影响因素,Gao 等[19]提出了HARF 模型,认为用户不仅受到食谱的食材影响,同样在意食物的做法、外形和口味等。该模型先对用户与食谱的交互、食谱的配方以及对食物图片的描述学习嵌入表示,再利用分层注意力机制对3 种嵌入进行联合建模。该模型尝试更全面地学习影响用户食物决策过程的关键因素,并取得很好的推荐结果。但是每种食物仅采用了单张图片进行描述,导致图片特征没有普适性。同时该方法没有利用不同用户间相似的交互行为,使得输入较为稀疏,同样没有考虑用户的信息特征。

现有的饮食推荐系统充分挖掘了食物本身的特征来增强推荐性能,将用户与食谱的交互进行建模,生成用户兴趣模型。但此类方法主要有以下两个问题:①没有综合考虑用户的属性信息对用户食谱偏好的影响;②没有整合交互网络中用户与项目之间的多类型关系。因此,要考虑这两点在食谱推荐中重要作用。

为了解决该问题,本文提出一种基于注意力属性异构网络嵌入的食谱推荐方法,该方法探索由用户和食谱组成的异构网络,从中整合出节点间交互与属性特征带来的连接与嵌入信息,以增强推荐性能。

2 问题描述

本文将一些与属性异构网络有关的定义形式化,并定义需要解决的目标问题。

2.1 网络定义

设G= (V,E,A)为属性异构网络,其中V为n 个节点的集合,每个节点vi∈V都与一个特征向量相关联。E=∪r∈R Er为所有边的集合,Er为所有类型为r的边的集合,每条边eij= (vi,vj)都与一个权重wij≥0 相关联,表明vi到vj的强度。A={xi|vi∈V}是所有节点的特征集,其中xi是节点vi的关联特征。最后,根据边类型将网络G 分割为子网Gr= (V,Er,A)。

2.2 问题描述

给定一个网络G= (V,E,A),本文的目标是学习一个映射函数f:vi→yi∈Rd,使得映射函数在不改变网络结构和节点属性的前提下,对每个节点vi∈V都可以用统一的低维空间向量表示,其中d<< ||V。

3 方法

本文提出的AAHNE 模型如图2 所示。首先构建一个带有属性的异构网络,该网络可以分割为不同子网,这些子网的每个节点代表用户和食谱,节点之间相连的边代表相互的交互记录;其次,本文提出一种基于注意力机制的网络嵌入方法来获得不同类型交互下节点的嵌入表示;最后使用异构Skip-Gram 模型对转换函数进行优化。

Fig.2 Model overall structure图2 模型整体结构

3.1 模型结构

属性异构注意力网络包括一个输入层、两个特征转换层、两个注意力机制层、一个融合层、一个输出层。在AAHNE 模型中存在多种类型的边,例如一个用户可能会选择浏览一个食谱后什么都不做,也可能直接选择购买或制作该食谱,不同的表现都会用不同类型的边进行记录,所以本文对每个节点在不同子网下都学习一种嵌入表示,其中同一子网下的不同节点之间会相互影响,不同子网下同一节点的表示也会相互作用。

用户喜欢的两种不同食谱之间存在关联,同一个用户在浏览食谱时的偏好也隐性表现了他的食谱选择倾向。

首先,将每个边类型r上的节点vi整体嵌入vi,r,分为基础嵌入bi、特征嵌入fi和边嵌入uir三部分,如式(1)所示:

其中,基础嵌入和特征嵌入在所有类型的边上共享。基础嵌入与节点在同构网络中的嵌入表示一样,由节点特征通过式(2)转换得到,是节点在网络中不区分边类型的整体表现。特征嵌入为节点的固有属性,具体指用户性别、年龄等,以及食谱的食材、烹饪方式等属性,节点的属性特征通过式(3)转换为特征嵌入。节点的特征嵌入优化了新加入网络时的冷启动能力。

其中,hz是线性转换函数,z=ϕ(i)是节点vi的边类型,基类嵌入在不同类型边中共享。βr是系数,Dz是节点vi在边r上的转换矩阵。

节点vi在边类型r上的边嵌入ui,r∈Rs通过聚合相邻节点的边嵌入得到,而初始的边嵌入是通过聚合邻居节点的特征向量得到的。

3.2 基于特征注意力机制的初始边嵌入

在网络嵌入模型中聚合通常采用mean aggregator 或pooling aggregators,但这种方式过于粗糙。因此,为了更好地学习不同邻居节点对于中心节点的影响,本文将注意力机制引入到聚合过程中。注意力机制的基本思想是让算法在处理问题时学会为不同的对象分配不同权重,即在考虑一个人选择食谱偏好时,浏览的偏好与选择的偏好做出的贡献权重并不相同。

对每一个中心节点vi,本文根据其邻居节点vj∈Nir的特征相似度生成不同的贡献度,再根据贡献度比值对邻居节点特征进行聚合,以生成初始边嵌入。为了更好地理解聚合过程,本文在图3 中给出了示例。对于中心节点v0,vj,j∈(1,2,3,4)为其边类型r1上的邻居节点,经过聚合后生成中心节点的初始边嵌入u0,1,其中邻居节点与中心节点相似度如下:

其中,W为特征转化矩阵,Wi是大小为da的共享权重矩阵。特别需要注意的是,节点vi与节点vj之间的相互重要性完全不同,这也使得注意力机制拥有非对称性。然后根据相似度计算边r上的邻居节点vjr∈Nir对中心节点vj的贡献度,并对贡献度使用softmax 函数进行归一化:

最后生成聚合后的边嵌入,其中Relu 为激活函数:

3.3 基于自注意力机制的边嵌入

初始边嵌入为中心节点vi在边类型r上的嵌入表现,这意味着它只能从一个方面反映节点特征,但在现实中,不同类型的交互行为会互相影响。例如,一个用户看了一堆食谱后选择其中一个,又因为接触了这个食谱后从而对同一类食谱产生兴趣。为了更加全面地学习不同边类型之间的作用,本文使用了自注意力机制对所有边类型上的边嵌入进行聚合。在获得不同边上的初始边嵌入uir后,通过式(7)将其拼接成矩阵Ui,其中m为边类型的数量。再通过式(8)的concat 方法和归一化,得到节点在边类型r下边嵌入的权重ai,r:

其中,wr,Wr分别是大小为da和da*s的边类型r上的全连接矩阵和权重矩阵。最终将3 种嵌入相加后,得到节点vi在边类型r上的整体嵌入Vi,r:

其中,αr表示边嵌入权重的超参数,Mr∈Rs*d是需要训练的转换矩阵,过程如图3 所示。

Fig.3 Attention-based node aggregation图3 基于注意力机制的节点聚合

3.4 模型优化

在建立了AAHNE 模型后,由于优化网络是异构的,所以本文采用基于异构meta-path 的随机游走对节点进行采样。给定一个视图r即网络Gr= (V,Er,A)和一个meta-path方 案T:V1→V2→… →Vt→… →Vl,其 中l为metapath 方案长度,第t 步的转移概率定义如下:

其中,vi∈Vt,Ni,r为节点vi在边类型r上的邻居节点集合,walker 按照预定义的meta-pathT进行游走。基于异构meta-path 的随机游走确保不同类型节点之间的语义关系能够正确地合并到跳跃图模型中。假设边类型r上长度为l的随机游走沿着路径P=(Vp1,…,Vpl)进行,并且有(vpt-1,vpt)∈Er(t= 2…l),表 明vpt的 上 下 文 为C={vpk|vpk∈P, ||k-t≤c,t≠k},其中c为窗口大小半径。因此,给定路径的节点vi及其上下文C,本文的目标是最小化以下负对数似然概率:

其中,θ代表所有参数。对于Pθ(vj|vi),本文采用异构softmax 函数进行归一化:

其中,vj∈Vt,ck是节点vk的上下文嵌入,Vi是边类型为r的节点vi的整体嵌入。最后采用如式(13)的异构负采样方法优化每对节点(vi,vj)的目标函数-logPθ(vj|vi):

其中,σ(x) = 1/(1+ exp(-x))是sigmoid 函数,L为正样本对应的负样本个数,vk是从节点vj对应节点集Vt上定义的噪声分布Pt(v)中随机抽取的对应节点集。

4 实验

4.1 数据集与预处理

由于缺少包含用户与食谱交互的公共数据集,而xiachufang.com 网站是国内最大的食谱分享网站之一,本文使用爬虫在xiachufang.com 网站上收集数据构建一个数据集。数据集详细构成如表1 所示,包含用户ID、用户性别、年龄、所处城市、职业、菜谱ID、菜谱的食材、烹饪方式、食材ID、用户对菜谱的收藏与烹饪记录等。进行用户特征处理,将各类属性分别做one-hot 编码,其中缺失的性别、城市、职业采用特殊值代替,缺失的年龄采用平均值补全。对于食谱特征,本文在处理前先对食材的别名等情况进行预处理,统一用相同食材代替,再对食谱的食材与烹饪方式分别做one-hot 编码处理。

Table 1 Dataset basic information表1 数据集基本信息

在评估时,采用60%的数据集作为训练集,30%作为验证集用于超参数调优,10%作为测试集用于性能评估。

4.2 基准线方法

为证明本文模型的有效性,将本文模型性能与如下模型进行比较,相关模型介绍如下:

MetaPath2vec[20]:一种基于深度游走的网络嵌入模型。由于该模型基于同构网络,本文在此忽略节点的异构属性,对全网络进行深度游走。

HERec:一种基于异构网络嵌入的推荐模型,采用类型约束策略过滤节点,并采用多种融合方法生成异构网络嵌入。

GATNE:一种多重异构网络嵌入模型,该模型使用基嵌入和边嵌入捕捉不同边类型之间的影响因素。同时考虑网络结构和节点属性,并学习归纳转换函数。

4.3 评估指标

本文采用链路预测任务进行离线实验。链路预测任务指通过已知网络的结构、节点等信息,预测网络中尚未连边的两个节点之间产生连接的可能性,在推荐领域广泛应用于评价网络嵌入的质量。本文在实验中使用ROC 曲线和PR 曲线下的面积以及F1-score 作为评价标准,这些指标广泛应用在模型的预测评价中。其中F1-score 的计算方式如下:

4.4 结果分析

4 种方法在下厨房数据集的实验结果如表(2)所示,从中可以看出本文提出的AAHNE 方法优于其他基准方法。MetaPath2vec 由于没有区分异构节点的性质与属性,表现最差。与之前最先进的算法结果相比,AAHNE 对新节点适应能力更强,ROC-AUC 性能提升2.5%,PR-AUC 性能提升2.8%,F1-score 性能提升2.3%。

Table 2 Experimental result表2 实验结果

收敛性分析:如图4 所示,AAHNE 相较于GATNE 模型收敛速度更快,且最终结果更佳。

Fig.4 Convergence performance of the model图4 模型的收敛性能

参数敏感性分析:本文研究了AAHNE 对于不同超参数的敏感性,包括整体嵌入维数、特征注意力向量维数和自注意力向量维数。图5 展示从默认设置开始改变超参数大小时AAHNE 的表现,从中可以看出,对于整体嵌入维数在较大范围内时,AAHNE 性能可以保持稳定;但当整体嵌入维数过大时,AAHNE 性能会下降。同样,保持整体嵌入维数为100 的情况下,特征注意力向量和自注意力向量的维数都不宜过大。

Fig.5 Hyperparametric sensitivity of the model图5 模型的超参数敏感度

5 结语

本文提出了一种基于注意力聚合的属性异构网络嵌入模型AAHNE,在食谱推荐中,对由用户与食谱组成的异构网络进行信息提取,建立节点嵌入的映射函数。模型的整体节点嵌入分为基础嵌入、特征嵌入、边嵌入3 个部分,其中基础嵌入和特征嵌入在全异构网络中共享,而边缘嵌入通过特征注意力机制对同一个边类型的邻边信息进行聚合,再通过自注意机制对不同邻边嵌入的相互影响进行建模。在下厨房的数据集上进行对比实验,结果显示本文提出的方法与以前的先进方法相比性能更好。

但本文提出的模型为静态模型,无法对用户的实时信息做出反应,如根据当天用户实时的能量消耗、所处的地理位置推荐出对应的食谱。后续将研究如何在动态属性节点构成的异构网络中实时生成食谱推荐。

猜你喜欢
异构食材注意力
巧用食材铺“地锦”
试论同课异构之“同”与“异”
让注意力“飞”回来
每天吃20种食材 可能吗?
“扬眼”APP:让注意力“变现”
异构醇醚在超浓缩洗衣液中的应用探索
overlay SDN实现异构兼容的关键技术
LTE异构网技术与组网研究
链农:搞定食材采购