前言
本来从头到尾完整地叙述inside-outside的原理的。但一方面,看了材料之后,我反而对em algorithm for PCFGs有一些理解,能够与模型的训练联系起来,而inside-outside我真的不知道它有什么用,只知道一个公式,所以需要进一步去理解; 另一方面,接下来的今天没时间看这个,所以先记下一些粗糙的想法,以免忘了。
inside-outside algorithm
对于每一棵完整的 parsing tree:
我们够可以将它分成两个部分(inside tree 和 outside tree):
这样的分解过程,用白话来讲就是: 我知道完整的一棵树,然后在某一个点上,就比如现在是在NP那个点上,我可以把这棵树分解开来,分成两个部分:
- 具体NP下面是怎样的一棵小树
- 不管,NP下面是怎样的一棵树,我只要一棵残缺的大树
这样,就可以得到下面的公式:
上面的公式在我看来解释为: 所有含有(A,I,J)的完整的树的概率和 = 所有含有(A,I,j)的残缺的树的概率和 * 所有以A为根,以x_i,….x_j为叶子节点的树的概率和。
上面的残缺解释为: 概率计算时,并不考虑 A为根,x_i,….x_j为叶子节点的树具体是什么。
The EM algorithm for PCFGs
先初始化一组参数(也就是每一个规则都有一个概率),记为q。算法的过程就是q的迭代过程,q的迭代公式如下:
f®代表r这个规则在所有训练样本(句子)的所有可能的解析树上的count。
所以最重要的计算count®(这里的count®代表对于一个训练样本,所有可能的解析树上的count)。
经过公式推导,count®可以被表示成:
而这些都在inside algorithm的计算过程中都被记录了下来,只要查表就好。具体:1. 要查分子的话,先确定l = j-i, 在确定分割点k,再去看是不是A->BC,就可以查到;2. 要查分母Z的话,那就是root的值(所有可能的解析树的概率)。
目前不理解的地方
- inside-outside里面的那个公式到底有什么用呢…
- em算法中,既然 inside algorithm已经把答案算好,也就是说,对于每一个训练样本而言,上式中的分字和分母都是固定的,进一步得到:对于每一个训练样本而言,每一个count®都是固定的,进一步得到:f®是固定的,那么就是说:只要进行一次迭代,所有参数就固定了呀?
- em算法中,依然没有找到outside algorithm的踪迹,因为所有需要的都在inside里被求好了,跟outside又有啥关系呢…
补充
有空一定会把上面说成人话的。