William(腾讯 算法工程师)回答:

当了一年的鹅厂算法工程师,仅就我浅薄的经验来说一下自己的见解吧~

本科及研究生所学的知识,比如高等数学、线性代数、传统机器学习方法及深度学习理论等这些,都只是作为算法学习的基础,并不能成为算法工程师的核心竞争力。

研究生的算法研究和公司里面的算法研究,两者最大的差别就在于:业务和数据

所以算法工程师的核心竞争力到底在哪呢?私认为主要有以下几点:

1. 对业务的见解

之前跟朋友谈起算法业务的时候,有朋友会有一个这样的观点:算法工程师就是一个做技术的,只要做好模型做出好的指标效果就是自己最大的产出。对业务的理解那是产品运营的事情,算法某种程度上就是产品的“外包”,把事情做好就可以了。

我当然是不赞同这样的观点啦。我认为:算法工程师不仅要顺利完成模型的特征产出,自己更要对业务有绝对的把控

举个例子,假设我是一个NLP(自然语言处理)的算法工程师,现在业务的主线是提升用户的文章阅读体验。如果直接将用户的阅读时长或者日均活跃度作为模型优化目标,想必是非常困难的,甚至是一个不可解的问题。

但是如果将“提升用户文章阅读体验”这个问题,转换成“提升文章的质量”,那就可以用模型建模一篇文章的优质度打分,甚至可以用模型识别低质无营养的文章,那么这里面就有很多方法可以来实现了。这其实就是对业务场景的理解。

所以啊,将业务场景建模成可行的算法问题, 直接奠定了你接下来算法工作的方向,如果一开始的方向就是错误的,又谈何成果呢?

2. 善用业务数据

确定了算法问题以及业务研究方向,接下来就要准备模型的训练数据了。不管是机器学习模型还是深度学习模型,都需要大量的数据来支撑模型的训练过程。

有一句话说得好:数据的质量决定了模型效果的天花板

研究生阶段我们都习惯了使用学术界公开的数据集来训练和验证模型,这些数据集是经过了大量的人力筛选和审核才得到的。而在公司里,大多数情况下,公开数据集和业务场景解决的目标不同,数据分布也不同,所以我们难以直接将在公开数据集上训练的模型直接应用到具体业务中。

因此,如何挖掘和构造优质的业务模型数据,便成为了你与别人打出差异化的关键所在

在公司里,模型的数据肯定不能完全依赖人工标注,这样的做法耗时耗财。而从业务场景下挖掘的数据,必然会存在标签错误的情况。

比如,还是以文章的优质度打分模型为例,那应该如何挖掘优质和低质的文章呢?有的人会说可以用点击和阅读时长数据来挖掘,那如何确保用户看完了这篇文章,这就一定是优质文章呢?又或者,如何能证明这篇文章不属于低俗、口水文、软文等这种类型呢(有的人就喜欢看这种类型的文章,但这种属于低质文章)?此时,我们发现仅仅靠这两个数据是无法满足挖掘数据的质量的,我们还需要引入更多的特征,甚至是数据清洗方法,来辅助我们构造出一份优质的训练数据。

3. 快速实现,快速验证

有了数据,有了模型训练标签,终于可以开始训练模型了,这部分的核心竞争力就和你的基础有关了,比如你积累了多少模型结构,最近看过多少创新性的论文,这些都能帮助你快速地搭建起一个你想要的模型,并迅速地验证模型的效果。

搭建和实现模型,讲究一个原则:奥卡姆剃刀原则。就是最简单的模型结构,往往是最有效的,且能最直接地反映问题。

后续模型结构的优化,也应该是基于现有模型结构上,针对业务存在的特定问题来进行优化,优化的方法有很多,比如引入更多的基础特征甚至高级特征,或者额外加入一个简单有效的模型结构。

因为除了你自己,没有人真正关心模型的结构具体是怎么样的,他们只关心最终在业务场景下的效果,所以快速实现和快速验证模型也算是算法工程师的另一基本功。


可能大家日常对算法工程师的理解,主要是在做特征挖掘和模型建模设计,但实际上,对业务的理解和对业务数据的把控,才是决定算法工程师的天花板所在

哪里有理解不正确的地方,也欢迎各位大佬批评指正!

(来自一个虽然很菜,但依旧每天很努力成长的小企鹅 )

婷播播(腾讯  推荐算法工程师)回答:

业务抽象建模能力。这个是作为算法工程师最能体现其专业性的能力,只有这个能力具备了,后面说的这些能力才会锦上添花。

业务抽象建模能力,说白了就是把具体场景的问题抽象出来,认识到事物的本质,然后用业界常用的方法也好,自己独创的方法也好,去解决业务实际问题。技术问题通常都不是问题,因为没有太多壁垒,尤其是业界的技术,基本是成熟的方案。业界真正的壁垒,是数据而不是技术。

这项能力,是区分一个算法工程师是否真的有算法能力,而不是会几个模型会调些参数。会模型和调参,放之四海之内,只要看点论文看点代码,都不是问题。而真正有能力的算法工程师,是知道为什么会用这个模型,以及在这个模型里为什么要做这种改动,为什么在具体业务场景里,模型会有预期或者非预期的表现。

在业务抽象建模能力基础之上,再来谈谈放大这个能力的其他能力,核心就是沟通能力。

你自己有能力是一回事,让别人认识到你的能力是一回事。大多数人可能觉得做出效果自然别人就认识你的能力,但要顺利做出效果,一定要跟其他同事甚至跨团队沟通,这个时候,好的沟通能力,能让别人有效理解你的想法并觉得有道理。

尤其是和产品的沟通,让产品理解你的想法并认为有效,非常重要,不然他们会用他们的策略思维来不断教你做事情。这也不能怪产品,站在他们的角度,他们有他们的诉求,也要产出。

还有就是和老板的沟通。遇到开明一点的老板,会给你足够的空间,但大多数的老板都需要掌控感带去的安全感。如果他们没有理解你的想法,那你就会经常被challenge,被施压,在实施过程中一有点问题或者不如预期效果,就会被叫停,无法继续沿着自己的思路迭代,这个是非常头痛的,因为一个算法落地,往往要经过不断的迭代,才会有好的效果,这个过程要不断地运用上面说到的抽象建模能力。甚至有的老板控制欲更强,即使做出了效果,如果超出了他的认知范围,也不让你上线或者全量,他觉得你这是胡搞出的效果,就非常憋屈。所以一定要和老板沟通好,让老板理解你的想法并得到他的支持,这个时候你们的利益是一致的,一旦外界有声音质疑,老板还能帮你挡一挡,在没有资源的时候还能帮你去协调资源。

业务抽象能力是一个好的算法工程师的专业体现,而沟通能力是为了让专业能力更好落地的能力。沟通能力不管哪种行业,都是非常非常重要的,说白了,事情做到一定程度,就是人和人打交道,这时候事的比重反而小了,因为绝大多数情况,没有你,这个事也可以有若干的他她它来做,这个世界上没有几个人是缺了你不行的角色。

学习能力也是让业务抽象能力这个专业性能力更有效落地的能力之一。前沿算法更新很快,学术界各种顶会论文非常多,其中不乏一些仅供学术研究的。但也有一些在业界非常work。算法工程师需要不断学习新的知识,来紧跟最新进展,并保持这种敏感性。多看看论文和技术分享,多学习别人怎么做的,别人在相似的业务下采取什么做法,很多时候自己就会对当下场景的问题有新的思路。

学习能力还包括对具体实施过程遇到一些没有接触过或者接触不深的方面的学习。算法的落地涉及面很广,除了算法本身,往往还有数据侧工程侧多方面,而很多时候算法工程师不可能每个点都非常精通,一般是遇到了再去了解学习应用,这时候这项能力可以帮助算法快速落地。

学习能力其实也不限于算法工程师,只是这个岗位突出了这项能力的重要性。抛开岗位来说,作为一个人,理想状态是终身学习。

——The  End——

分享

收藏

点赞

在看

算法工程师的核心竞争力是什么?相关推荐

  1. 算法工程师的核心竞争力

    工作以来一直在思考算法工程师这个岗位的核心竞争力,自己的心路历程分为三个阶段. 第一阶段 这一阶段我认为算法工程师的核心竞争力是对模型的理解,对于模型不仅知其然,还得知其所以然. 于是我把目标检测的经 ...

  2. AI 芯片崛起!FPGA 工程师的核心竞争力在哪里?

    [CSDN 编者按]随着 AI 芯片在争议中崛起,FPGA(现场可编程门阵列)芯片架构也开始受到关注,但大部分人仍对其保持着知之甚少的状态.作为一种硬件可重构的体系结构,FPGA 在很长一段时间内都被 ...

  3. 测试工程师的核心竞争力----打卡第九天

    我以我们团队招聘功能测试和测试开发工程师为例,带你了解一下测试工程师的核心竞争力到底是什么. 案例一来自我们的资深功能测试工程师招聘.当时,有一位拥有近 9 年测试经验的资深测试候选人,我对他的简历还 ...

  4. 软件测试工程师的核心竞争力是什么

    软件测试52讲- 1.测试人员,必须要深入理解业务,但是业务知识不能等同于测试能力. 2.测试开发岗位的核心其实是"测试","开发"的目的是更好地服务于测试,我 ...

  5. 软件工程师的核心竞争力(学习能力,解决问题的能力,影响力)

    原文链接:https://blog.csdn.net/rendong_yang/article/details/89703724 文章目录 一.软件工程师的核心竞争力 1.学习能力 2.解决问题的能力 ...

  6. 什么是FPGA工程师的核心竞争力

    这个问题是老石在知乎上看到的,大家的回答都是"调板子"."debug"."硬件实现"等等.作为FPGA工程师,老石看了实在要报以一个礼貌的微 ...

  7. 软件测试人员的核心竞争力,软件测试工程师的核心竞争力是什么?

    在测试行业,很多人会认为,测试工程师这个岗位其实是很容易被替代的,工作了3年5年会的东西,一个应届生稍加培养也能做,那么企业会选择谁可想而知.所以在学习的过程中,我们首先要找准自己的定位,先搞清楚你的 ...

  8. 09. 软件测试工程师的核心竞争力是什么

    文章目录 例子: 传统测试工程师师应该具备的核心竞争力 第一项核心竞争力,测试策略设计能力 第二项核心竞争力,测试用例设计能力 第三项核心竞争力,快速学习能力 第四项核心竞争力,探索性测试思维 第五项 ...

  9. 【测试工程师的核心竞争力是什么】

    测试工程师的核心竞争力是什么 第一项核心竞争力,测试策略设计能力 第二项核心竞争力,测试用例设计能力 第三项核心竞争力,快速学习能力 第四项核心竞争力,探索性测试思维 第五项核心竞争力,缺陷分析能力 ...

最新文章

  1. R语言plotly可视化:可视化直方图、归一化的直方图、水平直方图、互相重叠的直方图、堆叠的直方图、累积直方图、通过bingroup参数设置多个直方图使用相同的bins设置、自定义直方图条形的间距
  2. HDU 1253 胜利大逃亡
  3. centos7 mysql 5.6.38_centos7.4 安装mysql 5.6.38
  4. python学了有什么用处-Python主要用途是哪些,跟机器学习等有啥关系呢?
  5. Hive中文注释乱码解决方案
  6. spinlock与linux内核调度的关系
  7. saleor设置braintree支付方式
  8. mysql not exists 效率高_mysql not in、left join、IS NULL、NOT EXISTS 效率问题记录
  9. disruptor消费者模型
  10. Sharepoint2013搜索学习笔记之自定义查询规则(十)
  11. 考研数学线上笔记(一):凯哥极限计算系列课程
  12. matlab遥感原理与应用,遥感原理与应用知识点概括考研.doc
  13. 11 Mortal Fibonacci Rabbits
  14. 关于知识分享和微软TechEd Roadshow
  15. 吃白菜一样用micropython玩esp32(四)—— siri远程控制点灯
  16. 详解:一次HTTP请求的全过程
  17. python多线程执行同样代码_Python 多线程、多进程 (一)之 源码执行流程、GIL
  18. int *a和(int *)a的区别
  19. linux文件中插入多行技巧
  20. javascript闭包的前世今生

热门文章

  1. 纯色背景图片去除底色工具发布,将背景变透明
  2. #1082 : 然而沼跃鱼早就看穿了一切
  3. 谷歌网页翻译失效解决方法
  4. MySQL 综合分析题_MySQL练习题:综合面试题
  5. 如何申请 Apple 的 Dun Bradstreet Code (邓白氏编码 2021)(最新的,网上其他的流程都跟现在的申请步骤有差别)...
  6. 第四代反应堆的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  7. 运维告诉我CPU飙升300%,为什么我的程序上线就奔溃了
  8. 清除浮动影响的几种方法
  9. 计算机专业硕士英文,硕士研究生专业(领域)中英文对照(2015版).doc
  10. SAP MM模块-MIGO收货后自动打印收货单