论文解读系列| 03:【NER】FGN模型详解

本文涉及的产品
实时计算 Flink 版,5000CU*H 3个月
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
实时数仓Hologres,5000CU*H 100GB 3个月
简介: 汉字作为象形文字有其潜在的特殊字形信息,而这一点经常被忽视。FGN是一种将字形信息融入网络结构的中文NER方法。除了用一个新型CNN对字形信息进行编码外,该方法可以通过融合机制提取字符分布式表示和字形表示之间的交互信息。

基本信息

论文地址:
https://arxiv.org/abs/2001.05272

论文代码:FGN

更多、更及时内容欢迎留意微信公众号小窗幽记机器学习

摘要

汉字作为象形文字有其潜在的特殊字形信息,而这一点经常被忽视。FGN是一种将字形信息融入网络结构的中文NER方法。除了用一个新型CNN对字形信息进行编码外,该方法可以通过融合机制提取字符分布式表示字形表示之间的交互信息。

FGN主要有2个创新点:

  • (1)FGN 提出一种新型的CNN结构,即CGS-CNN,以获取字形信息相邻图之间的交互信息
  • (2)提出一种滑动窗口和注意机制来融合每个字符的BERT表示字形表示。这种方法可以捕获语境和字形之间潜在交互知识。

FGN在4个中文NER数据集上进行了实验。实验表明,FGN+LSTM-CRF在中文NER上刷新记录。

模型结构

FGN可以分为三个阶段:表示阶段、融合阶段和标记阶段。文章也遵循基于字符的序列标签的策略进行中文NER。

image.png

表示阶段

汉字表示主要包括来自BERT的字符表示基于CGS-CNN的字形表示。这些代表的细节表示方法如下。

BERT:BERT是一个多层Transformer编码器,可以对单词或字符进行分布式表示。文章使用预先训练好的中文BERT来编码句子中的每个字符。与一般的fine-tuning策略不同,首先在train data上对BERT进行微调并使用CRF层作为序列标注器(即tagger)。再冻结BERT的参数并将其转移到FGN中。实验表明这一策略确实有效。

CGS-CNN: Figure 2描述了CGS-CNN的结构。

image.png

文章只选择简体中文字体来生成字形向量。这是因为之前的学者研究表明,只使用一种中文字体就能达到与七种字体相媲美的性能。CGS-CNN的输入格式是字符图序列。首先将句子转换为图序列,其中每个字符被替换成50×50的灰度图。非中文字符参数矩阵初始化为0到1之间。再使用2个3×3×3的3D卷积层来编码图序列,每个50×50的图输出8个通道,即8个filter。3D卷积可以从空间和时间两个维度上提取特征,这意味着每个字形向量可以从邻近的图形中获得额外的字形信息。使用填充(padding)对图序列的维度进行填充,以确保通过3D卷积后保持图序列的长度不变,这对基于字符的标注任务来说是必要的。3D卷积的输出再过几组2D卷积和2D最大池化,将每个图压缩成64个通道的2×2田字格结构。为了过滤噪音和空白像素,将2×2结构拉平,并使用1D最大池化来提取每个字符的字形向量。字形向量的向量的大小被设定为64,这比Tianzige-CNN输出1024维小得多。与Glyce模型不同,Glyce使用图像分类任务来学习字形表示,而CGS-CNN在领域数据集中训练整个NER模型时学习CGS-CNN的参数。

融合阶段

文章中使用一个滑动窗口来滑动BERT表示结果和字形表示结果。在滑动窗口中,对每个slice pair计算外积(outer product)以捕捉局部的交互特征。再用Slice-Attention来平衡每个slice pair的重要性,并将它们结合起来,输出一个融合表征。

不同步的滑动窗口(Out-of-sync Sliding Window)

滑动窗口此前已被应用于多模态情感计算。使用滑动窗口的原因是,直接用外积融合向量将指数级地扩大向量大小。这会增加后续网络结构的空间复杂性和时间复杂性。同时,这种方法要求多模态表征具有相同的维度尺寸,这不适合同时滑动BERT向量和字形向量。因为BERT的字符表示比字形表示有更丰富的语义信息,需要更大的向量尺寸。文章使用一个不同步(out-of-sync)的滑动窗口以满足不同的向量大小,同时保持相同的slice数。

假设有一个汉字,其字符向量定义为$c_{-} v \in$ $\mathbb{R}^{d^c}$其字形向量为$g_{-} v \in \mathbb{R}^{d^g}$,其中$d^c$和$d^g$分别表示字符向量和字形向量的维度。为确保这两个向量在通过滑动窗口后保持相同数量的slice数,滑动窗口的设置需要满足以下限制:
$$ n=\frac{d^c-k^c}{s^c}+1=\frac{d^g-k^g}{s^g}+1, n \in \mathrm{N}^* $$
其中$n$是一个正整数,代表两个向量的slice数;$k^c$和$s^c$分别表示字符向量的滑动窗口大小和stride的大小。$k^g$和$s^g$分别表示字形向量的滑动窗口大小和跨度stride的大小。为满足上述限制文章使用的策略是限制滑动窗口的超参数,使$d^c$,$k^c$,$s^c$分别是$d^g$,$k^g$,$s^g$的整数倍。为了得到slice pairs,首先计算每一步(即一个stride)滑动窗口的左边界索引位置:

image.png

其中$p_{(i)}^c$和$p_{(i)}^g$分别代表字符和字形向量在第$i$步的滑动窗口的边界索引位置。可以通过以下公式获得每个slice:

image.png

其中为$c_{-} s_{(i)}$和$g_{-} s_{(i)}$分别表示两个向量中的第$i$个slice。$c_{-} v_{(p_{(i)}^c+1)}$表示$c_{-} v$在第$(p_{(i)}^c+1)$个维度的值。为了从局部角度融合两个slice,采用外积法来生成一个交互式张量,如公式所示:

image.png

其中 $m_i$ 表示第 $i$ 个slice pair的融合张量,$c_{-} v_{(p_{(i)}^c+1)} g_{-} v_{(p_{(i)}^g+1)}$表示两者相乘。

再将 $m_i$ 拉平为 $m_i^{\prime} \in \mathbb{R}^{d^c d^g}$。每个字符的 slices 表征可以表示为:

$$ m^{\prime}=\left\{m_1^{\prime}, m_2^{\prime}, \ldots m_{n-1}^{\prime}, m_n^{\prime}\right\}, m^{\prime} \in \mathbb{R}^{n \times\left(k^c c^g\right)} $$

其中 $m^{\prime}$ 包含$n$个slice pairs的融合结果向量,每个向量的维度大小是$k^c k^g$。

Slice-Attention

外积(outer product)为字符级的表示提供了交互式信息,但是与此同时也产生了更多的噪音,因为许多特征是不相关的。参照注意力机制,文章提出了Slice-Attention("切片-注意力"),它可以自适应地量化每个slice pair的重要性,并将它们结合起来以表征一个字符。slice pair的重要性可以如下计算:

image.png

其中,$a_i$表示第$i$个slice pair 的重要性值。Sigmoid函数可以将向量的值范围限制在0和1之间,这样可以确保后续的点乘计算有意义。最终通过加权计算得到每个字符的融合向量:

image.png

序列标注阶段

在做最终的序列标记之前,将每个字符级别上的向量拼接起来。句子的最终表示可以定义为$x=\{x_1,x_2,...,x_\tau\}$,其中$\tau$代表句子的长度。采用BiLSTM作为序列编码器,采用CRF作为解码器获取命名实体标签。简而言之,获取字符向量后直接输入到BiLSTM+CRF。

相关文章
|
机器学习/深度学习 自然语言处理 安全
Bert on ABSA、ASGCN、GAN、Sentic GCN…你都掌握了吗?一文总结情感分析必备经典模型(1)
Bert on ABSA、ASGCN、GAN、Sentic GCN…你都掌握了吗?一文总结情感分析必备经典模型
144 0
|
机器学习/深度学习 数据采集 自然语言处理
【Deep Learning A情感文本分类实战】2023 Pytorch+Bert、Roberta+TextCNN、BiLstm、Lstm等实现IMDB情感文本分类完整项目(项目已开源)
亮点:代码开源+结构清晰+准确率高+保姆级解析 🍊本项目使用Pytorch框架,使用上游语言模型+下游网络模型的结构实现IMDB情感分析 🍊语言模型可选择Bert、Roberta 🍊神经网络模型可选择BiLstm、LSTM、TextCNN、Rnn、Gru、Fnn共6种 🍊语言模型和网络模型扩展性较好,方便读者自己对模型进行修改
600 0
|
机器学习/深度学习 自然语言处理 数据挖掘
Bert on ABSA、ASGCN、GAN、Sentic GCN…你都掌握了吗?一文总结情感分析必备经典模型(2)
Bert on ABSA、ASGCN、GAN、Sentic GCN…你都掌握了吗?一文总结情感分析必备经典模型
249 1
|
机器学习/深度学习 数据采集 人工智能
基于TextCNN实现文本分类
本文参考Yoon Kim的论文"Convolutional Neural Networks for Sentence Classification",实现TextCNN卷积神经网络进行文本分类。
249 0
基于TextCNN实现文本分类
|
机器学习/深度学习 自然语言处理 算法
TextRCNN、TextCNN、RNN…你都掌握了吗?一文总结文本分类必备经典模型(一)
TextRCNN、TextCNN、RNN…你都掌握了吗?一文总结文本分类必备经典模型(一)
431 0
|
机器学习/深度学习 自然语言处理 资源调度
论文解读系列| 06:【NER】LatticeLSTM模型详解
Lattice LSTM模型是基于词汇增强方法的中文NER的开篇之作。在该模型中,使用了字符信息和所有词序列信息,具体地,当我们通过词汇信息(词典)匹配一个句子时,可以获得一个类似Lattice的结构。这种方式可以避免因分词错误导致实体识别错误,在中文NER任务上有显著效果。
|
机器学习/深度学习 自然语言处理 算法
论文解读系列| 05:【NER】SoftLexicon模型详解
SoftLexicon是一种简单而有效的将词汇信息纳入字符表示的方法。这种方法避免设计复杂的序列建模结构,并且对于任何NER模型,它只需要细微地调整字符表示层来引入词典信息。在4个中文NER基准数据集上的实验结果表明,该方法的推理速度比现有SOTA方法快6.15倍,性能更好。
|
机器学习/深度学习 自然语言处理
论文解读系列| 02:【NER】MarkBERT
MarkBERT 是一种考虑如何将词信息引入到模型的NER方案。MarkBERT基于字的模型,但巧妙地将词的边界信息融入模型,具体操作是将词之间插入边界marker。出现边界marker意味着前一个字符是词的尾部字符,而紧接着的字符是另一个词的起始字符。如此可以统一处理所有词,不存在词的OOV问题。
|
机器学习/深度学习 人工智能 移动开发
论文解读系列 | 01:【NER】W2NER (AAAI 2022)
2022 AAAI论文《Unified Named Entity Recognition as Word-Word Relation Classification》介绍了一个统一NER的SOTA模型W2NER,该模型在14个包含**扁平实体、重叠实体和非连续**实体的数据集(8个英文 + 6个中文)上,均取得了**SOTA**的结果(F1指标)。W2NER将NER问题视为词词关系分类,为此引入两种词词关系:NNW(Next-Neighboring-Word)和 THW-\*(Tail-Head-Word-\*)。具体而言,构造一个 2D 的词词关系网格。
|
机器学习/深度学习 XML 人工智能
TextCNN、DCNN、AttentionXML…你都掌握了吗?一文总结文本分类必备经典模型(三)
TextCNN、DCNN、AttentionXML…你都掌握了吗?一文总结文本分类必备经典模型
212 0