次はドコ!? ドラッグストア3チェーンの開店場所をAIで勝手に予想してみた:AI・データサイエンスで遊ぼう
たまたま手元にあった山盛りの店舗データを使ってこんなことしてみた! AI開発の試行錯誤を実際に体験してみよう!
何はともあれ、以下の画像をご覧ください。
これは国内の主要な3つのドラッグストアチェーンR、G、Bが開店する可能性の高そうな地点をニューラルネットワークモデルに推測させた結果です(横浜市近辺)。ピン(少し暗いピン)が立っている周辺が候補地だとニューラルネットワークモデルが推測した箇所です。加えて、既存の店舗(明るいピン)や閉店済みの店舗(暗いピン)などもピンを使って表現しています。画像の中央下部は横浜駅や関内駅の周辺で、その少し右上は川崎駅周辺です。「大規模な駅の周辺か、それならピンがたくさん立っているのは当たり前かな」と思えますね。
ピンが多数立っているところもあれば、そうではないところもあります。ピンの密度が高いところほど候補地として選定された場所が多いということなので、そうした辺りに本当に開店があれば、そのときに初めて今回作成したモデルがそれなりの確度を持っていたといえるのかもしれません。
ただし、ピンの位置は適当に(緯度経度を機械的に)決定したもので、地図とにらめっこして周辺の状況を検討するなどして決定したものではありません(実際には店舗を出せるような場所や状況になっていない可能性もあります)。
R、G、Bなどといって実際のチェーン名を伏せたのは、万が一にも予測がたまたま当たってしまったときに、この記事が原因で出店計画に狂いが出る(競合に先手を打たれた、など)なんてことになっては困るからです。まあそこまで影響力があったら逆にすごいわけですが、やはり現実にビジネスを行っている方たちに万が一にもご迷惑をおかけしないように、今回は匿名とさせてもらいました。
実際にどうなるかは数カ月、数年をかけて検証する必要があるでしょう。筆者個人がこれを行うことはあるでしょうが、実際に記事として答え合わせをすることはないかなと思っています。
「訓練データや検証データに対してではなく、現実に利用する場合、この推測の精度はかなり高いものですか?」と問われたら「いやぁ、あはは」と頭をかく程度のものであることはあらかじめいっておきますね(かわさき)。
このAIのPoC(実証実験)に数カ月をかけていたけど、最初の時の「難しそうだけどうまくいくのかな?」という感想で、検証データに対して「丁か半か」と変わらない正解率50%より少し上ぐらいでしたよね。そこから、試行錯誤することで正解率が上がってきた時は感動しましたよ。確かに現実にAIを運用すると使い物になるかどうかは分からないけど、こうやって記事に書くところまで形にできて良かったです(一色)。
本稿では、こんなこと(?)をすることになった理由や、推測をさせるに当たっての基本的な考え方を述べていくことにしましょう。なお、本稿にはコードは全く出てきません。
今ここにあるデータ:店舗情報を使って何かできるんじゃない?
@IT内で本フォーラム「Deep Insider」を運営しているデジタルアドバンテージという会社をご存じでしょうか? 会社名は知らずともiPhone/Androidで利用できるチェーン店検索アプリ「ロケスマ」やそのWebブラウザ版ともいえる「ロケスマWEB」ならご存じかもしれませんね。
ロケスマで最新のチェーン店情報を表示するために、デジタルアドバンテージでは全国にあるチェーン店の店舗情報を毎日、運営元Webサイトからクローリングしています。毎日クローリングしているので、どこかにオープンする店舗があったことや、どこかに閉店する店舗があったことなども情報として記録されているわけです。
対応チェーンは順次追加しており、現時点では、7000チェーン、90万店舗のデータをデータベース化しています。初期のものだと、10年ほど前からデータが蓄積されています。
めっちゃ宣伝臭くって申し訳ないのですが、この事業をしていたからこそ、大量の店舗データが蓄積されてきたということもありまして。
この膨大な量のデータをうまく使えば何か面白いことができないかな? というのが本企画のスタート地点です。
最初にお断りしておきますが、今回の取り組みでは、いわゆる地理情報科学(Geographic Information Science)の理論などはいっさい使っていませんし、GISの領域では使用されることが多い国勢調査や商業統計のような統計データも使っていません。あくまで手元のデータを使って、ニューラルネットワークモデルを試しに構築してみるのが目的です。
手元には数多くのチェーン店舗の緯度経度情報と開店日/閉店日の情報があります。それらを組み合わせれば、特定の日に特定の店舗(特定の地点)の周辺にどんな店舗があったかが分かります。例えば、あるチェーンがどこかに新規店舗を開店させたときに、あるいはその逆にある店舗が閉店したときに、その周辺にどんな店舗があったかということです。これを周辺店舗情報と呼ぶことにしましょう。
通常の店舗開発では、「立地」と「商圏」という2つについて調査します。立地の方は、店の前の人通りは多いかとか、道路から店舗に入ってきやすいかとか、カンバンは目立つかなど、比較的ミクロな条件です。一方の商圏は、その周囲の夜間人口(居住している人)とか、昼間人口(昼間に買い物や仕事、学校にやってくる人)、それらの年齢性別分布、世帯平均収入とか消費規模とか、その辺りに店舗を出店して、やっていけそうかというマクロな条件です。このうち今回の判定では、立地の条件はまったく考慮していません。
ある商圏は、その地で必要な店舗種別の組み合わせによって一種のエコシステムを形成しています。小売業なら、スーパーやドラッグストア、コンビニなどが適度な割合で含まれているはずです。右も左も、スーパーしかない商圏というのはないでしょう。今回は、一般的な統計データではなく、周囲にどのような店舗があるのか、という一点に注目して商圏を評価します。
具体的には、あるチェーンの店舗が開店/閉店したときの周辺店舗情報をニューラルネットワークモデルに学習させて(開店した時点の周辺店舗情報には教師ラベルとして1を、閉店した時点の周辺店舗情報には教師ラベルとして0を付与)、そのモデルに特定の地点の周辺店舗情報を与えれば、その箇所にそのチェーンが開店する可能性がどのくらいあるかを予想できるのでは、というかなり大雑把(ざっぱ)なアイデアです。
それを実際に試してみたのが今回のお話です。その他にも、チェーンAとチェーンBが出店しているところには、チェーンCも出店しやすいといった傾向をクラスターとして表現できそうな気がするなんて話もありますが、これはまだ構想段階で何も手が付いていない状態です。
本企画の基本的な考え方は、特定のチェーンの出店方針が(部分的にせよ)周辺店舗情報に反映されているとしたら、逆に周辺店舗情報を学習することでモデルがそのチェーンの出店方針を重みとバイアスを使って(部分的にせよ)表現できるようになるかもしれないということです。単にこのチェーンのお店がある、あのチェーンのお店があるから出店の可能性が高くなりそうといった推測にとどまらず、駅周辺のように人流の多そうなところには多数の店舗が集結するので、そのような場所は開店候補地として検討の対象となりそうだといったことまでモデルが暗黙的に学習してくれるかもしれません。
もちろん現実の出店は、「めったにない出物物件があった」とか、「社長がひらめいて、鶴の一声で決めてしまった」とか、「魅力的な商圏だからぜひ出店したいところだが、あいにく出店できる物件がない」とか、周辺店舗の状況とはあまり関係なく決まることもあるでしょうから、予測精度にそこまで大きな期待はできないでしょうね……。
今回は多数のチェーンを安定してクローリングするようになった近年(過去5年程度)のデータを使用しています。チェーン数でいえば約2300といったところでしょうか。つまり、店舗ごとに約2300の特徴量(と開店か閉店かを示すラベル)を持ちます。各特徴量の値は店舗が周辺500メートルに存在していなければ0、存在していれば「1/距離(メートル単位)の二乗」としました。開店/閉店した店舗から5メートル離れた位置にある店舗なら「1/25」=0.04、100メートル離れた位置にある店舗なら「1/10000」=0.0001といった具合です。開店/閉店した店舗に近いほど影響力が強く、遠くなるほど影響力が弱くなるだろうということから、このような値を設定しています。
イメージ的には次のようなデータになります。
各行が開店/閉店した店舗のデータを表し、各列が500メートル以内に2316チェーンの店舗が存在するかどうかを示し、存在していれば先も述べたように「1/距離の二乗」がその要素の値に、存在していなければ「0」がその要素の値となっています(実際には、これを0〜1の範囲に正規化したものを使用して学習を行っています)。
Copyright© Digital Advantage Corp. All Rights Reserved.