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


原文链接

相关文章
|
人工智能 数据可视化 Java
ElasticSearch安装、插件介绍及Kibana的安装与使用详解
ElasticSearch安装、插件介绍及Kibana的安装与使用详解
ElasticSearch安装、插件介绍及Kibana的安装与使用详解
|
NoSQL Redis
Redis事务:保证数据操作的一致性和可靠性
Redis事务:保证数据操作的一致性和可靠性
277 0
|
图形学 索引
Unity 之 三种抽奖示例
Unity做的三种抽奖的示例,根据需求修改动画时间和效果以及获取概率,文末附示例链接。
1325 0
Unity 之 三种抽奖示例
|
异构计算 存储 虚拟化
看云栖说云栖——神龙、含光、擎天、云超算
说说以神龙为代表的阿里云计算资源
1237 0
|
安全 网络安全 数据安全/隐私保护
XSS 漏洞可能会带来哪些危害?
【10月更文挑战第26天】XSS漏洞可能会给网站和用户带来诸多严重危害
|
算法 搜索推荐 C++
【C++】sort()、stable_sort()和partial_sort()排序函数详解
【C++】sort()、stable_sort()和partial_sort()排序函数详解
792 0
|
存储 Java API
【网安AIGC专题11.7】17ASAP如何更好地改进少样本提示:在LLMs的prompt中添加语义信息,来提高代码摘要生成+代码补全任务的性能。CodeSearchNet数据集(下)
【网安AIGC专题11.7】17ASAP如何更好地改进少样本提示:在LLMs的prompt中添加语义信息,来提高代码摘要生成+代码补全任务的性能。CodeSearchNet数据集(下)
470 0
|
12月前
|
消息中间件 存储 监控
高弹性、低成本的云消息队列RabbitMQ 版
本次课程由阿里云消息队列产品专家杨文婷分享,主题为高弹性、低成本的云消息队列RabbitMQ。内容涵盖四个方面:1) 产品优势,包括兼容开源客户端、解决稳定性痛点和高弹性低成本;2) 架构实现原理,如分布式架构和弹性调度系统;3) Serverless系列带来的按量付费模式和资源池优势;4) Serverless适用场景,如开发测试环境、峰谷流量业务等。最后解答了关于顺序消费、与普通MQ对比、自动扩容及API支持等常见问题。
428 46
|
缓存 监控 关系型数据库
如何优化MySQL查询速度?
如何优化MySQL查询速度?【10月更文挑战第31天】
531 3
|
缓存 网络协议 安全
TCP首部格式【TCP原理(笔记五)】
TCP首部格式【TCP原理(笔记五)】
871 0
TCP首部格式【TCP原理(笔记五)】