关于电商和机器学习的小思考

比尔盖茨曾经说过“我们总是高估今后一两年内将要发生的变革,总是低估未来10年将要发生的变革。所以,不要让你自己陷入无所作为的窘境。”把这句话用到机器学习领域非常贴切。把这句话放到我所处的电商公司平衡短期和长期目标也很合适。

小狗不才,最近又多了一些新感受,在这里总结一下。

人才取舍

我一直觉得,好的machine learning engineer需要将机器学习和系统有效地结合在一起。如果只会搭建模型,不懂得建一个online service,那么再好的模型也只是一个花架子。如果只会搭建系统,不懂得machine learning的基本概念,那么没有办法很好的扩展系统。

然而,日常的工作让我发现,大部分的公司并不需要担心系统的运行效率问题,不需要钻研如何优化内存,将Feature Map转换为Feature Array提高速度。

我见过一个小朋友非常爱阅读论文,学习不同的Network Architecture,看Research界是如何做图像识别的。然而我对他的期望是要挖掘数据,一个一个样例去看,针对数据提出问题。这更像是一个数据科学家,使用现有的机器学习或者统计知识从数据中挖掘宝藏。最后把问题转换为简单的代码交给负责部署的程序员。

ML服务

在现在这个时代,各种软件,平台和基础设施都成了服务,在人们有需要的时候使用,机器学习也可以被当做一个Service。机器学习的Service有很多种,简单的Service有图像识别,语音识别,机器翻译等,现在有一些公司直接提供一整套的推荐系统方案,搜索引擎方案。

起初我是很反感这一套Service的,因为我觉得只有自己团队的工程师才明白公司最需要什么,才能心往一处使的去解决问题。但是发现作为体量小的公司,有的时候机器学习Service才是最好的解决方案。

举一个例子,Google Translate只需要$20就能翻译1,000,000个字符。一个工程师专攻机器翻译的年薪约20~30万美元,都可以用来翻译10B个字符了。这对Startup体量的公司绰绰有余。

为了造轮子而花更多的钱,不如买一个现成的轮子。

不要只用一种模型

我刚刚开始工作的时候也常常犯这样一个错误,对别人说“我们已经建立了一个模型来对产品进行推荐,现在我们只要加feature优化它。”然后我就进入了一个不断加feature,但是看不到明显进展的怪圈。然而实际上我要解决的问题可能是很多不同类型数据的集合。每个数据都有不同的因果关系,适合不同的预测模型。

举个例子,在推荐一个用户购买产品的相关产品时,有的用户可能喜欢附加品,比如买电脑,推荐鼠标;有的用户可能喜欢相似的,比如看Dell,推荐Lenovo;有的用户可能喜欢更加发散的组合,比如看笔记本电脑,推荐键盘,鼠标,显示器套装。

因此,基本上每个工作一段时间的人都会采用不同的模型ensemble起来的方法,或者将他们的结果合并起来作为candidate pool。慢慢的,我们会积累越来越多的模型和数据,一个更加复杂的问题就诞生了,如何用ML更好的将这些模型组合起来。

小插曲

有一天,一个VP of Engineer做了很多数据分析,发现一个“有趣”的现象。作为一个电商网站,我们给用户推荐产品平均价格比用户成交产品平均价格贵很多,然后说:这看起来很奇怪(你们的推荐有问题)。

我内心先是一惊,被大佬找上了。心里的玄学大师就开始为自己辩解,用户都在找便宜的东西买,所以成交的商品平均价会比看到的商品平均价低,好像没什么问题。

然而玄学不能替自己辩护,这时候不妨拿出小学的数学知识来分析一下。

假设我们的推荐系统在优化GMV Per Mille,我们给用户展示$1的产品和$100的产品,我们分别展示他们1000次。假设他们的GMV Per Mille相同,卖出1个$100产品的同时需要卖出100个$1产品。

推荐的平均价格是($1*1000+$100*1000)/2000=$50.5。

成交的平均价格是($1*100+$100)/101=$1.98。

看来购买均价要比推荐均价低的多,才说明推荐系统没问题呢。

写在最后:

虽然有这些感悟但并非我自己就认同这些想法。我还是很想去钻研如何让程序更稳定;如何设计一个轮子让车子跑的更快;如何不断地去提高一个模型的准确率。

等到有一天,也许我就放弃公司目标和个人追求的取舍。

欢迎关注硅谷程序汪

原创文章,版权所有。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180922G02OFT00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券