0. \textbf{0. } 0. 概述
1️⃣ NER \text{NER} NER的三个子任务
任务 描述 示例 平面实体识别 提取简单/非嵌套的命名实体 嵌套实体识别 提取嵌套的命名实体 不连续实体识别 提取不连续片段组成的实体 2️⃣基于深度学习 NER \text{NER} NER的四种范式
范式 描述 实现 序列标注 视单词为序列输入并分配标签 用 BiLSTM/BERT \text{BiLSTM/BERT} BiLSTM/BERT编码 →CRF \text{→CRF} →CRF标记 机器阅读理解 将 NER \text{NER} NER问题转换为对话 构造问题 - \text{-} -文本对,用 BERT \text{BERT} BERT提取答案 Token-Pair \text{Token-Pair} Token-Pair 建立文本中每两个 Token \text{Token} Token的关系 用 Transformer/BERT \text{Transformer/BERT} Transformer/BERT为 Token \text{Token} Token编码 生成 通过生成序列的方式识别命名实体 用 GPT \text{GPT} GPT来输出实体及其类型
1. \textbf{1. } 1. 序列标注法:平面实体✅ / / /嵌套实体❌ / / /不连续实体❌
1️⃣ BIO / BIOES \textcolor{green}{\text{BIO}}/\textcolor{red}{\text{BIOES}} BIO/BIOES实体标注方法:
符号 含义 示例 B \text{B} B 实体的开头( Begin \text{Begin} Begin) John \text{John} John标记为 B-PER \text{B-PER} B-PER表示人名的开始 I \text{I} I 实体的内部( Inside \text{Inside} Inside) Sumith \text{Sumith} Sumith标记为 I-PER \text{I-PER} I-PER表示人名的内部 O \text{O} O 非实体 剧中 lives/in/and... \text{lives/in/and...} lives/in/and...等都应标记为 O \text{O} O E \text{E} E 实体的结尾( End \text{End} End) Sumith \text{Sumith} Sumith也可标记为 E-PER \text{E-PER} E-PER S \text{S} S 单个词的实体( Single \text{Single} Single) N/A \text{N/A} N/A
- BIO \textcolor{green}{\text{BIO}}\textcolor{red}{\text{}} BIO示例:
- BIOES \textcolor{green}{\text{}}\textcolor{red}{\text{BIOES}} BIOES示例:
2️⃣ LSTM-CRF \text{LSTM-CRF} LSTM-CRF架构:
![]()
- 输入:将句子 X = { X 1 , X 2 ,.., X n } X\text{=}\{X_1,X_2\text{,..,}X_n\} X={X1,X2,..,Xn}转化为词嵌入向量
- 编码:将词嵌入向量通过双向 LSTM \text{LSTM} LSTM得到编码(上下文表示) h t =BiLSTM ( X ) h_t\text{=BiLSTM}(X) ht=BiLSTM(X)
- 解码:通过特征函数计算得到 P ( Y ∣ X ) = exp ( ∑ t = 1 n f ( y t , y t − 1 , h t ) ) ∑ Y ′ exp ( ∑ t = 1 n f ( y t ′ , y t − 1 ′ , h t ) ) \displaystyle{}P(Y|X)=\cfrac{\exp \left(\displaystyle{}\sum_{t=1}^n f\left(y_t, y_{t-1}, h_t\right)\right)}{\displaystyle{}\sum_{Y^{\prime}} \exp \left(\sum_{t=1}^n f\left(y_t^{\prime}, y_{t-1}^{\prime}, h_t\right)\right)} P(Y∣X)=Y′∑exp(t=1∑nf(yt′,yt−1′,ht))exp(t=1∑nf(yt,yt−1,ht))
- 输出:使得 P ( Y ∣ X ) P(Y|X) P(Y∣X)最大的 Y Y Y
3️⃣ BERT-CRF \text{BERT-CRF} BERT-CRF架构:就是把 BiLSTM \text{BiLSTM} BiLSTM换成 BERT \text{BERT} BERT,更能捕获深层次的语义特征
2. \textbf{2. } 2. Token \textbf{Token} Token对法:平面实体✅ / / /嵌套实体✅ / / /不连续实体✅
1️⃣基本概念:
概念 含义 示例 Token \text{Token} Token 输入文本中的基本单元,可以是单词/字符 University, of, Melbourne \text{University, of, Melbourne} University, of, Melbourne Token-Pair \text{Token-Pair} Token-Pair 标有起始的一对 Token \text{Token} Token,此处指实体的起止 Universit, Melbourne \text{Universit, Melbourne} Universit, Melbourne Span \text{Span} Span 起始 Token \text{Token} Token间的文本,用起始索引 ( i , j ) (i,j) (i,j)表示 University of Melbourne \text{University of Melbourne} University of Melbourne 2️⃣模型概述:
![]()
- 预处理:将输入文本分词( Token \text{Token} Token化) + \text{+} +词嵌入,得到词向量 { x 1 , x 2 , x 3 ,... } \{x_1,x_2,x_3\text{,...}\} {x1,x2,x3,...}
- 编码层:用 BERT \text{BERT} BERT生成每个 Token \text{Token} Token的上下文表示,得到 h i =BERT ( x i ) h_i\text{=}\text{BERT}(x_i) hi=BERT(xi)
- 交互层:将所有任意 h i h j h_ih_j hihj拼接 / / /加权求和 / / /注意力,得到初始 Span \text{Span} Span及得分 f ( h i , h j , t ) =score i j , t f\left(h_i, h_j, t\right)\text{=score}_{i j, t} f(hi,hj,t)=scoreij,t
Item \textbf{Item} Item 含义 ( i , j ) (i,j) (i,j) Span \text{Span} Span的起始( i i i)和结束( j j j)位置 score i j , t \text{score}_{i j, t} scoreij,t 表示片段 ( i , j ) (i,j) (i,j)属于 t t t类实体的分数 - 分类层:依据 score i j , t \text{score}_{i j, t} scoreij,t将不同 Span \text{Span} Span分类到各自的 t t t类实体中,最终组成预测矩阵 [L,L,N] \text{[L,L,N]} [L,L,N]
Item \textbf{Item} Item 含义 维度含义 L \text{L} L为输入文本 Token \text{Token} Token长度, N \text{N} N为实体类别的数量 矩阵含义 [L=i,L=j,N=t] \text{[L=i,L=j,N=t]} [L=i,L=j,N=t]表示位于 ( i , j ) (i,j) (i,j)间 Span \text{Span} Span,属于实体类别 t t t的分数值 score i j , t \text{score}_{i j, t} scoreij,t 3️⃣交互层的几种方法
方法 f ( h i , h j , t ) \boldsymbol{f\left(h_i, h_j, t\right)} f(hi,hj,t) 含义 乘法式 ( W i , t h i + b i , t ) T × ( W j , t h j + b j , t ) (W_{i, t} h_i\text{+}b_{i, t})^{T}\text{×}(W_{j, t} h_j\text{+}b_{j, t}) (Wi,thi+bi,t)T×(Wj,thj+bj,t) 用点积测量头部和尾部的相似性 加法式 W t × [ tanh ( W h [ h i ⊕ h j ] + b h ) ] + b t W_t\text{×}[\tanh \left(W_h\left[h_i \text{⊕} h_j\right]\text{+}b_h\right)]\text{+}b_t Wt×[tanh(Wh[hi⊕hj]+bh)]+bt 将 h i h j h_ih_j hihj首尾相接→线性变换→激活 双仿射式 h i T U t h j + W t [ h i ⊕ h j ] + b t h_i^T U_t h_j\text{+}W_t\left[h_i \text{⊕} h_j\right]\text{+}b_t hiTUthj+Wt[hi⊕hj]+bt 同时捕捉头部和尾部的高维语义 4️⃣示例:嵌套 / / /不连续实体识别问题得以解决
- 平面实体识别: [L,L,N=Person] \text{[L,L,N=Person]} [L,L,N=Person]层得分矩阵(不打马赛克图片会停止访问,服了)
- 嵌套实体识别: [L,L,N=Location/Person] \text{[L,L,N=Location/Person]} [L,L,N=Location/Person]层得分矩阵,嵌套实体得以识别
- 不连续实体识别: [L,L,N=Disorder/Middle of Disorder] \text{[L,L,N=Disorder/Middle of Disorder]} [L,L,N=Disorder/Middle of Disorder]层得分矩阵,不连续实体得以识别
3. MRC \textbf{3. MRC} 3. MRC法: 平面实体✅ / / /嵌套实体✅ / / /不连续实体✅
1️⃣模型描述
- 核心思想:将每种实体类型表示为自然语言查询,并通过回答这些查询来提取实体
- 主要流程:
![]()
流程 描述 输入 问题/查询( E.g. \text{E.g.} E.g.文本中的人名是哪个) + + +原始文本 处理 用 NERT/GPT \text{NERT/GPT} NERT/GPT等对文本进行编码 输出 通过分类层,得到最佳的答案 - 示例:
- 对平面实体的抽取:对于人名的查询
- 对嵌套实体的抽取:分别对于人名/地点的查询
- 对不连续实体的抽取:对于疾病名字/疾病中间名字的查询
4. \textbf{4. } 4. 生成法: 平面实体✅ / / /嵌套实体✅ / / /不连续实体✅
1️⃣模型概述
- 含义:采用 seq2seq \text{seq2seq} seq2seq模式,通过生成式得到实体
- 示例:
- 输入: have muscle pain and fatigue \text{have muscle pain and fatigue} have muscle pain and fatigue
- 生成: disorder: “muscle pain”, “muscle fatigue” \text{disorder: “muscle pain”, “muscle fatigue”} disorder: “muscle pain”, “muscle fatigue”
2️⃣模型结构:懒得说了,自己看吧
![]()