正文讲述的是HBase数据模型。1.Android DVM(Dalvik VM)的长河与Linux的过程。传统的机器上道要行使自然语言处理中的n-gram概念对文本进行特征提取。

上次我们谈话过了《HBase简介》,点击阅读有助于重新好地知道本文。本文讲述的凡HBase数据模型。

 

近期读书了一些纵深上在文件分类中的应用相关论文(舆论笔记),同时为列席了CCF
大数据与计量智能大赛(BDCI)2017的一个文件分类问题之竞赛:让AI当法官,并收获了最后评测第四称之成绩(比赛之现实性思路及代码参见github项目repo)。因此,本文总结了文件分类有关的吃水上型、优化思路及以后得展开的局部干活。欢迎转载,请保留本文链接:http://www.cnblogs.com/llhthinker/p/8127788.html

1、ROW KEY

1.Android DVM(Dalvik VM)的经过与Linux的经过, 应用程序的历程是跟一个概念呢?

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当文本特征跟上文提取的特性进行融合,常常可以增进型精度。

支配一行数
按字典顺序排序的。
Row key只能存储64k底字节数据
2、Column Family列族 & qualifier列

DVM(Dalvik VM)指dalvik的虚拟机。每一个Android应用程序都在它好的历程中运作,都有一个独自的Dalvik虚拟机实例。而诸一个DVM都是以Linux 中之一个过程,所以说可以当是与一个概念。运行在团结的DVM进程中,不同之app不会见彼此干扰,且不见面因为一个DVM的倒台导致有的app进程都完蛋。

3. CNN用以文书分类

论文Convolutional Neural Networks for Sentence
Classification提出了运用CNN进行句子分类的法门。

HBase表中的每个列都归属于有列族,列族必须作表模式(schema)定义的一致局部预先给出。
列名以列族作为前缀,每个“列族”都可以生出差不多只列成员(column);如
course:math, course:english,
新的排好随着按需、动态加入;权限决定、存储和调优都是于列族层面开展的;
HBase把同列族里面的数据存储于相同目录下,由几单文件保留。
3、Cell单元格

Android
运行环境至关重要依靠的虚拟机技术——Dalvik。Android中之持有Java程序还是运行在Dalvik
VM上之。Android上之每个程序还起协调的线程,DVM只执行.dex的Dalvik
executable 文件。每个Android应用在脚都对该一个独自的DVM实例并以该说下实施。

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\]

由行和排的坐标交叉决定; 单元格是发生本的;
单元格的情是休解析的字节数组;
出于{row key, column( =<family> +<qualifier>), version}
唯一确定的单元。cell中之数据是从未种的,全部凡许节码形式存贮。
4、Timestamp时间戳

 

3.2 优化CNN模型

每当HBase每个cell存储单元对平卖数据发生多单版,根据唯一的时光穿来分别每个版本里的区别,不同版本的数据据时间倒序排序,最新的数量版本排在极端前。
日子戳的种类是 64个整型。
岁月穿可以由HBase(在数量写入时自动)赋值,此时时刻穿是准确到毫秒的即网时。
时间戳也得由客户显式赋值,如果应用程序要避免数据版本冲突,就得自己别有唯一性的时光戳。

2. Android中DVM与java中的JVM异同点:

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\)为超过参数。

储存实例:

DVM:Dalvik
virtual machine 
JVM:Java virtual
machine

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更少。

图片 2

分别一:dvm执行的凡.dex格式文件  jvm执行之是.class文件   Android程序编译完后生产.class文件,然后,dex工具会拿.class文件处理成.dex文件,然后将资源文件和.dex文件等包裹成.apk文件。apk就是android package的意思。
jvm执行之是.class文件。

3.4 进一步考虑CNN

即时就是是HBase的数据模型,接下去一样首稿子以介绍HBase的架构体系以及HBase集群安装,请多关心。

区分二:dvm是基于寄存器的虚拟机 
而jvm执行是因虚拟栈的虚拟机。寄存器存取速度比栈快的差不多,dvm可以根据硬件实现最酷的优化,比较吻合走装备。

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

  • 胡CNN能够用于文书分类(NLP)?
    • filter相当于N-gram ?
    • filter只取部分特征?全局特征怎么收拾?可以融合也?
      • RNN可以取全局特征
      • RCNN(下文说明): RNN和CNN的咬合

别三:.class文件在诸多底冗余信息,dex工具会去冗余信息,并把有的.class文件整合到.dex文件中。减少了I/O操作,提高了接近的查找速度。

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.sim卡底EF文件发出哪里打算?

sim卡的EF文件就是Elementary File文件:基本文件。

sim卡的文件系统有好专业,主要是为跟手机通讯,sim本
身可以出温馨的操作系统,EF就是作存储并和手机通讯用底。

 

4.DDMS与TraceView的差别?

DDMS是一个程序执行查看器,在里可以瞥见线程和货栈等信息,TraceView是程序性能分析器;

DDMS
可用来  检测内存泄漏;

TraceView
可跟踪代码的实施时;

5.Android数据存储方产生哪五栽?

① 使用SharedPreferences存储数据 

② 文件存储数据

③  SQLite数据库存储数据

④ 使用ContentProvider存储数据

⑤ 网络存储数据 

6.android一漫长短消息太丰富占小
Byte?

同样久短信是足以输入70个中文字符(包括符号)的(英文为160)。一个字符是2单字节(Byte)。一个字节是8各类(bit).所以通用的精打细算是
一漫长短信可以输入70*2*8=1120 bit;

7、Android系统属于实时操作系统吗?

Android
操作系统用的基础是linux,而linux内核勿属实时操作系统范畴。
所以Android不是实时操作系统。

 

8、Android程序于啊状况下会起Force Close?如何避免,能否捕获其十分?

丢掉来运行时大时虽会招Force close,如空指针,数组越界等等。

争避免:在编写程序的当儿,要完成想缜密,在可能出现异常的地方还作相应的处理,增强程序的健壮性。

抓获异常:可以由此以Logcat中查代码抛来异常的位置,然后至程序相应位置进行转移。

 

9、列举几栽常见的RuntimeException

NullPointerException

  • 空指针引用异常
    ClassCastException
  • 种强制转换异常。
    IllegalArgumentException
  • 传递非法参数异常。
    ArithmeticException
  • 算术运算异常
    ArrayStoreException
  • 朝数组中存放和声明类型不兼容对象好
    IndexOutOfBoundsException
  • 下标越界异常
    NegativeArraySizeException
  • 创造一个轻重也负数的数组错误非常
    NumberFormatException
  • 数字格式异常
    SecurityException
  • 安康很

    UnsupportedOperationException

    莫支持的操作特别

 10,简述JNI的调用过程?

(1)、编写带有native方法声明的Java类;

(2)、用“javac”命令来编译所编写的Java类;

(3)、使用“javah”java类的名生成扩展名为h的头文件;

(4)、赋值jni.h,jni_md.h文件到CPP工程;

(5)、实现.h头文件被声明的函数;

(6)、生成dll动态链接库;

(7)、配置dll文件所在目录及环境变量;

(8)、重启eclipse

11、系统上安装了多种浏览器,能否指定某个浏览器访问指定页面?请证实原因。

当Android程序中我们得经发送显式Intent来启动指定的浏览器。

         Intent
intent =newIntent();        

         intent.setAction(“android.intent.action.VIEW”);    

         Uri
content_url =Uri.parse(“http://www.163.com”);   

         intent.setData(content_url);           

         intent.setClassName(“com.android.browser”,”com.android.browser.BrowserActivity”);   

         startActivity(intent);

要是修改以intent.setClassName(“com.android.browser”,”com.android.browser.BrowserActivity”);

遭受相应的应用程序packagename 和要开动的activity即可启动其他浏览器。

 

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.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作为文本特征
    图片 5
  • 策略4:层次RNN+Attention, Hierarchical Attention
    Networks

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

论文Recurrent Convolutional Neural Networks for Text
Classification规划了平等种RNN和CNN结合的模型用于文书分类。

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 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)}\)
    生图为上述过程的一个图解:

图片 6

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.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.3 Deep Averaging Networks

Deep Averaging Networks (DAN)是在NBOW
model的根基及,通过长多只隐藏层,增加网络的纵深(Deep)。下图也带有两重叠隐藏层的DAN与RecNN模型的自查自纠。

图片 7

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.1 fastText模型架构

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

图片 8

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

相关文章