图神经网络(六)GNN的应用简介(2)3D视觉

6.2 GNN的应用案例

 本节将从3D视觉、基于社交网络的推荐系统、视觉推理3个方面介绍GNN的应用案例,希望借由这3个应用场景能够为大家深入而具体地展示GNN的技术特点及优势 [0]

6.2.1 3D视觉

 继卷积神经网络在2D视觉上获得前所未有的成功之后,近几年,如何让计算机理解3D世界,特别是如何延续深度学习技术在3D视觉问题上的表现受到了越来越多的研究人员的关注。3D视觉数据的表示方法有多种,如 点云(Point Cloud)、网格(Mesh)等。每种类型的数据都有其自身的结构特性,这些结构特性给深度模型的架构设计带来了挑战。本节我们来介绍其中最具代表性的点云数据的学习。点云数据是一种有效的三维物体的表示方法,它随着深度感知技术,比如微软的Kinect以及激光探测与测量技术的发展而流行起来。点云数据由一组点组成,每个点都记录有三维坐标 ( x , y , z ) (x,y,z) (x,y,z) ,除此之外,还可以记录采集点的颜色、强度等其他丰富的信息,因此,高精度的点云数据可以很好地还原现实世界,被广泛应用于无人驾驶、体感游戏、文化数字遗产保护、医疗、城市规划、农林业等各个领域。

 对点云数据的理解包含几个关键步骤,即点云分类、点云语义分割、点云场景分析。点云分类很好理解,即给定一组点云,计算机需要识别这组点云到底描绘的是什么物体,是台灯、桌子还是椅子?点云语义分割就要求理解得更细致,比如桌子由哪些部分构成,如何分割出桌面、桌腿等,如图6-1所示。


图6-1 点云分割示意图 [8]

 点云场景分析需要更进一步的学习和分析,给定一个场景,比如某个房间内的点云数据,如何自动识别或匹配出墙面、灯、桌子、椅子、窗户等不同物体,甚至进一步通过这些物体摆放的空间位置,推断出这个房间到底是办公室还是教室。

 在GNN被应用到点云数据处理之前,一种解决思路是将点云强制表示为体元(voxel),这样就得到与体相类似的一种三维规则结构,以便进行卷积和池化操作。但这种处理方式会使得数据量剧增,并且会产生很大的冗余,计算开销非常大。另一种解决思路是将点云转换为 多视觉图(Multi-view Images),即一组虚拟的二维快照,生成RGB和包含几何特征的合成视图,然后在图像处理完毕后再将其语义分段投影回原始的点云数据 [9] 。这种方法并不能捕捉3D点云的内在结构,因而识别性能有限。实际上,这两种曲线救国的方法都会造成信息的丢失或者数据的冗余,且转换过程复杂度高,对于大规模的点云数据处理和点云理解都无法适应。

 图卷积技术的发展极大地推动了点云的处理方法的进步,人们提出了很多基于GNN的方法,在点云分类、分割等问题上展现了优异的性能。这里以近年来提出的典型GNN模型为例,阐述GNN技术在应用于点云这种非结构化数据时的关键步骤。

 点云数据中的点是离散存在的,点与点间的距离d是确定点彼此之间关系的基础。基于点坐标 ( x , y , z ) (x,y,z) (x,y,z) 的欧式空间距离是一种常见的选择;其他非欧式空间的距离选择如测地(geodesic)距离、形状感知距离等,可以很好地处理非刚性特征,也被很多研究者应用,如Charles R.Qi等人(2017)提出的PointNet++算法 [10]

 有了距离即可确定点与点之间的邻接关系。如何将距离转化成邻接关系,成为运用GNN技术的一个关键点。通常我们需要定义邻域,每个点都与其邻域范围内的点相连,而与邻域以外的点无邻接关系。邻域范围可以根据K最近邻法(K nearest neighbor)确定,也可以根据球查询(落某半径范围的球状区域内的所有点)确定。值得注意的是,点之间的邻接关系在每一层的图中并不是固定不变的。PointNet++算法中采用了每一层固定邻域点进行卷积操作的策略,而在Edge-Conv的算法 [11] 中,每一层中的图都可以动态地调整图中节点之间的邻接关系,K邻域内的点随着网络的更新发生变化,这样就能自适应地捕捉和更新点云的局部几何特征,在点云分类和分割中取得很好的效果。

 邻接关系确定后的另一个关键步骤是基于邻接边的卷积该如何实现。如图6-2所示,定义 e i j = h Θ ( x i , x j ) e_{ij}=h_Θ(\boldsymbol{x}_i,\boldsymbol{x}_j) eij=hΘ(xi,xj) 为点 v i v_i vi 和点 v j v_j vj 间的边,其中 h Θ h_Θ hΘ 为含有可学习参数 Θ Θ Θ 的非线性函数。


图6-2 边卷积示意图

 以节点 v i v_i vi 为中心的卷积计算如下式所示:
x i ′ = Agg x j ∈ N ( x i ) ⁡ h Θ ( x i , x j ) \boldsymbol{x}_i'=\underset{\boldsymbol{x}_j∈N(\boldsymbol{x}_i)}\text{Agg}⁡h_Θ (\boldsymbol{x}_i,\boldsymbol{x}_j) xi=xjN(xi)AgghΘ(xi,xj)
 PointNet++和Atzmon等(2018)提出的PCNN方法 [12] 采用 h Θ ( x i , x j ) = h Θ ( x j ) h_Θ (\boldsymbol{x}_i,\boldsymbol{x}_j )=h_Θ (\boldsymbol{x}_j) hΘ(xi,xj)=hΘ(xj) 的方式,即卷积值通过对邻居进行聚合得到。若以 Θ = ( θ 1 , … , θ m ) Θ=(θ_1,\dots,θ_m) Θ=(θ1,,θm) 表示卷积滤波矩阵的权值,以 PCNN \text{PCNN} PCNN 算法为例,卷积的计算如下式所示:
x i m ′ = ∑ h θ i ( x j ) g ( d ( x i , x j ) ) \boldsymbol{x}_{im}'=∑{h_{θ_i}}(\boldsymbol{x}_j)g(d(\boldsymbol{x}_i,\boldsymbol{x}_j)) xim=hθi(xj)g(d(xi,xj)) 其中, g g g 表示高斯核函数, d ( x i , x j ) d(\boldsymbol{x}_i,\boldsymbol{x}_j) d(xi,xj) 表示点 v i v_i vi v j v_j vj 之间的距离,与节点的特征相关。而 Edge-Conv算法 中采用的则是非对称方程:
h Θ ( x i , x j ) = h ˉ Θ ( x i , x j − x i ) h_Θ (\boldsymbol{x}_i,\boldsymbol{x}_j )=\bar{h}_Θ (\boldsymbol{x}_i,\boldsymbol{x}_j-\boldsymbol{x}_i ) hΘ(xi,xj)=hˉΘ(xi,xjxi)

 可以看到点云数据中的卷积定义与 GNN \text{GNN} GNN 如出一辙。通常来说,模型的输入是点云数据的三维坐标值 ( x , y , z ) (x,y,z) (x,y,z) ,因此输入矩阵是 N × 3 N×3 N×3 N N N 表示点云的个数(用户可以根据需要增加其他属性信息)。对于点云分类而言,重点是识别整个数据集属于什么类别,因此输出值是关于类别的标签,属于图层面的输出。假设判定集有 K K K 个类别,那么输出为 K K K 维的打分向量。对于点云分割而言,需要知道每个点云属于哪一部分,假设 P P P 为物体子部位的数目,则模型输出为 N × P N×P N×P 维的打分矩阵,属于节点层面的输出。点云分类侧重于学习数据集的全局特征,而点云分割除了学习全局特征以外,还需要结合局部几何特征共同得到。因此在分割中,点云网络中局部关系(邻接关系)的定义显得更为重要。我们可以看到,通过不同的卷积策略和模型架构,给予图的深度学习方法为点云这样一种比图像更复杂的数据格式的处理和分析提供了高效的解决方案。

6.2.1参考文献

[8] Te G,Hu W,Zheng A,et al.Rgcnn:Regularized graph cnn for point cloud segmentation[C]//2018 ACM Multimedia Conference on Multimedia Conference.ACM,2018:746-754.

[9] Boulch A,Le Saux B,Audebert N.Unstructured Point Cloud Semantic Labeling Using Deep Segmentation Networks[J].3DOR,2017,2:7.

[10] Qi C R,Yi L,Su H,et al.Pointnet++:Deep hierarchical feature learning on point sets in a metric space[C]//Advances in neural information processing systems.2017:5099-5108.

[11] Wang Y,Sun Y,Liu Z,et al.Dynamic graph cnn for learning on point clouds[J].arXiv preprint arXiv:1801.07829,2018.

[12] Atzmon M,Maron H,Lipman Y.Point convolutional neural networks by extension operators[J].arXiv preprint arXiv:1803.10091,2018.



6.2.2 基于社交网络的推荐系统

 登录在线社区,如微博、微信、豆瓣、大众点评等网站,已经成为现代人日常生活中重要的一部分。在这些网络平台上用户可以查看或发布资讯、关注好友、评论感兴趣的文章等。为用户推荐其感兴趣的内容,一方面可以增加网站的活跃度,另一方面也可以帮助用户发现其潜在关注信息、增强用户黏度,当然基于用户特征进行广告推荐也是网站重要的盈利方式之一。因此,建立有效的推荐模型对于社交网站的运营和发展十分重要。

 有别于其他场景下的推荐应用,在线社区由于存在显式的用户社交网络信息,如何将这部分信息编码进推荐系统是一个十分关键的问题。总的来说,在线社区的推荐系统建模有以下几个难点:

 (1)用户兴趣有长期兴趣和短期兴趣之分。短期兴趣本身是动态变化的,用户可能前一段时间沉迷于明星的八卦新闻,过一段时间之后可能又对文学或是电影兴趣盎然。

 (2)用户会受到其在线社交圈中的朋友的影响(为简化表达,这里把用户在社交网络中建立了社交关系(如关注)的人统称为“朋友”)。如果用户 A A A 的朋友是体育迷,经常发布关于体育赛事、体育明星等的信息,用户A很可能也会去了解相关体育主题的资讯。

 (3)社交网络对用户兴趣的影响并非固定或恒定的,而是根据 用户处境(context)动态变化的。举例来说,用户在听音乐时更容易受平时爱好音乐的朋友的影响,在购买电子产品时更容易受电子发烧友朋友的影响。

 下面以文献 [13] 提出的 DGR EC \text{DGR}_\text{EC} DGREC 模型为例,阐述其如何融合社交网络信息从而搭建推荐系统。如图6-3所示,该方法由 4 4 4 个部分构成:


图6-3 DGR EC \text{DGR}_\text{EC} DGREC 模型 [1]

 (1)一个循环神经网络RNN——用来建模用户的动态兴趣偏好。动态兴趣偏好可以从用户在 当前会话(session)中已消费的 项目(item)序列 中获取。比如,当用户再一次会话中接连购买了靴子、外套等商品,那么明显用户此时的购物偏好为衣物类型,这种动态的兴趣偏好会极大地影响用户下一次的消费行为。

 (2)用户朋友的兴趣偏好通过其长期兴趣偏好与短期兴趣偏好组合而成。长期兴趣爱好反映了一个用户稳定的兴趣所在,可以通过对用户进行嵌入方式来表示;短期兴趣爱好则反映了一个用户在近期(一个或多个会话中)的兴趣漂移,可以使用RNN建模近期消费的项目序列来表示。

 (3)一个图注意力网络 GAT \text{GAT} GAT ——用来建模用户的动态兴趣偏好与朋友的兴趣偏好的交互模式,这是该方法最为关键的一个部分,自适应地学习出了社交网络对用户消费行为的影响的表示向量。上面提到过,用户实际的消费行为不仅受到朋友的影响,还依据用户处境受到不同朋友不同权重的影响。因此,使用一个基于注意力机制的GAT模型,可以很好地捕捉上述两层影响因素,对社交网络信息做到一种适应的刻画。

 (4)用户下一步的消费行为由用户动态兴趣偏好与社交网络影响两部分信息综合决定。通过对(1)、(3)两个部分的输出进行组合从而得到用户的表示,然后和其他的推荐方法一样,由用户-项目对的信息进行DGR_EC模型的端对端训练。在本文的实验部分,作者将 DGR EC \text{DGR}_\text{EC} DGREC 模型在豆瓣 [2]、Delicious [3]、Yelp [4] 等网络平台的数据集上进行实验,均取得了当下最好效果。同时作者也设计实验证明了GAT对于效果提升的必要性。

 值得一提的是,有研究者指出,不仅用户之间的关系在推荐效果中起着较大作用,被推荐项目之间的关系 同样有影响。例如,外套和鞋子之间的关系就比外套和花盆之间的关系更强,这种项目之间的内在关系也对用户消费行为的推荐起作用。基于此,文献 [14] 提出用双图注意力网络模型来同时建模用户与用户、项目与项目之间的双重网络效应,以此捕捉更加全面的关系信息从而提升推荐系统的效果。

6.2.2参考文献

[1] Song W , Xiao Z , Wang Y , et al.Session-based social recommendation via dynamic graph attention networks[C]//Proceedings of the Twelfth ACM International Conference on Web Search and Data Mining.ACM,2019:555-563.

[2] https://www.douban.com/

[3] https://grouplens.org/datasets/hetrec-2011/

[4] https://www.yelp.com/dataset

[13] Song W,Xiao Z,Wang Y,et al.Session-based social recommendation via dynamic graph attention networks[C]//Proceedings of the Twelfth ACM International Conference on Web Search and Data Mining.ACM,2019:555-563.

[14] Wu Q,Zhang H,Gao X,et al.Dual Graph Attention Networks for Deep Latent Representation of Multifaceted Social Effects in Recommender Systems[C]//The World Wide Web Conference.ACM,2019:2091-2102.



6.2.3 视觉推理

 推理是人类具有的高阶能力,是人类智能中很重要的部分,如何让计算机拥有推理能力是人工智能领域的一项重要课题。

 以视觉领域为例,尽管卷积神经网络等模型取得了极大的成功,但是仍不具备复杂推理的能力,比如图6-4中,需要判断蓝色方块的目标是什么,人类在看到这幅图像的时候,根据图中的棒球棒、任务的姿态,首先会得出这张图在描述打棒球的结论,然后以此为依据,对于蓝色的目标区域,根据这个人的姿态和手部姿态判断出他是处于接棒球的状态,因此可以推断出蓝色区域为棒球手套。而使用基于卷积网络的方法进行识别,除了在更大的感知野内获得的层次化特征之外,无法通过图像的语义信息来准确推理出蓝色区域的目标。


图6-4 蓝色框内的目标是什么?[1]

 文献 [15] 为了解决上述局限,提出了一个融合了空间信息和语义信息的迭代式视觉推理系统。整个系统有两个模块,一个是在卷积网络的基础上引入了记忆机制的局部推理模块;另一个是融合了空间和语义信息的全局推理模块。整体的推理框架如图6-5所示。


图6-5 推理框架结构图 [2]

 局部推理模块记忆模块S作为输入进行预测,其中记忆模块S用来存储通过卷积网络提取的目标区域的位置特征和图像特征。

 全局推理模块主要基于空间特征和语义特征进行推理。空间指的是建立位置上不相邻区域的联系;语义指的是利用外部的知识库建立类别与类别之间的联系。为了综合利用这两个方面的信息,采用 GNN \text{GNN} GNN 作为推理模块。图的构成使用了两种类型的节点,一个是由所有的区域组成的区域节点;另一种是以所有区域对应的实体作为节点。节点与节点之间的边通过如下3种关系建立,第一种是区域与区域之间通过它们的距离关系进行关联,边的权重由像素距离的核函数归一化值决定;另外对于有重叠的区域,通过一个特殊值建立它们之间的关系。第二种是区域与实体之间的关系,根据对区域预测的概率分布( softmax \text{softmax} softmax 输出),建立与实体之间的关系,边的权重为对应的概率值。第三种是实体与实体之间的关系,这个关系来自外部的知识图谱,可以将多种实体关系考虑进来,比如类别从属关系、部件从属关系(腿和椅子)、单复数关系、水平对称关系等。

 以上面构建的图为基础,使用 GNN \text{GNN} GNN 来进行推理,区域节点的特征来自卷积网络,实体节点的特征来自预训练的词向量。 GNN \text{GNN} GNN 推理是为了融合空间信息和语义信息对区域进行推理,因此使用了两条推理路径。一条是 区域-区域,它聚合多个区域的特征以得到空间特征;另一条是 区域-实体-实体,它分为两步,先将区域的特征聚合得到实体的特征,这对应着语义关系。为了得到区域的最终特征,通过 实体-区域 的关系,将实体携带的语义特征聚合到区域节点上,并与第一条推理路径中得到的空间特征进行融合。整个过程如图6-6所示。


图6-6 全局推理模块示意图 [3]

 推理通常不是一步到位的,而是迭代式的。为了将前一轮的信息传递到后一轮,可以使用记忆模块,局部推理和全局推理使用不同的记忆模块 S S S M M M,每次迭代得到的输出用于更新记忆模块。另外,模型还引入了注意力机制,以便融合当前预测值与来自其他迭代过程产生的预测值。模型在不同的训练数据集上进行试验,将识别效果对比卷积神经网络提升了 3.7 % ∼ 8.4 % 3.7\%\sim 8.4\% 3.7%8.4%

6.2.3参考文献

[0] 刘忠雨, 李彦霖, 周洋.《深入浅出图神经网络: GNN原理解析》.机械工业出版社.

[1] 图片来源: https://es.calcuworld.com/cuantos/cuanto-duraun-partido-de-beisbol/

[2] Chen X , Li L J , Fei-Fei L , et al.Iterative visual reasoning beyond convolutions[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition.2018:7239-7248.

[3] Chen X , Li L J , Fei-Fei L , et al.Iterative visual reasoning beyond convolutions[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition.2018:7239-7248.

[15] Chen X,Li L J,Fei-Fei L,et al.Iterative visual reasoning beyond convolutions[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition.2018:7239-7248.

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值