论文标题: Cold-Start and Interpretability: Turning Regular Expressions into Trainable Recurrent Neural Networks
中文标题: 冷启动与可解释性: 将正则表达式转换成为可训练的循环神经网络
下载链接: 免费下载链接
论文项目代码: GitHub: RE2RNN

序言

第一次听说这篇论文是在今年11月1日某论坛讲座上,主讲人介绍了他们团队在今年发表的这篇报告,当时就有一种耳目一新而又恍然大悟的感觉。

训练正则表达式,为什么让别人给想到了,我们就想不到还能这么做?

目前强人工智能的设计思路主要来源于三种方法:

  • 符号方法:如正则表达式,流程图;这种方法的好处是根本不需要数据,找几个专家来写规则就行了,坏处也一目了然,人总是具有局限性,事物也总是有例外,再多的规则可能会达到不错的查准率,但是查全率往往是不够的;
  • 统计方法:如统计机器翻译SML,贝叶斯方法;
  • 神经方法:即深度学习;

经过数年的发展,单纯的统计方法和神经方法已经触及到瓶颈,现在大部分报告中都会将统计方法与神经方法相结合,才能够做出一定的突破,符号方法大部分情况下仅仅是用于预处理或是后处理,锦上添花的作用,越来越被人淡忘。也有人会去做将这些符号规则嵌入神经网络的工作,但是大多都是用了很死板的方法,比如拿规则直接对神经网络的输出层进行一些约束,以达到符合规则的效果,但这都不如本文直接把规则变成神经网络来得灵活。

笔者在知悉将正则表达式转为神经网络时,第一感就是觉得本质上就是拿正则表达式来找一个很好的初始优化点,这样能够大大提升模型的效果,然而本文的成果似乎比想象的还要令人惊奇,他甚至做到了可以将训练后的神经网络再转回正则表达式的效果!

可能这么说并不能直观地表达这个成果的奇特之处,试想如果训练后的神经网络可以转回正则表达式,而正则表达式当然具有可解释性(找个专家一看就知道这个正则表达式代表的逻辑是什么了),这意味着神经网络是可以具有解释性的,而现在神经网络为人诟病(尤其是工业界大都不愿意使用神经网络的原因)就是它不具有可解释性,即便效果很好,但是后期如果需要调整将会无从下手,重新训练的代价又过于昂贵。原文作者也有从事工业界相关工作的经验,他提到目前大部分的文本分类工作,都是基于正则表达式完成的。

很可惜暂时原文作者还没有将代码上传到论文中给出的GitHub链接,我们无法知道本文具体的实现逻辑,但是这并不影响先阅读这篇文章的内容。

20201114更新: 今天作者上传代码到GitHub: RE2RNN

20201117更新: 关于代码的内容的详细说明可见笔者编写的jupyter notebook, 下面链接给了mytest.ipynb与项目源码压缩包, 将mytest.ipynb放置在项目代码的src目录下, 项目数据很小, 在项目的README.md中给出了腾讯云链接;

链接: https://pan.baidu.com/s/1emnsTXJRiT6El-3GxrjQEw
提取码: qvsh 复制这段内容后打开百度网盘手机App,操作更方便哦

本文包含一个非常重要的前提知识:有穷状态自动机,简写为FA(Finite-state automaton),下分两种类型DFANFA,这是一个非常重要的概念,与正则表达式的匹配逻辑有很强的关联。有兴趣的朋友可以事先了解一下FA的相关知识再来阅读本文,可能会相对轻松一些。


目录

  • 序言
  • 摘要 Abstract
  • 1 引入 Introduction
  • 2 背景 Background
    • 2.1 正则表达式 Regular Expression
    • 2.2 用于文本分类的正则表达式系统 RE System for Text Classification
    • 2.3 有限状态自动机 Finite-State Automaton
    • 2.4 带权重的有限状态自动机 Weighted Finite-State Automaton
  • 3 方法 Method
    • 3.1 从正则表达式到循环神经网络 From REs to RNNs
    • 3.2 分解参数张量 Decomposing the Parameter Tensor
    • 3.3 集成预训练词嵌入 Integrating Pretrained Word Embedding
    • 3.4 FA-RNN的扩展 Extensions of FA-RNN
    • 3.5 文本分类的聚合层 Aggregation Layer for Text Classification
    • 3.6 使用带标签的数据训练 Training with Labeled Data
  • 4 实验 Experiments
    • 4.1 数据集 Datasets
    • 4.2 基线 Baselines
    • 4.3 零射分类 Zero-Shot Classification
    • 4.4 低资源和全训练 Low-Resource and Full Training
  • 5 分析 Analysis
  • 6 可解释性 Interpretability
  • 7 相关工作 Related Work
  • 8 总结与未来工作 Conclusion and Future Work
  • 参考文献 References
  • 附录A 张量秩分解(CPD) Tensor Rank Decomposition
  • 附录B CPD的技巧 Tricks for CPD
  • 附录C 参数数量 Number of Parameters
  • 附录D 超参数 Hyper-parameters
  • 附录E 完整实验结果 Full Experimental Results
  • 附录F 额外的可解释性例子 Additional Interpretability Example
  • 图表汇总

摘要 Abstract

神经网络模型已经在自然语言处理(Natural Language Processing, 下称NLP)领域取得了较为显著的评估结果, 但是往往都是基于在大量已标注数据的训练, 并且神经网络的可解释性(interpretability)是很差的;
符号规则的可解释性很强, 比如正则表达式(Regular Expressions, 下称RE), 而且无需训练就能取得相当好的精准度(虽然召回率存在一定不足);
矛盾之处在于符号规则无法通过已标注数据来提升效果, 也不能在富资源场景(rich-resource scenarios, 如数据集质量与数量可观的场景)下用于改进低效神经网络;
本文提出一种名为FA-RNNs的循环神经网络, 它可以将神经网络与符号规则的优势相结合; FA-RNNs可以由RE转化而来, 因此可以在零射(zero-shot, 指可以对不在样本标签覆盖范围中的样本进行预测)与冷启动(零样本)场景下部署; 不仅如此FA-RNNs可以利用已标注数据进行训练从而改善预测精准度, 即使在训练数据集上进行训练后, FA-RNNs依然可以保持可解释性, 并且能够转换回RE;
本文将FA-RNNs应用到文本分类(text classification), 并且实验结果表明FA-RNNs在零射与低资源场景下比之前的神经方法表现得更好, 且在富资源场景下保持非常具有竞争性的评估效果;


1 引入 Introduction

  1. 基于RE的系统的优势与劣势:

事实上目前工业界中, 符号规则仍是在NLP应用上不可或缺的方法, 因为神经网络虽然表现得很好, 但是缺乏可解释性而无法使人信服; 其中RE就是最具有代表性的工业方法, 它被广泛应用于解决如模式匹配(pattern matching), 意图分类(intent classification);

  • ① 基于RE的系统具有高度可解释性, 因此可以支持细颗粒度的人类检查与操作(inspection and manipulation), 比如RE规则可以简单被增加, 更新, 删除;
  • ② 基于RE的系统无需训练, 直接就能应用到实际场景中, 且效果尚可;
  • ③ 基于RE的系统依赖专家编写规则, 并且往往具有高查准率(precision)与低查全率(recall);
  • ④ 基于RE的系统无法通过已标注数据的训练以达到后续提升, 富资源场景下的评估效果不如神经网络;
  1. 如何合并符号规则与神经网络?

这是近年来人工智能领域的开放性问题, 且越来越受到学术界关注;

  • ① 方法一: 利用符号规则约束神经网络, 一般以正则化的形式(manner of regularization), 通过知识提炼(knowledge distillation)与多任务学习(multi-task learning), 或是调整(tuning)神经网络的输出逻辑(output logits);

    • 备注:

      • 知识提炼可能是指从知识中提炼规则;
      • 多任务学习可能是指多目标函数优化;
      • 调整输出逻辑可能是指调整输出概率的规则, 即最后一层的sigmoid\rm sigmoidsigmoid函数或softmax\rm softmaxsoftmax函数逻辑的调整;
    • 通过这种方法, 规则中的信息可以被注入(be injected into)到神经网络中, 但是神经网络仍然需要训练, 并且最终还是会变成一个难以解释与操作的黑盒子;
  • ② 方法二: 受符号规则启发, 设计出新颖的神经网络架构, 这类模型往往取得更好的可解释性, 但是需要已标注数据的训练且无法直接从规则转换而来, 也无法被人类专家手动调整, 因为神经网络的架构与符号规则有很大差异;
  1. 本文的贡献:
  • 本文提出有限自动机循环神经网络(finite-automaton recurrent neural networks, 下称FA-RNN), 这是一种基于带权重的有限状态自动机(finite-state automaton, 下称FSAFA)计算处理的创新型循环神经网络;

    • 备注: 摘自百度百科:

      有限状态自动机(finite state machine or finite state automaton)是为研究有限内存的计算过程和某些语言类而抽象出的一种计算模型; 有限状态自动机拥有有限数量的状态, 每个状态可以迁移到零个或多个状态, 输入字串决定执行哪个状态的迁移; 有限状态自动机可以表示为一个有向图; 有限状态自动机是自动机理论的研究对象;

  • 因为RE与FSA等价, 我们可以将任何RE传换成一个可以部署在零射和冷启动场景下的FA-RNN; 在有已标注数据的情况下, FA-RNN也可以通过某种方式和常规神经网络一样进行训练, 从而在原始RE基础上提升模型预测精确性; 此外FA-RNN具有很好的可解释性, 因为从RE转化而来时近似保持了RE中所表达的逻辑, 训练之后也可以转换回RE从而保持可解释性;
    • 备注: 正则表达式转换为有限状态自动机

      • RE可以转换成FSA, 事实上大部分RE引擎都是基于将RE转化为确定性有限自动机(DFA, 给定当前状态和输入字符, 下一状态可以被唯一确定)与非确定性有限自动机(NFA, 从一个状态出去的两条边, 可以有相同的对应字符);
      • 关于DFA和NFA的区别, 可以参考NFA和DFA的区别, 包含图例:
        • DFA图例:
        • NFA图例:
        • 对于字母表中的每个符号, DFA中的每个状态都有且只有一条关于这个符号的出边(exiting transition); NFA则未必, 在同一个状态上可能有零条, 一条甚至多条关于某一个符号的出边;
        • DFA的转换箭头上的标签必须是字母表中的, 但NFA可以有标识为ϵ\epsilonϵ的边, NFA的状态可能有零条, 一条甚至多条ϵ\epsilonϵ边;
      • 关于DFA与NFA的转换问题, 参考有限自动机NFA-ε到NFA再到DFA的转换
  • FA-RNN的可解释性使得它可以被人类专家进行微调, 如将新的RE集成到一个已经训练好的FA-RNN中去或是移除FA-RNN转换回的RE中的某些规则;
  • 本文将FA-RNN应用到文本分类任务中, 并且将FA-RNN与神经网络模型以及基于RE的文本分类系统进行比较, 实验结果表明FA-RNN在零射与低资源场景下比之前的神经方法表现得更好, 且在富资源场景下保持非常具有竞争性的评估效果;

2 背景 Background

2.1 正则表达式 Regular Expression

  1. Table1: RE用于文本分类的一个例子, 并且给出了该RE对应的有穷自动机示意图;
  1. RE是用于常规文本中搜索或匹配字符串的模式(pattern), 非常简洁易懂(似乎并不是那么易懂);

2.2 用于文本分类的正则表达式系统 RE System for Text Classification

  1. 文本分类任务旨在对输入语句进行标签标注, 基于RE的文本分类往往是对标签全体L={l1,l2,...,lk}L=\{l_1,l_2,...,l_k\}L={l1,l2,...,lk}中的每个标签li∈Ll_i\in LliL编写若干个RE(事实上一个标签只要写一个对应的RE就行了, 不过为了方便增删改多写几个也可以), 这样我们就可以对每个句子在RE集合中的匹配情况做一个初步判定;

  2. 当然一个句子可能不止会匹配一个RE, 因此在1中结果出来后, 仍然需要一套后处理逻辑来做最终的标签确定;

  • Figure1: RE系统与FA-RNN在文本分类处理中的逻辑流程图
  • 举个例子: 令MiM_iMi表示RE集合中的一个元素rir_iri是否匹配了当前语句, 则被打上标签lpl_plp对应的后处理逻辑可能是(Mi∨Mj)∧¬Mk(M_i\vee M_j)\land \neg M_k(MiMj)¬Mk, 事实上这就是Figure1中所展示的RE处理逻辑;

2.3 有限状态自动机 Finite-State Automaton

  1. 定义: FA是一个拥有有限数量状态的机器, 它可以从一种状态转移到另一种状态, 初始状态s0s_0s0, 最终状态集合S∞S_{\infty}S, 通过Thompson’s Construction Algorithm, 每个RE都可以被转换成一个表达等价语义的FA;
  2. 对于一个序列x=(x1,x2,...,xN)x=(x_1,x_2,...,x_N)x=(x1,x2,...,xN), RE能够匹配该序列当且仅当该RE转换成的FA从初始状态s0s_0s0出发后, 消耗(comsuming)xxx, 最后到达了一个终末状态; Table1中最后一行展示的是该RE转换成的FA;
  3. 进一步地, 对于每个RE, 都存在一个唯一的FA表达同样的语义, 该FA拥有最小数量的状态和确定性的转移(m-DFA, 最小数量状态确定性有限状态自动机);
  • 确定性的转移(Deterministic transitions)指给定一个当前状态和输入, 则下一个状态是可以被唯一确定的;
  • m-DFA可以通过Powerset Construction AlgorithmDFA Minimization Algorithm两个算法运行获得;
    • 备注:

      • Powerset Construction Algorithm 好像是一个组合问题的算法;
      • DFA Minimization Algorithm 可以参考DFA确定化和最小化, 感觉讲得还挺详细;

2.4 带权重的有限状态自动机 Weighted Finite-State Automaton

  1. 带权重的有限状态自动机(Weighted Finite-State Automaton, 下称WFA)给每次转移加上权重, 抽象化可以用五元组A=(Σ,S,T,α0,α∞)A=(\Sigma,S,T,\alpha_0,\alpha_{\infty})A=(Σ,S,T,α0,α)表示:
  • Σ\SigmaΣ是输入字典, 包含VVV个单词, 即∣Σ∣=V|\Sigma|=VΣ=V
  • SSS是状态集合, 包含KKK个状态, 即∣S∣=K|S|=KS=K
  • T∈RV×K×KT\in \mathbb{R}^{V×K×K}TRV×K×K是转移权重张量, T[σ,i,j]T[\sigma,i,j]T[σ,i,j]是当输入为σ\sigmaσ时, 从状态sis_isi转移到状态sjs_jsj的权重, 即T[σ]T[\sigma]T[σ]可以表示单词σ\sigmaσ的转移矩阵;
  • α0∈RK\alpha_0\in \mathbb{R}^Kα0RK是初始权重, α0[i]\alpha_0[i]α0[i]是在t=0t=0t=0时, sis_isi处的权重值;
    • 备注:

      • 这个权重应该和上面所述的转移权重并非一回事;
  • α∞∈RK\alpha_{\infty}\in \mathbb{R}^KαRK是终末权重, α∞[i]\alpha_{\infty}[i]α[i]是在读取所有输入后, sis_isi处的权重值;
  1. FA与WFA的关系:
  • 一个FA可以视为是一个只有零一权重值的WFA, 具体规则如下所示:

    • sis_isi可以在σ\sigmaσ输入下, 转移到sjs_jsj, 则T[σ,i,j]=1T[\sigma,i,j]=1T[σ,i,j]=1, 否则T[σ,i,j]=0T[\sigma,i,j]=0T[σ,i,j]=0
    • α0[i]=I{si∈S0}\alpha_0[i]=\mathbb{I}\{s_i\in S_0\}α0[i]=I{siS0}
    • α∞[i]=I{si∈S∞}\alpha_{\infty}[i]=\mathbb{I}\{s_i\in S_{\infty}\}α[i]=I{siS}
    • 其中I\mathbb{I}I函数是布尔函数(返回True/False, 分别表示1/0);
    • 其中S0S_0S0表示初始状态集合
  • 注意: 本文定义FA只有一个初始状态, 对于多初始状态的FA, 都可以通过增加ϵ\epsilonϵ变换变成单初始状态的FA, 即定义一个新的初始状态让它转移到原先FA的多个初始状态即可;
  1. WFA评分计算:
  • 对于序列xxx, WFA接受xxx的评分AAA可以使用forward AlgorithmViterbi Algorithm计算得到;

    • 备注:

      • 参考文献[3]和[36]讲述了这两个算法, 都是很老的成果了, forward是1966年的, Viterbi是1967年的;
  • 令路径p=(u1,u2,...,uN+1)p=(u_1,u_2,...,u_{N+1})p=(u1,u2,...,uN+1)是消耗(consuming)xxx时访问状态的索引序列, 则得分B(A,p)B(A,p)B(A,p)可以被计算为: α0[u1]⋅(∏i=1NT[xi,ui,ui+1])⋅αα∞[uN+1](1)\alpha_0[u_1]\cdot(\prod_{i=1}^{N}T[x_i,u_i,u_{i+1}])\cdot\alpha_{\alpha_{\infty}}[u_{N+1}] \tag{1}α0[u1](i=1NT[xi,ui,ui+1])αα[uN+1](1)
  • π(x)\pi(x)π(x)是从初始状态s0s_0s0, 消耗(consuming)xxx, 最后到达终末状态si∈S∞s_i\in S_{\infty}siS所有路径的集合, 则forward algorithm计算得到的路径得分总和为: Bforward(A,x)=∑p∈π(x)B(A,p)=α0T⋅(∏i=1NT[xi])⋅α∞(2)B_{\rm forward}(A,x)=\sum_{p\in \pi(x)}B(A,p)=\alpha_0^T\cdot(\prod_{i=1}^{N}T[x_i])\cdot\alpha_{\infty}\tag{2}Bforward(A,x)=pπ(x)B(A,p)=α0T(i=1NT[xi])α(2)
  • Viterbi Algorithm计算的则是路径得分的最大值: BViterbi(A,x)=max⁡p∈π(x)B(A,p)(3)B_{\rm Viterbi}(A,x)=\max_{p\in \pi(x)}B(A,p)\tag{3}BViterbi(A,x)=pπ(x)maxB(A,p)(3)
    • Viterbi Algorithm可以通过将式2中的矩阵乘法替换成max-plus运算符;
  • 对于一个FA, forward得分是π(x)\pi(x)π(x)中精确的路径数量, 而Viterbi得分则仅仅表明π(x)\pi(x)π(x)是否非空;

3 方法 Method

本节中将会一步一步展示如何将RE转换成FA-RNN;

3.1 从正则表达式到循环神经网络 From REs to RNNs

  1. RE to FA:
  • 正如2.3节中提到的, 可以通过算法将RE转换成m-DFA; 为了获得一个简洁的(concise)且具有更好可解释性和更快计算速度的FA, 本文将通配符’$'视为词汇表中的一个特殊单词, 并使用2.3节中提到算法啦获得一个伪造的(pseudo)m-DFA: AAA
  1. FA as RNN:
  • 正如2.4节中讨论的, 普通的FA可以被视为WFA的一种特殊情况, 权重为零一值, 参数为O=(α0,T,α∞)O=(\alpha_0,T,\alpha_{\infty})O=(α0,T,α)
  • WFA前向得分(forward score)计算可以重新写成一个循环形式(recurrent form):
    • ht∈RKh_t\in \mathbb{R}^KhtRK是在消耗(consuming)序列xxxttt个单词后的前向得分向量(forward score vector), ht[i]h_t[i]ht[i]可以解释在第ttt步, 从s0s_0s0sis_isi的路径数量, 具体计算如下所示: h0=α0Tht=ht−1⋅T[xt],1≤t≤NBforward(A,x)=hN⋅α∞(4)h_0=\alpha_0^T\\h_t=h_{t-1}\cdot T[x_t],1\le t\le N \tag{4}\\B_{\rm forward}(A,x)=h_N\cdot \alpha_{\infty}h0=α0Tht=ht1T[xt],1tNBforward(A,x)=hNα(4)
  • WFA的Viterbi得分可以用相似的方法计算, 所以可以将WFA视为一种RNN结构, 参数恰好为O=(α0,T,α∞)O=(\alpha_0,T,\alpha_{\infty})O=(α0,T,α)

3.2 分解参数张量 Decomposing the Parameter Tensor

  1. 事实上3.1节中提出的RNN相比传统RNN要包含更多的参数, 因为输入张量是T∈RV×K×KT\in \mathbb{R}^{V×K×K}TRV×K×K是一个三维张量, 因此为了减少参数数量, 本文提出使用张量秩分解(附录A)将TTT分解为三个矩阵:
  • ER∈RV×rE_R\in \mathbb{R}^{V×r}ERRV×r
  • D1∈RK×rD_1\in \mathbb{R}^{K×r}D1RK×r
  • D2∈RK×rD_2\in \mathbb{R}^{K×r}D2RK×r
  • 其中rrr为超参数且小于TTT的秩, 因此这个分解是近似的(approximate)
    • 经验发现, 对于一个从RE转换而来的具有100个状态的FA, 在r≥100r\ge 100r100的情况下, 可以获得一个很小的分解误差(≤1%\le 1\%1%);
  1. 于是现在RNN可以被参数OD=(α0,α∞,ER,D1,D2)O_D=(\alpha_0,\alpha_{\infty},E_R,D_1,D_2)OD=(α0,α,ER,D1,D2)确定:
  • ERE_RER的维度与词汇表大小VVV相关, 可以视为一个包含每个单词的RE信息的单词嵌入矩阵;
  • vt∈Rrv_t\in \mathbb{R^r}vtRr是E_R中单词xtx_txt的嵌入, 则式4中的循环形式可以改写成: α=(ht−1⋅D1)∘vtht=α⋅D2T(5)\alpha=(h_{t-1}\cdot D_1)\circ v_t\\h_t=\alpha \cdot D_2^T \tag{5}α=(ht1D1)vtht=αD2T(5)
    • 其中∘\circ表示按元素相乘(element-wise product)
    • 对于足够大的rrr来说, 式5可以得到与式4相同的结果;
  1. 注意到hth_tht的大小被从RE转换来的m-DFA的状态数量KKK决定, 在某些情况下, KKK可能会非常小, 导致RNN的表征能力受限(limited representation power);
  • 为了解决这一问题, 我们提出一种采样方法, 即用一个K′×rK^{\prime}×rK×r的零元矩阵(zero matrix)将D1D_1D1D2D_2D2拼接(concatenate), 从而将隐层状态大小增加到K′K^{\prime}K, 随后的训练中(subsequent training, 后续会介绍到)将会更新D1D_1D1D2D_2D2使得这些增加的维度可以被利用起来;
  • 折衷方法等价于将K′K^{\prime}K个偏远的(isolated)状态添加到FA中, 并且依赖训练来建立新旧状态间的转移;

3.3 集成预训练词嵌入 Integrating Pretrained Word Embedding

预训练好的词嵌入已经发现是可以给神经网络带来外部的词汇知识;

  1. Ew∈RV×DE_w\in \mathbb{R}^{V×D}EwRV×D是词语嵌入矩阵, ut∈RDu_t\in \mathbb{R}^DutRD是单词xtx_txtEwE_wEw中的词嵌入向量; 我们引入另一个矩阵G∈RDG\in \mathbb{R}^DGRD, 它可以将一个DDD维词嵌入向量utu_tut转换成rrr维, 这就可以替代掉式5循环中的vtv_tvt, 具体如下:
  • 初始化G=Ew+ERG=E_w^{+}E_RG=Ew+ER, 其中Ew+E_w^{+}Ew+EwE_wEw的伪逆(pseudo-inverse);
  • utGu_tGutG来近似vtv_tvt, 从而初始化的RNN仍然尽力在模仿FA
  • 经过训练后, RNN将可以利用预训练词嵌入中包含的额外信息, 从而可以比原始FA表现的更好;
  1. 实际操作中, 我们发现在两个rrr维嵌入向量vtv_tvtutGu_tGutG中插入(interpolate)一个超参数β∈[0,1]\beta \in [0,1]β[0,1]是很有效果的:
  • β=1\beta=1β=1, 我们仅仅使用RE信息;
  • β→0\beta \rightarrow 0β0, 我们集成更多的外部词汇信息到模型中;
  • 循环更新公式将变成如下的形式: zt=βvt+(1−β)utGα=(ht−1⋅D1)∘ztht=α⋅D2T(6)z_t=\beta v_t+(1-\beta)u_tG\\\alpha=(h_{t-1}\cdot D_1)\circ z_t\\h_t=\alpha \cdot D_2^T \tag{6}zt=βvt+(1β)utGα=(ht1D1)ztht=αD2T(6)
    • 这种新形式RNN就被命名为FA-RNN, 指基于FA建立起来的RNN;

3.4 FA-RNN的扩展 Extensions of FA-RNN

  1. 门控扩展: Gated Extension(FA-GRU)
  • 受门控循环单元(Gated Recurrent Unit, 下称GRU)启发, 我们牺牲了一些可解释性, 在FA-RNN中增加一个更新门(update gate)ftf_tft与一个重置门(reset gate)rtr_trt

    • 更新门决定有多少过去的信息将会被保留;
    • 重置门决定是否需要将前面的得分向量(previous score vector)重置为h0h_0h0
    • 循环更新公式将变成如下的形式: zt=βvt+(1−β)utGft=σ(Wfzt+Ufht−1+bf)rt=σ(Wrzt+Urht−1+br)h^t−1=(1−rt)∘h0+rt∘ht−1α=(h^t−1⋅D1)∘zth^t=α⋅D2Tht=(1−ft)∘ht−1+ft∘h^t(7)z_t=\beta v_t+(1-\beta)u_tG\\f_t=\sigma(W_fz_t+U_fh_{t-1}+b_f)\\r_t=\sigma(W_rz_t+U_rh_{t-1}+b_r)\\{\hat h}_{t-1}=(1-r_t)\circ h_0+r_t\circ h_{t-1}\\\alpha=({\hat h}_{t-1}\cdot D_1)\circ z_t\\{\hat h}_t=\alpha \cdot D_2^T\\h_t=(1-f_t)\circ h_{t-1}+f_t\circ{\hat h}_t \tag{7}zt=βvt+(1β)utGft=σ(Wfzt+Ufht1+bf)rt=σ(Wrzt+Urht1+br)h^t1=(1rt)h0+rtht1α=(h^t1D1)zth^t=αD2Tht=(1ft)ht1+fth^t(7)
      • 其中σ\sigmaσsigmoid\rm sigmoidsigmoid激活函数, Wf,Wr,Uf,UrW_f,W_r,U_f,U_rWf,Wr,Uf,Ur是门控参数;
      • ftf_tftrtr_trt都接近1时, FA-GRU将退化成FA-RNN, 所以我们初始化bf,brb_f,b_rbf,br为一个大数, Wf,Wr,Uf,UrW_f,W_r,U_f,U_rWf,Wr,Uf,Ur使用Xavier随机初始化(参考文献[08]), 以确保初始化的FA-GRU是近似等价于FA-RNN以及原始RE的;
  1. 双向扩展: Bidirectional Extension(BiFA-GNN)
  • 我们的模型很容易可以扩展成双向RNN, 方法如下:

    • 对于任何RE, 我们可以倒置它通过将单词顺序倒置:

      • free$*(phone|phones)$*就可以被倒置成$*(phone|phones)$*free
    • 然后就可以将倒置的RE转换成倒置的WFA, 进而变为倒置的FA-RNN;
    • 这种情况下, 得分向量hNh_NhN可以通过式67计算得到, 只需要将倒置的输入语句xxx给到就行了;
    • 然后我们利用倒置算出的得分向量hNh_NhN与正常形式算出的得分向量hNforwardh_N^{forward}hNforward加和取平均值, 即最终的得分向量为hN+hNforward2\frac{h_N+h_N^{forward}}{2}2hN+hNforward
    • 备注:
      • Bi-RNN示意图:

3.5 文本分类的聚合层 Aggregation Layer for Text Classification

正如2.2节中提到基于RE的文本分类系统一般包含多个RE的聚合形式来进行类别标签预测, 本节中将描述如何将这样一个多RE聚合形式转换成FA-RNN系统(如Figure1的底部)

  1. 多RE聚合文本分类系统转换成FA-RNN的方法:
  • 对于RE系统中的每个RE rir_iri都可以转换为带有KiK_iKi个状态的WFA AiA_iAi, 起始权重为α0,i\alpha_{0,i}α0,i, 终末权重为α∞,i\alpha_{\infty,i}α,i
  • 我们可以将这些WFA视为一个带有总状态数为K=∑iKiK=\sum_i K_iK=iKi, 且包含多个初始状态的的WFA;
  • 我们将这个WFA转换成FA-RNN即可, 这样就可以确保该FA-RNN对于语句xxx的处理包含了匹配所有RE的信息;
  1. 根据最终的hNh_NhN中预测类别标签的方法:
  • Table2: 逻辑表达式转为软逻辑表达式的示例
  • 我们创造一个软聚合层(soft aggregation layer):
    • ① 首先从hNh_NhN中挖掘出每个RE的forward或Viterbi得分;

      • 对于forward得分, 根据式4可以得到: Bforward(Ai,x)=hN⋅α‾∞,i(8)B_{\rm forward}(A_i,x)=h_N\cdot {\overline \alpha}_{\infty,i} \tag{8}Bforward(Ai,x)=hNα,i(8)

        • 其中α‾∞,i{\overline \alpha}_{\infty,i}α,i通过对不属于AiA_iAi的状态进行填零, 从而扩充α∞,i\alpha_{\infty,i}α,i得到;
      • 对于Viterbi得分, 我们直接将矩阵乘法替换成max-plus即可;
      • AiA_iAi最终的计算得分可以视为对RE rir_iri的软匹配结果(soft matching result);
    • ② 其次我们重写2.2节中引入的逻辑RE聚合规则(logical RE aggregation rules), 重写成为软逻辑表达式(soft logic expressions, 参考文献[20], 如Table2中所示);
      • 软聚合层输出标签logits, l∈Rkl\in \mathbb{R}^klRk, 而非具体的预测一个标签;
      • hNh_NhN中所有元素都接近0或1时, 软聚合层的输出将近似等价于2.2节中的RE聚合层的输出结果;
  1. 因为逻辑RE聚合规则可以用联合的一般形式(conjunctive normal form)表达, 我们可以用带有类似ReLU激活函数的两层MLP来实现对应的软聚合层; 这与通常位于传统神经网络末端, 用于映射隐层表示变为标签logit的MLP层类似; 实际操作中, 我们发现有时不在MLP中使用任何激活函数会更加有效;
  • 备注:

    • MLP指多层感知器(multi-layer percepton);

3.6 使用带标签的数据训练 Training with Labeled Data

  1. 迄今为止, 我们已经介绍了如何初始化一个近似等价于RE分类系统的FA-RNN, 当有已标注数据时, FA-RNN也可以被训练来提升性能, 我们在训练数据上简单使用输出logits lll来计算交叉熵损失, 并且使用一个基于梯度的方法(如Adam)来优化损失函数;

  2. 注意我们在训练过程中会固定ERE_RER, 因为发现更新ERE_RER对结果没有帮助, 所以FA-RNN训练参数的总量近似等于(一般是小于)同样的RNN的参数数量, 我们比较了不同模型的参数数量, 详剑附录C


4 实验 Experiments

我们使用FA-RNN的forward得分版本作为实验的默认配置;
我们使用GloVe作为词向量, 并且在我们的方法和所有基线(baselines)中保持该词向量固定;
我们调整学习率, 额外的偏远状态数K′K^{\prime}K以及插值系数(3.3节)β\betaβ
我们提供更多关于FA-RNN以及所有基线的调参细节, 详见附录D;

4.1 数据集 Datasets

  1. 本文在三个文本分类数据集上验证我们的方法表现, 这些数据集都是前人关于集成RE以及神经网络工作中使用的数据集:
  • ATIS数据集: ATIS是一个流行的数据集, 它包含了关于航班信息和服务的查询;
  • QS数据集(Question Classification): QC数据集包含可以被分类成Location, Entity等类别的问题;
  • SMS数据集: SMS数据集是一个垃圾短信分类数据集;
  1. Table3: 数据集统计数字和样例RE
  • 我们为ATIS数据集编写一般的RE, 为QC和SMS数据集编写一种变体的RE(参考文献[02]), Table3中展示了这些数据集的统计信息;

4.2 基线 Baselines

  1. 基本网络 Basic Networks
  • 本文比较FA-RNN与传统RNN网络, 如RNN, GRU, LSTM以及它们的双向变体;
  • 本文也对四层CNN与四层DAN进行了实验, 这两种网络也常用于文本分类;
    • 备注: DAN应该是指对偶注意力网络(Dual Attention Network);
  • 本文将上述网络的输出输入到MLP中取得标签logits, 并使用交叉熵损失作为目标函数;
  • 本文对于每个数据集, 都在开发数据集(development set)上调整学习率和隐层数量(50,100,150,200);
  1. 正则增强的基本网络 RE-enhanced Basic Networks
  • 本文也比较我们的方法和RE增强的基本神经网络;
  • 参考文献[27]中提出三种方法来将RE应用到神经网络中:
    • ① 使用结果作为额外的输入特征;
    • ② 使用结果来指引注意力;
    • ③ 使用结果来直接调整输出的标签logits;
  • 本文的基本网络不涉及注意力机制, 因此只使用①③两种方法来增强(使用其中一个或两个一起使用), 分别标记为+i,+o,+io+i,+o,+io+i,+o,+io
  • 另一种使用规则的方法是知识提炼框架(knowledge distillation framework, 参考文献[11]), 它将RE系统视为教师(teacher), 它的标签logits作为软目标(soft targets), 然后提炼知识融合进基本网络中; 本文将这种方法标记为+kd+kd+kd
  • 参考文献[17]将知识提炼和后正则化(posterior regularization)结合, 方法是迭代映射(iteratively projecting)学生网络(student network)到规则化空间(rule-regularized space)中; 本文将这种方法标记为+pr+pr+pr
  • 最后在零射(zero-shot)配置下, 本文也通过使用经过RE标注的无标签数据进行训练, 增强了这些基线模型, 我们将这种增强标记为+u+u+u

4.3 零射分类 Zero-Shot Classification

  1. 本文比较了在零射场景下, 我们的方法和RE系统以及RE增强的BiGRU的表现:
  • 零射场景指没有可用训练数据(包括开发数据集devset);
  • 所有的方法都是用的同一套RE集合来操作或者初始化;
  • 对于+u+u+u增强, 本文使用完整的训练数据, 仅仅是移除了他们的标签来当成无标签数据;
  • Table4: 零射分类的精确性统计
    • 零射场景下各个模型以及增强方法的评估结果在Table4中;
  1. 实验结果分析:
  • 我们的方法与RE系统不相上下, 两者微小的差异可能来自分解参数张量以及集成词嵌入时的近似误差, 此外FA-GRU中的门控也会产生一些误差;
  • 我们的方法比RE增强的BiGRU要好得多, 因为后者在不训练的情况下除了+o+o+o+io+io+io模式外就是在随机猜测, RE匹配结果直接影响输出, 从而提升预测效果;
  • +u+u+u的基线也可以赶上RE系统的精确性, 不过与我们的方法不同, 他们需要在充足的RE标注数据上训练;
  1. 附录E中汇报了其他基线的结果, 总而言之如果不训练, 没有经过RE增强的基线模型仅仅是在做随机猜测, 其他RE增强的基本网络与RE增强的BiGRU有相似的表现;

4.4 低资源和全训练 Low-Resource and Full Training

  1. 实验配置与结果分析:
  • Table5: 分类精确性对于不同数量的训练数据
  • 本文针对模型在不同数量训练数据上的训练结果(1%,10%,100%1\%,10\%,100\%1%,10%,100%的训练数据)比较了所有方法:
    • 其中10%10\%10%100%100\%100%的训练数据集上使用了原始开发数据集;
    • 对于1%1\%1%训练数据的实验, 本文采样了一个更小的开发数据集(包含了与1%1\%1%训练数据集同样数量的数据)来模拟低资源配置;
    • Table5展示了这些结果;
    • 因为空间限制, 对于RE增强的网络, 我们仅仅汇报了RE增强的BiGRU的实验结果, 因为BiGRU是所有RE增强的RNN中表现最好的网络结构;
    • 所有方法的完整比较结果(带有标准差)可以在附录E中查看
  • 从结果来看低资源配置下比其他方法都要表现得好, 尤其是在1%1\%1%的训练数据训练下;
  • 对于100%100\%100%的训练数据, 我们的方法要比RNN, DAN, CNN要好得多, 同样比BiLSTM, BiGRU, RE增强的BiGRU要好一点点;
  • RE增强的BiGR确实要比非增强的BiGRU要好;
  • +pr,+kd+pr,+kd+pr,+kd看起来似乎比+i,+o,+io+i,+o,+io+i,+o,+io更加的需要数据(data-hungry);
  1. SMS数据集上的实验分析:
  • Figure2: SMS数据集不同使用比例下的模型查准率与召回率折线图
  • SMS是一个垃圾邮件检测的二分类任务, 所以我们将[spamspamspam]标签当成正标签(positive label), 并计算不同训练数据量的情况下, 两个基线(GRU和GRU+io+io+io)与FA-RNN三个方法的查准率与查全率, 可以在Figure2中看到比较结果;
  • 没有训练数据的情况下, FA-RNN几乎与RE等价并且拥有高查准率与一般的召回率;
  • 训练数据量增加到3%3\%3%, FA-RNN的召回率将会大大提升, 而查准率仅仅会发生很少的下降;
  • 在有额外数据(additional data)的情况下, FA-RNN的的查准率和查全率都会有所提升;
  • 基线方法的评估效果总是随着训练数据量的增加二变得更好, 但是GRU+ioioio的查准率和查全率看起来并不是很稳定;

5 分析 Analysis

  1. β\betaβ值的影响 Impact of β\betaβ
  • 6中提到的β\betaβ控制了预训练词嵌入的影响;
  • Figure3: 不同β\betaβ下FA-RNN的表现情况
  • Figure3展示了零射场景和全训练(fully-trained)场景下, β\betaβ值对FA-RNN表现的影响:
    • 可以看出使用预训练词嵌入在零射场景下是没有增益的, 但是在全训练场景下是很有帮助的;
    • 一种可能的解释是, 预训练词嵌入中编码的单词相似度与分类任务是不相恰的(compatible), 但是使用了训练数据后可能会使得模型更好的利用了词嵌入中的信息;
  1. 消融研究 Ablation Study
  • Table6: 消融研究分析

    • -F表示使用forward评分的默认方法;
    • -V表示Viterbi得分;
    • -O表示3.1节中提到的undercomposed version;
    • -Rand表示随机初始化;
    • -RandEwE_wEw表示使用随机词嵌入;
    • -TrainERE_RER表示训练ERE_RER
  • Table6展示了FA-RNN的变体在全数据集上训练的结果, 结论如下:
    • ① 使用forward得分比使用Viterbi得分要表现得好;
    • 3.2节中描述的张量分解不仅可以减少参数数量, 而且整体上提高了模型表现;
    • ③ RE初始化是有帮助的, 因为要比随机初始化更好
    • ④ 集成预训练词嵌入是有帮助的, 因为使用随机词嵌入的效果要变差很多;
    • ⑤ 平均来说, 训练ERE_RER不能得到更好的效果, 可能是因为训练ERE_RER将会引入过多的参数;

6 可解释性 Interpretability

  1. 我们将RE/WFA与RE初始化的模型之间的等价性视为体现良好可解释性的点, 原因是:
  • ① 对于熟悉RE和自动机的专业人员来说, 我们的模型转回WFA就直接具有可解释性;
  • ② 对于不熟悉RE和自动机的非专业人员来说, 我们也可以运行一个RE/WFA的样例让他们理解;
    • 备注:

      • 虽然我没有特别搞清楚第②点里的意思, 但是直接教会他们什么是RE和WFA不就完事了;
  1. 注意到FA-RNN并非只是在初始化时可以轻易被转换回RE/WFA, 即便是经过训练转换后, 我们会发现FA-RNN训练过的参数ORE=(E^R,D^1,D^2,G^)O_{RE}=({\hat E}_R,{\hat D}_1,{\hat D}_2,{\hat G})ORE=(E^R,D^1,D^2,G^)和词嵌入矩阵EwE_wEw可以被用来重构WFA的张量TTT: E^wR=β⋅E^R+(1−β)⋅EwG^T^(1)=(D^2⊙D^1)E^wRT(9){\hat E}_{wR}=\beta\cdot{\hat E}_R+(1-\beta)\cdot E_w {\hat G}\\{\hat T}_{(1)}=({\hat D}_2 \odot {\hat D}_1){\hat E}_{wR}^{T} \tag{9}E^wR=βE^R+(1β)EwG^T^(1)=(D^2D^1)E^wRT(9)
  • T^(1){\hat T}_{(1)}T^(1)表示重构张量T^\hat TT^mode-1 unfolding;
  • ⊙\odot表示Khatri-Rao product
  • 进一步地, 我们可以使用一个阈值函数(thresholding function)f(x)=I{x≥γ}f(x)=\mathbb{I}\{x\ge \gamma\}f(x)=I{xγ}来将权重转换成零一值, 于是就可以复原成一个FA;
    • γ\gammaγ是一个固定的标量;
  • 类似地, 我们在软聚合层中可以近似(round)权重, 从而重构逻辑聚合层(logical aggregation layer), 通过这种方法就可以将一个训练好的FA-RNN转换回RE;
  1. 事实上因为阈值函数的存在, 重构回RE的FA-RNN反而比常规的RE表现地更好:
  • QC数据集上比RE好9.2%9.2\%9.2%, 精确性为73.6%73.6\%73.6%
  • ATIS数据集上比RE好0.45%0.45\%0.45%, 精确性为87.45%87.45\%87.45%
  • SMS数据集上比RE差1.2%1.2\%1.2%, 因为原始的RE已经足够好了;
  • Figure4: 原始RE以及被FA-RNN训练后转回的RE的一个例子
    • Figure4中可以看到经过训练的RE可以将jet737737737识别为[airline]标签, 详细结果可以见附录F;
  1. FA-RNN的可解释性引出模型的微调:
  • 可以增加新的RE而无需重新训练模型;
  • 如果拒绝一个集合的RE, 只需要将做如下的变换:
    • 将这些拒绝的RE变成一个新的FA-RNN, 参数为Onew=(ER,D1,D2,G)O_{new}=(E_R,D_1,D_2,G)Onew=(ER,D1,D2,G)
    • 将该FA-RNN的参数合并到一个原始训练过的FA-RNN, 带有参数OREO_{RE}ORE, 通过concatenate参数矩阵: ([E^R,ER],diag(D^1,D1),diag(D^2,D2),[G^G])(10)([{\hat E}_R,E_R],diag({\hat D}_1,D_1),diag({\hat D}_2,D_2),[{\hat G}G])\tag{10}([E^R,ER],diag(D^1,D1),diag(D^2,D2),[G^G])(10)
      • 其中diagdiagdiag表示对角矩阵;
  • 如果需要增加新的逻辑聚合规则(logical aggregation rules), 可以类似得通过连接(concatenate)更新聚合层参数;
  • 如果需要disable掉FA-RNN中的RE, 只需要重构WFA, 删除那些状态的RE使得不会再到达disable的REE即可, 最后再把WFA转换回FA-RNN即可;

7 相关工作 Related Work

  1. 通过规则增强的神经网络 Neural Networks Enhanced by Rules
  • ① 参考文献[17]: 通过知识提炼(knowledge distillation)和后正则化(posterior)的方法, 实现了用规则约束神经网络的效果;
  • ② 参考文献[02]: 通过多任务学习(multi-task learning)对神经网络进行规则知识的注入(inject into), 实现了神经网络的增强;
  • ③ 参考文献[25]: 通过使用额外的标注(annotation)来训练一个触发匹配网络(trigger matching network), 并且将触发匹配的结果作为一个序列标注器(sequence labeler)的注意力(attention);
  • ④ 参考文献[16,33,38]: 通过加入额外的损失项(additional loss terms), 使用解析过的规则结果(parsed rule results)来正则化(regularize)神经网络预测;
  • ⑤ 参考文献[22,27]: 将陈述性知识(declarative knowledge)以解析过的RE结果(parsed RE results)或一阶表达式(first-order expressions)的形式, 注入到(inject into)神经网络中, 方法是通过取出(hacking)预测logits或是注意力得分(attention scores);
  • ⑥ 参考文献[17,38]: 使用规则作为额外的输入特征;
  • 上述所有方法都使用规则的匹配结果或是真实值(truth values)来增强现有的神经模型, 而本文直接将RE转换成了一个新颖的可训练的神经网络, 这是本文的创新点;
  1. 联系神经网络与WFA Relating Neural Networks and WFA
  • ① 参考文献[34]: 提出一种用于学习软表面模式(soft surface patterns, 这是RE的一个子集)的神经网络, 这种神经网络是由WFA激发而来, 但是不能从WFA或者表面模式(surface pattern)转换得来; 而本文的FA-RNN可以直接从RE初始化得到, 且可以转换回RE;
  • ① 参考文献[05,30]: 针对各种RNN架构, 将它们每个隐层维度的更新构建成为一个小的WFA;

    原文: formulate the update of each hidden dimension of various RNN architectures as a small WFA.

  • ② 参考文献[28,37]: 提供多种神经网络以及它们接受语言(accepting languages)的理论分析; 本文的工作主要不是理论分析, 更多的是在寻求一个可以应用到实际的文本分类方法;
  • ③ 参考文献[07,29]: 证明了WFA和二阶(second-order)RNN的等价性;
  • 本文工作与上述工作的不同之处在于:
    • ① 与本文FA-RNN的未分解版本(undecomposed version)相比, 上述工作中的RNN模型包含了非线性的激活函数, 使得他们的模型变得很复杂;
    • ② 本文FA-RNN进一步分解了张量参数, 集成词嵌入, 并且提出门控和双向扩展;
    • ③ 上述工作更着重于理论分析, 本文更着重于实践研究;

8 总结与未来工作 Conclusion and Future Work

  • 本文提出一种称为FA-RNN的循环神经网络, 它可以直接从RE初始化得到并且利用已标注数据进行训练学习, 从而可以应用到诸如零射(zero-shot), 冷启动(cold-start), 低资源(low-resource)和富资源(rich-resource)等各种场景中;
  • FA-RNN同样是具有可解释性的, 且可以在训练后重新转换回RE;
  • 本文基于文本分类的实验中证明了FA-RNN比之前的神经方法在零射, 低资源场景下表现得好得多, 且在富资源场景下仍然有具有竞争力的表现;
  • 之后我们计划将FA-RNN应用到其他任务, 再挖掘其他FA-RNN的变体;
  • 本文的数据集, RE规则, 代码发布在GitHub: RE2RNN
  • 致谢(Acknowledgments):

    This work was supported by the National Natural Science Foundation of China (61976139). We thank Dongwu Lin for his support in implementing a tool for creating automata and rules.


参考文献 References

[01] Túlio C Alberto, Johannes V Lochter, and Tiago A Almeida. 2015. Tubespam: Comment spam filtering on youtube. In 2015 IEEE 14th International Conference on Machine Learning and Applications (ICMLA), pages 138–143. IEEE.
[02] Abhijeet Awasthi, Sabyasachi Ghosh, Rasna Goyal, and Sunita Sarawagi. 2020. Learning from rules generalizing labeled exemplars. ICLR.
[03] Leonard E. Baum and Ted Petrie. 1966. Statistical inference for probabilistic functions of finite state markov chains. Ann. Math. Statist., 37(6):1554–1563.
[04] Junyoung Chung, Caglar Gulcehre, KyungHyun Cho,and Yoshua Bengio. 2014. Empirical evaluation of gated recurrent neural networks on sequence modeling. arXiv preprint arXiv:1412.3555.
[05] Jesse Dodge, Roy Schwartz, Hao Peng, and Noah A.Smith. 2019. RNN architecture learning with sparseregularization. In Proceedings of the 2019 Conference on Empirical Methods in Natural Language Processing and the 9th International Joint Conference on Natural Language Processing (EMNLPIJCNLP), pages 1179–1184, Hong Kong, China. Association for Computational Linguistics.
[06] Jeffrey L Elman. 1990. Finding structure in time. Cognitive science, 14(2):179–211.
[07] C. L. Giles, C. W. Omlin, and K. K. Thornber. 1999. Equivalence in knowledge representation: automata, recurrent neural networks, and dynamical fuzzy systems. Proceedings of the IEEE, 87(9):1623–1640.
[08] Xavier Glorot and Yoshua Bengio. 2010. Understanding the difficulty of training deep feedforward neural networks. In Proceedings of the thirteenth international conference on artificial intelligence and statistics, pages 249–256.
[09] Alex Graves, Greg Wayne, and Ivo Danihelka. 2014. Neural turing machines. arXiv preprint arXiv:1410.5401.
[10] Charles T Hemphill, John J Godfrey, and George R Doddington. 1990. The atis spoken language systems pilot corpus. In Speech and Natural Language: Proceedings of a Workshop Held at Hidden Valley, Pennsylvania, June 24-27, 1990.
[11] Geoffrey Hinton, Oriol Vinyals, and Jeff Dean. 2015. Distilling the knowledge in a neural network. arXiv preprint arXiv:1503.02531.
[12] Sepp Hochreiter and Jürgen Schmidhuber. 1997. Long short-term memory. Neural computation, 9(8):1735–1780.
[13] John Hopcroft. 1971. An n log n algorithm for minimizing states in a finite automaton. In Theory of machines and computations, pages 189–196. Elsevier.
[14] John E Hopcroft, Rajeev Motwani, and Jeffrey DUllman. 2001. Introduction to automata theory, languages, and computation. Acm Sigact News, 32(1):60–65.
[15] Haruo Hosoya and Benjamin Pierce. 2001. Regular expression pattern matching for xml. In Proceedings of the 28th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL ’01, page 67–80, New York, NY, USA. Association for Computing Machinery.
[16] Wan-Ting Hsu, Chieh-Kai Lin, Ming-Ying Lee, Kerui Min, Jing Tang, and Min Sun. 2018. A unified model for extractive and abstractive summarization using inconsistency loss. In Proceedings of the 56th Annual Meeting of the Association for Computational Linguistics (Volume 1: Long Papers), pages 132–141, Melbourne, Australia. Association for Computational Linguistics.
[17] Zhiting Hu, Xuezhe Ma, Zhengzhong Liu, Eduard Hovy, and Eric Xing. 2016. Harnessing deep neural networks with logic rules. ACL.
[18] Mohit Iyyer, Varun Manjunatha, Jordan Boyd-Graber, and Hal Daumé III. 2015. Deep unordered composition rivals syntactic methods for text classification. In Proceedings of the 53rd Annual Meeting of the Association for Computational Linguistics and the 7th International Joint Conference on Natural Language Processing (Volume 1: Long Papers), pages 1681–1691.
[19] Yoon Kim. 2014. Convolutional neural networks for sentence classification. arXiv preprint arXiv:1408.5882.
[20] Angelika Kimmig, Stephen H. Bach, Matthias Broecheler, Bert Huang, and Lise Getoor. 2012. A short introduction to probabilistic soft logic. In NIPS 2012.
[21] Diederik P Kingma and Jimmy Ba. 2014. Adam: A method for stochastic optimization. arXiv preprint arXiv:1412.6980.
[22] Tao Li and Vivek Srikumar. 2019. Augmenting neural networks with first-order logic. arXiv preprint arXiv:1906.06298.
[23] Xiang Lisa Li and Alexander Rush. 2020. Posterior control of blackbox generation. In Proceedings of the 58th Annual Meeting of the Association for Computational Linguistics, pages 2731–2743, Online. Association for Computational Linguistics.
[24] Xin Li and Dan Roth. 2002. Learning question classifiers. In Proceedings of the 19th international conference on Computational linguistics-Volume 1, pages 1–7. Association for Computational Linguistics.
[25] Bill Yuchen Lin, Dong-Ho Lee, Ming Shen, Ryan Moreno, Xiao Huang, Prashant Shiralkar, and Xiang Ren. 2020. TriggerNER: Learning with entity triggers as explanations for named entity recognition. In Proceedings of the 58th Annual Meeting of the Association for Computational Linguistics, pages 8503– 8511, Online. Association for Computational Linguistics.
[26] Chu-Cheng Lin, Hao Zhu, Matthew R Gormley, and Jason Eisner. 2019. Neural finite-state transducers: Beyond rational relations. In Proceedings of the 2019 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, Volume 1 (Long and Short Papers), pages 272–283.
[27] Bingfeng Luo, Yansong Feng, Zheng Wang, Songfang Huang, Rui Yan, and Dongyan Zhao. 2018. Marrying up regular expressions with neural networks: A case study for spoken language understanding. ACL.
[28] William Merrill. 2019. Sequential neural networks as automata. CoRR, abs/1906.01615.
[29] Christian W Omlin, Karvel K Thornber, and C Lee Giles. 1998. Fuzzy finite-state automata can be deterministically encoded into recurrent neural networks. IEEE Transactions on Fuzzy Systems, 6(1):76–89.
[30] Hao Peng, Roy Schwartz, Sam Thomson, and Noah A Smith. 2018. Rational recurrences. EMNLP.
[31] Jeffrey Pennington, Richard Socher, and Christopher D Manning. 2014. Glove: Global vectors for word representation. In Proceedings of the 2014 conference on empirical methods in natural language processing (EMNLP), pages 1532–1543.
[32] Michael O Rabin and Dana Scott. 1959. Finite automata and their decision problems. IBM journal of research and development, 3(2):114–125.
[33] Tim Rocktäschel, Sameer Singh, and Sebastian Riedel. 2015. Injecting logical background knowledge into of the 2015 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies, pages 1119–1129, Linguistics.
[34] Roy Schwartz, Sam Thomson, and Noah A Smith.2018. Sopa: Bridging cnns, rnns, and weighted finite-state machines. ACL.
[35] Ken Thompson. 1968. Programming techniques: Regular expression search algorithm. Communications of the ACM, 11(6):419–422.
[36] A. Viterbi. 1967. Error bounds for convolutional codes and an asymptotically optimum decoding algorithm. IEEE Transactions on Information Theory, 13(2):260–269.
[37] Gail Weiss, Yoav Goldberg, and Eran Yahav. 2018. On the practical computational power of finite precision rnns for language recognition. arXiv preprint arXiv:1805.04908.
[38] Jingyi Xu, Zilu Zhang, Tal Friedman, Yitao Liang, and Guy Van Den Broeck. 2018. A semantic loss function for deep learning with symbolic knowledge. 35th International Conference on Machine Learning, ICML 2018.
[39] Shanshan Zhang, Lihong He, Slobodan Vucetic, and Eduard Dragut. 2018. Regular expression guided entity mention mining from noisy web data. In Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing, pages 1991–2000, Brussels, Belgium. Association for Computational Linguistics.

附录A 张量秩分解(CPD) Tensor Rank Decomposition

  1. 三维张量T∈Rd1×d2×d3T\in {\mathbb R}^{d_1×d_2×d_3}TRd1×d2×d3可以用rrr个秩一张量来近似: T≈T^=∑i=1rai⊗bi⊗ciT^(1)=(C⊙B)ATT\approx {\hat T} = \sum_{i=1}^r a_i \otimes b_i \otimes c_i \\ {\hat T}_{(1)} = (C \odot B)A^TTT^=i=1raibiciT^(1)=(CB)ATA=[a1,a2,...,ar],A∈Rd1×r,B=[b1,b2,...,br],B∈Rd2×r,C=[c1,c2,...,cr],C∈Rd3×r,(11)A = [a_1,a_2,...,a_r],A\in {\mathbb R}^{d_1×r}, \\ B = [b_1,b_2,...,b_r],B\in {\mathbb R}^{d_2×r}, \\ C = [c_1,c_2,...,c_r],C\in {\mathbb R}^{d_3×r}, \tag{11}A=[a1,a2,...,ar],ARd1×r,B=[b1,b2,...,br],BRd2×r,C=[c1,c2,...,cr],CRd3×r,(11)
  • T^(1){\hat T}_{(1)}T^(1)表示张量T^\hat TT^的mode-1 unfolding

    • 备注:

      • mode-1 unfolding可以翻译为模态一展开, 即将张量的后两维相乘, 展开成为n1×(n2n3)n_1×(n_2n_3)n1×(n2n3)的一个二阶张量;
  • ⊙\odot表示Khatri-Rao积
    • 备注:

      • 即KR积, 定义在两个列数相同的二维张量上, 详见https://blog.csdn.net/weixin_38452468/article/details/77245828
  • ⊗\otimes表示向量外积, 就是叉乘;
  • TTT的秩小于等于rrr时, 这个分解可以精确的做到;

附录B CPD的技巧 Tricks for CPD

  1. 加速CPD Speeding up CPD
  • 若词汇表大小VVV很大, 则分解WFA张量TV×K×KT^{V×K×K}TV×K×K是困难的;
  • 然而如果我们忽略通配符(wildcard)$, 其他单词出现在RE中通常会构成全词汇表的一个小子集Σ′\Sigma^{\prime}Σ
  • V1V_1V1表示Σ′\Sigma^{\prime}Σ的大小, 我们就可以使用一个通配符矩阵W∈K×KW\in \mathbb{K×K}WK×K和一个小得多的张量T1V1×K×KT_1^{V_1×K×K}T1V1×K×K来表示TTT
  • 当WFA在响应通配符$时, 从sis_isi转移到sjs_jsj, 则令W[i,j]=1W[i,j]=1W[i,j]=1, 否则W[i,j]=0W[i,j]=0W[i,j]=0
  • 类似地, 当WFA在响应Σσ′\Sigma_{\sigma}^{\prime}Σσ时, 从sis_isi转移到sjs_jsj, 则令T1[σ,i,j]=1T_1[\sigma,i,j]=1T1[σ,i,j]=1, 否则T1[σ,i,j]=0T_1[\sigma,i,j]=0T1[σ,i,j]=0
  • 在这种构造方法下, 若Σσ1=Σσ2\Sigma_{\sigma_1}=\Sigma_{\sigma_2}Σσ1=Σσ2, 则T[σ1]=W+T1[σ2]T[\sigma_1]=W+T_1[\sigma_2]T[σ1]=W+T1[σ2]
  • 注意到因为Σ′\Sigma^{\prime}Σ很校, 所以分解T1T_1T1得到ER′∈RV1×r,D1′∈RK×r,D2′∈RK×rE_R^{\prime}\in {\mathbb R}^{V_1×r},D_1^{\prime}\in {\mathbb R}^{K×r},D_2^{\prime}\in {\mathbb R}^{K×r}ERRV1×r,D1RK×r,D2RK×r要容易得多;
  • 得到上述三个矩阵(ER′,D1′,D2′E_R^{\prime},D_1^{\prime},D_2^{\prime}ER,D1,D2)后, 我们零填充ER′E_R^{\prime}ER得到ER′′∈RV×rE_R^{\prime\prime}\in {\mathbb R}^{V×r}ERRV×r,
    • 使得ER′′[σ]=0E_R^{\prime\prime}[\sigma]=0ER[σ]=0, 若Σσ∉Σ′\Sigma_{\sigma} \notin \Sigma^{\prime}Σσ/Σ
    • ER′′[σ]=ER′[σ1]E_R^{\prime\prime}[\sigma]=E_R^{\prime}[\sigma_1]ER[σ]=ER[σ1], 若Σσ=Σσ1′∈Σ′\Sigma_{\sigma}=\Sigma_{\sigma_1}^{\prime}\in\Sigma^{\prime}Σσ=Σσ1Σ
  • vt∈Rrv_t\in {\mathbb R}^rvtRr是单词xtx_txt包含在ER′′E_R^{\prime\prime}ER中的嵌入向量, 则FA-RNN的循环更新变成:α=(ht−1⋅D1)∘vtht=α⋅D2T+ht−1W(12)\alpha=(h_{t-1}\cdot D_1)\circ v_t\\h_t=\alpha\cdot D_2^T+h_{t-1}W\tag{12}α=(ht1D1)vtht=αD2T+ht1W(12)
    • 我们默认不训练通配符矩阵WWW, 这个新的循环更新将与不采用这种trick的方法, 得到相同的结果;
  1. 标准化ER,D1,D2E_R,D_1,D_2ER,D1,D2
  • 我们发现标准化(normalizing)ER,D1,D2E_R,D_1,D_2ER,D1,D2来确保他们有相似的平均FFF范数(average Frobenius norm), 这对我们的方法的效果是有帮助的;

    • 平均FFF范数是将F范数除以矩阵元素个数;
  • a,b,ca,b,ca,b,c分别表示ER,D1,D2E_R,D_1,D_2ER,D1,D2的平均FFF范数, y=(abc)13y=(abc)^{\frac{1}{3}}y=(abc)31, 我们可以通过将它们分别乘以因子ya,yb,yc\frac{y}{a},\frac{y}{b},\frac{y}{c}ay,by,cy来标准化ER,D1,D2E_R,D_1,D_2ER,D1,D2
  • 通过这种标准化矩阵重构的张量与通过原始的矩阵重构张量是相同的;

附录C 参数数量 Number of Parameters

  1. Table7: 参数数量计算公式
  • Table7展示了FA-RNN模型和传统RNN模型的参数数量计算公式, 其中:

    • KKK是WFA的状态数;
    • rrr是张量分解的秩;
    • DDD是词嵌入的维度;
    • HHH是RNN网络的隐层维度;
  • 大部分情况下, KKKrrr的大小都要比HHH更小, 或是同一数量级;

Table8: 不同数据集上不同模型的参数数量统计

  • Table8展示了训练参数数量;
  • 模型尺寸(model size)通过在开发数据集上的测试进行调整和选择;
  • 与聚合层或者MLP层相关的参数也被囊括进来;
  • 结果显示我们的方法通常比基线有更少的可训练模型参数;

附录D 超参数 Hyper-parameters

  1. 超参数调参范围报告:
  • 学习率: [0.01,0.005,0.001,0.0005,0.0001][0.01,0.005,0.001,0.0005,0.0001][0.01,0.005,0.001,0.0005,0.0001]
  • FA-RNN与它的各种变体中的参数:
    • rrr: [150,200][150,200][150,200]
    • 额外的隐层状态(additional hidden states): [0,30][0,30][0,30]
    • β\betaβ: [0.3,0.5,0.7,1.0][0.3,0.5,0.7,1.0][0.3,0.5,0.7,1.0]
  • 对于传统神经网络, 隐层维度: [50,100,150,200][50,100,150,200][50,100,150,200]
  • 对于+i,+o,+io+i,+o,+io+i,+o,+io, RE标签(tag)维度: [20,50][20,50][20,50]
  • 对于+pr,+kd+pr,+kd+pr,+kd, 参数aaa: [0.3,0.5,0.7][0.3,0.5,0.7][0.3,0.5,0.7]
    • 这些是用于平衡模仿教师和预测真实硬标签(???);
    • 看不懂上一句话, 这里给出它的原文:

      it is used for balancing between imitating the teacher and predicting the true hard labels.

  1. 通过调参对每个方法在开发数据集上的精确性进行评估, 选择最好的一组参数作为最终参数;

附录E 完整实验结果 Full Experimental Results

  1. Table9,Table10,Table11(三张长表详见图表汇总部分)中分别展示了三个数据集上的带有标准差全部实验结果; 我们对每个模型的每种配置, 使用不同的随机种子运行四次, 最后得到的精确性取均值, 并计算标准差; 低资源场景下的标准差非常大是因为这种情况下的训练数据是随机抽选的;

附录F 额外的可解释性例子 Additional Interpretability Example

  1. 我们展示一个更加复杂的例子:
  • Figure5: 针对标签[ground_fare]的未训练和已训练RE的对比
  • Figure5是从ATIS数据集中训练后得到的一个对比, 熏染训练后的RE包含了更加全面的(more sophisticated)模式: 包含更多的转移状态以及一些轻微的架构变化;

图表汇总
















【论文阅读】正则表达式也可以被当成神经网络训练吗?[附项目代码与代码详细说明]相关推荐

  1. [论文阅读] (20)USENIXSec21 DeepReflect:通过二进制重构发现恶意行为(恶意代码ROI分析经典)

    <娜璋带你读论文>系列主要是督促自己阅读优秀论文及听取学术讲座,并分享给大家,希望您喜欢.由于作者的英文水平和学术能力不高,需要不断提升,所以还请大家批评指正,非常欢迎大家给我留言评论,学 ...

  2. (论文阅读)基于融合深度卷积神经网络的人脸识别方法研究-褚玉晓

    一.基于融合深度卷积神经网络人脸识别方法设计 1.PCA算法提取人脸特征 主要成分分析法(Principal Component Analysis,PCA) 第一步,计算人脸图像的平均值并执行归一化的 ...

  3. 论文阅读(4)基于卷积神经网络的自适应颜色增强在皮肤深层病变分割中的应用

    目录 基于卷积神经网络的自适应颜色增强在皮肤深层病变分割中的应用 摘要 1.引言 2.人工数据增强 2.1 颜色增强 2.2 空间增强 3. 网络结构 4.结果 5.讨论 5.1 色彩增强的有效性-- ...

  4. 论文阅读Targetless Calibration of LiDAR-IMU System Based on Continuous-time Batch Optimization(含代码解读)

    原文链接: https://arxiv.org/pdf/2007.14759v1.pdf 代码地址GitHub - APRIL-ZJU/lidar_IMU_calib: Targetless Cali ...

  5. 【阅读笔记】针对PyTorch提高神经网络训练速度的方法—《Here are 17 ways of making PyTorch training faster – what did I miss?》

    原文连接:https://efficientdl.com/faster-deep-learning-in-pytorch-a-guide/ 目录 写在开头 1. 考虑使用不同的学习率变化策略(Cons ...

  6. 【论文阅读及复现】(1998)无网格线探索布线算法 + Python代码实现

    文章目录 一.摘要 二.单层无网格线探索算法 2.1 形式描述 2.1.1 探索线 2.1.2 探索过程 2.1.3 绕障偏移量 2.2 变量说明 2.3 启发式规则 2.3.1 I型绕障 2.3.2 ...

  7. 基于Android的儿童绘本阅读与收听APP的设计与实现【附项目源码+论文说明】

    基于Android的儿童绘本阅读与收听APP的设计与实现演示 摘要 随着人们生活水平的不断提高,儿童学前教育日益受到重视.绘本作为一种历史古老.效果优秀的早教手段,利用图画和简短的文字构筑出一个跌宕起 ...

  8. 【论文阅读】时间序列中的变量是一张知识图谱

    论文标题: Recurrent Event Network: Autoregressive Structure Inference over Temporal Knowledge Graphs 中文标 ...

  9. [论文阅读] (22)图神经网络及认知推理总结和普及-清华唐杰老师

    <娜璋带你读论文>系列主要是督促自己阅读优秀论文及听取学术讲座,并分享给大家,希望您喜欢.由于作者的英文水平和学术能力不高,需要不断提升,所以还请大家批评指正,非常欢迎大家给我留言评论,学 ...

最新文章

  1. Sprites实现翻页按钮,圆角,宽度不固定
  2. Selenium POM简介
  3. 三十好几的程序员被领导责骂,只能到厕所痛哭!
  4. tomcat之一:指定tomcat运行时JDK版本
  5. L2-009. 抢红包-PAT团体程序设计天梯赛GPLT
  6. CCF201312-3 最大的矩形(解法二)(100分)(废除!!!)
  7. DIV+CSS网页设计布局应用详解视频教程
  8. 计算机与电视如何通过网络连接,怎么设置电脑和电视共用一根网线上网
  9. 不规则图片显示(css实现多边形)
  10. 游戏编辑器制作(6)
  11. 【金融项目】尚融宝项目(八)
  12. java 二进制 表示负数_java中的负数表示
  13. python 绘制旭日图
  14. Science上聚类算法论文——Clustering by fast search and find of density peaks翻译稿
  15. Spring + Thymeleaf 方言
  16. java程序员网名大全
  17. 学计算机广东2B大学,广东2b大学排名2018及名单
  18. android 读取wps_Android 实现 调用 WPS Office手机版接口
  19. 跟奥巴马一起编程(15)
  20. 地狱模式的沪上居转户记录 01

热门文章

  1. Oracle 同义词总结
  2. SQLServer中的N是什么意思?
  3. Gmail和Orkut邀请自助发送[共享]
  4. linux java性能监控工具_常用Linux 性能监测工具
  5. 互联网金融平台功能分析及微服务架构设计
  6. 2020总结:软件工程,由分析需求到立项到测试再到?
  7. PyTorch Tensor 的形状
  8. DTW 动态时间规整
  9. Python文件处理和异常处理基础知识
  10. 服务器显示16g内存可用,安装Win7 64位系统需要16G内存,但内存显示只有8G可用,怎么处理?...