- 词汇表使用one-hot编码,一个词在一列向量里只有一个位置是1,其他位置为0,缺点是浪费空间,而且看不出各个单词之间的关系。
- 词嵌入用一个高维向量表示一个单词,意思相近的词的词嵌入比较接近,泛化能力强。
- 高维空间不好表示,t-SNe算法可将高维空间映射为二维空间。apple与orange挨得较近。
- 学习词嵌入通常会考察很大文本集,几十亿单词很常见。可以下载词嵌入矩阵,用于自己训练集很小的模型作为输入。
- 通常只有自己训练集很大时,才会微调词嵌入矩阵。一般情况下,词嵌入不用调整。
- 词嵌入的一个应用是类比推理,比如man对women,算法可以推知king对queen。余弦相似度函数被用于衡量两个向量的相似性。
- 如果是学习语言模型,使用目标词前几个词作为上下文。如果是学习词嵌入,使用目标词邻近词作为上下文。
- word2vec算法采用skip-Gram模型。随机选择某个词作为上下文词,然后选择上下文词附近单词作为目标词,来学习词嵌入。
- word2vec主要难点是输出计算概率公式中分母的计算量过大。分级sorftmax和负采样被用来解决这个问题。
- 实际上上下文词并不是随即均匀选择的,而是采用不同的分级来平衡不常见的词和常见的词。
- word2vec还有一个连续词袋模型(CBOW),获得中间词两边的上下文,然后预测中间词。更适合小型语料库。