売場やECサイトでは、商品は飲料、ベーカリー、乳製品、青果といったカテゴリで整理されます。しかし、実際の購買行動は必ずしもカテゴリの境界に沿うとは限りません。朝食、間食、ホームケア、パーティーといった利用文脈によって、離れたカテゴリの商品が同時に選ばれることがあります。今回は、そのような潜在的なクロスセル関係を共購買ネットワークとして可視化しました。
この図は何を表しているのか
円周上の点は商品を表しています。商品はカテゴリごとに近い位置へ配置しているため、円周の一部分が飲料、その隣がベーカリーというように、カテゴリごとの領域が形成されます。
点同士を結ぶ曲線は、同じトランザクションで一緒に購入された商品pairです。共起件数が一定以上あり、かつ各商品の出現頻度から期待される偶然共起を上回るpairだけを描いています。線が太く濃いほど、共購買関係が強いことを示します。
同じカテゴリ内を結ぶ線は弱く描き、カテゴリを越える線を主要な構造として強調しています。どのカテゴリ同士の間に線の束が形成されているかを見ることで、商品分類だけでは捉えにくい購買文脈を確認できます。
可視化から読み取れること
今回のSynthetic Dataでは、108本のedgeが可視化対象となりました。そのうち68.5%がカテゴリ境界を越えるedgeです。
生成時にGround Truthとして埋め込んだlatent bundle内の商品pairと照合すると、可視化対象edgeの100.0%がGround Truth pairに対応しました。一方、Ground Truth pair全体のうち今回の閾値条件で検出できた割合は100.0%でした。
また、可視化対象ネットワークで最も多くのedgeを持った商品は「Granola」で、degreeは11でした。これは、このSynthetic Data上で複数の購買文脈と結びつきやすい商品として現れたことを意味します。
この構造をどう解釈するか
このネットワークに現れるcross-category edgeは、実在する顧客行動から発見した関係ではありません。今回は、Breakfast、TeaTime、QuickLunch、HealthySnack、HomeCare、Partyという6つのlatent bundleをあらかじめ設定し、異なるカテゴリの商品が同じ購買文脈で選ばれやすくなるようトランザクションを生成しました。
そのため、中心方向へ束になるedgeは、埋め込んだ潜在構造が共購買networkとして表出したものです。同時に、第二bundleの混入やノイズ商品も加えているため、各bundleが完全に分離した図にはなっていません。
可視化の仕組み
最初に、各トランザクション内で同時に購入された商品の組み合わせを列挙します。各pairについて共起件数、support、liftを計算し、十分な件数があり、liftが1を明確に上回る関係だけをnetwork edgeとして残します。
nodeは商品カテゴリごとに円周上へ配置します。通常の直線edgeを大量に引くと交差が増え、中心部が読みにくくなるため、今回は3次Bezier curveを用いてedgeを中心方向へ湾曲させています。同カテゴリedgeは浅く、cross-category edgeはより深く中心側へ曲げることで、複数の関係が視覚的な束として見えるようにしています。
なぜこの可視化方法を選んだのか
今回の目的は、商品単体の売上やカテゴリ別構成比ではなく、「どの商品がどの商品と結びついているか」という関係構造を見ることです。そのため、nodeとedgeを直接扱えるnetwork representationが適しています。
さらに、カテゴリ境界を越える関係が多数ある場合、個々のedgeを独立した線として描くと線の交差が増えます。Edge bundlingを使うことで、個別pairを完全に捨てずに、反復する接続方向を一つの流れとして読みやすくできます。
実データへの応用可能性
同様の方法は、POSデータ、ECの注文履歴、BtoB受注データ、サービス利用履歴などに適用できます。カテゴリ内売上だけでは見えない商品pairや、複数カテゴリをまたぐ購買文脈を探索する用途が考えられます。
たとえば、特定の商品と一緒に選ばれやすい別カテゴリの商品を抽出し、クロスセル候補の仮説形成に利用できます。ただし、共購買関係があること自体は、販促によって売上が増える因果効果を意味しません。施策判断には追加検証が必要です。
データと分析方法
今回はSynthetic Transaction Dataを使用しました。商品数は48、トランザクション数は5,000です。商品は6カテゴリに分け、6つのlatent bundleをGround Truthとして設定しました。
トランザクション生成時には主bundleから複数商品を選び、一定確率で第二bundleの商品とノイズ商品を加えています。可視化対象edgeは共起件数55件以上、lift 1.20以上としました。乱数シードは260926です。
このVisualization Studyの限界
今回のnetwork structureはSynthetic Dataの生成ルールへ依存しています。latent bundleが存在することは既知であり、未知の顧客セグメントを発見したわけではありません。
また、edge抽出には共起件数とliftの閾値を使用しているため、閾値を変更すると表示されるnetwork densityも変化します。Edge bundlingは大量の関係を読みやすくする一方で、中心部では個々のpairを追跡しにくくなるというトレードオフがあります。
実データでは、価格、キャンペーン、店舗、時間帯、顧客属性、欠品などが共購買へ影響する可能性があります。したがって、network上の関係だけから因果関係や施策効果を判断することはできません。
まとめ
今回は、商品カテゴリを越える潜在的なクロスセル関係をEdge-bundled co-purchase networkとして可視化しました。商品をカテゴリごとに円周へ配置し、共購買関係を中心方向へ湾曲させることで、cross-category edgeが反復して形成する流れを主たる構造として示しています。
この見方では、商品分類そのものではなく、「どのカテゴリ間に購買文脈がまたがっているか」を関係の束として探索できます。実データに適用する場合も、クロスセル施策を直接決定するものではなく、追加分析や検証につながる仮説を形成するための可視化として利用できます。

