知识感知双流解码的中文故事生成框架
1 模型结构与训练
1.1 编码器与解码器
在故事生成模型中,编码器的初始隐藏状态通过嵌入操作得到:
[h_N^0 = Embedding(N)]
后续隐藏状态由编码器块生成:
[h_N^r = EncoderBlock(h_N^{r - 1}), r \in {1, \ldots, u}]
这里,(h_N^0) 是编码器的初始隐藏状态,编码器块会执行多头注意力和前馈操作,生成一组隐藏状态表示 (H_N = {h_N^0, h_N^1, \ldots, h_N^u})。
解码器以故事 (S) 的嵌入和隐藏表示 (H_N) 为输入,生成一组隐藏表示 (H_S = {h_S^0, h_S^1, \ldots, h_S^v})。解码器的隐藏状态通过以下方式计算:
[h_S^0 = Embedding(S)]
[h_S^d = DecoderBlock(h_S^{d - 1}, H_N), d \in {1, \ldots, v}]
最后,使用 softmax 函数计算下一个标记在目标词汇表上的概率分布:
[P(t) = Softmax(h_S^v W_e^T)]
其中,(h_S^0) 是解码器的初始隐藏状态,(v) 表示解码器块的数量,(W_e^T) 是故事 (S) 的转置嵌入矩阵。
1.2 训练过程
训练阶段从使用 LongLMbase 参数初始化框架开始,然后通过最小化交叉熵损失进行微调:
[L = - \sum_{n = 1}^{G} \log P(t_n|t_{<n}, N)]
其