从杉数到滴滴——未入门算法工程师工作日记(快手篇)

大家好!好久不见了!今天猹哥迎来了自己的23岁生日,也迎来了自己人生的第一个在职场赶项目ddl度过的生日(泪)。祝自己生日快乐的同时,也加班加点的把《从杉数到滴滴》系列又更新了一篇~

熟悉的人可能已经发现了,我的个人职业信息已经从快手变成了字节跳动,title依然是广告算法工程师。是的,我三月份从快手离职,目前在字节跳动的adscore继续做广告相关的实习。在快手的经历是我的第三段算法工程师经历,但是也是我第一次接触“搜索广告推荐”这三大宝藏中的广告业务。这一段经历也很让人难忘,因为遇上了非常好的mentor和leader,也第一次体验了大厂的算法工程师,做了toc的业务(有人可能会提到杉数,杉数做的业务是tob的,业务场景不同),可以有机会了解其他部门在做的事情,也可以看到我们与不同部门的可以合作,讨论的地方。

这一篇是《从杉数到滴滴》系列的第3篇,也是快手篇。这一篇,我们会介绍快手这家公司所做的一些业务,并且介绍我所在的广告算法工程师的岗位,究竟在做什么。当然,还有,如果希望做这一方面的业务,需要学习和掌握什么知识。

快手简介

快手是北京快手科技有限公司旗下的产品。快手的前身,叫“GIF快手”,诞生于2011年3月,最初是一款用来制作、分享GIF图片的手机应用。2012年11月,快手从纯粹的工具应用转型为短视频社区,用于用户记录和分享生产、生活的平台。后来随着智能手机的普及和移动流量成本的下降,快手在2015年以后迎来市场。

2019年11月,快手短视频携手春晚正式签约“品牌强国工程”强国品牌服务项目。快手成为中央广播电视总台2020年《春节联欢晚会》独家互动合作伙伴,开展春晚红包互动。

2021年2月5日,快手正式在港交所上市,IPO融资规模为54亿美元。3月23日,快手发布2020年第四季度及全年财报。快手2020年全年营收587.8亿元,市场预期593.82亿元。

上面这一段我是在百度上抄的。快手上市这一个事情,确实也是让很多老的快手员工真正实现了财务自由,在上市之前的一段时间,快手的群里各种办卡,打新的消息就从来没断过……

很多人其实提到快手,第一反应可能就是“快手和抖音究竟有什么区别”。我也一直以来会听到“北快手,南抖音”的说法。这一点各有各的道理,有的人会说快手总体来说更土一些,更加生活化一些,不像抖音其实诞生了很多脍炙人口的神曲……anyway,一定要相信他们俩其实是各有各的特点的,只是每个人的感觉不同,否则其实是很难说两个完全一样的东西,能够都具备这么大的体量的。那具体字节跳动有什么特点,和快手有什么区别,这个我们到下一篇文章再说。

补充一点:快手在北京有10个左右的园区,我所在的园区是中关村东升科技园(这个园区我居然没有找到快手的大LOGO……)。快手的总部位于西二旗,有Lawson,Subway和免费的Starbucks,总体福利上算是非常不错的。东升虽然硬件设施差了些,但是基本的下午茶,健身房还有免费咖啡还是有保证的。即使我目前位于字节跳动,也并没有感觉到字节跳动的食堂,下午茶或者咖啡等福利上,对快手有明显的优势。

广告业务简介

既然我在快手做的是广告,那自然要介绍一下广告在做什么,或者更加具体来说,互联网广告在做什么。简单来说,可以理解为

合理合法的在广告上捞钱

这是最土的说法,要是真这么粗俗的认为,然后去搞一波抵制啥的,那公司为了道德,还赚不赚钱了?所以优雅一点来说,就是利用广告所带来的商业价值,设计一套方案,来使得看到广告的用户,互联网平台,和发放广告的广告主,三方达到一个平衡。因此严格来说广告算法的大背景是经济学,比方说广告里的出价排名,其实就是基于博弈论中的拍卖原则。

在广告业务中,有非常多的算法可以介入的地方。比方说,一个口红广告,分发给女性,肯定是要比分发给男性的收益要高的。你看,一个特征“男/女”就带来了一个很有趣的区分,而使用特征来建模,是机器学习的传统做法。再比方说,一个广告如果要产生收益,除了观看(业界叫”曝光“),像点击,购买(业界叫”转化“)都是非常重要的广告产生收益的特征,那么从曝光,到点击,再到转化,这一个过程会有多少的变化,都是需要建模的。这就产生了CTR预估,CVR预估等人工智能常见的主题~只要建模,就有了数据,就可以去定量的计算各种广告的收益,这就自然会使得各方的收益更容易被追溯,也更容易控制

这一部分,如果有感兴趣的朋友,可以阅读刘鹏,王超的《计算广告》

我做了什么?

我这儿做的事情是利用深度学习模型,希望提高直播平台的涨粉率。这个事情的目的也很明显,如果一个直播带货(也就是带广告)的博主能够吸引到更高的涨粉率,自然会有动机认为他以后会更容易赚钱,平台也会有更大的收益。可以看出,这个问题本身其实不是严格的,业界中所定义的CTR,CVR或者什么。事实上,这也是业界算法的常态,即算法工程师只关注抽象的方法如何使用,而不会拘泥于一个具体的业务背景。比方说CTR还是CVR,其实都是从一个变量,到另一个变量的建模关系。只是它们俩所涉及到的模型和业务的场景,在一些特点上有明显的区别。因此做涨粉率,其实也是一样的。寻找一些公司内部的特征,定义好公司所打好的各种标签,然后从3层的DNN开始,尝试各种模型和特征。在线下实验的收益显著的时候,就会将模型代入线上,再进行观察。因此其实我一直认为,广告层面的模型和推荐其实还是有很多地方是互通的

当然除此之外,其实在深度学习这一个领域,还可以做的事情非常多。比方说自己思考可能的影响模型训练的特征,然后去与数仓合作,开发一些数据流。也有人会与一些前沿的部门合作(比方说做自动机器学习(Automl)的,做强化学习的人),在一些小的,流量不大的项目中做一些探索性的实验等等。当然我作为实习生,在快手相对属于散养的状态,这一些业务都没有让我去多接触,当然这也和我加入这个团队之前,毫无深度学习基础,而花了大量时间去补深度学习的课程有关(大雾)……

这里要提的一个细节是,业界在深度学习这一块,更多还是会使用tensorflow,至少快手和字节是这样的。然后快手和字节作为两家做短视频的大厂,在模型训练的平台化上都做了非常多的工作,使得算法工程师可以有时间去真正的关注算法,而不需要关注底层的开发逻辑,或者一些涉及硬件的优化等等。因此做模型侧的算法工程师,至少与模型强相关的基础开发的部件,都不需要算法工程师亲自来做,倒也是一件幸运的事情

关于工业界的深度学习,我推荐一下Stasi学长的《推荐道》,有很多篇文章都点出了当前工业深度学习的各种常见的tricks,我一开始从他的知乎文章开始读起,读完也是大呼过瘾。

四化大业:论算法工程师的自我修养

推荐算法的"五环之歌"

我的日程表

我当时在快手的时候相对是散养的状态(这一点和目前在字节赶各种ddl的状态截然相反,具体放到下一节说)。所以我做的事情总体来说比较固定,就是找各种可能的深度学习模型(最基础的3层DNN,到FM,到deepFM,到DIN,DIEN,到Transformer,等等),然后去跑实验。一般来说我的时间可以划为

10:30-12:00到岗,看上一天的任务,修改参数,跑几个模型

12:00-14:00吃午饭,休息,有实验的时候可能会上一些AB实验

14:00-16:00思考一些可能的优化方向,debug一些之前的代码

16:00-16:30休息

16:30-19:00抽个空看看经典的paper

19:00-20:00吃晚饭,休息

20:00-21:30再看看各种技术公众号/摸鱼,这个时候状态已经很差了,所以基本上干不了啥……

另外这个部门每一周都会有大组(200+人)的组会和模型侧自己的一个小组会,小组会上会有专门的paper阅读和交流环节。如果有空认真听完的话还是会有很多有趣的收获。

当然可能也是考虑到实习生的缘故,mentor没有给我安排第二个任务,就只是让我在一个业务背景下去尝试不同的模型,所以相对来说业务不是特别繁忙,也比较好handle,自己学习的时间还是比较多的。当然了,时间其实总体来说还是挺短的,加上其实总是没有对各种后端可能出现的问题,或者说对于业界实际的工业深度学习架构不了解导致的踩坑,这都会导致业务进展的delay,当然也就使得我自己虽然体验了业务,但是总感觉,项目经历还是不够厚实。

当然也可以看出,其实快手的上班时间还是比较长的,不过受制于深度学习算法这个行业的特殊性,有很多时间是可以交给机器的,产品经理一般也找不到我们。这一点和数据分析,开发都有些不同。我认识的在快手做数据分析的一些实习生,其实每一天的需求都处理不完,最后要不就甩手不管,要不就怪数仓资源不够,也是苦了他们了……

我想来玩,我需要掌握什么技术?

首先先放一下大家感兴趣的,我当时面试的时候遇到的面试题

聊简历

机器学习基础:gbdt,xgb,常见评判指标等。

是否了解sigmoid函数,求它的导数和简便表达。

cross-entropy是什么?用在什么场景?

了解CNN吗?感觉它和一般的ANN相比设计思路差别在哪里?

矩阵分解的基本思路?

代码题:拓扑排序。

代码题:二叉搜索树中找第K大。

代码题:找一棵树中,两个节点的公共祖先。

代码题:反转链表。

想看其他面试题的话,可以看这一篇文章

从杉数到滴滴——未入门算法工程师再找实习工作记

除了常见的,要掌握机器学习,深度学习,leetcode什么的,其实还有几点需要补充。一是真正进入校招/社招面试之后,对于深度学习的知识点的要求会比这个面试题还要难一些。这也是我最近才有的感悟,也是理科相比较工科的一个劣势,就是实际的行业的坑远比自己想的多,实际的行业的tricks和做法也几乎很难在非相关的学校专业中看到,因此个人感觉,项目还是要多做,手还是要勤。相关的资料网上其实也有很多了,知乎和b站的教学视频什么的,我自己目前所在的datawhale就是一个挺好的地方,会经常组织一些项目活动

还有一点,就是学界和业界的gap还是远比大家想的要大,以比较经典的阿里的DIN,DIEN为例,实际上在我所在的部门(快手商业化),因为数据流和特征不支持,一直到21年初才有办法上这样的模型,而这两个模型在学界,其实都算是已经被“玩烂的”模型了hhh。当然,我在字节的工作,也给了我这么一个“学界和业界想法差别很大”的感觉,这个具体的放到字节篇再聊~

总结

虽然我们总是说抖音,快手总是会给人推一些什么低俗的东西,但是真到了公司看一看数据,你会发现这一部分是真的可以促进社会的消费力的……当然了,其实不管是快手还是字节,都对广告的质量,用户的体验是非常关注的,这两块本身在两家公司都有专门的人会去做。所以也不能太武断的去看这两个产品和公司,而更重要的,其实是观察,究竟他们做的内容和事情,是否在大的社会层面上,有没有实质性的帮助。对于这个问题,我不持立场,留给大家论述~

好的,以上就是《从杉数到滴滴》系列的快手篇了,希望这一篇文章能够让大家了解快手,了解商业化,了解广告业务,也了解深度学习在工业界的应用~下一篇不出意外,应该就是字节篇了。希望能用字节篇,来为我这一年的“北漂”,画一个完美的句号,也为我的22岁这一年最终给一个交代。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值