news 2026/2/10 6:44:53

计算广告:智能时代的营销科学与实践(十六)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
计算广告:智能时代的营销科学与实践(十六)

目录

第三部分 计算广告关键技术

第9章 计算广告技术概览

9.4 计算广告系统主要技术

第10章 基础知识准备

10.1 信息检索

10.2 最优化方法

10.2.1 拉格朗日法与凸优化

10.2.2 下降单纯形法

10.2.3 梯度下降法

10.2.4 拟牛顿法


第三部分 计算广告关键技术

第9章 计算广告技术概览

9.4 计算广告系统主要技术

计算广告系统,本质上是一个复杂、实时、数据密集的决策智能系统。它的核心使命是在对的时间对的场景,将对的产品或服务,以对的创意形式,展示给对的人,并最终实现媒体、广告主、用户三方价值的动态平衡与最大化。要完成这一使命,需要一整套强大的技术体系作为支撑。我们可以从三个维度来理解这套技术体系:数据管理、算法模型系统工程

1. 数据:系统的血液与燃料

一切智能始于数据。计算广告系统处理的是互联网上最广泛、最实时、最多样的数据。

  • 用户行为数据:这是“理解人”的基础。包括用户在媒体上的浏览、点击、搜索、购买、停留时长、地理位置等。这些数据通过前端埋点(如SDK、JS代码)实时采集,构成了用户画像和兴趣模型的原材料。例如,一个用户频繁浏览汽车论坛和跑车视频,系统会为他打上“汽车爱好者”、“潜在高端消费者”等标签。

  • 上下文环境数据:这是“理解场景”的关键。包括用户当前访问的页面内容(通过NLP技术提取关键词、主题)、使用的APP类型、时间、设备(手机/PC)、网络环境(Wi-Fi/4G)等。在体育新闻页面旁边展示运动鞋广告,就是上下文定向的典型应用。

  • 广告物料数据:这是“理解货”的部分。包括广告主的文案、图片、视频、落地页内容,以及广告主所属的行业、品牌调性、历史表现数据(如CTR、转化率)等。

  • 商业规则与合约数据:这是“理解交易”的框架。包括广告活动的预算、出价、目标受众、投放时段、频次控制要求,以及广告位的位置、尺寸、底价等。

这些数据共同构成了一个多维度的特征空间。广告系统所做的每一次决策(是否展示、展示哪个广告),都是在这个高维特征空间中进行的一次复杂计算和匹配。

2. 算法模型:系统的大脑

有了数据燃料,算法模型就是驱动系统智能决策的引擎。计算广告的核心算法可以概括为“两步走”:先筛选,后排序

  • 检索与匹配(筛选):从海量广告库(可能数百万计)中,快速筛选出与当前请求(用户+上下文)可能相关的数百个候选广告。这主要依赖信息检索(IR)技术,如倒排索引。系统会为广告建立索引(例如,广告A的索引词为“汽车、新能源、SUV”),当用户访问一个包含“特斯拉”的页面时,系统能瞬间召回所有包含“汽车”、“新能源”等关键词的广告。近年来,基于深度学习的语义匹配模型(如DSSM、BERT)也被广泛应用,它能理解“续航”和“电池”之间的语义关联,实现更精准的召回。

  • 排序与决策(排序):对召回的数百个候选广告进行精排序,决定最终展示哪一个。这是计算广告技术的皇冠明珠,核心是点击率预估(pCTR)转化率预估(pCVR)模型。

    • 逻辑回归(LR)与因子分解机(FM):在深度学习普及前,LR因其简单、高效、可解释性强,是点击率预估的主流模型。FM则能自动学习特征之间的交互关系(例如,“男性”和“游戏”同时出现时,点击率会显著升高),效果优于LR。

    • 梯度提升决策树(GBDT):一种强大的非线性模型,善于处理异构特征(数值型、类别型)和复杂模式。常与线性模型(如LR)结合,用GBDT进行特征变换,再用LR进行最终预测。

    • 深度学习模型:当前工业界的绝对主流。其优势在于能自动进行高阶特征组合,并处理更原始的特征(如图像、文本序列)。

      • Wide & Deep:谷歌提出的经典架构,兼顾记忆能力(Wide部分,处理大量稀疏特征,记忆历史规律)和泛化能力(Deep部分,探索新的特征组合)。

      • DeepFM:用FM层替代Wide部分,实现了端到端的特征交叉学习。

      • DIN/DIEN:阿里系列模型,专门针对用户行为序列数据。DIN(深度兴趣网络)能捕捉用户历史行为与当前候选广告的相关性;DIEN(深度兴趣进化网络)更进一步,模拟用户兴趣随时间的变化趋势。

3. 系统工程:系统的骨架与肌肉

再先进的算法,也需要一个健壮、高可用、低延迟的工程系统来承载。计算广告系统对工程的要求极为苛刻,主要体现在:

  • 高并发与低延迟:一次网页或APP的广告加载,要求在100毫秒内完成所有决策并返回广告素材。面对“双十一”、“春晚”等峰值流量,系统需要承受每秒数百万甚至上千万次的查询请求。

  • 高可用与强一致:系统需要7x24小时不间断运行。任何宕机都意味着媒体收入的直接损失。同时,像预算消耗、频次控制这类数据,必须在分布式环境下保持强一致性,防止超投或重复投放。

  • 大数据处理能力:每天需要实时处理TB甚至PB级的日志数据,用于模型训练、效果分析和账单结算。

为了实现这些目标,现代计算广告系统普遍采用微服务架构Lambda架构

  • 微服务架构:将系统拆分为独立的服务,如用户画像服务、召回服务、排序服务、计费服务等。每个服务可以独立开发、部署和伸缩,提高了系统的灵活性和可维护性。

  • Lambda架构:同时满足实时和离线数据处理的需求。

    • 批处理层:使用Hadoop/Spark,处理全量历史数据,训练复杂的深度学习模型,生成用户长期兴趣画像。速度慢,但全面、准确。

    • 速度层:使用Flink/Storm/Spark Streaming,处理实时数据流,进行实时特征计算(如用户10分钟内的点击次数)、实时模型预估修正。速度快,能捕捉最新趋势。

    • 服务层:将批处理和速度层的结果合并,提供给在线服务使用。

技术挑战与权衡
计算广告系统的发展,始终贯穿着一系列核心权衡:

  • 效果与效率的权衡:更复杂的模型(如深度模型)效果更好,但在线推理耗时更长。工程师需要在模型复杂度、特征数量与响应延迟之间找到最佳平衡点,常用模型压缩、特征选择、并行计算等技术。

  • 探索与利用的权衡:系统是应该持续投放已知的高CTR广告(利用),还是尝试投放一些新广告以收集数据、发现潜在黑马(探索)?这关系到系统的长期收益,通常用Bandit算法或强化学习来解决。

  • 收入与体验的权衡:如何在最大化广告收入的同时,保证用户体验不被过度打扰?这涉及到广告频次控制、创意质量审核、原生广告融合等技术。

总而言之,计算广告系统的主要技术是一个融合了大数据、人工智能和超大规模系统工程的复杂综合体。它既需要算法科学家不断突破预测精度的极限,也需要系统工程师构建坚如磐石的基础设施。正是这两股力量的交织与协作,才驱动着数字广告行业不断向着更智能、更高效、更可持续的方向演进。

第10章 基础知识准备

计算广告并非一座技术孤岛,它建立在信息检索、最优化理论、统计机器学习和深度学习等多项基础学科的坚实地基之上。这一章,我们将系统回顾这些支撑计算广告大厦的关键理论和技术,为您后续深入理解广告系统各模块扫清障碍。

10.1 信息检索

信息检索的核心任务是:从大规模非结构化数据集合中,找出与用户查询需求相关的信息。在计算广告中,这个“数据集合”是海量的广告库存,“查询”是用户的当前上下文(搜索词、浏览页面、用户画像),而“相关信息”就是那些最可能被用户接受并点击的广告。因此,IR技术是广告召回阶段的基石。

10.1.1 倒排索引

想象一下你在一个拥有数百万本藏书的图书馆里,要找所有提到“深度学习”和“广告”的书籍。一本一本地翻看(即“正排索引”)是灾难性的。图书馆管理员会使用一个卡片目录柜,每个卡片记录一个关键词(如“深度学习”)以及所有包含这个词的书籍编号。这个卡片柜,就是倒排索引

1. 核心概念与构建

  • 正排索引:以文档(广告)为中心。记录每个广告ID对应的全部描述关键词。{广告ID: [关键词1, 关键词2, ...]}

  • 倒排索引:以关键词(词项)为中心。记录每个关键词出现在哪些广告ID中,以及出现的位置、频率等信息。{关键词: [广告ID1, 广告ID2, ...]}

构建过程

  1. 文档分析:对每个广告的标题、描述、落地页内容等进行分词,去除停用词(“的”、“了”等),得到词项列表。

  2. 词项归一化:将词项转化为统一形式,如转为小写、词干提取(将“running”、“ran”归为“run”)。

  3. 建立倒排记录表:为每个词项创建一个列表,记录包含它的所有广告ID,以及在该广告中出现的次数(词频TF)和位置等信息。

2. 查询处理
当收到一个用户查询(例如,搜索词“新款SUV汽车”)时,系统:

  1. 对查询进行同样的分词和归一化处理,得到词项列表:[“新款”, “suv”, “汽车”]

  2. 从倒排索引中,分别取出这三个词项对应的广告ID列表。

  3. 对这些列表进行布尔运算(通常是与操作,即求交集),快速得到同时包含这三个词的所有候选广告ID集合。这个过程的速度与广告库总大小无关,只与词项对应的列表长度有关,效率极高。

3. 在计算广告中的应用与挑战

  • 搜索广告:这是倒排索引最直接的应用。用户搜索“婚纱摄影”,系统通过倒排索引瞬间召回所有购买了这一关键词的广告主广告。

  • 展示广告的上下文定向:将用户正在浏览的网页内容视为“查询”,通过倒排索引召回与页面主题相关的广告。例如,浏览一篇关于“三亚旅游攻略”的博客,召回包含“机票”、“酒店”、“防晒霜”等关键词的广告。

  • 挑战与演进

    • 语义鸿沟:倒排索引基于精确的词项匹配。“汽车”和“轿车”在语义上相近,但索引无法自动关联。这需要依靠同义词扩展或更高级的语义模型(如词向量)来弥补。

    • 个性化缺失:倒排索引只关心内容匹配,不关心“谁”在看。一个对汽车不感兴趣的用户,看到汽车广告也不会点击。这需要与用户画像、行为定向等技术结合。

    • 规模化与实时性:互联网广告库巨大且更新频繁(新广告上线、旧广告下线)。倒排索引需要支持分布式存储与更新(如基于Elasticsearch或自研分布式索引系统),并能近乎实时地生效。

倒排索引是连接“用户意图/场景”与“广告内容”的第一座桥梁,它的高效性确保了广告系统能在毫秒级时间内,从浩如烟海的广告库中初筛出可能的候选集。

10.1.2 向量空间模型

倒排索引解决了“有没有”的布尔匹配问题,但无法判断“有多相关”。向量空间模型则将这种相关性度量,转化为一个可计算的相似度分数

1. 核心思想:文档与查询的向量化
VSM的基本假设是:我们可以把一个文档(或查询)表示为一个高维空间中的向量,而这个空间的每一维,对应一个词项(来自整个词典)。向量的值,代表了该词项对于这个文档的重要性。

关键步骤

  1. 构建词典:从所有文档集合中,提取出所有独特的词项,构成一个词典。假设词典大小为N,那么每个文档(或查询)就可以表示为一个N维向量。

  2. 权重计算 - TF-IDF:这是VSM的灵魂。向量中每个维度的值(即权重)由两部分组成:

    • 词频:词项在当前文档中出现的频率。TF越高,说明该词对当前文档越重要。

    • 逆文档频率:一个词项在整个文档集合中出现的频率的倒数。IDF越高,说明该词具有很好的区分能力。像“的”、“是”这种在所有文档中都出现的词,IDF极低,重要性也低。

    • TF-IDF = TF × IDF。它平衡了词项的局部重要性和全局区分度。

  3. 相似度度量 - 余弦相似度:计算查询向量q和文档向量d之间夹角的余弦值。
    相似度(q, d) = cos(θ) = (q · d) / (||q|| * ||d||)
    点积衡量了共同词项的权重乘积之和,而分母的归一化操作消除了文档长度的影响(长文档天然包含更多词,点积可能更大)。余弦值范围在[-1, 1]之间,对于TF-IDF这种非负权重,范围在[0, 1],值越接近1,表示越相似。

2. 在计算广告中的应用

  • 广告与查询/页面的相关性排序:在搜索广告或上下文广告的召回后,可以利用VSM计算每个候选广告与用户查询(或当前页面)的余弦相似度,作为相关性初排的依据,过滤掉那些虽然匹配关键词但主题偏离的广告。

  • 文本主题特征提取:广告、页面、用户兴趣标签都可以被表示为TF-IDF向量。这些向量可以作为机器学习模型(如LR、FM)的输入特征,用于更精细的点击率预测。

  • 冷启动广告的粗排:对于一个全新的、没有任何历史行为数据(如点击)的广告,VSM提供了一种基于内容计算其与各种上下文匹配度的可行方法。

3. 局限性

  • “词袋”假设:VSM忽略词序和语法结构。“狗咬人”和“人咬狗”的向量表示是一样的。

  • 高维稀疏:词典维度N可能高达百万甚至千万级,而一个文档中出现的词是有限的,导致文档向量极度稀疏(大部分维度为0),计算和存储有挑战。

  • 语义局限:与倒排索引一样,VSM难以处理同义词(“电脑”和“计算机”)和多义词(“苹果”公司 vs “苹果”水果)问题。

尽管有这些局限,TF-IDF和余弦相似度因其简单、有效,至今仍在文本相关性的许多场景中作为基础特征或基线方法使用。它为从“精确匹配”迈向“模糊相关”迈出了关键一步,并为后续更复杂的语义建模技术(如主题模型、词向量、深度学习)铺平了道路。


10.2 最优化方法

如果说信息检索帮助系统“找到”候选广告,那么最优化方法则指导系统如何“抉择”和“分配”资源,以实现全局目标(如平台总收入最大、广告主ROI最高)的最优。计算广告本质上是一个持续不断的最优化过程。

10.2.1 拉格朗日法与凸优化

许多广告问题天然带有约束条件:广告主的预算、广告位的库存、用户的频次上限。拉格朗日乘子法是处理这类约束优化问题的经典武器,而凸优化则为其提供了坚实的理论保障和高效的求解路径。

1. 拉格朗日乘子法:给约束标价
我们考虑一个典型的广告主问题:在有限预算B下,如何分配花费到不同的关键词或人群上,以获得最大的总点击量?
形式化为:

最大化:总点击量 = Σ(点击率_i * 出价_i)
约束条件:Σ(花费_i) ≤ B

拉格朗日法的核心思想是,将约束条件以一定“价格”(拉格朗日乘子λ)引入目标函数,构造拉格朗日函数:
L(出价, λ) = Σ(点击率_i * 出价_i) + λ * (B - Σ(花费_i))
这个新函数将有约束的原问题,转化为对出价λ无约束优化问题。

经济学解释:λ可以被理解为预算的影子价格。它衡量了每增加一单位预算,能为目标函数(总点击量)带来多少增量。在最优解处,所有能带来正收益的投放渠道,其“边际收益”(点击率)与“边际成本”(λ * 花费对出价的导数)都达到平衡。如果某个渠道的边际收益低于边际成本,则应减少其投放;反之则增加。

2. 凸优化:高效求解的乐园
拉格朗日法指出了最优解应满足的条件(KKT条件),但具体求解还需要依赖问题的结构。凸优化问题是一类性质极好的优化问题:

  • 定义:目标函数是凸函数,约束定义的可行域是凸集。

  • 关键性质:任何局部最优解即是全局最优解。这意味着找到的任何一个“山峰”都是唯一的“最高峰”,避免了陷入局部最优的困境。

在计算广告中的应用

  • 点击率模型训练:逻辑回归(LR)模型的损失函数是凸的。这保证了我们使用梯度下降等算法求解模型参数时,能收敛到全局最优解,而非一个局部次优解。

  • 广告分配问题:当将广告展示视为资源,将广告主需求视为任务,并且目标函数和约束都是线性时,就形成了一个线性规划问题(凸优化的子类)。在线分配、预算平滑等问题常可抽象为此类模型。

  • 对偶理论:许多复杂的广告分配问题,其对偶问题往往有更清晰的经济学意义(如影子价格对应着广告位的市场清算价),且更容易求解。这为设计像广义第二价格这样的拍卖机制提供了理论灵感。

理解拉格朗日法和凸优化,为我们分析广告系统中的资源分配、市场均衡和算法收敛性提供了不可或缺的理论透镜。

10.2.2 下降单纯形法

1. 直观理解:在黑暗中摸索最高点

想象一下,你被蒙上眼睛放在一片起伏的山丘上,任务是找到最高点。你无法看到地形全貌(无法求导),但可以用脚感知高度(可以计算函数值)。下降单纯形法(又称Nelder-Mead方法)就是一种基于这种"触觉感知"的搜索策略。

下降单纯形法是一种直接搜索方法,它不依赖于目标函数的梯度信息,而是通过构建和变换一个几何形状——单纯形——来逐步逼近最优解。在N维空间中,单纯形是由N+1个点构成的几何体:二维空间中是三角形,三维空间中是四面体,依此类推。

2. 核心操作:反射、扩展、收缩与缩小

算法从一个初始的单纯形开始,通过对最差点的四种基本操作来更新单纯形:

  • 排序与评估:计算单纯形所有顶点的函数值,确定:

    • 最佳点(B):函数值最小的点(假设最小化问题)

    • 最差点(W):函数值最大的点

    • 次差点(S):函数值第二大的点

    • 重心点(C):除去W点后,其余所有点的几何中心

  • 反射(Reflection):这是最常用的操作。直觉是"最差点W很可能在最优点的另一侧",因此将W通过重心C进行反射,得到反射点R。
    R = C + α * (C - W),其中α是反射系数(通常为1)。
    如果R的函数值比S好但不如B,说明方向正确但还不够,用R替换W,形成新的单纯形,继续迭代。

  • 扩展(Expansion):如果反射点R的函数值比最佳点B还要好,说明这个方向潜力巨大,应该走得更远一些。
    E = C + γ * (R - C),其中γ是扩展系数(通常为2)。
    如果E比R还好,就用E替换W;否则用R替换W。

  • 收缩(Contraction):如果反射点R的函数值比次差点S还差,但比最差点W好,说明我们可能"反射过度"了。此时在C和R之间选择一个内收缩点。
    Con = C + ρ * (R - C),其中ρ是收缩系数(通常为0.5)。
    如果Con比R好,则用Con替换W。

  • 缩小(Shrink):如果反射点R比最差点W还差(说明反射操作完全失败),或者收缩后的点不理想,则进行缩小操作——将整个单纯形向最佳点B收缩。
    除了B点外,其他每个点都向B移动一半距离:P_i_new = B + σ * (P_i_old - B),其中σ是缩小系数(通常为0.5)。

3. 在计算广告中的应用场景

在计算广告系统中,下降单纯形法主要应用于那些目标函数复杂、不可导或求导代价极高的优化问题:

  • A/B测试参数调优:广告系统中有大量经验参数需要调优,如不同特征组合的权重、各种召回策略的数量配比、实时流量分配的阈值等。这些参数共同影响着系统整体的收入、用户体验等关键指标。我们可以将这些指标组合成一个综合目标函数(如:收入 * 0.7 + 用户体验得分 * 0.3),然后使用下降单纯形法在参数空间中搜索最优组合。由于评估一次目标函数需要线上A/B测试一段时间(可能是几小时),且函数表面可能不平滑,梯度信息难以获取,下降单纯形法这种黑盒优化方法非常合适。

  • 创意组合优化:程序化创意系统需要决定在特定场景下展示哪种图片、文案、按钮颜色的组合效果最好。每种组合的点击率需要通过实际曝光来估计,形成的是一个离散的、评估成本高的搜索问题。我们可以将各种创意元素编码为连续或离散的参数,使用改进的单纯形法(如适应于离散空间的变种)来探索最优创意组合,减少需要穷举测试的次数。

  • 冷启动策略优化:对于新广告主或新广告计划,缺乏历史数据,初始投放策略(如出价、定向范围)需要谨慎设置。可以通过构建一个模拟环境,将策略参数作为输入,预估的长期收益作为输出,使用单纯形法快速找到一组相对稳健的初始参数。

4. 优势与局限性

优势

  • 无需梯度:适用于目标函数不可导、不连续或存在噪声的情况,这在工程实践中很常见。

  • 概念简单:易于理解和实现。

  • 维度适应性:对于中低维度问题(通常N<20)效果良好。

局限性

  • 收敛速度慢:与梯度方法相比,收敛速度较慢,尤其在高维空间中。

  • 无法保证全局最优:对于多峰函数,容易陷入局部最优。在实践中,通常需要从多个不同的初始单纯形开始运行,以增加找到全局最优的概率。

  • 参数敏感:反射、扩展、收缩系数的选择会影响性能,虽然有一些经验值(α=1, γ=2, ρ=0.5, σ=0.5),但对于特定问题仍需调整。

工程实践技巧

  1. 初始单纯形的构建:不要使用过于"扁平"的单纯形(例如点几乎共线),这会影响搜索方向。通常从一个初始点出发,沿各坐标轴方向扰动一定步长来构造其他点。

  2. 收敛准则:通常设定两个停止条件:一是单纯形的大小(各顶点间距离的最大值)小于某个阈值;二是函数值的相对改进小于某个阈值。

  3. 与梯度法结合:对于大规模问题,可以先用单纯形法进行粗调,找到 promising 的区域,再使用梯度法进行精细优化。

下降单纯形法提供了一种朴素而强大的优化思路,它提醒我们:即使没有精确的梯度"地图",通过系统性的"试探"和"反馈",同样可以有效地在复杂的参数空间中导航。在现代计算广告系统中,它虽然不再是核心模型训练的工具,但在系统调优和策略搜索等场景中,依然占有一席之地。


10.2.3 梯度下降法

如果说下降单纯形法是在黑暗中摸索,那么梯度下降法则像是获得了一个精准的指南针,它清晰地指示了当前位置最陡峭的下山方向。这是现代机器学习和深度学习最核心的优化算法,也是计算广告中几乎所有预测模型训练的引擎。

1. 核心思想:沿着最陡的方向下山

考虑一个最小化问题:我们希望找到参数向量w,使得损失函数 L(w) 的值最小。梯度下降法的思想直观而深刻:

  1. 计算当前位置w梯度∇L(w)。梯度是一个向量,其每个分量是损失函数对对应参数的偏导数。它指向了函数值增长最快的方向。

  2. 既然我们要最小化函数,自然应该朝梯度的反方向移动。更新公式为:
    w_new = w_old - η * ∇L(w_old)
    其中,η 称为学习率,决定了每一步迈出的步伐大小。

2. 批量、随机与小批量梯度下降

根据计算梯度时使用的数据量不同,梯度下降法有三种主要变体:

  • 批量梯度下降:使用整个训练集计算梯度。优点是梯度方向准确,收敛稳定;缺点是每次更新都需要遍历全量数据,计算成本极高,不适合大数据场景。
    ∇L(w) = (1/N) * Σ_{i=1}^{N} ∇l(w; x_i, y_i)

  • 随机梯度下降:每次随机抽取一个样本计算梯度。优点是更新频率极快,可以实时学习,且固有的随机性有助于跳出局部极小点;缺点是梯度估计噪声大,收敛路径震荡剧烈。
    ∇L(w) ≈ ∇l(w; x_k, y_k)

  • 小批量梯度下降:折中方案,每次随机抽取一个小批量(mini-batch,通常是32、64、128等)数据计算梯度。这是实践中最常用的方法,它平衡了计算效率和收敛稳定性,也适合GPU的并行计算架构。
    ∇L(w) ≈ (1/B) * Σ_{i=1}^{B} ∇l(w; x_i, y_i)

3. 学习率的艺术:从固定到自适应

学习率η是梯度下降法最重要的超参数,其设定直接影响收敛速度和最终性能。

  • 固定学习率:最简单,但需要精心调参。过大会导致震荡甚至发散;过小会导致收敛缓慢。

  • 学习率衰减:随着迭代进行逐渐降低学习率。常见策略有:η_t = η_0 / (1 + decay_rate * t)(反时衰减)或η_t = η_0 * decay_rate^{t}(指数衰减)。这有助于在初期快速接近解,后期精细调整。

  • 动量法:引入"动量"概念,不仅考虑当前梯度,还累积之前的梯度方向,像滚下山的球一样带有惯性。这有助于加速收敛和减少震荡。
    v_t = γ * v_{t-1} + η * ∇L(w_t)
    w_{t+1} = w_t - v_t
    其中γ是动量系数(通常0.9)。

  • 自适应学习率算法:为每个参数设置不同的、自适应调整的学习率。这是当前的主流。

    • Adagrad:为频繁更新的参数设置较小的学习率,为不频繁更新的参数设置较大的学习率。适合处理稀疏特征(在广告场景中非常普遍)。

    • RMSprop:对Adagrad的改进,引入衰减平均来避免学习率过早过快衰减至零。

    • Adam:结合了动量(一阶矩估计)和RMSprop(二阶矩估计)的思想,并进行了偏差校正。因其优秀的默认性能和鲁棒性,成为深度学习领域事实上的标准优化器

4. 在计算广告中的核心应用

梯度下降法渗透在计算广告的每一个预测模型中:

  • 逻辑回归模型训练:逻辑回归的损失函数(对数损失)是凸函数,使用梯度下降(通常是小批量SGD或带L1/L2正则化的FTRL变种)可以高效求解。这是早期点击率预估的主流方法。

  • 深度学习模型训练:无论是用于点击率预估的Wide&Deep、DeepFM,还是用于用户画像的神经网络,其训练都严重依赖反向传播算法(本质是梯度下降)和Adam等优化器。海量的广告曝光、点击日志数据通过小批量梯度下降被"喂"给模型,不断调整其数十亿甚至数百亿的参数。

  • 在线学习:广告系统的数据流是持续不断的。为了捕捉用户兴趣的实时变化(如突发新闻事件带来的流量变化),系统需要模型能在线更新。在线梯度下降是核心技术,每来一条或一小批新数据,模型就进行一次参数更新,实现模型的"进化"。

  • 强化学习中的策略优化:在探索与利用(E&E)和动态出价等场景中,智能体(Agent)的策略网络需要通过策略梯度方法进行优化,这本质上也是一种梯度下降,目标是最大化长期累积奖励。

5. 工程实现中的挑战与技巧

  • 特征稀疏性与优化:广告特征极度稀疏(一个样本只有极少部分特征非零)。优化器需要高效处理稀疏更新。FTRL等算法就是为此设计的。

  • 分布式训练:当模型参数和数据集大到单机无法容纳时,需要分布式梯度下降。主要模式有:

    • 数据并行:将数据分片到多个工作节点,各节点计算本地梯度,然后汇总(同步或异步)更新一个全局参数服务器。

    • 模型并行:将模型本身的不同部分分布到不同机器上。这在超大模型(如千亿参数)中常用。

  • 梯度爆炸与消失:在深度神经网络中,梯度在反向传播时可能指数级增大或减小。解决方案包括:梯度裁剪(设定阈值)、使用合适的激活函数(如ReLU)、残差连接、批量归一化等。

  • 收敛性诊断:在训练中需要监控训练损失和验证集指标的变化,使用早停法防止过拟合,并通过学习率热启动、周期性学习率等策略跳出局部平坦区。

梯度下降法以其简洁而强大的思想,将复杂的模型训练问题转化为可迭代计算的优化过程。它不仅是计算广告的基石,更是整个人工智能时代最重要的算法思想之一。理解梯度下降,就握住了打开现代机器学习大门的钥匙。

10.2.4 拟牛顿法

梯度下降法只利用了一阶梯度信息,就像只知道当前位置最陡的方向,但不知道这个方向的"弯曲程度"。拟牛顿法通过近似二阶导数信息,能够更智能地调整每一步的"步幅"和"方向",从而在中等规模优化问题中实现更快的收敛速度。

1. 牛顿法的启示与困境

牛顿法是一种经典且强大的二阶优化方法。它利用目标函数 f(w)f(w) 在当前点 wkwk​ 的二阶泰勒展开:

其中 HkHk​ 是 Hessian 矩阵(二阶导数矩阵)。令导数为零,得到更新公式:

这个公式的几何意义非常优美:它不仅考虑了最速下降方向(梯度),还考虑了目标函数的局部曲率(Hessian 矩阵的逆)。当函数在某个方向非常"平坦"(二阶导数小)时,Hessian 逆会放大步长;当函数在某个方向非常"陡峭"(二阶导数大)时,Hessian 逆会缩小步长。这相当于一个自适应的、各向异性的学习率

然而,牛顿法在实际应用中面临三大挑战:

  1. 计算复杂度高:计算 Hessian 矩阵需要 O(n2)O(n2) 的计算量(n为参数维度),存储需要 O(n2)O(n2) 内存,求逆需要 O(n3)O(n3) 计算量。对于广告模型动辄百万甚至千万的参数,这是不可行的。

  2. 非凸问题的不适定性:在非凸问题中,Hessian 矩阵可能不是正定的,其逆矩阵可能不存在或不稳定,导致更新方向错误。

  3. 数据批量的需求:牛顿法通常需要在整个数据集上计算精确的梯度和Hessian,在大数据场景下计算代价高昂。

2. 拟牛顿法的核心思想:用梯度信息近似曲率

拟牛顿法的智慧在于:不直接计算Hessian矩阵,而是通过迭代过程中积累的梯度信息,构建一个正定的矩阵 BkBk​ 来近似Hessian,或者构建 DkDk​ 来近似Hessian的逆

其核心依据是Hessian矩阵满足的割线条件(Secant Condition)。记:

根据泰勒展开,有 Hk+1sk≈ykHk+1​sk​≈yk​。我们希望近似矩阵 Bk+1Bk+1​(近似Hessian)或 Dk+1Dk+1​(近似Hessian逆)满足:

这个条件称为拟牛顿条件。它意味着,近似矩阵应该能够正确地将参数空间的变化映射到梯度空间的变化。

3. BFGS算法:黄金标准

在众多拟牛顿法中,BFGS算法(以其发明者Broyden, Fletcher, Goldfarb, Shanno命名)被认为是最有效、最稳定的算法之一。它直接更新对Hessian逆的近似 DkDk​。

BFGS更新公式

这个公式虽然复杂,但具有重要的性质:如果初始 D0D0​ 是正定矩阵,并且 ykTsk>0ykT​sk​>0(通过 Wolfe 条件保证),那么 Dk+1Dk+1​ 也是正定的。这使得BFGS算法可以稳定地用于非凸问题的优化。

4. L-BFGS:面向大数据的实用变种

标准的BFGS算法需要存储 O(n2)O(n2) 的矩阵 DkDk​,这对于高维问题仍然不现实。L-BFGS(有限内存BFGS)通过一个巧妙的技巧解决了这个问题:它不显式存储矩阵,而是存储最近 m 次迭代的向量对 {si,yi}{si​,yi​}(通常 m 取 5到20),并利用这些历史信息在每次迭代时"即时"计算搜索方向

具体来说,计算搜索方向 pk=−Dk∇f(wk)pk​=−Dk​∇f(wk​) 可以通过一个高效的两循环递归算法完成,其计算复杂度仅为 O(mn)O(mn),内存消耗为 O(mn)O(mn)。这使得L-BFGS能够处理参数维度极高的优化问题。

5. 在计算广告中的应用场景

拟牛顿法,特别是L-BFGS,在计算广告中主要应用于对收敛精度和速度有较高要求、且问题规模适中的场景:

  • 传统机器学习模型的离线训练:在特征工程阶段,当我们需要训练一个精确的、可解释的线性模型(如带正则化的逻辑回归)或浅层树模型时,L-BFGS是比随机梯度下降(SGD)更优的选择。它能在全量数据上以更少的迭代次数收敛到更高精度的解,适用于对模型稳定性要求高的核心业务场景。

  • 超参数优化:在优化广告系统的综合目标(如收入、用户体验、广告主满意度等多目标加权)时,目标函数可能是一个复杂的、评估成本高的黑箱函数。基于拟牛顿法的序列模型优化(如基于高斯过程的优化)可以作为超参数搜索策略,比网格搜索或随机搜索更高效。

  • 中等规模深度学习模型的预训练:对于一些参数在百万到千万级别的深度模型(如早期的深度点击率模型),在较小的、高质量的数据子集上使用L-BFGS进行全批量训练,可以快速得到一个良好的初始点,然后切换为SGD或Adam进行大规模数据上的微调。

  • 在线学习的二阶方法近似:一些在线学习算法,如Follow-The-Regularized-Leader (FTRL),可以被视为一种特殊的自适应拟牛顿法。FTRL为每个特征维护一个累积梯度信息,从而为每个特征维度自适应地调整学习率,这相当于对Hessian矩阵的对角线进行了近似。它在稀疏高维特征(广告场景的典型特征)的在线优化中表现出色。

6. 与一阶方法的比较与选择

特性随机梯度下降(SGD/Adam)拟牛顿法(L-BFGS)
收敛速度一阶线性收敛,较慢超线性收敛,较快
每次迭代成本极低(小批量)中高(需计算精确梯度,并执行两循环递归)
内存需求低(只存参数和动量)中等(存储m组历史向量)
调参难度需要调学习率、动量等相对简单(主要调历史大小m)
大数据适应性极佳,天生适合一般,需全量或大批量梯度
非凸问题稳定性好,随机性有助于逃离局部极小需谨慎,依赖 Wolfe 条件保证正定性

选择指南

  • 当模型参数极多(>10亿)、数据量巨大、且对单次迭代速度敏感时,选择Adam等自适应一阶方法

  • 当模型参数在百万到亿级别、有高质量的中等规模数据集、且追求高精度解时,优先尝试L-BFGS

  • 在在线学习场景,处理稀疏逻辑回归问题时,FTRL是工业界标配

拟牛顿法,特别是L-BFGS,代表了确定性优化算法在精度和效率上的一个优美平衡点。它提醒我们,在追求大规模随机优化的今天,对于某些关键的子问题,采用更精确、更智能的优化策略,往往能带来整体系统性能的显著提升。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/1/29 12:29:03

鸿蒙PC UI控件库 - Label 基础标签详解

视频演示地址&#xff1a; https://www.bilibili.com/video/BV1jomdBBE4H/ &#x1f4cb; 目录 概述特性快速开始API 参考使用示例主题配置最佳实践常见问题总结 概述 Label 是控件库中的基础标签组件&#xff0c;支持多种尺寸、颜色、图标等功能&#xff0c;适用于状态标…

作者头像 李华
网站建设 2026/2/2 6:19:49

分享一个vscode的todo插件(todo Tree 包含使用

TodoTree插件是一款高效的任务管理工具&#xff0c;用户可通过插件商店下载安装。该插件以树状结构展示文件列表&#xff0c;支持使用Ctrl/快捷键快速添加注释&#xff0c;输入"TODO"即可标记待办事项。安装后能直观查看和管理代码中的任务标记&#xff0c;提升开发效…

作者头像 李华
网站建设 2026/2/5 15:36:19

踩坑记:DBeaver连接GBase 8S时“编码转换失败”的终极解决

本文由真实问题排查过程整理&#xff0c;适用于使用 DBeaver 连接 GBase 8s 遇到 java.sql.SQLException: 数据库地点信息不匹配 的开发者。问题现象 在 DBeaver 中使用官方 JDBC 驱动连接 image_analysis_db 时&#xff0c;只要 SQL 中包含中文&#xff0c;例如&#xff1a; I…

作者头像 李华
网站建设 2026/2/6 18:39:00

Java反射机制:原理、应用与最佳实践

在Java开发中&#xff0c;反射机制是一项核心且强大的技术&#xff0c;它允许程序在运行时获取类的信息、操作对象的属性和方法&#xff0c;甚至动态创建对象。本文将从原理、应用场景到最佳实践&#xff0c;全面解析Java反射机制&#xff0c;帮助开发者灵活运用这一技术。一、…

作者头像 李华
网站建设 2026/2/6 23:21:48

ReAct+LangGraph:构建大模型智能体的完整指南(含代码示例)

简介 本文详细介绍了如何使用LangGraph框架构建ReAct智能体&#xff0c;分为硬编码和基于大语言模型两种实现方式。ReAct框架通过"推理行动"的循环流程&#xff0c;使智能体能思考并解决问题。LangGraph允许将智能体行为定义为"图"结构&#xff0c;支持复杂…

作者头像 李华
网站建设 2026/2/6 17:36:03

从千问灵光 App 看生成式 UI 技术的发展

本文由体验技术团队OpenTiny项目负责人莫春辉老师原创。 引言 2025 年 11 月 18 日&#xff0c;蚂蚁集团全模态通用 AI 助手——灵光 App 发布&#xff0c;上线两周用户已创建 330 万个闪应用。这一现象级数据的背后&#xff0c;不仅是开发效率的提升&#xff0c;更是人机交互…

作者头像 李华