2.1 词汇表征(Word Representation)
Last updated
Last updated
one-hot向量表示:单词Man,Woman,King,Queen,Apple,Orange分别出现在词汇表的第5391,9853,4914,7157,456,6257的位置,则它们分别用, 等表示,代表one-hot:
缺点是把每个词孤立起来,使得算法对相关词的泛化能力不强
因为任何两个one-hot向量的内积都是0,例如king和queen,词性相近,但是单从one-hot编码上来看,内积为零,无法知道二者的相似性
因此用特征表征(Featurized representation)的方法对每个单词进行编码。也就是使用一个特征向量表征单词,特征向量的每个元素都是对该单词某一特征的量化描述,量化范围可以是[-1,1]之间,而单词使用这种高维特征表示时,就叫做词嵌入(word embedding), 词嵌入可以让算法自动的理解一些类似的词,比如男人对女人,国王对王后:
以上举例的特征实际上并不是手工设计的,而是算法(word embedding)学习而来;而且这些学习的特征,可能并不具有良好的解释性,但无论如何,算法都可以快速找到哪些单词是类似的
特征向量的长度依情况而定,特征元素越多则对单词表征得越全面。这里的特征向量长度设定为300。使用特征表征之后,词汇表中的每个单词都可以使用对应的300 x 1的向量来表示,该向量的每个元素表示该单词对应的某个特征值。每个单词用e+词汇表索引的方式标记,例如,,,,,
用这种表示方法来表示apple和orange这些词,那么apple和orange的这种表示肯定会非常相似,可能有些特征不太一样,如颜色口味,但总的来说apple和orange的大部分特征实际上都一样,或者说都有相似的值。这样对于已经知道orange juice的算法很大几率上也会明白apple juice这个东西,这样对于不同的单词算法会泛化的更好
如果能够学习到一个300维的特征向量,或者说300维的词嵌入,把这300维的数据嵌入到一个二维空间里,就可以可视化了。常用的可视化算法是t-SNE算法,会发现man和woman这些词聚集在一块,king和queen聚集在一块等等
在对这些概念可视化的时候,词嵌入算法对于相近的概念,学到的特征也比较类似,最终把它们映射为相似的特征向量