Word Embedding是什么?
Word Embedding——词嵌入是将单词映射为数值向量,以捕捉单词间的语义和句法关系,为自然语言处理任务提供有效的特征表示。——自然语言处理——Word2Vec、GloVe、FastText。
Word Embedding属于静态向量,所谓静态向量指的是一旦训练完成后,对应的向量便不再发生改变,比如一个词经过向量化之后,在后续的场景中该词对应的向量不会发生改变。
一、Word2Vec
Word2vec是2013年Google发布的无监督词向embedding模型。该模型采用CBOW(连续词袋)或Skip-gram模型来训练词向量,将词映射成d维稠密向量:其中CBOW是采用词的上下文来预测该词,而Skip-gram则是采用词来预测其上下文。两者网络结构相似,通常所得到的词向量效果相差不大;但对于大型语料,Skip-gram要优于CBOW。
Item2Vec——Word2Vec 在物品推荐领域的应用:
Item2Vec 是将 Word2Vec 的思想应用于物品推荐系统的上下文中。它同样有两种主要的模型:Co-occurrence 和 Co-occurrence with Negative Sampling。Co-occurrence:类似于 CBOW,输入一组物品(如用户购买历史中的物品集合),预测其中的某个物品。Co-occurrence with Negative Sampling:类似于 Skip-Gem,输入一个物品,预测其周围的物品集合。
二、GloVe
GloVe (Global Vectors for Word Representation)是由斯坦福大学的研究者们在2014年提出的,旨在解决传统词嵌入方法的一些局限性,如Word2Vec等方法仅依赖于局部上下文窗口,还结合全局统计信息(单词共现)来获得单词向量。——它通过考虑单词在语料库中的共现概率来捕获单词之间的语义关系。GloVe 有效性的关键在于单词上下文矩阵的构建以及后续的分解过程。
三、FastText
FastText是Facebook AI Research (FAIR)实验室在2016年提出的一种词嵌入技术,它的设计目的是为了改进Word2Vec和GloVe等方法在处理罕见词、拼写错误词时的表现。
子词信息:
-
- FastText不仅仅考虑整个词的信息,还会考虑词内部的结构信息。
- 为此,FastText将每个词分解成更小的部分,称为n-grams(连续的字母序列)。
词和n-grams的嵌入:
-
- FastText为每个词创建一个嵌入向量,并为每个n-gram也创建一个嵌入向量。
- 一个词的最终嵌入向量是其自身的嵌入向量加上所有n-grams嵌入向量的平均值。
训练过程:
-
- FastText使用监督学习的方法来训练词嵌入,这意味着它会尝试预测一个词的上下文词。
- 通过这种方式,FastText能够学会即使是从未见过的新词的表示,因为它可以根据词内部的常见模式来推断新词的意义。