《FIVES:Feature Interaction Via Edge Search for Large-Scale Tabular Data》论文小结
原论文链接:https://arxiv.org/abs/2007.14573
这篇文章利用图神经网络来构建了一个特征捆绑的模型结构。主要创新点在于解决了进行特征捆绑时会产生的搜索空间爆炸的问题,提出了一个令人信服的特征搜索路径。
搜索策略
将原始特征与特征之间的关系用图来表示,每一个节点node代表一个特征feature,每一条边代表边相邻的两条边有特征捆绑的行为。
m m m个原始特征之间所有可能的交互数量是 O ( 2 m ) O(2^m) O(2m),因此对所有的可能进行搜索并评估非常困难;因此在本文中提出了一个有效的搜索策略: k k k阶特征从原始特征和生成的 k − 1 k-1 k−1阶特征的交互中产生
这个搜索策略有一个可靠的前提:在不提供可靠信息的特征之间的交互中生成信息特征是不可能的。
而原始特征raw features(即0阶特征)在处理过后可以认为是不含冗余信息的,从归纳假设的角度来看,如果 k − 1 k-1 k−1阶特征不包含冗余信息,那么根据 k − 1 k-1 k−1阶特征和 0 0 0阶特征之间的特征交互,就会存在有信息的特征。
本文的核心公式如下:
n
i
(
k
)
=
p
i
(
k
)
⊙
n
i
(
k
−
1
)
n^{(k)}_i = p^{(k)}_i \odot n^{(k-1)}_i
ni(k)=pi(k)⊙ni(k−1)
w
h
e
r
e
p
i
(
k
)
=
M
E
A
N
j
∣
A
i
,
j
(
k
)
=
1
{
W
j
n
j
(
0
)
}
where \qquad p^{(k)}_i = MEAN_{j|A_{i,j}^{(k)} = 1}\{W_j n_j^{(0)}\}
wherepi(k)=MEANj∣Ai,j(k)=1{Wjnj(0)}
这里的 M E A N MEAN MEAN是聚合器, ⊙ \odot ⊙是元素级乘法, W j W_j Wj是node n j n_j nj的转换矩阵, n i ( 0 ) n_i^{(0)} ni(0)是输入到GNN的初始输入,并且是node n i n_i ni的feature embeddings
假设第
k
k
k层
n
(
k
)
=
[
n
1
(
k
)
,
.
.
.
,
n
m
(
k
)
]
n^{(k)} = [n^{(k)}_1, ..., n^{(k)}_m]
n(k)=[n1(k),...,nm(k)],那么第
k
+
1
k+1
k+1层的节点为:
n
i
(
k
+
1
)
=
M
E
A
N
j
∣
A
i
,
j
(
1
)
=
1
{
W
j
n
j
(
0
)
}
⊙
n
i
(
k
)
n^{(k+1)}_i = MEAN_{j|A_{i,j}^{(1)}=1}\{W_jn_j^{(0)}\}\odot n_i^{(k)}
ni(k+1)=MEANj∣Ai,j(1)=1{Wjnj(0)}⊙ni(k)
=
M
E
A
N
(
c
1
,
.
.
.
,
c
k
)
∣
A
i
,
c
j
(
j
)
=
1
,
j
=
1
,
.
.
.
,
k
{
f
c
1
⊗
⋅
⋅
⋅
⊗
f
c
k
⊗
f
i
}
= MEAN_{(c_1, ..., c_k)|A_{i, c_j}^{(j)}=1,j=1,...,k}\{f_{c_1} \otimes ···\otimes f_{c_k} \otimes f_i\}
=MEAN(c1,...,ck)∣Ai,cj(j)=1,j=1,...,k{fc1⊗⋅⋅⋅⊗fck⊗fi}
这里面哪一个特征会参与组合,就取决于对应的邻接向量A是否为1
上图是论文中提供的一个示例图
模型训练
设置一个最高的迭代次数
K
K
K,当跌倒
K
K
K次后,就将得到的所有特征向量放到一个线性输出层
y
^
(
k
)
=
σ
(
W
(
k
)
[
n
1
(
k
)
:
⋅
⋅
⋅
:
n
m
(
k
)
]
+
b
(
k
)
)
\hat{y}^{(k)} = \sigma (W^{(k)} [n^{(k)}_1 : ··· : n^{(k)}_m] + b^{(k)})
y^(k)=σ(W(k)[n1(k):⋅⋅⋅:nm(k)]+b(k))
根据上式就可以得到输出值,其中
σ
\sigma
σ是sigmoid函数;
Θ = ( W F , W ( k ) , b ( k ) , W j ∣ 0 ≤ k ≤ K , 1 ≤ j ≤ m ) \boldsymbol{\Theta} = (W_F, W^{(k)}, b^{(k)}, W_j|0 \leq k \leq K, 1\leq j \leq m) Θ=(WF,W(k),b(k),Wj∣0≤k≤K,1≤j≤m)
下面是根据交叉熵损失函数构建的损失函数
L
(
D
∣
A
,
Θ
)
=
−
1
∣
D
∣
∑
(
x
i
,
y
i
)
∈
D
1
K
∑
k
=
0
K
−
1
C
E
(
y
i
,
y
^
i
(
k
)
)
,
C
E
(
y
i
,
y
^
i
(
k
)
)
=
y
i
log
(
y
^
i
(
k
)
)
+
(
1
−
y
i
)
log
(
1
−
y
^
i
(
k
)
)
,
\begin{aligned} \mathcal{L}(\mathcal{D} \mid \mathrm{A}, \boldsymbol{\Theta}) & =-\frac{1}{|\mathcal{D}|} \sum_{\left(x_i, y_i\right) \in \mathcal{D}} \frac{1}{K} \sum_{k=0}^{K-1} \mathrm{CE}\left(y_i, \hat{y}_i^{(k)}\right), \\ \mathrm{CE}\left(y_i, \hat{y}_i^{(k)}\right) & =y_i \log \left(\hat{y}_i^{(k)}\right)+\left(1-y_i\right) \log \left(1-\hat{y}_i^{(k)}\right), \end{aligned}
L(D∣A,Θ)CE(yi,y^i(k))=−∣D∣1(xi,yi)∈D∑K1k=0∑K−1CE(yi,y^i(k)),=yilog(y^i(k))+(1−yi)log(1−y^i(k)),
上式中
D
\mathcal{D}
D是考虑的数据集,
y
i
y_i
yi是真实标签值,
y
^
(
k
)
\hat{y}^{(k)}
y^(k)是预测值
本文的二级优化问题为:
min
A
L
(
D
val
∣
A
,
Θ
(
A
)
)
s.t.
Θ
(
A
)
=
arg
min
Θ
L
(
D
train
∣
A
,
Θ
)
,
\begin{array}{ll} & \min _{\mathrm{A}} \mathcal{L}\left(\mathcal{D}_{\text {val }} \mid \mathrm{A}, \Theta(\mathrm{A})\right) \\ \text { s.t. } \quad & \Theta(\mathrm{A})=\underset{\Theta}{\arg \min } \mathcal{L}\left(\mathcal{D}_{\text {train }} \mid \mathrm{A}, \Theta\right), \end{array}
s.t. minAL(Dval ∣A,Θ(A))Θ(A)=ΘargminL(Dtrain ∣A,Θ),
下面是邻接矩阵的更新方式,
A
(
k
)
A^{(k)}
A(k)的优化是依赖于
A
(
k
−
1
)
A^{(k-1)}
A(k−1)的优化的
KaTeX parse error: Expected 'EOF', got '&' at position 2: &̲ \mathbf{A}^{(k…
具体来说,可以将
A
A
A视为由
H
∈
[
0
,
1
]
K
×
m
×
m
H \in [0, 1]^{K \times m \times m}
H∈[0,1]K×m×m进行伯努利随机变量参数化形成的。在前向传播阶段,根据
A
(
k
)
A^{(k)}
A(k) ~
P
r
(
⋅
∣
H
(
k
)
)
Pr(·|H^{(k)})
Pr(⋅∣H(k))来采样,在反向传播阶段,通过STE(straight-through estimation)来更新
H
H
H
下面是优化后的矩阵A的更新公式:
A
(
k
)
≜
(
D
(
k
−
1
)
)
−
1
φ
(
A
(
k
−
1
)
)
σ
(
H
(
k
)
)
A
(
0
)
≜
I
and
H
(
0
)
≜
I
.
\begin{aligned} & \mathbf{A}^{(k)} \triangleq\left(\mathbf{D}^{(k-1)}\right)^{-1} \varphi\left(\mathbf{A}^{(k-1)}\right) \sigma\left(\mathbf{H}^{(k)}\right) \\ & \mathbf{A}^{(0)} \triangleq \mathbf{I} \text { and } \mathbf{H}^{(0)} \triangleq \mathbf{I} . \end{aligned}
A(k)≜(D(k−1))−1φ(A(k−1))σ(H(k))A(0)≜I and H(0)≜I.
上面的函数中,
φ
(
⋅
)
\varphi(·)
φ(⋅)是一个可调阈值的二值函数,矩阵
D
D
D是正则化矩阵
A
A
A的度函数
因为
A
A
A要经过二值函数,而优化后的
A
A
A的值可能在borderline附近(0.5附近),使用这样的值来进行特征交互时,二进制决策和学习到的A的差距是不可忽视的。因此使用下式来重新调节
A
A
A的值
A
i
,
j
(
k
)
←
σ
(
l
o
g
[
A
i
,
j
(
k
)
/
(
1
−
A
i
,
j
(
k
)
)
]
τ
)
A_{i,j}^{(k)} \leftarrow \sigma (\frac{log[A_{i,j}^{(k)} / (1 - A_{i,j}^{(k)})]}{\tau})
Ai,j(k)←σ(τlog[Ai,j(k)/(1−Ai,j(k))])
τ
\tau
τ分布在1和一个很小的正数之间,这会使得
A
i
,
j
(
k
)
A_{i,j}^{(k)}
Ai,j(k)趋近于0或1