机器学习100天Machine Learning & Recommendation & NLP & DL

Pytorch学习记录-卷积Seq2Seq

2019-04-28  本文已影响4人  我的昵称违规了

Pytorch学习记录-torchtext和Pytorch的实例4

0. PyTorch Seq2Seq项目介绍

在完成基本的torchtext之后,找到了这个教程,《基于Pytorch和torchtext来理解和实现seq2seq模型》。
这个项目主要包括了6个子项目

  1. 使用神经网络训练Seq2Seq
  2. 使用RNN encoder-decoder训练短语表示用于统计机器翻译
  3. 使用共同学习完成NMT的堆砌和翻译
  4. 打包填充序列、掩码和推理
  5. 卷积Seq2Seq
  6. Transformer

5. 卷积Seq2Seq

这个教程实现的是2017年的论文《Convolutional Sequence to Sequence Learning》,是一个基于CNN的结构,和RNN模型相比,在GPU的训练中所有的元素能够完全并行处理。模型的优化也更加简单,因为非线性的数目和输入长度是匹配且独立的。
这篇论文在当时很轰动,因为 Facebook 把这项技术用于机器翻译,不仅精度超过了机器翻译的业界老大,Google Translate,而且翻译速度提高了 9 倍。
主要针对领域是关键词和语义关系的提取。
例如,阅读语句 “患者自诉无诱因出现咳嗽,浓痰,无咯血,夜间及运动后加剧”
最重要的词语是“咳嗽”,其次重要的词汇是 “浓痰” 和 “加剧”,再次是 “无咯血”、“无诱因”。这是整个语句中各个词汇的重要性排行。而“夜间” 和 “运动后” 是 “加剧” 的属性。而 “加剧” “浓痰” “无咯血”,是 “咳嗽” 的属性。这是词汇之间的依存关系。
以上是基于乔姆斯基的语法生成理论,这也是NLP的核心语言学理论基础。
想从语句中提炼出关键词和语义关系,传统的做法是,在理解语义之前,先对语句做标注和句法解析。分析出句子的主谓宾定语状语(tagging),然后把整个语句转换成树状的结构体(parsing)。根据树状结构体,很容易判断语句中各个词汇的重要性,以及词汇之间的依存关系。
2016年谷歌将Seq2Seq运用于机器阅读。情况有了改观。
正如之前使用的模型,Seq2Seq是由RNN(LSTM/GRU)构建,RNN 模型的剪辑手段是三重门,记忆门、遗忘门、和输出门。很好地解决了长距离依赖的难题。
而Facebook提出的CNN卷积模型来取代RNN循环模型。不仅精度超越循环模型,而且训练速度提高了 9 倍。优势在哪里?

上一篇 下一篇

猜你喜欢

热点阅读