300万件のInstacart注文とユーモア指数で見つける奇妙な食料品の組み合わせ
開発者が300万件のInstacart注文を解析し、最も珍しい商品ペアを発見。さらにユーモア指数を構築して、本当に奇妙な組み合わせを浮き彫りにする。

食料品店で誰かが買う最も奇妙な商品の組み合わせとは?ロジャー・ディッキーは、Instacartが公開した300万件の注文データセットを掘り下げて、この問いに答えようとした。その結果は、データ分析、分類、そしてユーモアスコアリングのひと味を加えた、楽しい技術的演習となった。
生データから意味のあるペアへ
データセットには320万件以上の注文が含まれ、1件あたり約10品目、134の通路にわたる約5万のユニークな商品がカバーされている。単純な共起カウントという素朴なアプローチは失敗する。なぜなら、商品ペアの97%は決して一緒に出現せず、2200万のペアはちょうど1回しか出現しないからだ。生の頻度でソートすると、バナナとミックスナッツのような退屈な結果になる。
ディッキーはリフト(実際の共起数を期待共起数で割った値)でランク付けする方法に切り替えた。これにより統計的にありそうにないペアが浮かび上がったが、それでも面白くはない——例えば、同じカートに入った有機バナナと非有機バナナなど。
粒度が敵である
5万の商品は細かすぎる(28のコンドームSKU、110のリンゴのバリエーション)一方で、134の通路は広すぎる。その解決策はGS1グローバル製品分類(GPC)オントロジーで、製品を約1,700のブリック(例:アンズタケ、モレル)にグループ化する。2段階の分類器——ショートリスト用にqwen3-embedding:8bによる埋め込み、最終選択用にgpt-4.1-mini——が、約5ドルのコストですべての製品をブリックにマッピングした。
ブリックを使うことで、リフトベースの分析はようやく非自明なペアを生み出した:ワインと冷凍穀物、スピリッツとデーツ、ビールとベビーリーフ。
ユーモア指数の追加
しかし、統計的に珍しいことが面白いとは限らない。ディッキーはClaudeに、約1,000の食料品ブリックそれぞれを、タブーやコメディの可能性に基づいて0〜1のユーモアスケールでスコアリングさせた。コンドーム、親密な潤滑剤、浣腸は0.7〜1.0を獲得し、牛乳やハーブはほぼゼロだった。低リフトと高ユーモアを組み合わせると、レジ係がクスッと笑うような本当に奇妙な組み合わせ——例えばコンドームとリンゴ——が得られる。
完全な製品対ブリックマッピングとユーモアスコアはgistとして公開されている。これは、埋め込み、LLM分類、カスタムスコアリング関数といった少しのエンジニアリングが、平凡なデータセットを本当に楽しいものに変えることができる、という素晴らしい例である。
ディスカッション
0 件のコメント
最初のコメントを投稿しましょう。