我研究视觉注意力模型,但最近一直在阅读BERT和其他语言注意力模型,以填补我知识中的一个严重空白。
我对我在这些模型架构中看到的东西感到有点困惑。给出一句类似“猫追狗”的句子。我本以为每个单词的嵌入之间会有交叉信息流。例如,我希望在模型中看到一个点,其中“猫”的嵌入与“狗”的嵌入相结合,以便创建注意力掩码。
相反,我似乎看到的(如果我错了,请纠正我)是,像"cat“这样的单词的嵌入最初被设置为包含关于它们周围单词的信息。因此,每个单词的每次嵌入都包含它们周围的所有其他单词。然后,这些嵌入中的每一个都并行通过模型。这对我来说似乎很奇怪,也是多余的。为什么他们要以这种方式建立模型?
如果我们把猫挡在门外。“他们...在追狗。”那么,在推理过程中,我们是否只需要发送"...“通过模型嵌入?
发布于 2020-08-20 02:24:51
嵌入不包含关于它们周围的其他嵌入的任何信息。BERT和其他模型,如OpenGPT/GPT2,没有上下文相关的输入。
与上下文相关的部分会在后面介绍。他们在基于注意力的模型中所做的是使用这些输入嵌入来创建其他向量,这些向量然后相互作用,并使用各种矩阵乘法、求和、归一化,这有助于模型理解上下文,这反过来又有助于它做一些有趣的事情,包括语言生成等。
当你说‘我希望在模型中看到一个点,“猫”的嵌入与“狗”的嵌入相结合,以便创建注意力掩模。“你是对的。这种情况确实会发生。只是不是在嵌入级别。我们通过将嵌入与学习的矩阵相乘来生成更多的向量,然后相互作用。
https://stackoverflow.com/questions/63491247
复制相似问题