2018腾讯广告算法大赛竞赛记录

2018腾讯广告算法大赛总结 这是本人写的第一篇博客,小白一枚,如有错误的地方,欢迎大佬们批评指教。首先这次的竞赛让人受益匪浅,那庞大的数据量,让人感叹这是一场有钱人的游戏。感谢学校的服务器,几乎没休止的转了一个多月,哈哈哈。虽然最后成绩不咋地,但是这次成长还是很大的,特此总结以下经验。问题描述这次比赛的任务是寻找相似人群,其实就可以看成是CTR问题。关注官方竞赛群一般只要是比较正式的比赛都会有官方的交流群,大家在这里交流,同... 阅读详情

  深度学习的火热带动了各种大数据以及算法的发展。第一次参加与kaggle相似大平台的数据挖掘比赛。
  从4月18号开始对相关文献进行大量的阅读,仔细研究了腾讯内部员工发布的baseline。在Kaggle比赛过程得到感受就是清晰领会到了ML和DM之间的不同:ML一般从模型或者算法出发,讲的是模型或者算法本身存在的不合理的地方,然后提出新的假设,从而去优化模型或算法。而DM是从数据本身问题本身出发,希望针对问题的特性来设计最适合的方案。
  通过此次比赛研究工作过程中,在实践研究工作前应当寻找,思考有研究价值的方向,然后对相关文献进行大量的阅读,才能有一个良好的项目研究计划。进行科研项目研究还应当学会多种数据收集,数据处理,以及对数据的分析,从而指导下一步实验。

一、数据集构造方面

1.数据挖掘是整个KDD过程中的重要步骤,其使用数据挖掘算法从数据库中提取用户感兴趣的指示,并且以一定的方式表示出来。

2.分析题目后,多维数据集是一个数据集合,通常从数据层数的子集构造,并组织和汇总成一个由一组唯独和度量值定义的多维结构。一个多维数据集最多可包含128个唯独和1024个度量值。数据集train.csv中正负样本是1:50,正负样本不均衡的问题。在构建模型的时候是要用部分数据。方法就是对负样本下采样(down sampling),对正样本上采样(upsampling),尽量使得正负样本均衡。

3.为了能够使用关系表描述多为数据库中的多维信息,关系联机分析处理(Relational Online Analytical Processing,ROLAP)将多为结构进行分解,利用两种表(维表和事实表)来表达多维信息。数据分布在6个.csv文件中,需要做的工作就是merge,需要找对连接的标签和采用的连接方式,使用了完全外连接。

二、特征上的一些方法

在广告点击率和转化率的特征中,特征可以分为三类:

  • 数值特征(numberical feature)
  • 有序特征 (ordinal feature)
  • 无序特征(categorical feature)

队伍对于特征的处理:
1.使用统计频率、转化次数特征、转化率特征代替onehot,由于数据量极大,one-hot编码会出现一个很大维数的稀疏矩阵,有一定可能运行好长时间不出结果。

2.对训练集和测试集中的重复样本构造是否第一次点击,是否中间点击,是否最后点击,第一次和最后一次间隔特征

3.大量使用组合特征,主要是用户特征和广告上下文特征。成绩在baseline附近的新手基本上没有考虑组合特征以及特征之间的相关性直接使用单特征one-hot编码。

三、模型构建

使用的模型:大维度与雪花模型

在数据仓库中,客户维度和产品维度是典型的大维度。大维度表采用雪花模型的数据组织,是一种有效的方法。对产品维度来说,产品分属于产品分类。对客户唯独来说,客户分属于地区,地区属于国家。注意线下线上的一致性:

1.首先处理4个G的用户特征
2.拼接用户特征,广告特征
3.将单取值的离散特征使用稀疏方式one-hot
4.将多取值的离散特征使用稀疏方式向量化
5.线下测试
6.线上提交

28、2018 腾讯广告算法竞赛——受众数据处理与特征工程全解析 本文详细解析了2018年腾讯广告算法竞赛中的受众数据处理与特征工程方法。内容涵盖用户信息处理、数据集特征拼接、数据探索、基本建模思路以及多变量和单变量特征的处理方式。重点介绍了经典特征(如计数特征、唯一属性值数量特征、比例特征)、业务特征(如点击率特征)、文本特征处理(包括OneHotEncoder、CountVectorizer、TfidfVectorizer)以及特征降维技术(如TruncatedSVD)。同时,文章总结了各类特征处理方法的优势与适用场景,并给出了实际应用中的注意事项。通过系统化的特征工 阅读详情

相关推荐

2019腾讯广告算法大赛完整代码(冠军)

2019腾讯广告算法大赛完整代码(冠军)

探索腾讯广告大赛2018项目:LightR0/Tencent_Ads_2018

探索腾讯广告大赛2018项目:LightR0/Tencent_Ads_2018 该项目是来自GitCode的一个开源资源,它记录了2018年腾讯广告算法大赛的数据处理和模型构建过程。通过深入研究此项目,开发者和数据科学家可以学习到如何应用机器学习技术解决实际的广告优化问题。 项目简介 在中,作者分享了其在参赛过程中使用的数据预处理、特征工程、模型训练与评估的全过程。项目主要涉及Python编程语言...

gitblog_00064的博客 440

Python-2018年腾讯广告算法大赛Rank10代码深度部分

2018年腾讯广告算法大赛Rank10代码:深度部分

腾讯2018广告算法大赛思路解析 100行代码带你上0.73

比赛报名地址:algo.qq.com/person/mobile/landingPage?from=dsbryan 由于本次比赛我属于内部员工不得参赛,所以我尽量写一些思路解析,为大家提供一个baseline github: https://github.com/YouChouNoBB/2018-tencent-ad-competition-baseline 1...

Bryan__的专栏 4万+

腾讯2017社交广告大赛源码

这是腾讯2017年社交广告大赛大佬的代码,里面有很多很有用的思路,可以给机器学习与深度学习学习的人以及那些想参加这种算法比赛的人一个很好的参考和学习实践机会

腾讯2019广告算法大赛冠军源码全解析

广告曝光预估的目的是在广告主创建新广告和修改广告设置时,为广告主提供未来的广告曝光效果参考。通过这个预估参考,广告主能避免盲目的优化尝试,有效缩短广告的优化周期,降低试错成本,使广告效果尽快达到广告主的预期范围。

腾讯广告算法比赛2018代码解析与使用指南

腾讯广告算法比赛2018代码解析与使用指南 本指南旨在帮助开发者快速理解和应用腾讯广告算法比赛2018中的代码。此项目由DiligentPanda维护,在最终轮次中排名第三。我们将从项目结构、启动文件以及配置文件三个方面进行详细介绍。 1. 项目目录结构及介绍 以下是项目的主目录结构和关键文件夹/文件说明: ./src: 包含主要的源代码文件,这是项目的核心部分,很可能存放了模型实现。 ./sc...

gitblog_01166的博客 371

瑞芯微Android固件修改实战:从解包到root提权完整流程(附工具包)

本文详细解析了瑞芯微Android固件深度定制全流程,涵盖从固件包解包、系统镜像修改到植入root提权与分区调整的实战步骤。通过工具链操作与原理剖析,指导开发者安全实现系统精简、权限获取及存储扩容,最终完成固件重新打包与刷机验证,适用于追求设备完全控制权的技术爱好者。

ujm56789012的博客 697

竞赛发布|2018腾讯广告算法大赛再次起航,赢丰厚奖金直通腾讯

近日,第二届腾讯广告算法大赛正式开启线上报名。本次广告算法大赛聚焦社交营销中的最重要技能之一:相似人群拓展(Lookalike)。主办方将提供相似人群拓展产品中的模拟真实...

大数据挖掘DT数据分析 1152

腾讯WeKnora开源了!手把手教你用Docker+Ollama本地部署多模态知识库(附避坑指南)

本文详细介绍了腾讯开源的多模态知识库工具WeKnora的本地部署方法,通过Docker和Ollama实现完全离线运行。文章包含环境准备、核心组件配置、Ollama模型集成、系统启动验证及高级性能调优等实战内容,特别适合需要构建私有化知识库的中小团队和个人开发者。

weixin_30664051的博客 478

Hcaptcha验证码破解深度解析:从环境检测到n值算法的攻防实战

本文深入解析Hcaptcha验证码的攻防技术,从环境检测到n值算法的全面突破策略。详细介绍了浏览器指纹模拟、图像识别工程化解决方案及协议层逆向分析,为安全研究人员提供高效破解Hcaptcha的实战指南。

weixin_42563415的博客 371

2019腾讯广告算法大赛题目理解与数据探索(含代码)

2019腾讯广告算法大赛题目理解与数据探索 1.题目介绍 1.1 背景介绍 广告曝光预估的目的是在广告主创建新广告和修改广告设置时,为广告主提供 未来的广告曝光效果参考。通过这个预估参考,广告主能避免盲目的优化尝试,有效缩短广 告的优化周期,降低试错成本,使广告效果尽快达到广告主的预期范围。比赛中使用的数据 经过脱敏处理,通过本次大赛,我们旨在挑选出更为优秀的曝光预估算法以及遴选出杰出的 社交广告...

jliang3的博客 1万+

Apple Pay不能添加卡,不一定是卡的问题,有可能是设备的问题

Apple Pay不能添加卡,不一定是卡的问题,有可能是设备的问题。

wyxtx的博客 3435

腾讯2019广告算法大赛总结

写在前面 第一次参加腾讯的广告赛,这次比赛需要自己提取训练数据和标签,除了维度以外,数据在其他方面都很接近真实业务,我本身也是第一次接触这样的数据。最后初赛B榜成绩85.2,排名第215。接下来做一些主观和客观的总结。 关于数据 今年的数据和往年一样,需要自己先转化为csv或者hdf5格式pandas.DataFrame.to_hdf。 在totalExposureLog.out中提取标签...

yyhhlancelot的博客 3192

工业质检升级!C#上位机集成YOLOv8.3.138+Blob分析:尺寸测量+缺陷检测一步到位

工业场景的技术选型,从来不是“选最先进的”,而是“选最适配的”。这个项目的成功,不在于采用了多前沿的技术,而在于找对了“贴合场景的技术组合”和“落地导向的实施思路”。C#上位机的稳定性保障了系统长期运行,YOLOv8.3.138的精度解决了缺陷检测痛点,Blob分析的抗干扰能力确保了尺寸测量准确,三者结合实现了“1+1+1>3”的效果。先摸透场景,再选技术:不要盲目追求最新模型,先深入了解车间环境、生产节奏、精度要求,选择兼容性强、稳定性高的技术方案;数据质量决定模型性能。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 608

Unreal Engine开发:角色动画与状态机_动画混合:通过混合节点实现平滑动画过渡

动画混合是提升游戏动画质量的关键技术之一。Unreal Engine提供了多种混合节点,包括BlendSpace1D、Blend Two By Bool、Blend Two By Alpha和Sequencer,每种节点适用于不同的场景。通过合理使用这些节点,可以实现平滑、自然且高效的动画过渡效果。此外,遵循最佳实践和高级应用技巧,可以进一步优化动画质量和性能。希望本节内容对你在Unreal Engine中实现动画混合有所帮助,使你的游戏角色动作更加流畅和自然。

chenlz2007的博客 1245

这两年:我的数据竞赛之路

写在前面 大家好,我是鱼遇雨欲语与余,本次我将带来不一样的分享,这将是我的个人竞赛历程。将从三个部分展开分享,主要竞赛经历、关于我的竞赛和未来竞赛的我。一位竞赛...

Datawhale 2478

SD卡烧写Linux kernel——SD卡分区,并烧写uboot,kernel,DTB及filesystem

Linux Ubuntu环境下对SD卡分区(烧写uboot,kernel,及filesystem) 介绍dd命令的使用,SD卡分区、格式化、复制文件等 fdisk命令

weixin_42408707的博客 5056

2018.01.21.一周机器学习周记

时间:2018.01.21.一周主要内容1.整理前期关于决策树的一个小型实践项目文档(实践进行中)2.搭建TensorFlow环境(进行中)3.拓展:实践Python的自动化模块pyautogui模块4.后期承得前会长吴师兄的参考文档,开始对腾讯算法大赛进行项目研究内容摘要及相关概况决策树实践项目详见项目文档搭建TensorFlow环境1.通过pip安装T...

aaLiweipeng的博客 461

rk3568 修改开机动画

bootanimation.zip是一个Android设备启动时播放的动画文件,它包含了一系列的图片和描述文件,用于描述动画的播放顺序和持续时间。

weixin_35723192的博客 2727

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

【干货】12场比赛实战经验分享给你!

点击上方,选择星标或置顶,每天给你送干货!阅读大概需要24分钟跟随小博主,每天进步一丢丢来自:Datawhale写在前面 大家好,我是鱼遇雨欲语与余,本次我将带来不一样的分享,...

zenRRan的博客 1284

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

【获奖公布】元老选手心得分享:请把自己看成一位出色的工程师

复赛的号角刚刚吹响,全新的数据集正式上线,算法极客间的决赛入场争夺战正式启幕!我们有幸请到参加了两届大赛的元老选手,与大家聊一聊他认为可以让代码更加高效漂亮的几个关键点,帮你镇定面对复赛,顺利完成代码优化,冲击决赛入场资格! 应主办方邀请,在复赛开始的时间节点,做一份分享。 我是从2018年腾讯广告算法大赛开启了比赛生涯,第一次打比赛的经历让我记忆犹新。组不到队友,最终也只得到了Solo 15名的...

腾讯广告算法大赛 148

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

上一篇: TensorRT 3.0在Jetson TX2部署实战
下一篇: 总结GTC TAIWAN 2018主题演讲
极客范儿
极客范儿 新星创作者: 游戏开发技术领域 新星创作者: 游戏开发技术领域 领域专家: 人工智能技术领域 领域专家: 人工智能技术领域
博客等级 码龄12年 1万+粉丝 341原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

极客范儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值