广告算法工程师的日常

看完前三篇广告模型初探系列,是不是觉得广告算法工程师每天都在和各种各样高大上的模型打交道,其实不然,和一些朋友交流下来,大家默契的达成共识,广告算法领域永远都是数据>特征>模型或者算法本身,接下来我们来看几个例子。

A同学精通各类模型,从base DNN模型优化到DeepFM模型,离线auc+0.02%,于是乎A同学开始了漫长的调参之路,学习率,优化器,batch_size等等参数均试了一遍,auc不升反降,A同学瞬间奔溃,只得祭出了DIN模型,引入attention机制,充分挖掘用户历史行为信息,这次auc+0.10%,A同学开心的进行abtest,结果大失所望,ctr微跌,大盘收入纹丝不动。

B同学擅长特征工程,对于模型本身丝毫不感冒,于是他就在id类特征的基础上添加了统计类特征增加模型的泛化性。离线auc+0.3%,上线abtest,ctr+1.2%,大盘收入+0.25%。

C同学做转化率模型的,在和产品同学了解完整个转化链路之后,在数据侧做了几点改进:

  • 删除那些根本不回传转化的广告主的数据

  • 推动产品优化精简整个转化链路,让广告主可以更方便快捷的回传转化数据

  • 考虑到某些广告主回传数据比较慢,在天级别更新模型的时候多拼几个小时的转化数据

离线auc+1%,上线abtest cvr+10%,大盘收入+2%。

看完上面三个例子,你会发现数据和特征上面的收益远远大于模型本身的收益。So广告算法工程师每天都在围绕数据,设计特征,进而产生一个正确的错觉:广告算法工程师≈sql工程师,每天都在和sql打交道,无论是spark sql,hive sql,presto sql等。取数据写sql,数据清洗写sql,生成样本写sql,特征拼接写sql,查询效果写sql。。。

除了写sql之外,做转化率模型的同学每天少不了的环节就是排查运营产品销售同学反馈的各式各样的case,某些账户跑不出量啊;某些账户超成本严重啊;某些账户之前跑的很好,现在跑不出量啊;某些户原来可以跑出量,新建了单元,素材完全一样就跑不出去量了等等(这个还真不知道其他公司的广告算法工程师是不是也需要排查各色case,欢迎各位小伙伴留言分享)。

排查case的时候会突然发现,有的时候模型预估偏高也不行,预估偏低也不行,预估准确还是不行,唉,简直让你怀疑人生了;其实作为一名广告算法工程师,最重要的还是得了解业务本身,你需要清楚的知道模型的预估结果到底是如何作用在最后的竞价排序上,当然这其中还少不了各式各样的策略机制的辅助。下一篇咱们就聊聊ocpc产品初探,后会有期哈!

欢迎关注微信公众号:计算广告那些事儿