Skip to content

Latest commit

 

History

History
115 lines (58 loc) · 14.3 KB

stay-competitive-machine-learning-business.md

File metadata and controls

115 lines (58 loc) · 14.3 KB

如何在机器学习业务中保持竞争力

原文:www.kdnuggets.com/2017/01/stay-competitive-machine-learning-business.html

c评论

作者:Vin Vashishta,V-Squared

竞争格局

虽然大多数企业刚刚开始涉足机器学习领域,但许多企业已经开始获益。技术迅速发展。被甩在后头是早期采纳者的主要担忧,也是快速跟随者的驱动力。

在迅速发展的新兴技术中保持竞争力已经是一项挑战。对于机器学习而言,这种挑战被技术复杂性、人才短缺以及不断变化的开源产品环境所加剧。像 Google 这样的公认专家正在采用一些创造性思维,保持领先于 Facebook、IBM 以及更新的挑战者 Microsoft 等公司。通过收购、积极参与开源项目以及众包解决他们无法内部解决的问题,Google 成功地保持了其顶尖地位。

大多数公司在机器学习方面不需要“走 Google 的路”。虽然机器学习的商业案例非常有说服力,但大多数商业需求并不足以支撑主要玩家的开支。那么中间的解决方案是什么?我从系统理论中找到了答案。为了在机器学习领域保持竞争力,企业需要比竞争对手做得更好,而不是做到最好。有一些简单的规则可以创造出这种环境。以下是我提供的一些建议。这份清单就像任何其他开源项目一样,欢迎在评论区提出贡献。

创建与保护独特的数据集

我想首先将焦点从大型算法上移开。大型算法是指认为算法越大或越复杂越好。如果这是事实,为什么 Google 和 Facebook 会如此积极地通过开源贡献分享它们的算法呢?

这些公司以及机器学习领域的许多其他参与者,通过访问独特的数据集获得了优势。原因非常简单。机器学习的学习过程依赖于数据集。这意味着,给定相同的算法,三家拥有三种不同数据集(在质量、规模、数据点等方面不同)的企业,会得出三种不同的模型/预测/输出。数据集越独特,差异和潜在优势就越大。

要保持独特,数据集不能被逆向工程到像 Wikidump 或 BLS 报告这样的公开数据集。这是什么意思?如果一个机器学习团队利用维基百科中的所有文本,创建了一个包含常见词汇的数据库,那么这不是一个独特的数据集,任何从中派生的数据集也不是。这可以被逆向工程到公开的数据集。比如说一个企业有一个客户支持呼叫中心。那里的数据独特吗?在某些方面是的,但要记住许多企业也有类似的呼叫中心数据。虽然这些数据特定于一个企业,但其一般趋势会在其他企业的数据中重复出现。

那么,什么是独特的呢?想想 Twitter。有没有其他人能在不付费的情况下访问所有来自用户的内容?Facebook 以及可能一两个其他平台。就这些,这使得他们的动态非常独特。让我们回到 Google。有没有其他人能访问那种搜索数据?没有。这些是独特的数据集。你如何在不“去 Google”的情况下获得独特的数据集?这就是商业战略规划发挥作用的地方。

从大算法转向独特数据的原因之所以如此重要,是因为它向战略规划过程中提出了“我们如何创建独特的数据集?”的问题。大多数公司将招聘数据科学家和机器学习专家视为采用技术的唯一必要步骤。这就是大算法思维成为问题的原因。

大多数的通用建议告诉企业招聘数据科学家并给他们业务问题。这是一个开始,但它忽略了他们需要的燃料,以便比最近的竞争对手解决这些问题。这个燃料就是数据。获取这些数据是一个需要跨部门和领导层赞助的公司范围内的倡议。

首先要查看的是现有的数据。在大多数中型到大型公司,甚至一些存在了很长时间的小型企业中,数据无处不在,没有一个人真正掌握公司拥有的所有数据。在我的一个客户那里,一个独特的数据集就藏在一个由一名员工负责维护了五年的电子表格中。其他人则在他们的网站、市场调查和移动应用程序中发现了金矿。一旦公司改变了思维方式以理解其价值,独特的数据就在那儿等待被发现。

数据科学和机器学习团队也需要一个获取独特数据的流程。这通常跨越部门,并且需要一个围绕它的流程才能成功。我不能告诉你在项目中多少次我说过,“如果我有这些数据会更好……”在发现向其他部门发出请求的难度后,我开始建立获取这些数据的流程。

这也是机器学习不能成为孤立团队的众多原因之一。他们需要成为强有力的沟通者和宣传者。这是因为我们经常需要市场营销团队来收集新数据,和 web/app 开发团队来为战略团队请求的项目构建新功能。如果这些团队不了解需求和遵循的过程,数据请求可能会消失在黑洞中。

一旦这些独特的数据集建立并投入生产,就需要像其他商业机密一样进行保护。这包括两个方面:防止盗窃和防止意外泄露。将数据集放在一个地方并控制访问权限。不允许多个团队在不同系统中保存副本。这使得很难知道哪个副本是“主版本”,并将保护它变成了一个噩梦。向所有有访问权限的人宣传这个数据集是公司的专有资产并且是公司竞争优势的关键。我见过一些团队因为不知道数据集有价值而将其交给客户的情况。这应该在保密协议和新员工培训中明确说明。

培养人才

machine-learning-business

我想摆脱另一种常见的机器学习认知——全能的机器学习工程师。这种观念认为一个人需要具备所有技能来从头到尾处理一个机器学习项目。由于当前人才短缺,公司在以成本效益的方式实现这种模式方面遇到了困难。

有几个原因使得寻找一个完整的“独角兽”团队是不切实际的。全球有经验的数据科学家不到 2 万人。现在将这个群体按拥有 5 年或以上机器学习经验的人进行细分,你会发现剩下的群体非常小。寻找一支顶尖团队既不具成本效益,也不符合时间的有效利用。

替代方案是从内部构建和培训团队。我看到这种方法有几个关键好处。首先是领域和文化专长。内部候选人了解业务,并且在应对业务文化方面经验丰富。他们是拥有同事支持的内部人员,而不是推动新议程的外部人员。他们了解核心业务,并且有第一手的业务挑战经验。

如果人才来源不当,学习曲线可能陡峭且昂贵。 内部搜索需要围绕几个角色进行结构化,而不是寻求培训候选人来填补所有角色。 第一个角色是数据科学软件工程师。 这个人将模型和数据集从原型转化为生产。 他们的主要技能是软件开发,通常涉及多个编程语言,如 Python、Java、R、C、C++、Scala 等。 他们还熟悉数学概念和符号,以及算法编程和库。 他们不需要成为统计大师或线性代数专家,但需要理解基础知识,以便成为团队的翻译层。

第二个角色与数据科学软件工程师相关联。 这就是数据科学分析师。 他们的核心能力是将数据转化为可操作洞察的数学和统计概念。 他们是数据科学专家,具备良好的编程技能;足以在至少一种语言中从概念到粗略原型。 他们会听取业务问题中的关键术语,以确定特定的算法方法;例如优化问题与分类问题。 他们能够将其转化为实验,然后形成概念验证解决方案。

第三个角色与数据科学分析师紧密相关,也将解决方案提供给数据科学软件工程师。 机器学习分析师的核心能力围绕机器学习和深度学习算法。 这通常与数据科学一起讨论,但它们是两个不同的研究领域,最理想的是由两个人分别承担。 这个人将更多时间集中在研究方面,较少关注原型制作。 虽然数据科学分析师每月会产生一两个解决方案,但机器学习分析师每两三个月才会产生一个解决方案。 他们专注于最棘手的业务挑战;那些现有数据科学方法无法很好解决的问题。

根据存储和处理的数据量以及实施的解决方案数量,可能还需要一名数据工程师来维护基础设施。 这个人有在 Spark、Hadoop、AWS 等平台上工作的丰富背景。 团队可能还需要一位数据治理专家。 这个人在数据安全、数据来源、数据隐私以及围绕数据管理的各种法规方面都是专家。

这些人如何培训以成功过渡到新的角色?认证和在线课程是最佳途径。可汗学院提供了多个课程,使具有数学背景的开发人员更熟悉高级数学概念。还有编码训练营和在线培训来提升软件开发能力。许多大学和学院提供数据科学和机器学习课程。这些课程可以帮助候选人将零碎的知识拼凑起来,准备好成功。

我还强烈建议引入该领域的专家,为团队提供基于经验的指导。这不一定需要全职或永久聘用。在某些情况下,每周 10 小时的长期支持或 6 个月的合同就足够让企业做好自主发展的准备。随着团队开始相互学习,拥有一个专家来引导学习并避免陷阱是非常值得的。

管理研究阶段的过程

这分为两个部分。首先是认识到研究在机器学习计划中的重要性。第二是理解研究过程以及如何管理它,以确保其在预算内交付成果。

研究阶段有几个驱动因素。我们可以获得哪些数据来解决业务问题?考虑到业务问题和可用数据,哪种方法效果最佳?(还有其他考虑因素……我在这里做了简化。)有哪些开源工具可用,需要多少修改才能使其满足需求?

完成这些任务通常需要大约一个月的时间。为什么?机器学习每天都在变化。算法、开源项目、开放数据、平台及其他一些组件不断被引入和改进。昨天有效的方法可能今天不再是最佳方案。没有研究阶段,企业可能会陷入过时的解决方案。这些方案比实际需要的更昂贵,并且会成为前进的障碍。

研究过程从清晰理解业务需求及所有相关考虑开始。团队越接近问题,解决方案越有效。花时间关注约束条件。解决方案需要如何运作?谁将使用这个解决方案,他们的要求是什么?定义可接受的准确性。细节对机器学习项目至关重要。没有这一步,机器学习项目不可避免地会偏离轨道。

从对需求的深入理解出发,进行高质量的解决方案研究。这里是驱动因素的答案:数据来源、数据质量、方法、工具/框架。通常,我会研究 3 到 4 个解决方案,因为原型设计过程是迭代的。构建最有前景的方案,但要有多个备选方案以防第一个方案未能证明其有效性。即使结果很有前景,也要验证每一个假设。假设会毁掉机器学习项目。不要等待完美。原型满足业务需求时就进行部署。改进可以在维护模式中完成。没有理由拖延向业务回馈价值。

管理流程。保持研究的进展意味着使其贴近业务需求,并保持透明。我建议团队、项目利益相关者和用户之间每周开会。讨论研究过程,并在后期演示解决方案。鼓励大家提出问题。让研究接受严格审查。让团队支持每一个假设。寻找数据和团队方法中的偏差。

3 个基本步骤

这三步之所以能保持企业竞争力,是因为很少有企业践行这些步骤。大多数从事机器学习项目的公司都以算法思维为主,追逐虚幻的目标,让研究过程失控。这会创造一个很难提供高质量解决方案的环境。一个在这三方面做得好的公司会脱颖而出。做到这三点中的所有三点,能够在机器学习领域不断演变的情况下保持竞争力。

原始帖子。已获得许可重新发布。

简介: Vin Vashishta,在数据科学和机器学习领域围绕简单性和盈利性构建了最受信任的品牌。他受到沃尔玛、埃森哲、微软、IBM 以及许多其他行业领袖的关注。他被 Agilience、Dataconomy 和 Onalytica 认可为预测分析和机器学习领域的思想领袖。

相关:

  • 生成对抗网络 – 机器学习中的热门话题

  • 优步化!将你的业务优步化

  • 处理异常值的 3 种方法


我们的 3 大课程推荐

1. 谷歌网络安全证书 - 快速进入网络安全职业生涯。

2. 谷歌数据分析专业证书 - 提升你的数据分析技能

3. 谷歌 IT 支持专业证书 - 支持你的组织 IT 需求


更多相关话题