Token导航 LogoToken导航

AI 资讯 · 科技行者

隐私保护广告竞价致手机广告拍卖超支17倍

更新 2026-10-21科技行者正文 6385字阅读约 20分钟

你有没有想过,你手机里那个正在展示广告的小程序,其实在替你的设备参加一场看不见的拍卖会?

这场拍卖没有拍卖师喊价,没有举牌的观众,只有一段跑在你手机本地的代码,在毫秒之间决定哪个广告主赢了这次曝光,该收多少钱。这套系统叫做隐私保护广告竞价,谷歌的Protected Audience就是一个真实存在过的例子。它的初衷特别好:既然把用户数据传到云端做广告匹配这件事越来越让人不安,那干脆把整个决策过程搬到用户自己的设备上来做,数据不出手机,隐私自然就保住了。

听起来是个两全其美的方案对吧。但一篇最新的研究论文戳破了这个美好设想里一个几乎没人注意到的漏洞:当你把决策分散到成千上万台设备上时,钱的账本却没办法跟着一起分散。

这篇论文用整整36个广告主、50台模拟设备做了一场严谨的推演,结果显示,在某些条件下,广告主的预算会被超支超过1669%,相当于花了自己预算17倍还多的钱。这不是一个边缘案例,而是这套架构设计里近乎必然会发生的事情。

预算失控背后,到底是谁的错

先说清楚这个问题难在哪里。

一个广告主给自己的投放活动设定了一个总预算,比如说一万块钱。这笔预算原本应该由一个中央系统统一记账,谁花了钱,系统立刻知道,谁还能不能继续花,系统立刻能判断。这就好比一个家庭只有一本存折,爸爸取钱妈妈立刻能看到余额变化,不会出现两个人同时把最后一笔钱都取走的情况。

但现在,这本存折被复制了五十份,分别放在五十台手机里。每台手机只能看到自己刚刚花了多少钱,看不到其他四十九台手机的实时操作。系统会定期把最新的总账同步给所有设备,但只要两次同步之间有任何时间差,灾难就可能发生。

如果这五十份存折之间完全不同步会怎样?答案是,五十台设备可能会同时认为账户里还有钱,然后同时决定要花这笔钱,最后总支出远远超过预算。这不是运气不好,而是这套分布式记账体系结构性地必然会发生的偏差,因为每台设备做决策时依赖的信息本来就是过时的。

同步延迟:多久算是过时

论文里引入了一个关键概念。

同步延迟(论文里叫做sync lag,用符号Δ表示):指的是中央系统两次向设备广播最新预算状态之间间隔的时间刻度(tick)。Δ等于0意味着账本随时都是最新的,Δ等于1则意味着设备之间可能存在整整一个时间刻度的信息滞后。

研究团队做了一个100个时间刻度的实验窗口,相当于模拟一整天,每个刻度大约14.4分钟。在这个设定下,他们测试了七种不同的延迟情况:0、1、2、5、10、25、50个刻度。

结果是这样的。当账本完全同步(延迟为0)时,超支率只有0.53%左右,几乎可以忽略。可一旦延迟到了1个刻度,超支率立刻飙升到17.77%。延迟到50个刻度时,超支率达到了1669.31%,也就是说实际花掉的钱是预算的十七倍还多。

这就好比一群人在网吧里抢最后一张演唱会门票,售票系统每隔一分钟才刷新一次剩余票数,结果前三十秒里明明只剩一张票,却有五个人在不同的电脑上分别点了购买并且都显示"购买成功"。系统事后当然能统计出超卖了四张,但那四个人的钱已经真金白银地花出去了,这个超支既成事实,没有回滚的余地。如果不设置这种周期刷新的机制,改成每个人操作前都必须实时联网确认剩余票数,那所有购票会变得极慢,用户体验直线下降。这正是隐私保护竞价系统面临的两难:想要设备之间完全实时同步,就必须频繁通信,这又和"减少数据往返、保护隐私"的初衷相冲突。

预算压力不是问题的根源

这里有个特别反直觉的发现。

你可能会想,这个超支问题是不是因为论文故意设置了一个极端苛刻的预算,逼得系统必须疯狂抢钱才会出问题?研究者们专门做了一个对照实验来回答这个疑问。

他们把预算压力从原本的20倍(意味着如果所有设备毫无节制地花钱,实际需求量是预算的20倍)逐步降低到2倍、5倍、10倍,结果发现,即便把预算压力降到最温和的2倍,在50个时间刻度的延迟下,超支率依然高达106.95%。

这说明超支现象根本不是因为预算设置得太紧张,而是信息滞后这个结构性问题本身在起作用。就算把水龙头开得再小,只要水管里有个看不见的漏洞,水迟早会漏光。压力大小只影响漏水的速度,不影响漏水这件事本身会不会发生。

给账户装个"可视余额"栅栏,能防住多少

既然知道问题出在设备看不到彼此的实时花费,那能不能让每台设备至少先看看自己当前能看到的余额,不够就别卖了?

研究者们真的做了这样一个改进版本,叫做可视余额拒绝守卫(visible-balance no-sale guard):意思是每次一台设备准备成交一笔广告曝光之前,先检查一下这笔交易的花费会不会超过它自己当前能看到的(哪怕是过时的)剩余预算,超过了就直接拒绝这笔交易,不卖。

效果非常戏剧性:在零延迟的情况下,这个守卫机制让超支率精确降到了0,完全杜绝了超支。这听起来像是完美的解药对不对?

但只要延迟哪怕只有1个刻度,超支率依然高达11.88%。原因很简单,这个守卫机制只能防住设备自己知道的那部分超支(比如它自己明明看到预算已经花完了却还硬要买),但没办法防住其他四十九台设备在它看不见的地方同时花钱造成的超支。这就好比你在自己的银行卡APP上设了一个提醒,余额低于100元就不让自己刷卡,这确实能防住你自己刷爆卡,但如果你和家人共用一张卡,家人在另一个手机上同时刷了一笔,你的提醒功能根本无法感知那笔支出,超支照样会发生。守卫机制解决的是"我看见了却依然违规"的那部分问题,解决不了"我压根看不见"的那部分问题。

即便换成更复杂的需求模式,问题依然存在

研究团队还担心一件事:会不会这个超支现象只是他们精心设计的实验数据里才出现的巧合,换一种更真实、更不规律的流量模式,问题会不会自己消失?

于是他们又设计了一个突发且设备异质化的压力测试,用一个两状态的马尔可夫链来模拟流量忽高忽低的真实场景(低强度和高强度交替出现,切换概率分别是8%和22%),同时让十台设备的流量权重设成2.5倍,另外四十台设备设成0.625倍,模拟设备之间处理能力和流量分配的不均衡。

结果,超支率随延迟增加依然严格递增:从零延迟的0.49%,一路涨到50个刻度延迟时的1573.18%。而且三十条独立测试路径里,有二十四条自己单独看也是严格递增的。

这说明这个超支现象不是某个特定测试场景的偶然产物,而是这套分布式账本结构在面对各种真实流量模式时普遍会出现的行为。

竞价机制本身还藏着第二个漏洞

如果说预算超支是"信息跟不上"的问题,那论文揭示的第二个问题就完全不同性质了:这是竞价规则设计本身的缺陷,跟延迟没有任何关系。

这里要先说清楚这套竞价系统是怎么运作的。

广告竞价评分:系统给每个参与竞价的广告打一个分数,公式是出价乘以相关性质量分再乘以投放节奏系数。分数最高的广告赢得曝光,但要为这次曝光付出的价格,不是它自己的出价,而是排名第二名的那个分数加一。

这个"付第二名的价格"设计其实来自经济学里非常经典的次价拍卖思想,理论上这种设计能鼓励参与者诚实报出自己的真实估值,因为反正你付的是别人的价格,虚报没有意义。但论文发现,这套系统有个致命细节:投放节奏系数(也就是控制预算花费速度的那个参数)也被塞进了分数计算公式里,而这个系数是会实时变化的。

这就导致了一个严重后果:赢家最终要支付的价格,被悄悄地和竞争对手当下的投放节奏系数绑定在一起,而不是单纯反映竞争对手的真实出价。研究者构造了一个具体的反例:假设相关性系数是0.8,节奏系数是0.5,竞争对手报价1000,广告主自己对这次曝光的真实估值是800。如果这个广告主老老实实按真实估值报价,算出来的分数是320,会输给对手的400分。但如果他谎报出价到1100,分数就变成440,能赢得曝光,最终只需要支付401分,净赚399分的利润。

论文用实际代码跑通了这个案例,并且系统性地统计发现,在一个时间刻度的延迟下,98.23%的双方竞价场景都存在这种可以通过虚报获利的操作空间。这个数字高得有点吓人,意味着几乎在每一场存在两个竞争者的拍卖里,诚实出价都不是最优策略。

这就好比一场拍卖会上,主持人告诉所有人"你们只需要付第二高出价者的价格",但暗地里,这个"第二高出价者的价格"里其实还悄悄乘上了一个只有主持人自己知道、且实时波动的系数。你以为自己参与的是一场诚实的次价拍卖,实际上支付规则被动了手脚,谎报出价反而可能让你既赢得了拍卖,又付出比表面看起来更低的价格。如果不修复这个漏洞,广告主迟早会摸索出"该谎报多少"的经验法则,整个竞价系统的公平性会被逐渐蚕食。

修复方案:临界基础出价支付法

那怎么修呢?论文给出的方案叫做临界基础出价支付(critical-base-bid payment):不再让赢家支付被节奏系数污染过的分数,而是把竞争对手的分数除以自己的相关性和节奏系数,反推出一个"如果不作弊,我最少需要出多少真实价格才能赢"的数值,让赢家支付这个还原后的真实临界值。

这个修复方法背后依赖的是迈尔森引理(Myerson's lemma),是拍卖理论里的经典结论,简单说就是:只要支付规则设计得当,诚实报价就会成为每个参与者的最优策略,不需要靠揣测对手心理去博弈。

论文在420个测试案例里验证,用了这套修复支付方式之后,确实找不到任何能通过虚报获利的操作空间了。但研究者非常诚实地指出了这个修复方案的局限性:它只解决了"当下这一场拍卖"里的诚实性问题,前提是相关性系数和节奏系数当时保持不变。它没有解决更深层的问题,就是赢家和输家的排序本身依然会因为节奏系数的存在而和广告主的真实价值出现偏差,论文测出这种排序错位在零延迟情况下高达49.26%,也就是说接近一半的拍卖里,最终赢家其实并不是那个对这次曝光估值最高的广告主。而且这套修复方案完全没有触碰一个更棘手的问题:在连续多轮的拍卖里,广告主今天的出价会影响自己明天的预算余量,进而影响明天的节奏系数,这是一场动态博弈,目前没有被证明诚实出价依然是最优策略。

这就像是你发现超市的电子秤有问题,称出来的重量会因为当天温度波动而略有偏差,于是你换了一台更精密的秤,解决了称重误差的问题。但你没有解决的是,这家超市卖的苹果本身品相就参差不齐,秤准了不代表你买到的一定是最好的那批苹果。计价准确和商品排序合理,是两件不同的事情,一个修复方案解决不了另一个问题。

一个有意思的副作用:节奏控制到底在做什么

论文里还有一个特别值得琢磨的发现。

研究者对比了两种投放节奏策略。一种叫做ASAP(尽快花完),意思是不做任何节制,预算没花完之前节奏系数永远设为1,能卖就卖。另一种叫Even,是一种按比例平滑花费的控制器,目标是让花费曲线尽量贴着一条从0到总预算的直线走。

结果发现,在零延迟情况下,Even策略平均每次成交只收7.07个分数单位,但成交了19358.1次曝光;而ASAP策略平均每次收81.35个分数单位,只成交了1679次曝光。

也就是说,Even节奏控制器把成交量拉高了大约11.5倍,但同时把单次价格压低了差不多同样的倍数。这个发现颠覆了一个直觉:你可能以为"控制预算节奏"意味着少卖一些、放慢速度,但实际上这套系统里的节奏控制机制,本质上是通过压低价格来实现的,而不是通过减少交易次数。

原因还是回到前面提到的那个竞价公式:节奏系数被放进了决定支付价格的那个分数里,所以节奏系数一降低,赢家最终要付的钱也跟着降低,但拍卖依然会正常产生一个赢家,交易照样成交,只是价格便宜了。这和你想象中"限流"的概念完全不同,限流通常意味着一部分请求被直接拒绝,但这里发生的是所有请求几乎都被接受了,只是价格被系统性地打了折。

理论上界:这个超支到底有没有个头

论文里还有相当硬核的一部分,研究者试图从数学上给这个超支现象画一条上限,而不只是靠实验数字说话。

他们提出了一个有限窗口期望超支上界定理,核心思路是:任何一笔造成账户超支的交易,最多只会在下一次同步到来之前持续造成损失,因为一旦同步完成,过时的信息就被纠正了。基于这个洞察,加上广告流量本身服从泊松过程(一种描述随机事件发生频率的数学模型)这个假设,加上每笔交易的花费金额存在一个已知上限,研究者推导出了一个理论上的超支上界公式。

他们把这个理论上界和实际跑出来的数字放在一起对比,发现在所有测试的延迟场景下,理论上界始终大于实际观测到的超支,而且差值(论文里叫做"配对余量")在统计上是显著为正的。这说明这个理论推导虽然不是精确复刻真实数字,但确实给这个问题的严重程度画出了一条靠谱的安全边界,工程师们至少可以据此估算在最坏情况下会亏多少。

这套理论有个诚实的局限,就是它假设每笔交易的花费金额是有上限的。如果广告主的出价分布是那种没有上限、尾部很长的分布(比如某些极端定价场景),这个理论保证就不适用了,研究者也在论文里明确写清楚了这一点,没有夸大理论的适用范围。

这些数字背后,到底意味着什么

看完这一整套推导和实验,我最大的感受是,这篇论文其实在讲一个很朴素但常常被工程决策忽略的道理:把智能决策下放到终端设备去做,能换来隐私,但换不来免费的信息一致性。

信息这个东西一旦要跨越多个独立决策点保持一致,就必然要付出通信成本,你要么频繁同步(牺牲隐私和效率),要么接受滞后(牺牲账本准确性),中间没有免费的午餐。这篇论文没有想当然地说"我们发明了一个完美方案",而是老老实实地把这个权衡的代价用数字量化了出来,这种诚实反而是它最有价值的地方。

我还挺欣赏论文里反复强调的一句话,就是账本一致性问题和竞价规则公平性问题,是两件完全独立的事,修好一个不代表另一个也被修好了。这种把问题拆解清楚、不混为一谈的态度,在很多喜欢一次性宣称"我们解决了XX难题"的论文里其实并不常见。

写在后面

读这篇论文的过程中,有一个地方让我停下来想了很久。研究者在文章末尾特别强调,他们用的这批用于测试广告匹配的语料标签,全部由一个AI模型自动打标,没有一条经过人工核实。他们没有藏着掖着这个局限,反而专门做了一次标签扰动测试,故意往数据里注入错误标签,去验证他们发现的超支规律是不是会因为标签质量问题而崩溃。结果规律依然稳如泰山。

这种"先假设我的数据可能是错的,然后去验证结论是否依然成立"的研究态度,比直接宣称"我们的数据是可靠的"要扎实得多。很多时候,一个结论的可信度不在于它有多华丽的理论包装,而在于作者愿不愿意主动去戳破自己论文里最薄弱的那个环节,看它扛不扛得住。

另一个让我一直在琢磨的问题是,如果广告竞价系统真的需要在"绝对不超支"和"保护用户隐私、减少设备间通信"之间二选一,普通用户到底更在意哪一个?超支的代价最终大概率会转嫁给广告主和整个生态,而隐私泄露的代价却直接落在每一个具体的人身上。这笔账,谁来算,又该怎么算?

Q&A

Q1:为什么把广告决策放到手机本地做会导致预算超支?

A:因为预算账本需要在多台设备之间保持同步,但同步本身需要时间。设备之间只能看到自己的花费,看不到其他设备的实时支出,两次同步之间的信息滞后会让多台设备同时误判预算还够用,从而造成实际支出远超预算,论文测出极端情况下超支能达到1669%。

Q2:给设备加一个只看自己余额的检查机制,能彻底防止超支吗?

A:不能完全防止。这种可视余额守卫机制在零延迟时确实能把超支降到0,但只要存在哪怕一个时间刻度的延迟,超支率依然有11.88%左右,因为它只能拦住自己看得见的问题,拦不住其他设备看不见的花费。

Q3:论文里说的竞价支付漏洞具体是什么问题?

A:竞价系统给广告打分时把控制花费节奏的系数也算进了最终支付价格里,导致98.23%的双方竞价场景里,虚报出价反而能获利。修复方法是让赢家支付还原掉节奏系数后的真实临界价格,但这只解决单次拍卖的诚实性,不解决连续多轮博弈和排序偏差问题。

文章标签AI资讯

资讯来源:由AI资讯编辑整理自互联网公开内容,版权归原作者所有,未经许可,不得转载。