你好,我是郭震
今天我来总结大模型第二篇,word2vec,它是大模型的根基,一切NLP都会用到它。
Word2Vec
Word2Vec 是一种流行的自然语言处理(NLP)工具,它通过将词汇表中的每个单词转换成一个独特的高维空间向量,使得这些词向量能够在数学上表示它们的语义关系。
这种方法对于后续的深度学习模型和NLP的发展具有重大意义,因为它提供了一种有效的方式来表达文本数据,并使得基于文本的应用(如机器翻译、情感分析、信息检索等)的实现变得更加高效和准确。
发展影响:
- 语义理解的提升:Word2Vec训练出的向量能够捕捉词语之间的多种关系,如同义、反义等,这使得机器能更好地理解语言的深层含义。
- 深度学习的推动:Word2Vec的推出加速了深度学习技术在NLP领域的应用,为后来的模型如BERT、GPT等复杂的语言模型奠定了基础。
- 词向量方法的创新:Word2Vec的成功推动了其它类型的词嵌入方法的研发,比如GloVe(Global Vectors for Word Representation)和FastText。
基本原理
Word2Vec有两种架构:CBOW(Continuous Bag of Words)和Skip-gram。
- CBOW:这种方法预测目标单词基于上下文。例如,在“the cat sits on the”中,CBOW使用“the”、“cat”、“sits”、“on”、“the”作为输入来预测“mat”这个词。
- Skip-gram:与CBOW相反,它用一个单词来预测上下文。例如,给定单词“sits”,模型将会尝试预测它周围的单词如“the”、“cat”、“on”、“the”。
训练过程:
- 使用神经网络作为训练模型,输入层为一个独热编码的向量,通过隐藏层(不使用激活函数的全连接层)将此向量映射到低维空间中,输出层则根据模型架构(CBOW或Skip-gram)来决定。
- 训练目标是最小化实际输出和预期输出之间的差异,通常使用softmax函数进行分类任务。
案例讲解
假设我们有一个简单的句子:"the quick brown fox jumps over the lazy dog",并且我们选择Skip-gram模型进行词向量的训练。我们可以挑选“fox”作为输入词,上下文窗口大小为2:
- 输入:"fox"
- 预测的上下文:"quick"、"brown"、"jumps"、"over"
训练步骤:
- 对“fox”进行独热编码。
- 使用Word2Vec模型预测“fox”的上下文词。
- 通过调整模型权重来最小化预测误差,使得模型可以更准确地预测到“fox”的正确上下文。
通过大量的数据和迭代训练,每个单词的向量都会逐渐调整到能够准确反映它与其他词语的语义关系的位置。
这些向量之后可以用于各种机器学习模型和NLP应用,从而实现更复杂的语言处理任务。接下来大模型第三篇,我会讲解word2vec的神经网络训练代码,欢迎关注。