Efficient Estimation of Word Representations in Vector Space

词向量是语言模型的一个副产品,但这个副产品在2013年随着一个叫做word2vec的工具包而火了起来,大家在各种场合中都在用,并且取得了不错的效果。

本篇分享的文章是Efficient Estimation of Word Representations in Vector Space。作者是来自Google的Tomas Mikolov,也是Word2Vec和RNNLM开源软件的作者。本文的最大贡献有:

1、提出了两种新的“神经网络语言模型”,这里之所以打引号,是因为其实两个模型都没有隐藏层,只是看起来像是神经网络而已。两种模型具有很高的计算效率和准确率,可谓是真正的“又好又快”。

2、设计了一种验证词向量效果的测试数据,从semantic和syntactic两个维度上进行测试。

首先介绍下传统模型的复杂度。

  • NNLM的模型复杂度:

这里,N是输入的单词数量,D是词向量维度,H是隐藏层维度,V是词汇表维度。

  • RNNLM的模型复杂度:

两个模型的输出层都可以用hierarchical softmax来替换,V的复杂度可以降为log2(V)

NNLM模型的计算瓶颈在于N H,而RNNLM的计算瓶颈在与H * H。

本文提出的两种模型架构图如下:

从架构图中可以看出本文的模型并没有隐藏层,直接由输入层做一次映射,就进行分类。

左图是CBOW模型,输入是指定单词的context单词(前后各取几个单词),预测的是该单词。模型复杂度如下:

右图是Skip-gram(SG)模型,输入时某个单词,预测的是它的context。模型复杂度如下:

这里的C表示单词距离上限,用来限制预测context的窗口大小。

本文的模型和NNLM和RNNLM有着不同的使命,前者更加专注于解决词向量的问题,在保证准确率的情况下,尽量地提高计算效率;而后者更加专注于解决语言模型的问题,词向量只是其副产品,因此并没有过多地在这部分进行优化。最后的实验结果表明,sg和cbow模型在semantic和syntactic两个维度上进行相似度测试时表现远好于nnlm和rnnlm。并且,sg在semantic上表现更好,cbow更擅长做syntactic。

将word映射成某个空间内的向量之后,我们可以轻松地通过cos similarity来计算word之间的相似度,并且可以做一些简单的加减运算。

Paris - France + Italy = Rome

Small - Smaller + Large = Larger


可以将word映射到vector space中,那么是否可以将phrase,sentence,paragraph,document都映射到vector space中呢?进一步是否可以将topic也映射到vector space呢?是否任何东西都可以映射到vector space呢?

丰富的想象力给了人类更大的动力去探索未知的世界,将word2vec的想法拓展到各个level的问题上。在后续的很多nlp研究中,词向量都起到了关键的作用。不仅如此,word2vec在其他领域中也有了广泛的应用,比如:app推荐,将每个user下载过的app作为word,就可以得到给user推荐类似的app(相似的word);我在做rsarxiv时,构建了一个简单的paper graph,将authors,subjects,keywords都映射到了同一个空间中,给定一个author,很容易找到与之相关的authors,subjects,keywords。比如喜欢了这个作者,

之后就会得到推荐:

Word2Vec一个很重要的意义在于,是无监督方法,不需要花额外的功夫去构建数据集来teach模型,只需要给入一个非常大的文本数据集,就可以得到非常好的效果。

来源:paperweekly

原文链接

时间: 2024-07-30 01:16:41

Efficient Estimation of Word Representations in Vector Space的相关文章

基于深度学习的智能问答

作者:周小强 陈清财 曾华军 1引言 纵观自动问答系统的技术发展历史,从1950年代因图灵测试而诞生至今,已经有几十年的历史.但真正在产业界得到大家的广泛关注,则得益于2011年Siri和Watson成功所带来的示范效应.自此,自动问答系统较以往任何时候都显得离实际应用更近.这一方面归功于机器学习与自然语言处理技术的长足进步,另一方面得益于维基百科等大规模知识库以及海量网络信息的出现.然而,现有的自动问答系统所面临的问题远没有完全解决.事实上,无论是业界应用还是学术研究,问句的真实意图分析.问句

不可思议的Word2Vec系列一数学原理

对于了解深度学习.自然语言处理NLP的读者来说,Word2Vec可以说是家喻户晓的工具,尽管不是每一个人都用到了它,但应该大家都会听说过它--Google出品的高效率的获取词向量的工具. I. Word2Vec不可思议? 大多数人都是将Word2Vec作为词向量的等价名词,也就是说,纯粹作为一个用来获取词向量的工具,关心模型本身的读者并不多.可能是因为模型过于简化了,所以大家觉得这样简化的模型肯定很不准确,所以没法用,但它的副产品词向量的质量反而还不错.没错,如果是作为语言模型来说,Word2V

全面解读用于文本特征提取的神经网络技术:从神经概率语言模型到GloVe

作者:Vineet John 机器之心编译 参与:吴攀.李亚洲.蒋思源 文本特征提取是自然语言处理的核心问题之一,近日,加拿大滑铁卢大学的 Vineet John 在 arXiv 发布了一篇关于用于文本特征提取的神经网络技术的综述论文.机器之心对该论文进行了编译介绍,论文原文可点击文末「阅读原文」查阅. https://arxiv.org/abs/1704.08531 本论文的目标是促进有关使用神经网络架构的文本特征提取技术的讨论.本论文中所讨论的研究问题关注的是当前最佳的神经网络技术,它们已经

QA Systems and Deep Learning Technologies – Part 1

1. Introduction The automatic question and answering (QA) system has been in use for decades now. However, Siri's and Watson's success in 2011 has captured the whole industry's attention. Since the success of these two technologies, the automatic QA

QA Systems and Deep Learning Technologies – Part 2

Introduction This is the second article in a two part series about QA Systems and Deep Learning. You can read part 1 here. Deep Learning is a subfield of machine learning, and aims at using machines for data abstraction with the help of multiple proc

如何利用深度学习技术训练聊天机器人语言模型?

第一篇传送门:聊天机器人的发展状况与分类 第二篇传送门:基于规则和检索的聊天机器人引擎 本篇文章以这个开源项目为主线进行. 数据预处理 模型能聊的内容也取决于选取的语料.如果已经具备了原始聊天数据,可以用SQL通过关键字查询一些对话,也就是从大库里选取出一个小库来训练.从一些论文上,很多算法都是在数据预处理层面的,比如Mechanism-Aware Neural Machine for Dialogue Response Generation就介绍了,从大库中抽取小库,然后再进行融合,训练出有特

深度学习和自然语言处理:诠释词向量的魅力

以下为译文: 今天的帖子,我收集的材料源于五篇论文.本次的主题是"word2vec",主要是总结了Google公司的Mikolov等人关于词向量的工作(以及你可以用它做什么).论文分别是: ·       Efficient Estimation of Word Representations in Vector Space – Mikolov et al. 2013 ·       Distributed Representations of Words and Phrases an

nlp文本处理开源工具,及聊天机器人实现

原文地址:http://www.leiphone.com/news/201702/4OZau7OfcNO0v1u5.html 第一篇传送门:聊天机器人的发展状况与分类 第二篇传送门:基于规则和检索的聊天机器人引擎 本篇文章以这个开源项目为主线进行. 数据预处理 模型能聊的内容也取决于选取的语料.如果已经具备了原始聊天数据,可以用SQL通过关键字查询一些对话,也就是从大库里选取出一个小库来训练.从一些论文上,很多算法都是在数据预处理层面的,比如Mechanism-Aware Neural Mach

秒懂词向量Word2vec的本质

1. Word2vec参考资料总结 (以下都是我踩过的坑,建议先跳过本节,阅读正文部分,读完全文回头再来看) 先大概说下我深挖 word2vec 的过程:先是按照惯例,看了 Mikolov 关于 Word2vec 的两篇原始论文,然而发现看完依然是一头雾水,似懂非懂,主要原因是这两篇文章省略了太多理论背景和推导细节:然后翻出 Bengio 03年那篇JMLR和 Ronan 11年那篇JMLR,看完对语言模型.用CNN处理NLP任务有所了解,但依然无法完全吃透 word2vec:这时候我开始大量阅