huggingface transformers实现命名实体识别:
http://pytorchchina.com/2020/03/04/transformers-%E4%BD%BF%E7%94%A8%E6%95%99%E7%A8%8B/
题目:TENER: Adapting Transformer Encoder for Named Entity Recognition
摘要:由于Transformer在NER上表现不好,作者提出了一个名为TENER的模型去建模字符特征和词汇特征,通过将方向感知和距离感知以及未缩放的attention结合起来,实现了更好的效果与BiLSTM相比
- 上面这个例子显示了方向对于识别一个实体的类别的重要性,在“in”后面的单词通常是时间或地点,‘Inc.’前面通常是机构名,而机构名也常常是一组词,所以距离也很重要。为了同时保留对距离和相对位置的感知能力,作者舍弃原本的绝对位置编码而采用相对位置编码,使用参数更少,在NER中效果更好。
-
上面是模型的主要架构,可以看到:
1)嵌入层的字符特征提取主要是multi-head attention,最终的word embedding是将抽取出来的字符特征和词嵌入拼接起来
2)作者的主要创新在transformer层,原来两个位置向量之间的点积只能反映单词间的距离,而不能区分方向,为此作者提出了一种相对位置编码,公式如下:
可以看到,Rt和R-t是不一样的,这样就有了方向。
3)作者去掉了原来的缩放点积中的缩放值
网友评论