|
|
||
|---|---|---|
| .. | ||
| lab | ||
| CBoW-PyTorch.ipynb | ||
| CBoW-TF.ipynb | ||
| README.md | ||
README.md
语言建模
语义嵌入,例如 Word2Vec 和 GloVe,实际上是迈向语言建模的第一步——创建某种能够理解(或表示)语言本质的模型。
课前测验
语言建模的核心思想是通过无监督方式在未标注的数据集上进行训练。这很重要,因为我们拥有大量未标注的文本,而标注文本的数量总是受到标注工作量的限制。通常,我们可以构建能够预测文本中缺失单词的语言模型,因为随机遮盖文本中的某个单词并将其作为训练样本是非常简单的。
嵌入训练
在之前的例子中,我们使用了预训练的语义嵌入,但了解这些嵌入是如何训练的也很有趣。有几种可能的思路可以用来训练嵌入:
- N-Gram语言建模,通过查看前 N 个标记(N-gram)来预测当前标记。
- 连续词袋模型 (CBoW),通过预测标记序列
W_{-N}, ...,W_N中的中间标记W_0。 - Skip-gram,通过中间标记
W_0来预测一组相邻标记 {W_{-N},\dots, W_{-1}, W_1,\dots, W_N}。
图片来源于这篇论文
✍️ 示例笔记本:训练 CBoW 模型
通过以下笔记本继续学习:
总结
在上一节课中,我们看到单词嵌入的效果就像魔法一样!现在我们知道训练单词嵌入并不是一项非常复杂的任务,如果需要,我们应该能够为特定领域的文本训练自己的单词嵌入。
课后测验
复习与自学
- PyTorch 官方语言建模教程。
- TensorFlow 官方 Word2Vec 模型训练教程。
- 使用 gensim 框架训练最常用嵌入的简便方法详见此文档。
🚀 作业:训练 Skip-Gram 模型
在实验中,我们挑战你修改本课的代码以训练 Skip-Gram 模型而不是 CBoW。阅读详情
免责声明:
本文档使用AI翻译服务Co-op Translator进行翻译。尽管我们努力确保翻译的准确性,但请注意,自动翻译可能包含错误或不准确之处。原始语言的文档应被视为权威来源。对于重要信息,建议使用专业人工翻译。我们不对因使用此翻译而产生的任何误解或误读承担责任。
