推荐系统详解(十二)产品篇
推荐系统在互联网产品商业链条中的地位
一个完整的推荐系统一定是置身商业世界中的,而不是只在学术界撒野,毕竟学术界大部分时间里只关注算法和模型的效果,并且是建立在强假设和非常有限的数据基础上的,显然这不并算是推荐系统的全貌。在商业世界里,就应该带一点“功利”的眼光看待推荐系统,但功利地看待推荐系统之前,要认识到推荐系统在商业链条中到底是个什么样的角色和作用?
推荐系统的作用
商业社会中亘古不变的关系是供求关系,供求关系的背后是交换。无论是实体经济还是虚拟经济,都是基于这个原理。供求关系动态变化,当供给小于需求时,就产生了稀缺,有了稀缺,就有了商业。我不是商人,所以我就只懂得基本原理,下面我就根据这个基本原理来说说推荐系统的角色和地位。推荐系统处理的是信息,它的主要作用是在信息生产方和信息消费方搭建起桥梁。所以推荐系统是信息经济中的一个装置。那么在信息经济中供求到底又是什么呢?信息经济中,看上去供求方是信息生产者,需求方是注意力提供者。这里似乎猝不及防地就引出了“注意力”这个词。所以,无论推荐系统服务的是什么样的产品,这些产品属于资讯,社交,电商,游戏等不同的形式,它们最终得到真金白银的手段不一样,也就是所谓的商业模式各有不同,但是它们都有一个关键步骤就是:获得用户的注意力。用户产生行为就是付出注意力的表现,也因此信息流产品都在看谁家的阅读时间长,那都是白花花的注意力啊。信息经济其实就是注意力经济,而推荐系统就是留住注意力的重要手段。那么说注意力这种东西到底是什么?它不是真的物理“力”,不属于四种宇宙基本力,而是一种决策可能性。比如用户为一个广告倾注了注意力,那么就有可能去点击广告,如果这个注意力非常强烈,还会继续消费广告中的商品,如果注意力足够持久,那么就会参与到整个链条上的各个经济活动。
注意力有个特点:总量有限。随着信息越来越丰富,注意力越来越稀缺。首先,在门户时代,信息稀缺,注意力丰富,用户主动找信息。其次,在搜索时代,信息已经丰富,但搜索的工具属性和使用场景单一,导致它并不会侵蚀用户的注意力,所以依然是用户主动找信息。最后,在移动互联网普及之后,信息已经泛滥到很大程度,智能手机变成身体的一个器官,丰富的注意力被信息源以推荐的方式逐渐侵蚀,注意力从丰富变成稀缺。但是,注意力本身有价值高低之分。资讯阅读类注意力量大,但是便宜,电商、游戏类注意力贵重,但数量上不如资讯阅读类。这个注意力价值,一般在行业里被粗略称呼为用户价值,实际上这应该是注意力价值。综合看,三个时代的信息和注意力关系如下图所示。
在推荐系统的帮助***意力变成了稀缺方,信息源在打着灯笼到处寻找注意力,其实商品不再是信息,商品就是注意力,信息源变成了这些注意力的消费方。有限的注意力在推荐系统的帮助下,聚到了平台上,平台方需要像电力一样把这些注意力储存起来,储存起来的注意力就是平台方最有价值的资产。储存这些注意力的并不是电池板,而是产品,而推荐系统是一种注意力储存设备型号,这就是推荐系统在商业链条中的角色和地位。如何定量地定义注意力?直观地看,注意力的存在会导致平台上内容被消耗。因此,我个人把注意力定义为:内容被消耗的加速度与平台内容复杂度的乘积。写成公式就是:
是的, 你没看错,我就是类比了牛顿第二定律定义了注意力。我来解释一下这个公式。
1. C 是内容复杂程度,因为不好量化,可以理解为内容被消耗光所需的时间,比如论文网站和鸡汤文网站,要读完两者,难度显然不同,表现为消耗时间不同,再比如,卖奢侈品电商网站和卖地摊货的电商网站,要买光所有商品,花费的钱需要时间去累积,也表现在消耗时间不同。
2. A 是内容消耗的加速度,为什么是加速度,而不是速度呢?因为这里衡量的注意力并不只是内容消费者的注意力,还有内容创作者的注意力,是两者合并后的结果。如果用户的注意力和内容创作者倾注的注意力相同,就表现为每天消耗的内容数量一样,加速度为 0,整个平台上没有多余的注意力剩下,没有多余的注意力剩下,就无法销售注意力。
3. 内容消耗的加速度,还与参加消耗的用户数量有关,用户数量越多,每天消耗越多,用户数量指数增加,则消耗的加速度就不为 0,平台方就有了多余的注意力。
上述是一个注意力定义框架,限于篇幅,这里不展开详细定义。但是可以针对这个注意力定义框架制定一些提升平台剩余注意力的策略,及负面影响。
1. 内容创作适当少倾注注意力,这样的结果是,用户消耗会快,但难度也会减少,总注意力会受到制衡;
2. 提升内容难度,这意味着创作者也要倾注更多注意力,有可能用户方消耗不了,加速度变成负数;
3. 提高单用户消耗加速度,这就是推荐系统的作用,给用户推荐他更愿意消耗的内容;
4. 提高用户数,或者说提高活跃用户数。
定义了注意力之后,就能看清楚推荐系统在提升平台注意力的作用,也就能看清楚推荐系统的价值。
推荐系统的成本
既然是商业,那么就会考虑成本,虽然只考虑成本是非常浅薄的商业思维;但是这不重要,如果你是公司或者团队负责人,想清楚你的成本,你就会掂量一下是不是要去把“个性化”或者“算法”的标签贴给自己的产品。如果你是从业者,清楚成本你就会有危机感,你不会觉得老板不懂,所以就不把成本放在眼里,而是会时刻提醒自己,一切成本,他都是知道的,包括你本身。这并非危言耸听,时代赐予的红利会消失,创造的价值覆盖了成本才能挺过来。
大致来说,打造一个推荐系统的成本分布在这几个地方:团队成本;硬件成本;机会成本。
1. 团队成本
团队成本包含团队组建的成本和团队维护的成本。一个推荐系统的团队至少要包含以下几类全职的人。
1. 算法工程师,承担了数据科学家和程序员的双重工作,以数据科学为主,并兼具工程能力,在国外一般叫做机器学习工程师。团队里的这类人,由于市场长期供不应求,所以招募成本很高。比如要在各大招聘网站去投放广告,不断和人 social 混脸熟,高昂的猎头费用,转化率极低。招募这部分人,如果只是靠在朋友圈发个招聘文案,可以说是 0 可能会招到人。招募成本高,人员本身的成本也高,由于时代红利存在,整体薪资水平水涨船高,在无法真实分辨出每个人实际价值前,也只能付出这部分人才试错成本。
2. 软件工程师,如果把推荐系统分为引擎和算法的话,那么软件工程师承担的责任比算法工程师更大,因为算法可以用一些开箱即用的开源工具暂时顶上去;而没有引擎,算法则就没有了用武之地。软件工程师由于市场存量高于算法工程师,所以招募时稍微好一点,但是请注意是好一点,实际上,要找到好的软件工程师,该付出的成本一个都不少。
团队成本占据了推荐系统成本的大头,老板们也容易在这一部分产生焦虑,不要这样的团队,生怕自己的产品被市场抛弃,维护这样一个团队呢,那真是“玩儿得特大”。其实不只是推荐系统,对于技术团队,有一个错误的认识被无数前辈警醒过,那就是:短期高估,长期低估。团队维护的成本除了实打实的薪资支出,还有文化建设成本。工程师们都号称需要宽容自由的环境,形式上看就像是花钱请了一群野马,这也是成本,或者说风险。因为真正优秀的工程师才会在宽松环境下创造出远大于成本的价值,而普通工程师有可能在宽松自由的环境下逐渐废掉。给团队维护一个宽松自由的环境,就需要有一些非常明确地验收工程师成果的机制,这种技术文化建设也不是一朝一夕的事情,需要付出很大的精力。
2. 硬件成本
推荐系统是数据贪婪型。为了获得更多的数据,需要非常高配置的硬件支持,这是由于:
1. 要存储更多的数据;
2. 要更安全保存数据;
3. 要更快响应用户,才能留住用户;
4. 要更好的开发环境,才能提高工程师开发效率,要知道工程师的时间成本最高。
等等这些理由都告诉我们:推荐系统是数据贪婪型,而推荐系统工程师是硬件贪婪型。当然,幸运的是有摩尔定律,硬件成本在逐年下降,配置却在逐年提高,所以硬件成本比起团队成本,只是毛毛雨啦。
有了团队,不要在硬件上节省,节省的是非常有限的硬件成本,浪费的是非常昂贵的团队成本。
3. 机会成本
这个就是非常玄学了,并且也不好评估,如果有平行时空存在,倒是可以给这个做个 ABTest。所谓机会成本就是:可能推荐系统并没有帮助产品创造什么价值,反而把很多资源投入在这上面,白白浪费了市场窗口期。在信息流大火的今天,大家觉得个性化咨询阅读天然成立,然而仅仅在十年前,许多做个性化阅读的产品投入巨大,到今天可以说尸骨无存。如果当年他们不用推荐系统做,而是老老实实用人工编辑的方式做,也许有不一样的结果。这个就是机会成本。直白地讲,机会成本就是那句毒鸡汤的正经说法:选择大于努力。
总结
今天,我带你换了一个角度去看待推荐系统的角色和作用,它是一台注意力存储机器,在注意力稀缺的今天,用投其所好的方式存储注意力,并将注意力作为商品与人交换产生价值,也就是广告、电商销售、其他增值服务。这些都是存储了注意力,并对存储的注意力进行了变现。但是,你要认识到,存储注意力并非只有推荐系统一种机器,所以你们家要不要采购这台注意力存储机器呢?那就需要再考虑一下成本了,如果存储的注意力价值远不及成本,想必你会采购这台注意力存储机器。这样就和专栏的开篇讲到,要不要上推荐系统的分析首尾呼应。你能估算一下你熟悉的产品的注意力大小吗?
说说信息流的前世今生
信息流,就是 Feed,包括社交动态信息流,也有图文资讯信息流,短视频信息流。在前面说过,推荐系统是一种注意力存储器,注意力是信息经济时代的稀缺商品,广告商向平台方购买注意力,平台方把存储的注意力分一点给广告商,然后通过推荐系统收集更多注意力补充回来。在今天,最厉害的注意力存储器就是信息流,尤其是个性化信息流,也叫做兴趣 Feed,这也是推荐系统的一种。
前世今生
说信息流,就不得不提到 NewsFeed。2004 年,Facebook 问世,2006 年,信息流鼻祖 NewsFeed 横空出世,经过十多年,NewsFeed 已经是日收入几千万美金的现金大牛。在 NewsFeed 上线前,经历过两个抗议阶段,第一个是把新鲜事公布出来,原先的新鲜事被大家认为是隐私,在时间线中呈现出来被好友看见不妥,而事实是,每个人在意的除了自己的隐私被公布,更在意的是朋友的八卦,数据表明新鲜事被公布后,用户活跃度大幅上涨。
第二个就是 NewsFeed 上线,用户广泛抗议,原来按照时间先后顺序阅读新鲜事,现在却按照重要程度阅读,非常不习惯,然而数据表明,用户互动行为再一次大幅度提高。
这些年来,NewsFeed 有数不清的改进,甚至每天线上会同时部署很多算法版本进行 AB 测试。后来的故事大家都知道了,Facebook 上市,股价逐年上涨。
NewsFeed 的成功,验证了几个常识:
1. 数据驱动比舆论驱动靠谱,别听人们嘴上是怎么说的,只看人们是如何行动的;
2. 窥探隐私,向群体靠拢,害怕孤单是普遍人性,把新鲜事公开这件事验证了这一点;
3. 注意力非常有限,用推荐系统的方法更好地储存注意力,基于兴趣的信息流验证了这一点。
后来,Twitter,微博,Instagram,老牌的时间线信息流方式如今都换成了按照兴趣筛选内容,原因都是信息泛滥,用户错过的信息量越来越多,注意力耗散很多,无法将耗散的注意力变现成了这些平台最大的痛。
今天,搜索公司 Google、百度,都已经押注了信息流,更不说那辆行驶在注意力收割航道里的短视频新兴巨轮。这些公司,尤其是其中的上市公司,在财报里也会提及信息流,可以说,信息流在今天已经是红透了半边天。
配套设施
信息流是一个低衰减的注意力存储器,但是光有信息流是不完整的,最大的问题可能有两个:
1. 内容源不足,无法形成信息过载,注意力就不会稀缺,注意力是无法待价而沽的商品;
2. 在注意力变成稀缺的事物后,存储的注意力无法变现,反哺平台自身。
针对这两个问题,完整的信息流产品还需要配套设施。以 NewsFeed 为例,讲讲信息流的配套设施。
1. 内容源
内容源是注意力的重要间接影响因素。“内容哪里来”是信息流要不断思考的问题,对于 NewsFeed 来说,就是社交关系上的人发布新鲜事。NewsFeed 存在的前提是要依赖用户建立大量的社交联系,这样才会出现信息过载,因此 NewsFeed 的一个重要的配套设施就是“你可能感兴趣的人”推荐系统。这是一个我们在产品形式上比较熟悉的推荐系统,它是一套大规模矩阵分解算法,在前面的专栏已经专门讲过,这套推荐系统希望用户和用户,用户和 App、公共主页等都建立起大量的连接。建立起连接,相当于变相地增加了内容源,这些用户发布的新鲜事,App 产生的内容,公共主页发布的帖子,都会通过这些连接流进用户的个人信息流。社交信息流中,内容源依赖于社交关系的数量。而图文资讯信息流,则更多依赖爬虫技术,“不生产内容,只是内容的搬运工”。依赖爬虫的信息流内容源,质量非常不可控,会有涉黄、涉政、涉暴力等敏感内容,甄别工作量非常巨大,而且一旦控制不好就是社会事件,代价惨重,这一点在 2018 年,你一定感受很深。内容源是信息流的一种重要基础设施,要想尽办法建设好。内容源应该考虑下面几种。
1. 质量:虽然群体喜欢消费低质量的内容,便宜商品,但是一旦出现敏感内容, 不合格的商品等,代价还是很高昂。
2. 多样性:信息只有多样了才有信息量,有了多样性才能满足更多的用户,才能在存储海量注意力时不衰减。
3. 数量:数量自不必说,推荐系统解决信息过载问题,没有信息过载问题怎么办呢?就是先制造信息过载问题,要制造信息过载,信息的数量就要有保障。
2. 广告系统
NewsFeed 还有另一个配套设施,也是它为什么每天能吸金几千万刀的原因:那就是广告系统。Facebook 的广告形态多样。
1. Suggested Page (你可能喜欢的公众页)
2. Page Post (公众号帖子推广)
3. Suggested App (你可能喜欢的应用)
4. Video Ads (视频广告)
广告主花钱购买信息流存储的注意力,俗称信息流变现。实际上就是信息流产品供应注意力,广告主消费注意力。注意这枚硬币的另一面:广告主供应的什么,用户是否消费了,则是另外一套看待角度。以前,Facebook 鼓励商业机构花钱投广告增加粉丝,彼时的 NewsFeed 算法允许随意发广告,看上去就是公共主页发布了新鲜事。这一阶段对应着增加用户和内容源之间的连接阶段,是一个非常必要的步骤。看上去广告主增加了自己的粉丝,用户增加了内容源,而本质上则是让注意力买主先看到他种草的商品,这个阶段只让广告主每天摸摸自己种草的商品,并不是真的给他。直到后来,平台方开始严格限制商业广告与普通用户触达,不只是 Facebook,任何的信息流平台,在广告主吸引了足够粉丝之后,都会果断限制广告无节制地触达用户。种草的商品突然提价,广告主就只能剁手买买买,这就是广告系统了。跟据某个专门做 NewsFeed 推广的公司追踪结果,1000 个公共主页的 50000 条内容以原生方式触达用户的比例,从 2012 年 16% 降低到了 2014 年的 6.51%,降了一倍还多。当然也可能是因为用户平均关注的公共主页增多了,而本质上的原因就是,注意力市场开市了。在注意力这边,存储注意力要做的事就是基于兴趣筛选信息流,重新排序展示,这样的好处就是用户不会错过自己感兴趣的,而本质上就是留住注意力,不要衰减。在注意力购买方这边,通过广告系统,大家去购买自己看中的注意力。信息流,看上去就是这么一个简单的商业逻辑。广告主这边一开始和信息流平台方有非常甜蜜的日子,直到要花钱购买自己帮忙存储的注意力时,就会有怨言了。
曾经就有广告主对 Facebook 抗议道:那你干脆不要干涉 NewsFeed 排序啊,按时间线自然展示,用户错过就错过,大家都公平。对此 Facebook 的解释则是:数据显示,重排序后的 NewsFeed 可以让用户阅读积极性提高很多。这句话的意思是:这样做才能存储注意力啊。关于到底要不要重排序的争吵,我们要看清楚,双方都是商业机构:一边是要消费注意力,一边在销售注意力。这本身就是买卖嘛,不要谈什么情怀,商业社会永远是逐利的,逐利的手段就是制造信息不对称,并且在制造过程中不断提高效率和降低成本。显然,“大家一起穷,完全拼人品”的时间线,不符合基本商业逻辑,信息流才符合商业逻辑。世界上最遥远的距离就是:手握大把粉丝,却不能随心所欲地曝光自己的产品。
总结和展望
具体信息流会怎么发展,我们无法预测,但是可以肯定的有三点:
1. 信息流是推荐系统在商业上最成功的应用;
2. 完全依赖数据驱动的信息流会面临黑天鹅事件,所以人和算法协同进化的信息流会是最有生命力的;
3. 数量上,注意力已被大厂囤在自己了手中,那么下一步要关注的是注意力的质量,这是信息流平台方的商品,毕竟广告主购买了注意力后,发现是地摊货,生意也不会长久的。
组建推荐团队及工程师的学习路径
如果你是老板,或者是公司里的推荐系统包工头,那么你一定会关心:要凑齐多少人才能开始搬砖?一个推荐系统复杂度没有上限,但是有最低标准,所以下面在估算推荐系统团队规模时,按照下限来估计,照这个方式建立的团队就叫做“有下限的团队”。
团队组建
们先定义团队的角色,这里既然是组建“有下限团队”,当然按照能省则省的原则。
1. 算法工程师,承担的是数据科学家和机器学习工程师的双重职责,主要职责是清洗数据,训练离线推荐模型,开发算法接口,评估指标。
2. 软件开发工程师,承担算法之外的开发任务,例如数据库的搭建维护,API 接口的开发,日志的收集,在线系统的高可用等,当然“有下限的团队”可以适当简陋些,不用考虑高性能。
3. 其他非技术角色,如果是“有下限团队”的话,这一项也可以省略,如果涉及了跨部门合作,或者你不幸被老板提出各种“推得不准”的伪 Bug,那么你就需要一个这样的角色去充当工程师港湾,来阻挡外界的风雨。
接下来,估计一下每个角色的数量。这里主要是估计工程师的数量。关于算法工程师,最低配需要 2 位,一位三年左右经验的算法工程师负责数据分析,数据清洗,推荐模型训练,评估和上线,外带一位三年以下经验的初级工程师,从中辅助分担琐碎工作。为什么说有经验的算法工程师一位就够了,假如你使用矩阵分解作为推荐系统第一版核心算法,那么推荐使用 Quora 开源的 QMF 工具。它能在一台 32 核、244G、640G 固态硬盘的服务器上用 20 分钟完成 10 亿非零元素,千万用户和物品的矩阵分解。工具简单易用,一个有经验的工程师足够让其运转起来。那么核心问题就是,一台机器是不是撑得起你老板的野心?我认为,撑得起,具体的估算如下。
根据我前文中对注意力的定义:内容消耗的加速度乘以内容的消耗难度。当注意力为正数时,是上马推荐系统的好时机。因为这说明平台方已经有了注意力的原始积累,只需要加上推荐系统将它保存下来并加以扩大即可。那么组建的这个“有下限团队”最低要求就是能留住当前的注意力。注意力为正时,每天的用户消耗内容数量应该是指数级别,比如 f(a,t)=ta (a >= 2)。其中 t 是时间,a 大于 2 时才会有正的注意力。因为它的二阶导数为:a(a−1)t(a−2)。当然,这个数学推导不重要,只是举个例子。每天的内容消耗量,其实就是用户产生的行为数据条数,至少是正比关系,这里从简考虑,认为二者等同。假如 a=2,t 的单位是天。那么在 t 天后,累计产生的日志数量是:
现在看看,如果你公司使用的服务器和 Quora 评测 QMF 时所用服务器一样的配置,用单机运行 QMF,极限是撑多久?我简单列个方程。
方程右边就是 QMF 评测时处理的 60 亿非零元素。解这个一元三次方程,得到唯一的实数解是 1441.75 天,也就是 3.9 年。所以告诉你的老板,你一个人可以撑四年,只管定期加工资就可以了,不用加人。那么为什么明明一位算法工程师就可以,还要外带一位,这主要是考虑,团队人才应该有梯度和备份。关于软件开发工程师,至少需要四位,是的,你猜到了,我要证明的是需要两位,还有两位是为了人才梯度和冗余备份。分工是这样的。
1. 推荐服务输出,一位三年及以上经验的后端开发工程师,外带一位三年以下的初级工程师。负责调用推荐 RPC 服务,开发必要的过滤逻辑,填充详细字段等;
2. 反馈数据收集和管理,一位三年以上经验的运维工程师,外带一位三年以下的初级工程师,负责回收用户反馈数据,统一存储日志数据。
以上就是一个最低配推荐系统团队的配置。当然,如果能复用现有团队的部门工程师,则灵活处理。上面的估算也只是一个示例。
个人成长
下面来说说,工程师个人该如何学习和成长的问题。推荐系统工程师和一般意义的软件工程师相比,看上去无需像 IOS 或者 Android 工程师写大量的代码;也无需像研究院的研究员那样,非得憋出漂亮的数学模型才能工作;更无需像数据分析师绘制出漂亮的图表。那推荐系统工程师的定位是什么呢?实际上,这里说的几个“看上去无需”,并不是降低了推荐系统工程师的要求,而是提高了要求。因为你得具备三个核心素质:
1. 有较强的工程能力,能快速交付高效率少 Bug 的算法实现,虽然项目中不一定要写非常大量的代码;
2. 有较强的理论基础,能看懂最新的论文,虽然不一定要原创出漂亮的数学模型;
3. 有很好的可视化思维,能将不直观的数据规律直观地呈现出来,向非工程师解释清楚问题所在,原理所在。
首先,虽然世人目光都聚焦在高大上的推荐算法上,然而算法模块确实是容易标准化的,开源算法实现一般也能满足中小厂的第一版所需,而实现整个推荐系统的路径却不可复制,这个实现路径就是工程。可以说,是工程能力决定了推荐系统的上限。如何提高工程能力,无他,就是反复刻意练习。但是对于入行不同年限的人来说,提高的办法则各不相同。对于在校生,一个比较好的办法是,将看到的任何算法知识、论文或者图书,都亲手转换成代码,一个简单的算法,从你看懂到你无 Bug 地实现出来,其实还有很远的距离,在实现完成后,去阅读对应的热门开源应用,阅读它的实现方法,对照自己的,总结差距。对于刚工作的新人,这时候你已经有一定的工程基础,并且没有太多的整块时间,那么就要好好把握工作中的项目实战。避免重复造轮子的前提是知道有轮子,并且知道轮子好在哪,这要求你熟读现有轮子的各种,对它性能、实现方法了如指掌,如此才能在不重复造轮子的基础上安心实施拿来主义,并且可以进一步将轮子按照实际使用的所需问题进行改良。对于工作一定年限的人,这时候你已经熟知各种轮子极其弊端,也能改进了,那么在业务逐渐增长后,需要考虑将系统中部分模块中所使用的开源加上补丁,整体升级为自研系统。这个开发可以从一些风险不高的模块着手,逐渐锻炼。上述三个大的阶段,比较粗略。但是核心思想就是:爱动手,爱思考,爱阅读,爱总结。
第二,是理论基础。对于一个从事推荐系统的工程师来说,一定需要有数理基础。高等数学、概率统计、线性代数这些大学基础课一定还在自己心中,没有还给老师。如果不幸还给老师,你需要重新捡起来,因为整个机器学习都是建立在高等数学基础上的。另外,有一个学科我个人认为很重要,甚至成为人生的指南,那就是信息论。信息论用量化方式确定了什么是信息,很多算法问题也因此可以从通信角度考虑。
第三,是数据可视化思维,在做数据分析和清洗工作时,需要想办法直观地呈现出来,在工具层面,掌握一些常用的绘图工具就很有必要了。Python 中的 Matplotlib,R 语言中的 ggplot2,Linux 命令里面的 Gnuplot,Windows 里的 Excel 等等都是非常常用的绘图工具。掌握工具并不难,还需要有 show 的冲动,直观方式呈现出数据规律不但对自己优化算法和系统有非常大的作用,还可以与合作伙伴快速达成任务共识,节省沟通成本。这三个能力,建立起来的难度逐渐增加,需要持之以恒,与《卖油翁》那句著名的“无他,但手熟尔”,规律相同。
除此之外,还有一些非典型工程师的加分项。
1. 学习能力:虽然缓慢,但是科学一直在突破边界,技术更是日新月异地升级了一代又一代,而文化的进化则远远快于人类基因的进化,这些变化,都要求你我要有不断学习的意识,还要有会学习的能力。
2. 沟通能力:在一些中大型厂,一些数据资源分散在不同部门,在技术之外需要去整合这些资源,这需要沟通能力。
3. 表达能力:能把一件事情讲清楚,最直接的好处是在团队内部减少无效的沟通,提高工作效率。
总结
今天我主要谈的是推荐系统中人的因素,包括了团队和个人,这部分内容本来和技术干货内容相比,就有点形而上,但是事实上却又绕不开这部分内容。因此,我先用一个例子呈现了一个“有下限团队”应该有多少人。这里没有考虑人的个人能力差别,这里就假设大家智商都有一样,没有天才和白痴。很多时候,其实单机就能搞定很多看上去很复杂的事情,这是我不太推崇分布式的原因,因为多数时候没必要。最后,我谈了我对推荐系统工程师的能力看法,一共有三个层次,建设起来由易到难,需要不断刻意练习,才可能有较大的能力进步,这一点我和你共勉。