中文标题:使用图神经网络学习UI的相似度
发表会议:ECCV 2020
文章链接:Learning Structural Similarity of User Interface Layouts using Graph Networks
源代码:gcn-cnn
1 Introduction
1.1问题陈述 :
布局是用户体验(UX)设计的基础,其中用户界面组件的排列构成了交互式应用程序的蓝图。大量的UX布局存储库在网上公开共享。轻松搜索这些存储库的能力提供了发现和重新使用布局的机会,从而使对设计专业知识的访问更加便利。
1.2 解决办法:
本文提供了一种新颖的技术,用于可视化地搜索用户体验设计,它利用基于图的表示形式将界面组件的属性及其空间关系集成在一起。 作者提出了一种三元组体系结构,以利用此表示法,利用结合了图卷积网络(GCN)编码器和卷积网络(CNN)解码器的混合编码器-解码器来学习度量搜索嵌入的布局相似性。
2 Methodology
所提出的GCN-CNN框架的体系结构如图1所示。它由三元组架构(暹罗语)构成,该架构将输入UI布局编码到潜在空间中的基于图的编码器,以及重构多帧的转置卷积解码器布局的多通道栅格渲染。我们的网络使用双重损失进行训练:
Ltotal=x∈{a,p,n}∑Lrec(x,x′)+λLtri(a,p,n)
其中,(a,p,n)是UI布局三元组,包含锚点,正向和负向。Lrec(x,x′)是重构损失,可用于以无监督方式训练GCN-CNN。Ltri(a,p,n)是三元组损失。
![【论文笔记】Learning Structural Similarity of User Interface Layouts using Graph Networks 【论文笔记】Learning Structural Similarity of User Interface Layouts using Graph Networks](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzUyMC9kMDQ0NjhlNDE1ZTZlZWRkYjY4ZjkxM2U5Y2I5NWMyMC5wbmc=)
2.1 Graph representation
作者使用UI组件及其几何属性描述UI布局。将高度为h宽度为w的布局表示为一张空间图G=(V,E),其中V={c1,⋯,ci,⋯,cκ}是节点,表示的是κ个UI组件,E={e11,⋯,eij,⋯eκκ}是边,表示UI组件之间的关系。每个节点包含了两种信息:1)语义属性si,一个使用one-hot向量表示的UI组件的类型;2)几何属性gi,编码UI组件的空间位置。
将(xi,yi)作为布局的形心,(wi,hi)为UI组件ci的宽度和高度,Ai=wihi,几何属性gi的计算方法为:
gi=[wxi,hyi,wwi,hhi,whAi]
边的特征rij,通过边eij和它关联的两个节点ci和cj计算得到:
rij=[ψij,θij,AiΔx,AiΔy,wiwj,hihj,D1Δx2+Δy2]
其中,Δx=xj−xi 和 Δy=yj−yi表示两个节点的偏移,D=w2+h2为对角线长度,θ=atan2(ΔxΔy)∈[−π,π]表示方向,ψij为平均联合相交(IoU),计算方法为:
ψij=M(ci)∪M(cj)M(ci)∩M(cj)
其中,M(.)表示某个组件的覆盖范围。
2.2 GCN-CNN Encoder-Decoder
2.2.1 Layout Encoder
本文提出了一种混合GCN-CNN编码器-解码器体系结构,以无监督的方式学习潜在空间。GCN编码器将布局图映射到嵌入空间。UI组件ci构成图中的一个节点,节点特征ni包含了节点类别si和几何属性gi,计算方法为:
ni=En([Es(si)gi]))
其中,Es是一个编码层,用于编码UI组件的类别,En是一个线性层将语义和几何特征投影到节点特征ni中。同样的,节点特征rij是通过Er(rij)投影得到的。节点特征和边特征通过图卷积网络gn(⋅) 和gr(⋅),它们的计算为:
xni=gn(ni)
xrij=gr([niEr(rij)nj])
关系图网络gr(⋅)在元组上<ni,Er(rij),nj>运行,将信息通过图传递,以了解整体布局。通过图卷积得到两组特征:
Xn={xn1,xn2,…xnn} Xr={xr11,xr12,…xrn,}
其中,κ 和κ′是组件数量和关系数量。之后,这两组向量通过自注意力模块进行特征传递,对节点特征和边特征进行池化:
fnatt=i=1∑καnixni and fratt=i=1∑κ′αrixri
αni=∑l=1nexp(wnTxnl)exp(wn⊤xni) and αri=∑l=1κ′exp(wrTxrl)exp(wr⊤xri)
其中,αni 和 αri 是注意力系数, wn⊤ 和 wr⊤ 为参数.
最后,获得了对UI布局进行编码的d维潜在嵌入:fe=Ee([fnatt,fratt])。
2.2.2 Layout Decoder
使用转置卷积网络,将GCN编码器编码的嵌入费用解码为图像光栅,转置卷积(也称为反卷积)网络在扩大特征图的同时学习越来越局部化的表示形式。解码层的输出为图像光栅ρ′∈RH×W×Ns,计算解码后的光栅和初始光栅之间的损失:
Lrec(ρ,ρ′)=Σm=125Σn=1HΣp=1W(ρmnp−ρmnp′)2
图2展示了光栅重建的对比。
![【论文笔记】Learning Structural Similarity of User Interface Layouts using Graph Networks 【论文笔记】Learning Structural Similarity of User Interface Layouts using Graph Networks](/default/index/img?u=aHR0cHM6Ly9waWFuc2hlbi5jb20vaW1hZ2VzLzI0MC80OWQxYjM3YWY4ZmQyYjhkMWFjZDBmOTZhNGY5NjZkOC5wbmc=)
2.3 Metric Learning via Triplet Training
为了学习有效搜索所需的嵌入空间中的度量属性,我们建议训练GCN-CNN编码器/解码器的基于三元组的暹罗架构,如图1所示。我们建议使用两种布局的组件边界框之间的平均联合相交(IoU)作为选择三元组的弱标签。如果它们的IoU值大于阈值,则我们将两个布局选择为锚定阳性对,根据视觉观察经验将其设置为0.6。如果IoU值低于0.4,我们选择任何布局为负。损失函数的计算方法为:
Ltri(a,p,n)=[∥∥∥fe(a)−fe(p)∥∥∥2−∥∥∥fe(a)−fe(n)∥∥∥2+ν]+
其中, (fe(a),fe(p),fe(n)) 是三元组 (a,p,n)的嵌入向量, ν=0.2 是margin,[x]+=max(x,0)。
3 Experiments
3.1 Datasets
3.1.1 和任务
3.1.2 预训练基线
3.2 Pre-Training and Fine-Tuning Setup
3.1 Datasets
3.1.1 和任务
3.1.2 预训练基线
3.2 Pre-Training and Fine-Tuning Setup