Advertisement

【论文笔记】A model of coherence based on Distributed Sentence Representation

阅读量:

基于连贯性任务的句子向量表示

  • 这篇文章想找出一种高效的句子的向量表示

  • 使用了文章连贯性的任务来训练

  • 对比了两种句子向量表示
    在这里插入图片描述

  • Recurrent Sentence Representation: 就是正常的循环神经网络,使用最后一个隐含层的状态

    • ht=f(Vrecurrentht−1+Wrecurrentewt+brecurrent) h_t = f(V_{recurrent} h_{t-1} + W_{recurrent} e_{w}^t + b_{recurrent}) ,RNN的表达式
  • Recursive Sentence Representation: 递归句子表示,先将句子解析成语法树,那么根节点的向量表示作为句子的向量(根节点向量=f(左节点, 右节点))

    • hp=f(Wrecursive[hleft,hright]+brecursive) h_p = f(W_{recursive} [h_{left}, h_{right}] + b_{recursive})

Coherence Model(连贯性模型)

在这里插入图片描述
  • 句子集合(一个window,可以理解为卷积的window)CC, 标签ycy_c如果连贯为1,不连贯0
  • 将句子向量拼接起来:hC=[hs1,hs2,...,hsL]h_C = [h_{s1}, h_{s2},...,h_{sL}],其中LL表示集合CC当中的句子个数
  • 输入到隐含层:qC=tanh(WsenhC+bsen) q_C = tanh(W_{sen} h_C + b_{sen})
  • 最后预测是否连贯:p(yC=1)=sigmod(UqC+b) p(y_C=1) = sigmod(U q_C + b)
  • 损失函数,就是分类交叉熵损失:J(θ)=1M∑C∈trainset{−yClog[p(yC=1)]−(1−yC)log[1−p(yC=1)]}+Q2M∑θ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

文档的连贯性评分

  • SdS_d: 文档的连贯性评分,dd 代表一个文档,d={s1,s2,...,sNd}d = { s_1, s_2,..., s_{N_d} },NdN_d: 表示dd文档有多少个句子
  • 如果window size为3,那么一个文档可以生成系列的cliques: <sstart,s1,s2>,<s1,s2,s3>,...,<sNd−1,sNd,send> <s_{start}, s_1, s_2>, <s_1, s_2, s_3>,...,<s_{N_{d-1}}, s_{N_d}, s_{end}>
  • 文档连贯性评分:Sd=∏C∈dp(yC=1) S_d = \prod_{C \in d} p(y_C=1)

一些结论

  • 语法解树生成的句子向量要比RNN生成的句子向量要好

一些想法

  • 这里做的是句子的连贯性评分,词的特征是体现字句子向量当中,不能评判句子是否好坏
  • 损失函数也是评价的句子之间的连贯性
  • 直观上来讲如果句子差,连贯性也应该是比较差的
  • 考虑一个问题,单独只做连贯性评分是否有意义呢?有什么办法可以欺骗连贯性评分呢?

全部评论 (0)

还没有任何评论哟~