SMedBERT_医学语义知识增强型预训练模型

中文标题:SMedBERT_医学语义知识增强型预训练模型

英文标题:SMedBERT: A Knowledge-Enhanced Pre-trained Language Model with Structured Semantics for Medical

发布平台:ACL

Proceedings of the 59th Annual Meeting of the Association for Computational Linguistics and the 11th International Joint Conference on Natural Language Processing (Volume 1: Long Papers)

发布日期:2021-01-01

引用量(非实时):22

DOI:10.18653/v1/2021.acl-long.457

作者:Taolin Zhang, Zerui Cai, Chengyu Wang, Minghui Qiu, Bite Yang, Xiaofeng He

关键字: #SMedBERT #医药 #知识图谱

文章类型:conferencePaper

品读时间:2022-09-02 11:12

1 文章萃取

1.1 核心观点

本文首次提出并开源了基于医学类大规模语料并完成医学知识注入的自然语言处理预训练模型SmedBERT。SmedBERT模型先借助PEPR排序算法筛选出每个实体在知识图中的邻接实体,之后构建混合注意力机制,借助门控机制选择性地融合邻接实体及其类型信息,最后通过两个自监督的预训练任务(遮掩实体预测MMeM,遮掩邻接实体预测MNeM)引导知识的注入理解过程。最终训练得到的SmedBERT模型性能十分优秀。

1.2 综合评价

  • 在融合结构化知识方面借助并融合了很多传统的技巧(PageRank,sampled-softmax,负采样 ,门控机制),也有很多独特创新(PRPR,混合注意力等)
  • 实验分析严谨,最终表现显著优于其他常见模型,对代码和模型进行了开源
  • 符号定义很多,格式也有些随意,阅读体验不太好。比如得分矩阵V的下标既表示实体,也可能表示迭代次数(注意:本笔记中的部分符号与论文存在部分差异)。

1.3 主观评分:⭐⭐⭐⭐

2 精读笔记

2.1 背景知识

传统大规模预训练模型(简称PLM,如BERT、RoBERTa)专注于对文本内容的嵌入表示,对应的常见三种改进方向包括:Transformer编码器结构、自监督任务和多任务学习

知识增强型预训练模型(KEPLM)主要有以下三种分类:

  • 基于实体嵌入的知识增强:如ERNIE-THU、KnowBERT
  • 基于实体描述的知识增强:如E-BERT、KEPLER
  • 三元组转语句的知识增强:如KBERT、CoLAKE

医药领域的PLM的常见三种分类:

  • 通用PLM基于医药领域语料的继续训练:如BioBERT、BlueBERT、SCIBERT
  • 基于大规模医院领域语料的从零开始训练:如PubMed,未收录词(OOV)问题
  • 使用其他自监督任务进行预训练:如MC-BERT通过遮盖医疗类实体和短语来学习其中复杂的结构和概念;DiseaseBERT借用医学术语及其类别标签进行预训练

传统知识增强预训练模型(KEPLM)多关注于知识图中的三元关系(头实体-实体关系-尾实体),而忽视实体间的邻接结构所包含的语义信息。而本文则从以下两个方面补充了邻接实体的相关信息:

  • 不同实体可能具备相似的邻接实体,这能提供额外的语义信息。比如”肺炎“或”呼吸综合征“都可能是由”新型冠状病毒“引起的(原因-病症类关系)
  • 每个实体的所有邻接实体可以汇总构成该实体的”上下文“,以补充知识结构类信息

知识图与邻接实体-图示:

2.2 模型细节

模型的输入词元:w1,w2,...,wn

模型的隐藏层输出(词元的嵌入表示):h1,...,hn,维度为d1

语料长度为M,其中被提及的实体词(mention-span)em构成的集合为E

知识图谱:G=(ε,R),其中εR分别表示实体和实体间的关系

知识三元组:(eh,r,et),其中符号分别表示头实体、实体关系、尾实体

本文使用TransR模型生成实体和关系的嵌入表示:ΓentΓrel,维度为d2

本文提出的SMedBERT主要包括三个部分:

  • TopK实体排序模块:针对每个被提及实体词(mention-span)找到K个最重要的邻接实体
  • 邻接实体混合注意力:将结构化语义知识(主要包括类别信息、邻接节点信息和门控类信息)进行融合,并注入编码器层
  • 邻接实体上下文建模:以遮掩实体或邻接实体为建模目标,促进模型对不同实体的理解,也提升改善实体和邻接实体之间的交互作用

SMedBERT的模型结构(左)和模型细节(右):

2.2.1 TopK实体排序模块

TopK实体排序模块-PEPR(Personalized PageRank):

  • PEPR 改编自谷歌的 PageRank 排序算法,能迭代式地计算出邻接节点的权重并进行排序
  • 初始化节点em的得分向量V=[ve1,...,veM],其中M为实体的总数量。当eiE时,vei=teiT,其中tei表示ei在语料中的词频;当eiE时,vei=1M
  • 得分向量的第l次迭代过程:Vl=(1α)AVl1+αP,其中A表示标准化的邻接矩阵,α表示阻尼因子(随机跳转的概率),P表示服从均匀分布的跳转概率矩阵
  • 重复n次以上迭代过程,得到节点e的权重向量Vn,选择其中最重要的K个实体,组成重要邻接实体的集合Nem=em1,em2,...,emK
2.2.2 邻接实体混合注意力

知识点补充说明:自注意力池化

  • 自注意力池化机制最初是用于将词向量联合转化为句向量的方法
  • 将词元的嵌入表示按顺序进行拼接,得到句子的矩阵形式表示H=[h1,..,hn]
  • 通过以下变化计算句子中每个词元的权重:A=softmax(W2tanh(W1HT))
  • 最终的句子嵌入表示为词元的加权求和M=AH,更多细节可参阅论文原文
  • 自注意力池化可看作使用self-attention的方法来替换原本的最大池化操作

邻接实体混合注意力(Mention-neighbor Hybrid Attention)需要分别提取邻接实体的类别信息、实体的邻接节点信息,并借助门控单元控制知识(邻接信息)的注入

  1. 计算邻接实体的类别注意力(Neighboring Entity Type Attention)
  • 筛选实体emK个重要邻接实体中所有类型为τ的邻接实体,并构成集合Eemτ
  • 实体em关于τ的类型信息可近似看作所有类型为τ的邻接实体的嵌入表示之和,即:hemτ=ΣemiEemτhemi
  • 假设实体em对应的多词元嵌入表示为(hi,...,hj),其中hiRd1,通过以下公式可将多词元的嵌入表示转化为实体的嵌入表示hemRd2

hem=LN(σ(fsp(hi,...,hj)Wbe))

  • 上式中,LN表示层归一化,σ表示激活函数(本文中在此使用GELU作为激活函数),fsp表示自注意力池化算子,WbeRd1×d2为可训练参数
  • 根据实体的嵌入表示和实体关于τ的类型信息,计算实体关于类别τ的注意力得分:

ατ=tanh(hemWt+hemτWt)Wα

  • 上式是一种加性注意力得分的计算,以实体信息$h'{e_m}qq\tauh^{\tau}{e_m}k\tau$的注意力得分。
  • 上式中,WtRd2×d2WtRd2×d2WαRd2×1均为可训练参数
  • 同理,实体em针对不同的τ都会有一个注意力得分α,将所有针对类型的注意力的得分汇总并进行归一化(注意力得分转为注意力权重,权重和为1),使得α转化为α

实际情况中,词级词元可能很难组成实体。因此本文中主要使用字符级词元

  1. 实体的邻接实体注意力(Neighboring Entity Node Attention)
  • 假设实体em存在一个类型为τ的邻接实体emi,其对应的嵌入表示为hemi
  • 则实体em关于邻接实体emi的注意力得分如下:

βememi=(hemWq)(hemiWk)Td2ατ

  • 上式中,WqRd2×d2WkRd2×d2均为可训练参数,d2是实体嵌入表示的维度
  • 同理,实体em针对每个邻接实体都有一个注意力得分,通过归一化转化为权重:

βememi=exp(βememi)ΣemiNemexp(βememi)

  • 加权汇总实体em的所有邻接实体的混合信息:

h^em=ΣemiNemβememi(hemiWv+bv)

  • 借助MLP和残差连接进一步丰富实体em的邻接实体混合信息:

hem=LN(h^em+(σ(h^emWl1+bl1)Wl2))

  • 其中,WvRd2×d2Wl1Rd2×4d2Wl2R4d2×d2均为可训练的网络参数,bvRd2bl1R4d2均为可训练的偏置项
  1. 基于门控机制的知识注入
  • 拼接融合实体em的信息和邻接实体的混合信息

hemf=σ([hemf||hem]Wmf+bmf)h~emf=LN(hemfWbp+bbp)

  • 上式中,WmfR2d2×2d2WbpR2d2×d1均为可训练的网络参数,bmfR2d2bbpRd1均为可训练的偏置项。||表示拼接操作。结果输出$\widetilde{h}'{e{mf}} \in R^{d_1}$。
  • 本文研究发现,以词元hi为基本单位进行知识的注入的效果更好。同时本文将门控单元的输出gi作为控制知识是否注入的开关,并输出完成知识注入的词元嵌入表示:

gi=tanh(([hi||h~emf])Wug+bug)hif=σ(([hi||gih~emf]Wex+bex)+hi

  • 上式中,WugR2d2×d1WexR2d2×d1均为可训练的网络参数,bugRd1bexRd1均为可训练的偏置项。表示点积操作(逐元素相乘,element-wise multiplication)
2.2.3 邻接实体上下文建模

构建两个新的预训练任务(MNeM,MMeM),充分利用注入的结构化知识

  • 借助上一节最终的知识注入版词元嵌入表示,构建实体的知识注入版嵌入表示:

hmf=LN(σ(fsp(hif,...,hjf)Wsa))

  • 本文借鉴了skip-gram模型中随机负采样以及TransR模型中的得分函数,最终遮掩邻接实体建模(Masked Neighbor Modelng,MNeM)任务对应的损失函数:

LMNeM=ΣNemlogexp(fs(θ))exp(fs(θ))+KEenQ(en)[exp(fs(θ))]

  • 上式中,θ表示知识三元组(em,r,emi),其中emiNemem的邻接实体。θ是负采样得到的错误知识三元组,负采样过程满足Q分布 ,其中的采样结果为错误的邻接实体enK表示采样个数。fs为相容性函数(compatibility function),其定义如下:

fs(em,r,emi)=hmfMr+hr||hmfMr+hr||(hemiMr)T||hemiMr||μ

  • 上式借鉴自TransR模型中的得分函数,描述了”头实体+实体关系“与”尾实体“之间的相容性。其中Mr为可训练参数,μ表示缩放因子(超参数),fs=μ时二者相容性最高

  • 针对每一个负采样结果,都需要计算fs(θ)。为了降低计算成本,可考虑对fs进行化简,去除重复的henMr计算

hmfMr+hr(hemiMr)T=[hmf1][Mrhr][Mrhr]T[hen0]T=[hmf1]MPr[hen0]T

  • 最后再补偿负采样函数Q(emi)引入的偏移量,最终的fs如下所示:

fs(em,r,emi)=[hmf1]MPr||[hmf1]MPr||[hen0]||[hen0]||μμlogQ(emi)

  • 根据BERT模型提取到的词元嵌入表示hip,构建实体的另一种嵌入表示:

hmbert=LN(σ(fsp(hip,...,hjp)Wsa))

  • 最终遮掩实体建模(Masked Mention Modelng,MMeM)任务对应的损失函数:

LMMeM=ΣmiMs||hmifhmibert||2

  • 上式为常见的均方误差损失,描述了两种方式得到的实体嵌入表示的差异性,其中Ms表示所有的样本出现的实体集合
  • 最终整合所有的损失函数,得到SmedBERT的目标函数:

L=LEX+λ1LMNeM+λ2LMMeM

  • 上式中,LEX表示常规BERT的语序预测和词元遮盖预测任务对应的损失;两个λ为超参数,用于调整不同损失函数的权重

2.3 实验分析

预训练数据:爬取并清洗丁香园论坛的文本数据,593万文本段,30亿词元(4.9GB)

预设参数:d1=768,d2=200,K=10,μ=10,λ1=2,λ2=4

知识图谱:OpenKG中与病症相关的中文知识和DXYKG(丁香园自己构建的医疗类图谱),实体数分别约为13.96万和15.25万,知识三元组数分别约为100.78万和376.47万

下游任务:使用CBLUE中文医疗NLP基准测试,主要包括命名实体识别(DXY-NER),两个关系抽取(DXY-RE,CHIP-RE),知识问答(WebMedQA)等任务

超参实验:K值选择对模型效果的影响

  • 随着K值的增加,邻接实体的信息被逐渐注入
  • 当K取值过高时,会引入噪声,导致模型效果先增后减
  • K=10时,模型效果大概是最优的

消融实验:

  • 混合注意力的引入对性能提升最大

其他实验:

  • 针对语义相似度问题对比,SmedBERT在不同类型数据均存在明显的优势
  • 针对不同实体覆盖率情况进行对比,SmedBERT优势明显且稳定

相关资源

往年同期文章