实证研究经常要回答同一个句式的问题:"这两组东西是不是来自同一个世界?"政策评估要看处理组与控制组的协变量分布是否平衡,风险管理要看危机前后损失分布的整条尾巴,文本测量要判断一篇专利的摘要向量离它所在领域的历史有多远。这些问题里,"均值差多少"只回答了问题的一角。
现成的工具各有一扇打不开的门。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 为此发展的方法成为线性规划与资源最优配置理论的基石之一。
把语言换成样本。设一侧有 个历史样本 (比如某技术领域历年专利的嵌入向量,每个是 维),另一侧有 个样本 。两边的等权经验分布(empirical distribution)是
其中 是点质量(Dirac mass):全部概率押在点 上的分布;权重 、。再给一张价目表,叫地面代价(ground cost)
即一单位质量从 运到 的运费。它是这把尺子的灵魂:平方欧氏、余弦、马氏白化都可以,换代价就是换量纲——这一点后面还会回来。
搬运方案 是一个 的非负矩阵, 表示从 运往 的份额。可行方案必须把土全部运走、把坑全部填满:
行和锁死源分布、列和锁死目标分布,这两条合称边际约束(marginal constraints)。最优传输距离,就是所有可行方案里的最小总运费:
读作两个矩阵的内积:逐格相乘再求和,就是总运费。取平方欧氏代价、再对距离取平方根,这个量就是文献里的 Wasserstein 距离;图像检索社区叫它搬土距离(earth mover's distance)。可以证明它在分布空间上满足距离公理(非负、对称、三角不等式),拿它当"分布之间的距离"用,名正言顺。
二、熵正则化:既省运费,又别太较真
精确 OT 在教科书里优雅,在数据里难缠。第一,它是一个线性规划,通用算法没有快解,两边各一万样本时,代价矩阵就有一亿格。第二,线性规划的最优解偏爱可行域的角点——对应"一对一"的硬匹配,参考集换掉几个样本,整张配对表可能翻掉,一副过拟合的做派。第三,它不可微,嵌不进后来主导机器学习的梯度世界。
Cuturi(2013)的修法只有一行:在目标函数里加一项熵惩罚,
第一项是原来的总运费;第二项是熵惩罚, 是熵强度(Cuturi 原式在 后还减一个 1,因 固定,那只是不改变最优解的常数平移)。它的工作方式值得拆开看: 都在 0 与 1 之间,函数 在这个区间取负值,而且质量摊得越开、总和越负。一对一的硬匹配,少数格子接近满额、其余为零,这一项浅得几乎探测不到;摊开的软匹配,满表都是小数,这一项显著下沉。于是"最小化运费加 倍熵惩罚"就是在讨价还价:既想运费省,又想把质量摊开。
摊开有什么好处?设想参考集里混着几条近乎重复的历史专利:硬匹配会把全部质量押给"最像"的那一两条,分数被个别样本绑架;熵惩罚强迫质量分散到一片邻域,小样本领域稳健得多——这与岭回归把系数往零收缩、防止被少数观测带跑,是同一种防过拟合直觉。当两边都是等权经验分布时,熵惩罚还有个漂亮的等价写法:把 拉向"完全随机配对"的基准方案 ,用 KL 散度计罚,偏离越远罚得越重。
加了熵之后,最优方案有了解析形状:
是把负代价指数化后的"亲近度核"(代价越小越亲), 与 是分别作用于行与列的缩放系数, 表示把它们摆到对角阵上做逐行逐列缩放。 在这里扮演温度:温度低,核尖锐,匹配凝固成一对一;温度高,核平坦,谁都跟谁都有一点匹配。
三、Sinkhorn 迭代:用除法解出来的算法
剩下的问题是 怎么算。Sinkhorn 在 1964 年证明了一个矩阵论定理:任何全正矩阵都能通过交替的行缩放与列缩放,变成唯一的指定行列和的矩阵。把它套到上面的核上,算法本身就是三行话:
- 初始化:算出核 ,全为正数;
- 行归一化:每一行除以自己的行和,此刻行和精确等于 ;
- 列归一化:每一列除以自己的列和,此刻列和精确等于 ——但行和又被破坏了;
- 交替执行第 2、3 步,直到行、列边际同时满足,得到 。
每一步只是逐行逐列做除法,没有通用线性规划的内点法开销,天然适合并行;两边各上万样本的规模,GPU 上毫秒级出结果。这个 1964 年的老定理,就这样在 2013 年之后成了机器学习的标准零件。要付的账只有一笔: 越大,熵把方案摊得越开,得到的量偏离真 OT 越远——好在有现成的去偏公式,见第六节。
图看完,数字走一遍。设两个仓库 A、B 各有 0.5 单位的土要运往三个工地 ①②③,各需 ;熵强度取 。运价表(行 = 仓库,列 = 工地)与由此算出的亲近度核为
运价 1 的格子亲度 0.368,运价 2 的 0.135,运价 3 的 0.050。现在交替缩放,每一步的方案与两组边际如下(保留三位小数;目标行和各 0.500,目标列和各 0.333,加粗表示达标):
| 阶段 | 方案 γ(上行 = A,下行 = B;列 = ①②③) | 行和 | 列和 |
|---|---|---|---|
| 初始化 | 0.368 · 0.135 · 0.050 0.135 · 0.368 · 0.368 | 0.553 / 0.871 | 0.503 / 0.503 / 0.418 |
| 第 1 轮 · 行缩放后 | 0.333 · 0.122 · 0.045 0.078 · 0.211 · 0.211 | 0.500 / 0.500 | 0.410 / 0.334 / 0.256 |
| 第 1 轮 · 列缩放后 | 0.270 · 0.122 · 0.059 0.063 · 0.211 · 0.275 | 0.451 / 0.549 | 0.333 / 0.333 / 0.333 |
| 第 2 轮 · 行缩放后 | 0.300 · 0.136 · 0.065 0.058 · 0.192 · 0.250 | 0.500 / 0.500 | 0.357 / 0.328 / 0.315 |
| 第 2 轮 · 列缩放后 | 0.280 · 0.138 · 0.069 0.054 · 0.196 · 0.265 | 0.486 / 0.514 | 0.333 / 0.333 / 0.333 |
| 收敛解 | 0.283 · 0.144 · 0.073 0.050 · 0.189 · 0.260 | 0.500 / 0.500 | 0.333 / 0.333 / 0.333 |
两个细节值得盯住。其一,每次行缩放让行和精确归位,列和随即漂移;每次列缩放让列和归位,行和又漂——但漂移逐轮收窄:行和的最大偏差从 0.049 缩到 0.014,再一轮到 0.004,趋于零。图 3 那个循环箭头,落到数字上就是这张表。其二,收敛方案把大质量放给低运价格(A→① 得 0.283,B→③ 得 0.260),但没有任何格子归零——运价最高的 A→③ 也分到 0.073。
拿它对照精确解,更能看清熵的作用。线性规划给出的硬解是 :A→③ 被压成零,纯运费 ;熵正则解的纯运费 ,多出的 0.17 就是"把质量摊开"的代价,也正是第六节去偏公式要处理的熵偏置。顺带认一个口径:文献里的"Sinkhorn 距离"多数指平滑方案的纯运费 (Cuturi 的原定义即如此),含熵项的目标值本身可正可负、不是距离,引用时看清楚口径即可。
最后换个角色重跑这张表:仓库换成两篇待评估摘要(各 0.5 质量),工地换成三篇历史参考专利(各 质量),算出来的就是一次分布匹配;把这一步嵌进估计、校准、评估的三段时序,就是第四节 DM 的实现现场。
四、给一份专利打分:DM 方案
现在回到文本测量。我们正在进行的一项工作论文研究专利摘要的语义非典型性:每篇摘要过一个编码器得到 维嵌入,再作 L2 归一化落到单位球面上(为什么归一化,上一篇讲过)。对每个技术领域 和年份 ,只用 年及更早的历史专利构造估计集 ,其等权经验分布就是"参考云" 。一篇待评估专利 的 DM 分数定义为
是把全部质量押在这一篇专利上的单点分布。直译过来:把这一单位质量搬进历史云、经熵平滑后的最小期望运费。项目里地面代价取球面上的平方欧氏距离 ,即余弦相似度的单调改写。分数越高,意味着云里几乎没有它的近邻——语义上越"出格"。
两个工程细节与上一篇的马氏流水线完全同构。其一,熵强度 不许碰评估数据:只在估计集上、按"家族块重抽样下分数秩稳定性"在网格里挑选。其二,原始 DM 分数跨领域不可比——不同领域的参考云松紧不同——要用独立的校准集换算成领域内百分位。评估集自始至终只被打分,不参与任何参数与超参数的选择。估计、校准、评估三段时序分离,是这条流水线的纪律底线。
五、裁判与主队:DM 与马氏距离的分工
同一条生产线上养两把尺子,不是冗余,是分工。工作论文的主指标是条件马氏语义分数(CMSS):平方马氏距离配上卡方概率解释,能说出"在领域历史里随机抽一篇,语义偏离比这篇更极端的概率是多少"。审稿人对任何参数方法的第一问永远是:结论是不是分布假设的产物?DM 的角色就是那个不预设形状的裁判——它不假设高斯,若结论在 DM 口径下依然成立,就不能再说成椭球的错觉。
| 马氏距离(CMSS 一族) | 熵正则 OT(DM) | |
|---|---|---|
| 分布假设 | 近似多元高斯,可用参与比等工具审计 | 完全不预设形状 |
| 概率解释 | 平方马氏服从卡方分布,有解析尾部概率 | 无分布律,百分位须事后校准 |
| 超参数 | Ledoit–Wolf 收缩有解析最优强度 | 熵强度 ε 需在估计集内调参 |
| 计算成本 | 低:均值与协方差一次算清 | 高:Sinkhorn 迭代加分层抽样 |
| 量尺 | 协方差白化,自动压低套话维度 | 地面代价不加权,对表层扰动更敏感 |
初步结果(工作论文)支持这套分工:CMSS-DM 与主分数的秩相关很高、结论方向一致,说明主结论不依赖高斯形状;两者同时放进预测模型,判别力还略有提升,说明两把尺子各有各的信息。方法论上这是一条通用准则:好的实证不是找到唯一"最强"的指标,而是证明结论在换一把量尺之后依然站着。
六、使用注意
- ε 的纪律。只能在估计/训练段选择,评估数据一概不碰;两端都有坑——ε 过大,分数滑向"平均运费",退化为均值距离;ε 过小,指数核下溢、数值不稳。稳妥做法是相对代价的中位数取网格,并报告各领域实际使用的中位数。
- 熵偏置要校正。熵会把量系统性带离真 OT,标准修正是去偏 Sinkhorn 散度:
自配对项 与 扣掉"自己搬自己"也要付的熵开销, 非负且更接近真距离(Feydy et al., 2019)。
- 算力不是免费的。代价矩阵是 :一万对一万就是一亿格。分层抽样是常规解——对超大估计集按领域-年份分层抽取参考点,校准与评估共用同一样本集与随机种子,保证内部一致与可复现;Python 生态有 POT 与 GeomLoss 两个现成库。
- 没有免费的概率解释。DM 分数无分布律,跨领域可比性完全依赖校准集的百分位换算——校准集的选择成了新的自由度,必须与 一样纳入防泄漏纪律。
- 高维里参考云天然稀疏。维度诅咒在这里换了副面孔回来:不是估计不动,而是云本身稀疏,抽样波动直接进分数。种子要存档;若希望量尺继承协方差结构,把地面代价换成马氏白化版本——上一篇博客与这一篇,在这里合流。
小结
三步走:OT 把"比较分布"变成"规划运输",代价矩阵加边际约束给出 Wasserstein 距离;熵正则化把硬匹配软化成可微、可并行、抗样本抖动的 Sinkhorn 距离;单点对分布的特例——DM 方案——给"这条观测有多不合群"一个不预设形状的分数,代价是失去解析概率解释,换来的是当裁判的资格。对做实证的人,这一族工具的位置很清楚:它站在"只看均值的 t 检验"与"预设椭球的参数距离"之间,是分布比较的第三条路;用它打分时,防泄漏纪律与校准纪律一根都不能少。
延伸阅读:《马氏距离:把斜的空间拉直再量》讲量尺如何随协方差变形;两篇合读,正好覆盖专利语义非典型性这套测量的两半。
参考资料
- Kantorovich, L. V. (1942/1958). On the translocation of masses. Management Science, 5(1), 1–4(俄文原文的英译). — doi.org/10.1287/mnsc.5.1.1
- 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
- Cuturi, M. (2013). Sinkhorn distances: Lightspeed computation of optimal transport. NeurIPS 26. — arxiv.org/abs/1306.0895
- 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
- Peyré, G., & Cuturi, M. (2019). Computational Optimal Transport. Foundations and Trends in Machine Learning. — arxiv.org/abs/1803.00567
- 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
评论
加载中…