← 返回信息流
AI 资讯Hacker News·2 天前

Instacart 320万订单揭示商品共现趣象

原标题:Funny item co-occurrences in 3.2M Instacart orders

速览

通过对Instacart海量订单数据的分析,研究人员发现了许多出乎意料的商品共现模式,例如特定零食与健康食品的搭配。这些发现不仅揭示了消费者行为中的有趣规律,还可能为电商平台优化推荐算法和营销策略提供参考。

AI 深度解读

背景

本文源自 Hacker News 上的一篇趣味数据分析文章,作者利用 Instacart 公开的 320 万条订单数据,探索人们购物车中最奇怪的商品组合。传统推荐算法旨在发现“经常一起购买”的商品,而作者反其道而行之,寻找那些“最不可能同时出现”的组合,并试图用幽默指数来筛选出真正令人发笑的搭配。

核心内容

作者偶然想到一个问题:超市里最奇怪的商品组合是什么?比如那种会让收银员偷笑,心想“这家伙只买了避孕套和苹果”的购物车。为了找到答案,他借助 Claude 搜索可用的收据数据。超市通常对这类数据严格保密,一些消费者应用(如 ReceiptHog 和 Fetch)虽收集收据数据,但大概率只卖给对冲基金等机构。不过,Instacart 多年前曾开源了 300 万订单的数据(用于机器学习竞赛以优化推荐算法),该数据集至今仍可在 Kaggle 上获取,且信息丰富。

数据集包含:

  • 3,214,874 个订单
  • 平均每个订单约 10 个商品
  • 49,688 种不同商品
  • 134 个不同“通道”(商品类别)

作者首先尝试直接统计每对、每组(三件、四件)商品同时出现的次数,但结果并不有趣。原因在于:约 50,000 种商品可能的无序对组合约有 12 亿种,其中 97% 从未出现,出现的组合中约 2200 万对只出现一次。当几乎所有组合的出现次数都是 0 或 1 时,“最不常见”就失去了意义。

于是 Claude 建议改用“lift”(提升度)来排序:即实际共现频率除以期望共现频率。例如,苹果和橙子都很常见,若它们很少同时出现,就值得注意。按此方法排序后,结果依然无趣,因为出现了大量同种商品的不同变体(如有机香蕉和非有机香蕉)同时出现的低概率——这暴露出 50,000 种商品的粒度太细。每个商品都有十几种变体,仅避孕套就有 28 种,苹果有 110 种,导致“避孕套+苹果”这样的组合很难脱颖而出。

作者需要一个介于“商品”和“通道”之间的粒度。经过调研,发现几乎所有超市零售商都使用 GS1 全球产品分类(GPC)系统。GPC 是一个本体,将产品分为多个层级:段(segment)→ 族(family)→ 类(class)→ 砖(brick)。完整的 GPC 系统有 5,318 个砖,但很多段(如管道、活体动物等)不在超市销售,过滤后剩下 9 个与超市相关的段,共 1,697 个砖,而实际数据中的商品只覆盖了约 1,000 个砖。这比 50,000 个商品精细,比 134 个通道粗,复杂度降低了 50 倍。

接下来需要将约 50,000 个商品映射到约 1,000 个砖。作者采用两阶段方法:

  1. 为每个商品预选候选砖。先用本地运行的 qwen3-embedding:8b 模型获取每个商品和每个砖的嵌入向量,然后通过余弦相似度为每个商品找到最近的 10 个砖。
  2. 用 LLM 选择最佳砖。使用 gpt-4.1-mini 并行处理 60 个请求,为每个商品从 10 个候选砖中选出最合适的砖,花费约 5 美元,耗时几分钟。完整的商品到砖的映射表已公开。

然后重新计算砖级别的共现提升度排序。结果重复性大大降低,但仍不够有趣——只是“不常见”的组合(如葡萄酒+冷冻米饭、啤酒+鱼)并不一定有趣。作者需要一个幽默指数。

Claude 被要求为所有约 1,000 个砖打分(0-1 分),基于其“禁忌程度”或“在单口喜剧中出现的可能性”。大致范围:某些商品得分较高。然后,每个组合的幽默指数乘以稀有度权重,得到新的排名。

最终结果如下(部分有趣组合):

  • 两件组合:羽衣甘蓝 + 灌肠剂;欧芹 + 避孕套;成人纸尿裤 + 婴儿食品。
  • 三件、四件组合也类似。
  • 当只看小订单(只有 2 或 3 件商品)时,结果更集中:例如奥利奥 + 润滑剂。

关键要点

  • 直接按出现次数或提升度排序无法找到真正有趣的商品组合,因为商品粒度太细,大量变体导致噪声。
  • 使用 GS1 GPC 分类体系将商品聚合到“砖”级别(约 1,000 个类别),有效降低了复杂度,并突出了跨类别的组合。
  • 引入“幽默指数”对商品进行评分,结合稀有度,可以筛选出既罕见又有趣的组合。
  • 小订单(2-3 件商品)中的有趣组合更能体现“奇怪购物车”的喜剧效果。
  • 整个分析过程使用了开源数据(Instacart)、本地嵌入模型(qwen3-embedding:8b)、LLM 分类(gpt-4.1-mini)以及 Claude 辅助生成幽默分数,是一种低成本、高创意的数据挖掘实践。
  • 作者公开了商品到砖的映射表以及所有砖的幽默分数,便于他人复现或扩展。

意义与影响

这篇文章展示了数据挖掘中“反向思维”的趣味性——不是预测用户行为,而是寻找最不可能发生的组合。它结合了自然语言处理(嵌入)、分类学(GPC)和创意评估(幽默分数),为数据科学在非严肃场景下的应用提供了范例。此外,GS1 GPC 系统在零售业广泛使用,但较少被普通数据爱好者利用,本文的做法为其他类似数据集(如电商、餐饮)的品类分析提供了参考。幽默指数的引入提示我们,数据故事可以超越冷冰冰的统计,通过引入人类主观判断(如幽默感)来产生更有传播力的洞察。这种“好玩”的探索也可能激发更多人对公开数据集的兴趣,甚至影响零售业对商品陈列、促销策略的思考——比如,把奥利奥和润滑剂放在一起,会不会带来意外销量?

查看原文 →rogerdickey.com