结构化隐变量与变分推理技术解析
1. 结构化隐变量概述
结构化隐变量在自然语言处理中具有重要作用。例如在IBM模型1里,翻译对之间的对齐可建模为隐变量,该隐变量包含多个元素,每个元素表示源词和目标词之间的对齐关系,由于这些对齐链接相互关联,所以隐变量是结构化的。除了对齐,像隐序列、树和图等也是结构化隐变量的例子。
使用结构化隐变量是向神经网络模型引入结构偏差的有效方法。以隐树为例,在许多自然语言处理任务中,将句子的句法作为特征考虑是有益的。获取句子句法树的一种方法是使用现成的解析器,但解析错误可能会对情感分类器产生负面影响。另一种解决方案是在模型训练时联合学习特定任务的隐句法树,这种方法除了避免错误传播外,还有一些潜在优势,比如不依赖手动标注的资源来训练解析器,并且诱导出的隐树是针对最终任务目标进行优化的,可调整以实现更好的端到端性能。
2. 引入结构化隐变量
形式上,设输入句子表示为 (X),其中每个 (x_i) 是对应输入词的向量表示,它可以是序列编码网络(如双向RNN或SAN)的输出隐藏表示向量,隐变量为 (Z),表示某种结构。
给定 (X),我们可以通过建模 (P(Z|X;Θ)) 来计算 (Z) 的分布,其中 (Θ) 是神经网络模型的参数。对于结构 (Z) 的每个值,我们使用神经网络函数 (f(X,Z)) 对原始输入 (X) 和隐变量 (Z) 进行编码,得到一个密集特征向量。这里 (f) 也称为注释函数,它给出一个隐特征。我们可以对注释函数关于隐变量 (Z) 的后验分布取期望,得到上下文向量 (c):
[c = E_{Z \sim P(Z|X;Θ)}[f(X,Z)]]
(c) 可以是标量或密集向量。
超级会员免费看
订阅专栏 解锁全文
39

被折叠的 条评论
为什么被折叠?



