假设我们正在训练神经网络模型来学习从以下输入到输出的映射,其中输出是Name Entity(NE) .
Input :欧盟反对德国呼吁抵制英国羔羊 .
Output :ORG O MISC O O O MISC O O.
创建滑动窗口以捕获上下文信息,并将其结果作为model_input提供给训练模型 . 滑动窗口生成如下结果:
[['<s>', '<s>', 'EU', 'rejects', 'German'],\
['<s>', 'EU', 'rejects', 'German', 'call'],\
['EU', 'rejects', 'German', 'call', 'to'],\
['rejects', 'German', 'call', 'to', 'boycott'],\
['German', 'call', 'to', 'boycott', 'British'],\
['call', 'to', 'boycott', 'British', 'lamb'],\
['to', 'boycott', 'British', 'lamb', '.'],\
['boycott', 'British', 'lamb', '.', '</s>'],\
['British', 'lamb', '.', '</s>', '</s>']]
<s>
表示句子标记的开头, </s>
表示句子结尾标记,每个滑动窗口对应输出中的一个NE .
为了处理这些令牌,使用预训练的嵌入模型将单词转换为向量(例如,手套),但是那些预先训练的模型不包括诸如 <s>
和 </s>
的令牌 . 我认为 <s>
和 </s>
的随机初始化在这里不是一个好主意,因为这种随机结果的规模可能与其他Glove嵌入不一致 .
Question :为 <s>
和 </s>
设置嵌入的建议是什么?为什么?
1 回答
通常,答案取决于您打算如何在任务中使用嵌入 .
我怀疑使用
<s>
和</s>
令牌是由LSTM或其他递归神经网络决定的,这是在嵌入层之后 . 如果您要自己训练单词嵌入,我会添加任何值 . 启动和停止令牌在LSTM中很重要(虽然并非总是如此),但它们的嵌入字可以是任意的,小的随机数也可以,因为这个向量与所有"normal"向量相同 .如果你不想搞乱预训练的GloVe向量,我建议你冻结嵌入层 . 例如,在tensorflow中,这可以通过嵌入查找后的tf.stop_gradient操作来实现 . 这样,网络就不会学习
<s>
与其他单词之间的任何关系,但它会改变 .