1.基于神经网络的药物疾病关系分类方法,其特征在于,包括以下步骤:
S1、构建药物疾病候选关系实例集:采集公开已标注的数据集,数据集中的文章只包含标题和摘要;对于共现在一篇文章里的所有药物和疾病实体,抽取候选实体<药物MeSH ID,疾病MeSH ID>,从而产生候选实例,其中的MeSH表示美国国立医学图书馆编制的医学主题词表,ID表示实体在MeSH中的标识符;对每对实体进行标注;
S2、对生物医学文献进行文本处理:利用文本处理技术对文本进行基本文本处理、标记候选实体、分句和对单词进行词性PoS标记、固定文章和句子的输入长度;
其中:
A1、基本文本处理:每篇文章作为每对候选实例关系提取的文本,每篇文章包含整个摘要和相应的标题;对于没有出现在药物或疾病实体中的数字串,用一个特殊的字符串“ZHWNUM”代替;删除不包含候选药物或疾病的括号内的文本;出现在文章中的每个药物或者疾病用它相应的MeSH ID代替;而且,在药物MeSH ID前加了前缀“C_”,在疾病MeSH ID前加了前缀“D_”,以此区分一个MeSH ID是药物还是疾病;
A2、标记候选实体:在候选实体前后添加特殊的符号以突出不同的候选实体;
A3、分句和对单词进行词性PoS标记:使用Stanford CoreNLP工具,完成文章的分句以及对句子中每个词的词性标记;
A4、固定文章和句子的输入长度:设定每篇文章包括m个句子,每个句子有固定长度n;m的值为所有文章具有的最大句子数,对于少于m个句子的文章,以空集补齐;n的值为所有句子中最多的单词数,对于少于n个单词的句子,用一个特殊的符号在句子后面补齐;
S3、构建领域知识:从包含药物疾病关系的相关数据库提取所有药物疾病三元关系组,构建领域知识;每个三元组包括药物MeSH ID、疾病MeSH ID和它们的关系;每个候选实例的初始知识为包含相应药物和疾病MeSH ID的三元组中的关系;
S4、构建输入向量:输入向量包括输入特征向量和知识向量,其处理方法如下:
B1、输入特征向量的构建:给定一个包含m个句子的文章D={S1,S2,…,Si,…,Sm},有固定长度n的每个句子表示为Si={w1,w2,...,wj,...,wn};联合一个词和它的词性PoS标记区分一个词在不同句子中的语义;每个单词wj可以表示为两个特征向量:单词自身word和它的词性PoS标记,分别表示为 和B2、知识向量的构建:一对药物疾病从领域数据库中提取的的关系称为知识,表示为R={r1,r2,r3,…,rk},k表示从领域数据库中可能提取的关系的最多个数;如果从领域数据库中提取某药物和疾病的关系类别数少于k,通过赋值为null将R长度补齐为k;每个知识rj的向量表示为 知识R表示成关系嵌入向量的数组B3、句子向量的构建:
构建向量 用以表示单词wj的语义,其中xj∈Rd,d=m1+m2,d表示向量xj的维数,Rd表示d维的实数向量空间;m1和m2分别是单词和词性PoS嵌入向量的维数;“||”表示连接操作;句子Si表示为单词嵌入向量形成的数组S5、构建篇章级语义信息子网络模型:利用双向长短期记忆网络LSTM和卷积神经网络CNN建立学习文章基本语义信息的网络子模型;包括:嵌入层,双向LSTM层1,双向LSTM层2,卷积层,最大池化层、双向LSTM层3以及合并层;子网络模型的输出即合并层的输出向量D'用以表示文章的基本语义;
S6、采用Attention机制形成知识的最终表示:依赖于S5中学习到的文章基本语义信息D',应用Attention机制到步骤B2中的知识向量;利用一个行向量α中的每一项αj来量化知识中每个关系知识rj相对于一篇文章语义的相关程度;其中j∈[1,k],k表示上面从领域数据库中提取的关系的最多数目;αj的定义如下公式所示:其中,D'是步骤S5中子网络模型的输出, 是知识rj的嵌入向量,exp表示以e为底的幂指数函数,s表示相关程度计算函数, 表示从领域数据库中提取的第j'个关系知识rj'的向量表示,其定义如下:其中,W是需要学习的权矩阵,v是知识向量的维度,dot表示点积操作;知识中每个关系最初的嵌入向量 和学到的相关程度因子αj进行面向元素的乘法从而获得知识的新表示r'j,其定义如下:然后,面向一对特定药物疾病的知识最终表示为K',K'通过提取的知识中所有关系的累加和实现,其公式如下:K'=∑r'j
S7、构建药物疾病关系分类模型:用向量连接操作连接步骤S6中的K'和步骤S5中子网络模型的输出D',得到融合知识后的候选实例所在文章的表示Ds=D'||K',然后进行有监督学习建模;利用带有softmax函数的逻辑斯谛回归分类器作为候选实例的分类器;
softmax函数以融合知识后的文章的表示Ds作为输入,其输出y表示候选实例在每个不同的关系类别标签上的概率分布;第j类标签的概率分布表示为p(y=j|D)=soft max(DsWs+bs),D表示给定的文章,Ws是需要学习的权矩阵,bs是偏置向量,j表示关系类别标签索引;概率最大的类别对应的标签为候选实例的关系类型,表示为 其中C是药物疾病分类可能有的标签的集合;设定用于预测误差的损失函数为交叉熵损失函数l是训练集中标注的样本数,上标k表示第k个被分类的文章,θ为模型中的所有参数;
S8、预测生物医学文献中的药物疾病关系:利用步骤S1中的方法构建候选实例,步骤S2中的A1方法对文章进行初始处理;然后利用步骤S2中的A2方法标记候选实体,A3方法进行分句,进而获取句子中的单词以及每个单词的词性PoS标签,A4方法对文章和句子长度进行补齐;利用步骤S3中方法获得每个候选实例在领域数据库中的初始知识;然后查相应向量字典得到这些特征的索引符号;基于输入,模型会输出每对候选实例在各个类别上的概率值,其中概率值最大的那一类即为候选实例对应的类别标签,从而得到药物疾病间的关系类型。
2.根据权利要求1所述的基于神经网络的药物疾病关系分类方法,其特征在于步骤S1中,所述的对每对实体进行标注的具体方法为,每个候选对被标注为正例还是负例,主要依赖于:这个候选对是否在一篇文章里已经被标注,如果已经标注为药物诱发疾病关系则为正例,否则为负例;限制句间的候选对应为连续的K个句子之间的实体对,对于超出句子跨度K的候选实例标定为负例。
3.根据权利要求1所述的基于神经网络的药物疾病关系分类方法,其特征在于,步骤S4中,步骤B1所述的 和 获取方法如下:每个特征组有一个嵌入字典;假设 是第k个特征组的嵌入字典,其中mk是一个特征嵌入向量的维数,lk是字典Vk包含的特征数目;每个嵌入字典中的词被随机初始化,或者用预先训练的词嵌入向量初始化;对一个单词wi来说,通过查相应的嵌入字典可以映射每个特征在字典中的索引符号为一个实值行向量,从而得到单词wi的word和词性PoS特征对应的嵌入向量 和
4.根据权利要求1所述的基于神经网络的药物疾病关系分类方法,其特征在于,步骤S4中,步骤B2所述的知识rj的向量表示 的获取方法如下:从包含药物疾病关系相关数据库提取的所有药物疾病三元关系组,用transE工具进行训练,生成知识向量嵌入字典;对一个知识rj来说,通过查知识向量嵌入字典可以映射每个关系在字典中的索引符号为一个实值行向量,从而得到知识rj对应的嵌入向量
5.根据权利要求1所述的基于神经网络的药物疾病关系分类方法,其特征在于,在步骤S5中,双向LSTM层采用双向LSTM网络,它由一个前向LSTM和一个后向LSTM组成;对于一篇文章的句子Si来说,前向和后向两个LSTM在最后时刻n的输出分别为 和 它们连接在一起形成一个新的向量 符号“||”表示连接操作,S'i反映了句子Si的高层语义;于是,文档D表示成一个句子嵌入向量的数组Demb=[S'1,S'2,...,S'i,...,S'm];双向LSTM层2和双向LSTM层3的网络结构与双向LSTM1相同;双向LSTM层2在时刻m的输出表示一篇文章里相关句子间基于时序上下文的高层语义D'l;双向LSTM层3在时刻n的输出表示一篇文章的主题语义D't。
6.根据权利要求1所述的基于神经网络的药物疾病关系分类方法,其特征在于,在步骤S5中卷积层和最大池化层表示如下:句子间的局部特征通过作用在Demb上的CNN来捕获,并且这个CNN带有固定大小的窗口w和f个过滤器,窗口w表示捕获相邻的w个句子的局部语义特征,其公式如下:Z=ReLU(WDemb+b)
其中,W是权矩阵,b是偏置向量;ReLU是修正的线性激活函数;卷积层的作用是探测输入特征的局部连接,池化层的作用是把语义上相似的特征合并起来减少特征表示的维度;
最大池化操作用来从句子间的局部依存中收集对全局重要的特征,看作是候选药物疾病在整篇文章中的语义表示D'c,其体现了邻接句子间的局部上下文信息;最大池化的定义如下公式所示:D′c=max Z(·,i)0≤i<f
其中,Z(·,i)表示矩阵Z的第i列,max函数表示取第i列中的最大值。
7.根据权利要求1所述的基于神经网络的药物疾病关系分类方法,其特征在于,在步骤S7中,采用RMSprop优化算法来更新损失函数。