按照论文中的观点,现有大部分模型都无法控制模型输出的摘要长度,所以很多时候都会输出超长的限制。因为在模型中都没有考虑到文本长度的信息,或者已有的一些考虑长度的模型都没有取得很好的分数。故此,论文作者提出了一个考虑到文本长度的优化目标函数(损失函数)。
之前的生成类模型,大部分都是用的MLE(最大对数似然估计),并且是强制学习(Decoder中每一步的输入使用真实摘要而不是上一步的输入)所以单纯的MLE无法解决文本过长的问题(因为训练过程中,生成到原始摘要长度就停了)
论文中使用了改进的MRT(Minimum Risk Training),MRT方法可以在训练过程中如同预测过程相同,下一个词的生成是根据上一个词的,直到生成结束再根据损失进行优化模型。其基本损失定义如下所示
L M R T ( θ ) = ∑ ( x , y ) ∈ D ∑ y ′ ∈ S ~ ( x ) Q θ ( y ′ ∣ x ) Δ ( y , y ′ ) L_{MRT}(\theta)=\sum_{(x,y)\in D}\sum_{y'\in\tilde{S}(x)}Q_\theta(y'|x)\Delta(y,y') LMRT(θ)=(x,y)∈D∑y′∈S~(x)∑Qθ(y′∣x)Δ(y,y′)
其中
在这种基本情况下,使用ROUGE的Recall、Precision、F1能粗略地控制输出长度,但还是不够理想。
作者提出的改进方法,是修改上面的 Δ \Delta Δ方法,将文本长度加入其中:
L M R T ( θ ) = ∑ ( x , y ) ∈ D ∑ y ′ ∈ S ~ ( x ) Q θ ( y ′ ∣ x ) Δ ~ ( y , y ′ ) L_{MRT}(\theta)=\sum_{(x,y)\in D}\sum_{y'\in\tilde{S}(x)}Q_\theta(y'|x)\tilde\Delta(y,y') LMRT(θ)=(x,y)∈D∑y′∈S~(x)∑Qθ(y′∣x)Δ~(y,y′)
Δ ~ ( y , y ′ ) = − R O U G E ( y , t r i m ( y ′ , c ∗ ( y ) ) ) + m a x ( 0 , c ∗ ( y ′ ) − c ∗ ( y ) ) \tilde\Delta(y,y')=-ROUGE(y,trim(y', c_*(y)))+max(0,c_*(y')-c_*(y)) Δ~(y,y′)=−ROUGE(y,trim(y′,c∗(y)))+max(0,c∗(y′)−c∗(y))
其中:
这样,如果生成文本超长,第一项ROUGE分数不会再变小(因为被截取了),那么 Δ ~ \tilde\Delta Δ~的第二项就不为0,损失就会变大,在优化模型的过程中,会逐渐令模型的输出长度趋近于实际长度。
作者对比了两个主要模型,一个是基于LSTM(PG),一个基于CNN(LC),效果如下所示,可以看到,超长的情况得到了很大的缓解,而平均生成时间也缩短不少(可能因为短了)
可以从模型效果看出,带有普通MRT的模型取得了较好的ROUGE成绩,虽然加入GOLC模型有些许损失,但是却从某方面提升了模型效果,也是不错的思路。