©PaperWeekly 原创 · 作者 | 苏剑林
单位 | 追一科技
研究方向 | NLP、神经网络
在《GlobalPointer:用统一的方式处理嵌套和非嵌套 NER》中,我们提出了名为“GlobalPointer”的 token-pair 识别模块,当它用于 NER 时,能统一处理嵌套和非嵌套任务,并在非嵌套场景有着比 CRF 更快的速度和不逊色于 CRF 的效果。换言之,就目前的实验结果来看,至少在 NER 场景,我们可以放心地将 CRF 替换为 GlobalPointer,而不用担心效果和速度上的损失。
在这篇文章中,我们提出 GlobalPointer 的一个改进版——Efficient GlobalPointer,它主要针对原 GlobalPointer 参数利用率不高的问题进行改进,明显降低了 GlobalPointer 的参数量。更有趣的是,多个任务的实验结果显示,参数量更少的 Efficient GlobalPointer 反而还取得更好的效果。
大量的参数
这里简单回顾一下 GlobalPointer,详细介绍则请读者阅读《GlobalPointer:用统一的方式处理嵌套和非嵌套 NER》。简单来说,GlobalPointer 是基于内积的 token-pair 识别模块,它可以用于 NER 场景,因为对于 NER 来说我们只需要把每一类实体的“(首, 尾)”这样的 token-pair 识别出来就行了。
设长度为 的输入 经过编码后得到向量序列 ,原始 GlobalPointer 通过变换 和 我们得到序列向量序列 和 ,然后定义
作为从 到 的连续片段是一