社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

SQL 能解决的问题,别动不动整机器学习

MacTalk • 5 年前 • 460 次点击  

题图:by apple from Instagram

上礼拜发了一篇 MySql 和 UTF-8 的文章,很多人问极客时间有没有数据库相关的专栏。那必须有啊,我们邀请了业界顶级的数据库专家来打造这个专栏,很快就会和大家见面。

新时代来临,新技术的产生就和下饺子一样,一锅锅的出来。加上程序员爱尝鲜的特性,我们似乎总是在谈论那些新的技术和特性,比如我用区块链做了个……关键是不用区块链也能实现啊,并且更简单。这让我想起前一阵看见的一篇文章,转自聊聊架构,作者的观点就是:骑单车五分钟能到的地方,就别动用宾利了。以下是正文(有修改):


不久前,我发了一个推文,说我们需要使用传统和已有的工具来解决日常业务问题,而不是去攀附那些性感时髦却又复杂的技术。

人们对这个推文反应十分强烈,最终成了 Hackernews 的头条。这个推文引发了一些有趣的对话。有的人赞同我的观点,有些人则完全反对,还骂我是蠢货。好吧,互联网本来就是个「狂野的西部」。

我写这篇文章并不是想要说服你什么,而是打算对之前推文的内容做进一步说明。

随着岁月的流逝,一些有趣的技术和概念如雨后春笋般冒出来——机器学习、区块链、人工智能、虚拟现实、增强现实等等,而有些技术则开始退居二线。经常听到有人基于区块链技术开发出优秀的产品来。

我见过基于区块链技术的电子商务服务、社交网络和版权,而这类应用程序还在不断增加中。据说现阶段你要快速及早地融到资金,必须与「区块链」扯上关系,即使从宏观上看它与区块链可能并没有任何关联。

在区块链之前是机器学习和人工智能(ML/AI),几乎所有技术相关的页面都会出现 ML/AI。如果你的页面上没有提到 AI,好像天会塌下来一样。但说真的,你们真的有 AI 业务吗?我看不一定。我今天仍然很看好的一种技术是 SQL(结构化查询语言),这项已有 40 多年历史的技术在今天与 1974 年首次出现时一样重要。尽管多年来经历了一些改进,但它仍然像以往一样强大,穿透时光,为你带来更简单和直接的解决方案。

我的整个职业生涯都花在了技术上,我大部分时间在从事与电子商务有关的工作,亲眼目睹了这项技术如何帮助我们发展业务。我们使用这项技术来提升我们的优势,用它从我们收集的数据中找出一些有趣的信息。这些数据包含了与消费者行为以及他们的购物模式和习惯有关的信息。我们甚至可以用它预测我们应该持有或不应该持有什么样的库存单位(SKU),或者提升客户满意度,并让更多人成为回头客。接下来,让我来告诉你我们是如何做到的,或许你也可以。

在与创始人交谈时,他们总会告诉我,他们希望使用 AI/ML 留住客户和提升终身价值(Lifetime Value,LTV)。事实是,工程师根本不需要使用机器学习或其他花哨的技术,正确使用 SQL 才是他们真正需要的。在以前,我常常使用 SQL 从我们的数据中提取有价值的信息和见解。有一次,我们需要知道本周的客户是谁,因为运营人员想要认识他们并奖励他们。公司的这种举动通常会让顾客感到非常高兴,他们有可能因此成为公司忠实的粉丝,并且,我们会看到顾客在社交媒体上奔走相告他们收到的奖励。

事实证明,这比把钱花在广告上更有效。当然那,不用误会我的意思,传统的广告仍然有它的作用,但没什么比值得信赖的朋友口口相传更为有效的了(口碑营销)。是的,获取这些信息一点也不困难。除了使用老旧的 SQL 之外,不需要任何其他花哨的技术。为了获得值得奖励的客户,我们写了一个 SQL 语句来查询订单表,在获得这些信息后,我们通过电子邮件向客户发送一封感谢信,并附上一张优惠券。你猜怎么了?其中 99%的人成了回头客。我们不需要机器学习,我们只用了一个简单的 SQL 查询就获得了这些信息。

有一次,我们需要与那些暂时没有购物的顾客重新建立联系。我写了一个 SQL 查询,收集了最后一次购物日期为 3 个月前的客户。这个问题也很简单。我写了一个 SQL 查询订单表,把最后一次购物日期是 3 个月前的订单捞出来。在得到这些信息后,我们会发送一封内容为「我们想你了,快回来吧,这里附上某某购物券」的电子邮件。客户的回复率始终大于 50%。同样的,社交媒体上紧接着就会出现这些用户开心的笑容。在我看来,这两种策略在很多情况下仍然比谷歌和 Facebook 广告更有效。

我们将同样的想法应用在推送邮件上。我的意思是,既然可以进行个性化推荐,为什么要向所有人发送同样的邮件呢?那么该如何进行个性化推荐?我通过 SQL 检查购物篮中的物品,并将它们逐个提取出来。然后我们基于这些物品建立推送邮件,并加入相关的内容。例如,假设一个人买了一双鞋、一副太阳镜和一本书,那么在他们的推送邮件中,我们将展示鞋子、太阳镜和书籍。这比发送随机内容更有意义。我的意思是,为什么要给一个刚买了一双运动鞋的男人发一封内容为抽乳器的邮件?它可能毫无意义。大多数营销电子邮件的打开率为 7-10%。但是,在我们做得好的时候,这个数字可以接近 25%到 30%。

这个数字是行业标准的三倍。我们在这些电子邮件中使用了他们的名字作为亲切的称呼,而不只是「亲爱的顾客」,这样充满了人情味,表示我们对顾客的关心。所有这些都是通过老旧的 SQL 而不是花哨的机器学习来实现的。

对于因某种原因无法完成订单的客户,我们也没有漏掉他们。只要他们在购物车中添加了商品,就表明他们有购买意向。为了让他们能够结账,我写了一个 SQL 脚本,并设置了一个 CRON 作业,向在 48 小时之前往购物车添加过商品的顾客发送邮件。你猜怎么了?这样做很有效。因为我们可以跟踪这些电子邮件,让顾客回来继续完成订单。而这个 SQL 查询也非常简单,它选择了更新时间大于或等于 48 小时的非空购物车。我们将 CRON 设置为每天凌晨 2 点运行,这个时候活动和流量较少。然后,客户在醒来时收到电子邮件,提醒他们购物车里还有东西没结账。这里没什么神奇的东西,只用了 SQL、Bash 和 CRON。

由于货到付款(Payment On Delivery,POD)算是一件大事情,SQL 再次派上了用场。我们将连续三次取消订单的客户置为高警戒状态,下次他们再下订单时,我们会打电话给他们,确认他们是否真的要购买东西。这样,我们节省了时间,避免了不必要的压力。总而言之,对于这些客户,我们将对其禁用 POD,要求他们只能用银行卡或电子钱包支付。在电子商务中,物流成本是很高的,所以要把精力集中在信誉良好的用户身上。我们不需要机器学习或其他一些花哨的人工智能技术来解决这个问题,我们需要的是编写良好的 SQL。

对于在 SLA 时间窗口内未能发货的订单,我们也使用 SQL 查询来管理客户期望。我们选择处于未交付状态的订单,比如订单日期>=7 天,因为这是标准的交付周期。然后我们设置 CRON 作业,向客户发送电子邮件和短信。虽然顾客没有立即跳起来为我们鼓掌,但至少,我们向他们保证,我们关心着他们,并正在努力解决问题。没有什么比订单延迟更烦人的了。

这个特殊的解决方案也对我们的 NPS 产生了巨大的影响。我们依旧使用老旧的 SQL 和 Bash 解决我们的难题。

Sift Science 在预防欺诈方面做得非常出色,但其实 SQL 也可以派上用场。如果一个人试图同时用 3 张不同的卡结账,并且这些卡都是空头,那么就会发生一些有趣的事情。我们首先要暂时阻止他们的账户,这样可以为真正的卡片所有者节省很多麻烦。我们不需要保存卡片的详细信息,只需保存特定订单号的结账操作,这样就可以了。这些都不需要使用机器学习,只要编写良好的 SQL 就够了。

我可能是在说 ML/AI 的坏话,这些技术有它们的用武之地,亚马逊已经证明了这些技术的有效性。但是,如果你正在运营一个拥有 1,000 到 10,000 个客户的小型在线商店,那么完全可以只用 SQL。此外,ML/AI 人才并不好找。


卖桃者说:

1、在合适的场景中使用合适的技术,不要学人家赶时髦。
2、做为一个创业者和写作者,每天做好被 diss 的准备是应有的素质。每天被击垮,从未爬起来。

推荐阅读:不要给自己设限


今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/d0Q4qloAuq
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/21554
 
460 次点击