ちょっと話題の記事

良品計画様と製品の購入ユーザ予測を実施しました

2015.12.08

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

株式会社良品計画様とクラスメソッド株式会社はAmazon Machine Learning(以下、Amazon ML)を用いて、機械学習を用いた製品の購入個数予測に取り組んでいます。

直近の取り組みでは、とあるキャンペーンを実施した商品に対して、このキャンペーンの効果があるユーザ、つまりこの商品を購入しそうなユーザの予測を実施しました。

概要

ユーザの購買情報(POSデータ)やモバイルアプリ、会員登録に登録されたユーザの情報などを説明変数として、過去1年間の特定カテゴリの購入データを基に一ヶ月間の特定カテゴリのユーザ毎の購入数ランクを予測しました。それを現実の購入結果と照らしあわせることで効果があったがどうかを判定しました。

構成

POSデータやユーザの属性情報はAmazon Redshift上に格納されており、予測に利用する特定の情報をあらかじめSQLで抽出してS3に保存してそれをDatasourceとする構成を取りました。

storage

購入数量を予測した後、現実の購入数が判明してから突合することでこの予測がどれだけ精度のあるものかを確認しました。

分析結果の考察と機械学習のアプローチ

今回の購入予測はAmazon MLの回帰分析を用いてモデル作成しました。分析対象は過去一年に無印良品で購買活動のあったユーザを対象としています。

説明変数としてはユーザの年代、性別などの属性情報に加え、ユーザ毎の過去1年間の分析対象品目の月ごとの購入数を利用しました。これらの説明変数から、特定の月の分析対象の製品の総購入数を予測しようとしました。予測モデルには回帰モデルを利用し、それぞれのユーザの実際の購入数量を予測しました。

無印良品では多種多様な商品を取り扱っており、シーズナリティ(季節性)のあるもの、単価が低く販売個数が大量になるものなど、製品により売上実績の性質が全く異なってきます。そのため全ての製品に対して同じモデルを適用することは難しいと思われます。その製品の特性を理解したうえでモデルに落としこむ必要があると考えています。

検証結果

回帰モデルで予測した結果、購入数予測のデータと現実の購入数量を比較した結果、大量に購入するであろうという予測結果が出たユーザに対しては、現実でも購入数量が多くなるという結果が出ました。予測での購入数上位ユーザと現実の購入数上位ユーザを昇順で並べてグラフにしたところ、似た傾向を示していたことから、Amazon MLでの予測結果に基づいて製品を購入しそうなユーザを判別することができる、と言えます。

以下のグラフはAmazon MLの分析結果のスコア分布ごとのユーザ数(棒グラフ)と、そのスコアに分類された人のなかで実際に購入した人数の割合(折れ線グラフ)を表しています。棒グラフのほうは、右に行くほどMLのスコアが高い(=購入数が多いと予測される)ということになります。Amazon MLでのスコアが高いユーザのほうが、現実の購入比率が高いのがわかりやすいかと思います。

tabl

実は今回の取り組みを始めた当初は、ユーザ毎の購入数予測を実施していました。ですが説明変数の選択に苦しみそちらの検証は良い結果を得ることができませんでした。立てた仮説に対して適当な説明変数が与えられているかどうか、によって学習の結果に大きく影響してくる、という点は今後の取り組みに対して非常に大きな学びとなりました。

おわりに

小売業界にとっては大きな関心事の一つである購入傾向のあるユーザの判定に取り組み、いい結果を得ることができました。結果、利用傾向としては非常に興味深い内容を知ることができたかと考えています。

まだ数の少いAmazon MLを利用した取り組みということで参考になる先行事例はほとんど存在していませんでしたが、業務内容やデータに対する理解を深めようとする中で「こうしたほうがいいんじゃないか」という案がたくさん出てきたところはデータ分析の奥深さを個人的に感じました。今後も業務の役に立つ予測ができるように様々な取り組みを実施していこうと考えています。