- 问题
Word2Vec学习出来的向量本身就含有了语义信息,那为什么还有问题呢?是什么问题?
问题就是多义词问题,众所周知,所有的语言为了提高复用性,都会有多义词现象。word2vec学的还不够好。比如bank学的语义,要兼顾银行和岸边,如果遇到跟钱有关的语境,那么指代银行的可能性就很大,但此时由于时一个状态,所以还是要二者兼顾,不能偏向任何一个义项。 说白了,word2vec学到的就是每个词的一个状态,每个词的意义定下来了,跟每个词关系都挺近。不会根据具体的语境来调整,说白了,不是一个过程,是一个状态。
而后面一些深度网络学习的方法,比如ELMO,BERT等等,会根据输入的上下文进行动态调整,这样经过调整后的Word Embedding更能表达在这个上下文中的具体含义,自然也就解决了多义词的问题了。 走过这些模型所有的参数后,得到最后每个词的输出,由于走这个过程中会按照上下文的调整,因此更适配于语境。 这里的动态调整是,每次都是从输入到输出走完所有的参数,得到最后根据这个句子上下文定制的向量。
所以可以认为ELMO,BERT等是一个再计算的动态过程,而非一个状态。