Beta

It’s a beautiful thing when free data meets free algorithm.

0. 引言:网页自动化工具的演进

十多年前,我在京东参与推荐系统研发时,每次功能上线都伴随着繁琐的回归测试。那时,测试团队使用 Selenium 框架来验证网站上的推荐模块是否正常工作。作为一款浏览器自动化工具,Selenium 能够模拟用户在浏览器中的各种操作——点击按钮、填写表单、滚动页面,然后获取验证数据。这个框架极大地提升了回归测试的效率,将我们从重复的手工操作中解放出来。

令人欣喜的是,Selenium 不仅能与 Python 完美配合,还能通过 RSelenium 包与 R 语言深度集成。这意味着我们可以在熟悉的 R 环境中直接操控网页,同时充分利用 R 语言在数据处理、统计分析和可视化方面的强大能力,形成一个完整的数据采集与分析闭环。

阅读全文 »

1. 前序知识

话说实施 AB 实验有一个非常关键的点就是可靠的统计分析,当然这个分析会涉及非常多的统计学知识,比如:

  1. 统计结果的理解是否正确:置信度、区间估计、显著性、Power 值、MDE、样本量……

  2. 实验分析的过程是否正确:AA 实验、反转实验、DID、幸存者偏差、辛普森悖论、CUPED、局部到全局……

这些概念构成了 AB 实验分析的基础框架,比如置信度和显著性帮助我们判断实验结果的可信度,而 Power 值和样本量则确保实验有足够的灵敏度检测到真实的效应。

有一个名词估计大家有点眼生,那就是 CUPED,这个方法的全称是 Controlled-experiment Using Pre-Experiment Data,中文翻译为:使用预实验数据进行控制的实验。CUPED 的核心目标是提升 AB 实验的统计显著性。其关键在于利用预实验数据调整指标,通过缩减方差来增强检测效果。

阅读全文 »

<稿件载于中国人民大学统计学院系刊>

与吴喜之老师的师生情缘始于 2003 年的非典时期,那一年深深地烙印在每一位国人心中,同样也成为了我人生旅程中至关重要的一年。那一年,吴老师在中国人民大学统计学院开创性地开设《统计计算》课程,并史无前例地在国内高校将 R 语言确定为统计教学的核心工具,引领我们进入一个全新的知识殿堂。一学期的相处,使我这位小镇做题家得以窥见吴老师深厚的学术造诣与超凡的人生观,高山仰止,景行景止。

吴老师的课程对我们这些本科生来说充满了新鲜感:没有中文的教材,资料全是英文文档;统计结果需要用 R 语言命令行来获得,没有任何可以点选操作的图形界面;作业和演示幻灯片使用 \(\LaTeX\) 生成,黑压压的编译过程乌央乌央地冲击你的眼球,最终生成精美的 PDF 文件。这一切让我对统计计算这门课产生了浓厚的兴趣。

阅读全文 »

1. 案例场景

假设你是肯德基的门店运营负责人,某天,你们决定在某家分店(称为 A 店)推出买一送一的促销活动。你想评估这项促销活动的效果,看看它是否提高了这家分店的销售额。

这个评价问题在于,你只有一家分店进行了促销活动,其他的分店都没有进行相同的促销。你无法直接比较 A 店的销售额和没有进行促销的分店的销售额,因为这些分店可能本身就存在很多差异,比如地理位置、人流量等因素。

但通过使用其他分店(控制组)的数据来构建一个“虚拟”的对照组,这个虚拟的对照组在没有促销的情况下表现得和 A 店相似。通过比较促销之后实际的 A 店和这个虚拟对照组的业绩,就可以评估促销活动的效果。

  • 收集 A 店在促销活动前后的一段时间内的销售数据。
  • 收集其他分店在同一时间段内的销售数据。
  • 选择一些影响销售额的关键特征,比如每天的顾客数量、人均消费额等。

通过对其他分店的特征进行加权平均,构建一个“合成”分店,使其在促销活动开始之前的特征与 A 店尽可能相似。例如,假设你选择了三家分店 B、C 和 D,它们在促销开始前的特征分别是:

  • B 店:顾客数量 100 人,人均消费额 20 元;
  • C 店:顾客数量 150 人,人均消费额 25 元;
  • D 店:顾客数量 200 人,人均消费额 30 元。

如果你发现 A 店在促销开始前的特征是顾客数量 150 人,人均消费额 25 元,那么你可以给 B、C、D 店分配权重,使得加权平均后的特征与 A 店相近。比如,权重可能是 B 店 20%,C 店 60%,D 店 20%。

实际和合成控制组有这样的比较效果:

  • 促销活动前 A 店销售额序列和合成组(由其他分店加权平均得到)销售额序列基本一致。
  • 活动后,比较 A 店的实际销售额与合成控制组的预测销售额。
  • 如果 A 店的实际销售额显著高于合成控制组的预测销售额,那么可以认为促销活动是有效的。

以上是一个简单的原理说明,下面从详细的数学理论做完整推导和扩展。

阅读全文 »

本文可以帮助大家理解 ChatGPT 这类的大语言模型是如何在我们的日常生活中发挥作用。

1. 解决的是什么问题?

假如你叫刘弱(强)西(东),现在经营一家售卖食品的电商平台 Bmazon,拥有 70000 件各类食品(包括零食、糕点、巧克力、糖果、猫粮、狗粮……)。这些商品对应有自己的描述和顾客购买使用后的评价。如果有一个机器人,它能通过和客户对话,总结顾客的潜在购买意图,给出推荐商品。这样聪明的机器人能不能来一个呢?

先随便来一个用户购买咨询:

有什么好吃的坚果推荐购买吗?

先别看答案,闭上眼睛暂停十秒钟!如果你是客服导购,你会怎么回答?

....

这个机器人这样回答的:

这些商品是各类坚果产品,包括混合坚果、坚果棒和单品种坚果如碧根果和夏威夷果等。它们的特点是:品质上乘,口感绝佳,深受大人小孩喜爱;部分产品采用完美配比,融合了杏仁、蜂蜜烤花生、芝麻棒、黑巧克力裹 soy 坚果以及软糯的核桃和山核桃,甜度适中;部分坚果无盐且新鲜美味,特别适合健康饮食需求,如控制血压者食用;有些产品提供大包装,经济实惠;还有自制混合坚果与干果,适合早餐搭配,营养丰富。另外,部分品牌因其出色的产品线和快速免费送货服务而受到高度推荐。总体而言,这些坚果产品不仅美味可口,还具有多种健康益处,是聚会、节日礼物或日常零食的理想选择。

以及相关的商品推荐,您可以在 Bmazon 上购买:

这三款产品,它们长这个样子:

是不是很神奇?这个问答型引擎可以用 90 行代码实现。喔?有点意思……且听我讲讲如何实现。

阅读全文 »
0%