广告算法工程师的核心竞争力是什么? 举报 理由 举报 取消 计算广告中用到的算法并不是太多,很多时候是在琢磨业务,观察数据,寻找特征,反复试验。工作一段时间下来,相对搞深度学习的朋友感觉自己学到的太少了。搞深度学习的不断的学习新算法,图像方面的还可以做出漂亮的demo,很容易就能够向人证明自己的工作,自己的实力、竞争力。那么对于做广告算法的工程师而言,核心竞争力在哪呢?花了大量时间折腾数据,偏偏这方面还没啥好说的。搞广告算法,最终可以在简历上留下什么呢?不知道有没有过来人可以解答一下,这个问题应该会是不少初入这行的同学的困惑吧? 2017年9月15日 10 条回复 1365 次浏览 互联网,学习,工程师,广告学,数据挖掘,机器,算法,计算
回复 ( 10 )
有些项目决胜的关键点靠的是思路 市场 设计 架构 比如微信 在这些项目上追求机器学习技术成长就是南辕北辙
有些项目技术已经成熟了 谁都能做的差不多 这些项目 就别被机器学习这些术语蒙住眼睛 他们本质上就和用现成代码搭个论坛差不多 也没什么技术
但是 有一些项目是真正困难的
以做工程来类比 困难的项目 我们不敢交给新手负责 因为新手会把架构做的一团糟 最后结果很明显 就是项目失败
机器学习项目其实也是类似的 大家也许有一个感觉 任何人随便发明几个特征 找点数据跑一下 都能出结果 所以 好像机器学习项目不容易失败
但是 什么是项目的失败? 工程项目的失败是做不出来 这很清楚 机器学习项目的失败按照李航老师的说法是:项目的效果达不到用户的期望。
一个项目需要90的accuracy 只能做到80那就是失败 竞争对手有90的accuracy 我们只能做到80 那也是失败
所以 真正困难的机器学习项目 需要大量的知识和经验
——-
经验和知识真的有价值吗?
在传统工程项目中我们从不怀疑 因为 老手总是能做出来 而新手总是搞得一团糟
但机器学习不是如此 随机性总是存在 运气好的新手有时会比老手做出更大的贡献
但是 从长远来看 随机性会被无数出的尝试平滑下来 每个人都会收敛到自己真正的能力
——
以我个人的浅见 最宝贵的经验不是书上或者论文中明白写出来的
而是一整套方法论
1 问题是什么?
2 用什么指标来度量?
3 问题的复杂度是什么量级?
4 模型不好 本质上就是模型复杂度没有匹配问题复杂度 哪里是模型复杂度的瓶颈?
** 标注数据
** 人的智慧 创造有价值的特征 还是说可以用深度学习来创造feature?
** 海量用户行为数据
** 模型的调整 过于简单的模型 相当于强行约束了复杂度的上限 使得明明有海量的数据硬是用不上
5 找不到便利的数据和特征 就可以想想是否能把问题分解成子问题 也许在子问题空间下 你能想到更好的特征 数据和模型 同时分解了问题 就能够引入更多的人员来并行工作
6 知道怎么做干净的实验 系统性的探索所有的可能性 排除无关因素
系统性的做事帮助我们理解问题 就算最后失败了 也能清楚的说服别人 是资源还是技术水平造成了项目的失败
而混乱的做事风格 经常给人这样的印象 这个项目失败了 但我也不知道为什么 反正我就是没做出来
在所有的经验中 狭义的模型和特征工程只是第四点的一部分而已
但是剩余的部分也都是技术(与具体的应用领域无关) 是建立在对机器学习的能力与界限有清楚认识的基础上的一些抽象
——-
在说一句深度学习 请别被市场宣传迷惑 想清楚深度学习解决了什么问题? 把它融入自己的方法论
知道什么时候该用深度学习 什么时候不该用 能解决问题的人才是市场欢迎的人
另外 你的价值取决于供需关系 做深度学习的人 也要想想 大家都能搭demo 都会看论文 也都能实现算法 我的独特之处是什么?
业务经验,如果有公司要搞广告算法,你去带这块业务,薪水和位置都好说。变现更容易。
相反,纯算法的,不带业务,也就只能去大公司做做专家,收入虽然也还行,但是职业瓶颈也很明显。
算法和业务,能兼顾就尽量兼顾,两手硬才走得长远。
业务理解,那些寻找特征的经验和教训
所有做数据的都有相似的困惑。做算法高大上,容易吹牛逼,可是给业务带来的价值不明显(99%如此,做AlphaGo这种的另说),不好出业绩。紧盯业务无非是堆特征,特别low而且有天业务不行,转行也不容易。
我的建议始终是,先做好业务,至少让自己在一个领域能站住脚;然后花20%的时间去做自己所感兴趣的技术,想方设法把它应用到现有的问题上,哪怕是再小的问题,有成果及时show给boss看,去证明自己与众不同的价值。
务虚一点说核心竞争力就是把数据有效、长期、规模化变现的能力;务实一点说就是理解业务内容、驾驭业务方向的眼界,以及亲手把算法、模型在现实广告系统中实现的经验(包括各种踩过的坑)。
数据、数据、数据:上述这些核心竞争力其实大多都依赖于对现实数据观察和理解的深度。而现实世界的数据,往往是存在各种各样的问题的,由于系统的bug、设计的缺陷、流量规模的限制等等原因,需要非常的经验去发现数据中潜在的问题、构造“合理”的建模的数据、使用“正确”的数据进行算法/模型评估。有经验的算法工程师/科学家可以一眼看出数据是否合理、应该使用什么数据进行建模、应该使用怎样的指标来刻画性能,这些实际上可以极大地减少走弯路的成本,也就是核心竞争力所在。所以题主提到 “花了大量时间折腾数据,偏偏这方面还没啥好说的”,这点恰恰是值得大说特说的,有经验的面试官或者雇主会感同身受这方面的重要性。
算法/模型的具体实施:给定问题和数据,应该使用怎样的算法/模型,也是一个需要积累的事情,当然现在越来越多唾手可得的平台和工具一定程度上减少了尝试不同算法/模型的成本。而他们在系统中的具体实施牵涉到的问题不是简单看看博客技术文章就可以了,尤其是需要照顾系统的响应时间、可扩展性、灾难恢复等方方面面的考虑时。这方面的实战经验也是广告算法工程师的核心竞争力。
数据驱动、约定指标:广告业务区别于一些其它业务的特点是他是非常“钱”敏感的,广告主有预算、有广告投放的需求和期望,平台和发布方有营收和利润的诉求,更为复杂的是经常有可能矛盾的多指标优化诉求,更别提各种广告主、发布方、平台、代理等各式各样奇葩的需求。虽然这些有时候不是算法工程师可以控制的,但尽早约定核心指标、培养和安利数据驱动的做事方式是一个合格的算法工程师工作的一部分。这看似非技术的方面,却是减少产品和产品特性的反复、避免争议争论、主导产品走向的重要内容,也是有经验的广告算法工程师的核心竞争力。
想到哪儿写哪儿了,算是抛砖引玉吧。
做计算广告的话,业务的熟悉比算法本身更值钱。你知道怎么挣钱啊!
核心竞争力就是变现能力,技术提升可以直接转化成变现能力,都是真金白银啊,哪个公司会不喜欢呢?
另一方面,如题主说,如果是纯粹搞深度学习研究,或者”图像方面可以做出漂亮的demo”,这个能转化成用户产品,再到一定的市场占有率,这中间还有很长一段路需要走,而且产品化不是算法牛就足够的,毕竟企业都是以这些为生存要务。如果算法研究,更适合在大学、研究所、实验室吧
注意,你现在的需求是得到别人的认可。而要得到认可,最好的方法是在这个领域里创造价值,满足别人(你的领导、客户、公司)的需求,那时你就不会觉得别人家的果子甜了。
(1)业务的理解能力
(2)建模能力
———————————
(1)先说下“业务的理解能力”
无论是广告亦或是其他行业,任何产品或技术人员,最终落脚点都是对业务本身的理解上。
如果楼主经常研究,则可以发现近几年Google、Facebook等公司的广告算法很难有质的飞跃。
原因有几点:
1. 广告的载体近期没有太大的突破,原有载体上的广告算法已经优化到一定的层级,再往上是一个大的门槛;
2. 数据很多,但是能利用的近几年已经用个差不多了,没有新维度的数据;
3. 算法上,虽然有深度学习,但是深度学习在国内用于广告的凤毛麟角;
(2)然后说下“建模能力”
算法其实就那么几个,机器学习和概率研究到一定程度也没有新的东西可学,那么什么才是算法工程师最需要学习却也比较难学习的能力呢?
——建模能力
这种能力是建立在对业务有足够理解的基础上,广告比较特殊,是个三方博弈的系统环境。当你听到产品经理说完需求后,在最短的时间内列出目标函数,并提出可行的优化方案,这个时候你就成为一个很牛的算法工程师了。
搞广告老大只看变现,算法能结合业务现成变现才是最重要。至于你用那些算法高不高端并不是最重要,只要能增强变现能力的算法都是好算法。能做出漂亮的demo只是在校招的时候有用了,到了社招就主要看成功的项目经验了。