在国富如荷这些年的教学过程中,很多同学问到了一个问题:
在现实的商业世界中如何应用机器学习?
也就是说,虽然现在我们一直被各种算法文章和教程轰炸,但是关于企业中一个机器学习项目的“上下文”却总是缺失的。
今天杨老师将给同学们介绍我们最近采集到的三个真实的企业机器学习项目,以让同学们更好地理解机器学习和数据科学在实践中是如何工作的。
01、扫描 eBay 是否有假冒商品或赃物
这个项目来源于我们美国部门的反馈。这是一家娱乐行业的企业,由于保密协议的原因老师无法给出企业的名称。他们有一个专门的分析团队,在购物网站(如eBay)上搜索带有客户品牌的被盗或假冒商品。
在eBay上数以百万计的商品清单列表中,只有很小一部分是企业感兴趣的。于是分析团队上线了爬虫算法,抓取包含相关关键字的网页,并将网页图片存储在特定的文件夹中。每天,该团队都会登录到相关的门户网站,爬取并查看这些图片,以确定它们是否侵犯了企业的版权。这是一个非常昂贵却无聊的过程,昂贵在负责查看图片的人工成本,无聊在于这个查看工作本身没有太多技术含量却非常消耗工时。但是这个问题可以通过一点机器学习得到很大改善。
尴尬的是,现在很多很多讨论计算机视觉的文章都在关注一些"不务正业"的问题,例如 猫 vs 狗、汽车 vs 摩托车、手绘数字等等。但在这个项目中,我们必须在图像中寻找侵犯版权的东西。
决定使用哪种机器学习算法来解决问题通常很复杂,这个项目也不例外。一方面,我们有大量被标记为侵权或非侵权的数据,在这种情况下,很容易能看出这是一个有监督的分类问题。那么,我们考虑试一下神经网络算法?
另一方面,由于门户网站的设计,检索负面信息非常耗时(它不存储图像,只是一个链接),因此我们只有一个有限的数据集。此外,企业的徽标经常与其他企业的徽标一起出现在图像中(侵犯版权通常是很微妙的),并且足够深的神经网络很有可能会识别出类似商标的存在而不是单独某个公司的标志(就像神经网络通常会识别所有犬种而不仅仅是德国牧羊犬一样)。在这种情况下,关键是训练一个更浅的卷积神经网络来进行目标检测而不是分类。这阻止了网络学习 logo-general 特征并迫使它学习 logo-specific 特征。(这两个单词显然用英文来表述会更加准确,因此我们不给出翻译)
CNN(卷积神经网络)的算法本身是成熟的,那么这个项目的关键就在于生成训练集以供训练目标检测。它需要由来自原始训练集的大量不同角度和排列的图像组成,具有各种倾斜和对齐方式,每个图像都有一个包围框围绕着我们想要检测的对象(徽标)。在花费了相当大的精力完成训练集的工作后,这个项目的后续工作也顺利完成。
02、预测零售店是否会被盗
这个项目来源于与我们合作的一家企业,这是一家跨国零售连锁企业(同样是基于保密协议,这里不能给出企业名称)。由于这家企业的分支店铺遍布全球,包括一些不太安全的地区。因此需要构建一个算法,根据入室盗窃的历史实例生成入室盗窃的风险评分。
由于业务的性质,企业认为盗窃的风险随着周边地区的犯罪而增加,而不是由于商店的任何特定特征(易碎的窗户等)而增加。
该算法工具的目的不是直接防止盗窃,而是评估如何对整个商店组合分配固定预算,以减少盗窃损失。因此,算法输出的必须是更新每个安全设施的好处,或者说是推荐更新哪些安全设施,有点像推荐引擎。
与我们上一个示例类似,找出解决问题的关键是最大的挑战之一。分析团队首先尝试了生存分析,定制了 Cox Proportional Hazards 模型以接受多个事件。虽然它在洞察各种安全设施的防护性方面做得很好,但它对于地理因素的识别效果非常差,而地理区域因素正是客户想要识别的一个重要因素。
最后,分析团队决定为客户想要识别的每个因素构建单独的分类器(使用XGBoost),为每个时期设置固定的训练集日期范围,以解决较长时期的预测更有可能高估长期风险的问题。接下来,将这些因素导入回归模型来计算每个零售商店的预估损失,并使用该度量(结合地理度量)来生成具体的推荐。
03、向1.5亿位访问者推荐内容
Infinite Scroll,一般称为无限滚动模式,对于有很多相似条目需要展示的页面,可以用无限下拉的方式来避免用户通过点击下一页来获取更多内容。比如今日头条网站,打开后,可以一直向下滚动,当滚动到页面底部后,就会加载更多新闻条目。
之前,一个和我们美国部门有长期合作的网站转向了无限滚动模式,但对拉到底后接下来要显示哪篇文章发了愁。一开始,他们的分析团队提出的方法与强化学习非常相似——从10篇最受欢迎的文章中选择一篇或随机选择。
不幸的是,这个想法并没有给他们带来他们所希望的转化率,而无限滚动条也大大降低了他们的广告点击量(尽管这对用户来说是一种更好的体验)。
后来,分析团队使用词嵌入和用户嵌入,构建了一个协同过滤推荐引擎,为用户提供符合他们兴趣的文章,而不仅仅是最流行的。
这个项目最大的挑战不是选择哪个算法的问题,而是海量数据的处理问题:必须确保系统非常快速地返回推荐——这是无限滚动体验的本质。
另一个挑战是数据埋点和备份,因为用户的每个行为都有非常多个特征可以提取,因此需要找到一种方法来存储这些信息,且存储成本不会呈指数级增长。
分析团队决定按站点、类别和用户信息拆分模型,以减少嵌入矩阵的大小。同时还部署了各种降维技术以使其更易于管理,并密切监视系统以确定备份的理想截止日期。
总结
通过上述三个项目同学们可以发现,很多时候,算法选择和参数调参并不是企业中一个机器学习项目最重要的阶段。而客户需求、数据类型、计算速度、预测用法,甚至数据库优化都会影响到一个项目的成功。