计量统计 · 2026-09-04

最优传输:用搬土的代价量分布的距离

从 Monge 的土方难题到 Sinkhorn 的熵正则化,再到专利语义非典型性的非参数裁判

比较两组数字的均值,t 检验一行代码;比较两个完整的分布,工具箱立刻变窄——要么预设形状,要么被维度打败。最优传输给出第三条路:把一个分布看成土,另一个看成坑,问"搬过去最少花多少运费"。加上熵正则化之后,这把尺子算得飞快,还能给单条观测打出"不合群"的分数。

实证研究经常要回答同一个句式的问题:"这两组东西是不是来自同一个世界?"政策评估要看处理组与控制组的协变量分布是否平衡,风险管理要看危机前后损失分布的整条尾巴,文本测量要判断一篇专利的摘要向量离它所在领域的历史有多远。这些问题里,"均值差多少"只回答了问题的一角。

现成的工具各有一扇打不开的门。KS 检验能看整个分布,但基本只活在一维;核密度估计把"不预设形状"的承诺带进了高维,代价是维数灾难和没有解析解的带宽;上一篇博客讲的马氏距离干脆利落,量尺随协方差变形,还有卡方分布撑腰的概率口径——但它把参考组压成一个椭球,椭球不合身时,一切解释都要打折。

最优传输(optimal transport, OT)走第三条路:不谈均值,不谈形状,直接问一句工地方言——把一堆土搬进一堆坑,最少花多少运费?运费本身就是距离。这个问题 1781 年由 Monge 提出,1942 年被 Kantorovich 用线性规划驯服,后来帮他分享了 1975 年诺贝尔经济学奖;2013 年 Cuturi 给目标函数加了一项熵正则,配合复活的 Sinkhorn 算法,OT 从此进入机器学习与高维测量的主流工具箱。本文尝试把这个链条讲清楚:从匹配矩阵到熵正则化,从行列交替缩放到给单条观测打分——也就是熵正则化的最优分布匹配(distribution matching, DM)方案——最后看它在一项专利文本研究里如何充当"不预设形状的裁判"。

一、搬土问题:比较分布就是规划运输

1781 年,法国数学家 Monge 在一篇关于挖方与填方(déblais et remblais)的论文里提出土方问题:若干处挖出的土要运去填若干处坑,土方量与两地间的运输单价都已知,怎样安排运输使总运费最小?Monge 的版本要求每堆土整体运往一个坑,这个组合约束让问题悬了两百年没有好解法。

1942 年,Kantorovich 做了一个看似只是技术性的放松:允许一堆土拆开,分别运往不同的坑。松弛之后,一个"搬运方案"不再是一张一对一的指派表,而是一张带权重的匹配矩阵——这恰好是一个联合分布,"分布匹配"这个名字就从此而来。放松后的问题变成线性规划,Kantorovich 为此发展的方法成为线性规划与资源最优配置理论的基石之一。

把语言换成样本。设一侧有 nn 个历史样本 x1,…,xnx_1,\dots,x_n(比如某技术领域历年专利的嵌入向量,每个是 dd 维),另一侧有 mm 个样本 y1,…,ymy_1,\dots,y_m。两边的等权经验分布(empirical distribution)是

P^=1n∑i=1nδxi,Q^=1m∑j=1mδyj\hat{P}=\frac{1}{n}\sum_{i=1}^{n}\delta_{x_i},\qquad \hat{Q}=\frac{1}{m}\sum_{j=1}^{m}\delta_{y_j}

其中 δx\delta_{x} 是点质量(Dirac mass):全部概率押在点 xx 上的分布;权重 pi=1/np_i=1/n、qj=1/mq_j=1/m。再给一张价目表,叫地面代价(ground cost)

Cij=c(xi,yj)=∥xi−yj∥2C_{ij}=c(x_i,y_j)=\lVert x_i-y_j\rVert^{2}

即一单位质量从 ii 运到 jj 的运费。它是这把尺子的灵魂:平方欧氏、余弦、马氏白化都可以,换代价就是换量纲——这一点后面还会回来。

搬运方案 γ\gamma 是一个 n×mn\times m 的非负矩阵,γij\gamma_{ij} 表示从 ii 运往 jj 的份额。可行方案必须把土全部运走、把坑全部填满:

Π(P^,Q^)={γ≥0: ∑jγij=pi,  ∑iγij=qj}\Pi(\hat{P},\hat{Q})=\Bigl\{\gamma\ge 0:\ \sum_{j}\gamma_{ij}=p_i,\ \ \sum_{i}\gamma_{ij}=q_j\Bigr\}

行和锁死源分布、列和锁死目标分布,这两条合称边际约束(marginal constraints)。最优传输距离,就是所有可行方案里的最小总运费:

W(P^,Q^)=min⁡γ∈Π(P^,Q^) ⟨γ,C⟩,⟨γ,C⟩=∑i=1n∑j=1mγij CijW(\hat{P},\hat{Q})=\min_{\gamma\in\Pi(\hat{P},\hat{Q})}\ \langle\gamma,C\rangle,\qquad \langle\gamma,C\rangle=\sum_{i=1}^{n}\sum_{j=1}^{m}\gamma_{ij}\,C_{ij}

⟨γ,C⟩\langle\gamma,C\rangle 读作两个矩阵的内积:逐格相乘再求和,就是总运费。取平方欧氏代价、再对距离取平方根,这个量就是文献里的 Wasserstein 距离;图像检索社区叫它搬土距离(earth mover's distance)。可以证明它在分布空间上满足距离公理(非负、对称、三角不等式),拿它当"分布之间的距离"用,名正言顺。

搬土问题的二部图与对应的匹配矩阵:连线粗细与格子深浅表示运量
图 1 · 搬运方案的两种写法。左:土堆 A/B/C(质量 p)运往工地 ①–④(需求 q),连线越粗运量越大;右:同一个方案的匹配矩阵 γ,行和锁定 p、列和锁定 q,总运费 = Σ γᵢⱼ·Cᵢⱼ。
这套数学与经济学的关系比"比喻"深得多。Kantorovich 线性规划的对偶变量就是影子价格:运费最省的搬运方案,恰好由一组"搬运均衡价格"支撑。劳动匹配、婚姻匹配、hedonic 定价市场的均衡,后来都被证明与 OT 是同一份数学。你记住一句就够:OT 的解自带对偶解释,这是它区别于"随手定义一个分布差异指标"的地方。

二、熵正则化:既省运费,又别太较真

精确 OT 在教科书里优雅,在数据里难缠。第一,它是一个线性规划,通用算法没有快解,两边各一万样本时,代价矩阵就有一亿格。第二,线性规划的最优解偏爱可行域的角点——对应"一对一"的硬匹配,参考集换掉几个样本,整张配对表可能翻掉,一副过拟合的做派。第三,它不可微,嵌不进后来主导机器学习的梯度世界。

Cuturi(2013)的修法只有一行:在目标函数里加一项熵惩罚,

Wε(P^,Q^)=min⁡γ∈Π(P^,Q^) ⟨γ,C⟩+ε∑i,jγijlog⁡γijW_\varepsilon(\hat{P},\hat{Q})=\min_{\gamma\in\Pi(\hat{P},\hat{Q})}\ \langle\gamma,C\rangle+\varepsilon\sum_{i,j}\gamma_{ij}\log\gamma_{ij}

第一项是原来的总运费;第二项是熵惩罚,ε>0\varepsilon>0 是熵强度(Cuturi 原式在 log⁡γij\log\gamma_{ij} 后还减一个 1,因 ∑γij=1\sum\gamma_{ij}=1 固定,那只是不改变最优解的常数平移)。它的工作方式值得拆开看:γij\gamma_{ij} 都在 0 与 1 之间,函数 tlog⁡tt\log t 在这个区间取负值,而且质量摊得越开、总和越负。一对一的硬匹配,少数格子接近满额、其余为零,这一项浅得几乎探测不到;摊开的软匹配,满表都是小数,这一项显著下沉。于是"最小化运费加 ε\varepsilon 倍熵惩罚"就是在讨价还价:既想运费省,又想把质量摊开。

摊开有什么好处?设想参考集里混着几条近乎重复的历史专利:硬匹配会把全部质量押给"最像"的那一两条,分数被个别样本绑架;熵惩罚强迫质量分散到一片邻域,小样本领域稳健得多——这与岭回归把系数往零收缩、防止被少数观测带跑,是同一种防过拟合直觉。当两边都是等权经验分布时,熵惩罚还有个漂亮的等价写法:把 γ\gamma 拉向"完全随机配对"的基准方案 p q⊤p\,q^{\top},用 KL 散度计罚,偏离越远罚得越重。

加了熵之后,最优方案有了解析形状:

γ ε=diag⁡(u) K diag⁡(v),Kij=exp⁡ ⁣(−Cijε)\gamma^{\,\varepsilon}=\operatorname{diag}(u)\,K\,\operatorname{diag}(v),\qquad K_{ij}=\exp\!\Bigl(-\frac{C_{ij}}{\varepsilon}\Bigr)

KK 是把负代价指数化后的"亲近度核"(代价越小越亲),uu 与 vv 是分别作用于行与列的缩放系数,diag⁡(⋅)\operatorname{diag}(\cdot) 表示把它们摆到对角阵上做逐行逐列缩放。ε\varepsilon 在这里扮演温度:温度低,核尖锐,匹配凝固成一对一;温度高,核平坦,谁都跟谁都有一点匹配。

两个 5x5 匹配矩阵的对比:小熵时质量集中成置换矩阵,大熵时质量弥漫全表
图 2 · 熵强度的"温度"效应。左:小 ε,最优方案退守到近似一对一的角点,对样本抖动敏感;右:大 ε,质量摊满全表,方案平滑稳定,但偏离了真 OT 的量(熵偏置)。

三、Sinkhorn 迭代:用除法解出来的算法

剩下的问题是 γε\gamma^{\varepsilon} 怎么算。Sinkhorn 在 1964 年证明了一个矩阵论定理:任何全正矩阵都能通过交替的行缩放与列缩放,变成唯一的指定行列和的矩阵。把它套到上面的核上,算法本身就是三行话:

  1. 初始化:算出核 K=exp⁡(−C/ε)K=\exp(-C/\varepsilon),全为正数;
  2. 行归一化:每一行除以自己的行和,此刻行和精确等于 pip_i;
  3. 列归一化:每一列除以自己的列和,此刻列和精确等于 qjq_j——但行和又被破坏了;
  4. 交替执行第 2、3 步,直到行、列边际同时满足,得到 γε\gamma^{\varepsilon}。

每一步只是逐行逐列做除法,没有通用线性规划的内点法开销,天然适合并行;两边各上万样本的规模,GPU 上毫秒级出结果。这个 1964 年的老定理,就这样在 2013 年之后成了机器学习的标准零件。要付的账只有一笔:ε\varepsilon 越大,熵把方案摊得越开,得到的量偏离真 OT 越远——好在有现成的去偏公式,见第六节。

Sinkhorn 迭代示意:初始化核、行归一化、列归一化交替循环
图 3 · Sinkhorn 迭代。行缩放让行和等于 p(绿色),列缩放让列和等于 q(绿色),但每做一步另一边的边际就被打破(灰色),于是交替往复直到两边同时成立。

图看完,数字走一遍。设两个仓库 A、B 各有 0.5 单位的土要运往三个工地 ①②③,各需 1/31/3;熵强度取 ε=1\varepsilon=1。运价表(行 = 仓库,列 = 工地)与由此算出的亲近度核为

C=[123211]⟹K=exp⁡(−C)=[0.3680.1350.0500.1350.3680.368]C=\begin{bmatrix}1&2&3\\2&1&1\end{bmatrix}\qquad\Longrightarrow\qquad K=\exp(-C)=\begin{bmatrix}0.368&0.135&0.050\\0.135&0.368&0.368\end{bmatrix}

运价 1 的格子亲度 0.368,运价 2 的 0.135,运价 3 的 0.050。现在交替缩放,每一步的方案与两组边际如下(保留三位小数;目标行和各 0.500,目标列和各 0.333,加粗表示达标):

阶段方案 γ(上行 = A,下行 = B;列 = ①②③)行和列和
初始化 γ=K\gamma=K0.368 · 0.135 · 0.050
0.135 · 0.368 · 0.368
0.553 / 0.8710.503 / 0.503 / 0.418
第 1 轮 · 行缩放后0.333 · 0.122 · 0.045
0.078 · 0.211 · 0.211
0.500 / 0.5000.410 / 0.334 / 0.256
第 1 轮 · 列缩放后0.270 · 0.122 · 0.059
0.063 · 0.211 · 0.275
0.451 / 0.5490.333 / 0.333 / 0.333
第 2 轮 · 行缩放后0.300 · 0.136 · 0.065
0.058 · 0.192 · 0.250
0.500 / 0.5000.357 / 0.328 / 0.315
第 2 轮 · 列缩放后0.280 · 0.138 · 0.069
0.054 · 0.196 · 0.265
0.486 / 0.5140.333 / 0.333 / 0.333
收敛解 γ ε\gamma^{\,\varepsilon}0.283 · 0.144 · 0.073
0.050 · 0.189 · 0.260
0.500 / 0.5000.333 / 0.333 / 0.333

两个细节值得盯住。其一,每次行缩放让行和精确归位,列和随即漂移;每次列缩放让列和归位,行和又漂——但漂移逐轮收窄:行和的最大偏差从 0.049 缩到 0.014,再一轮到 0.004,趋于零。图 3 那个循环箭头,落到数字上就是这张表。其二,收敛方案把大质量放给低运价格(A→① 得 0.283,B→③ 得 0.260),但没有任何格子归零——运价最高的 A→③ 也分到 0.073。

拿它对照精确解,更能看清熵的作用。线性规划给出的硬解是 [1/31/6001/61/3]\begin{bmatrix}1/3&1/6&0\\0&1/6&1/3\end{bmatrix}:A→③ 被压成零,纯运费 7/6≈1.1677/6\approx1.167;熵正则解的纯运费 ⟨γ ε,C⟩=1.340\langle\gamma^{\,\varepsilon},C\rangle=1.340,多出的 0.17 就是"把质量摊开"的代价,也正是第六节去偏公式要处理的熵偏置。顺带认一个口径:文献里的"Sinkhorn 距离"多数指平滑方案的纯运费 ⟨γ ε,C⟩\langle\gamma^{\,\varepsilon},C\rangle(Cuturi 的原定义即如此),含熵项的目标值本身可正可负、不是距离,引用时看清楚口径即可。

最后换个角色重跑这张表:仓库换成两篇待评估摘要(各 0.5 质量),工地换成三篇历史参考专利(各 1/31/3 质量),算出来的就是一次分布匹配;把这一步嵌进估计、校准、评估的三段时序,就是第四节 DM 的实现现场。

四、给一份专利打分:DM 方案

现在回到文本测量。我们正在进行的一项工作论文研究专利摘要的语义非典型性:每篇摘要过一个编码器得到 dd 维嵌入,再作 L2 归一化落到单位球面上(为什么归一化,上一篇讲过)。对每个技术领域 cc 和年份 tt,只用 t−3t-3 年及更早的历史专利构造估计集 EctE_{ct},其等权经验分布就是"参考云" Q^ct\hat{Q}_{ct}。一篇待评估专利 x~i\tilde{x}_i 的 DM 分数定义为

DMi,ct=Wε(δx~i, Q^ct),Q^ct=1∣Ect∣∑j∈Ectδx~jDM_{i,ct}=W_\varepsilon\Bigl(\delta_{\tilde{x}_{i}},\ \hat{Q}_{ct}\Bigr),\qquad \hat{Q}_{ct}=\frac{1}{|E_{ct}|}\sum_{j\in E_{ct}}\delta_{\tilde{x}_{j}}

δx~i\delta_{\tilde{x}_i} 是把全部质量押在这一篇专利上的单点分布。直译过来:把这一单位质量搬进历史云、经熵平滑后的最小期望运费。项目里地面代价取球面上的平方欧氏距离 ∥x~a−x~b∥2=2(1−cos⁡(x~a,x~b))\lVert\tilde{x}_a-\tilde{x}_b\rVert^{2}=2\bigl(1-\cos(\tilde{x}_a,\tilde{x}_b)\bigr),即余弦相似度的单调改写。分数越高,意味着云里几乎没有它的近邻——语义上越"出格"。

DM 打分示意:云内典型专利搬运箭头短而密,云外非典型专利箭头长而贵
图 4 · DM 打分的两种命运。左:落在云内的典型专利,近邻又多又近,平均运费小;右:落在云外的非典型专利,每条搬运路线都又长又贵,平均运费大。虚线椭圆是参考云的等高线。

两个工程细节与上一篇的马氏流水线完全同构。其一,熵强度 ε\varepsilon 不许碰评估数据:只在估计集上、按"家族块重抽样下分数秩稳定性"在网格里挑选。其二,原始 DM 分数跨领域不可比——不同领域的参考云松紧不同——要用独立的校准集换算成领域内百分位。评估集自始至终只被打分,不参与任何参数与超参数的选择。估计、校准、评估三段时序分离,是这条流水线的纪律底线。

有一个值得知道的退化性质:把单点分布当作被搬运的一侧时,边际约束其实把方案钉死了——全部质量必须按 qjq_j 精确分给每个参考点,可行集里只剩一个 γ\gamma。此时 DM 分数退化为"到参考云的平均运费"(熵项是与 x~i\tilde{x}_i 无关的常数)。有个干净的高斯对照可以验证这件事:
W22(δx, N(μ,Σ))=∥x−μ∥2+tr⁡(Σ)W_2^{2}\bigl(\delta_{x},\ \mathcal{N}(\mu,\Sigma)\bigr)=\lVert x-\mu\rVert^{2}+\operatorname{tr}(\Sigma)
右边第二项是协方差矩阵的迹,对同一领域的所有专利是同一个常数,不参与排序;真正起作用的是到均值 μ\mu 的欧氏距离。这个退化告诉我们两件事:OT"适应任意形状"的魔法,在分布对分布的比较里最充分;给单点打分时,量尺几乎完全由地面代价决定——欧氏代价不加权,马氏白化代价则能把协方差加权带进来。它也顺手解释了第五节会看到的现象:DM 对表层扰动(套话、模板)比马氏分数更敏感,因为没有人替它压低那些维度。想让单点分数更"OT 化",路线有三条:白化地面代价、改成批次对批次的分布比较、或用放松边际约束的部分传输。

五、裁判与主队:DM 与马氏距离的分工

同一条生产线上养两把尺子,不是冗余,是分工。工作论文的主指标是条件马氏语义分数(CMSS):平方马氏距离配上卡方概率解释,能说出"在领域历史里随机抽一篇,语义偏离比这篇更极端的概率是多少"。审稿人对任何参数方法的第一问永远是:结论是不是分布假设的产物?DM 的角色就是那个不预设形状的裁判——它不假设高斯,若结论在 DM 口径下依然成立,就不能再说成椭球的错觉。

马氏距离(CMSS 一族)熵正则 OT(DM)
分布假设近似多元高斯,可用参与比等工具审计完全不预设形状
概率解释平方马氏服从卡方分布,有解析尾部概率无分布律,百分位须事后校准
超参数Ledoit–Wolf 收缩有解析最优强度熵强度 ε 需在估计集内调参
计算成本低:均值与协方差一次算清高:Sinkhorn 迭代加分层抽样
量尺协方差白化,自动压低套话维度地面代价不加权,对表层扰动更敏感

初步结果(工作论文)支持这套分工:CMSS-DM 与主分数的秩相关很高、结论方向一致,说明主结论不依赖高斯形状;两者同时放进预测模型,判别力还略有提升,说明两把尺子各有各的信息。方法论上这是一条通用准则:好的实证不是找到唯一"最强"的指标,而是证明结论在换一把量尺之后依然站着。

六、使用注意

OT 不是免费午餐。把它带进实证之前,至少要知道下面五件事。
  1. ε 的纪律。只能在估计/训练段选择,评估数据一概不碰;两端都有坑——ε 过大,分数滑向"平均运费",退化为均值距离;ε 过小,指数核下溢、数值不稳。稳妥做法是相对代价的中位数取网格,并报告各领域实际使用的中位数。
  2. 熵偏置要校正。熵会把量系统性带离真 OT,标准修正是去偏 Sinkhorn 散度:
    Sε(P,Q)=Wε(P,Q)−12Wε(P,P)−12Wε(Q,Q)S_\varepsilon(P,Q)=W_\varepsilon(P,Q)-\tfrac{1}{2}W_\varepsilon(P,P)-\tfrac{1}{2}W_\varepsilon(Q,Q)
    自配对项 Wε(P,P)W_\varepsilon(P,P) 与 Wε(Q,Q)W_\varepsilon(Q,Q) 扣掉"自己搬自己"也要付的熵开销,SεS_\varepsilon 非负且更接近真距离(Feydy et al., 2019)。
  3. 算力不是免费的。代价矩阵是 n×mn\times m:一万对一万就是一亿格。分层抽样是常规解——对超大估计集按领域-年份分层抽取参考点,校准与评估共用同一样本集与随机种子,保证内部一致与可复现;Python 生态有 POT 与 GeomLoss 两个现成库。
  4. 没有免费的概率解释。DM 分数无分布律,跨领域可比性完全依赖校准集的百分位换算——校准集的选择成了新的自由度,必须与 ε\varepsilon 一样纳入防泄漏纪律。
  5. 高维里参考云天然稀疏。维度诅咒在这里换了副面孔回来:不是估计不动,而是云本身稀疏,抽样波动直接进分数。种子要存档;若希望量尺继承协方差结构,把地面代价换成马氏白化版本——上一篇博客与这一篇,在这里合流。

小结

三步走:OT 把"比较分布"变成"规划运输",代价矩阵加边际约束给出 Wasserstein 距离;熵正则化把硬匹配软化成可微、可并行、抗样本抖动的 Sinkhorn 距离;单点对分布的特例——DM 方案——给"这条观测有多不合群"一个不预设形状的分数,代价是失去解析概率解释,换来的是当裁判的资格。对做实证的人,这一族工具的位置很清楚:它站在"只看均值的 t 检验"与"预设椭球的参数距离"之间,是分布比较的第三条路;用它打分时,防泄漏纪律与校准纪律一根都不能少。

延伸阅读:《马氏距离:把斜的空间拉直再量》讲量尺如何随协方差变形;两篇合读,正好覆盖专利语义非典型性这套测量的两半。

参考资料

  1. Kantorovich, L. V. (1942/1958). On the translocation of masses. Management Science, 5(1), 1–4(俄文原文的英译). — doi.org/10.1287/mnsc.5.1.1
  2. Sinkhorn, R. (1964). A relationship between arbitrary positive matrices and doubly stochastic matrices. Annals of Mathematical Statistics, 35(2), 896–900. — doi.org/10.1214/aoms/1177703591
  3. Cuturi, M. (2013). Sinkhorn distances: Lightspeed computation of optimal transport. NeurIPS 26. — arxiv.org/abs/1306.0895
  4. Feydy, J., Séjourné, T., Vialard, F.-X., et al. (2019). Interpolating between optimal transport and MMD using Sinkhorn divergences. AISTATS, PMLR 89. — arxiv.org/abs/1810.08278
  5. Peyré, G., & Cuturi, M. (2019). Computational Optimal Transport. Foundations and Trends in Machine Learning. — arxiv.org/abs/1803.00567
  6. Flamary, R., et al. (2021). POT: Python Optimal Transport. Journal of Machine Learning Research, 22(78), 1–8. — jmlr.org/papers/v22/20-451.html

评论

加载中…

0 / 500