根据我的理解(如果我错了,请纠正我),Beam Search 是 BFS,它只探索最可能的选项b下的可能性“图”,其中b是光束大小。
为了计算/评分每个选项,特别是对于我正在做的 NLP 领域的工作,我们基本上通过计算令牌的概率来计算可能性的分数,给定它之前的所有内容。
这在循环架构中是有意义的,在这种架构中,您只需通过最佳b个第一个令牌运行您的解码器模型,以获得每个第一个令牌的第二个令牌的概率。最终,您会得到具有概率的序列,然后您只需选择概率最高的序列。
然而,在 Transformer 架构中,模型没有这种重复性,输出是词汇表中每个单词、序列中每个位置的整个概率(批量大小、最大序列长度、词汇大小)。我如何解释 Beam Search 的这个输出?我可以得到输入序列的编码,但是由于没有重复使用前一个输出作为下一个令牌解码的输入,我该如何计算源自最佳b的所有可能序列的概率代币?