Chinese Poetry Generation with Recurrent Neural Networks

[ 论文阅读地址 ]

1. 问题描述

输入

  古诗的第一句话。

输出

  古诗剩余的句子。

2. 模型

输入

  首先构造词典集,然后使用词典中的词语,生成所有满足音韵约束的可能的组合。之后使用语言模型,对所有生成的候选项进行打分,选取打分最高的作为古诗的第一句。作者使用了基于单个字符的RNN网络加上Kneser-Ney trigram来作为语言模型(避免了对古诗的分词)。

目标

  对于行 Si+1=w1,w2,,wm ,给定所有之前的行 S1:i 时,预测:

P(Si+1|S1:i)=j=1m1P(wj+1|w1:j,S1:i)

结构

主要流程

viujiP(wj+1|w1:j,S1:i)=CSM(Si)=RCM(v1:i,j)=RGM(w1:j+1,u1:ji)

Convolutional Sentence Model (CSM)

  网络的第一层,输入是一行古诗,输出是其句子向量。所有类似的模型都可以采用,作者使用的是CSM模型,因为其使用的是单个字符而不是词语。
  网络结构:

网络结构

  对于上述网络:
\begin{align}
T_{:,j}^{l+1} &= \sigma(\sum_{i=1}^nT_{:,j+i-1}^l\odot C_{:,i}^{l,n})\\
N^{l+1}&=N^l-n+1\\
1 &\leq j \leq N^{l+1}\\
T^1 &= [L\cdot e(w_1), L\cdot e(w_2), \dots , L\cdot e(w_m)]\\
N^1 = m
\end{align}

  其中:

  • Nl 是上图中第 l 层的节点个数。
  • q 是隐含层的节点个数,即隐空间的维度。
  • n 表示当前层(第l 层)计算下一层时使用的节点数量。
  • TlRq×Nl 是上图中第 l 层的表示。
  • Cl,nRq×n 是一个权重矩阵,用于将第 l 层的n个节点计算出 l+1 层的一个节点的值。
  • 是按元素的向量乘法。
  • σ 是非线性函数。
  • w 是词典中的一个词语。
  • e(w)R|V|×1 是w的独热码(one-hot)。
  • LRq×|V| 是转换矩阵,矩阵的每一列都是一个字符向量。

Recurrent Context Model (RCM)

  网络结构:

这里写图片描述

  表达式:
这里写图片描述

  其中:

  • q 是隐含层的节点个数,即隐空间的维度。
  • hiRq×1 ,隐层状态。
  • viRq×1 ,CSM模型的输出,即第 i 行句子的向量表示。
  • MRq×2q 权重矩阵。
  • UjRq×q 权重矩阵。
  • ujiRq×1 输出。
  • σ 非线性函数。
  • m 是当前行的字符个数。

Recurrent Generation Model (RGM)

  网络结构:

这里写图片描述

  表达式:
这里写图片描述

  其中:

  • q 是隐含层的节点个数,即隐空间的维度。
  • riRq×1 ,隐含层的状态。
  • ujiRq×1 ,RCM网络的输出。
  • yjR|V|×1 ,RGM网络的输出。
  • w 是词典中的一个词语。
  • e(w)R|V|×1 是w的独热码(one-hot)。
  • RRq×q
  • XRq×|V|
  • HRq×q
  • YR|V|×q
  • σ 非线性函数。
      网络最后的输出采用 softmax 进行激活,即:
    P(wj+1=k|w1:j,uji)=exp(yj+1,k)|V|k=1exp(yj+1,k)

损失函数

  网络的目标函数采用交叉熵损失:预测的字符和语料中实际字符的交叉熵。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值