百度计算广告学沙龙学习笔记 - 内容匹配广告

第三期百度计算广告学沙龙( http://wenku.baidu.com/course/view/1488bfd5b9f3f90f76c61b8d ) 介绍了内容匹配广告和展示广告相关技术。本博客记录观看内容匹配广告部分的一些笔记, 绝大多数为原slide内容,只做简单的整理。


背景

     涉及四方:网民(Users) + 网站主 (Publishers) + 广告主(Advertisers) + 网盟 (AdNetwork/Matcher)
     广告计费
          计费方式
               CPC 按点击收费
               CPM 按展示收费
               CPC+CPM 混合收费
          广义二阶价格拍卖 (Generalized second price)

网盟广告检索系统

广告系统整体架构


广告系统相关技术



应用技术 - 分层实验框架

     AB-Test
     用户实验/页面实验/随机实验
     通过分层流量复用提高实验并发率
     Reference: Overlapping Experiment Infrastructure: More, Better, Faster Experimentation (Google KDD 2010)

应用技术 - 用户识别

     浏览器插件/客户端软件/HTTP Cookie/Flash Cookie/本地用户数据(如everCookie)/IP+UA/登陆帐号
     用户识别技术新动向 - CookieMatching

应用技术 - 高性能检索

计算模型


     触发策略->过滤策略->初选策略->精选策略 (广告量减少, 计算量增加)

网络模型


     同步模型, 半异步模型, 全异步模型
     慢Query对系统吞吐量影响
          产生原因: 攻击行为, 实验引入, 服务bug, 网络抖动, 机器异常
          监控处理: 比例波动检测以确定原因;自我保护,超过阈值则终端; Cache结果; 简化算法牺牲效果, 直接丢弃

索引模型

     广告库的逻辑结构
          帐户->计划->推广组->广告
     技术要求
          实时性更新: 1s内生效, 高并发读写
          高查询性能: 查询qps达到每秒100万 - 1000万
     技术方案需要
          无锁的并发模型
          全内存的数据模型
     无锁的并发模型
          COW(Copy on Write) 读写分离
          延迟销毁

索引扩展

     划分: 数据均匀, 计算均匀, 计算重复, 数据重复,带宽增长

     整体索引系统框架

系统要求

     高时效性;  高容错性 (实时检索服务, 特征存储服务, 数据推送服务);  高实验性;  高一致性;  高扩展性;  高可用性

网盟广告匹配算法

广告投放

     按广告主表达方式分类
          1. 关键词 (输入)
          2. 标签(选择)
          3. 规则(输入/选择)
     按建模对象分类
          1. 用户维度 - 以Cookie为建模对象
          2. 流量维度 - 以当前URL为建模对象
     其他分类维度
          1. 时空维度:当前/历史,长期/短期,地域
          2. 优化目标:品牌,展现,点击,转化
          3. 数据来源:搜索、浏览

广告特点

     1. 低点击率
     2. 低margin
     3. ROI难量化
     4.用户体验难量化
     

广告检索

广告检索漏斗模型

     1. 片段触发;  2. 相关性排序;  3. 业务过滤;  4. CPM排序; 5. 机制调整
     效果与性能的折中

片段触发

     片段来源: 1.  当前网页; 2.  用户历史行为
     片段类型: 1.  关键词;   2. 用户/流量标签;  3. 规则模板

相关性排序

     衡量匹配度:  1. Term Match;  2. Topic Match;  3. Category Match
     相关性排序
          综合考虑各个匹配度的回归模型
          1. 人工语料标注
          2. 模型训练
          3. 随着语料规模的增加, 更多离散特征
          4. 人工辅助规则(行业矩阵)

业务过滤

     地域过滤,时间过滤,预算过滤,IP过滤,站点过滤,创意优选

CPM排序

     eCPM排序
          eCPM = bid * Q
          price_i = (bid_(i+1) * Q_(i+1)) / Q_i

机制调整

     过展现控制
     Hidden Cost
          广告对用户/站点体验的伤害
          对排名CPM调整 CPM = (Bid - HC) * Q
          对计费进行调整 Price = CPM(next) / Q + HC

页面特征提取

     基础特征提取

          页面结构特征
          Refer Query提词
          站点频道提词
          流量质量划分
          页面主题分类

     Term赋权

          统计维度:基本的TF*IDF赋权方式
          结构维度:网页结构角度,主要是Term的位置
          语义维度:从语义角度理解网页,利用篇章主题校验
          广告库维度:关键词的购买信息
          

用户特征提取

     历史Query特征

          拍卖词包含匹配算法
          切词/专名边界校验
          语义相关性校验
          Query分类

     历史浏览特征

          网页关键词提取
          网页分类特征
          历史广告点击
          历史浏览页面模板

     用户分类特征

          特征提取
               Query关键词
               Query分类
               站点
               页面标题,目录,主要区域
               页面分类
               广告点击,广告分类
               频次,组合,时间衰减
          规则模型
               特征挖掘
               人工评估
               决策树
          机器学习模型
               语料净化(先验语料,广告点击语料)
               特征选择
               模型构建(分类模型,lookalike,推荐模型)
               效果评估

     时效性

     用户体验

          用户体验
               单调性(连续展现)
               醒目度(多媒体多广告位)
               敏感性(涉及敏感行业关键词)
          用户反馈
               兴趣
               广告

     Session特征分析 (连续用户行为)

          关键词提取修正:如:魔兽宝宝->宝宝
          意图识别: 购买/维修/查询
          语义扩展

广告特征提取

     拍卖词特征

          结构分析
          Term赋权

     创意特征

          文本创意 - 飘红, 关键词,长度
          多媒体创意 - 颜色,形状,大小,语义

     到达页特征

          网页分析
          页面主题
          转化页/咨询页

     广告特征应用

          广告分类 - 行业,敏感,欺诈
          不相关提词挖掘
          相关性匹配

广告CTR预估问题

CTR预估要解决的问题


CTR预估问题的挑战

     挑战1 - 数据
          海量数据
               训练样本:每天上亿级别的访问量
               特征类型复杂:广告,用户,流量,季节,节假日等
          点击率偏低
          噪音数据多
          问题:海量 数据,高维特征,类别极端不平衡,噪音大

     挑战2 - 时效性
          CTR随时间改变 - 季节,兴趣
          bad case快速下线  新广告, 新网站迭代调优
          方法
               在线算法
               移动时间窗口的Batch算法

     挑战3 - Exploration
          CTR预估决定未来训练样本中的广告
          Exploration/Exploitation trade-off
          长期收益 vs 短期收益

从机器学习角度看CTR预估问题



CTR预估问题的训练流程


CTR预估问题的机器学习算法

特征

     1. 主要特征
          用户,流量广告
     2. 特征类型
          类别型特征 categorical features
          连续值特征
     3. 特征表示
          使用one-hot编码
          使用特征外积表示特征组合
          特征维数表示类别个数和,特征个数海量

特征选择

     1. Filter类
          单特征AUC, 单特征AUC上界, gini指数,信息熵,点击直方图
     2. Wrapper类
          AUC, AUC上界,MAE, WMAE, 似然Loss, 预估CTR均值,预估CTR方差
     3. embedding类
          L1正则化 Grafting分 Foba分

数据

     数据来源
          展现日志,点击日志, 用户搜索日志等
     数据处理
          日志拼接,不全日志删除
     数据净化
          异常数据过滤 (去除噪音, 比如作弊数据)
          不可见日志删除

模型

     线性逻辑回归模型



     参数估计
          最大似然
          基于拟牛顿迭代计算

模型训练

     分布式并行计算
          MPI (Message Passing Interface) 基于进程通信的计算模型, 适合模型训练
          Hadoop: 基于Map-Reduce超大数据量并发计算, 适合数据预处理
     模型更新
          每过一定周期,重新训练模型
          模型在线实时更新

评估系统

     线上评估
          通过流量对比,观察收入各项指标的影响,包括CTR, CPM, ACP, 到达, 二跳
     线下评估
          类别不平衡
               模型排序能力: AUC
               模型拟合能力: 对数拟然

大规模分布式机器学习算法

     特征编码及选择
     数据净化
     大规模分布式训练
     线上线下效果评估

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 学习Unity3d游戏开发最重要的是掌握Unity3d的基础知识,比如引擎的基本概念,游戏对象,组件,脚本,着色器,场景管理等。然后可以尝试使用Unity3d官方提供的实例项目或者参考书籍来学习Unity3d的详细用法,学习如何创建和编辑游戏内容,如模型,贴图,场景等。最后,要多参加Unity相关的会议、沙龙、培训等活动,学习Unity相关的新技术,提高自己的技能水平。 ### 回答2: 学习Unity3D游戏开发需要一定的时间和耐心。以下是一些建议: 1. 学习基础知识:首先,需要学习基本的编程语言,比如C#。掌握面向对象的编程概念和语法,这对于理解Unity3D的脚本开发非常重要。可以通过参加培训课程、在线教程或阅读相关书籍来学习。 2. 下载Unity3D软件:前往Unity官方网站,下载并安装Unity3D软件。免费版已经包含了许多常用的功能和资源,足以进行学习和开发。 3. 学习基本操作:在开始游戏开发之前,需要熟悉Unity3D的基本界面和操作。掌握场景编辑器、资源管理器、动画编辑器等工具的使用方法,以及如何创建和管理游戏对象和组件。 4. 观看视频教程:有许多优质的Unity3D视频教程可供学习。通过观看这些教程,可以了解到游戏开发中的常用技术和技巧。可以在YouTube、网课平台或Unity官方网站上找到适合自己的教程。 5. 练习项目:通过做一些小项目,加深对Unity3D开发的理解和掌握。可以从简单的2D游戏开始,逐渐挑战更复杂的项目。可以从Unity的官方示例项目入手,然后尝试自己设计和开发游戏。 6. 参与社区:加入Unity3D的开发者社区,与其他开发者交流和分享经验。可以参加游戏开发的论坛、社交媒体群组,或者参加当地的Unity3D开发者聚会。这样可以获取更多实际项目经验和学习资源。 总之,学习Unity3D游戏开发需要不断的实践和探索。通过多方面的学习渠道和项目实践,可以逐渐熟悉和掌握游戏开发的各个方面。记得保持耐心和积极的学习态度,在学习的过程中享受乐趣。 ### 回答3: 学习Unity3D游戏开发可以按以下步骤进行: 1. 学习基础知识:首先,要了解游戏开发的基本概念和术语,如游戏循环、场景、角色、物理引擎等。可以通过在线教程、参考书籍或视频教程来学习,建议选择入门级的资源。 2. 安装Unity3D引擎:前往Unity官方网站,下载并安装最新版的Unity3D引擎软件。它提供了一个直观的用户界面和丰富的工具,使您可以创建和编辑游戏。 3. 学习Unity3D编辑器:了解Unity3D编辑器的各个功能和操作方法,熟悉界面布局、资源管理、场景编辑等。可以通过官方文档、教程或互动教学来学习。 4. 学习编程语言:Unity3D支持多种编程语言,如C#和JavaScript。选择一种你熟悉或感兴趣的语言,并学习如何在Unity3D中使用该语言进行游戏开发。可以通过官方文档、在线课程或书籍来学习。 5. 实践项目:理论学习之后,最重要的是进行实践。开始创建一些简单的小游戏项目,例如迷宫游戏或射击游戏。通过实践,您将了解如何使用Unity3D的各种功能和技术。 6. 参加社区和论坛:加入Unity3D开发者社区和论坛,与其他开发者互动并分享经验。这样不仅能学到更多技术知识,还能获取一些实用的建议和解决方案。 7. 持续学习和提升:游戏开发是一个不断发展和变化的领域。保持对新技术和工具的学习兴趣,不断提升自己的技能和知识。 总之,学习Unity3D游戏开发需要坚持实践和不断学习。通过深入理解游戏开发的核心概念、熟悉Unity3D引擎和编程语言,不断实践和提升自己的技能,你就能够逐渐成为一名优秀的Unity3D游戏开发者。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值