ICLR 2020 | 《Multi-Scale Representation Learning For Spatial Feature Distributions Using Grid Cells》
链接:https://arxiv.org/abs/2003.00824
1.摘要
无监督文本编码模型(Unsupervised text encoding models)推动了自然语言处理(NLP)领域的重大进展。其核心思想在于利用神经网络基于词语在句子中的位置和它的上下文信息将文本中的词语转成向量空间嵌入表示,适合于下游任务的端到端训练。在空间分析中也存在相似的情况,它侧重于将地理对象的绝对位置和空间上下文如兴趣点(POIs)放入模型中。一个针对空间的通用表示模型对于许多任务都是有价值的。然而,迄今为止除了简单地将离散化或前馈网络应用于坐标之外,还没有这样的通用模型,而且很少的尝试截然不同的特征分布如何进行联合学习,而这种情况却在GIS数据中经常出现。与此同时,诺贝尔奖得主的神经科学研究表明,哺乳动物的网格细胞(GridCell)提供了一种多尺度(Mutil-Scale)的周期表示,作为位置编码的度量,对于位置识别和路径整合是至关重要的。基于这些,作者提出Space2Vec:一个用于编码地点的绝对位置和空间关系的表征学习模型。
2.主要贡献
1.作者提出了名为Space2Vec的编码器-解码器模型,使用不同频率的正弦函数来建模绝对位置和空间上下文信息。作者同时提出了基于上下文点的多头注意力机制,这是第一个明确考虑查询点和上下文点之间的空间关系的注意力模型;
2.作者对两个真实世界的地理数据进行了两个不同的任务的实验:1)给定POIs的位置和上下文信息预测其类型;2)利用图片包含的地理位置进行图像分类。
3.为了理解Space2Vec的优势,作者可视化了位置模型编码层神经元的响应图,并展示它们如何通过整合多尺度表示来处理不同尺度上的空间结构。此外,空间上下文模型神经元的放电模式( firing patterns)有助于深入了解栅格单元如何通过多尺度表征捕获不断减少的距离效应
3.问题公式化表示
为了更好地理解作者提出的模型所解决的问题,作者将要解决的问题公式化。空间中点特征的分布式表示公式如下:
给定点集 P = { p i } P=\{p_i\} P={pi} 例如POIs数据集,在L(L=2,3)维空间中定义一个映射函数 f p , θ ( x ) : R L → R d ( L ≪ d ) f_{p,\theta}(x):\mathbb{R}^L\to\mathbb{R}^d(L\ll d) fp,θ(x):RL→Rd(L≪d)
映射函数由 θ \theta θ参数化,并将空间中的任何坐标x映射到d维的向量表示,每个点(如餐厅) p i = ( x i , v i ) p_i=(x_i,v_i) pi=(xi,vi)与位置 x i x_i xi和属性 v i v_i vi(即POI特征,如类型、名称、容量等)相关联,函数 f p , θ ( x ) f_{p,\theta}(x) fp,θ(x)目的是编码点特征在空间上的概率分布,并可以给出控件任意点的表示。
4.策略(模型)
作者提出了使用编码-解码器架构解决空间中点特征的分布式表示:
1.编码器:作者提出了两种编码器来编码地理实体的信息,分别是点空间编码器和点特征编码器。给定一个点 p i = ( x i , v i ) p_i=(x_i,v_i) pi=(xi,vi),点空间编码器 E n c ( x ) ( ) Enc^{(x)}() Enc(x)()将位置 x i x_i xi编码为位置嵌入向量 e [ x i ] ∈ R d ( x ) e[x_i]\in\mathbb{R}^{d^{(x)}} e[xi]∈Rd(x),点特征编码器 E n c ( v ) ( ) Enc^{(v)}() Enc(v)()将其特征编码为嵌入向量 e [ v i ] ∈ R d ( v ) e[v_i]\in\mathbb{R}^{d^{(v)}} e[vi]∈Rd(v)。 e = [ e [ x i ] ; e [ v i ] ] ∈ R d e=[e[x_i];e[v_i]]\in\mathbb{R}^d e=[e[xi];e[vi]]∈Rd是点 p i ∈ P p_i\in P pi∈P的完整向量表示,其中 d = d ( x ) + d ( v ) d=d^{(x)}+d^{(v)} d=d(x)+d(v),[;]表示向量拼接。对于不在P中的地理实体可以用其位置嵌入 e [ x i ] e[x_i] e[xi]来表示,因为其特征是未知的
2.解码器:作者采用了两种类型解码器位置解码器和空间上下文解码器,它们既可以联合使用也可以独立使用。位置解码器 D e c s ( ) Dec_s() Decs()用于重构给定位置嵌入向量 e [ x i ] e[x_i] e[xi]的点特征嵌入向量 e [ v i ] e[v_i] e[vi]。空间上下文解码器 D e c c ( ) Dec_c() Decc()基于给定最近邻点 { p i 1 , . . . p i j , . . . , p i n } \{p_{i1},...p_{ij},...,p_{in}\} {pi1,...pij,...,pin}的空间和特征嵌入向量 { e i 1 , . . . e i j , . . . , e i n } \{e_{i1},...e_{ij},...,e_{in}\} {ei1,...eij,...,ein}重构点 p i p_i pi的特征嵌入向量 e [ v i ] e[v_i] e[vi],其中n为超参数
下面具体讲解这些编码器和解码器是如何构成的
4.1 编码器
4.1.1 点特征编码器
POI点集P中每个点 p i = ( x i , v i ) p_i=(x_i,v_i) pi=(xi,vi)通常包含POI类型、名字和一些高程信息等特征,点特征编码器 E n c ( v ) Enc^{(v)} Enc(v)将这些特征编码为特征嵌入向量 e [ v i ] ∈ R d ( v ) e[v_i]\in\mathbb{R}^{d^{(v)}} e[vi]∈Rd(v),如果每个点代表一个具有多种POI类型的POI点,特征嵌入向量 e [ v i ] e[v_i] e[vi]通过简单计算每个POI类型嵌入向量的均值 e [ v i ] = 1 H ∑ h = 1 H t h ( y ) e[v_i]=\frac{1}{H}\sum_{h=1}^H t_h^{(y)} e[vi]=H1∑h=1Hth(y),其中 t h ( y ) t_h^{(y)} th(y)代表第h个POI类型嵌入向量。由于特征的种类数是提前知道的,且不需要复杂的编码方法,所以点特征编码器直接应用封装在深度学习框架里的Embedding方法生成一个嵌入向量查找表。
4.1.2 点空间编码器
这篇文章的部分新颖之处就在点空间编码器上的思想。首先作者引入一个引理,这个引理给出了一个解析解 ϕ ( x ) \phi(x) ϕ(x)作为编码任何二维空间位置 x ∈ R 2 x\in\mathbb{R}^2 x∈R2到一个分布式表示的基础
引理:
受这个引理和哺乳动物中网格细胞的多尺度周期表征的启发,作者构建了点空间编码器 e [ x ] = E n c t h e o r y ( x ) ( x ) e[x]=Enc_{theory}^{(x)}(x) e[x]=Enctheory(x)(x)使用不同频率的正弦和余弦函数来编码空间中的位置,具体如下:
给定研究范围内的二维空间内任意一点x,点空间编码器为 E n c ( x ) = N N ( P E ( t ) ( x ) ) Enc^{(x)}=NN(PE^{(t)}(x)) Enc(x)=NN(PE(t)(x)),其中 P E ( t ) ( x ) = [ P E 0 ( t ) ( x ) ; . . . ; P E s ( t ) ( x ) ; . . . ; P E S − 1 ( t ) ( x ) ] PE^{(t)}(x)=[PE_0^{(t)}(x);...;PE_s^{(t)}(x);...;PE_{S-1}^{(t)}(x)] PE(t)(x)=[PE0(t)(x);...;PEs(t)(x);...;PES−1(t)(x)]为 d ( x ) = 6 S d^{(x)}=6S d(x)=6S维度的多尺度表示的拼接向量。S为网格尺度的总数。NN( )表示全连接ReLu层
而对于 P E s ( t ) ( x ) PE_s^{(t)}(x) PEs(t)(x),令 a 1 = [ 1 , 0 ] T , a 2 = [ − 1 2 , 3 2 ] T , a 3 = [ − 1 2 , − 3 2 ] T ∈ R 2 a_1=[1,0]^T,a_2=[-\frac{1}{2},\frac{\sqrt{3}}{2}]^T,a_3=[-\frac{1}{2},-\frac{\sqrt{3}}{2}]^T\in\mathbb{R}^2 a1=[1,0]T,a2=[−21,23 ]T,a3=[−21,−23 ]T∈R2作为三个单位向量,其中任何一个之间的夹角为 2 π 3 \frac{2\pi}{3} 32π,令 λ m i n , λ m a x \lambda_{min},\lambda_{max} λmin,λmax为最小和最大网格尺度且令 g = λ m a x λ m i n g=\frac{\lambda_{max}}{\lambda_{min}} g=λminλmax,对于每个尺度s, P E s ( t ) ( x ) = [ P E s , 1 ( t ) ( x ) , P E s , 2 ( t ) ( x ) , P E s , 3 ( t ) ( x ) ] PE_s^{(t)}(x)=[PE_{s,1}^{(t)}(x),PE_{s,2}^{(t)}(x),PE_{s,3}^{(t)}(x)] PEs(t)(x)=[PEs,1(t)(x),PEs,2(t)(x),PEs,3(t)(x)]
其中
P
E
s
,
j
(
t
)
=
[
cos
(
<
x
,
a
j
>
λ
m
i
n
⋅
g
s
/
(
S
−
1
)
)
;
sin
(
<
x
,
a
j
>
λ
m
i
n
⋅
g
s
/
(
S
−
1
)
)
]
∀
j
=
1
,
2
,
3
;
PE_{s,j}^{(t)}=[\cos(\frac{<\mathbf{x},\mathbf{a_j}>}{\lambda_{min}\cdot g^{s/(S-1)}});\sin(\frac{<\mathbf{x},\mathbf{a_j}>}{\lambda_{min}\cdot g^{s/(S-1)}})]\forall j=1,2,3;
PEs,j(t)=[cos(λmin⋅gs/(S−1)<x,aj>);sin(λmin⋅gs/(S−1)<x,aj>)]∀j=1,2,3;
经过以上定义和处理,NN( )和
P
E
(
t
)
(
x
)
PE^{(t)}(x)
PE(t)(x)就与引理中的C和
ψ
(
x
)
\psi(x)
ψ(x)相似,作为空间编码的基础。
同时,相似地,作者参考了Transformer模型中的Positional Encoding定义了另一个点空间编码器 E n c g r i d ( x ) ( ) Enc_{grid}^{(x)}() Encgrid(x)()作为对照,总体定义大致类似,其中给定研究范围内的二维空间内任意一点x,点空间编码器为 E n c ( x ) = N N ( P E ( g ) ( x ) ) Enc^{(x)}=NN(PE^{(g)}(x)) Enc(x)=NN(PE(g)(x)),其中 P E ( g ) ( x ) = [ P E 0 ( g ) ( x ) ; . . . ; P E s ( g ) ( x ) ; . . . ; P E S − 1 ( g ) ( x ) ] PE^{(g)}(x)=[PE_0^{(g)}(x);...;PE_s^{(g)}(x);...;PE_{S-1}^{(g)}(x)] PE(g)(x)=[PE0(g)(x);...;PEs(g)(x);...;PES−1(g)(x)]为 d ( x ) = 6 S d^{(x)}=6S d(x)=6S维度的多尺度表示的拼接向量。S为网格尺度的总数。NN( )表示全连接ReLu层
对于每个尺度s,
P
E
s
(
g
)
(
x
)
=
[
P
E
s
,
1
(
g
)
(
x
)
,
P
E
s
,
2
(
g
)
(
x
)
]
PE_s^{(g)}(x)=[PE_{s,1}^{(g)}(x),PE_{s,2}^{(g)}(x)]
PEs(g)(x)=[PEs,1(g)(x),PEs,2(g)(x)]分别处理x的每个维度l
P
E
s
,
l
(
g
)
=
[
cos
(
<
x
[
l
]
>
λ
m
i
n
⋅
g
s
/
(
S
−
1
)
)
;
sin
(
<
x
[
l
]
>
λ
m
i
n
⋅
g
s
/
(
S
−
1
)
)
]
∀
l
=
1
,
2
;
PE_{s,l}^{(g)}=[\cos(\frac{<\mathbf{x^{[l]}}>}{\lambda_{min}\cdot g^{s/(S-1)}});\sin(\frac{<\mathbf{x^{[l]}}>}{\lambda_{min}\cdot g^{s/(S-1)}})]\forall l=1,2;
PEs,l(g)=[cos(λmin⋅gs/(S−1)<x[l]>);sin(λmin⋅gs/(S−1)<x[l]>)]∀l=1,2;
4.2 解码器
解码器如前文所述分为位置解码器和空间上下文解码器两种
4.2.1 位置解码器
位置解码器
D
e
c
s
(
)
Dec_s()
Decs()用于重构给定位置嵌入向量
e
[
x
i
]
e[x_i]
e[xi]的点特征嵌入向量
e
[
v
i
]
e[v_i]
e[vi],位置解码器使用一个前馈网络来解决相关任务
e
[
v
i
]
′
=
D
e
c
s
(
x
i
;
θ
d
e
c
s
)
=
N
N
d
e
c
(
e
[
x
i
]
)
e[v_i]'=Dec_s(x_i;\theta_{dec_s})=NN_{dec}(e[x_i])
e[vi]′=Decs(xi;θdecs)=NNdec(e[xi])
4.2.2 空间上下文解码器
空间上下文解码器
D
e
c
c
(
)
Dec_c()
Decc()基于给定最近邻点
{
p
i
1
,
.
.
.
,
p
i
j
,
.
.
.
,
p
i
n
}
\{p_{i1},...,p_{ij},...,p_{in}\}
{pi1,...,pij,...,pin}的空间和特征嵌入向量
{
e
i
1
,
.
.
.
,
e
i
j
,
.
.
.
,
e
i
n
}
\{e_{i1},...,e_{ij},...,e_{in}\}
{ei1,...,eij,...,ein}重构点中心点的特征嵌入向量
e
[
v
i
]
e[v_i]
e[vi],重构公式为:
e
[
v
i
]
′
=
D
e
c
c
(
x
i
,
{
e
i
1
,
.
.
.
,
e
i
j
,
.
.
.
,
e
i
n
}
;
θ
d
e
c
c
)
=
g
(
1
K
∑
k
=
1
K
∑
j
=
1
n
a
i
j
k
e
[
v
i
j
]
)
e[v_i]'=Dec_c(x_i,\{e_{i1},...,e_{ij},...,e_{in}\};\theta_{dec_c})=g(\frac{1}{K}\sum_{k=1}^K\sum_{j=1}^na_{ijk}e[v_{ij}])
e[vi]′=Decc(xi,{ei1,...,eij,...,ein};θdecc)=g(K1k=1∑Kj=1∑naijke[vij])
其中g为激活函数,
a
i
j
k
=
e
x
p
(
σ
i
j
k
)
∑
o
=
1
n
e
x
p
(
σ
i
j
k
)
a_{ijk}=\frac{exp(\sigma_{ijk})}{\sum_{o=1}^nexp(\sigma_{ijk})}
aijk=∑o=1nexp(σijk)exp(σijk)为点
p
i
p_i
pi第j个邻居的第k个注意力头,其中
σ
i
j
k
=
L
e
a
k
y
R
e
L
U
(
a
k
T
[
e
[
v
i
]
i
n
i
t
;
e
[
v
i
j
]
;
e
[
x
i
−
x
i
j
]
]
)
\sigma_{ijk}=LeakyReLU(a_k^T[e[v_i]_{init};e[v_{ij}];e[x_i-x_{ij}]])
σijk=LeakyReLU(akT[e[vi]init;e[vij];e[xi−xij]])
这里作者是受到Graph Attention Network(GAT)的启发,将多头注意力机制引入
4.3 无监督训练
在本任务中,无监督任务可以简单的理解为最大化在点集P中在位置
x
i
x_i
xi观测到正确点
p
i
p_i
pi的对数似然函数
L
p
(
θ
)
=
−
∑
p
i
∈
P
l
o
g
P
(
p
i
∣
p
i
1
,
.
.
.
,
p
i
j
,
.
.
.
,
p
i
n
)
=
−
∑
p
i
∈
P
l
o
g
e
x
p
(
e
[
v
i
]
T
e
[
v
i
]
′
)
∑
p
o
∈
P
e
x
p
(
e
[
v
o
]
T
e
[
v
i
]
′
)
L_p(\theta)=-\sum_{p_i\in P}logP(p_i|p_{i1},...,p_{ij},...,p_{in})=-\sum_{p_i\in P}log\frac{exp(e[v_i]^Te[v_i]')}{\sum_{p_o\in P}exp(e[v_o]^Te[v_i]')}
Lp(θ)=−pi∈P∑logP(pi∣pi1,...,pij,...,pin)=−pi∈P∑log∑po∈Pexp(e[vo]Te[vi]′)exp(e[vi]Te[vi]′)
同时,为了提高训练效率,作者采用负样本训练方法
L
P
′
(
θ
)
=
−
∑
p
i
∈
P
(
l
o
g
σ
(
e
[
v
i
]
T
e
[
v
i
]
′
)
)
+
1
∣
N
i
∣
∑
p
o
∈
N
i
l
o
g
σ
(
−
e
[
v
o
]
T
e
[
v
i
]
′
)
L'_P(\theta)=-\sum_{p_i\in P}(log\sigma(e[v_i]^Te[v_i]'))+\frac{1}{\left\vert \Nu_i \right\vert}\sum_{p_o\in N_i}log\sigma(-e[v_o]^Te[v_i]')
LP′(θ)=−pi∈P∑(logσ(e[vi]Te[vi]′))+∣Ni∣1po∈Ni∑logσ(−e[vo]Te[vi]′)
这里
N
i
⊆
P
N_i\subseteq P
Ni⊆P是点
p
i
p_i
pi的负样本采样点,
σ
(
x
)
=
1
/
(
1
+
e
−
x
)
\sigma(x)=1/(1+e^{-x})
σ(x)=1/(1+e−x)
5.实验结果
5.1 数据
作者采用开源数据集Yelp Data Challenge中的拉斯维加斯区域所有POI数据,共21830个POI数据,1191个不同的POI类型
5.2 POI类型分类任务
首先是利用位置解码器,根据点的位置嵌入编码向量预测其类型,可见其结果是比较好的
5.3 细粒度图像分类任务
细粒度图像分类问题是对大类下的子类进行识别。细粒度图像分析任务相对通用图像(General/Generic Images)任务的区别和难点在于其图像所属类别的粒度更为精细。作者利用图片给定的位置和图片类别信息分别作为位置和特征进行编码训练,然后进行分类测试,结果也是比较好的,说明模型较好的学习了位置和特征信息。
6.总结
本文主要在于提出了一个比较新的空间位置无监督编码模型Space2Vec,不仅方法比较新,结果也比较好,作者还将其应用到他的另一个文章SG-KGE模型,一个基于Space2Vec位置相关的知识图谱嵌入模型,用来解决地理知识图谱的问答问题,应用价值也十分高,对于我们后续研究也提供了许多值得借鉴的方法。