两两组合看有多少种对齐方式列举成一棵树。
然后从头开始组成一句话。但是如果想要穷尽所有情况是一个NP难问题,没有办法实现,因此只能采取最优路径搜索。
例如,下面提到的beam search算法可以很优秀地进行路径查找。此方法在谷歌NN翻译的解码阶段也有采用。
Find Best Path:找最优路径。从而解码才是可控的。
没有办法穷尽所有的路径,利用beam search来减少算法的复杂度。每次之后保留下来较优的候选,然后在节点处展开。
beam search会限定一定的宽度,超过候选概率,概率较低的就从路径树上直接删去。然后实现给定参数的剪枝模型。
剪枝就是之前的Recombination步骤,将类似的合并取一个较优的出来。较差的drop
每次选一定个数的候选,每次放一定个数的候选到堆栈当中。
按照概率进行剪枝选择最好的项。
然后将组合出来的句子计算概率。
通过此算法可以找到一条或者多条较优的路径。然后就可以开始进行下一讲的评估了。
预估未来的代价: