《TensorFlow自然语言处理》—3.6 总结
3.6 总结
词嵌入已成为许多NLP任务不可或缺的一部分,并广泛用于机器翻译、聊天机器人、图像标题生成和语言建模等任务。词嵌入不仅可以作为降维技术(与独热编码相比),而且与其他现有技术相比,它们还提供了更丰富的特征表示。在本章中,我们讨论了两种主流的基于神经网络的学习单词表示的方法,即skip-gram模型和CBOW模型。
首先,我们讨论了经典方法,了解过去如何学习单词表示,例如使用WordNet、构建单词的共现矩阵以及计算TF-IDF。后来,我们讨论了这些方法的局限性。
这促使我们探索基于神经网络的单词表示学习方法。首先,我们手动设计了一个例子来理解如何计算词嵌入或词向量,然后用一个词向量的例子来了解可以用词向量完成的有趣事情。
接下来,我们讨论了第一个词嵌入学习算法:skip-gram模型。之后,我们学习了如何准备用于学习的数据。后来,我们研究了如何设计一个可以让我们根据给定单词的上下文单词来获得词嵌入的损失函数。之后,我们讨论了我们所设计的封闭形式损失函数的一个关键的限制。对于大型词汇表,损失函数无法扩展。后来,我们分析了两种主流的近似损失,它们使我们能够有效地计算损失:负采样和分层softmax。最后,我们讨论了如何使用TensorFlow实现skip-gram算法。
然后,我们介绍了学习单词嵌入的下一个选择:CBOW模型。我们还讨论了CBOW与skip-gram模型的不同之处。最后,我们讨论了CBOW的TensorFlow实现。
在下一章中,我们将分析我们学习过的Word2vec技术的性能,并学习几个可显著提高其性能的扩展方法。此外,我们将学习另一个词嵌入学习技术,称为Global Vectors或GloVe。
- 点赞
- 收藏
- 关注作者
评论(0)