W2NER学习

W2NER学习

论文
code
ner任务包含实体flat(平铺)、nested(嵌套)、 discontinuous(不连续)这三种类型的实体识别,之前的研究工作中,主要通过以下四种方式进行ner:
1.序列标注(sequence labeling)
2.基于图(hypergraph-based methods)
3.seq2seq
4.基于片段(span-based)
前3种方法都没办法实现三种实体类型的统一识别,第四种方式虽然实现了三种实体类型的统一识别,但仍然存在片段长度受限和计算复杂性高的问题。
之前的ner范式都是关注实体词边界,而在本文种则重点关注词内部的关联关系。

任务范式

本文将ner任务转换为词与词之间的分类任务,对于词汇,存在3种类别信息,分别是
‘None’:两个词之间不存在任何关系
‘Next-Neighboring-Word’:标记两个词是否相邻(用于识别嵌套实体和不连续实体)
‘Tail-Head-Word-*’:标记词尾对应的词首和实体类型,*表示对应的实体类型(用于识别实体边界和实体类型)

模型结构

Encoder Layer

使用bert生成word pieces的向量表示,通过最大池化将几个word pieces的向量归一得到word的向量,之后接一层双向LSTM得到最后的word向量。

Convolution Layer
  • Conditional Layer Normalization
    通过Conditional Layer Normalization得到单词间的向量关系表达 V i j V_{ij} Vij
    V i j = C L N ( h i , h j ) = γ i j ⊙ h j − μ σ + λ i j V_{ij}=CLN(h_i,h_j)=\gamma_{ij} \odot \frac{h_j-\mu}{\sigma}+\lambda_{ij} Vij=CLN(hi,hj)=γijσhjμ+λij
  • BERT-Style Grid Representation Build-Up
    此处模仿bert的输入,将输入分为三个 B × N × N × D B\times N\times N\times D B×N×N×D的矩阵,拼接后使用多元感知机来得到具有位置信息和区域信息的向量表达。
    **在源码中实际使用 dropout+conv2d+gelu 来进行降维和信息混合,conv2d为1*1的卷积核 **
  • Multi-Granularity Dilated Convolution
    模仿TextCNN,使用多个不同膨胀率 l ∈ { 1 , 2 , 3 } l\in \{1,2,3\} l{1,2,3}的2维膨胀卷积去捕获不同距离的单词间的交互,一个膨胀卷积中的计算可以用如下公式表示:
    Q l = σ ( D C o n v l ( C ) ) \mathbf{Q^l}=\sigma (DConv_l(\mathbf{C})) Ql=σ(DConvl(C))
    Q l ∈ R N × N × d c \mathbf{Q^l}\in \mathbb{R}^{N\times N\times d_c} QlRN×N×dc表示膨胀率为l的膨胀卷积输出结果, σ \sigma σ是GELU激活函数。

最后我们合并不同膨胀卷积的输出表达得到最后的词对网格表达 Q \mathbf{Q} Q
Q = [ Q 1 , Q 2 , Q 3 ] ∈ R N × N × 3 d c \mathbf{Q}=[\mathbf{Q_1},\mathbf{Q_2},\mathbf{Q_3}] \in \mathbb{R}^{N\times N\times 3d_c} Q=[Q1,Q2,Q3]RN×N×3dc

Co-Predictor Layer

使用MLP和biaffine分别预测词对之间的关系,最后使用MLP对两个模块的预测结果进行合并。

  • Biaffine Predictor
    使用encoder layer的输出 H = h 1 , h 2 , h 3 , . . . , h N ∈ R N × d h \mathbf{H}={\mathbf{h_1},\mathbf{h_2},\mathbf{h_3},...,\mathbf{h_N}}\in \mathbb{R}^{N\times d_h} H=h1,h2,h3,...,hNRN×dh作为biaffine predictor的输入,通过下列步骤计算词对之间的关系 y i , j ′ \mathbf{y'_{i,j}} yi,j:
    s i = M L P 2 ( h i ) o j = M L P 3 ( h j ) y i , j ′ = s i T U o j + W [ s i ; o j ] + b \mathbf{s_i}=MLP_2(\mathbf{h_i}) \\ \mathbf{o_j}=MLP_3(\mathbf{h_j}) \\ \mathbf{y'_{i,j}}=\mathbf{s_i}^T\mathbf{U}\mathbf{o_j}+\mathbf{W}[\mathbf{s_i};\mathbf{o_j}]+\mathbf{b} si=MLP2(hi)oj=MLP3(hj)yi,j=siTUoj+W[si;oj]+b
  • MLP Predictor
    使用convolution layer输出的词对网络表达 Q \mathbf{Q} Q作为MLP Predictor的输入,通过多层感知机计算得到词对间关系 y i , j ′ ′ \mathbf{y''_{i,j}} yi,j′′
    y i , j ′ ′ = M L P ( Q i , j ) \mathbf{y''_{i,j}}=MLP(Q_{i,j}) yi,j′′=MLP(Qi,j)
    最终得分通过合并两个预测得分得到 y ′ y' y y ′ ′ y'' y′′
    y i , j = S o f t m a x ( y i , j ′ ′ + y i , j ′ ) \mathbf{y_{i,j}}=Softmax(\mathbf{y''_{i,j}}+\mathbf{y'_{i,j}}) yi,j=Softmax(yi,j′′+yi,j)
Decoding

在解码时使用NNW用于构建词语关联关系,使用THW得到词语的边界和实体类型,通过两种标签体系结合实现对不同类型的实体正确识别。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值