今天我们要说的就是如何选定最优句子的算法,束搜索。
它的第一步是选定第一个最有可能出现的词,首先要在字典当中进行搜索P(Y<1>|X)最大的值。
在集束搜索当中,有一个参数叫做集束宽B,这个参数代表了在第一个位置上考虑的最优单词的个数,假设我们使用3,则会选取概率前3的词。
然后进入到第二步,选取第二个词。在那之前,首先得明确一个数学概念。
P(Y<1>,Y<2>|X)=P(Y<1>|X) X P(Y<2>|X,Y<1>),也就是说,取到前两个词概率的总和等于取到第一个词的概率乘取到第一个词的前提下取到第二个词的概率。
然后我们对之前选出第一个位置概率前三的单词带入,求出概率最概率前三的P(Y<1>,Y<2>|X),再放入到内存当中,供第三步使用,这就是集束搜索的思想。
然后接下来就是通过之前这个方式一个个继续搜索下去,直到出现语句停止符<EOS>。由于我们的集束是3,那么要把3个位置都搜索到EOS之后,再进行比较,然后选取概率最大的那个输出。
整个最优翻译的选取就完成了。
集束搜索还有很多可以改进的地方,在后面我们会继续讨论。
网友评论