自然语言理解与行业知识图谱:概念、方法与工程落地
上QQ阅读APP看书,第一时间看更新

3.2.3 语料采样

上述语料库搭建完成后,需要从中进行语言特征样本选择,为后续机器学习方法提供数据支持。过小的标注样本集或标注存在偏差都会导致过拟合或错拟合。因此,采样问题必须重视。“静态”低维随机现象容易在一定的概率分布中获取大量样本,而在高维空间也遇到一些问题。因为很难精确获得语料总体概率分布,难以找不到非常合适的可采样分布,并保证采样效率以及精准度。一般来说,采样的目的是评估某个语言现象函数表示在某个分布上的期望值,因此常常采用推断方法近似求解。实际应用中,常常采用蒙特卡洛随机采样法来实现。假设样本用随机变量X表示,当分布函数P(X)非常复杂且难以直接采样的情况下,采用间接采样策略,即通过一个容易采样的分布函数Q(X),以一定筛选机制获得符合P(X)的样本。常见的策略包括拒绝采样、重要性采样、马尔可夫链蒙特卡洛采样(Markov Chain Monte Carlo, MCMC)等。下面我们重点介绍适用于文本任务中高维变量采样的MCMC方法。

MCMC原理在于构造平稳分布P(X)的马尔可夫链(Markov Chain, MC),用MC(P)表示,也被称为马氏链,并且马尔可夫链的状态转移分布是容易采样的。对于文本序列而言,如果想在某个分布P(X)下进行采样,只需要构造一个转移矩阵为P的马尔可夫链,获取该马氏链的平稳分布P(X),最后进行随机采样。假设样本X={x0, x1, x2,...},MCMC方法从任意一个初始状态x0出发,首先设法构造一个马尔可夫链,转移概率满足如下马尔可夫假设:

第n+1次采样依赖于第n次采样和状态转移分布。这里马尔可夫链转移概率的构造至关重要,不同的构造方法将产生不同的MCMC算法。如果马氏链在第n步已经收敛至平稳分布P(X),那么状态平稳时采样的样本X就服从P(X)分布,从而基于这些样本来估计P(X)分布。

MCMC中最常见两种采样算法分别是Metropolis-Hastings(MH)和吉布斯(Gibbs)采样。由于马尔可夫链状态转移分布的平稳分布往往不是P(X),MH算法引入拒绝采样思想进行修正使得最终采样分布为P(X)。由于吉布斯采样对高维特征具有优势,目前MCMC通常采用这一方法。首先对独立同分布数据进行蒙特卡洛模拟,然后吉布斯采样则基于坐标轴轮换,随机选择某一个坐标轴进行状态转移,即固定n-1个状态特征,对最后的状态特征进行采样,进行多次MCMC,每次MCMC的第n个状态作为一个样本。具体流程如下:

随机初始化样本集{x1, x2,..., xn};

对每一个时刻t=0,1,2,...进行循环采样,得到

以上算法收敛后,采样得到的样本符合给定的概率分布p(x)。MCMC采样不满足样本独立同分布假设,相邻采样高度相关。因此,通常在保证平稳状态的情况下进行有间隔地随机游走采样,当间隔足够大时,可以认为样本满足独立性假设。上述流程的实现,使得MCMC成为很多文本任务中的主流采样方法。