当词汇量非常大时,替代 one-hot 编码输出到模型

问题描述 投票:0回答:1

我正在关注这个博客。在其中他谈到了如何在 keras 中构建语言模型。他展示了如何在 keras 中构建一个简单的模型。

分离后,我们需要对输出字进行一次热编码。这意味着将其从整数转换为 0 值向量,每个值对应词汇表中的每个单词,1 表示单词整数值索引处的特定单词。

这样模型就可以学习预测下一个单词的概率分布,并且除了下一个实际单词之外的所有单词的学习基础事实都是 0。

Keras 提供了 to_categorical(),可用于对每个输入-输出序列对的输出单词进行热编码。

他使用以下内容:

y = to_categorical(y, num_classes=vocab_size)

就他而言,词汇量是可控的。我正在处理大小> 1 亿的词汇量。我想我不应该像他那样对输出使用 one-hot 编码。有什么替代方案吗?

    

nlp keras language-model
1个回答
0
投票
y

的嵌入层。对于 100M 的 voca,这很容易给出几十亿个参数

到 2024 年,答案将是具有固定词汇量的子词分词器,例如 BPE 或 SentencePiece。

© www.soinside.com 2019 - 2024. All rights reserved.