顧客の塊をAIで見つける方法|クラスタリングの読み方

「顧客データを渡せば、AIがうまく分類してくれると思っていた」「4つの塊に分かれたという結果は出たけれど、それで何をすればいいのかを誰も言えない」——分析基盤を入れた会社から、しばしば聞く話です。クラスタリングは、顧客を分類してくれる技術だと受け取られがちです。けれども実際に機械がしているのは、あらかじめ決められた属性の上で、近いものを寄せているだけの計算です。箱に名前は付いていませんし、その塊に意味があるかどうかも計算では決まりません。この記事では、機械が塊を作る仕組みから、いくつに分けるかの決め方、その塊が偶然でないかの確かめ方、そして人が名前と打ち手を付けるところまでを、工程の順に整理します。
カメ先生クラスタリングってね、AIが顧客を分類してくれる技術だと思われがちなんだけど、本当は『近いものを寄せているだけ』の計算なんだ。
カメ子分類と、寄せるだけというのは何が違うのでしょうか。
カメ先生分類は、あらかじめ用意した箱に入れること。寄せるほうには箱の名前がない。だから出てきた塊に意味があるかどうかは、計算の側では決まらないんだよ。
カメ子では、出てきた塊が使えるものかどうかは、どこで見分けることになるのでしょうか。
- 機械がしているのは近いものを寄せる計算だけ。何を近いとみなすかは人が先に決めている
- 塊の数は自動では決まらない。複数の数で作り、物差しと再現性の両方から選ぶ
- 塊に名前と打ち手が付くまでが工程。名前が付かない塊は、分け方を疑う合図
データ分析にAIを活かす第一歩、まずは導入から始めませんか?
デボノはアカウント開設・初期設定など「そもそものAI導入」から社内定着まで伴走支援。マーケティング活用など一歩進んだご相談にも対応します。
「AIが顧客を分類してくれる」は、半分しか当たっていない
最初に、分類と塊分けの違いをはっきりさせておきます。分類は、あらかじめ用意した箱にデータを入れる作業です。「解約しそう」「しなさそう」という箱を先に決め、過去のデータで学ばせて、新しい顧客をどちらかに入れる。箱の名前は最初からあります。
塊分けはそうではありません。アマゾンのクラウドの公式ドキュメントは、この手法を「同じ集まりの中はできるだけ似ていて、別の集まりとはできるだけ違うような、離散的な集まりをデータの中から見つけようとするもの」と説明しています。分析基盤の公式ドキュメントも、これが教師なし学習であるため学習にラベルも、学習用と評価用の分割も必要ないと明記しています。正解がないので、当たり外れを直接測ることもできません。
ここが、期待と現実のずれが生まれる場所です。ラベルが要らないということは、手軽に始められるという意味であると同時に、出てきた結果が正しいかどうかを機械が保証しないという意味でもあります。だから、塊が出てきたあとの工程のほうが、計算そのものより長くなります。
機械がしているのは、代表点を置いて近いものを寄せ直すこと
もっとも広く使われているのは、日本語で非階層クラスタリングと呼ばれる方式です。やっていることは単純で、まず決めた数だけ代表点を置き、各データをいちばん近い代表点に割り当て、割り当てられたデータの真ん中に代表点を動かす。これを、動かなくなるまで繰り返します。アマゾンのクラウドの公式ドキュメントは、行が観測、列が属性であり、属性がn個あればその行はn次元空間の1点になり、点の間の距離が似ている度合いを表す、と説明しています。
距離の測り方は選べます。分析基盤の公式ドキュメントでは、既定がユークリッド距離、もうひとつの選択肢がコサイン距離となっています。前者は値の大きさの差をそのまま距離にするため、購入金額のような量の違いを見たいときに向きます。後者は向きの近さを見るので、量ではなく構成比の似ている顧客を寄せたいときに向きます。同じデータでも、どちらを選ぶかで塊の形は変わります。
繰り返しの止め方にも既定があります。同ドキュメントによれば、繰り返しの上限は既定で20回、早期打ち切りが既定で有効になっており、1回の繰り返しで得られる改善が1%を下回ると学習を止めます。大きなデータでは、小分けにした無作為の標本を順に流し込む方式が使われます。つまり、完璧な塊を求めて計算し続けているわけではなく、そこそこで打ち切っている。この事実は、あとで出てくる「毎回結果が違う」問題に直結します。
代表点を使わない方式もあります。近いものから順に併合していき、どこで切るかを後から決める考え方です。塊の数を先に決めなくてよい代わりに、件数が増えると計算が急に重くなります。また、地理データのように密度で塊を見つける方式も、分析基盤の関数として用意されています。どれを使う場合でも、この記事で扱う工程は変わりません。使う項目を人が選び、出てきた塊を確かめ、名前を付けて打ち手に落とす。変わるのは計算の中身だけで、判断が必要な場所は同じです。
何を「近い」とみなすかは、計算ではなく人が決めている
この工程でいちばん大事な一文が、アマゾンのクラウドの公式ドキュメントに書かれています。似ているかどうかを判断させるために使う属性は、利用する側が定義する、というものです。取引金額と購入回数を渡せば、その2つの上で近い人が同じ塊に入ります。業種と従業員数を渡せば、その2つの上で近い会社が同じ塊に入ります。機械は、渡された物差しの上で忠実に寄せているだけです。
だから「AIが顧客の隠れた構造を見つけてくれる」という期待は、正確ではありません。見つかるのは、人が選んだ項目の上に存在した構造だけです。選ばなかった項目の上に本当の違いがあったとしても、それは決して出てきません。項目選びは前処理ではなく、この分析の本体だと考えてください。
実務では、この事実が良い方向にも働きます。打ち手を変えたい軸が決まっているなら、その軸に関係する項目を意図的に渡せばよいからです。訴求内容を変えたいなら関心の分野と検討の段階を、接触の頻度を変えたいなら反応の間隔と回数を渡す。何で分けたいかを先に決めてから、項目を選ぶ。順番はこちらが正しい向きです。
【工程1】分けたあとに変えたいことを、先に書く
着手の順番を追っていきます。最初にやるのは計算ではなく、「塊ができたら、何を変えるのか」を1行で書くことです。メールの文面を出し分けるのか、営業の訪問順を変えるのか、資料の構成を変えるのか、価格の提示の仕方を変えるのか。ここが決まっていないと、あとの工程がすべて宙に浮きます。
なぜかというと、打ち手が決まらないと、塊の数の上限が決まらないからです。メールの文面を4種類までしか作れない体制なら、塊は4つより多く作っても実行できません。営業が回れる担当が3人なら、優先度の塊は3つに収まっている必要があります。分析の都合ではなく、実行できる打ち手の数から逆に決まる部分がある、ということです。
この1行は、あとで塊に名前を付けるときの基準にもなります。「訴求内容を変えるために分ける」と書いてあれば、訴求が変わらない塊は、統計的にきれいでも使えない塊だと判断できます。逆にここを書かないまま進めると、きれいに分かれた結果を前にして「で、どうするんですか」と誰も答えられない会議になります。
【工程2】使う項目を選ぶ
次に、渡す項目を選びます。ここでの分かれ目は、その項目がこちらの働きかけで動くものかどうかです。業種、所在地、設立年、従業員数といった属性は、こちらが何をしても変わりません。一方、資料の閲覧回数、問い合わせからの経過日数、見た分野の内訳、最後の接触からの間隔は、こちらの行動で動きます。
| 項目の種類 | 例 | この分析での使いどころ |
|---|---|---|
| 動かせない属性 | 業種・従業員規模・所在地・設立年 | 塊を作る材料ではなく、できた塊を説明するときの材料にする |
| 動く行動 | 閲覧回数・閲覧した分野・反応の間隔・問い合わせの種類 | 塊を作る主な材料。打ち手を変える根拠になる |
| 取引の実績 | 取引金額・購入回数・継続月数 | 量の差が大きいので、桁をそろえてから使う |
| 自由記述 | 問い合わせ本文・アンケートの回答 | そのままでは距離が測れない。分野や意図に置き換えてから渡す |
動かせない属性だけで塊を作ると、業種や規模で割れた表が出てきます。見た目は整っていますが、それは最初から分かっていたことの確認にすぎず、打ち手は何も変わりません。属性は塊を説明するために使い、塊を作るためには使わない。この使い分けを、工程の最初で決めておいてください。
【工程3】桁をそろえる
項目が決まったら、値の大きさをそろえます。年間取引額が数百万円、閲覧回数が数回という組み合わせをそのまま渡すと、距離のほとんどが取引額で決まります。閲覧回数の差は、金額の差の前では誤差のように扱われてしまうためです。分析基盤の公式ドキュメントでは、数値項目の標準化が既定で有効になっており、この処理が自動で行われるようになっています。
既定で入っているということは、逆に言えば切ったときに何が起きるかを知っておくべき設定でもあります。意図的に金額の影響を強めたい場面はあり、その場合は標準化を外します。ただし、外した結果として「上位数社と、それ以外の全部」という2つの塊しか出てこないことがよくあります。そうなったら、外した判断のほうを疑ってください。
あわせて、極端に大きい値の扱いも決めておきます。取引額が桁違いに大きい数社があると、その数社だけで1つの塊ができ、残りが1つに固まります。対処は2つあり、ひとつは上下の数%を先に除いて分析すること、もうひとつは金額そのものではなく順位や区分に置き換えて渡すことです。どちらを選ぶかは、その数社を打ち手の対象に含めるかどうかで決まります。
【工程4】いくつに分けるかを決める
塊の数は、機械が決めてくれません。分析基盤の公式ドキュメントによれば、指定できる範囲は2から100で、指定しなかった場合の既定値は学習データ件数の常用対数になります。1万件なら4、10万件なら5という計算です。件数が10倍になっても塊は1つしか増えません。自動で調整させる場合の既定の探索範囲も、2から10と狭く取られています。
この既定値の置き方には意味があります。塊を増やせば、塊の中のばらつきは必ず小さくなります。極端に言えば、顧客の数だけ塊を作ればばらつきはゼロです。けれども、それは何の役にも立ちません。だから実務では、2から10あたりを順に作って比べ、実行できる打ち手の数を上限として、その中で選ぶのが現実的です。
選ぶときの見方は2つあります。ひとつは、塊の数を増やしていったときに改善の度合いが急に鈍る点を探す方法です。折れ線が肘のように曲がる点を見るので、そう呼ばれています。もうひとつは、塊のまとまり具合を数値化した指標を比べる方法です。ただし、どちらも候補を絞るための道具であって、答えを出す道具ではありません。最後は工程1で書いた打ち手の数と突き合わせて決めます。
塊の数を自動で探させることもできます。分析基盤では、探索させる範囲を2から100の中で指定でき、何も指定しなければ2から10が使われます。そして、まとまり具合を表す指標を自動調整の目的として渡せるようになっています。ただし公式の注記には、調整するパラメータの数に10を掛けた程度の試行回数を用意することが推奨されています。自動に任せれば楽になるわけではなく、試行の回数と費用が先に決まっていないと、途中で打ち切った結果が採用される点には注意してください。
【工程5】その塊が偶然でないかを、3つの見方で確かめる
塊が出てきたら、それが本物かどうかを確かめます。教師なしの手法には正解がないので、当たり外れは測れません。代わりに、3つの角度から「偶然ではなさそうだ」を積み上げます。
| 確かめ方 | やること | 落ちたときの読み方 |
|---|---|---|
| 物差しで見る | 塊の中のまとまり具合と、塊どうしの離れ具合を1つの数にした指標を比べる | 数が悪いなら、項目の選び方か塊の数を見直す |
| 再現するか見る | 代表点の初期位置を変えて何度か作り、同じ顧客が同じ塊に入り続けるか調べる | 入れ替わりが激しいなら、その分け方は弱い。名前を付けてはいけない |
| 時期をずらして見る | 別の期間のデータで作り直し、似た形の塊が出るか調べる | 出ないなら、その期の事情を拾っただけの可能性が高い |
このうち実務で効くのは、2つめの再現性です。分析基盤の公式ドキュメントは、塊のまとまり具合を表す指標を自動調整の目的として指定できると書いています。指標そのものは便利ですが、指標が良くても毎回メンバーが入れ替わる分け方は使えません。同じ顧客が、作り直すたびに違う塊に入るなら、打ち手は割り当てられないからです。
3つめの時期ずらしは、季節性の強い事業で特に効きます。年度末の駆け込みが多い月のデータだけで作った塊は、その月の事情を映しているだけかもしれません。四半期をずらして2回作り、共通して現れる形だけを採用する。手間はかかりますが、一度きりの偶然に名前を付けて全社に配ってしまう事故を防げます。
毎回ちがう結果が出るのは、なぜか
同じデータで同じ設定なのに、実行するたびに塊の中身が変わる。これは不具合ではなく、仕組みから来ています。分析基盤の公式ドキュメントによれば、代表点の初期位置を決める方法の既定はデータの中から無作為に選ぶやり方です。出発点が違えば、たどり着く形も変わります。
同じ文書は、改良された初期化のやり方を使うと「たいていより良いモデルになる」と明記しています。出発点を散らして置く工夫が入っているためです。さらに、結果を固定したい場合には初期点を明示的に指定する方式が用意されており、指定が変わらない限り、繰り返し実行しても同じ代表点から始められます。月次で作り直す運用なら、この指定方式を選ぶのが安全です。
ただし注意があります。初期点を固定すれば結果は再現しますが、それは分け方が強くなったことを意味しません。固定を外したときに大きく入れ替わるなら、その分け方はもともと不安定です。固定は運用のための道具であって、確かめる工程の代わりにはなりません。確かめるときはあえて固定を外して何度も回し、運用に載せるときに固定する、という使い分けにします。
塊の輪郭を読む。所属だけでなく、距離も見る
見落とされがちな情報があります。アマゾンのクラウドの公式ドキュメントによれば、この手法は各データについて最も近い塊の番号と、その塊までの距離の両方を返します。多くの現場では番号だけを取り出して名簿を作りますが、実務で効くのはむしろ距離のほうです。
距離が近い顧客は、その塊の性質をよく体現しています。距離が遠い顧客は、消去法でそこに入っているだけで、塊の名前が当てはまらない可能性があります。打ち手を試すときは、まず距離の近い層から始めてください。そこで効かないなら、その打ち手は塊全体でも効きません。近い層で効いてから、遠い層まで広げるという順番が、無駄打ちを減らします。
距離の分布は、塊の質を見る材料にもなります。塊の中で距離がなだらかに分布しているなら、その塊はひとまとまりです。距離が二極化しているなら、その塊は本当は2つに分かれるべきものかもしれません。塊の数を1つ増やして作り直し、その塊が割れるかどうかを見ると判断できます。
使えない分け方の型
ここまでの内容を裏返すと、使えない分け方の型が見えてきます。作ったあとに次のどれかに当てはまったら、名前を付ける前に工程2か工程4へ戻ってください。
- 動かせない属性だけで割れている(業種と規模の表が出てきただけで、打ち手が変わらない)
- 作り直すたびに、同じ顧客が違う塊に入る(初期値を固定していない状態で入れ替わる)
- 塊の数が、実行できる打ち手の数を超えている(8つに分けたが、文面は3種類しか作れない)
- 1つの塊に9割が入っている(残りの塊は少数の外れ値で、施策の対象にならない)
- 塊に名前が付かない(担当者3人が、それぞれ違う呼び方をする)
最後の「名前が付かない」は、もっとも分かりやすい合図です。統計的な指標がどれだけ良くても、業務の言葉で説明できない塊は運用に載りません。名前が付かないのは、人の理解が足りないからではなく、分け方が業務の構造とずれているからだと考えたほうが、原因にたどり着けます。
【工程6】人が名前を付ける
塊が確かめられたら、名前を付けます。この工程は分析担当ではなく、実際に打ち手を実行する人が中心になって進めます。名前は塊の特徴を要約するためではなく、打ち手が変わる単位を言い当てるために付けるからです。
使った項目だけでなく、使わなかった属性についても塊ごとの内訳を出します。業種や規模の偏りは、ここで初めて説明の材料として登場します。
塊ごとに、全体平均から大きく離れている項目を上から3つほど書き出します。この段階では解釈を加えず、事実だけを並べます。
書き出した差のうち、こちらの行動を変える理由になるものだけを残します。残らない塊が出たら、その塊は統合するか、分け方を見直します。
残った差から名前を付け、別の担当者に塊の数字だけを見せてどの名前かを当ててもらいます。当たらない名前は付け直します。
最後の言い当てを入れる理由は、名前の共有が運用の前提だからです。名前を付けた本人だけが意味を分かっている状態では、半年後に担当が変わった時点で、その分け方は使われなくなります。3人が同じ数字を見て同じ名前を思い浮かべられるかどうかが、実務で使えるかの分かれ目になります。
【工程7】塊ごとの打ち手に落とす
名前が付いたら、塊ごとに何を変えるかを決めます。ここで注意したいのは、すべてを変えようとしないことです。文面も、送る頻度も、提示する価格も、担当者も全部変える設計にすると、効いたのか効かなかったのかが分からなくなります。変えるのは1つか2つに絞り、残りはそろえておきます。
変えるものと、そろえるものの目安を挙げます。変えてよいのは、最初に見せる事例の業種、資料の章の並び、接触の間隔、担当を付けるかどうか。そろえておきたいのは、価格の出し方、対応の速さ、送る内容の正確さです。後者は塊ごとに変えると、公平性の面でも説明が難しくなります。
効果の測り方も、着手前に決めておきます。塊ごとに数字を並べるだけでは、もともと反応の良い塊が良く見えるだけになります。同じ塊の中で打ち手を変える群と変えない群に分け、塊の違いではなく、打ち手の違いを見る形にしてください。塊分けは打ち手を割り当てる道具であって、効果を証明する道具ではありません。
AIに頼むこと、頼まないこと
生成AIは、この工程のいくつかを速くします。使いどころは、項目の候補を挙げさせること、塊ごとの数字の並びを言葉に要約させること、名前の案を複数出させること、そしてその塊が生まれた理由の仮説を並べさせることです。いずれも、人が選ぶ前の材料を増やす仕事です。
一方で、頼まないことも決めておきます。いくつに分けるかの決定、塊の意味の断定、打ち手の決定はAIに渡しません。これらは工程1で書いた狙いと、実行できる体制の制約から決まるもので、データの中には答えがないからです。数字を見せて名前を書かせると、もっともらしい名前は必ず返ってきます。もっともらしさは、正しさの根拠になりません。
材料を出させるときは、根拠を必ず書かせてください。「この塊は情報収集の初期段階と考えられる」で止めず、「閲覧が入門的な分野に偏り、問い合わせからの経過日数が短いため」まで書かせます。根拠が書かれていれば、人がその根拠を数字で確かめられます。AIに判断させず、根拠を書かせて、人が確かめる範囲を先に決めておく。この順序を守れば、AIは工程を速くする道具として素直に働きます。
作り直す時期を、あらかじめ決めておく
分け方は、作った瞬間から古くなり始めます。商品が増え、価格が変わり、取引先の顔ぶれが入れ替われば、塊の形も変わります。そのたびに作り直していては運用が回りませんし、放置すれば実態とずれていきます。だから、作り直す条件のほうを先に決めておきます。
- 期間で決める:四半期に1度、同じ設定で作り直して形の変化を見る
- 出来事で決める:商品の追加・価格改定・対象業種の拡大があったら作り直す
- 分布で決める:塊ごとの人数の割合が、前回から2割以上動いたら作り直す
- 使われ方で決める:塊ごとの打ち手の成果が、3か月続けて差を生まなくなったら見直す
あわせて、作り直したときの記録も残します。使った項目、塊の数、初期点の指定、確かめた3つの結果、付けた名前。これが残っていないと、半年後に「なぜこの分け方なのか」を誰も説明できなくなります。分け方そのものより、分け方を決めた理由のほうが長く使われます。
よくある質問
何件くらいあれば、意味のある塊ができますか
件数そのものより、打ち手が成立する最小の人数から考えるほうが実務的です。メール配信なら、いちばん小さい塊が数百人を下回ると、成果の差が偶然に埋もれます。なお、分析基盤の既定では塊の数が件数の常用対数で決まるため、件数が10倍になっても塊は1つしか増えません。件数を増やすことが、塊を細かくすることに直結するわけではない点に注意してください。
決まった3つの軸で切る方法と、何が違いますか
軸を先に決めるか、データに決めさせるかの違いです。決まった軸で切る方法は、区切りの位置を人が決めるので、結果が安定し、説明もしやすく、毎月同じ手順で回せます。塊分けは軸を固定しないぶん、想定していなかった組み合わせが見つかることがあります。その代わり、結果が変わりやすく、確かめる工程が必要になります。先に決まった軸で回してみて、それでは説明できない動きが残ったときに塊分けへ進む、という順番が失敗しにくいです。
結果が毎回変わるのは、失敗ということですか
そのままでは失敗とは言えません。代表点の初期位置の既定が無作為なので、変わること自体は仕組みどおりです。初期点を指定する方式に切り替えれば固定できます。問題になるのは、固定を外した状態で何度か回したときに、同じ顧客が別々の塊に散らばる場合です。そのときは、項目の選び方か塊の数のほうを見直してください。
生成AIに、分けるところまで任せられますか
塊を作る計算と、確かめる工程は分析基盤の側で行うのが確実です。生成AIが得意なのは、渡す項目の候補を挙げること、出てきた塊の数字を言葉に直すこと、名前の案を出すこと、仮説を並べることです。計算そのものを言葉で頼むと、手順は説明されますが、実際の数字に当たった結果が返ってくるわけではありません。役割を分けて使ってください。
塊ごとの人数が大きく偏るのは、直すべきですか
偏り自体は珍しくありません。顧客の実態が均等に散っていることのほうが少ないからです。問題になるのは、1つの塊に9割が入り、残りが少数の外れ値になっている場合です。この形が出たときは、桁の大きい項目に引っ張られている可能性を先に疑ってください。標準化が効いているかを確かめ、極端な値の扱いを決め直すと、偏りが緩むことがあります。それでも変わらないなら、その項目の組み合わせでは差が出ないという結果として受け取り、工程2へ戻ります。
項目は多いほうが、良い塊になりますか
逆になることが多いです。項目を増やすほど、どの2点の距離も似た値に近づいていき、塊の輪郭がぼやけます。目安として、打ち手を変える理由になる項目だけに絞り、10個前後から始めるのが扱いやすいです。どうしても項目が多いときは、先に情報を要約して次元を減らしてから渡す方法もあります。
まとめ
クラスタリングは、人が選んだ項目の上で、近いものを寄せる計算です。何を近いとみなすかは人が決め、いくつに分けるかも人が決め、その塊に名前と打ち手を付けるのも人の仕事になります。機械が返してくれるのは、最も近い塊の番号と、そこまでの距離だけです。だから工程は、分けて終わりではありません。分ける前に打ち手を書き、分けたあとに再現するかを確かめ、名前を付けて、変えるものを1つか2つに絞る。この順で回せば、出てきた塊は名簿ではなく、次の一手になります。
※本記事にはAIが活用されています。編集者が確認・編集し、可能な限り正確で最新の情報を提供するよう努めておりますが、情報の完全性、正確性、最新性、有用性等について保証するものではありません。本記事の内容に基づいて行動を取る場合は、読者ご自身の責任で行っていただくようお願いいたします。
データ分析にAIを活かす第一歩、まずは導入から始めませんか?
デボノはアカウント開設・初期設定など「そもそものAI導入」から社内定着まで伴走支援。マーケティング活用など一歩進んだご相談にも対応します。
