Nlp 当词汇量非常大时,可替代热编码输出到模型

Nlp 当词汇量非常大时,可替代热编码输出到模型,nlp,keras,language-model,Nlp,Keras,Language Model,我跟着。在书中,他谈到了如何在keras中构建语言模型。他展示了如何在keras中构建一个简单的模型 分离后,我们需要对输出字进行一次热编码。这意味着将其从整数转换为0值的向量,词汇表中的每个单词对应一个值,1表示单词整数值索引处的特定单词 这是为了让模型学会预测下一个单词的概率分布,并且除了下一个实际单词之外,所有单词的基本事实都是0 Keras提供了to_category(),可用于对每个输入输出序列对的输出字进行热编码 他使用以下方法: y=to\u categorical(y,num\u

我跟着。在书中,他谈到了如何在keras中构建语言模型。他展示了如何在keras中构建一个简单的模型

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

这是为了让模型学会预测下一个单词的概率分布,并且除了下一个实际单词之外,所有单词的基本事实都是0

Keras提供了to_category(),可用于对每个输入输出序列对的输出字进行热编码

他使用以下方法:

y=to\u categorical(y,num\u classes=vocab\u size)


在他的例子中,词汇量是可控的。我正在使用超过1亿的词汇。我想我不应该像他那样对输出
y
使用一次热编码。有其他选择吗?

不确定它是否在Keras中实现,但您可能对分层Softmax感兴趣(Sebasian Ruder在此提供了一些信息)。出于好奇,您怎么可能拥有100万词汇?作为@mcoav的附议者,你真的应该考虑为这样一个怪物定义目标函数。