本推文基于发表于IJGIS的《A Review of Location Encoding for GeoAI: Methods and Applications》并加以个人理解进行编写
论文地址:https://doi.org/10.1080/13658816.2021.2004602
摘要
许多地球科学中人工智能模型的一个普遍需求是编码各种类型的空间数据到一个隐藏的表征空间中以便可以轻松地将它们整合到深度学习模型中,例如点(例如,兴趣点),多边形(例如轨迹),多边形(例如,行政区域),图(例如,传输网络)或栅格(例如,遥感图像)。一个基本的步骤是将单点位置编码到嵌入式空间中,从而使该嵌入对下游机器学习模型(例如支持向量机和神经网络)是学习友好的。我们称此过程位置编码。但是,缺乏对位置编码的概念,其潜在应用以及需要解决的关键挑战的系统评价。在本篇推文中,我们主要讨论有关位置编码的一些相关定义以及对于现有一些位置编码方法做一个简单的分类和介绍。
1.引言
新颖的深度学习和表征学习技术的快速发展以及多样化的大规模地理空间数据的可用性不断增长加剧了地理空间人工智能(GeoAI)研究的实质性进展,这包括在各种具有挑战性的任务中取得的进展,例如地形特征检测和提取,土地使用分类,城市环境中的导航,地理知识图谱等任务。
尽管这些模型的设计截然不同,但它们具有共同的特征,即它们都需要表征或编码各种类型的空间数据到一个隐藏的表征空间中以便可以轻松地将它们整合到深度学习模型中,例如点(例如,兴趣点),多边形(例如轨迹),多边形(例如,行政区域),图(例如,传输网络)或栅格(例如,遥感图像)。对于矢量数据(例如点集、折线、多边形和网络),其表示问题变得更加复杂,这些数据具有更不规则的空间组织格式,因为位置、距离和方向等概念在现有的神经网络中没有直接对应的概念,并且为不规则结构的数据设计神经网络操作(例如卷积)并非易事。
早期的工作是执行数据转换操作,将底层空间数据转换为现有神经网络模块可以处理的格式。但是,这种转换过程往往会导致信息丢失,例如地理位置信息的丢失。执行此类数据转换的原因是在深度神经网络中缺乏直接处理矢量数据的方法。
还有一种方法是直接对这些空间数据模型进行编码。实现这一目标的第一步是将点位置编码到嵌入空间中,以便这些位置嵌入可以轻松地在下游神经网络模块中使用,这就是位置编码的思想。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
2.相关定义
2.1 位置编码
位置编码(Location Encoding)定义如下
给定点集
P
=
{
p
i
}
P=\{p_i\}
P={pi},其中每个点
p
i
=
(
x
i
,
v
i
)
p_i=(x_i,v_i)
pi=(xi,vi)由L维(L=2,3)位置
x
i
∈
R
L
x_i\in \mathbb{R}^L
xi∈RL和属性
v
i
∈
R
E
v_i\in \mathbb{R}^E
vi∈RE(例如,类型)组成。将位置编码器定义为一个由
θ
\theta
θ参数化的函数
E
n
c
(
P
,
θ
)
(
x
)
:
R
L
→
R
d
(
L
≪
d
)
Enc^{(P,\theta)}(x):\mathbb{R}^L\to\mathbb{R}^d(L\ll d)
Enc(P,θ)(x):RL→Rd(L≪d),通过这个函数来映射空间中的坐标到一个d维的表征向量。这个过程就叫做位置编码,得到的结果称为位置嵌入向量。
这其中
E
n
c
(
P
,
θ
)
(
x
)
Enc^{(P,\theta)}(x)
Enc(P,θ)(x)也暗含了对于x的编码结果也可能依赖于点集P中的其他位置。在一些情况下,位置编码的输入可以是位置和属性的结合
E
n
c
(
P
,
θ
)
(
x
)
:
R
L
+
E
→
R
d
Enc^{(P,\theta)}(x):\mathbb{R}^{L+E}\to\mathbb{R}^d
Enc(P,θ)(x):RL+E→Rd
位置编码器是否可以保留空间信息(例如编码过程后的距离和方向信息)是我们需要考虑的一个主要问题,从空间信息保存的角度来看,我们希望编码器至少要满足两大特点:距离保留和方向意识。
2.2 距离保留
距离保留属性的核心是相近的两个位置具有相似的位置嵌入向量。具体来讲,给定任意一对位置 ( x A , x B ) (x_A,x_B) (xA,xB),它们的嵌入向量的内积 ⟨ E n c ( P , θ ) ( x A ) , E n c ( P , θ ) ( x B ) ⟩ \left\langle Enc^{(P,\theta)}(x_A),Enc^{(P,\theta)}(x_B)\right\rangle ⟨Enc(P,θ)(xA),Enc(P,θ)(xB)⟩随着 x A x_A xA和 x B x_B xB之间距离 ∥ x A − x B ∥ \lVert{x_A-x_B}\rVert ∥xA−xB∥的增加而单调减小。这一特点也可以看做是地理学第一定律(任何事物都是与其他事物相关的,只不过相近的事物关联更紧密)的反映。
2.3 方向意识
方向意识即指向相似方向的位置具有比指向非常不同方向的人更相似位置嵌入。具体地如图,给定
x
O
x_O
xO作为参考点,y轴作为地球指北方向,
x
A
,
x
B
,
x
C
x_A,x_B,x_C
xA,xB,xC在以
x
O
x_O
xO为中心的同一圆圈上,因此它们与
x
O
x_O
xO有相同的距离,
x
A
x_A
xA和
x
O
x_O
xO之间的相对空间关系定义为
Δ
A
O
=
x
A
−
x
O
\Delta_{AO}=x_A-x_O
ΔAO=xA−xO。
∠
A
O
\angle_{AO}
∠AO为y轴和
Δ
A
O
\Delta_{AO}
ΔAO的顺时针角度,如果
∣
∠
A
O
−
∠
B
O
∣
<
∣
∠
A
O
−
∠
C
O
∣
|\angle_{AO}-\angle_{BO}|<|\angle_{AO}-\angle_{CO}|
∣∠AO−∠BO∣<∣∠AO−∠CO∣且位置编码后的嵌入向量的内积满足
⟨
E
n
c
(
P
,
θ
)
(
Δ
A
O
)
,
E
n
c
(
P
,
θ
)
(
Δ
B
O
)
⟩
>
⟨
E
n
c
(
P
,
θ
)
(
Δ
A
O
)
,
E
n
c
(
P
,
θ
)
(
Δ
C
O
)
⟩
\left\langle Enc^{(P,\theta)}(\Delta_{AO}),Enc^{(P,\theta)}(\Delta_{BO})\right\rangle>\left\langle Enc^{(P,\theta)}(\Delta_{AO}),Enc^{(P,\theta)}(\Delta_{CO})\right\rangle
⟨Enc(P,θ)(ΔAO),Enc(P,θ)(ΔBO)⟩>⟨Enc(P,θ)(ΔAO),Enc(P,θ)(ΔCO)⟩,则该位置编码器符合方向意识特性。
2.4 其他一些特性
在文章中,作者认为好的位置编码器还应具备以下特性:
· 归纳学习策略:即使要编码的位置在训练集中未出现,可以使用预制位置编码器编码任何位置而不用再重新训练模型
· 任务独立:相同的位置编码器模型结构可被用于不同的下游学习任务而不需要被调整修改
· 参数模型
3.位置编码器
如图所示,根据为单个位置数据编码为一个向量还是多个位置数据编码分为两大类,PE(x)为单个位置编码,Ν(x)为多个位置编码
3.1 单个位置编码
单点位置编码大多可以归纳为以下形式
E
n
c
(
x
)
=
N
N
(
P
E
(
x
)
)
Enc(x)=NN(PE(x))
Enc(x)=NN(PE(x))
其中
N
N
(
⋅
)
:
R
W
→
R
d
NN(·):\mathbb{R}^W\to\mathbb{R}^d
NN(⋅):RW→Rd是一个映射输入位置嵌入
P
E
(
x
)
∈
R
W
PE(x)\in\mathbb{R}^W
PE(x)∈RW到位置向量表示
E
n
c
(
x
)
∈
R
d
Enc(x)\in\mathbb{R}^d
Enc(x)∈Rd可学习的神经网络。
P
E
(
⋅
)
PE(·)
PE(⋅)是区别不同单个位置编码方法的核心组件。
3.1.1 离散化&直接方法
早期的研究者认为GPS坐标是相当精确的位置指标,神经网络很难使用。 因此,他们没有使用坐标,而是将整个研究区域离散化为网格图块,并通过其所属的相应网格指示每个点。其中比较有代表性的为独热(one-hot)编码方法。这是早期将位置信息融入学习模型中的策略,存在一些限制:1)每个嵌入部分分别进行训练,空间依赖性被忽略,即,它们没有距离保留属性; 2)它们只有一个固定的空间尺度,不能有效地处理各种密度的点; 3)选择正确的离散化方法是非常具有挑战性的,并且不正确的选择将显着影响模型的性能和效率。
另一种早期策略是将位置信息归一化或标准化后送入网络中进行学习,这个比较直观也比较简单,早期常作为辅助信息用于地理信息相关任务中。
3.1.2 正弦&多尺度正弦方法
由于正弦方法可以看做是多尺度正弦方法的一个特例,因此这里直接对于多尺度正弦方法进行阐述。
多尺度正弦方法即从多个尺度利用正弦余弦函数去进行位置信息的特征编码。即
P
E
s
i
n
m
u
l
(
x
)
=
[
P
E
0
(
S
)
(
x
)
;
.
.
.
;
P
E
s
(
S
)
(
x
)
;
.
.
.
;
P
E
S
−
1
(
S
)
(
x
)
]
PE_{sinmul}(x)=[PE^{(S)}_0(x);...;PE^{(S)}_s(x);...;PE^{(S)}_{S-1}(x)]
PEsinmul(x)=[PE0(S)(x);...;PEs(S)(x);...;PES−1(S)(x)],其中S为总的尺度数,
P
E
s
(
S
)
(
x
)
PE^{(S)}_s(x)
PEs(S)(x)则是正弦函数为基础的编码函数,具体地,以Space2Vec为例,公式为
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;
Ps:有关Space2Vec更多具体详解,请看之前的博客Space2Vec
多尺度正弦方法是同时具有距离保留特性和方向意识的编码方法,且同时对于前文提到的其他一些特性也有体现。
3.2 聚合位置编码
聚合位置编码器是共同考虑位置特征x和x附近的相关特征,将其聚合起来进行编码生成向量表征。公式如下
h
x
(
0
)
=
E
n
c
(
x
)
,
h_x^{(0)}=Enc(x),
hx(0)=Enc(x),
g
x
(
m
)
=
A
g
g
x
i
∈
N
(
x
)
{
h
x
i
(
m
−
1
)
}
,
g_x^{(m)}=Agg_{x_i\in\Nu(x)}\{h_{x_i}^{(m-1)}\},
gx(m)=Aggxi∈N(x){hxi(m−1)},
h
x
(
m
)
=
C
m
b
(
h
x
(
m
−
1
)
,
g
x
(
m
)
)
h_x^{(m)}=Cmb(h_x^{(m-1)},g_x^{(m)})
hx(m)=Cmb(hx(m−1),gx(m))
E
n
c
(
P
)
(
x
)
=
R
d
t
(
h
x
(
m
)
)
Enc^{(P)}(x)=Rdt(h_x^{(m)})
Enc(P)(x)=Rdt(hx(m))
其中Agg为聚合操作,聚合周围信息,Cmb为组合操作,将聚合后的表征组合拼接起来,Rdt为读取函数(Readout Function),即利用前馈网络将聚合特征输出为定长向量。
这种编码方式主要用于点云数据、轨迹数据等数据内位置信息存在内在关联的数据。主要分类有核方法,全局、局部编码方法和分层编码方法,在本课题组中,这一分类方法暂时不会用到,因此这里不做详细描述。
3.3 两种编码方法对比
· 当新位置添加到数据集时,PE(x)不会受影响,而一般N(x)都因邻居数据的改变而需要更新模型
· PE(x)具有相比于N(x)更高的推理速度
· 由于多考虑了邻居数据,N(x)比PE(x)具有更丰富的模型预测功能,并且具有更高的性能
· 编码方法一定是服务于下游任务的,要根据自己的具体任务去考虑那种编码方法更适合自己的任务
4.总结
本文主要对于位置编码进行了定义介绍和一些方法的概括,更加具体的关于方法上的比较会在之后的博客中进一步展开。