【AICon】 如何构建高效的 RAG 系统?RAG 技术在实际应用中遇到的挑战及应对策略?>>> 了解详情
写点什么

SQL 足以解决你的问题,你可能不需要机器学习

  • 2019-08-21
  • 本文字数:2837 字

    阅读完需:约 9 分钟

SQL足以解决你的问题,你可能不需要机器学习


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


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


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


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


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


在区块链之前是机器学习和人工智能(ML/AI),几乎所有带有“加入候补名单”字段的登陆页都会出现 ML/AI。如果你的页面上没有提到 AI,好像天会塌下来一样。但说真的,你们真的有 AI 业务吗?老实说,这个还真不一定。我今天仍然很看好的一种技术是 SQL(结构化查询语言),这项已有 40 多年历史的技术在今天仍然与 1974 年首次出现时一样重要。尽管多年来经历了一些改进,但它仍然像以往一样强大。


我的整个职业生涯都用在了技术上,我大部分时间在从事与电子商务有关的工作,亲眼目睹了这项技术如何帮助我们发展业务。我们使用这项技术来提升我们的优势,用它从我们收集的数据中找出一些有趣的信息。这些数据包含了与消费者行为以及他们的购物模式和习惯有关的信息。我们甚至可以用它预测我们应该持有或不应该持有什么样的库存单位(stock shopping unit,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 人才并不好找。

原文链接:

No, you don’t need ML/AI. You need SQL


2019-08-21 14:459489
用户头像

发布了 731 篇内容, 共 430.5 次阅读, 收获喜欢 1995 次。

关注

评论

发布
暂无评论
发现更多内容

tornado 的协程调度原理

菜皮日记

tornado

使用基于 tideways 的 php-monitor 搭建 PHP 性能监控平台

菜皮日记

php

Java 动态代理原理

菜皮日记

Java 动态代理

四种常用限流算法对比

菜皮日记

限流

行为型设计模式-模板方法 Template Method

菜皮日记

设计模式

PHP7内核实现原理-内存管理

菜皮日记

php

蓝易云:Linux系统有哪些常用的网络命令,分别适用于什么场景?

百度搜索:蓝易云

云计算 Linux 运维 云服务器 ECS

2020 年书单

菜皮日记

读书笔记

前辈从业多年的心得分享 - 读《这就是软件工程师》

菜皮日记

读书笔记

PHP7内核实现原理-变量的基本结构

菜皮日记

php

行为型设计模式-观察者(发布订阅) Observer

菜皮日记

设计模式

PHP Composer 的自动加载

菜皮日记

php composer

MongoDB 官方文档笔记之复制 Replication

菜皮日记

mongodb

MongoDB 官方文档笔记之分片 Sharding

菜皮日记

mongodb

PHP7内核实现原理-基本架构

菜皮日记

php

PHP7内核实现原理-数组的实现

菜皮日记

php

好奇是开启智慧的钥匙 - 读《朝闻道》

菜皮日记

读书笔记

行为型设计模式-访问器 Visitor

菜皮日记

设计模式

行为型设计模式-备忘录 Memento

菜皮日记

设计模式

Java 中反射、注解、动态代理、AOP 之间的联系

菜皮日记

Java aop

MongoDB 官方文档笔记之存储 Storage

菜皮日记

mongodb

行为型设计模式-策略 Strategy

菜皮日记

设计模式

PHP 使用 nikic/php-parser 处理 AST

菜皮日记

php

蓝易云:为什么DNS使用UDP而不是TCP详解!

百度搜索:蓝易云

Linux TCP 运维 udp DNS

行为型设计模式-状态 State

菜皮日记

设计模式

MongoDB 官方文档笔记之索引 Indexes

菜皮日记

mongodb

PHP7内核实现原理-基本环境和C基础

菜皮日记

php

PHP7内核实现原理-启动过程

菜皮日记

php

PHP7内核实现原理-词法和语法分析

菜皮日记

php

京沪永远涨是否会涨到永远 - 读《菜场经济学》

菜皮日记

读书笔记

SQL足以解决你的问题,你可能不需要机器学习_AI&大模型_Celestine Omin_InfoQ精选文章