Word Embedding 学习笔记——GloVe 与 word2vec
完成日期:2019.02.25
最近在做一些关于序列标注相关的任务,所用的深度学习方法需要用到Word Embedding,所以就学习了一些Word Embedding的认识,看的主要是范永勇的博客,我觉得他写得很好,所以把自己学习到的相关知识记录一下。
因为实验室主要是做数据挖掘相关的工作,有非常丰富的语料资源,所以在做Word Embedding的时候就想到了用GloVe或者word2vec,看了大量的材料都说两种方法的效果其实差不多,所以在做实验的时候我两种Embedding都试了一下,看哪个比较适合自己的模型。扯蛋了这么久,我还是快点我的学习笔记吧= =
一. Word Representation
Word Representation是词的向量化表示,也就是把单词(word)按照某种规则表示成一个向量(vector)。
二. One-hot Encoding
One-hot Encoding是到目前为止最常用的词表示方法,这种方法把每个词表示为一个很长的向量。这个向量的维度是词表大小,其中绝大多数元素为 0,只有一个维度的值为 1,这个维度就代表了当前的词。
举个例子:语料库里面有两个句子 D1 : I like apple. D2 : I like pear. 从这个语料库中我们得到字典 [I, like, apple, pear],那么单词 “I” 的one-hot encoding就是 [1000],单词 “like” 就是 [0100]
三. Word Embedding
Word Embedding就是将单词word映射到另外一个空间,其中这个映射具有injective(单射函数)和structure-preserving(结构保存,比如在x所属空间上x1<x2,那么映射后y所属空间y1<y2的特点。)
3.1 Word Embedding
Word Embedding的类型分为两大类:Frequency based Embedding(基于词频) 和 Prediction based Embedding(基于预测)