- PaperWeekly 2016.08.05 第一期
- PaperWeekly 第二期
- PaperWeekly 第三期
- PaperWeekly 第四期 - 基于强化学习的文本生成技术
- PaperWeekly 第五期 - 从 Word2Vec 到 FastText
- PaperWeekly 第六期 - 机器阅读理解
- PaperWeekly 第七期 -- 基于 Char-level 的 NMT OOV 解决方案
- PaperWeekly 第八期 - Sigdial2016 文章精选(对话系统最新研究成果)
- PaperWeekly 第九期 -- 浅谈 GAN
- PaperWeekly 第十期
- PaperWeekly 第十一期
- PaperWeekly 第十二期 - 文本摘要
- PaperWeekly 第十三期--最新文章解读
- PaperWeekly 第十四期 - TTIC 在 QA 任务上的研究进展
- PaperWeekly 第十六期 - ICLR 2017 精选
- PaperWeekly 第十七期 - 无监督/半监督 NER
- PaperWeekly 第十八期 - 提高 seq2seq 方法所生成对话的流畅度和多样性
- PaperWeekly 第十九期 - 新文解读(情感分析、机器阅读理解、知识图谱、文本分类)
- PaperWeekly 第二十期 - GAN(Generative Adversarial Nets)研究进展
- PaperWeekly 第二十一期 - 多模态机器翻译
- PaperWeekly 第二十二期 - Image Caption 任务综述
- PaperWeekly 第二十三期 - 机器写诗
- PaperWeekly 第二十四期 - GAN for NLP
- PaperWeekly 第二十五期 - 增强学习在 image caption 任务上的应用
- PaperWeekly 第二十六期 - 2016 年最值得读的 NLP paper 解读(3 篇)+在线 Chat 实录
- PaperWeekly 第二十七期 | VAE for NLP
- PaperWeekly 第 28 期 | 图像语义分割之特征整合和结构预测
- PaperWeekly 第 29 期 | 你的 Emoji 不一定是我的 Emoji
- PaperWeekly 第 30 期 | 解读 2016 年最值得读的三篇 NLP 论文 + 在线 Chat 实录
- PaperWeekly 第 31 期 | 远程监督在关系抽取中的应用
- PaperWeekly 第 32 期 | 基于知识图谱的问答系统关键技术研究 #01
- PaperWeekly 第 33 期 | 基于知识图谱的问答系统关键技术研究 #03
- PaperWeekly 第 34 期 | VAE 在 chatbot 中的应用
- PaperWeekly 第 35 期 | 如何让聊天机器人懂情感 PaperWeekly 第 35 期 | 如何让聊天机器人懂情感
- PaperWeekly 第 36 期 | Seq2Seq 有哪些不为人知的有趣应用?
- PaperWeekly 第 37 期 | 论文盘点:检索式问答系统的语义匹配模型(神经网络篇)
- PaperWeekly 第 38 期 | SQuAD 综述
- PaperWeekly 第 39 期 | 从 PM 到 GAN - LSTM 之父 Schmidhuber 横跨 22 年的怨念
- PaperWeekly 第 40 期 | 对话系统任务综述与基于 POMDP 的对话系统
- PaperWeekly 第 41 期 | 互怼的艺术:从零直达 WGAN-GP
- PaperWeekly 第 42 期 | 基于知识图谱的问答系统关键技术研究 #04
- PaperWeekly 第 43 期 | 教机器学习编程
- PaperWeekly 第 44 期 | Kaggle 求生
- PaperWeekly 第 45 期 | 词义的动态变迁
- PaperWeekly 第 46 期 | 关于远程监督,我们来推荐几篇值得读的论文
- PaperWeekly 第 47 期 | 开学啦!咱们来做完形填空:“讯飞杯”参赛历程
- 深度强化学习实战:Tensorflow 实现 DDPG - PaperWeekly 第 48 期
- 评测任务实战:中文文本分类技术实践与分享 - PaperWeekly 第 49 期
- 从 2017 年顶会论文看 Attention Model - PaperWeekly 第 50 期
- 深入浅出看懂 AlphaGo Zero - PaperWeekly 第 51 期
- PaperWeekly 第 52 期 | 更别致的词向量模型:Simpler GloVe - Part 1
- PaperWeekly 第 53 期 | 更别致的词向量模型:Simpler GloVe - Part 2
- 基于神经网络的实体识别和关系抽取联合学习 | PaperWeekly #54
PaperWeekly 第五期 - 从 Word2Vec 到 FastText
引
Word2Vec 从提出至今,已经成为了深度学习在自然语言处理中的基础部件,大大小小、形形色色的 DL 模型在表示词、短语、句子、段落等文本要素时都需要用 word2vec 来做 word-level 的 embedding。Word2Vec 的作者 Tomas Mikolov 是一位产出多篇高质量 paper 的学者,从 RNNLM、Word2Vec 再到最近流行的 FastText 都与他息息相关。一个人对同一个问题的研究可能会持续很多年,而每一年的研究成果都可能会给同行带来新的启发,本期的 PaperWeekly 将会分享其中三篇代表作,分别是:
1、Efficient Estimation of Word Representation in Vector Space, 2013
2、Distributed Representations of Sentences and Documents, 2014
3、Enriching Word Vectors with Subword Information, 2016
Efficient Estimation of Word Representation in Vector Space
作者
Tomas Mikolov, Kai Chen, Greg Corrado, Jeffrey Dean
单位
Google Inc., Mountain View, CA
关键词
Word Representation, Word Embedding, Neural Network, Syntactic Similarity, and Semantic Similarity
来源
arXiv, 201309
问题
如何在一个大型数据集上快速、准确地学习出词表示?
模型
传统的 NNLM 模型包含四层,即输入层、映射层、隐含层和输出层,计算复杂度很大程度上依赖于映射层到隐含层之间的计算,而且需要指定上下文的长度。RNNLM 模型被提出用来改进 NNLM 模型,去掉了映射层,只有输入层、隐含层和输出层,计算复杂度来源于上一层的隐含层到下一层隐含层之间的计算。
本文提出的两个模型 CBOW (Continuous Bag-of-Words Model) 和 Skip-gram (Continuous Skip-gram Model) 结合了上面两个模型的特点,都是只有三层,即输入层、映射层和输出层。CBOW 模型与 NNLM 模型类似,用上下文的词向量作为输入,映射层在所有的词间共享,输出层为一个分类器,目标是使当前词的概率最大。Skip-gram 模型与 CBOW 的输入跟输出恰好相反,输入层为当前词向量,输出层是使得上下文的预测概率最大,如下图所示。训练采用 SGD。
资源
Code: C++代码
Dataset: SemEval-2012 ,用来评估语义相关性。
相关工作
Bengio[1]在 2003 年就提出了 language model 的思路,同样是三层(输入层,隐含层和输出层)用上下文的词向量来预测中间词,但是计算复杂度较高,对于较大的数据集运行效率低;实验中也发现将上下文的 n-gram 出现的频率结合进去会提高性能,这个优点体现在 CBOW 和 Skip-gram 模型的输出层中,用 hierarchical softmax(with huffman trees)来计算词概率。
简评
本文的实验结果显示 CBOW 比 NNLM 在 syntactic 和 semantic 上的预测都要好,而 Skip-gram 在 semantic 上的性能要优于 CBOW,但是其计算速度要低于 CBOW。结果显示用较大的数据集和较少的 epoch,可以取得较好的效果,并且在速度上有所提升。与 LSI 和 LDA 相比,word2vec 利用了词的上下文,语义信息更加丰富。基于 word2vec,出现了 phrase2vec, sentence2vec 和 doc2vec,仿佛一下子进入了 embedding 的世界。NLP 的这些思想也在用于 recommendation 等方面,并且与 image 结合,将 image 跟 text 之间进行转换。
Distributed Representations of Sentences and Documents
作者
Quoc V. Le, Tomas Mikolov
单位
Google Inc, Mountain View, CA
关键词
sentence representation
来源
ICML 2014
问题
基于 word2vec 的思路,如何表示 sentence 和 document?
模型
利用 one-hot 的表示方法作为网络的输入,乘以词矩阵 W,然后将得到的每个向量通过平均或者拼接的方法得到整个句子的表示,最后根据任务要求做一分类,而这过程中得到的 W 就是词向量矩阵,基本上还是 word2vec 的思路。
接下来是段落的向量表示方法:
依旧是相同的方法,只是在这里加上了一个段落矩阵,用以表示每个段落,当这些词输入第 i 个段落时,通过段落 id 就可以从这个矩阵中得到相对应的段落表示方法。需要说明的是,在相同的段落中,段落的表示是相同的。文中这样表示的动机就是段落矩阵 D 可以作为一个 memory 记住在词的 context 中遗失的东西,相当于增加了一个额外的信息。这样经过训练之后,我们的就得到了段落表示 D,当然这个段落就可以是一段或者一篇文章。
最后一种就是没有词序的段落向量表示方法:
从图中就可以感觉到这个方法明显和 skip-gram 非常相似,这里只是把重点放在了段落的表示中,通过段落的表示,来预测相应的 context 词的表示。最后我们依然可以得到段落矩阵 D,这样就可以对段落进行向量化表示了。但是输入起码是句子级别的表示,而输出则是词的向量表示,因此个人比较怀疑这种方法的合理性。
简评
这篇文章是 word2vec 的方法提出一年后提出的方法,因此本文并没有使用目前非常流行的 word2vec 的训练方法来训练词向量,而是利用 word2vec 的思路,提出了一种更加简单的网络结构来训练任意长度的文本表示方法。这样一方面好训练,另一方面减少了参数,避免模型过拟合。优点就是在训练 paragraph vector 的时候加入了一个 paragraph matrix,这样在训练过程中保留了一部分段落或者文档信息。这点在目前看来也是有一定优势的。但是目前深度学习发展迅速,可以处理非常大的计算量,同时 word2vec 以及其变种被应用得非常普遍,因此该文章提出的方法思路大于模型,思路我们可以借鉴,模型就不具有优势了。
Enriching Word Vectors with Subword Information
作者
Piotr Bojanowski, Edouard Grave, Armand Joulin, Tomas Mikolov
单位
Facebook AI Research
关键词
Word embedding, morphological, character n-gram
来源
arXiv, 201607
问题
如何解决 word2vec 方法中罕见词效果不佳的问题,以及如何提升词形态丰富语言的性能?
模型
word2vec 在词汇建模方面产生了巨大的贡献,然而其依赖于大量的文本数据进行学习,如果一个 word 出现次数较少那么学到的 vector 质量也不理想。针对这一问题作者提出使用 subword 信息来弥补这一问题,简单来说就是通过词缀的 vector 来表示词。比如 unofficial 是个低频词,其数据量不足以训练出高质量的 vector,但是可以通过 un+official 这两个高频的词缀学习到不错的 vector。
方法上,本文沿用了 word2vec 的 skip-gram 模型,主要区别体现在特征上。word2vec 使用 word 作为最基本的单位,即通过中心词预测其上下文中的其他词汇。而 subword model 使用字母 n-gram 作为单位,本文 n 取值为 3~6。这样每个词汇就可以表示成一串字母 n-gram,一个词的 embedding 表示为其所有 n-gram 的和。这样我们训练也从用中心词的 embedding 预测目标词,转变成用中心词的 n-gram embedding 预测目标词。
实验分为三个部分,分别是(1)计算两个词之间的语义相似度,与人类标注的相似度进行相关性比较;(2)与 word2vec 一样的词类比实验;(3)与其他考虑 morphology 的方法比较。结果是本文方法在语言形态丰富的语言(土耳其语,法语等)及小数据集上表现优异,与预期一致。
资源
源码公布在 Facebook 的 fastText 项目中: GitHub - facebookresearch/fastText: Library for fast text representation and classification.
相关工作
利用语言形态学来改进 nlp 的研究源远流长,本文提及的许多关于 character-level 和 morphology 的有趣工作值得参考。
简评
文章中提出的思路对于 morphologically rich languages(例如土耳其语,词缀的使用极为普遍而有趣)来说十分有意义。词缀作为字母与单词之间的中层单位,本身具有一定的语义信息。通过充分利用这种中层语义来表征罕见词汇,直观上讲思路十分合理,也是应用了 compositionality 的思想。
利用形态学改进 word embedding 的工作十分丰富,但中文 NLP 似乎很难利用这一思路。其实个人感觉中文中也有类似于词缀的单位,比如偏旁部首等等,只不过不像使用字母系统的语言那样容易处理。期待今后也有闪光的工作出现在中文环境中。
总结
从 Word2Vec 到 FastText,从 word representation 到 sentence classification,Tomas Mikolov 的工作影响了很多人。虽然有个别模型和实验结果曾遭受质疑,但终究瑕不掩瑜。word2vec 对 NLP 的研究起到了极大地推动作用,其实不仅仅是在 NLP 领域中,在其他很多领域中都可以看到 word2vec 的思想和作用,也正是从 word2vec 开始,这个世界变得都被 vector 化了,person2vec,sentence2vec,paragraph2vec,anything2vec,world2vec。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论