隐形马尔科夫到textcnn的转变

隐形马尔科夫在我们的项目中的最常见的就是ngram模型,这个模型中我们依靠数据总量进行当前连续词串进行tfidf的排序,从而可以确定同频词阈。

下图就是我们常见 的textcnn,

输入数据首先通过一个embedding layer,得到输入语句的embedding表示,然后通过一个convolution layer,提取语句的特征,最后通过一个fully connected layer得到最终的输出,整个模型的结构如下图:

业界选择对textcnn的优化应该是从词嵌入模型开始做起,也就是从ngram这种频率模型到word2vec的词向量模型的改变,用向量这种代数形式去表现词的多样性。ngram的形成数据量和词向量的数据形成量产生了极其鲜明的数据量对比,在word2vec的窗口一般可以确定为5到正无穷的一个窗口数量,当然也有基于迁移学习的方案,今天暂时不讲迁移学习的方案。在一般的文本分类项目中可以依靠ngram在当前类别出现的频率进行文本的打分,当然这是基于监督学习的一种方案,这里不是说textcnn是一种跨越监督学习的方案,而是textcnn能掌握更多的特征从而实现分类。

而讲到word2vec其实可以称之为ngram的进阶版本。

常见的词向量有word2vec的skipgram和cbow、glove、elmo。

Word2Vec模型中,主要有Skip-Gram和CBOW两种模型,从直观上理解,Skip-Gram是给定input word来预测上下文。而CBOW是给定上下文,来预测input word。本篇文章仅讲解Skip-Gram模型。

elmo是2018年2月新出的一种词向量标定手段,ELMo 的输入是字母而不是单词。因此,他们可以利用子字词单元来计算有意义的表示,即使对于词典外的词(如 FastText这个词)也是如此。ELMo 是 biLMs 几层激活的串联。语言模型的不同层对单词上的不同类型的信息进行编码(如在双向LSTM神经网络中,词性标注在较低层编码好,而词义消歧义用上层编码更好)。连接所有层可以自由组合各种文字表示,以提高下游任务的性能。

参考文献

《Convolutional Neural Networks for Sentence Classification》

《A Sensitivity Analysis of (and Practitioners’ Guide to) Convolutional Neural Networks for Sentence Classification》

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181218G0IWMU00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券