Neural network 什么';在解码过程中为词汇表外的单词使用UNK标记有什么意义?

Neural network 什么';在解码过程中为词汇表外的单词使用UNK标记有什么意义?,neural-network,deep-learning,nlp,machine-translation,Neural Network,Deep Learning,Nlp,Machine Translation,首先,我知道这个问题有点离题,但我已经试着在其他地方提问,但没有得到回应 在词汇表中添加UNK标记是NLP任务中处理oov单词的常规方法。将其用于编码是完全可以理解的,但将其用于解码又有什么意义呢?我的意思是,您永远不会期望解码器在预测期间生成UNK标记,对吗?我在以下情况下使用过一次: 我有一个预处理的word2vec(glood.6b.50d.txt),我正在输出一个嵌入的向量,为了将它转换成一个单词,我使用了基于word2vec中所有向量的余弦相似度,如果最相似的向量是我将输出的向量 也许

首先,我知道这个问题有点离题,但我已经试着在其他地方提问,但没有得到回应


在词汇表中添加
UNK
标记是NLP任务中处理oov单词的常规方法。将其用于编码是完全可以理解的,但将其用于解码又有什么意义呢?我的意思是,您永远不会期望解码器在预测期间生成
UNK
标记,对吗?

我在以下情况下使用过一次:

我有一个预处理的word2vec(glood.6b.50d.txt),我正在输出一个嵌入的向量,为了将它转换成一个单词,我使用了基于word2vec中所有向量的余弦相似度,如果最相似的向量是我将输出的向量


也许我只是在这里猜测,但我认为可能会发生的事情是,它根据以前的单词进行预测(例如,它预测3次迭代前出现的单词),如果该单词是神经网络输出的。

取决于你如何预处理训练数据,你可能需要在训练期间使用
UNK
。即使您使用BPE或其他子词切分,OOV也可能出现在培训数据中,通常是一些奇怪的UTF-8内容、您根本不感兴趣的字母表片段等

例如,如果您使用WMT培训数据进行英德翻译,执行BPE并使用词汇表,那么词汇表将包含数千个汉字,这些汉字在培训数据中只出现一次。即使您将它们保留在词汇表中,模型也没有机会了解它们,甚至没有机会复制它们。将它们表示为
UNK
s是有意义的


当然,你通常在推断时做的是阻止模型预测
UNK
代币,
UNK
总是不正确。

那么,将这些奇怪的代币映射到UNK给我们带来了什么?在我看来,这可以帮助我们在解码过程中减少一些成本,而不会浪费时间计算那些奇怪的令牌的登录。我说得对吗?是的,你说得对。这只会为你在准备训练数据时节省很多麻烦。