一文梳理2019年腾讯广告算法大赛冠军方案

本文详细解读了2019腾讯广告算法大赛冠军方案,涵盖了数据预处理、特征工程、模型构建等方面。方案涉及CIN、Key-Value Memory Network、Word2Vec和DeepWalk等模型的融合,通过数据清洗、统计曝光量、异常检测等步骤,构建有监督的模型训练。模型中,CIN用于捕捉特征交互,Key-Value Memory Network用于处理浮点数特征,Word2Vec和DeepWalk则用于处理ID类特征的嵌入。文章强调了特征选择和模型融合对提升预测效果的重要性。

‍‍

点击上方“Datawhale”,选择“星标”公众号

第一时间获取价值内容

640?

作为从本次比赛共157队伍中脱颖而出的冠军方案,评分达到87.9683,从数据清洗、模型构建、目标优化等有非常多值得学习的地方。比赛团队也挺有意思,分别来自哈工大、微软研究院和京东,算是学术界和工业界的强强联合,在多个数据竞赛中都有不错的名次。

评委:“这是最接近腾讯真实业务的方案。”


本文将从源码着手,深度解读该冠军方案是如何一步步从rough data清洗、特征工程到运用多种模型融合实现最佳效果的。作为一名数据竞赛经验薄浅的算法工程师,期望尽可能的将里面涉及到的知识、技巧、模型、算法作一个细致的总结,所以行文可能比较基础难免冗长。

注:冠军方案源码可以从Datawhale今天发的文章《2019腾讯广告算法大赛-冠军之路》中获取,也可以在Datawhale 公众号后台回复关键词 源码 获得。

640?wx_fmt=png

背景介绍

640?wx_fmt=png


作为国内领先的大数据营销平台,全新升级的腾讯广告,以更强大的全景连接、更全链的数字智慧、更友好的人本体验等三大核心能力,构建品牌与用户的智慧连接,助力广告主高效实现商业增长。而复杂的社交场景,多样的广告形态,以及庞大的人群数据,给实现这一目标带来了不小的挑战。为攻克这些挑战,腾讯广告也在不断地寻找更为优秀的数据挖掘方式和机器学习算法。


本次算法大赛[1]的题目是源于腾讯广告业务中一个面向广告主服务的真实业务产品 ——广告曝光预估。广告曝光预估的目的是在广告主创建新广告和修改广告设置时,为广告主提供未来的广告曝光效果参考。通过这个预估参考,广告主能避免盲目的优化尝试,有效缩短广告的优化周期,降低试错成本, 使广告效果尽快达到广告主的预期范围。比赛中使用的数据经过脱敏处理,通过本次大赛,我们旨在挑选出更为优秀的曝光预估算法以及遴选出杰出的社交广告算法达人。


640?wx_fmt=png

比赛赛题

640?wx_fmt=png


  1. 数据
    主要是三个日志文件,分别为:

  • 历史日志数据:广告请求时间、用户 id、广告位 id、竞价广告信息等
  • 用户信息数据:用户 id、年龄、性别、地域、行为兴趣等
  • 广告设置:广告操作信息、广告静态信息

目标
本次竞赛提供历史 n 天的曝光广告的数据(特定流量上采样),包括对应每次曝光的流量特征(用户属性和广告位等时空信息)以及曝光广告的设置和竞争力分数;测试集是新的一批广告设置(有完全新的广告id,也有老的广告id修改了设置),要求预估这批广告的日曝光。

评价指标
评价指标由两部分组成,准确性指标和出价单调性指标。

  • 准确性指标SMAPE衡量了预测的准确度:

640?wx_fmt=png

  • 单调性指标MonoScore衡量了报价与曝光量的相关性,这是对应“由于竞价机制的特性,在广告其他特征不变的前提下,随着出价的提升,预估曝光值也 单调提升才符合业务直觉。”其中:

640?wx_fmt=png

  • 最终得分是将两个指标加权相加:

640?wx_fmt=png


640?wx_fmt=png

数据初探

640?wx_fmt=png


这次比赛的数据非常原始,日志信息的raw data,因此原始数据是脏数据。那么,建模第一步必须是数据清洗,异常检测,重复缺失值等。第二步,建模,而这里面的数据并没有给定标签,需要统计曝光量。这里面大有学问,出价不同的广告不能视为同一个广告;24小时(0-24点)间隔内未修改的广告视为同一广告,如果有修改,那么修改时间点后的广告视为新的广告。详细的数据集解读可以参考优快云上的技术博客[2][3],对所有数据集的详细介绍见下图:

640?wx_fmt=png

双击查看大图


640?wx_fmt=png

冠军方案

640?wx_fmt=png

<

### 腾讯广告推荐系统实现详解 #### 技术架构概述 腾讯广告推荐系统的整体技术架构基于大规模分布式计算框架,涵盖了数据采集、特征工程、模型训练到在线服务等多个环节。当 C 端用户的请求到达时,广告引擎会依次执行召回、算法策略优化以及竞价排序等核心逻辑,从而筛选出最合适的 Top N 广告内容[^3]。 #### 数据处理与特征工程 在实际运行过程中,推荐系统需要对海量的数据进行预处理和特征提取。具体而言,内容画像的构建涉及自然语言处理(NLP)技术和计算机视觉方法。例如,在新闻资讯类推荐中,通过分析文章标题和正文中提取关键词并标注标签;而在视频推荐领域,则进一步结合图像识别技术来增强内容理解能力[^5]。 此外,为了更好地适配不同应用场景下的个性化需求,还需要考虑环境变量的影响因素——比如用户观看某条短视频时的具体时间段、地理位置信息及其历史行为模式等都会被纳入考量范围之内作为输入参数参与后续决策过程。 #### 召回阶段的设计思路 针对候选集生成这一重要步骤,采用了多路融合的方式来进行高效精准地获取潜在感兴趣的项目列表。这其中包括但不限于基于协同过滤机制挖掘相似偏好群体之间可能存在的关联关系;或者借助深度神经网络模型捕捉复杂隐含规律以扩展覆盖范围等方面的工作成果展示如下所示: ```python def multi_recall(user_id, item_pool): """ 多路召回函数示例 参数: user_id (int): 用户ID item_pool (list): 商品池 返回: list: 召回结果集合 """ cf_results = collaborative_filtering(user_id) # 协同过滤召回 dnn_results = deep_neural_network(item_pool) # DNN模型预测得分高的物品 final_results = merge(cf_results, dnn_results) # 结果合并去重 return final_results[:100] # 假设定义了一些辅助功能用于单种方式召回 def collaborative_filtering(user_id): pass def deep_neural_network(item_pool): pass def merge(list_a, list_b): combined_set = set(list_a).union(set(list_b)) return sorted(combined_set)[:len(list_a)+len(list_b)] ``` 以上代码片段仅作示意用途,并未包含完整的业务逻辑实现细节[^4]。 #### 排序阶段的关键技术点 进入粗排之后,主要依靠机器学习模型评估各个选项的相关性和吸引力程度,进而决定它们呈现给目标受众的概率大小顺序排列情况如何安排最为合理有效等问题解决方案探讨如下几点思考方向可供参考借鉴使用: - **CTR 预估**: 利用广义线性回归(GLM),因子分解机(FM)/Field-aware Factorization Machine(FFM)[^1]; - **Deep Learning Models**: Wide&Deep,DIN(DIEN),AutoInt etc.[^2]; 最终经过精细调整后的排名结果将会提交至拍卖模块完成资源分配操作流程说明文档链接地址待补充完善确认后再另行告知各位同仁们知晓了解清楚明白无误为止谢谢合作支持配合共同努力奋斗前行共创辉煌未来前景无限美好灿烂明天等待着我们一起去创造奇迹见证伟大时刻的到来吧! ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值