ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

从机器学习到LLM:广告系统如何成为AI技术的炼金石与价值闭环

从机器学习到LLM:广告系统如何成为AI技术的炼金石与价值闭环 1. 项目概述当AGI的“A”被重新定义最近HackerNews上一个帖子火了标题直白又带点黑色幽默“AGI 的 A原来代表的是 Ads广告”。这个帖子像一颗石子在技术社区的池塘里激起了不小的涟漪。AGI通用人工智能长久以来被我们视为技术圣杯是科幻与现实交织的终极梦想。然而这个帖子却用一种近乎解构的方式将我们拉回了现实在当下轰轰烈烈的大模型浪潮中那个最宏大叙事里的“A”其最直接、最普遍、最“成功”的落地形态似乎正指向一个我们既熟悉又有些抗拒的领域——广告。这不仅仅是一个文字游戏或讽刺段子。它精准地戳中了一个行业现象无数顶尖的AI研究人才、海量的算力资源、前沿的模型架构其最终的价值闭环常常绕不开“更精准地推送一条信息以促成一次点击或购买”这个核心目标。从搜索引擎的竞价排名到社交媒体的信息流推荐再到电商平台的个性化商品展示广告技术AdTech一直是机器学习乃至如今深度学习、大模型技术最成熟、最赚钱的应用场景之一。当AGI级别的能力开始涌现我们看到的第一个大规模应用爆发点很可能不是解决癌症或星际旅行而是让广告变得前所未有的“聪明”和“难以抗拒”。这篇文章我想从一个一线从业者的角度来深度拆解这个现象背后的逻辑。我们不去空谈伦理或未来而是聚焦于当下为什么广告成了AI技术特别是大模型技术最“自然”的归宿这背后的技术栈是如何演进的作为一个开发者或创业者我们又该如何看待和参与其中无论你是对AI感兴趣的技术人还是关注商业变现的产品经理或是单纯对技术趋势感到好奇的观察者希望这篇结合了技术原理、商业逻辑和实操思考的长文能给你带来一些不一样的视角。2. 核心逻辑拆解为什么是广告要理解“A for Ads”这个现象我们不能停留在表面嘲讽而需要深入其背后的商业与技术双重逻辑。这并非偶然而是一系列因素共同作用的必然结果。2.1 商业逻辑的绝对适配闭环短、反馈快、价值可量化首先从商业角度看广告是AI技术近乎完美的试验田和应用场。1. 极短的价值闭环一个AI模型从接收请求用户搜索、浏览到产生行动展示广告再到获取反馈点击、转化整个过程可以在毫秒到几分钟内完成。这种即时反馈是AI模型迭代优化的黄金燃料。相比之下医疗AI诊断需要漫长的临床验证自动驾驶AI的反馈周期涉及复杂的安全路测其闭环长度和成本完全不在一个量级。2. 海量、高质量的数据互联网广告生态积累了近二十年的用户行为数据——点击、浏览、搜索、购买、停留时长……这些数据不仅是海量的而且是高度结构化和有标签的点击即正样本忽略即负样本。对于依赖大数据训练的现代AI模型尤其是深度学习模型这无异于一座金矿。3. 清晰可量化的优化目标广告的核心指标极其清晰CTR点击率、CVR转化率、ROI投资回报率。这些指标都是可量化的数字可以直接作为机器学习模型的损失函数Loss Function进行优化。技术团队的目标和业务团队的目标在此高度统一避免了“技术很牛但商业价值不明”的窘境。4. 强大的付费意愿和成熟的商业模式广告市场是一个万亿级别的成熟市场。广告主为了获取客户有明确的预算和强烈的付费意愿。这意味着任何能微小提升广告效果的技术哪怕是0.1%的CTR提升都能立刻产生巨大的经济回报从而反哺技术研发形成“收入-研发-效果提升-更多收入”的正向飞轮。2.2 技术演进的必然路径从LR到深度学习再到LLM从技术演进史来看广告系统本身就是机器学习技术发展的前沿阵地和“第一客户”。1. 机器学习时代早在21世纪初逻辑回归Logistic Regression, LR、梯度提升决策树GBDT等模型就已经是广告点击率预估的核心。特征工程是当时的核心竞争力工程师们绞尽脑汁地组合用户、广告、上下文特征。2. 深度学习时代随着算力和数据的爆发深度学习开始统治广告推荐。Google的Wide Deep模型2016年是一个标志性事件它巧妙地将记忆宽模型与泛化深模型结合。随后DeepFM、DIN、DIEN等一系列针对广告场景设计的深度网络层出不穷核心目标就是更好地建模用户兴趣的动态变化和序列依赖。3. 大模型LLM时代当ChatGPT横空出世展现出了强大的自然语言理解和生成能力后广告行业几乎是第一时间嗅到了商机。这里的应用不再是简单的“预估点击率”而是进入了“理解与创造”的新层面 *深度内容理解LLM可以理解广告创意文案、图片描述、视频字幕的深层语义和情感倾向实现更精准的创意-受众匹配。 *个性化创意生成根据目标用户的画像实时生成或优化广告文案、标题实现“千人千面”的创意。 *智能出价与预算分配LLM能够处理更复杂的、非结构化的市场信息如新闻、社交媒体情绪辅助做出更智能的实时出价RTB决策。 *对话式广告交互未来的广告可能不再是静态展示而是通过智能体Agent与用户进行多轮对话深度挖掘需求后推荐最合适的商品或服务。注意技术演进并非后者完全取代前者。在实际的工业级广告系统中常常是“多层模型”的混合体LLM负责上层理解和策略深度学习模型负责精准预估简单的线性模型保证稳定和可解释性形成一个协同工作的技术栈。3. 技术架构深潜现代广告AI系统核心组件理解了“为什么是广告”之后我们来看看一个现代化的、融入大模型能力的广告AI系统到底由哪些核心部件构成。这能帮助我们看清“A for Ads”的具体技术实现。3.1 召回系统从十亿候选池中快速筛选广告库动辄拥有数十亿的广告素材。召回系统的任务就是在极短的时间内通常100毫秒从这片汪洋大海中为当前用户和上下文场景筛选出几百到几千个最相关的候选广告。大模型在这里发挥了革命性作用。传统方法主要依赖倒排索引基于关键词匹配和向量化召回如使用Word2Vec、BERT将广告和用户兴趣表示为向量进行近似最近邻搜索。大模型增强多模态统一编码使用类似CLIP的模型将广告的文案、图片、视频帧以及用户的浏览历史文本、个人资料等全部映射到同一个高维语义空间。这样“喜欢看越野车测评视频的用户”和“一款SUV的广告图片”即使没有共同关键词也能在向量空间中找到关联。序列兴趣建模使用Transformer或更轻量的序列模型对用户最近一段时间的行为序列点击、搜索、观看进行建模捕捉其动态、演变的兴趣点而不仅仅是静态画像。图神经网络应用将用户、广告、商品、商家构建成异构图利用图神经网络挖掘深层次的关联关系发现“潜在兴趣”。例如通过“朋友喜欢的广告”来召回你可能感兴趣的广告。实操心得召回阶段的首要目标是“快”和“全”高召回率对精度要求相对宽松。因此通常会对大模型进行蒸馏或量化生成轻量化的版本或者仅用其生成高质量的向量表征再交给高效的向量数据库如FAISS, Milvus进行检索。一个常见的坑是盲目追求召回模型的复杂度导致线上延迟飙升最终拖累整个系统。必须做严格的性能压测和精度-延迟权衡。3.2 排序系统精准预估每一次展示的价值召回后的几百个广告谁应该排在第一位这就是排序系统的任务它需要精准预估每个广告对于当前用户的价值通常是点击率CTR、转化率CVR或综合收益eCPM。核心技术深度排序模型这是广告AI系统的核心引擎经历了从LR-FM-DeepFM-多任务学习、序列建模的演进。特征工程自动化大模型特别是LLM可以辅助进行特征生成和交叉。例如将用户历史行为文本和广告文案输入LLM直接生成“匹配度评分”或“关键兴趣点”作为新特征输入给下游的排序模型。多任务学习一个模型同时预估CTR和CVR。因为“点击”和“转化”是相关联的联合训练可以共享特征表示相互促进缓解转化数据稀疏的问题。模型结构如MMoE、PLE等被广泛应用。用户兴趣动态网络如阿里的DINDeep Interest Network和DIENDeep Interest Evolution Network。DIEN通过模拟用户兴趣的演变过程使用GRU等序列模型来捕捉兴趣的动态变化对于电商广告这种兴趣迁移快的场景效果显著。实时在线学习为了快速捕捉热点事件和用户兴趣变化排序模型需要具备在线更新能力。流式计算平台如Flink实时处理用户反馈日志曝光、点击以微批或逐样本的方式更新模型参数。这对系统的稳定性和数据一致性提出了极高要求。参数计算示例eCPM排序广告的最终排序分数通常由eCPM bid_price * pCTR * pCVR决定。bid_price广告主的出价。pCTR模型预估的点击率。pCVR模型预估的转化率。 系统会计算每个候选广告的eCPM并据此排序。这里的关键就在于pCTR和pCVR的预估是否准确直接决定了平台的收入和用户体验。3.3 创意生成与优化LLM的“主战场”这是大模型最能直接发挥创造力的部分也是“A for Ads”最直观的体现。个性化文案生成输入产品信息、目标受众标签如“25-30岁一线城市科技爱好者”、品牌调性LLM可以批量生成数十条不同风格、不同侧重点的广告文案。A/B测试可以从中筛选出效果最好的几条。创意元素组合基于多模态大模型如DALL-E, Stable Diffusion系统可以根据文案自动生成或优化配图确保图文高度一致且吸引眼球。甚至可以生成短视频脚本和分镜。智能剪辑与包装对于视频广告AI可以自动识别高光片段、添加转场特效、匹配背景音乐并生成不同时长15秒、30秒、60秒的版本适配不同的广告位。动态创意优化在广告投放过程中系统实时根据不同人群的反馈自动调整创意元素的组合。例如对女性用户展示A文案B图片对男性用户展示C文案D图片实现创意层面的“千人千面”。提示在实际应用中完全依赖LLM生成创意存在风险如生成不合规内容、品牌调性不符。成熟的方案是“人机协作”LLM负责提供大量创意草稿和灵感由人类运营人员进行审核、筛选和精修确保质量和安全。4. 实战推演构建一个简易的AI广告推荐引擎原型为了让大家有更切身的体会我们抛开庞大的工业系统设想一个简化场景为一个垂直电商网站比如卖户外装备的搭建一个AI广告推荐引擎的原型。我们将使用Python和一些开源工具来模拟核心流程。4.1 环境准备与数据模拟我们首先需要模拟数据。在真实环境中这些数据来自用户日志和商品数据库。import pandas as pd import numpy as np from sklearn.model_selection import train_test_split import torch import torch.nn as nn # 模拟用户特征 np.random.seed(42) n_users 10000 user_data pd.DataFrame({ user_id: range(n_users), age: np.random.randint(18, 60, n_users), gender: np.random.choice([M, F], n_users), city_tier: np.random.choice([1, 2, 3], n_users, p[0.2, 0.5, 0.3]), # 城市等级 avg_order_value: np.random.lognormal(5, 0.5, n_users).round(2), # 历史平均订单金额 }) # 模拟广告商品特征 n_ads 1000 ad_data pd.DataFrame({ ad_id: range(n_ads), category: np.random.choice([帐篷, 睡袋, 登山杖, 冲锋衣, 徒步鞋], n_ads), price: np.random.uniform(50, 2000, n_ads).round(2), brand: np.random.choice([品牌A, 品牌B, 品牌C, 小众品牌], n_ads), }) # 模拟历史交互数据训练数据 # 假设我们有100万条历史曝光点击记录 n_records 1000000 records [] for _ in range(n_records): u np.random.randint(0, n_users) a np.random.randint(0, n_ads) # 点击率由用户和广告特征共同决定一个简化的逻辑 user_feat user_data.iloc[u] ad_feat ad_data.iloc[a] # 模拟一个简单的模式年轻人更爱点击特定品牌高消费用户对价格不敏感等 ctr_base 0.02 if user_feat[age] 30 and ad_feat[brand] 品牌A: ctr_base 0.03 if user_feat[avg_order_value] 500 and ad_feat[price] 1000: ctr_base 0.01 if user_feat[gender] M and ad_feat[category] 冲锋衣: ctr_base 0.015 # 添加一些随机噪声 ctr np.clip(ctr_base np.random.normal(0, 0.005), 0.001, 0.1) click 1 if np.random.rand() ctr else 0 records.append([u, a, click]) interaction_data pd.DataFrame(records, columns[user_id, ad_id, click])4.2 构建一个简易的深度CTR预估模型我们将构建一个类似DeepFM的简化模型它结合了线性部分记忆和深度神经网络部分泛化。import torch.nn.functional as F class SimplifiedDeepCTR(nn.Module): def __init__(self, user_feat_dim, ad_feat_dim, embed_dim8, hidden_dims[64, 32]): super().__init__() # 嵌入层将稀疏的类别特征如user_id, ad_id, category, brand映射为稠密向量 self.user_embed nn.Embedding(n_users, embed_dim) self.ad_embed nn.Embedding(n_ads, embed_dim) self.category_embed nn.Embedding(len(ad_data[category].unique()), embed_dim) self.brand_embed nn.Embedding(len(ad_data[brand].unique()), embed_dim) # 线性部分宽模型处理数值特征和嵌入向量的简单交互 linear_input_dim user_feat_dim ad_feat_dim 4 * embed_dim # 4个嵌入特征 self.linear nn.Linear(linear_input_dim, 1) # 深度部分深模型 deep_input_dim 4 * embed_dim # 只将嵌入特征输入深度网络进行复杂交叉 deep_layers [] prev_dim deep_input_dim for hidden_dim in hidden_dims: deep_layers.append(nn.Linear(prev_dim, hidden_dim)) deep_layers.append(nn.ReLU()) deep_layers.append(nn.Dropout(0.2)) prev_dim hidden_dim deep_layers.append(nn.Linear(prev_dim, 1)) self.deep_path nn.Sequential(*deep_layers) def forward(self, user_features, ad_features, user_id, ad_id, category_idx, brand_idx): # 获取嵌入向量 u_emb self.user_embed(user_id) a_emb self.ad_embed(ad_id) cat_emb self.category_embed(category_idx) brd_emb self.brand_embed(brand_idx) # 拼接所有特征 wide_input torch.cat([user_features, ad_features, u_emb, a_emb, cat_emb, brd_emb], dim1) deep_input torch.cat([u_emb, a_emb, cat_emb, brd_emb], dim1) # 宽模型输出 wide_output self.linear(wide_input) # 深模型输出 deep_output self.deep_path(deep_input) # 结合两部分输出 combined wide_output deep_output # 使用Sigmoid激活函数输出点击概率 ctr_pred torch.sigmoid(combined) return ctr_pred.squeeze() # 准备训练数据这里需要将数据转换为Tensor过程略 # 模型训练过程定义损失函数BCELoss优化器Adam训练循环等这个简化模型包含了现代CTR模型的核心思想利用嵌入层处理高维稀疏特征并用深度网络学习特征间复杂的非线性关系。在实际工业系统中特征数量会多得多成千上万网络结构也会更复杂如Attention Cross Network等。4.3 线上服务与A/B测试框架模型训练好后需要部署为线上服务。我们会使用一个轻量级的Web框架如FastAPI来构建推荐接口。from fastapi import FastAPI import pickle import numpy as np app FastAPI() # 假设我们已经加载了训练好的模型和预处理工具 model torch.load(ctr_model.pth) model.eval() label_encoders pickle.load(open(label_encoders.pkl, rb)) app.post(/recommend) async def recommend(user_info: dict, context_info: dict): user_info: 包含user_id, 以及实时特征如当前浏览页面 context_info: 包含上下文信息如时间、设备 # 1. 召回阶段简化从全量广告中根据规则或向量检索出100个候选广告 candidate_ad_ids recall_ads(user_info, context_info, top_k100) # 2. 排序阶段对100个候选广告逐一用模型预估CTR scores [] for ad_id in candidate_ad_ids: # 构造模型输入特征 feature_vector prepare_features(user_info, ad_id, context_info) # 转换为Tensor并预测 with torch.no_grad(): ctr_score model(feature_vector).item() # 假设广告主出价是固定的这里简化为CTR排序 scores.append((ad_id, ctr_score)) # 3. 按分数排序返回Top-N scores.sort(keylambda x: x[1], reverseTrue) top_n_ads [ad_id for ad_id, _ in scores[:10]] return {recommended_ad_ids: top_n_ads} # A/B测试框架思路 # 我们将流量随机分为A组对照组用老模型/策略和B组实验组用新模型。 # 在推荐接口中根据用户ID哈希值决定进入哪一组。 # 分别记录两组的核心指标CTR、CVR、人均曝光价值等。 # 运行一段时间后进行统计显著性检验如t-test判断新模型是否显著优于旧模型。这个原型系统勾勒出了从数据到模型再到线上服务的核心链路。虽然极度简化但其中的每一步——特征工程、模型设计、线上服务、效果评估——都是工业级系统的缩影。5. 避坑指南与未来思考在广告AI这个领域摸爬滚打光有技术热情不够还得有踩坑和爬出来的经验。下面分享几个关键的注意事项和对未来的一些观察。5.1 实操中常见的“坑”与应对策略数据泄露与特征穿越这是排序模型最容易出问题的地方。严禁使用未来信息例如用“用户本次是否购买”作为特征来预测“用户本次是否点击”这会导致模型在线上完全失效。必须确保所有特征在预测时刻都是已知的。在构造训练样本时要严格按照时间戳划分用t时刻之前的行为预测t时刻的动作。线上线下指标不一致模型离线评估的AUC曲线下面积可能很高但上线后CTR纹丝不动甚至下降。原因可能包括特征不一致离线训练的特征管道和线上服务的特征管道有细微差别如缺失值处理、分桶边界。数据分布偏移线上流量分布与训练数据分布不同例如节假日流量模式变化。反馈延迟转化数据有延迟离线评估时用了全量转化数据但线上模型只能看到部分转化。对策建立完善的线上A/B测试平台是黄金标准。同时要做线上-线下特征一致性校验并引入更贴近业务的离线评估指标如Calibration 预测CTR与实际CTR的吻合度。模型冷启动与探索利用困境对于新广告或新用户模型没有历史数据无法做出准确预测。如果只推荐模型认为“好”的可能会陷入信息茧房错过潜在的好广告。策略需要引入探索机制例如Thompson Sampling、UCB置信上界等Bandit算法主动分配一小部分流量去尝试新内容收集反馈丰富模型认知。系统延迟与性能瓶颈广告请求是海量且高并发的要求响应在百毫秒内完成。复杂的模型尤其是LLM直接用于线上推理是不现实的。方案采用分层架构。LLM用于离线或近线的创意生成、用户兴趣挖掘生成高质量的特征或标签。线上服务使用轻量级模型如对LLM进行知识蒸馏后的小模型或高性能向量检索引擎。缓存Cache策略也至关重要对热门用户或广告的结果进行缓存。5.2 关于“A for Ads”的再思考是终点还是起点HackerNews帖子的调侃引人深思但我们或许不必过于悲观。广告作为“技术炼金石”广告场景的苛刻要求高并发、低延迟、高可用、强实时反馈倒逼着AI工程技术的飞速发展。模型压缩、分布式训练、在线学习、特征平台、AB实验平台……这些在广告系统锤炼出来的技术和基础设施最终会溢出到其他AI应用领域比如推荐系统、金融风控、智能客服等。广告养活了AI研发也磨砺了AI工程能力。从“广告”到“智能服务”大模型带来的真正变革是让交互从“推送”走向“对话”。未来的“广告”形态可能会彻底改变。它可能是一个理解你装修需求的智能助手在与你对话后推荐最适合的家具品牌、设计服务和本地商家并完成预约。此时的“广告”已经升维为“智能商业服务”其核心是满足用户深层需求而变现只是价值匹配后自然的结果。AGI的“A”也许先从Ads开始但绝不会止步于Ads。对从业者的启示对于技术人员而言广告AI系统是一个绝佳的学习和练手场景。它涵盖了机器学习从数据、特征、模型、评估到上线的全链路并且有清晰的价值衡量。深入其中你能获得宝贵的工业级实战经验。但同时也要保持更广阔的视野思考手中的技术如何能应用到更具社会价值的领域让“A”最终能代表更多元、更美好的可能性。
返回列表