Word2Vec和NNLM对比有什么区别?
NNLM:是神经网络语言模型,使用前面的词预测下一个词。
Word2Vec:用词预测词,Skip-Gram用中心词预测周围词,CBOW用周围词预测中心词。
Word2Vec两种模型是什么?
Skip-Gram模型用中心词预测周围词,输入是特定的一个词的词向量,而输出是特定词对应的上下文词向量。
CBOW模型用周围词预测中心词,输入是某一个特征词的上下文相关的词对应的词向量,而输出就是这特定的一个词的词向量。
Word2Vec两种优化方法是什么?
层次Softmax(Hierarchical Softmax)和负采样(Negative Sampling)。
什么是层次Softmax?
根据单词出现的频率构造一颗霍夫曼树,出现频率高的单词霍夫曼编码就短,更加靠近根节点。在每一个非叶节点上用Sigmoid函数计算二分概率,把N分类问题变成 log(N)次二分类。另外,高频词非常接近树根,其所需要的计算次数比log(N)次更少。
什么是负采样?
因为使用Softmax时,分母需要将中心词与语料库总所有词做点乘,代价太大。负采样就是选取K个负样本,即窗口之外的样本,计算中心词与负样本的点乘,最小化该结果,计算中心词与窗口内单词的点乘,最大化该结果。
负采样的采样方式是什么?
根据词频进行随机抽样,倾向于选择词频比较大的负样本,在词频基础上取了0.75次幂,减小词频之间差异过大所带来的影响,使得词频比较小的负样本也有机会被采到。
Word2vec与fastText对比有什么区别?
Word2vec把每个词当成原子,fastText加入子词(subword),同时对subword可以进行n-gram,以拓展词表,可以解决OOV(out of vocab)问题。
GloVe与Word2vec对比有什么区别?
Word2vec是局部语料库训练的,其特征提取是基于滑窗的;而glove的滑窗是为了构建共现矩阵(co-occurance matrix),是基于全局语料的。
Word2vec与ELMo模型在语义学习上差异是什么?
Word2vec是CBOW或者Skip-gram等学出来的,通过大规模语料,学习自然语言本身的序列信息,是静态词向量。ELMo(Embedding from Language Models)模型核心是一个双层双向的LSTM网络 ,将其隐状态抽出来作为词表示,这样根据不同的上下文会有不同的表示,学习的是动态词向量。
如何解决oov问题?
用 UNK 标签表示所有未登录词。
subword、bpe、wordpiece、unigram等方法。