论文地址:Self-supervised Learning for Label Sparsity in Computational Drug Repositioning
1. Introduction
药物重定位旨在根据已知的药物-疾病关联性揭示上市药物的新用途。其背后的逻辑是:目前市场上的小分子药物具有多靶点特性,这意味着它们可以抑制或激活未知靶点,从而对未知疾病产生治疗效果。药物重定位通过计算模型和大量经验证的药物-疾病关联揭示药物和疾病的潜在治疗模式。基于这些模式,可以推断出目标药物的新的治疗用途。
流行的计算药物重定位模型可分为两类:基于图的模型和基于矩阵分解的模型。
基于图的模型:基于药物和疾病的多源信息构建异构网络,然后使用随机游走等算法挖掘上述异构网络中潜在的药物-疾病关联。
基于矩阵分解的模型:利用嵌入空间中的向量来表示药物和疾病的潜在因子。随后,通过相似函数计算药物与疾病的关联概率。
本文的重点是计算药物重定位中的双塔模型(基于矩阵分解的模型),其主要思想是使用两组不同的神经网络来学习药物和疾病的潜在因子。这两种潜在因子的相容性程度是使用相似函数(内积)计算药物治疗疾病的概率。
该模型有效性的关键是找到合适的潜在因子载体来代表药物和疾病。然而,随着神经网络层数的增加,要学习的参数量也呈指数级增加。值得注意的是,用于训练这些模型的损失函数通常表示为监督学习问题。这些监测信号来自经验证的药物疾病协会。上表显示了本文中使用的数据集的稀疏性,这表明与现实世界中的大量药物和疾病相比,经验证的药物-疾病关联非常稀少。这也意味着很难用这些少量标记样本训练双塔模型中的大量参数。
自我监督学习在通过未经验证的数据增强药物的代表性方面可以提供一个新的视角。因此,在这项工作中,我们提出了一个多任务自监督学习框架(SSLDR)来解决药物重新定位中的标签稀疏问题。具体来说,我们以 药物疾病关联预测问题
为主要任务,辅助任务(自我监督学习)是 使用数据增强策略和对比学习来挖掘原始药物特征的内部关系
,从而自动学习一个无监督标签的更好的药物表征。
SSLDR框架的辅助任务可以分为三个步骤:
(1)利用相似信息过滤出目标药物的负邻居样本。
(2)使用两种不同的数据增强策略对目标药物和负邻居样本进行表征学习。
(3)将上述四种药物表征映射到嵌入空间,使属于同一药物的潜在因素在嵌入空间中彼此接近,而不属于同一药品的潜在因素则远离。这样,可以从未标记的药物数据中自动学习更好的潜在因素以进行表示。
如果仅用上述自我监督学习后获得的药物表征初始化双塔模型中的潜在因子,这本质上是一种预训练方法,不能有效提高主要任务(药物疾病关联预测)的准确性。因此,为了确保辅助任务能够提高主任务的准确性,我们采用了一种 多任务训练策略
(为主任务的损失函数增加了一个正则化项),其中主任务(监督)和辅助任务(自我监督)联合优化。准确地说,辅助任务中使用的嵌入层与主任务中双塔模型的药物嵌入层共享参数。
一些工作使用自动编码器作为嵌入层来挖掘药物和疾病的潜在因素。随着自动编码器网络层的加深,出现了信息丢失的问题,解码器无法恢复原始输入。自动编码器的思想是:一个好的潜在因素必须能够恢复原始输入。因此,为了解决由于信息丢失导致潜在因素无法恢复到原始输入的问题,我们设计了一个多输入解码器。与前一解码器层只接受前一网络层的输出不同,我们将潜在因素输入到每个解码器层以增强解码器的重构能力。后续实验证明,经过上述运算后,该隐因子具有更好的预测性能。
主要贡献如下:
(1)提出了一个多任务自监督学习框架,用于解决计算药物重新定位中的标签稀疏问题。该框架通过参数共享联合优化主任务(药物疾病关联预测)和辅助任务(自我监督学习),提高药物的代表性,可用于提高潜在药物疾病关联的预测性能。
(2)改进了自动编码器中的解码器,使每个解码器都能考虑潜在因素信息。因此,可以在不丢失信息的情况下获得良好的潜在因素。
(3)在三个真实的药物疾病关联数据集上,证明了作为辅助任务的自我监督学习可以提高主模型的性能。此外,证明了多输入解码器的自编码器具有更好的预测性能。
2. Materials and Methods
2.1 Datasets
Gottlieb 数据集包含593种药物、313种疾病和1933种治疗关系。Cdataset 包含663种药物、409种疾病和2532种治疗关系。DNdataset数据集包含1490种药物、4516种疾病和1008种治疗关系。
上述数据集还包含药物之间的相似矩阵
D
r
u
g
S
i
m
DrugSim
DrugSim,该矩阵是根据药物的 SMILES 化学结构计算得出的。根据疾病之间的医学描述信息计算疾病之间的相似矩阵。
2.2 The two-tower model in computational drug repositioning
计算药物重新定位可以定义为一个二分类问题,给定目标药物 i i i 和目标疾病 j j j,我们将它们各自的特征输入到模型 M M M 中得到预测值 0/1,其中 0 表示药物 i i i 不能治愈疾病 j j j,1 表示能治愈。
目前流行的计算药物重新定位模型是双塔模型。这个框架使用两组不同的神经网络来学习药物和疾病的潜在因素。在此结构中,药物和疾病的特征分别输入到包含一系列神经网络的嵌入层以提取各自的潜在因素。随后,通过相似算法(内积)计算药物和疾病的潜在因素,得出预测值 R i j R_{ij} Rij,表示药物治疗疾病的概率。
2.3 The multi-task self-supervised learning framework
该框架通过学习更好的药物表示来解决标签稀疏问题。具体来说,我们把预测药物与疾病的相关性作为主要任务(监督学习)。而自动挖掘药物特征的内部关系是辅助任务(自我监督学习),其目的是在存在未标记数据的情况下学习良好的药物表示。
(1)辅助任务
首先,给定目标药物
i
i
i,我们根据相似性函数
S
S
S 选择与目标药物
i
i
i 相似性最低的药物
k
k
k 作为负样本。使用药物的 SMILES 字符串来计算目标药物与数据集中所有药物的相似性信息。相似性信息可以从药物的相似矩阵
D
r
u
g
S
i
m
DrugSim
DrugSim 中获得,可以从公共网站下载。
k
←
S
(
i
)
(1)
k\leftarrow S(i)\tag{1}
k←S(i)(1)随后,使用两个不同的传递函数
h
h
h 和
g
g
g 对目标药物
i
i
i 和负样本
k
k
k 进行数据增强。对于目标药物
i
i
i,我们希望在不同的数据增强后学习两种不同的表征
x
i
x_i
xi 和
x
i
,
x_i^,
xi,确保模型仍然能识别出
x
i
x_i
xi 和
x
i
,
x_i^,
xi, 代表相同的药物
i
i
i。对于负样本
k
k
k 也是一样。
x
i
←
g
(
d
r
u
g
i
)
,
x
i
,
←
h
(
d
r
u
g
i
)
x_i\leftarrow g(drug_i),x_i^,\leftarrow h(drug_i)
xi←g(drugi),xi,←h(drugi)
x
k
←
g
(
d
r
u
g
k
)
,
x
k
,
←
h
(
d
r
u
g
k
)
(2)
x_k\leftarrow g(drug_k),x_k^,\leftarrow h(drug_k)\tag{2}
xk←g(drugk),xk,←h(drugk)(2)实际上,我们使用药物的两种不同化学结构表示作为数据增强策略。传递函数
h
h
h 和
g
g
g 分别替换为药物的 SMILES 字符串和国际化学标识符(InChI)。SMILES 字符串和 InChI 都用少量字符表示药物的化学结构信息。为了让深度学习模型能够输入字符串,使用 Word2Vec 算法将字符串转换为数字矢量。
我们将 x i x_i xi和 x i , x_i^, xi,分别输入嵌入函数 H H H 和 G G G,以获得 z i z_i zi 和 z i , z_i^, zi, 作为目标药物 i i i 的两个潜在因子。 z i = G ( x i ) , z i , = H ( x i , ) z_i=G(x_i),z_i^,=H(x_i^,) zi=G(xi),zi,=H(xi,) z k = G ( x k ) , z k , = H ( x k , ) (3) z_k=G(x_k),z_k^,=H(x_k^,)\tag{3} zk=G(xk),zk,=H(xk,)(3)在获得目标药物 i i i 和负样本 k k k 的潜在因子后,我们希望使 z i z_i zi 和 z i , z_i^, zi, 在嵌入空间中属于同一药物的距离尽可能接近。不属于同一药物的 z i z_i zi 和 z k , z k , z_k,z_k^, zk,zk,之间的距离在嵌入空间中变得尽可能远。因此,定义了以下损失函数,以使这些潜在因子相互对比。 L a u x i l i a r y = D ( z i , z i , ) − D ( z i , z k ) − D ( z i , z k , ) (4) \mathcal{L}_{auxiliary}=D(z_i,z_i^,)-D(z_i,z_k)-D(z_i,z_k^,)\tag{4} Lauxiliary=D(zi,zi,)−D(zi,zk)−D(zi,zk,)(4)其中 D D D 是距离度量函数, D ( z i , z i , ) = ∣ ∣ z i − z i , ∣ ∣ 2 D(z_i,z_i^,)=||z_i-z_i^,||^2 D(zi,zi,)=∣∣zi−zi,∣∣2。
(2)主任务
主要包含三个模块:输入层、嵌入层和输出层。
输入层:将目标药物
i
i
i 对所有疾病的治疗信息作为其输入特征,即药物-疾病关联矩阵
R
R
R 的第
i
i
i 行
R
i
∗
R_{i*}
Ri∗。所有药物的目标疾病
j
j
j 的治疗信息作为其输入特征,即
R
R
R 的第
j
j
j 列
R
j
∗
R_{j*}
Rj∗。 此功能的好处是能够记录药物或疾病的行为偏好。
嵌入层:使用一个由2个编码器和3个解码器组成的自动编码器模型来提取药物(疾病)的潜在因素。
d
i
=
f
(
W
2
T
f
(
W
1
T
R
i
∗
+
b
1
)
+
b
2
)
(5)
d_i=f\big(W_2^Tf(W_1^TR_{i*}+b_1)+b_2\big)\tag{5}
di=f(W2Tf(W1TRi∗+b1)+b2)(5)
R
^
i
∗
=
f
(
V
3
T
f
(
V
2
T
f
(
V
1
T
d
i
+
b
3
)
+
b
4
)
+
b
5
)
(6)
\hat{R}_{i*}=f\Big(V_3^Tf\big(V_2^Tf(V_1^Td_i+b_3)+b_4\big)+b_5\Big)\tag{6}
R^i∗=f(V3Tf(V2Tf(V1Tdi+b3)+b4)+b5)(6)
L
d
r
u
g
=
∣
∣
R
^
i
∗
−
R
i
∗
∣
∣
2
(7)
\mathcal{L}_{drug}=||\hat{R}_{i*}-R_{i*}||^2\tag{7}
Ldrug=∣∣R^i∗−Ri∗∣∣2(7)其中,方程(5)是编码部分,方程(6)是解码部分,而方程(7)是自动编码器的损失函数。
d
i
d_i
di 是通过最小化
L
d
r
u
g
\mathcal{L}_{drug}
Ldrug 获得的。同样,疾病
j
j
j 的潜在因子
s
j
s_j
sj 可以通过最小化
L
d
i
s
e
a
s
e
\mathcal{L}_{disease}
Ldisease 得到。
L
d
i
s
e
a
s
e
=
∣
∣
R
^
j
∗
−
R
j
∗
∣
∣
2
(8)
\mathcal{L}_{disease}=||\hat{R}_{j*}-R_{j*}||^2\tag{8}
Ldisease=∣∣R^j∗−Rj∗∣∣2(8)输出层:通过对
d
i
d_i
di 和
s
j
s_j
sj 进行内积运算,得到目标药物
i
i
i 治疗目标疾病
j
j
j 的预测概率
R
^
i
j
\hat{R}_{ij}
R^ij。
R
^
i
j
=
d
i
T
s
j
(9)
\hat{R}_{ij}=d_i^Ts_j\tag{9}
R^ij=diTsj(9)辅助任务使用的嵌入层与主任务的嵌入层共享参数,即使用相同的自动编码器模型。总损失函数如下所示:
L
=
L
m
a
i
n
+
α
L
a
u
x
i
l
i
a
r
y
(10)
\mathcal{L}=\mathcal{L}_{main}+\alpha\mathcal{L}_{auxiliary}\tag{10}
L=Lmain+αLauxiliary(10)其中
L
m
a
i
n
\mathcal{L}_{main}
Lmain 如下所示:
L
m
a
i
n
=
−
[
R
i
j
log
R
^
i
j
+
(
1
−
R
i
j
)
log
(
1
−
R
^
i
j
)
]
+
L
d
r
u
g
+
L
d
i
s
e
a
s
e
(11)
\mathcal{L}_{main}=-[R_{ij}\log\hat{R}_{ij}+(1-R_{ij})\log(1-\hat{R}_{ij})]+\mathcal{L}_{drug}+\mathcal{L}_{disease}\tag{11}
Lmain=−[RijlogR^ij+(1−Rij)log(1−R^ij)]+Ldrug+Ldisease(11)其中
R
i
j
R_{ij}
Rij 是标签值,
L
d
r
u
g
\mathcal{L}_{drug}
Ldrug 是自动编码器提取药物潜在因子的损失,
L
d
i
s
e
a
s
e
\mathcal{L}_{disease}
Ldisease 是自动编码器提取疾病潜在因子的损失。
联合训练策略可以提高模型的泛化能力。因为以参数共享的形式,本质上是在主任务的损失函数中增加了一个正则化项,从而改善了嵌入层参数的变化范围,从而提高了主任务的泛化性能。
2.4 The autoencoder with multiple-input decoder
基于主任务的解码架构,我们额外将潜在因子添加到每个解码器的输入中,以便解码器的每一层都可以考虑来自潜在因子的信息。
其解码操作如下式所示:
R
^
i
∗
=
f
(
V
3
T
(
f
(
V
2
T
(
f
(
V
1
T
d
i
+
b
3
)
+
β
d
i
)
+
b
4
)
+
β
d
i
)
+
b
5
)
(6)
\hat{R}_{i*}=f\Bigg(V_3^T\bigg(f\Big(V_2^T\big(f(V_1^Td_i+b_3)+\beta d_i\big)+b_4\Big)+\beta d_i\bigg)+b_5\Bigg)\tag{6}
R^i∗=f(V3T(f(V2T(f(V1Tdi+b3)+βdi)+b4)+βdi)+b5)(6)通过观察上述等式,可以得出结论:当调整参数
β
\beta
β 为0时,它与原始解码器相同。当调整参数
β
\beta
β 的值大于0时,解码器可以考虑潜在因子的信息,克服信息丢失的问题。
3. Experiments and Discussion
本节设计的实验用于回答以下研究问题。
RQ1:联合优化辅助任务和主任务的策略能否提高主任务的预测精度?
RQ2:与传统的自动编码器相比,多输入解码器的自动编码器在预测性能上是否具有优势?
RQ3:多任务自监督学习框架能否优于最先进的模型?
RQ4:多任务自监督学习框架在实际应用中有何帮助?
3.1 Evaluation Metrics
本节中的实验使用 10 折交叉验证来评估模型的泛化能力。我们首先将已知的药物-疾病相关性作为正样本,并将其平均分为 10 个部分,其中的 9 个作为训练集,剩余的 1 个作为测试集。此外,我们将所有未知的药物-疾病相关性作为负样本添加到测试集。然后用训练集训练模型中的参数,并用测试集评估模型的泛化性能,用10轮计算结果的平均值表示模型10折交叉验证的结果。药物重定位是一个二分类问题。为了公平地比较模型的泛化性能,我们使用 AUC、AUPR 和 F1值 来评估模型的性能。
3.2 Parameter Setting
SSLDR 模型中所有超参数的值都是根据它们在验证集上的性能来选择的。验证集是通过从训练集中抽取10%的数据来形成的。药物和疾病的潜在因子的变异区间为 [8,16,32,64,128]。公式(10)中参数 α \alpha α 的变化区间为 [0.1,0.3,0.5,0.7,0.9]。自动编码器损失函数参数的变化间隔为 [0.1、0.3、0.5、0.7、0.9]。模型优化器的学习率在区间 [0.1、0.05、0.01、0.005、0.001]内变化。在本节的实验中,上述参数的默认值为 64、0.5、0.5 和 0.001。
3.3 Effectiveness of joint optimization of auxiliary task and main task(RQ1)
为了回答 RQ1,我们评估了联合训练策略下辅助任务对主要任务的影响。通过比较 SSLDR 和 SSLDR-M(去掉辅助任务)的实验结果,我们可以直观地比较辅助任务是否可以提高主任务的预测精度。首先,从表2中可以直观地发现,SSLDR 模型在所有度量和数据集上都优于 SSLDR-M 模型。在这三个数据集上,AUC、AUPR 和 F1 评分指标下的平均改善率分别为2%、14.3%和48.5%,尤其是 F1 评分指标的改善最为明显。上述结果表明,通过联合训练策略,将辅助任务的损失函数作为主任务损失函数的正则化项,优化了主任务中参数的搜索空间。这使得主任务的模型具有更好的泛化性能。
此外,我们发现SSLDR模型和SSLDR-M模型之间的性能差距与数据集之间的稀疏性成正比,即数据集的稀疏性越大,SSLDR模式和SSLDR-M模型之间的绩效差距越大。Gottlieb数据集、Cdataset和DNdataset的稀疏性依次增加,与SSLDR-M模型相比,这三个数据集的SSLDR平均改善率分别为17%、22.5%和25.4%。
这是因为 SSLDR-M 模型中的参数依赖于标记数据进行训练。稀疏数据集中的少量标记数据阻碍了 SSLDR-M 模型学习药物和疾病的有效潜在因子。SSLDR 模型还使用了自我监督和联合优化,以确保主任务学习更好的药物潜在因子。因此,主任务可以有较好的预测效果。对以上实验结果的讨论证明,辅助任务可以提高主任务的预测精度,表明我们改进点的正确性。
3.4 Effectiveness of autoencoder with multi-input decoder(RQ2)
为了回答 RQ2,我们评估了多输入解码器的自动编码器的预测性能。通过 SSLDR 和 SSLDR-A(单输入解码器)的直接比较,可以验证多输入解码器是否能够克服信息丢失的问题,从而提高潜在因子的预测能力。在所有度量和数据集上,带有多输入解码器的 SSLDR 模型优于带有单输入解码器的 SSLDR-A 模型。在这三个数据集上,AUC、AUPR 和 F1得分指标的平均改善率分别为1.7%、6.5%和16.3%。
以上实验结果表明,在每个解码器的输入中加入潜在因子,可以使其考虑潜在因子的信息,从而使模型能够学习到更好的潜在因子,从而提高其表达能力和对药物疾病相关性的预测能力。
3.5 Comparison of experimental results(RQ3)
为了回答 RQ3,我们将 SSLDR 模型的实验结果与以下主流计算药物重定位模型进行了比较。
- MF:矩阵分解模型使用内积和潜在因子来推断药物和疾病之间的治疗关系的概率。
- SVM:经典的二分类模型。
- NCF:神经协同过滤利用神经网络和哈达玛积发现药物的潜在新用途。
- MLP:多层感知器由用于二进制分类问题的多个神经网络和 sigmoid \text{sigmoid} sigmoid 激活函数组成。
- ASMF:使用了一种注意力机制代替内积,使模型能够考虑每个特征的独特权重。使用改进的自动编码器模型来提取更有效的药物和疾病特征。
- NMFDR:使用改进的欧氏距离和点空间来表示药物与疾病的关系。
MF 和 NCF 作为基于主要潜在因子的模型,由于不能包含更多关于药物或疾病的辅助信息,因此预测结果较差。ASMF 模型包含了药物或疾病的相似性信息,在所有数据集和指标上都大大优于 MF 和 NCF 模型。在三个数据集上,SSLDR 模型的性能优于 SVM(机器学习模型)和 MLP(深度学习模型)。可以清楚地发现,在所有数据集和所有指标中,SSLDR 模型的预测结果都优于两个SOTA模型 ASMF 和 NMFDR。与 NMFDR 模型相比,三个数据集在 AUC 度量下 SSLDR 的平均改善率为12.1%,在 AUPR 度量下平均改善率是17.5%,在F1评分度量下平均改进率是32.6%。
不难发现,通过药物的两种增强表示之间的对比学习,模型可以学习到更好的药物表示,从而提高了模型的泛化能力。此外,解码层的额外输入增强了模型的重建能力。这也在一定程度上增强了药物和疾病的代表性,从而提高了模型的预测能力。
3.6 Case study(RQ4)
我们从 Gottlieb 数据集中选择了3种药物,以验证 SSLDR 在实际应用中的有用性。这三种药物是 doxorubicin、gemcitabine 和 vincristine,它们都用于治疗肿瘤疾病。表5列出了SSLDR模型为这三种药物推荐的疾病。表中加粗的疾病表明,它们已在CTD数据集中得到验证与相应药物具有治疗关系。对于药物 doxorubicin 和 gemcitabine,两种新疾病的预测是正确的,都在第一和第五位。最后一种药物 vincristine 有3种疾病在推荐疾病列表中得到了正确的推荐。
上述案例研究的结果表明,与以往的计算药物重新定位模型相比,SSLDR 模型推荐的疾病列表具有较高的命中率,并且大多数疾病都是在较高的排名条件下成功预测的。因此,这可以大大加快药物筛选和研发过程,对于实际应用场景具有很大的经济和实用价值。
4. Conclusion
在这项工作中,我们提出了一个多任务自监督学习框架SSLDR,用于解决计算药物重定位中的标签稀疏问题。在联合训练策略下,该框架使用辅助任务来改善药物的潜在因素,以提高主任务 药物-疾病关联预测
的泛化性能。我们还提出了一种多输入解码器,以提高自动编码器挖掘药物或疾病潜在因子的能力。在多个真实数据集上的实验结果验证了多任务自监督学习框架和多输入解码器的优越性。
对于未来的工作,我们计划探索如何改善疾病的潜在因子,以便更好地应用于计算药物重定位场景。此外,本文提出的框架是基于矩阵分解模型的,如何将该框架应用于基于图的模型也是我们未来工作的方向。