纵深上以文件分类中的下。深度上以文书分类中的使用。

最近读书了有些深度上在文件分类中之采用相关论文(论文笔记),同时为到了CCF
大数据与计量智能大赛(BDCI)2017之一个文书分类问题之较量:让AI当法官,并取了最后评测第四誉为之成就(比赛之切切实实思路及代码参见github项目repo)。因此,本文总结了文件分类有关的纵深上型、优化思路及后可以展开的局部做事。欢迎转载,请保留本文链接:http://www.cnblogs.com/llhthinker/p/8127788.html

近年来读了一部分深度上以文件分类中的行使相关论文(舆论笔记),同时为参加了CCF
大数据及计量智能大赛(BDCI)2017的一个文书分类问题的比赛:让AI当法官,并收获了最后评测第四叫作的大成(比赛之切切实实思路以及代码参见github项目repo)。因此,本文总结了文件分类相关的深上型、优化思路以及后来足进行的组成部分办事。欢迎转载,请保留本文链接:http://www.cnblogs.com/llhthinker/p/8127788.html

1. 文本分类任务介绍

文本分类是自然语言处理的一个着力职责,试图想出加的文本(句子、文档等)的竹签或者标签集合。
文件分类的应用非常大。如:

  • 垃圾邮件分类:二分拣问题,判断邮件是否为垃圾邮件
  • 感情分析
    • 次分拣问题,判断文本情感是知难而进(positive)还是半死不活(negative)
    • 差不多分类问题,判断文本情感属于{非常被动,消极,中立,积极,非常主动}中之哪一样类
  • 讯主题分类:判断新闻属于哪个项目,如金融、体育、娱乐等
  • 自行问答系统受到的问句分类
  • 社区问答系统受的问题分类:多标签分类,如知乎看山杯
  • 更多用:
    • 让AI当法官:
      基于案件事实描述文本的罚金等级分类(多分类)和法条分类(多标签分类)。
    • 判断新闻是否也机器人所描绘:
      二分类
    • ……

差品种的文本分类往往时有发生差之褒贬指标,具体如下:

  • 二分类:accuracy,precision,recall,f1-score,…
  • 多分类: Micro-Averaged-F1, Macro-Averaged-F1, …
  • 大多标签分类:Jaccard相似系数, …

  • 风土人情机器上方法

风的机械上方法主要采用自然语言处理中之n-gram概念对文本进行特征提取,并且利用TFIDF对n-gram特征权重进行调整,然后用提取到的文本特征输入到Logistics回归、SVM等分类器中展开训练。但是,上述的特征提取方法在数码稀疏维度爆炸相当问题,这对准分类器来说是惨不忍睹的,并且令训练之型泛化能力有限。因此,往往得采取有国策进行降维:

  • 人造降维:停用词了滤,低频n-gram过滤等
  • 活动降维:LDA等

值得指出的凡,将深度上着之word2vec,doc2vec作文本特征与上文提取的性状进行融合,常常可以提高型精度。

1. 文本分类任务介绍

文本分类是自然语言处理的一个为主职责,试图想出加的文书(句子、文档等)的价签或者标签集合。
文本分类的用非常广泛。如:

  • 垃圾邮件分类:二分拣问题,判断邮件是否为垃圾邮件
  • 结分析
    • 其次分类问题,判断文本情感是知难而进(positive)还是半死不活(negative)
    • 大抵分类问题,判断文本情感属于{非常低落,消极,中立,积极,非常主动}中的呀一样接近
  • 消息主题分类:判断新闻属于哪个品种,如金融、体育、娱乐等于
  • 电动问答系统中之问句分类
  • 社区问答系统面临之问题分类:多标签分类,如知乎看山杯
  • 再度多采用:
    • 让AI当法官:
      基于案件实际描述文本的罚款等级分类(多分类)和法条分类(多签分类)。
    • 看清新闻是否也机器人所勾画:
      二分类
    • ……

不等品种的文书分类往往产生两样的评价指标,具体如下:

  • 二分类:accuracy,precision,recall,f1-score,…
  • 多分类: Micro-Averaged-F1, Macro-Averaged-F1, …
  • 大抵标签分类:Jaccard相似系数, …

  • 风土机器上方式

传统的机械上方式要使用自然语言处理中之n-gram概念对文件进行特征提取,并且用TFIDF对n-gram特征权重进行调,然后以取到之文书特征输入到Logistics回归、SVM等分类器中展开训练。但是,上述的特征提取方法是数据稀疏维度爆炸相当于题材,这对准分类器来说是惨痛的,并且教训练之范泛化能力有限。因此,往往要用部分政策进行降维:

  • 人为降维:停用词了滤,低频n-gram过滤等
  • 自动降维:LDA等

值得指出的凡,将深度上着之word2vec,doc2vec作为文本特征及上文提取的表征进行融合,常常可以增长型精度。

3. CNN用来文书分类

论文Convolutional Neural Networks for Sentence
Classification提出了使CNN进行句子分类的艺术。

3. CNN用于文书分类

论文Convolutional Neural Networks for Sentence
Classification提出了下CNN进行句子分类的方式。

3.1 CNN模型推演

  • 一个句子是由多独词拼接而改为的,如果一个句有\(n\)个词,且第i只词表示也\(x_i\),词\(x_i\)通过embedding后表示为k维的通向量,即\(x_i\in\Re^k\),则一个句\(x_{1:n}\)为\(n*k\)的矩阵,可以形式化如下:
    \[X_{1:n}=x_1\oplus x_2\oplus
    \dots \oplus x_n\]
  • 一个包含\(h\)个底歌词之歌词窗口表示为:\[X_{i:i+h-1}\in\Re^{hk}\]
  • 一个filter是高低也\(h*k\)的矩阵,表示为:\[W\in\Re^{hk}\]
  • 透过一个filter作用一个歌词窗口取可以提取一个特色\(c_i\),如下:
    \[c_i=f(W \cdot
    X_{i:i+h-1}+b)\]其中,\(b\in\Re\)是bias值,\(f\)为激活函数如Relu等。
  • 卷积操作:通过一个filter在方方面面句子上从句首到句尾扫描一周,提取每个词窗口的风味,可以获取一个特色图(feature
    map) \(c\in\Re^{n-h+1}\),表示如下(这里默认不针对句进行padding):
    \[c= [c_1, c_2, \dots ,
    c_{n-h+1}]\]
  • 池化操作:对一个filter提取到的feature map进行max pooling,得到\(\hat{c}\in\Re\)即:
    \[\hat{c}=max(c)\]
  • 若有\(m\)个filter,则经过同样重合卷积、一交汇池化后方可拿走一个尺寸为\(m\)的向量\(z\in\Re^m\):
    \[z = [\hat{c}_1, \hat{c}_2,
    \dots, \hat{c}_m]\]
  • 最后,将向量\(z\)输入到全连接层,得到终极之特征提取向量\(y\) (这里的\(W\)为全连接层的权重,注意与filter进行分):
    \[y=W \cdot z+b\]

3.1 CNN模型推演

  • 一个句是出于多单词拼接而变成的,如果一个词有\(n\)个词,且第i单词表示为\(x_i\),词\(x_i\)通过embedding后代表也k维的通往量,即\(x_i\in\Re^k\),则一个句\(x_{1:n}\)为\(n*k\)的矩阵,可以形式化如下:
    \[X_{1:n}=x_1\oplus x_2\oplus
    \dots \oplus x_n\]
  • 一个饱含\(h\)个之乐章的乐章窗口表示也:\[X_{i:i+h-1}\in\Re^{hk}\]
  • 一个filter是大大小小也\(h*k\)的矩阵,表示为:\[W\in\Re^{hk}\]
  • 透过一个filter作用一个乐章窗口取可以领取一个特性\(c_i\),如下:
    \[c_i=f(W \cdot
    X_{i:i+h-1}+b)\]其中,\(b\in\Re\)是bias值,\(f\)为激活函数如Relu等。
  • 卷积操作:通过一个filter在漫天句子上从句首到句尾扫描一所有,提取每个词窗口的性状,可以拿走一个特色图(feature
    map) \(c\in\Re^{n-h+1}\),表示如下(这里默认不针对句进行padding):
    \[c= [c_1, c_2, \dots ,
    c_{n-h+1}]\]
  • 池化操作:对一个filter提取到的feature map进行max pooling,得到\(\hat{c}\in\Re\)即:
    \[\hat{c}=max(c)\]
  • 若有\(m\)个filter,则经过同样交汇卷积、一重叠池化后可以取一个尺寸为\(m\)的向量\(z\in\Re^m\):
    \[z = [\hat{c}_1, \hat{c}_2,
    \dots, \hat{c}_m]\]
  • 最后,将向量\(z\)输入到全连接层,得到最终的特征提取向量\(y\) (这里的\(W\)为全连接层的权重,注意与filter进行区分):
    \[y=W \cdot z+b\]

3.2 优化CNN模型

3.2 优化CNN模型

3.2.1 词向量

  • 擅自初始化 (CNN-rand)
  • 预训练词向量进行初始化,在训练过程被固定 (CNN-static)
  • 预训练词向量进行初始化,在教练过程被进行微调 (CNN-non-static)
  • 大抵通道(CNN-multichannel):将定点的预训练词向量和微调的词向量分别作一个大路(channel),卷积操作而以马上片只通道及进展,可以接近比较吃图像RGB三通道。

图片 1

  • 达图也模型架构示例,在示范中,句长\(n=9\),词向量维度\(k=6\),filter有星星点点种植窗口大小(或者说kernel
    size),每种有2单,因此filter总个数\(m=4\),其中:

    • 同等栽之窗口大小\(h=2\)(红色框),卷积后的向量维度为\(n-h+1=8\)
    • 其它一样栽窗口大小\(h=3\)(黄色框),卷积后底向量维度为\(n-h+1=7\)
      (论文原图中少画了一个维度,感谢@shoufengwei指正)

      ### 3.2.2 正则化

  • Dropout: 对全连接层的输入\(z\)向量进行dropout
    \[y=W \cdot (z \circ
    r)+b\]其中\(r\in\Re^m\)为masking向量(每个维度值非0即1,可以透过伯努利分布随机生成),和向量\(z\)进行元素与素对应相乘,让\(r\)向量值为0的职对应的\(z\)向量中之元素值失效(梯度无法创新)。

  • L2-norms: 对L2正则化项增加限制:当正则项\(\lVert W \rVert_2 > s\)时,
    令\(\lVert W \rVert_2 =
    s\),其中\(s\)为过参数。

3.2.1 词向量

  • 肆意初始化 (CNN-rand)
  • 预训练词向量进行初始化,在教练过程遭到固定 (CNN-static)
  • 预训练词向量进行初始化,在教练过程中开展微调 (CNN-non-static)
  • 差不多通道(CNN-multichannel):将固定的预训练词向量和微调的词向量分别作一个通道(channel),卷积操作而于当时简单独通道及拓展,可以接近比较给图像RGB三通道。

图片 2

  • 上图也模型架构示例,在示范中,句长\(n=9\),词向量维度\(k=6\),filter有个别种窗口大小(或者说kernel
    size),每种有2独,因此filter总个数\(m=4\),其中:

    • 一致种之窗口大小\(h=2\)(红色框),卷积后底向量维度为\(n-h+1=8\)
    • 别一样种窗口大小\(h=3\)(黄色框),卷积后底向量维度为\(n-h+1=7\)
      (论文原图中少画了一个维度,感谢@shoufengwei指正)

      ### 3.2.2 正则化

  • Dropout: 对全连接层的输入\(z\)向量进行dropout
    \[y=W \cdot (z \circ
    r)+b\]其中\(r\in\Re^m\)为masking向量(每个维度值非0即1,可以经伯努利分布随机变化),和向量\(z\)进行元素与素对应相乘,让\(r\)向量值为0的位置对应之\(z\)向量中的元素值失效(梯度无法创新)。

  • L2-norms: 对L2正则化项增加限制:当正则项\(\lVert W \rVert_2 > s\)时,
    令\(\lVert W \rVert_2 =
    s\),其中\(s\)为超过参数。

3.3 一些定论

  • Multichannel vs. Single Channel Models:
    虽然作者一开始认为多通道可以防过拟合,从而应该呈现还强,尤其是在微范围数据集上。但实际是,单通道在一部分语料上较多通道重新好;
  • Static vs. Non-static Representations:
    在大部的语料上,CNN-non-static都优于CNN-static,一个讲:预训练词向量可能以为‘good’和‘bad’类似(可能它发出成千上万像样之上下文),但是对感情分析任务,good和bad应该使生众所周知的分,如果运用CNN-static就无法开调整了;
  • Dropout可以增进2%–4%性能(performance);
  • 对非以预训练的word2vec中的歌词,使用均匀分布\(U[-a,a]\)随机初始化,并且调动\(a\)使得随机初始化的词向量和预训练的词向量保持类似的方差,可以起弱提升;
  • 得品尝任何的词向量预训练语料,如Wikipedia[Collobert et al.
    (2011)]
  • Adadelta(Zeiler, 2012)和Adagrad(Duchi et al.,
    2011)可以获近似的结果,但是所需要epoch更少。

3.3 一些定论

  • Multichannel vs. Single Channel Models:
    虽然作者一开始当多通道可以防范过拟合,从而应该呈现又胜似,尤其是当聊框框数据集上。但真相是,单通道在部分语料上比多通道重新好;
  • Static vs. Non-static Representations:
    在多数之语料上,CNN-non-static都优于CNN-static,一个说明:预训练词向量可能当‘good’和‘bad’类似(可能它发出成百上千近似的上下文),但是对感情分析任务,good和bad应该使发肯定的区分,如果使用CNN-static就无法做调整了;
  • Dropout可以增强2%–4%特性(performance);
  • 于未以预训练的word2vec中的词,使用均匀分布\(U[-a,a]\)随机初始化,并且调动\(a\)使得随机初始化的词向量和预训练的词向量保持类似之方差,可以来微弱提升;
  • 可以尝尝任何的词向量预训练语料,如Wikipedia[Collobert et al.
    (2011)]
  • Adadelta(Zeiler, 2012)和Adagrad(Duchi et al.,
    2011)可以获得近似的结果,但是所急需epoch更不见。

3.4 进一步考虑CNN

3.4 进一步考虑CNN

3.4.1 为什么CNN能够用于文书分类(NLP)?

  • 为什么CNN能够用于文书分类(NLP)?
    • filter相当于N-gram ?
    • filter只领部分特征?全局特征怎么处置?可以融合也?
      • RNN可以提取全局特征
      • RCNN(下文说明): RNN和CNN的重组

3.4.1 为什么CNN能够用于文书分类(NLP)?

  • 为什么CNN能够用于文书分类(NLP)?
    • filter相当于N-gram ?
    • filter只领部分特征?全局特征怎么惩罚?可以融合为?
      • RNN可以领到全局特征
      • RCNN(下文说明): RNN和CNN的结

3.4.2 超参数怎么调?

论文A Sensitivity Analysis of (and Practitioners’ Guide to)
Convolutional Neural Networks for Sentence
Classification%20Convolutional/note.md)提供了一部分国策。

  • 因而什么样的词向量
    • 使用预训练词向量比较自由初始化的职能使好
    • 采用微调策略(non-static)的功效比固定词向量(static)的功力使好
    • 无法确定为此啊种预训练词向量(Google word2vec / GloVe
      representations)更好,不同的任务结果不同,应该对此你眼前的职责进展试验;
  • filter窗口大小、数量
    • 每次用同样种档次的filter进行尝试,表明filter的窗口大小设置在1及10次是一个比客观之抉择。
    • 先是以一如既往种档次的filter大小上实行搜,以找到时数据集的“最佳”大小,然后探讨是超级大小附近的多种filter大小的三结合。
    • 每种窗口类型的filter对应之“最好”的filter个数(feature
      map数量)取决于具体数据集;
    • 然而,可以见见,当feature
      map数量超越600时时,performance提高有限,甚至会见伤害performance,这可能是喽多之feature
      map数量导致了拟合了;

      • 在实践中,100交600是一个于客观之物色空间。
  • 激活函数 (tanh, relu, …)
    • Sigmoid, Cube, and tanh
      cube相较于Relu和Tanh的激活函数,表现非常不好;
    • tanh比sigmoid好,这恐怕是由tanh具有zero centering
      property(过原点);
    • 与Sigmoid相比,ReLU具有非饱和形式(a non-saturating
      form)
      的长处,并能加速SGD的无影无踪。
    • 对此某些数据集,线性变换(Iden,即未下非线性激活函数)足够捕获词嵌入与出口标签内的相关性。(但是倘若出多独隐藏层,相较于非线性激活函数,Iden就未极端符合了,因为完全用线性激活函数,即使出差不多只隐藏层,组合后一切模型或线性的,表达能力可能不足,无法捕获足够信息);
    • 故,建议首先考虑ReLU和tanh,也得品味Iden
  • 池化策略:最可怜池化就是极致好之啊
    • 对于句子分类任务,1-max pooling往往比较其它池化策略要好;
    • 立马或许是盖上下文的具体位置对于预测Label可能并无是生要紧,而句子某个具体的n-gram(1-max
      pooling后filter提取出来的底性状)可能更得描绘整个句子的一些意义,对于预测label更有意义;
    • (但是以另外任务要释义识别,k-max pooling可能重新好。)
  • 正则化
    • 0.1届0.5之内的非零dropout
      rates能够增进部分performance(尽管提升幅度颇粗),具体的顶尖设置在具体数据集;
    • 对l2 norm加上一个绳往往不见面提高performance(除了Opi数据集);
    • 当feature
      map的多寡过100常,可能造成了拟合,影响performance,而dropout将减轻这种影响;
    • 于卷积层上进展dropout帮助特别有点,而且比生之dropout
      rate对performance有坏的熏陶。

3.4.2 超参数怎么调整?

论文A Sensitivity Analysis of (and Practitioners’ Guide to)
Convolutional Neural Networks for Sentence
Classification%20Convolutional/note.md)提供了部分策略。

  • 因此什么的词向量
    • 用预训练词向量比自由初始化的效应使好
    • 动微调策略(non-static)的意义比固定词向量(static)的法力使好
    • 束手无策确定为此啊种预训练词向量(Google word2vec / GloVe
      representations)更好,不同的天职结果不同,应该对此你眼前的职责展开试验;
  • filter窗口大大小小、数量
    • 老是用相同种植档次的filter进行试验,表明filter的窗口大小设置于1至10次是一个于客观之挑。
    • 率先在同样栽类型的filter大小上实施搜,以找到时数据集的“最佳”大小,然后探讨这个超级大小附近的多种filter大小的成。
    • 每种窗口类型的filter对应之“最好”的filter个数(feature
      map数量)取决于具体数据集;
    • 然,可以见见,当feature
      map数量超越600不时,performance提高有限,甚至会损害performance,这或者是喽多的feature
      map数量导致了拟合了;

      • 在实践中,100届600凡一个比客观之物色空间。
  • 激活函数 (tanh, relu, …)
    • Sigmoid, Cube, and tanh
      cube相较于Relu和Tanh的激活函数,表现大糟糕;
    • tanh比sigmoid好,这可能是由tanh具有zero centering
      property(过原点);
    • 与Sigmoid相比,ReLU具有非饱和形式(a non-saturating
      form)
      的优点,并能加速SGD的无影无踪。
    • 对某些数据集,线性变换(Iden,即非下非线性激活函数)足够捕获词嵌入与出口标签内的相关性。(但是如果发生多单隐藏层,相较于非线性激活函数,Iden就非绝适合了,因为完全用线性激活函数,即使出差不多个隐藏层,组合后一切模型或线性的,表达能力可能不足,无法捕获足够信息);
    • 故,建议首先考虑ReLU和tanh,也堪品尝Iden
  • 池化策略:最要命池化就是最好的啊
    • 对此句子分类任务,1-max pooling往往比其余池化策略要好;
    • 当即或者是为上下文的具体位置对于预测Label可能并无是格外重点,而句子某个具体的n-gram(1-max
      pooling后filter提取出来的之性状)可能还可以写整个句子的一点意义,对于预测label更有意义;
    • (但是当旁职责而释义识别,k-max pooling可能再也好。)
  • 正则化
    • 0.1届0.5之内的非零dropout
      rates能够增进部分performance(尽管提升幅度十分有点),具体的超级设置在具体数据集;
    • 本着l2 norm加上一个绳往往无会见增高performance(除了Opi数据集);
    • 当feature
      map的数超越100常常,可能致了拟合,影响performance,而dropout将减轻这种影响;
    • 于卷积层上开展dropout帮助特别有点,而且比较充分的dropout
      rate对performance有坏的熏陶。

3.5 字符级别之CNN用于文书分类

论文Character-level convolutional networks for text
classification用文件看成字符级别的排,使用字符级别(Character-level)的CNN进行文本分类。

3.5 字符级别的CNN用于文书分类

论文Character-level convolutional networks for text
classification用文件看成字符级别的队列,使用字符级别(Character-level)的CNN进行文本分类。

3.5.1 字符级CNN的模型设计

率先得针对字符进行数字化(quantization)。具体如下:

  • 定义字母表(Alphabet):大小也\(m​\) (对于英文\(m=70​\),如下图,之后会设想将充分小写字母都富含在内作为对比)
    图片 3
  • 字符数字化(编码): “one-hot”编码
  • 序列(文本)长度:\(l_0\)
    (定值)
    下一场论文设计了有限种植类型的卷积网络:Large和Small(作为比实验)
  • 她还产生9层,其中6层为卷积层(convolutional
    layer);3层为全连接层(fully-connected layer):
  • Dropout的概率都为0.5
  • 以高斯分布(Gaussian distribution)对权重进行初始化:
  • 末一层卷积层单个filter输出特征长度(the output frame length)为
    \(l_6 = (l_0 – 96) / 27\),推
  • 率先交汇全连接层的输入维度(其中1024和256吗filter个数或者说frame/feature
    size):

    • Large: \(l_6 * 1024\)
    • Small: \(l_6 * 256\)
  • 生图为模型的一个图解示例。其中文本长度为10,第一叠卷积的kernel
    size为3(半晶莹剔透黄色正方形),卷积个数为9(Feature=9),步长为1,因此Length=10-3+1=8,然后进行非重叠的max-pooling(即pooling的stride=size),pooling
    size为2,因此池化后底Length = 8 / 2 = 4。
    图片 4

3.5.1 字符级CNN的范设计

首先得针对字符进行数字化(quantization)。具体如下:

  • 定义字母表(Alphabet):大小为\(m​\) (对于英文\(m=70​\),如下图,之后会考虑用好小写字母都带有在内作为对比)
    图片 5
  • 字符数字化(编码): “one-hot”编码
  • 序列(文本)长度:\(l_0\)
    (定值)
    然后论文设计了有限种植类型的卷积网络:Large和Small(作为对照实验)
  • 她都发生9层,其中6层为卷积层(convolutional
    layer);3层为全连接层(fully-connected layer):
  • Dropout的票房价值都也0.5
  • 利用高斯分布(Gaussian distribution)对权重进行初始化:
  • 说到底一层卷积层单个filter输出特征长度(the output frame length)为
    \(l_6 = (l_0 – 96) / 27\),推
  • 首先交汇全连接层的输入维度(其中1024和256吗filter个数或者说frame/feature
    size):

    • Large: \(l_6 * 1024\)
    • Small: \(l_6 * 256\)
  • 下图为模型的一个图解示例。其中文本长度也10,第一叠卷积的kernel
    size为3(半透明黄色正方形),卷积个数为9(Feature=9),步长为1,因此Length=10-3+1=8,然后开展非重叠的max-pooling(即pooling的stride=size),pooling
    size为2,因此池化后的Length = 8 / 2 = 4。
    图片 6

3.5.2 字符级CNN的相关总结暨琢磨

  • 字符级CNN是一个得力之主意
  • 数据集的尺寸可以呢挑选传统办法还是卷积网络模型提供点:对于几百上千相当稍范围数据集,可以预先考虑传统办法,对于百万规模的数据集,字符级CNN开始展现对。
  • 字符级卷积网络特别适用于用户生成数据(user-generated
    data)
    (如拼写错误,表情符号等),
  • 没免费之午餐(There is no free lunch)
  • 华语怎么收拾
    • 若将中文中之每个字当一个字符,那么字母表将那个好
    • 是否可以把中文先转为拼音(pinyin)?
      • 华语中之同音词非常多,如何克服?
    • 论文Character-level Convolutional Network for Text
      Classification Applied to Chinese
      Corpus拓展了系实验。
  • 以字符级和词级进行组合是否结实再行好
    • 英文怎么做
    • 汉语如何做

3.5.2 字符级CNN的相干总结和沉思

  • 字符级CNN是一个得力之方法
  • 数据集的深浅可以吧选传统方式还是卷积网络模型提供点:对于几百上千相当于稍圈圈数据集,可以先考虑传统方式,对于百万范畴的数据集,字符级CNN开始呈现不错。
  • 字符级卷积网络好适用于用户生成数据(user-generated
    data)
    (如拼写错误,表情符号等),
  • 尚无免费之午饭(There is no free lunch)
  • 华语怎么处置
    • 如拿中文中的每个字作为一个字符,那么字母表将异常特别
    • 是不是好管中文先转为拼音(pinyin)?
      • 华语中的同音词非常多,如何战胜?
    • 论文Character-level Convolutional Network for Text
      Classification Applied to Chinese
      Corpus进行了连带试验。
  • 将字符级和词级进行结合是否结实更好
    • 英文怎么构成
    • 华语如何做

3.5.3 使用同一词表进行数据增长

对于深度上型,采用适当的多少增长(Data
Augmentation)技术可提高型的泛化能力。数据增长在微机视觉领域较宽泛,例如对图像进行盘,适当扭曲,随机增加噪声等操作。对于NLP,最优秀的多寡增长方法是使用人类复述句子(human
rephrases of
sentences),但是及时比不现实而于广大语料来说代价高昂。
一个复当之取舍是行使词语或者短语的同义词或平等短语进行调换,从而达到数增长的目的。具体做法如下:

  • 英文同义词典: from the mytheas component used in LibreOffice1
    project. http://www.libreoffice.org/
  • 于给定的文书中抽取产生富有可以轮换的乐章,然后轻易选\(r\)个进行轮换,其中\(r\)由一个参数为\(p\)的几乎何分布(geometric
    distribution)确定,即\(P[r] \sim
    p^r\)
  • 吃一定一个欲替换的歌词,其同义词可能发差不多独(一个列表),选择第\(s\)个之票房价值为通过任何一个几乎哪里分布确定,即\(P[s] \sim
    q^s\)。这样是以当前词之同义词列表中之相距比远(\(s\)较生)的同义词被选择的票房价值再小。
  • 舆论实验装置: \(p=0.5, q=0.5\)。

  • RNN用于文书分类

  • 策略1:直接下RNN的终极一个单元输出向量作为文本特征

  • 政策2:使用双向RNN的星星只趋势的出口向量的连续(concatenate)或均值作为文本特征
  • 政策3:将有RNN单元的出口向量的均值pooling或者max-pooling作为文本特征
    图片 7
  • 策略4:层次RNN+Attention, Hierarchical Attention
    Networks

  • RCNN(RNN+CNN)用于文书分类

论文Recurrent Convolutional Neural Networks for Text
Classification设计了一样种RNN和CNN结合的模子用于文书分类。

3.5.3 使用相同词表进行多少增长

对此深度上型,采用适当的数据增长(Data
Augmentation)技术好增进型的泛化能力。数据增长在微机视觉领域较泛,例如对图像进行盘,适当扭曲,随机增加噪声等操作。对于NLP,最出彩之多寡增长方法是采用人类复述句子(human
rephrases of
sentences),但是就正如不现实而对广泛语料来说代价高昂。
一个再度当之挑是以词语或者短语的同义词或同短语进行替换,从而达成多少增长的目的。具体做法如下:

  • 英文同义词典: from the mytheas component used in LibreOffice1
    project. http://www.libreoffice.org/
  • 自打给定的文件中抽取产生装有可以替换的歌词,然后轻易选取\(r\)个开展替换,其中\(r\)由一个参数为\(p\)的几哪里分布(geometric
    distribution)确定,即\(P[r] \sim
    p^r\)
  • 于得一个待替换的词,其同义词可能发生差不多只(一个列表),选择第\(s\)个底票房价值也由此任何一个几哪里分布确定,即\(P[s] \sim
    q^s\)。这样是以当前词的同义词列表中的相距比较远(\(s\)较充分)的同义词被挑的概率又有些。
  • 舆论实验装置: \(p=0.5, q=0.5\)。

  • RNN用于文书分类

  • 方针1:直接使用RNN的最后一个单元输出向量作为文本特征

  • 策2:使用双向RNN的简单个趋势的输出向量的接连(concatenate)或均值作为文本特征
  • 策3:将具备RNN单元的出口向量的均值pooling或者max-pooling作为文本特征
    图片 8
  • 策略4:层次RNN+Attention, Hierarchical Attention
    Networks

  • RCNN(RNN+CNN)用于文书分类

论文Recurrent Convolutional Neural Networks for Text
Classification统筹了千篇一律种RNN和CNN结合的范用于文书分类。

5.1 RCNN模型推演

5.1 RCNN模型推演

5.1.1 词表示学习

利用双向RNN分别上时词\(w_i\)的左上下文表示\(c_l(w_i)\)和右上下文表示\(c_r(w_i)\),再同目前词自身的象征\(e(w_i)\)连接,构成卷积层的输入\(x_i\)。具体如下:
\[ \begin{align} c_l(w_i) =
f(W^{(l)}c_l(w_{i-1})+W^{(sl)}e(w_{i-1})) ; \\ c_r(w_i) =
f(W^{(r)}c_r(w_{i-1})+W^{(sr)}e(w_{i-1})) ; \\ x_i =
[c_l(w_i);e(w_i);c_r(w_i)] ; \\ \end{align} \]
然后将\(x_i\)作为\(w_i\)的表示,输入到激活函数为tanh,kernel
size为1之卷积层,得到\(w_i\)的机要语义向量(latent semantic
vector) $y^{(2)}_i=tanh(W^{(2)}x_i+b^{(2)}) $
将kernel size设置为1是因为\(x_i\)中都包含\(w_i\)左右齐下文的信息,无需重新使用窗口大于1底filter进行特征提取。但是用验证的凡,在实践中仍然可以又以多kernel
size的filter,如[1, 2,
3],可能获得更好之作用,一种植可能的解说是窗口大于1之filter强化了\(w_i\)的横近来的上下文信息。此外,实践备受可以应用还扑朔迷离的RNN来捕获\(w_i\)的上下文信息要LSTM和GRU等。

5.1.1 词表示学习

应用双向RNN分别上时词\(w_i\)的左上下文表示\(c_l(w_i)\)和右侧上下文表示\(c_r(w_i)\),再和当前词自身之表示\(e(w_i)\)连接,构成卷积层的输入\(x_i\)。具体如下:
\[ \begin{align} c_l(w_i) =
f(W^{(l)}c_l(w_{i-1})+W^{(sl)}e(w_{i-1})) ; \\ c_r(w_i) =
f(W^{(r)}c_r(w_{i-1})+W^{(sr)}e(w_{i-1})) ; \\ x_i =
[c_l(w_i);e(w_i);c_r(w_i)] ; \\ \end{align} \]
然后将\(x_i\)作为\(w_i\)的意味,输入到激活函数为tanh,kernel
size为1之卷积层,得到\(w_i\)的黑语义向量(latent semantic
vector) $y^{(2)}_i=tanh(W^{(2)}x_i+b^{(2)}) $
将kernel size设置为1是因为\(x_i\)中都包含\(w_i\)左右达下文的音信,无需更用窗口大于1之filter进行特征提取。但是急需征的凡,在实践中仍然可同时用多种kernel
size的filter,如[1, 2,
3],可能得更好之成效,一种植或的诠释是窗口大于1之filter强化了\(w_i\)的横多年来的上下文信息。此外,实践备受得运用还复杂的RNN来捕获\(w_i\)的上下文信息一旦LSTM和GRU等。

5.1 2 文书表示学习

经卷积层后,获得了所有词的象征,然后于经过极其要命池化层和全连接层得到文本的代表,最后通过softmax层进行分类。具体如下:

  • Max-pooling layer: \(y^{(3)}=\max
    \limits_{i=1}^{n} y^{(2)}_i\)
  • Fully connected layer: \(y^{(4)}=W^{(4)}y^{(3)}+b^{(4)}\)
  • Softmax layer: \(p_i=\frac{\exp(y^{(4)}_i)}{\sum_{k=1}^n
    \exp(y^{(4)}_k)}\)
    生图也上述过程的一个图解:

图片 9

5.1 2 文件表示学习

通过卷积层后,获得了所有词的象征,然后在经过极其老池化层和全连接层得到文本的意味,最后经softmax层进行分类。具体如下:

  • Max-pooling layer: \(y^{(3)}=\max
    \limits_{i=1}^{n} y^{(2)}_i\)
  • Fully connected layer: \(y^{(4)}=W^{(4)}y^{(3)}+b^{(4)}\)
  • Softmax layer: \(p_i=\frac{\exp(y^{(4)}_i)}{\sum_{k=1}^n
    \exp(y^{(4)}_k)}\)
    生图为上述过程的一个图解:

图片 10

5.2 RCNN相关总结

  • NN vs. traditional methods:
    在该论文的享有实验数据集上,神经网络比传统方法的功效还如好
  • Convolution-based vs. RecursiveNN:
    基于卷积的点子比较基于递归神经网络的主意而好
  • RCNN vs. CFG and C&J: The RCNN可以捕获更丰富之模式(patterns)
  • RCNN vs. CNN: 在该论文的兼具实验数据集上,RCNN比CNN更好
  • CNNs使用一定的乐章窗口(window of words), 实验结果为窗口大小影响
  • RCNNs使用循环结构捕获广泛的上下文信息

  • 一定要CNN/RNN吗

上述的吃水上方式通过引入CNN或RNN进行特征提取,可以上比较好的功力,但是呢存一些问题,如参数较多招训练时间过长,超参数较多型调整麻烦等。下面两首论文提出了有些简易的范用于文书分类,并且于简短的模型上行使了有优化策略。

5.2 RCNN相关总结

  • NN vs. traditional methods:
    在拖欠论文的富有实验数据集上,神经网络比传统办法的功用还设好
  • Convolution-based vs. RecursiveNN:
    基于卷积的办法比较基于递归神经网络的点子要好
  • RCNN vs. CFG and C&J: The RCNN可以捕获更增长的模式(patterns)
  • RCNN vs. CNN: 在该论文的有实验数据集上,RCNN比CNN更好
  • CNNs使用固定的乐章窗口(window of words), 实验结果吃窗口大小影响
  • RCNNs使用循环结构捕获广泛的上下文信息

  • 一定要CNN/RNN吗

上述的深上道通过引入CNN或RNN进行特征提取,可以齐比较好之作用,但是呢存部分题目,如参数较多招训练时了长,超参数较多型调整麻烦等。下面两篇论文提出了有的简练的模型用于文书分类,并且在简易的模子上动了片优化策略。

6.1 深层无序组合方式

论文Deep Unordered Composition Rivals Syntactic Methods for Text
Classification提出了NBOW(Neural
Bag-of-Words)模型和DAN(Deep Averaging
Networks)模型。对比了深层无序组合措施(Deep Unordered
Composition)和句法方法(Syntactic
Methods)应用在文件分类任务中之优缺点,强调深层无序组合措施的行之有效、效率和灵活性。

6.1 深层无序组合方式

论文Deep Unordered Composition Rivals Syntactic Methods for Text
Classification提出了NBOW(Neural
Bag-of-Words)模型和DAN(Deep Averaging
Networks)模型。对比了深层无序组合措施(Deep Unordered
Composition)和句法方法(Syntactic
Methods)应用在文件分类任务中之利害,强调深层无序组合措施的得力、效率及灵活性。

6.1.1 Neural Bag-of-Words Models

舆论首先提出了一个不过简易的无序模型Neural Bag-of-Words Models (NBOW
model)。该模型直接将文件中颇具词向量的平均值作为文本的意味,然后输入到softmax
层,形式化表示如下:

  • Word embedding average : \(z=g(w \in
    X)=\frac{1}{X} \sum\limits_{w \in X} v_w\)
  • Softmax Layer: \(\hat{y} = softmax(W_s
    \cdot z + b)\)
  • Loss function: cross-entropy error, $\iota(\hat{y})
    =\sum\limits_{p=1}^{k}y_p\log(\hat{y_p}) $

6.1.1 Neural Bag-of-Words Models

论文首先提出了一个顶简单易行的无序模型Neural Bag-of-Words Models (NBOW
model)。该型直接拿文件中具有词向量的平均值作为文本的代表,然后输入到softmax
层,形式化表示如下:

  • Word embedding average : \(z=g(w \in
    X)=\frac{1}{X} \sum\limits_{w \in X} v_w\)
  • Softmax Layer: \(\hat{y} = softmax(W_s
    \cdot z + b)\)
  • Loss function: cross-entropy error, $\iota(\hat{y})
    =\sum\limits_{p=1}^{k}y_p\log(\hat{y_p}) $

6.1.2 Considering Syntax for Composition

一对考虑语法的方:

  • Recursive neural networks (RecNNs)
  • 可设想部分犬牙交错的言语学现象,如否定、转折等 (优点)
  • 兑现效益依赖输入序列(文本)的句法树(可能无适合长文本及非极端专业之文件)
  • 亟需还多之训练时间
  • Using a convolutional network instead of a RecNN
  • 日复杂度同样于坏,甚至还怪(通过试验结果得出的结论,这有赖于filter大小、个数等越参数的安装)

6.1.2 Considering Syntax for Composition

有的设想语法的章程:

  • Recursive neural networks (RecNNs)
  • 好设想部分扑朔迷离的语言学现象,如否定、转折等 (优点)
  • 实现效益依赖输入序列(文本)的句法树(可能未适合长文本和未绝规范之文书)
  • 亟待还多的教练时
  • Using a convolutional network instead of a RecNN
  • 时光复杂度同样比较深,甚至更甚(通过试验结果得出的下结论,这取决于filter大小、个数等超参数的装)

6.1.3 Deep Averaging Networks

Deep Averaging Networks (DAN)是在NBOW
model的底子及,通过多多个隐藏层,增加网络的吃水(Deep)。下图为涵盖两交汇隐藏层的DAN与RecNN模型的对照。

图片 11

6.1.3 Deep Averaging Networks

Deep Averaging Networks (DAN)是在NBOW
model的根底及,通过增加多单隐藏层,增加网络的深浅(Deep)。下图为涵盖两交汇隐藏层的DAN与RecNN模型的对立统一。

图片 12

6.1.4 Word Dropout Improves Robustness

  • 本着DAN模型,论文提出同样栽word
    dropout策略:在求平均词向量前,随机使得文本中之某些单词(token)失效。形式化表示如下:

\[ \begin{align} r_w \sim Bernoulli(p) ;
\\ \hat{X} = \{w|w \in X and r_w > 0\} ; \\ z = g(w \in X )
= \frac{\sum_{w \in \hat{X}}v_w}{|\hat{X}|} ; \\ \end{align}
\]

  • Word Dropout可能会见教一些老重要的token失效。然而,使用word
    dropout往往确实有升级,这或是为,一些对标签预测起及主体作用的word数量往往小于无关紧要的word数量。例如,对于感情分析任务,中立(neutral)的单词往往是最多之。
  • Word dropout 同可用于其他根据神经网络的办法。
  • Word Dropout或许起至了类似数据增长(Data Augmentation)的企图?

6.1.4 Word Dropout Improves Robustness

  • 对DAN模型,论文提出同样种word
    dropout策略:在求平均词向量前,随机使得文本中之某些单词(token)失效。形式化表示如下:

\[ \begin{align} r_w \sim Bernoulli(p) ;
\\ \hat{X} = \{w|w \in X and r_w > 0\} ; \\ z = g(w \in X )
= \frac{\sum_{w \in \hat{X}}v_w}{|\hat{X}|} ; \\ \end{align}
\]

  • Word Dropout可能会见使一些老重要的token失效。然而,使用word
    dropout往往确实有提升,这或者是为,一些对标签预测起及主体作用的word数量往往小于无关紧要的word数量。例如,对于感情分析任务,中立(neutral)的单词往往是极端多之。
  • Word dropout 同好用于其他根据神经网络的法。
  • Word Dropout或许起至了近似数据增长(Data Augmentation)的意向?

6.2 fastText

论文Bag of Tricks for Efficient Text
Classification提出一个高效进展文本分类的模子与一部分trick。

6.2 fastText

论文Bag of Tricks for Efficient Text
Classification提出一个快展开文本分类的范与组成部分trick。

6.2.1 fastText模型架构

fastText模型直接对拥有开展embedded的风味取均值,作为文本的表征表示,如下图。

图片 13

6.2.1 fastText模型架构

fastText模型直接指向负有开展embedded的特点取均值,作为文本的特点表示,如下图。

图片 14

6.2.2 特点

  • 当型数量较充分时,使用Hierachical Softmax
  • 拿N-gram融入特征被,并且使用Hashing trick[Weinberger et
    al.2009]提高效率

  • 新型研究

  • 根据github repo:
    state-of-the-art-result-for-machine-learning-problems
    ,下面两篇论文提出的型可以当文件分类取得最妙的结果(让AI当法官比赛第一叫以了舆论Learning
    Structured Text Representations中之模子):

    • Learning Structured Text
      Representations
    • Attentive Convolution
  • 论文Multi-Task Label Embedding for Text
    Classification
    认为签以及标签中有或来关联,所以不是像之前的吃水上型将标签看成one-hot
    vector,而是针对每个标签进行embedding学习,以增强公文分类的精度。

References
[1] Le and Mikolov – 2014 – Distributed representations of sentences
and documents
[2] Kim – 2014 – Convolutional neural networks for sentence
classification
[3] Zhang and Wallace – 2015 – A Sensitivity Analysis of (and
Practitioners’ Guide to) Convolutional Neural Networks for Sentence
Classification
[4] Zhang et al. – 2015 – Character-level convolutional networks for
text classification
[5] Lai et al. – 2015 – Recurrent Convolutional Neural Networks for
Text Classification
[6] Iyyer et al. – 2015 – Deep unordered composition rivals syntactic
methods for Text Classification
[7] Joulin et al. – 2016 – Bag of tricks for efficient text
classification
[8] Liu and Lapata – 2017 – Learning Structured Text Representations
[9] Yin and Schütze – 2017 – Attentive Convolution
[10] Zhang et al. – 2017 – Multi-Task Label Embedding for Text
Classification

6.2.2 特点

  • 当型数量比生时,使用Hierachical Softmax
  • 以N-gram融入特征被,并且采取Hashing trick[Weinberger et
    al.2009]提高效率

  • 新型研究

  • 根据github repo:
    state-of-the-art-result-for-machine-learning-problems
    ,下面两首论文提出的模子可以于文书分类取得最帅的结果(让AI当法官比赛第一号称以了论文Learning
    Structured Text Representations中的模型):

    • Learning Structured Text
      Representations
    • Attentive Convolution
  • 论文Multi-Task Label Embedding for Text
    Classification
    看签和标签中出或出联系,所以未是如前的深上型将标签看成one-hot
    vector,而是指向每个标签进行embedding学习,以增长文书分类的精度。

References
[1] Le and Mikolov – 2014 – Distributed representations of sentences
and documents
[2] Kim – 2014 – Convolutional neural networks for sentence
classification
[3] Zhang and Wallace – 2015 – A Sensitivity Analysis of (and
Practitioners’ Guide to) Convolutional Neural Networks for Sentence
Classification
[4] Zhang et al. – 2015 – Character-level convolutional networks for
text classification
[5] Lai et al. – 2015 – Recurrent Convolutional Neural Networks for
Text Classification
[6] Iyyer et al. – 2015 – Deep unordered composition rivals syntactic
methods for Text Classification
[7] Joulin et al. – 2016 – Bag of tricks for efficient text
classification
[8] Liu and Lapata – 2017 – Learning Structured Text Representations
[9] Yin and Schütze – 2017 – Attentive Convolution
[10] Zhang et al. – 2017 – Multi-Task Label Embedding for Text
Classification