How to Generate a Good Word Embedding

之前介绍过几种生成word embedding的方法,那么针对具体的任务该如何选择训练数据?如何选择采用哪个模型?如何选择模型参数?本篇将分享一篇paper来回答上述问题,paper的题目是How to Generate a Good Word Embedding,作者是来自中科院大学的来斯惟博士。

当前,word embedding的模型有很多,性能几乎都是各说纷纭,每个模型在自己选定的数据集和任务上都取得了state-of-the-art结果,导致学术研究和工程应用上难以做出选择。不仅仅在word embedding这个子方向上存在这样的问题,很多方向都有类似的问题,如何公平客观地评价不同的模型是一个很困难的任务。本文作者试着挑战了一下这个难题,并且给出了一些有意义的结果。

本文所做研究都是一个同一个假设,即:出现在相似上下文的单词具有相似的意思。

下面来看下不同模型的比较,不同word embedding模型之间主要的区别在于两点:

1、目标词和上下文的关系

2、上下文的表示方法

本文提供探讨了6种模型,并从这两个方面对模型进行了对比,如下图:

c表示上下文,w表示目标词。首先看w和c的关系,前五种模型均是用c来预测w,只有C&W模型是给w和c的组合来打分。再看c的表示方法,Order模型是本文为了对比增加的一个虚拟模型,考虑了词序信息,将c中每个单词拼接成一个大向量作为输入,而word2vec的两个模型skip-gram和cbow都是将上下文处理为一个相同维度的向量作为输入,其中skip-gram选择上下文中的一个词作为输入,cbow将上下文的几个词向量作了平均,LBL、NNLM和C&W模型都是在Order模型的基础上加了一层隐藏层,将上下文向量做了一个语义组合。具体见下表:

据研究估计,文本含义信息的20%来自于词序,剩下的来自于词的选择。所以忽略词序信息的模型,将会损失约20%的信息。

本文做了包括三种类型的八组对比实验,分别是:

  • 研究词向量的语义特性。该类实验是为了对比词向量的语义特性,包括:WordSim353,TOEFL,analogy task:semantic和syntactic。
  • 将词向量作为特征。该类实验是为了对比词向量作为处理其他任务的特征时,对该任务性能的提升。包括:文本分类和命名实体识别。前者将词向量加权平均得到文本向量来分类,权值是词频,数据集用的是IMDB;后者用CoNLL03数据集做NER任务。
  • 用词向量来初始化神经网络模型。该类实验是为了研究词向量作为神经网络的初始值,对NN模型的提升。包括:CNN文本分类和词性标注。前者用了我们之前提到过的Kim的CNN模型,将句子表示成矩阵作为CNN的输入得到句子的表示,进行情感分类,数据集是Stanford Sentiment Treebank;后者用Wall Street Journal数据集进行了POS tagging任务。

经过大量的对比实验,作者回答了以下几个问题:

Q:哪个模型最好?如何选择c和w的关系以及c的表示方法?

A:对于一个小型数据集来说,类似skip-gram这样越简单的模型效果越好,对于一个大型数据集来说,稍微复杂一点的模型,比如cbow和order就可以取得非常好的效果。真实数据中,skip-gram、cbow和order这样的模型足够了。在语义任务中,通过c来预测w的模型要更优于C&W这种将c和w都放在输入层的模型。

Q:数据集的规模和所属领域对词向量的效果有哪些影响?

A:数据集的领域远比规模重要,给定一个任务之后,选择任务相关的领域数据将会提升性能,相反,如果数据并不相关,将会导致更差的性能。当然,如果数据都属于同一领域,规模越大性能越好。

Q:在训练模型时迭代多少次可以有效地避免过拟合?

A:通常的做法是在测试数据集上观察误差,当误差开始上升时即可停止训练,但经过本文的研究,这种方法并不能得到最好的task结果,好的做法是用task data作为early stopping的数据。

Q:词向量的维度与效果之间的关系?

A:越大的维度就会有越好的效果,但在一般的任务中50就已经足够了。

本文作者做了大量的工作,针对当前词向量模型的方方面面问题进行了研究,并且给出了许多有意义的结果,对今后研究和使用词向量的童鞋们搭建了一个非常坚实的平台。并且在github上开源了实验结果。

来源:paperweekly

原文链接

时间: 2024-07-29 12:51:41

How to Generate a Good Word Embedding的相关文章

[New Paper]A Joint Model for Word Embedding and Word Morphology

大家端午节快乐!本文将分享一篇关于词向量模型最新研究的文章,文章于6月8号提交到arxiv上,题目是A Joint Model for Word Embedding and Word Morphology,作者是来自剑桥大学的博士生Kris Cao. 本文最大的贡献在于第一次将词形联合词向量一同进行训练,从某种程度上解决了未登录词(OOV)的词向量表示问题,同时也得到了一个效果不错的词形分析器. 介绍本文模型之前先简单介绍下本文中采用的词向量训练方法,skip-gram with negativ

Learning Distributed Representations of Sentences from...

sentence representation的文章已经分享了几篇,包括了supervise和unsupervise的方法,但并没有对各种model进行系统地对比和分析,今天分享的这篇文章对现有各种各样的distributed representations of sentences model进行了分类.对比和分析,为了增强对比效果,还提出了两种虚拟的模型.最后将所有的模型在supervised和unsupervised评价任务中进行对比,得出了一些有意义的结论.本文的题目是:Learning

Word Sequence To Document Distances 实践与优化

    近几年来word2vec 在自然语言与机器学习方向上已经有巨大突破,将word表示成向量已经是自然语言处理中常见的方法.本文前部分介绍的是word2vec或者其他word embedding方法处理文本后计算两个文本相似程度的算法,算法思路来自论文<From Word Embeddings To Document Distances>,如果没有读过这篇论文也没有关系,后续会介绍这篇论文的大致思路和我自己改造的实现方法.后半部分介绍这种方法遇到的问题,以及自己优化这个算法思路与过程.  

GloVe: Global Vectors for Word Representation

Word2Vec虽然取得了很好的效果,但模型上仍然存在明显的缺陷,比如没有考虑词序,再比如没有考虑全局的统计信息.本篇分享的是GloVe: Global Vectors for Word Representation,作者是stanford的Jeffrey Pennington, Richard Socher(metamind CEO)和Christopher Manning.同时作者还开源了相应的工具GloVe和一些训练好的模型. 本文的思路是将全局词-词共现矩阵进行了分解,训练得到词向量.整

App Discovery with Google Play

App Discovery with Google Play, Part 1: Understanding Topics Tuesday, November 08, 2016 Posted by Malay Haldar, Matt MacMahon, Neha Jha and Raj Arasu, Software Engineers Every month, more than a billion users come to Google Play to download apps for

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

用TensorFlow为图片添加字幕

如何使用TensorFlow来构建和训练一个图片字幕生成器 图片字幕生成模型结合了近年来计算机视觉和机器翻译方面的进步,通过使用神经网络来生成现实图片的字幕.对于一个给定的输入图片,神经图像字幕模型被训练来最大化生成一个字幕的可能性.可以被用来产生新颖的图像描述.例如,下面是用MS COCO数据集训练的一个神经图像字幕生成器所产生的字幕. 图1. 来源:Paul Puri.图片来自MS COCO数据集 在这篇文章里,我们会介绍一个中级程度的教程,教大家如何使用谷歌的"Show and Tell&

Awesome Machine Learning

  Awesome Machine Learning  A curated list of awesome machine learning frameworks, libraries and software (by language). Inspired by awesome-php. If you want to contribute to this list (please do), send me a pull request or contact me @josephmisiti A

AI人工智能专业词汇集

作为最早关注人工智能技术的媒体,机器之心在编译国外技术博客.论文.专家观点等内容上已经积累了超过两年多的经验.期间,从无到有,机器之心的编译团队一直在积累专业词汇.虽然有很多的文章因为专业性我们没能尽善尽美的编译为中文呈现给大家,但我们一直在进步.一直在积累.一直在提高自己的专业性. 两年来,机器之心编译团队整理过翻译词汇对照表「红宝书」,编辑个人也整理过类似的词典.而我们也从机器之心读者留言中发现,有些人工智能专业词汇没有统一的翻译标准,这可能是因地区.跨专业等等原因造成的.举个例子,Deep