神经网络在自然语言处理的各项任务中获得了成功, 在通过足够多标注数据的训练后, 神经网络往往有着很好的性能。但是由于在实际领域场景中高质量标注数据的缺失,以及大大小小特殊的需求,“规则”仍然扮演着重要的角色,因为规则可以直接地、清晰地表达人们的知识和意图。

近年来,越来越多的工作探索如何将规则(例如正则表达式、逻辑)和神经网络的优势互相结合。大部分的工作通过多任务学习(multi-task learning)、知识蒸馏(knowledge distillation)、融入规则特征等方式间接地融入规则的信息,这类方法简单有效,但是规则和神经网络之间通常联系不甚紧密。

本文介绍的工作属于另一种方式,将正则表达式直接转化成一个对应的神经网络,使得该神经网络不需要训练就有着和正则表达式系统相似的效果,同时,还可以通过标注数据进行训练以达到更好的性能。

正则表达式

正则表达式(regular expressions)是做字符识别、模式匹配的主要规则工具,可以被用于一些有明显模式(pattern)的领域分类(如意图分类)、领域标注任务(如槽填充)。我们以 ATIS 数据集为例,如下图所示:

1.1 意图识别(Intent Detection)

“Show the flights from New York to Dallas” 这句话的意图类别为“查询航班信息(querying flights)”,给定一句话识别出其正确的意图类别就是意图分类任务,是文本分类任务的一种。而我们可以用如下的正则表达式来识别意图。

例如,我们可以使用下图的正则表达式来识别“querying flights”的意图。特殊符号 w 是 wildcard word 可以匹配任意词,而“*”的意思是可以出现任意次。下面正则表达式的意思是,如果句子中出现了 show … flights … 这样的语言结构,那么我们就认为其意图是“querying flight”。

1.2 语义槽填充(Slot Filling)

“Show the flights from New York to Dallas” 中含有两个我们关心的语义槽,例如“New York”是“出发城市(fr.city)”, “Dallas” 是到达城市。槽填充任务的目的就是识别出句子中的语义槽,通常被建模成一种序列标注任务,用 BIO 的标注方法,类似于命名体识别(Named Entity Recognition)。

我们可以用下图的带捕获组的正则表达式来识别“出发城市(fr.city)”的语义槽。我们在 from 和 to 之间定义了捕获组,该捕获组的正则表达式匹配任意的 span,所以该正则表达式将出现在 from 和 to 之间的部分捕获,并且标注成 fr.city。

对于一些 pattern 比较清晰的领域数据,我们可以对每个意图、语义槽撰写正则表达式,通过他们的匹配结果来确定句子的意图类别以及句子中的语义槽。

正则表达式转化为神经网络

我们在 EMNLP 2020 上发表的研究 Cold-Start and Interpretability:Turning Regular Expressions into Trainable Recurrent Neural Networks 将用作意图分类的正则表达式转化为可以训练的神经网络,PaperWeekly 在此前也有过介绍:正则表达式与神经网络的深度融合。

论文标题: 

Cold-Start and Interpretability: Turning Regular Expressions into Trainable Recurrent Neural Networks

论文链接:

http://faculty.sist.shanghaitech.edu.cn/faculty/tukw/emnlp20reg.pdf

本文介绍将重点介绍我们发表于 EMNLP 2021 上的长文,“Neuralizing Regular Expressions for Slot Filling”,将用于语义槽填充的正则表达式转化为可以训练的神经网络的方法。

论文标题:

Neuralizing Regular Expressions for Slot Filling

论文链接:

https://aclanthology.org/2021.emnlp-main.747/

代码链接:

https://github.com/jeffchy/RE2NN-SEQ

2.1 方法概览:将用做槽填充任务的正则表达式转化为神经网络

上图展示了将正则表达式转化为可以训练的神经网络的方法概览。

  • 首先我们将根据领域知识撰写好的正则表达式转化为等价的有限状态转换器(Finite-state Transducer, FST)。

  • 之后我们将 FST 转化为 i-FST(independent-FST),以减少表示 FST 的空间以及推断的复杂度。

  • 我们将 i-FST 的张量表示进行张量秩分解,用分解后的矩阵来替代原先张量以减小 FST 推断的时间复杂度。

  • 我们提出、使用了一些不影响对于正则表达式近似的增强网络表达能力的方法,包括融入外部词向量,加入 tanh 非线性函数等,最终得到了我们的神经网络 FSTRNN (Finite-State Transducer RNN)

2.2 正则表达式与有限状态转换器(Finite-state Transducer, FST)

任何带捕获组的正则表达式都可以被转化为有限状态转换器(FST),FST 是有限状态机的一种,下图展示了用作 fr.city 的正则表达式以及它对应的 FST。

FST 是有限状态机的一种,以图为例,FST 有起始状态 ,终止状态 ,以及若干其他状态。从起始状态开始,FST 接受一个输入序列(如句子),在状态之间转移,并且同时输出一个输出符号。例如,在读句子 “Show flights from New York to Dallas” 时,t=3 时刻,刚读完 from,我们在 FST 的 状态,接受“New”时,我们从 转移到了 (因为 接受 wildcard word),并且输出了 B-fr.city。

我们可以发现,图中的正则表达式和 FST 是等价的。对于例子中的句子,正则表达式匹配了句子,并且将”New York”捕获并且标注为 fr.city。而 FST 在接受整个句子之后,在“New York”处输出了 B-fr.city 和 I-fr.city。达到了同样的标注效果。对于该 FST 与 RE 在序列标注上的等价性的严格的证明见 paper 论文。

2.3 FST的张量表示与i-FST

基于 FST 与正则表达式的等价性,我们下一步希望建模 FST 的运行。直接表示 FST 至少需要一个四阶的张量。我们输入的词表大小为 V,输出的标签集合大小为 L,FST 的状态数为 K,我们需要一个 VxLxKxK 的张量来表示 state 之间的转移以及转移时的输入、输出。这样的空间复杂度以及参数量是我们无法接受的,因此我们提出将 FST 转化为 i-FST。

如上图所示,上半部分的 FST 可以被等价地转化为下半部分的 i-FST。他们的主要区别是,给定 t 时刻到达的状态,i-FST 的输出就已经确定了(和上一个状态以及输入无关)。而原本的 FST,给定了到达的状态,我们仍然需要依赖上一个时刻的状态以及输入来确定输出。举例:在 i-FST 中,如果我们到达了状态 ,我们就确定了我们的输出为 I-fr.city。而在 FST 中,若到达了 ,我们有两种可能的输出:I-fr.city, B-fr.city。

基于 i-FST 的条件独立性,我们只需要用一个 VxKxK 的三阶张量 T 来表示随着输入的状态转移,以及一个 KxL 的矩阵 O 来表示到达的状态与输出标签的对应即可。我们还需要两个 K 维的。

2.4 i-FST的运行。

给定句子 以及 i-FST,直接找到最好的输出序列 是 NP-Hard 的。因此我们使用近似算法:对于每个位置 t,找到最可能的 。我们可以基于 Variable Elimination,使用和隐马尔可夫模型的向前向后前向后向算法(forward-backward algorithm)类似的方法来进行每个时刻 的推断。

我们向前循环地计算 forward score ,并且向后循环地计算 backward score 。通过他们的相乘来得到每个时刻每个状态的分数。并且乘以矩阵 O 以得到每个时刻每个输出标签的分数。可以看出我们的推断算法非常接近 BiLSTM+Linear 网络结构的 forward 过程。

2.5 张量秩分解

我们利用张量秩分解将三阶张量分解成三个矩阵,并且将 forward score 与 backward score 的计算进行重写,当张量分解的重建误差较低时,分解后和分解前有着近似的结果。

2.6 融入外部词向量

分解后的得到矩阵 可以被看成一个只有规则信息的词向量矩阵。我们可以将外部词向量映射到与 R 维度,并且用一个超参数 η 来结合两个词向量。当 η 接近 1 时,网络仍然近似正则表达式。

此外还有其他的一些增强模型的技巧请参照 paper 论文。

2.7 模型训练与解码

在 2.4 节中,我们说明了计算出每个时刻每个 label 分数的近似算法。在标注数据上训练,以及解码的方式和传统的神经序列标注模型类似。我们使用 Cross Entropy Loss 或者 CRF Loss 来计算输出与真实的标注的误差,用 Adam 来进行优化。我们对应的,使用 Softmax 以及 CRF Viterbi 进行解码。

实验

3.1 Baselines

我们的 baseline有正则表达式、传统序列标注模型(BiGRU+Softmax/CRF, BERT+Softmax/CRF)。我们还对比了其他利用同样的正则表达式增强神经网络的方法(MarryUp, Posterior Regularization, Knowledge Distillation)。

3.2 实验数据集与设置

我们在 ATIS,ATIS-ZH,SNIPS 三个数据集上进行了实验。我们采取了零样本、少样本、多样本三种设定。数据集、正则表达式的统计信息与样例如图。

3.3 试验结果

3.3.1 零样本

我们的模型 FSTRNN/GRU 不需要训练就有着和正则表达式相似的效果。说明我们的模型可以很好的近似正则表达式,并且作为一个神经网络较好的初始化。

3.3.2 GloVe词向量的少样本与全样本实验。

我们的模型可以在少量样本的情况下获得进一步的效果提升,并且由于比较好的蕴含了规则知识,在少样本与低资源的设定下有着较好的效果。在全样本的设定下,数据集平均下来也有着不错的竞争力,说明我们的模型可以和传统神经网络一样,被标注数据较好的训练。

3.3.3 With BERT

前面的实验使用了 GloVe 词向量。在使用 BERT 的情况下,我们的模型依然有着不错的样本表现,并且在 10% 和 100% 的设定下,与没有用 BERT 的 FSTRNN 相比又着 8% 和 4% 的效果提升,说明我们的模型可以比较好地的 utilize 利用  BERT。

总结

我们提出了 FSTRNN,一种由用做槽填充任务的正则表达式直接转化而来的神经网络。实验表明,FSTRNN 在初始时有着和正则表达式相似的效果,并且可以像传统神经网络一样,能够较好得 利地用标注数据进行训练。

研究组介绍

上海科技大学信息学院屠可伟老师研究组主要从事自然语言处理、机器学习等人工智能领域的研究,目前侧重于研究语言结构的表示、学习与应用。研究组近几年已在各大顶会发表论文数十篇,2021 年已发表论文包括 ACL 长文 7 篇、EMNLP 长文 1 篇、NAACL 长文 1 篇等。

研究组招收硕士研究生(推免生)、博士后和研究助理,欢迎有兴趣的同学联系屠老师。

更多信息请访问屠可伟老师主页:

http://faculty.sist.shanghaitech.edu.cn/faculty/tukw/

更多阅读

#投 稿 通 道#

 让你的文字被更多人看到 

如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。

总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。

PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析科研心得竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。

EMNLP 2021 | 正则表达式与神经网络的深度融合(续)相关推荐

  1. 正则表达式与神经网络的深度融合

    本文介绍了上海科技大学屠可伟研究组与乐言科技的一项合作研究,提出了将正则表达式规则与神经网络深度融合的新思路.该论文已被 EMNLP 2020 接收为长文. 论文标题: Cold-Start and ...

  2. 深度学习——day9(外 Q1 2021)基于多尺度特征融合的深度监督卷积神经网络路面裂缝检测

    基于多尺度特征融合的深度监督卷积神经网络路面裂缝检测 导图和笔记资源下载 三级目录# (外 Q1 2021)基于多尺度特征融合的深度监督卷积神经网络路面裂缝检测 chap2 传统裂纹检测方法 1)Tr ...

  3. 2021 最新版《神经网络和深度学习》中文版开放下载!

    获取最新版<神经网络和深度学习>最新版PDF和PPT的方法:  1.扫码 "AI有道" 公众号 2.后台回复关键词:神经网络 注:此处建议复制,不然容易打错 ▲长按扫描 ...

  4. EMNLP 2021中预训练模型最新研究进展

    © 作者|周昆 机构|中国人民大学信息学院 研究方向|序列表示学习与应用 导读 EMNLP 2021是人工智能领域自然语言处理( Natural Language Processing,NLP)三大顶 ...

  5. 论文笔记 EMNLP 2021|Treasures Outside Contexts: Improving Event Detection via Global Statistics

    文章目录 1 简介 1.1 动机 1.2 创新 2 方法 2.1 语义特征提取器 2.2 统计特征提取器 3 实验 1 简介 论文题目:Treasures Outside Contexts: Impr ...

  6. EMNLP 2021事件相关(事件抽取、事件关系抽取、事件预测等)论文汇总

    EMNLP 2021事件相关(事件抽取.事件关系抽取.事件预测等)论文汇总,已更新全部. Event Extraction Crosslingual Transfer Learning for Rel ...

  7. 医学自然语言处理(NLP)相关论文汇总之 EMNLP 2021

    医学自然语言处理(NLP)相关论文汇总之 EMNLP 2021 [写在前面]EMNLP2021前段时间已经放榜,一直没时间整理,最近抽时间整理了一下该会议在医疗自然语言处理方向上的相关论文,放在这里, ...

  8. 神经网络、深度学习、人工智能、智能制造2018资料汇编(公号回复“AI2018资料”下载PDF资料,欢迎转发、赞赏支持科普)

    神经网络.深度学习.人工智能.智能制造2018资料汇编(公号回复"AI2018资料"下载PDF资料,欢迎转发.赞赏支持科普) 秦陇纪 科学Sciences 今天 科学Science ...

  9. 复旦邱锡鹏教授公布《神经网络与深度学习》,中文免费下载 | 极客头条

    点击上方↑↑↑蓝字关注我们~ 「2019 Python开发者日」,购票请扫码咨询 ↑↑↑ 整理 | Jane 出品 | AI科技大本营 优质的人工智能学习资源一直是大家非常关注的,以往我们也推荐过很多 ...

最新文章

  1. 第十五届全国大学生智能车竞赛 室外光电组线上选拔赛比赛流程
  2. java非打印字符,使用Java正则表达式匹配不可打印字符
  3. Linux command: dos2unix
  4. 云计算未来趋势预测:AIaaS、无服务器、云端一体化等将成重点?
  5. 1分钟 Zookeeper 快速入门_windows环境
  6. ·必须《飞鸽~飞鸽传书》
  7. java token redis生成算法_Redis实现单点登录
  8. 传闻称马斯克从创始人手中偷走了特斯拉公司,马斯克回击...
  9. Linux文本编辑器vim
  10. python利器-Python 数据可视化利器
  11. JAVA使用URLEncoder、URLDecoder编码解码
  12. 使用卡尔曼滤波器进行回声消除
  13. 写乐100道练习题_【写乐钢笔使用】_摘要频道_什么值得买
  14. python三维可视化
  15. Linux目录结构和文件、目录常用命令
  16. 战争英雄、同性恋和计算机科学的奠基人
  17. 《MySQL系列》MySQL详细入门教程
  18. 2.3.2 浮点数的加减运算
  19. linux运维工作手册
  20. 18:求N分之一序列前N项和

热门文章

  1. echart triggeron设置两个方法_6个超实用方法:打造PPT立体空间感
  2. thymeleaf取model值_史上最详 Thymeleaf 使用教程
  3. linux时间字符串转正常时间
  4. 考虑用静态工厂方法替代构造器
  5. java 处理byte_java - 文件到Java中的byte [] - 堆栈内存溢出
  6. 小米6 twrp_小米6刷上统信 UOS 国产系统,操作流畅但安装需谨慎!
  7. python re match groups_【原创】如何治疗使用python中re模块group、groups与findall分组匹配后产生的“眩晕反应”...
  8. 【mathematical statistics】5 distributional testing
  9. mysql为什么要编译安装_Mysql编译安装
  10. python每日一学_Python每日一练0011