次はドコ!? ドラッグストア3チェーンの開店場所をAIで勝手に予想してみたAI・データサイエンスで遊ぼう

たまたま手元にあった山盛りの店舗データを使ってこんなことしてみた! AI開発の試行錯誤を実際に体験してみよう!

» 2022年07月29日 05時00分 公開
[かわさきしんじDeep Insider編集部]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

「AI・データサイエンスで遊ぼう」のインデックス

連載目次

 何はともあれ、以下の画像をご覧ください。

ドラッグストアチェーンの開店地予想 ドラッグストアチェーンの開店地予想
出典:地理院地図Vector(仮称)
上記ページで公開されているコードを基に、ニューラルネットワークモデルが推測した開店候補地をピンで描画しています(以下、同じ)。

 これは国内の主要な3つのドラッグストアチェーンR、G、Bが開店する可能性の高そうな地点をニューラルネットワークモデルに推測させた結果です(横浜市近辺)。ピン(少し暗いピン)が立っている周辺が候補地だとニューラルネットワークモデルが推測した箇所です。加えて、既存の店舗(明るいピン)や閉店済みの店舗(暗いピン)などもピンを使って表現しています。画像の中央下部は横浜駅や関内駅の周辺で、その少し右上は川崎駅周辺です。「大規模な駅の周辺か、それならピンがたくさん立っているのは当たり前かな」と思えますね。

 ピンが多数立っているところもあれば、そうではないところもあります。ピンの密度が高いところほど候補地として選定された場所が多いということなので、そうした辺りに本当に開店があれば、そのときに初めて今回作成したモデルがそれなりの確度を持っていたといえるのかもしれません。

 ただし、ピンの位置は適当に(緯度経度を機械的に)決定したもので、地図とにらめっこして周辺の状況を検討するなどして決定したものではありません(実際には店舗を出せるような場所や状況になっていない可能性もあります)。

 R、G、Bなどといって実際のチェーン名を伏せたのは、万が一にも予測がたまたま当たってしまったときに、この記事が原因で出店計画に狂いが出る(競合に先手を打たれた、など)なんてことになっては困るからです。まあそこまで影響力があったら逆にすごいわけですが、やはり現実にビジネスを行っている方たちに万が一にもご迷惑をおかけしないように、今回は匿名とさせてもらいました。

 実際にどうなるかは数カ月、数年をかけて検証する必要があるでしょう。筆者個人がこれを行うことはあるでしょうが、実際に記事として答え合わせをすることはないかなと思っています。


かわさき

 「訓練データや検証データに対してではなく、現実に利用する場合、この推測の精度はかなり高いものですか?」と問われたら「いやぁ、あはは」と頭をかく程度のものであることはあらかじめいっておきますね(かわさき)。



一色

 このAIのPoC(実証実験)に数カ月をかけていたけど、最初の時の「難しそうだけどうまくいくのかな?」という感想で、検証データに対して「丁か半か」と変わらない正解率50%より少し上ぐらいでしたよね。そこから、試行錯誤することで正解率が上がってきた時は感動しましたよ。確かに現実にAIを運用すると使い物になるかどうかは分からないけど、こうやって記事に書くところまで形にできて良かったです(一色)。


 本稿では、こんなこと(?)をすることになった理由や、推測をさせるに当たっての基本的な考え方を述べていくことにしましょう。なお、本稿にはコードは全く出てきません。

今ここにあるデータ:店舗情報を使って何かできるんじゃない?

 @IT内で本フォーラム「Deep Insider」を運営しているデジタルアドバンテージという会社をご存じでしょうか? 会社名は知らずともiPhone/Androidで利用できるチェーン店検索アプリ「ロケスマ」やそのWebブラウザ版ともいえる「ロケスマWEB」ならご存じかもしれませんね。

ロケスマ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の範囲に正規化したものを使用して学習を行っています)。

 何はともあれ、基本方針は今述べた通りです。今回は3つのドラッグストアチェーンR、G、Bを対象として3つのモデルを作成して、上記方針で周辺店舗情報を収集し、それらを使って学習をさせてみました。


かわさき

 ここにたどり着くまでに、幾つかの分野のチェーンを対象に同じことをしたのですが、うまくいくケースもあれば、うまくいかないケースもありました。うまくいかないのが何を意味するかには検討の余地が大いにありますね。



一色

 最終的にドラッグストアを選んでいますけど、実はこの裏でかわさきさんはコンビニやら100均やらいろいろな開店地予想AIを作ってみたのですよね。今回のドラッグストアは割と分かりやすくできた方だと思います。

 各チェーンのニューラルネットワークは、そのチェーンの出店方針を表現したものになっていると私は考えています。だとすると、「各分野や各チェーンがどれくらい論理的に出店戦略を組み立てているか」によって大きく精度(この例では正解率)が違うことは想像できるなと思います。


やってみた!

 というわけで、上記の基本方針に従って、ドラッグストアチェーンR、G、Bのそれぞれについてニューラルネットワークモデルを作成して、学習させました。


かわさき

 お料理番組のノリで「学習が終わったモデルを、こちらに用意しておきました」と考えてください。コードについては次回に取り上げる予定です。まあ、用意したモデルをお皿に載せてハイッと出すのは難しいのですけれど。


 次に、学習後のモデルに開店候補地を推測するための周辺店舗情報を入力するのですが、今回は以下のように横浜市近辺の各地点について周辺店舗情報を得て、モデルに入力しています。

  • 範囲は横浜市をスッポリと囲む領域。そのため、東京都や川崎市などの地点も含まれる
  • 上記の領域で緯度経度をそれぞれ約100メートルずつずらしながら各地点の周辺店舗情報を取得する(約7万6000カ所)

 この約7万6000カ所について、上掲の「学習に使用するデータのイメージ」と同様な約2300の特徴量を持つデータを作り、ドラッグストアチェーンごとに作成した3つのモデルに入力します。すると、モデルが何やら計算をして、0〜1の範囲の数値を1個だけ出力してくれます。開店時のデータの教師ラベルが「1」なので、出力された値が1に近いほど、その地点はそのチェーンの店舗が開店したときの周辺店舗の状況に似ているとモデルが推測したと考えられます。これを確率と考えて、モデルからの出力が0.9以上のものをここでは開店候補地として地図にプロットしています。

推測結果 推測結果
出典:地理院地図Vector(仮称)
上記ページで公開されているコードを基に、ピンを使ってニューラルネットワークモデルが推測した開店候補地を描画しています(以下、同じ)。

 今回は国土地理院が公開している「Mapbox GL JSで地理院地図Vector風の地図を表示するサンプル」とMapboxのドキュメントを参考にして、チェーンごとにピンを赤(チェーンR)、緑(チェーンG)、青(チェーンB)に色分けしてプロットするようにしました。

 チェーンRについては約760カ所、チェーンGについては約200カ所、チェーンBについては約140カ所が候補地として出力されました。そのため、全体には赤い色のピンが目立つかもしれません。


かわさき

 マップにはチェーンR→チェーンG→チェーンBの順にピンをプロットしているので、近い位置に異なるチェーンの候補地があると、赤いピンが緑や青のピンに上書きされて、結果、それほど赤くはなっていないような気もします。え? どうでもいいって? そうですね……。


 横浜駅周辺とみなとみらい地区をズームしてみましょう。ここではモデルが推測した候補地だけを表示するようにウィンドウ下部のパネルで設定をしています。

チェーンRの候補地がたくさん並んでいる チェーンRの候補地がたくさん並んでいる

 緯度経度を約100メートルずつずらして各地点の周辺店舗情報を収集しているので、ピンが縦横に規則正しく並んでいるのが分かりますね。これを見ると、駅周辺や商業区域にはやはりピンが立ちやすいと考えられるでしょう。

 次回はこうした予測を行うコードや、開発に際して編集部内でどのような議論がなされたかについて話をしていくことにします。

「AI・データサイエンスで遊ぼう」のインデックス

AI・データサイエンスで遊ぼう

Copyright© Digital Advantage Corp. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。