基于互信息最大化(Mutual Information Maximization)的无监督跨语言词向量对齐算法详解
1. 题目描述
在许多多语言自然语言处理任务中,我们通常希望将不同语言的词语(或句子)映射到一个统一的语义空间中。这样,即使词语形式不同,语义相近的词在共享空间中的向量表示也会接近,从而可以轻松地进行跨语言检索、翻译或迁移学习。
“基于互信息最大化(Mutual Information Maximization, MIM)的无监督跨语言词向量对齐算法”的目标是:在没有平行语料(例如双语对照句子)的情况下,仅利用两种语言各自的单语语料训练得到的词向量集合,学习一个线性变换矩阵,将一种语言的词向量空间变换到另一种语言的词向量空间,使得两个空间在语义上对齐。
这个过程可以形象地理解为:我们已知英语的词向量空间和中文的词向量空间,但它们各自的坐标轴(基向量)是独立训练得到的,没有对齐。我们需要找到一个“旋转”矩阵,将中文空间旋转到与英文空间对齐,使得语义上对应的词(如“cat”和“猫”)在变换后的空间中尽可能接近。
2. 循序渐进解题过程
步骤一:问题形式化与核心思想
假设我们有两种语言:源语言(Source Language, 如英语)和目标语言(Target Language, 如中文)。
- 源语言词向量集合:
X = {x_i ∈ R^d, i=1...n},其中x_i是英语单词i的d维向量。 - 目标语言词向量集合:
Z = {z_j ∈ R^d, j=1...m},其中z_j是中文单词j的d维向量。通常我们假设两种语言的词向量维度d相同。 - 目标:学习一个线性变换矩阵
W ∈ R^{d×d},使得变换后的源语言向量Wx_i与它对应的目标语言向量z_j(在语义上对应)尽可能接近。核心是,我们不知道哪个x_i对应哪个z_j。
互信息最大化(MIM) 在这里提供了一个巧妙的思路:我们不直接寻找词对之间的配对关系,而是尝试最大化两组向量(集合WX和集合Z)之间的整体互信息。互信息衡量的是,知道一组向量(如WX)的表示后,能减少多少关于另一组向量(Z)的不确定性。最大化互信息,会驱使变换矩阵W将两个向量空间调整到一种状态——源语言空间向量的分布与目标语言空间向量的分布高度一致,即相似的语义结构在两个空间中有相似的几何组织形式。在这种状态下,语义等价的词会自然地在共享空间中被“拉近”。
步骤二:算法推导(核心公式建立)
为了计算两个连续高维向量集合之间的互信息,直接计算是困难的。该算法采用了一种基于噪声对比估计的变分下界方法来最大化互信息。
-
定义联合分布与边缘分布:
- 我们将一个对齐的词对
(Wx, z)视为一个正样本对。在无监督设定下,我们不知道真正的对齐关系。但我们可以构建一个“软对齐”模型。 - 模型定义一个评分函数
s(Wx, z) = (Wx)^T z(即向量点积,衡量余弦相似度)。 - 联合分布
P(Wx, z)可以通过softmax函数建模为:P(z|Wx) = exp(s(Wx, z)) / ∑_{z'∈Z} exp(s(Wx, z'))。这里Z被视为一个离散的词表。 - 然而,为了计算效率,我们通常不计算整个词表的和,而是采用负采样。
- 我们将一个对齐的词对
-
构建互信息下界:
- 两个随机变量
WX和Z之间的互信息I(WX; Z)可以表示为E_{(Wx, z) ~ P_{data}}[log P(z|Wx) / P(z)],其中P_{data}是经验数据分布(即我们认为观察到的(Wx, z)对来自于某个真实的、未知的联合分布),P(z)是z的边缘分布。 - 由于真实后验
P(z|Wx)未知,我们用我们定义的模型P_θ(z|Wx)(参数为θ,这里θ就是变换矩阵W)来近似它。可以推导出,I(WX; Z) >= E_{(Wx,z)}[log P_θ(z|Wx)] + H(Z),其中H(Z)是Z的熵,是一个常数。因此,最大化互信息等价于最大化正样本对的对数似然期望。
- 两个随机变量
-
噪声对比估计目标函数:
- 直接计算
log P_θ(z|Wx)需要对整个目标词表Z做归一化,计算量巨大。因此,我们采用噪声对比估计(NCE)来构造一个可高效计算的目标函数。 - 对于每一个观察到的潜在正样本对
(Wx_i, z_j)(注意,我们依然不知道i和j的对应关系,但我们可以假设从两个集合中随机抽样出来的向量可能构成负样本对),我们将其与K个随机抽取的负样本进行对比。负样本是从目标语言向量集Z中随机抽取的其他向量{z_k}。 - 目标函数是最大化正样本对的评分,同时最小化负样本对的评分。一个标准的形式是InfoNCE损失:
L(W) = -E_{(Wx, z^+)}[log( exp(s(Wx, z^+) / τ) / (exp(s(Wx, z^+) / τ) + ∑_{k=1}^K exp(s(Wx, z_k^-) / τ) ))]
其中:(Wx, z^+)是一个“猜测的”正样本对(如何构建是关键,见步骤三)。{z_k^-}是从目标语言词向量中随机采样的K个向量作为负样本。τ是一个温度超参数,控制分布的尖锐程度。
- 最小化这个损失函数,本质上是训练一个分类器,使其能够从
1+K个候选对中正确识别出那个“真实的”正样本对(Wx, z^+)。当模型学好时,变换W就能使得正样本对的相似度远高于与随机负样本的相似度,从而隐式地对齐了语义空间。
- 直接计算
步骤三:无监督对齐的关键——构造“伪正样本对”
在监督学习中,我们有真实的翻译对(x_i, z_j)。在无监督设置中,我们没有这个。MIM算法巧妙地利用迭代自训练和双向一致性来构造越来越可靠的伪正样本对。
-
初始化:通常使用一个粗略的对齐矩阵初始化
W。经典方法是利用对抗训练的思路,或者使用无监督统计匹配(如将两种语言词向量的均值和协方差矩阵对齐)来获得一个初始的W0。 -
迭代优化:
a. 构建当前批次的候选对齐:对于当前批次中的每个源语言向量Wx_i,在目标语言向量集Z中,找到与其点积(相似度)最高的M个向量(例如M=5或10),称为“最近邻候选”。这构成了一个候选对齐列表。
b. 应用双向一致性过滤:这是提升伪标签质量的关键。我们不仅从源到目标找最近邻,也从目标到源找最近邻。只有当z_j是Wx_i在目标空间中的最近邻之一,并且x_i(或W^{-1}z_j,但更常用原始x_i)也是z_j在源空间中的最近邻之一时,(x_i, z_j)才被认为是一个可靠的、双向一致的伪正样本对。这种方法称为双向最近邻检索或交叉域相似度局部缩放,它能有效过滤掉不可靠的初始匹配。
c. 损失计算与参数更新:用上一步筛选出的高置信度伪正样本对(x_i, z_j),代入到步骤二中InfoNCE损失函数里作为(Wx, z^+),并从目标词向量中随机采样K个其他向量作为负样本{z_k^-}。然后计算损失L(W),并通过梯度下降法(如Adam)更新变换矩阵W。
d. 重复步骤a-c,直到模型收敛。
步骤四:算法总结与评估
整个算法流程可以总结为:
- 输入:两种语言的单语词向量集合
X和Z。 - 初始化:获得一个初步的对齐变换矩阵
W(如通过对抗训练初始化)。 - 迭代优化:
- 利用当前的
W,通过双向最近邻检索,为一批x_i构建高置信度的伪目标词z^+。 - 将
(Wx_i, z^+)作为正样本,随机采样的K个z_k作为负样本,计算InfoNCE损失。 - 反向传播,更新
W。
- 利用当前的
- 输出:训练得到的线性变换矩阵
W。对于任何新的源语言词向量x_new,其在对齐空间中的表示为W * x_new,可以直接与目标语言词向量z进行相似度比较。
评估:通常使用双语词典归纳任务进行评估。即,给定一个英语单词列表和其正确的中文翻译列表,用训练好的W变换英语词向量,然后在中文词向量空间中检索最近邻。Top-1准确率(最相似的词就是正确答案的比例)和Top-5准确率是常用指标。
核心优势:该方法完全无需平行语料,仅利用单语词向量的分布特性,通过最大化两个向量集合之间的互信息,并结合迭代自训练与双向一致性验证,实现了有效的无监督跨语言词向量对齐。