基于连贯性任务的句子向量表示
- 这篇文章想找出一种高效的句子的向量表示
- 使用了文章连贯性的任务来训练
- 对比了两种句子向量表示
- Recurrent Sentence Representation: 就是正常的循环神经网络,使用最后一个隐含层的状态
- h t = f ( V r e c u r r e n t h t − 1 + W r e c u r r e n t e w t + b r e c u r r e n t ) h_t = f(V_{recurrent} h_{t-1} + W_{recurrent} e_{w}^t + b_{recurrent}) ht=f(Vrecurrentht−1+Wrecurrentewt+brecurrent),RNN的表达式
- Recursive Sentence Representation: 递归句子表示,先将句子解析成语法树,那么根节点的向量表示作为句子的向量(根节点向量=f(左节点, 右节点))
- h p = f ( W r e c u r s i v e [ h l e f t , h r i g h t ] + b r e c u r s i v e ) h_p = f(W_{recursive} [h_{left}, h_{right}] + b_{recursive}) hp=f(Wrecursive[hleft,hright]+brecursive)
Coherence Model(连贯性模型)
- 句子集合(一个window,可以理解为卷积的window) C C C, 标签 y c y_c yc如果连贯为1,不连贯0
- 将句子向量拼接起来: h C = [ h s 1 , h s 2 , . . . , h s L ] h_C = [h_{s1}, h_{s2},...,h_{sL}] hC=[hs1,hs2,...,hsL],其中 L L L表示集合 C C C当中的句子个数
- 输入到隐含层: q C = t a n h ( W s e n h C + b s e n ) q_C = tanh(W_{sen} h_C + b_{sen}) qC=tanh(WsenhC+bsen)
- 最后预测是否连贯: p ( y C = 1 ) = s i g m o d ( U q C + b ) p(y_C=1) = sigmod(U q_C + b) p(yC=1)=sigmod(UqC+b)
- 损失函数,就是分类交叉熵损失: J ( θ ) = 1 M ∑ C ∈ t r a i n s e t { − y C l o g [ p ( y C = 1 ) ] − ( 1 − y C ) l o g [ 1 − p ( y C = 1 ) ] } + Q 2 M ∑ θ 2 J(\theta) = \frac{1}{M} \sum_{C \in trainset} \{ -y_C log[p(y_C=1)] - (1-y_C) log[1-p(y_C=1)] \} + \frac{Q}{2M} \sum \theta^2 J(θ)=M1C∈trainset∑{−yClog[p(yC=1)]−(1−yC)log[1−p(yC=1)]}+2MQ∑θ2
文档的连贯性评分
- S d S_d Sd: 文档的连贯性评分, d d d 代表一个文档, d = { s 1 , s 2 , . . . , s N d } d = \{ s_1, s_2,..., s_{N_d} \} d={s1,s2,...,sNd}, N d N_d Nd: 表示 d d d文档有多少个句子
- 如果window size为3,那么一个文档可以生成系列的cliques: < s s t a r t , s 1 , s 2 > , < s 1 , s 2 , s 3 > , . . . , < s N d − 1 , s N d , s e n d > <s_{start}, s_1, s_2>, <s_1, s_2, s_3>,...,<s_{N_{d-1}}, s_{N_d}, s_{end}> <sstart,s1,s2>,<s1,s2,s3>,...,<sNd−1,sNd,send>
- 文档连贯性评分: S d = ∏ C ∈ d p ( y C = 1 ) S_d = \prod_{C \in d} p(y_C=1) Sd=C∈d∏p(yC=1)
一些结论
- 语法解树生成的句子向量要比RNN生成的句子向量要好
一些想法
- 这里做的是句子的连贯性评分,词的特征是体现字句子向量当中,不能评判句子是否好坏
- 损失函数也是评价的句子之间的连贯性
- 直观上来讲如果句子差,连贯性也应该是比较差的
- 考虑一个问题,单独只做连贯性评分是否有意义呢?有什么办法可以欺骗连贯性评分呢?