4、多目标优化数学基础:帕累托最优、帕累托前沿、多目标优化问题的数学形式化、权重法、约束法

各位同学,欢迎来到第四讲。

上一章我们聊了推荐系统为什么要做多目标优化。说白了,就是用户既要点击率高,又要转化好,还得时长够长。你想想看,一个模型怎么可能同时把这三件事都做到极致?

嗯,这就要引入我们今天的主角——多目标优化的数学基础了。

4.1 多目标优化问题的数学形式化

先给个严谨的定义。一个多目标优化问题,数学上长这样:

minimize F(x) = [f₁(x), f₂(x), ..., fₖ(x)]ᵀ
subject to x ∈ Ω

其中,x 是决策变量(比如你的模型参数),Ω 是可行域(参数取值范围),F(x) 是一个向量函数,包含了 k 个目标函数。

注意看,这里有个关键点:我们不是要最小化一个数,而是要最小化一个向量。向量怎么比大小?没法直接比。这就引出了帕累托最优的概念。

核心理解:多目标优化不是找一个「最优解」,而是找一组「不坏的解」。这组解构成了帕累托前沿。

4.2 帕累托最优

什么叫帕累托最优?我用自己的话给你翻译一下:

假设有两个解 x₁ 和 x₂。如果 x₁ 在所有目标上都优于或等于 x₂,并且至少在一个目标上严格优于 x₂,那么我们就说 x₁ 帕累托支配 x₂。

反过来,如果一个解不被任何其他解支配,它就是 帕累托最优解

举个例子。你在调推荐模型时,有两个候选方案:

  • 方案A:点击率 0.12,转化率 0.05,时长 120s
  • 方案B:点击率 0.11,转化率 0.04,时长 130s

方案A在点击率和转化率上都优于B,但时长不如B。所以A不支配B,B也不支配A。它们俩都是帕累托最优解。

我的经验:我在做短视频推荐时,经常遇到这种情况。点击率高的视频往往时长短,时长长的视频往往点击率低。你没法说哪个更好,只能看业务要什么。

4.3 帕累托前沿

所有帕累托最优解构成的集合,在目标空间中的像,就是 帕累托前沿

你可以把它想象成一条曲线(或曲面)。在这条曲线上,你无法在不牺牲一个目标的前提下,提升另一个目标。

举个例子,两个目标(点击率、转化率)的帕累托前沿可能长这样:

解编号 点击率 转化率
1 0.10 0.08
2 0.12 0.06
3 0.14 0.04

你看,从解1到解3,点击率越来越高,但转化率越来越低。这就是帕累托前沿的典型特征——目标之间互相冲突

注意:帕累托前沿上的解没有绝对的好坏之分。你不能说解1比解3好,只能说它们代表了不同的权衡。

4.4 权重法

好了,理论讲完了,咱们来点实际的。怎么从帕累托前沿里选一个解出来?

最常用的方法就是 权重法(也叫线性加权法)。

思路很简单:给每个目标赋一个权重 wᵢ,然后优化加权和:

minimize Σ wᵢ · fᵢ(x)
subject to x ∈ Ω, Σ wᵢ = 1, wᵢ ≥ 0

权重代表了你对各个目标的重视程度。比如:

  • w₁ = 0.7(点击率),w₂ = 0.3(转化率)—— 你更看重点击率
  • w₁ = 0.3(点击率),w₂ = 0.7(转化率)—— 你更看重转化率

不同的权重组合,会得到帕累托前沿上不同的点。

关键点:权重法只能找到凸的帕累托前沿上的点。如果前沿是非凸的,权重法会漏掉一些解。

我在项目中遇到过这个问题。有一次我们用权重法调模型,怎么调都找不到某个区域的解。后来才发现,那个区域的帕累托前沿是凹的,权重法根本覆盖不到。

4.5 约束法

那遇到非凸前沿怎么办?别急,还有 约束法(也叫ε-约束法)。

约束法的思路是:选一个目标作为主目标,其他目标都转成约束条件。

minimize f₁(x)
subject to f₂(x) ≤ ε₂, f₃(x) ≤ ε₃, ..., fₖ(x) ≤ εₖ
         x ∈ Ω

比如,你想最大化点击率,同时保证转化率不低于0.05:

minimize -点击率(x)
subject to 转化率(x) ≥ 0.05
         x ∈ Ω

通过调整 ε 的值,你可以遍历整个帕累托前沿,包括非凸的部分。

我的建议:在实际工程中,我通常先用权重法快速找到一个大致的区域,再用约束法精细调优。这样既快又准。

4.6 两种方法的对比

特性 权重法 约束法
适用前沿形状 凸前沿 凸前沿 + 非凸前沿
计算复杂度 低(一次优化) 高(多次优化)
权重/阈值设置 权重直观 阈值难设
工程落地 容易 较复杂

你看,没有银弹。权重法简单但有限制,约束法全面但麻烦。具体用哪个,得看你的业务场景。

避坑指南:我曾经在某个项目中,直接用权重法调了三个月,结果线上效果一直不理想。后来换成约束法,才发现权重法漏掉了一个关键区域。嗯,从那以后,我每次做多目标优化,都会先用约束法扫一遍前沿的形状。

4.7 小结

这一章我们讲了多目标优化的数学基础。核心就三件事:

  1. 帕累托最优:不被任何解支配的解
  2. 帕累托前沿:所有帕累托最优解的集合
  3. 求解方法:权重法(简单但有限制)、约束法(全面但复杂)

下一章,我们会把这些数学工具真正用到推荐系统中去。到时候你会看到,这些看似抽象的概念,其实每天都在你的推荐模型里发挥作用。

好了,今天就到这里。有问题随时问我。


公众号:蓝海资料掘金营,微信deep3321