以下、添付図面を参照して本発明の実施形態を説明する。本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。各図において共通の構成については同一の参照符号が付されている。
本実施形態は、商品の販売数を予測する販売予測システム、及び、予測結果に基づき店舗の商品発注を支援するシステムを開示する。商品を販売する小売業は、品切れによる売れ筋商品の欠品や、売れない商品の過剰な在庫を発生させないように、適切な商品を適切な量発注する必要がある。店の利益を最大化するためには、毎日の商品の販売見込み量を正確に予測し、その上で、陳列する商品の組み合わせと各商品の在庫数を決定することが重要である。
新しい商品など販売実績がない商品の予測は困難である。さらに、各商品は、天気や曜日のような外的な環境要因だけでなく、店舗内に陳列される他の競合商品のラインナップにも影響される。各商品の単品分析では、複数商品の間の需要変動の影響を加味することができない。
近年では、顧客の飽きに対応するため、新商品を導入するなどして店舗内に陳列する商品の組み合わせを頻繁に変更する店舗が多く、販売実績の少ない商品や複数の商品間の競合の影響を加味した販売数予測が必要である。
本実施形態の販売予測システムは、商品の特性データと過去の販売データを用いて商品特性に対する購買者の嗜好モデルを構築し、販売実績の少ない商品や複数の商品間の競合の影響を加味した販売数予測を行う。
一例において、販売予測システムは、あらかじめ、個人毎の嗜好分析結果から、それぞれ異なる嗜好タイプを示す複数の嗜好モデルを決定する。嗜好モデルは、嗜好木で表される。例えば、販売予測システムは、個人毎の嗜好分析結果から、典型的な嗜好タイプをそれぞれが示す複数の典型的嗜好モデルを算出する。さらに、販売予測システムは、典型的嗜好モデル毎の購買人数分布を算出する。なお、典型嗜好モデルに代えて、選択した複数個の嗜好モデル及びそれらに対応する購買分布を算出してもよい。
店舗の発注者が発注量を検討する際に、販売予測システムは、予め用意した嗜好モデルと購買人数分布とを用いて、販売数の予測結果、各商品の購買促進要因/購買抑制要因や競合商品間の影響度等を算出し、提示する。これにより、発注者は、商品特性の組み合わせ方や複数商品の組み合わせ方などの様々な条件に対する予測需要数、予測売上を知ることができる。発注者は、販売予測結果から、商品ラインナップや新商品導入の有無、価格設定などを効率よく検討することができる。
一例において、販売予測システムは、個人の嗜好モデルを、クラスタリング分析によって、複数の典型的嗜好モデルに分類する。典型的嗜好モデルは、典型的嗜好タイプを示す。典型的嗜好モデルにより、条件変更に対する販売数予測の高速化、購買者の嗜好タイプの説明性の向上を実現する。
さらに、販売予測システムは、典型的嗜好タイプごとに、各商品の商品特性が購買に与える影響を分析することで、商品特性に関して需要変動因子を推定する。これらの嗜好タイプ分析結果や各商品の購買促進要因/購買抑制要因を提示することで、発注者が次に検討すべき条件を示唆できる。以下、具体的に説明する。
実施形態1
実施形態1は、コンビニエンスストアのようにチェーン展開している小売企業において、各店舗の発注を支援するシステムの例を説明する。
図1は、本実施形態に係る販売予測システムの構成例を示す。本システムは、中央管理サーバ101及び店舗内サーバ102を含む。中央管理サーバ101は、購買嗜好モデル分析プログラム133を実行する。店舗内サーバ102は、店舗売上分析プログラム132を実行する。中央管理サーバ101と店舗内サーバ102の機能が一つの計算機又は2より多い計算機に実装されていてもよい。
中央管理サーバ101と店舗内サーバ102とはネットワーク135を介して接続しており、店舗内サーバ102は、中央管理サーバ101における嗜好モデル分析結果をもとに、店舗売上分析プログラム132によって、自店舗の需要や売上を予測し分析結果を発注者に提示する。
中央管理サーバ101は、個人ID付POSデータ103、全店舗在庫管理データ104、商品マスタデータ113、予測期間テーブル137、購買者分布データ114、典型嗜好木ベクトルテーブル115を保持する。個人ID付POSデータ103と、全店舗在庫管理データ104とは、ネットワーク135を介して収集した、複数の小売店舗134における商品購買履歴と在庫・発注履歴を格納する。
購買嗜好モデル分析プログラム133は、個人ID付POSデータ103、全店舗在庫管理データ104、商品マスタデータ113、予測期間テーブル137を入力データとして使用し、購買者分布データ114、典型嗜好木ベクトルテーブル115を出力する。
購買嗜好モデル分析プログラム133は、個人嗜好モデル抽出プログラム105、嗜好木クラスタリングプログラム107、典型嗜好モデル抽出プログラム111、購買者分布算出プログラム112を含む。
購買嗜好モデル分析プログラム133は、最終アウトプットである購買者分布データ114、典型嗜好木ベクトルテーブル115の他に、嗜好木ベクトルテーブル106、距離マトリクステーブル108、グループテーブル109、クラスタ寄与率ベクトルテーブル110、購買者分布データ114、典型嗜好木ベクトルテーブル115を生成する。
店舗内サーバ102は、在庫管理データ136を保持する。店舗売上分析プログラム132は、発注者の入力条件116と、商品マスタデータ113、購買者分布データ114、典型嗜好木ベクトルテーブル115、在庫管理データ136を入力として使用する。店舗売上分析プログラム132は、入力が示す条件下での商品販売予測数、売上、購買因子影響度など、発注者が発注量を決定する際に利用するための結果情報117を出力する。
結果情報117の出力は、計算機の表示画像に画像を表示する他、レポートを作成してもよい。商品マスタデータ113、購買者分布データ114、典型嗜好木ベクトルテーブル115は、中央管理サーバ101からネットワーク135を介して店舗内サーバ102に送られる。これらデータの全てはなく、必要なデータのみが送信されればよい。
店舗売上分析プログラム132は、予測条件設定プログラム118、商品販売数/売上予測プログラム123、最適発注量・発注商品推定プログラム126、嗜好傾向分析プログラム127、結果表示プログラム129、条件変更入力受付プログラム131を含む。
店舗売上分析プログラム132は、商品特性ベクトルテーブル119、利用者分布ベクトルテーブル120、発注分析条件テーブル121、嗜好分析条件テーブル122、販売数予測結果テーブル124、需要変動因子マトリクス125、嗜好分析結果テーブル128、発注商品マトリクス130を生成する。
図2は、中央管理サーバ201及び店舗内サーバ202のハードウェア構成例を示す。当該構成例は、プロセッサであるCPU301、ハードディスクドライブ302、メモリ303、ディスプレイ制御部304、ディスプレイ307、キーボード制御部305、キーボード308、マウス制御部306、マウス309を備える。
CPU301は、演算資源であって、データの入力/出力、読み込み/書き込みを行い、さらに、図1で説明した各プログラムを実行する。ハードディスクドライブ302は二次記憶デバイスであって、図1で説明したデータの一部又は全てを保持する。メモリ303は、CPU301が実行するプログラム及びデータを一時的にロードして記憶するメインメモリであり、図1で説明したデータの一部又は全てを保持する。ハードディスクドライブ302、メモリ303は、記憶資源である。
ディスプレイ307は使用者にデータを表示するデバイスであり、ディスプレイ制御部304によって制御される。キーボード308およびマウス309は管理者からの入力を受け付けるデバイスであり、それぞれキーボード制御部305およびマウス制御部306によって制御される。
プログラムは演算資源によって実行されることで、定められた処理を記憶資源及び通信インタフェースを用いながら行う。従って、本実施形態及び他の実施形態においてプログラムを主語とする説明は、演算資源を主語とした説明でもよい。若しくは、プログラムが実行する処理は、そのプログラムが動作する計算機及び計算機システムが行う処理である。
演算資源は、プログラムに従って動作することによって、所定の機能を実現する機能部として動作する。例えば、演算資源は、購買嗜好モデル分析プログラム133に従って動作することで購買嗜好モデル分析部として機能し、店舗売上分析プログラム132に従って動作することで店舗売上分析部として機能する。計算機及び計算機システムは、これらの機能部を含む装置及びシステムである。
なお、プログラムの少なくとも一部は、専用ハードウェアによって実現されてもよい。プログラムは、プログラム配布サーバや、計算機読み取り可能な非一時的記憶媒体によって各計算機にインストールすることができ、各計算機の不揮発性記憶デバイスに格納することができる。
図3は、中央管理サーバ101における購買嗜好モデル分析プログラム133のフローチャート例を示す。購買嗜好モデル分析プログラム133は、個人ID付POSデータ103、全店舗在庫管理データ104、商品マスタデータ113を取得する(401)。次に、購買嗜好モデル分析プログラム133は、個人の嗜好モデルを抽出する(402)。嗜好モデルは嗜好木で表される。ステップ402の詳細は、図11を参照して後述する。
次に、購買嗜好モデル分析プログラム133は、個人の嗜好木をクラスタリングする(403)。ステップ403の詳細は、図13を参照して後述する。次に、購買嗜好モデル分析プログラム133は、クラスタリングした個人の嗜好木から、典型嗜好モデルを抽出し、典型嗜好木ベクトルテーブル115を生成する(404)。ステップ404の詳細は、図17を参照して後述する。
また、購買嗜好モデル分析プログラム133は、ステップ404とは別に、予測期間テーブル137を取得し(405)、さらに、購買者分布データを算出し、購買者分布データ114を生成する(406)。予測期間テーブル137の詳細は、図7を参照して後述する。購買者分布データ114及びステップ406の詳細は、図10及び図18を参照して後述する。
購買嗜好モデル分析プログラム133は、上記ステップ404で生成された典型嗜好木ベクトルテーブル115及びステップ406で生成された購買者分布データ114をデータベースに格納する(407)。
購買嗜好モデル分析プログラム133は、購買者がどのような商品特性の商品を購買しやすいかという商品特性に対する嗜好のモデルを構築する。嗜好モデルの構築は、まず個人毎にデータを学習して個人嗜好モデルを構築し、これをクラスタリングすることで複数の典型的な嗜好モデルを構築する。
典型的な嗜好モデルは、典型嗜好木ベクトルテーブル115に記述される。店舗内の販売数を予測するためには、嗜好モデルの構築に加えて、予測期間において来店する購買者数及来店した購買者の購買商品を予測するが必要である。そこで、購買嗜好モデル分析プログラム133は、各典型的な嗜好タイプが、ある予測期間において、対象とするカテゴリの商品を購買する個数を予測し、その結果を購買者分布データ114に記述する(406)。具体的な嗜好モデルの構築、購買者の予測については後述する。
以下では、購買嗜好モデル分析プログラム133の入力データを説明する。図4は、個人ID付POSデータ103の例を示す。個人ID付POSデータ103は、購買嗜好モデル分析プログラム133の入力データであり、個人嗜好モデル抽出プログラム105と購買者分布算出プログラム112で利用される。
項目501は購入時間、項目502は店舗ID、項目503は商品ID、項目504は個数、項目505は価格、項目506は顧客IDを示す。必要に応じてこの他の情報を加えてもよい。例えば、購買時の状況も含めて購買者の購買傾向を分析するために、割引の有無などの情報も加えて取得する場合が考えられる。
図5は、全店舗在庫管理データ104の例を示す。全店舗在庫管理データ104は、購買嗜好モデル分析プログラム133の入力データであり、個人嗜好モデル抽出プログラム105で利用される。
項目601は在庫チェック時刻、項目602は店舗ID、項目603は商品ID、項目604は在庫数、項目605は廃棄数、項目606は顧客IDを示す。必要に応じてこの他の情報を加えてもよい。例えば、商品競合による影響を精度高く分析するために、売り場に陳列する際のレイアウト情報として、隣におく商品IDや、同じ棚に陳列する商品ID群などの情報を含めるなどといったことが考えられる。
図6は、商品マスタデータ113の例を示す。商品マスタデータ113は、購買嗜好モデル分析プログラム133の入力データであり、個人嗜好モデル抽出プログラム105と嗜好木クラスタリングプログラム107で利用される。
項目701は商品ID、項目702は商品名、項目703は商品カテゴリ、項目704はカテゴリのID、項目705は商品特性を示す。必要に応じてこの他の情報を加えてもよい。例えば、販売数の予測分析の際に販売されていない商品を含めた分析をしないように、商品の販売開始日、販売停止日の情報などを含めておくなどが考えられる。
項目706〜714は、商品特性705の項目例である。カテゴリが食品のものに関する項目例として、メーカ706、内容量707、生産日からの消費期限708、価格709、新製品か否かの情報710、調理方法に関する項目で揚げものが含まれるか否かの情報711、材料に魚が含まれるか否の情報712、カロリ713、栄養素に関する情報の一例であるたんぱく質714等の項目が示されている。
商品特性705の項目は一例であり、不必要(/取得困難)な項目を削除し、これ以外の情報を加えてもよい。例えば、商品カテゴリが洋服であれば、布地、色、サイズなどといった項目が考えられる。商品マスタデータ113の情報は、データ管理者などがあらかじめ入力しておくものとする。
図7は、予測期間テーブル137の例を示す。予測期間テーブル137は、一回の販売予測で予測したい期間を示す。予測期間テーブル137は、購買嗜好モデル分析プログラム133の入力データであり、購買者分布算出プログラム112で利用される。
項目801は予測期間のIDを示し、項目802は予測期間を示す。予測期間はあらかじめデータ管理者などが設定するものとする。本例は、曜日と、午前、昼、午後、夜の区分とにより、予測期間を定義している。予測期間の定義方法はこれに限定されない。休日、休日前日といった情報を用いたり、時間帯をもっと細かく区切ったりしてもよい。
購買嗜好モデル分析プログラム133は、入力データを分析し、最終的に、購買者分布データ114と、典型嗜好木ベクトルテーブル115と、を出力する。購買者分布データ114は、各予測期間における、1又は複数の商品カテゴリ内の商品に関する典型嗜好タイプ(典型嗜好モデル)毎の購買個数分布を示す。典型嗜好木ベクトルテーブル115は、購買者がどのような商品特性の商品を購買しやすいかという、商品特性に対する嗜好のモデルを記述する。
図8は嗜好モデルの例を示す。嗜好モデルは、嗜好木で表される。嗜好木903は、入力された商品の特性ベクトルに対応する商品評価関数を選択し、当該特定ベクトルと選択した商品評価関数とによって、嗜好得点908を算出する。具体的には、商品評価関数は、各商品特性に対する重み係数を含む重みベクトルであり、嗜好得点は908は、特性ベクトルと重みベクトル(商品評価関数)の内積で算出される。
例えば、幕の内弁当901は、嗜好得点を算出する商品の例であり、特性ベクトルxを有する。特性ベクトルxは、図6の商品マスタデータにおける幕の内弁当901に関する商品特性の項目を要素として含む。
嗜好木903は嗜好モデルであり、各葉ノードに商品評価関数を有する二分岐の決定木である。分岐条件904は根ノードの分岐条件であり、分岐条件905は、分岐条件904がtrueであった場合にたどりつくノードの分岐条件である。各分岐条件は、商品特性のある項目のある基準値に対する大小関係又は等価関係で記述される。
分岐条件904は、価格という項目の特性が500という基準値未満であればtrue、そうでなければfalseを示す。分岐条件905は、魚という項目の特性が1であればtrue、そうでなければfalseを示す。葉ノードの商品評価関数は、各項目の特性の値をそれぞれ重みづけして嗜好得点νを算出する。
本例の場合、価格が500円未満で魚を含む商品について、嗜好木903は、商品評価関数906を用いて嗜好得点νを算出する。価格が500円未満で魚を含まない商品について、嗜好木903は、商品評価関数907を用いて嗜好得点νを算出する。
図9は典型嗜好木ベクトルテーブル115の例を示す。典型嗜好木ベクトルテーブル115は、購買嗜好モデル分析プログラム133の最終出力データであり、それぞれの典型嗜好タイプの嗜好木のパラメータ情報を記述する。
典型嗜好木ベクトルテーブル115において、項目1001はモデル更新日、項目1002は嗜好木ID、項目1003は商品のカテゴリID、項目1004は木構造、項目1005は重みベクトル、を示す。
商品のカテゴリID1003は、同じ行に記述される嗜好木を用いて評価する関連商品群の範囲を示す。カテゴリID1003は、同一の商品特性ベクトルを有するカテゴリであれば、複数のIDを含んでもよい。例えば、嗜好木ID02(1013)の嗜好モデルは、商品のカテゴリIDが、0、1及び2の商品を評価する。本例において、嗜好木に対する商品カテゴリIDの各グループは、同一の商品IDで構成される。図9に示すように、一つの関連商品群に対して複数の典型嗜好木が定義されている。
木構造1004は、嗜好木の分岐条件に関する情報を記述する。嗜好木の各ノードは葉ノードを除き二分岐するとして、最大の分岐数をあらかじめ決められている。購買嗜好モデル分析プログラム133は、根ノードに近い分岐条件から順に、かつ、同じ深さであれば左から順に分岐条件の番号を付与する。例えば、嗜好木の深さが3の場合、最大の分岐数は7である。したがって、購買嗜好モデル分析プログラム133は、分岐条件1から分岐条件7まで各分岐条件に番号を付与する。
項目1006、1007は分岐条件を示す。項目1006は分岐条件01に関する情報を示し、項目1007は分岐条件02に関する情報を示す。実際には全ての分岐条件番号が含まれる。
項目1008、1009、1010は、分岐条件01(1006)に関する詳細な情報を示す。項目1008は特性、項目1009は符号、項目1010はレベル値を示す。本例において、嗜好木ID02(1013)の分岐条件01(1006)は、魚という商品特性の値が1か否かである。
典型嗜好木ベクトルテーブル115は、同様に、分岐条件02(1007)に関しても同様の項目を記述する。項目1011は分岐条件02(1001)の商品特性を示す。ある分岐条件番号の分岐が実際の嗜好木には存在しない場合、その分岐条件番号に関する項目は空欄である。嗜好木ID02(1013)の分岐条件02(1007)の項目が空欄であり、嗜好木ID02には分岐条件02が存在しないことを示している。すなわち、嗜好木ID02の嗜好木では、分岐条件01「fish=1」がtrueの場合、それ以上の分岐は存在しない。
重みベクトル1012は、嗜好木の葉ノードに含まれる商品評価関数のパラメータ情報を示す。各葉ノードの重みベクトルは、各葉ノードにおける商品特性に対する重み係数を要素として含むベクトルである。
購買嗜好モデル分析プログラム133は、葉ノード番号を、嗜好木ごとに決める。例えば、葉ノードに左から順に番号を与える。項目1012は葉ノード番号01を示す。実際には葉ノード数分だけ、葉ノード番号に関する項目が並ぶ。自身の嗜好木を持っていない葉ノード番号の項目は空欄とする。
図10は、購買者分布データ114の例を示す。購買者分布データ114は、購買嗜好モデル分析プログラム133の最終出力データであり、典型嗜好タイプ毎の商品購買個数の分布を示す。
項目1101は予測期間、項目1102は店舗IDを示す。項目1103は商品のカテゴリID、項目1104は典型嗜好タイプに関する項目である。項目1105、1106、1107、1108は、それぞれの嗜好タイプでの購買量に関する項目である。項目1105は嗜好タイプ01、項目1106は嗜好タイプ02、項目1107は嗜好タイプ03、項目1108は嗜好タイプ03であり、各嗜好タイプの購買者が、指定された予測期間においてカテゴリIDに含まれる商品群の商品を購入する個数を示す。
例えば、嗜好タイプ01の購買者は、予測期間「日曜日午前」内に、店舗ID01の店舗において、商品カテゴリIDが0、1又は2に属する任意の商品を、30.2個購入する。
以下では、購買嗜好モデル分析プログラム133の処理の詳細を述べる。図11は、図3における個人の嗜好モデルの抽出ステップ402の詳細フローの一例を示す。個人嗜好モデル抽出プログラム105が、図11のフローチャートに従って動作する。
個人嗜好モデル抽出プログラム105は、個人毎に嗜好を決定木でモデル化して個人嗜好木を生成し、嗜好木ベクトルテーブル106に格納する。個人嗜好モデル抽出プログラム105は、個人嗜好木を、個人が購買した商品と購買しなかったが陳列されていた競合商品に関する商品特性ベクトルから生成する。
本例において、嗜好木は、互いに競合する商品群の嗜好度合いを評価するために構築される。競合度が低いものを一つの嗜好木で比較されない。例えば、洋服と食品が互いの競合が低い商品群(商品カテゴリ)と見なされる場合、個人嗜好モデル抽出プログラム105は、洋服に関する嗜好木と食品に関する嗜好木とを、それぞれの購買データを用いて別々に構築する。
同一の嗜好木で評価する商品群(本開示において関連商品群とも呼ぶ)の全商品の特性は、同一項目で構成され、特性ベクトルは、同一項目の要素で構成される。例えば、洋服が一つの関連商品群である、全ての洋服について、サイズ、生地の種類といった統一的な商品特性の項目が定義される。
一つの関連商品群を構成する商品カテゴリは、管理者によって指定される。管理者は、下着類、上着など、洋服よりも狭い競合商品群を関連商品群として指定し、各関連商品群に対して、購買嗜好モデル分析プログラム133によって嗜好木を構築してもよい。例えば、管理者は、商品特性の項目が同一の全商品カテゴリに対して一つの嗜好木を構築してもよいし、同じ陳列棚に陳列されやすい商品群で一つの関連商品群を定義してもよい。
図11は、図3のフローチャートのステップ402において、一つの関連商品群について嗜好木を生成するためのフローチャートを示す。複数の異なる関連商品群が存在する場合、個人嗜好モデル抽出プログラム105は、図11の処理を、それぞれの関連商品群について行う。
個人嗜好モデル抽出プログラム105は、個人の嗜好モデルの抽出402で用いるデータを、データベースから取得する(1201)。具体的には、個人ID付POSデータ103、全店舗在庫管理データ104、商品マスタデータ113を取得する。
個人嗜好モデル抽出プログラム105は、分析対象の顧客IDをテーブル化し、人数Nを算出する(1202)。分析対象の顧客IDは、個人ID付POSデータ103の顧客IDから選択される。個人嗜好モデル抽出プログラム105は、全顧客IDを選択してもよいし、例えば利用回数が30回以上などの制約条件を設けて条件にあう顧客のIDのみを選択してもよい。
ステップ1203、1208、1209は、ループのためのステップであり、ステップ1204からステップ1207までを顧客IDごとに繰り返すことを意味する。ステップ1203はループの初期値を設定し、顧客テーブルの最初の顧客を意味する。ステップ1208は、次の顧客IDを設定する。ステップ1209はループの終了条件を判定する。テーブル化された顧客ID全員に関するループが終われば、ループの繰り返しを終了する。
ステップ1204、1205は、ループ内で行う分析に用いるデータを選択する。まず、ステップ1204において、個人嗜好モデル抽出プログラム105は、顧客nの購買履歴を取得する。個人嗜好モデル抽出プログラム105は、顧客テーブルのn番目の顧客IDに関する購買履歴を、ステップ1201で取得した個人ID付POSデータ103から選択する。
ステップ1205において、個人嗜好モデル抽出プログラム105は、顧客nの購買時の商品情報と商品特性ベクトルを取得する。個人嗜好モデル抽出プログラム105は、ステップ1204で選択した各購買について、全店舗在庫管理データ104から、購買されなかったが、購買された商品と競合する商品IDを選択する。例えば、購買と同じ日時に購買した店舗に在庫が存在する商品IDを選択する。
例えば、陳列する棚が同じ場所の商品群を競合商品群(関連商品群)とする場合、全店舗在庫管理データ104は陳列棚IDの情報を保持し、個人嗜好モデル抽出プログラム105は、それに基づいて各商品が競合商品の範囲に含まれるか否か判定してもよい。個人嗜好モデル抽出プログラム105は、このようにして各購買における購買された商品と購買されなかった商品の商品IDのテーブルを作成する。
さらに、個人嗜好モデル抽出プログラム105は、商品IDのテーブルの商品IDについて、商品マスタデータ113から商品特性ベクトルを取得する。各商品IDの商品特性ベクトルの項目は、予め決められている。
次に、ステップ1206、1207おいて、個人嗜好モデル抽出プログラム105は、各購買における、対象競合商品群の各商品の商品特性ベクトルと購買されたか否かの情報とを学習データセットとして、個人毎の嗜好モデルを学習する。
ステップ1206において、個人嗜好モデル抽出プログラム105は、顧客nの嗜好木の分岐条件を選択する。すなわち、図8の分岐条件904や分岐条件905の特性、符号、レベルを決定する。例えば、分岐条件候補の例としては、「価格<500円」、「カロリ>1000kcal」「塩分≦5g」などがある。また、魚のありを1、なしを0として、「魚=1」を分岐条件の候補とすることも可能である。分岐条件の選択方法の一例は、特性、符号、レベルの組み合わせからなる複数の分岐条件候補を決定し、全ての分岐条件候補の中から最も購買結果の分離性の高い候補から順に採用する。分離性が高い条件とは、学習データセットに含まれる商品特性ベクトルをその条件候補の条件を満たすか満たさないかで分けた際に、購買されたか否かの結果も分離する条件である。
分離性の評価方法の一例は、学習データに含まれる全ての商品を、ある条件候補を満たす商品群と満たさない商品群に分け、各群において購買された商品の割合を算出する。次に、条件を満たす群と満たさない群間で、購買された商品の割合を比較し、その差が大きいものが分離性が高いと評価する。割合の比較は、情報エントロピやカルバック・ライブラ情報量を用いることができる。
他の分離性評価方法の例では、ある1回の購買を、複数の商品のうちから一つの商品を選択(購買)する選択問題ととらえ、あるある選択において各条件を含む商品が選択される選択確率を算出する。この選択確率の全選択での平均値についても、情報エントロピやカルバック・ライブラ情報量を利用して分離性を評価することができる。必要に応じて、選択確率を各条件の出現率で正規化してもよい。
次に、ステップ1207において、個人嗜好モデル抽出プログラム105は、嗜好木の各葉ノードの商品特性の重みマトリクスを算出する。例えば、複数選択肢の商品の中から最も嗜好得点の高い商品が選択されるとして、個人嗜好モデル抽出プログラム105は、ロジットモデルを用いて条件付き選択確率の式を作成し、過去の購買履歴データから、選択された商品に関する条件付き選択確率を最大化するように重みマトリクスを推定する。プロビットモデルを用いてもよい。
ステップ1206、1207に関して、例えば、個人嗜好モデル抽出プログラム105は、ステップ1206における分岐条件の決定を全分岐条件候補の組み合わせ探索から求めてもよい。この場合、最適な組み合わせの条件を選択するために、個人嗜好モデル抽出プログラム105は、それぞれの分岐条件の組み合わせについて交差検定を行い、最も精度の高いものを最適な組み合わせとして選択してもよい。
全ての顧客の嗜好木を生成した後、個人嗜好モデル抽出プログラム105は、嗜好木ベクトルテーブル106を生成し、個人毎の嗜好木のパラメータ情報を記述する(1210)。
このように、本実施形態は、購買履歴と商品特性から嗜好モデルを決定することができる。嗜好モデル決定のためのアンケートが不用であり、商品特性の数が多く、複数の特性の組み合わせが嗜好に与える影響を加味した正確な嗜好モデルを、適切かつ容易に生成できる。
図11の例において、個人嗜好モデル抽出プログラム105は、一人につき一つの嗜好木を構築する。予測時のロバスト性の向上などのために、個人嗜好モデル抽出プログラム105は、一人に対して複数の嗜好木を構築してもよい。例えば、個人嗜好モデル抽出プログラム105は、ステップ1206における分岐条件選択において、ランダムフォレストなどの手法を用いて、異なる分岐条件の木を作成し、それぞれの木についてステップ1207を行うことで、複数の嗜好木を構築することができる。
図12は、嗜好木ベクトルテーブル106の例を示す。嗜好木ベクトルテーブル106は、個人嗜好木のパラメータ情報を記述している。嗜好木ベクトルテーブル106は、図9に示す典型嗜好木ベクトルテーブル115の構成に、顧客ID1301の項目を加えたテーブル構成を有する。また、嗜好木ベクトルテーブル106において、嗜好木ID1002は、個人嗜好木のIDを示す。本例においては、上述のように、嗜好木ベクトルテーブル106の全てのレコードのカテゴリID1003の値は同一であり、一つの競合商品群を示す。
図13は、図3における嗜好木クラスタリングステップ403のフローチャートの一例を示す。嗜好木クラスタリングプログラム107は、図13のフローチャートに従って動作する。図13のフローチャートは、ある一つの競合商品群(同一の商品カテゴリ群)を評価する嗜好木クラスタリングのフローを示す。複数の競合商品群が存在する場合は、嗜好木クラスタリングプログラム107は、各競合商品群について、嗜好木クラスタリングを行う。
まず、嗜好木クラスタリングプログラム107は、本フローの処理に使用するデータを取得する(1401、1402)。ステップ1401において、嗜好木クラスタリングプログラム107は、商品マスタデータ113から、商品の特性ベクトルを取得する。特性ベクトルを取得する商品は管理者が設定してもよいし、商品マスタデータ113における全てのデータでもよい。
ステップ1402において、嗜好木クラスタリングプログラム107は、嗜好木ベクトルテーブル106から、対象競合商品群に対応する全ての個人嗜好木を取得する。同一購買者の購買履歴から、例えばランダムフォレスト法を使い、複数の個人嗜好木を構築した場合、その全ての嗜好木を取得する。対象競合商品群に対応する一部の個人嗜好木のみを取得してもよい。
ステップ1403において、嗜好木クラスタリングプログラム107は、各個人嗜好木について、商品嗜好得点ベクトルを算出する。一つの個人嗜好木についての商品嗜好得点ベクトルの算出方法は、取得した商品の特性ベクトルのそれぞれを、当該個人嗜好木の商品評価関数に代入して嗜好得点を算出し、各嗜好得点を要素とする嗜好得点ベクトルを生成する。
ステップ1404において、嗜好木クラスタリングプログラム107は、嗜好得点ベクトルを階層クラスタリングする。例えば、嗜好木クラスタリングプログラム107は、嗜好得点ベクトルのユークリッド距離を算出し、重心法によりコーフェン行列を算出する。コーフェン行列は、階層クラスタリングの結果を示す。
嗜好木クラスタリングプログラム107は、異なる階層クラスタリング手法を用いてコーフェン行列を算出してもよい。例えば、距離の代わりにピアソン相関係数を用いてもよいし、重心法でなくウォード法を用いてもよい。なお、クラスタの生成は、同一クラスタの最大距離や、クラスタ数として、予め決められた値を使用することができる。
ステップ1405において、嗜好木クラスタリングプログラム107は、個人毎のクラスタ寄与率ベクトルを算出する。クラスタ寄与率ベクトルは、個人が所属するクラスタを記述するベクトルである。クラスタ寄与率ベクトルの各要素は、当該個人の各クラスタに対する寄与率を示す。
例えば、個人が1つの個人嗜好木だけを持つ場合、クラスタ寄与率ベクトルの各要素は、1又は0である。当該個人嗜好木が属するクラスタの要素は1であり、他のクラスタの要素は0である。複数の木が存在する場合、クラスタ番号aに対する個人nの寄与率は、例えば、下記の式1で算出できる。
nの嗜好木のうちクラスタaに所属する嗜好木の数
/nの全ての嗜好木の数 (式1)
嗜好木クラスタリングプログラム107は、他の方法でクラスタリングを行ってもよい。例えば、k−meansのような非階層的クラスタ分析をしてもよい。クラスタリングに用いるベクトルは、嗜好得点ベクトルではなく、重みベクトルの平均値など、嗜好木構造に関する指標であってもよい。
最後に、ステップ1406において、嗜好木クラスタリングプログラム107は、これまでに算出した値を使用して、距離マトリクステーブル108、グループテーブル109、クラスタ寄与率ベクトルテーブル110を作成する。
図14は、距離マトリクステーブル108の例を示す。行の項目及び列の項目は、共に、嗜好木ID1501である。嗜好木ID1501は、個人嗜好木の嗜好木IDを示す。列1502、1503は、それぞれ、嗜好木ID01、嗜好木ID02の列であり、行1504、1505、1506は、それぞれ嗜好木ID01、嗜好木ID02、嗜好木ID03の行である。
各セルは、行の嗜好木IDと列の嗜好木ID間の距離を表している。例えば、セル1507は、嗜好木ID01(1502)と嗜好木ID03(1506)間の距離を示す。図14の例では、距離マトリクスは対称行列であるため、距離マトリクステーブル108は、行列の下三角部分だけを記述している。
図15はグループテーブル109の例を示す。グループテーブル109は、個人嗜好木と典型嗜好木との間の関係を示し、各個人嗜好木が属する典型嗜好木を示す。項目1601は個人嗜好木IDであり、項目1602は典型嗜好木IDである。
図16はクラスタ寄与率ベクトルテーブル110の例であり、個人毎のクラスタ寄与率ベクトルが記述されている。項目1701はモデル更新日、項目1702は顧客ID、項目1703は典型嗜好タイプの嗜好木ID、つまり、典型嗜好木IDを示す。
項目1704、1705、1706、1707は、各嗜好タイプ、つまり、各クラスタへの寄与率の項目である。各クラスタに対して一つの典型嗜好木が定義される。各嗜好タイプは、対応する典型嗜好木IDで識別される。項目1704は典型嗜好タイプ01、項目1705は典型嗜好タイプ02、項目1706は典型嗜好タイプ03、項目1707は典型嗜好タイプ04である。嗜好タイプの項目数は、図13の処理で生成したクラスタの数と一致する。
図17は、図3における典型嗜好モデル抽出ステップ404のフローチャートの一例を示す。典型嗜好モデル抽出プログラム111は、当該フローチャートに従って動作する。典型嗜好モデル抽出プログラム111は、嗜好木クラスタリングステップ403で生成した各クラスタを代表する嗜好木モデルのパラメータを算出する。
図17の例では、典型嗜好モデル抽出プログラム111は、各クラスタ内の個人嗜好木の距離を比較し、クラスタの中心にもっとも近い個人嗜好木を、そのクラスタを代表する典型嗜好木として抽出する。以下、図17のフローチャートの詳細を説明する。
ステップ1801において、典型嗜好モデル抽出プログラム111は、典型嗜好モデル抽出のための分析で用いるデータを取得する。具体的には、距離マトリクステーブル108及びグループテーブル109を取得する。
ステップ1802において、典型嗜好モデル抽出プログラム111は、取得したグループテーブル109において、最大となる典型嗜好木ID(典型嗜好タイプ番号)を探索し、典型嗜好タイプの数を算出する。ステップ1803、1809、1810はループのためのステップであり、ステップ1804から1808までを嗜好タイプ毎に繰り返すことを意味する。
ステップ1803において、典型嗜好モデル抽出プログラム111は、ループの初期値を設定しており、嗜好タイプ01を意味する。ステップ1809において、典型嗜好モデル抽出プログラム111は、次の典型嗜好タイプを設定する。ステップ1810において、典型嗜好モデル抽出プログラム111は、ループの終了条件を判定し、全ての典型嗜好タイプに関する処理が終われば、ループの繰り返しを終了する。
ステップ1804から1808において、典型嗜好モデル抽出プログラム111は、嗜好タイプaの典型嗜好木を選択する。ステップ1804において、典型嗜好モデル抽出プログラム111は、嗜好タイプaの嗜好木間の距離マトリクスを取得する。ステップ1804において、典型嗜好モデル抽出プログラム111は、グループテーブル109から嗜好タイプaに属する個人嗜好木IDを選択し、それら個人嗜好木ID間の距離データを距離マトリクステーブル108から取得し、嗜好タイプa内の距離マトリクスを生成する。
ステップ1805において、典型嗜好モデル抽出プログラム111は、嗜好タイプa内の距離マトリクスを、計量MDS法を用い、例えば2次元の座標値に変換する。座標値の次元数は任意に決めてよいし、次元数をおとさずに図13の処理ステップ1403で算出した嗜好得点ベクトルをそのまま座標値として用いてもよい。
ステップ1806において、典型嗜好モデル抽出プログラム111は、嗜好タイプaの重心座標を算出し、クラスタ内の中心を求める。重心は、例えば、クラスタ内の全座標ベクトルの平均値である。
ステップ1807において、典型嗜好モデル抽出プログラム111は、各個人嗜好木の座標と重心座標の距離を算出する。典型嗜好モデル抽出プログラム111は、クラスタの中心にもっとも近い個人嗜好木IDを探索する。ステップ1808において、典型嗜好モデル抽出プログラム111は、重心座標との距離が最も短い個人嗜好木を、嗜好タイプaの典型嗜好木として選択する。
ステップ1811において、典型嗜好モデル抽出プログラム111は、典型嗜好木ベクトルテーブル115を生成する。典型嗜好モデル抽出プログラム111は、ステップ1804から1808を全ての嗜好タイプについて繰り返した後に、各嗜好タイプの典型嗜好木のパラメータ情報を記述した典型嗜好木ベクトルテーブル115を生成する。生成された典型嗜好木ベクトルテーブル115の例は、図9を参照して説明した。
典型嗜好モデル抽出方法は、上記方法以外に、クラスタ内の個人嗜好木について、各購買時の商品購買確率の平均値を算出し、それに沿うように嗜好木モデルを再構築してもよい。
図18は、図3における購買者分布算出ステップ406のフローチャートの一例を示す。購買者分布算出プログラム112は、当該フローチャートに従って動作する。購買者分布算出プログラム112は、各店舗、各予測期間について、それぞれの典型嗜好タイプにおける商品購買数の予測分布を算出する。
図18は、ある一つの関連商品群(競合商品群)に関する商品購買数の予測分布を算出するフローチャートを示す。複数の関連商品群が存在する場合、購買者分布算出プログラム112は、それぞれの競合商品群について、同様の処理を行う。
図18において、ステップ1901、1909、1910は、店舗に関するループを示すステップである。ステップ1902、1907、1908は、予測期間に関するループを示す。これら二つのループは入れ子構造を有する。購買者分布算出プログラム112は、ステップ1903から1906で、各店舗、各予測期間についての購買者分布を算出する。
ステップ1901において、購買者分布算出プログラム112は、店舗に関するループ処理の初期値を設定する。ステップ1909において、購買者分布算出プログラム112は、次の店舗IDを設定する。ステップ1910において、購買者分布算出プログラム112は、店舗に関するループの終了条件を判定する。全ての店舗に関する処理が終われば、このループの繰り返しを終了する。
ステップ1902において、購買者分布算出プログラム112は、予測期間に関するループの初期値を設定する。ステップ1907において、購買者分布算出プログラム112は、次の予測期間を設定する。ステップ1908において、購買者分布算出プログラム112は、予測期間に関するループの終了条件を判定する。全ての店舗に関する処理が終われば、このループの繰り返しを終了する。
ステップ1903から1906において、購買者分布算出プログラム112は、舗IDがs、予測期間がtの場合の典型嗜好タイプ毎の購買者分布ベクトルを生成する。ステップ1903において、購買者分布算出プログラム112は、予測期間テーブル137からt番目の予測期間を取得する。
ステップ1904において、購買者分布算出プログラム112は、個人ID付POSデータ103から、店舗sにおける予測期間と合致する日付の購買データを取得する。予測期間が、例えば日曜日の8:00−12:00の場合、購買者分布算出プログラム112は、店舗sの購買データから、日曜日の8:00−12:00の間に購買された関連商品群に関するデータだけを選択する。
ステップ1905において、購買者分布算出プログラム112は、選択した購買データの全顧客IDについてクラスタ寄与率ベクトルを取得する。ステップ1906において、購買者分布算出プログラム112は、購買データにおける全商品のクラスタ寄与率ベクトルを足し合わせ、期間中の商品購買者分布ベクトルを生成する。一つの商品のクラスタ寄与率ベクトルは、当該商品を購入した購買者のクラスタ寄与率ベクトルである。例えば、ある日曜日の8:00−12:00の購買データを一つのデータセットとして、データセット内の全商品のクラスタ寄与率ベクトルを足し合わせる。
全ての日曜日の8:00−12:00の期間について同様の処理を行い、それぞれで足し合わせたクラスタ寄与率ベクトルの平均値を算出し、期間中の商品購買者分布ベクトルとするなどの方法が考えられる。ステップ1903から1906は、全ての予測期間、全ての店舗について繰り返される。
ステップ1911において、購買者分布算出プログラム112は、上記の分析結果から、購買者分布データ114を生成する。この処理で生成される購買者分布データ114の例は、図10を参照して説明した。
図19は、店舗内サーバ102における店舗売上分析プログラム132のフローチャートを示す。ステップ2001において、店舗売上分析プログラム132は、発注者からの入力条件116を取得する。ステップ2002において、店舗売上分析プログラム132は、中央管理サーバ101から、典型嗜好木ベクトルテーブル115を取得する。
ステップ2003において、店舗売上分析プログラム132は、中央管理サーバ101の商品マスタデータ113及び購買者分布データ114から、必要なデータを取得する。つまり、店舗売上分析プログラム132は、発注者から取得した入力条件116を踏まえ、予測対象の商品群に関する商品マスタデータと、対象となる予測期間と商品群に関する購買者分布データとを取得する。
ステップ2004において、店舗売上分析プログラム132は、予測条件を設定する。店舗売上分析プログラム132は、取得した発注者からの入力条件116、商品マスタデータ、購買者分布データから、販売数予測、発注量推定などに用いるデータテーブルを生成する。ステップ2004の詳細は、図21を参照して後述する。
ステップ2005において、店舗売上分析プログラム132は、商品販売数/売上を予測する。ステップ2005の詳細は、図27を参照して後述する。ステップ2006において、店舗売上分析プログラム132は、発注量及び利益を算出する。ステップ2006の詳細は、図33を参照して後述する。
ステップ2007において、店舗売上分析プログラム132は、嗜好傾向を分析する。店舗売上分析プログラム132は、対象となる予測期間と商品群に関する来店者の嗜好タイプの特徴を分析する。ステップ2007の詳細は、図38を参照して後述する。
ステップ2008において、店舗売上分析プログラム132は、予測結果117を表示する。ステップ2005、2006、2007のそれぞれについて、予測結果117が画像に表示される。
ステップ2009において、店舗売上分析プログラム132は、条件変更入力を受け付ける。店舗売上分析プログラム132は、予測結果表示画像に対する入力を受け付けて、ステップ2003に戻る。
それぞれの予測結果の表示画像は、発注者からの条件変更入力を受け付けるための受付セクションを含む。結果表示画像上の条件変更の例は後述する。ステップ2009からステップ2003に戻ると、店舗売上分析プログラム132は、変更された入力条件に応じて、中央管理サーバ101から商品マスタデータ、購買者分布データを再取得する。
以下では図19のフローチャートにおける各ステップの詳細を述べる。図20は、ステップ2001における、発注者からの入力条件取得画像の一例を示す。発注者からの入力条件116は、仕入れ候補の商品群、すなわち予測対象となる商品群、各商品の商品特性の条件のうち発注者が変更可能な特性(例えば価格など)の基準値、最小発注単位など発注の際の制約条件、などを含む。この他に、予測対象となる期間や、嗜好タイプ分析を行うが販売数予測を行わないといった、分析内容の制約条件の入力も受け付ける。
入力受付セクション2101は、予測期間に関する入力のための、予測期間候補テーブル2102を示す。入力受付セクション2103は、仕入れ候補の商品群に関する条件を受け付ける。条件入力受付セクション2103は、候補商品の選択方法を選択するためのチェックボックス2105、2106を含む。
チェックボックス2105は、商品特性から選ぶためのチェックボックスであり、発注者は、これを選択すると、例えば、価格帯や産地、材料などから仕入れ候補の商品を選択できる。
チェックボックス2106は、商品カテゴリから選ぶためのチェックボックスである。チェックボックス2133、2134、2135は、選択可能な商品カテゴリを示す。チェックボックス2106が選択されている場合、チェックボックス2133、2134、2135が表示される。チェックボックス2133、2134、2135は、それぞれ、お弁当、惣菜、冷凍食品を示す。テーブル2107は、選択候補を示す。
商品選択条件に関する入力受付チェックボックス2105、2106、2133、2134、2135の入力に対して、条件に沿う商品の商品名が、テーブル2107において示される。商品選択条件に関する入力受付セクションは、この他に、例えば、発注履歴からの選択を受け付けてもよい。
ボタン2115は、候補商品の選択実行ボタンである。表示セクション2108は、選択済み商品を表示する。入力受付セクション2109は、表示されている商品選択を変更するための入力を受け付ける。
入力受付セクション2110は、テーブル2107に表示される選択候補商品の商品特性や発注量の制約条件に関する入力を受け付ける。表示セクション2111は変更を受け付ける商品特性名を表示し、図21の例では、価格を表示している。スクロールバー2112は、価格変更用のスクロールバーである。
表示セクション2113は、発注量の制約条件に関する情報を表示し、図21の例では、最小発注単位を表示している。入力受付セクション2114は、最小発注単位の個数の入力を受け付ける。発注者は、商品特性の変更に関して、例えば、お弁当を製造する加工工場を選択し、お弁当内の付け合わせのおかずを変更することができる。発注の際のその他の制約条件として、例えば、最大発注量の制限がある。これらに関する入力受付セクションを付け加えてもよい。
入力条件取得画像は、価格や製造元に関する過去の設定値、変更を受け付けない商品特性の基準値やマグロ丼の過去の販売数、発注数などを、発注者が商品選択をする際の参考情報として表示してもよい。
入力受付セクション2116は、分析対象に関する条件の入力を受け付ける。この入力に応じて、図19の店舗売上分析における、商品販売数/売上予測ステップ2005(図27)、発注量/利益算出ステップ2006(図33)、嗜好傾向分析ステップ2007(図38)の分析条件や表示条件が決定される。
条件設定セクション2117は、嗜好傾向分析ステップ2007(図38)に関する条件設定を受け付ける。チェックボックス2118、2119、2120は、特に詳細に分析する商品特性を選択するためのチェックボックスである。具体的には、チェックボックス2118は魚、チェックボックス2119は肉、チェックボックス2120は野菜を選択するためのチェックボックスである。この他、価格、内容量などの商品特性を加えてもよい。
チェックボックス2121は、嗜好タイプ分析をするかしないかを選択するためのチェックボックスである。分析をしない場合、嗜好傾向分析ステップ2007は省略してもよい。
条件設定セクション2122は、商品販売数/売上予測ステップ2005に関する条件設定を受け付ける。チェックボックス2123、2124は、予測するか否かを選択可能な指標の例であり、2123は売上、2124は廃棄量である。チェックボックス2125は、販売数予測をするかしないかを選択するためのチェックボックスである。
条件設定セクション2126は、発注量/利益算出ステップ2006に関する条件を設定するためのセクションである。チェックボックス2127、2128、2129、2130は、分析するか選択可能な指標を示す。チェックボックス2127は発注量、チェックボックス2128は設定価格、チェックボックス2129は商品ラインナップ、チェックボックス2130は新商品の各指標の選択を可能とする。
チェックボックス2131は、発注量/利益算出(ステップ2006)を行うか否かを選択するためのチェックボックスである。チェックボックス2131が選択されている場合、発注量/利益算出ステップ2006は行わなくてもよい。2131と2125がどちらも選択されている場合、商品販売数/売上予測ステップ2005は行わなくてもよい。
ボタン2132は予測実行ボタンであり、ボタン2132が押されると、図19のステップ2001で、システムは画像上に表示された入力条件を取得する。
図21は、図19における予測条件設定ステップ2004のフローチャートの一例を示す。店舗内サーバ102の予測条件設定プログラム118は、当該フローチャートに従って動作する。
予測条件設定プログラム118は、発注者の入力条件から予測対象の商品群と予測期間、商品特性に関する制約条件、その他分析条件に関する制約条件を選択し、中央管理サーバ101の商品マスタデータ113と購買者分布データ114から発注者の入力条件に応じたデータを取得する。予測条件設定プログラム118は、これらを入力として、商品特性ベクトルテーブル119、利用者分布ベクトルテーブル120、発注分析条件テーブル121、嗜好分析条件テーブル122を生成する。
ステップ2201から2204は、商品特性ベクトルテーブル119を生成する。ステップ2201において、予測条件設定プログラム118は、入力条件116から予測対象の商品群を取得する。予測条件設定プログラム118は、図20のセクション2108に表示する商品名を商品IDと関連付け、商品IDテーブルを生成する。
ステップ2202において、予測条件設定プログラム118は、ステップ2201で生成した商品IDテーブルの各商品について、商品マスタデータ113から、商品特性ベクトルを含む商品データを取得する。
ステップ2203において、予測条件設定プログラム118は、入力条件に応じて商品の特性値を変更する。すなわち、予測条件設定プログラム118は、取得した商品特性ベクトルのうち、発注者からの入力条件において変更された特性を、入力条件通りの値に変更する。図20の例において、発注者は、セクション2111において価格を変更可能である。
ステップ2204において、予測条件設定プログラム118は、対象商品の商品データを格納する商品特性ベクトルテーブル119を生成する。ステップ2203で、特性データが変更されている場合、変更された特性データが格納される。一つの商品特性ベクトルテーブル119は、一つの商品ラインナップ(同時販売予定の競合商品群)に対応する。つまり、図20の例において、一つの商品特性ベクトルテーブル119は、セクション2108の全商品の商品データで構成される。
予測条件設定プログラム118は、複数の商品ラインナップにおいて最適な商品ラインナップを推薦する場合、それぞれの商品ラインナップに一つずつ商品特性ベクトルテーブル119を生成する。
ステップ2205から2207は、分析に関する条件テーブル121、122を生成する。ステップ2205において、予測条件設定プログラム118は、入力条件116から分析に関する制約条件を選択する。
ステップ2206において、予測条件設定プログラム118は、発注分析条件テーブル121を生成する。発注分析条件テーブル121の詳細は、図23を参照して後述する。ステップ2207において、予測条件設定プログラム118は、嗜好分析条件テーブル122を生成する。嗜好分析条件テーブル122の詳細は、図24を参照して後述する。
ステップ2008から2210は、利用者分布ベクトルテーブル120を生成する。ステップ2208において、予測条件設定プログラム118は、入力条件116から予測期間、競合商品範囲の条件を取得する。競合商品範囲は、例えば、対象商品の商品カテゴリIDと一致する。対象の商品カテゴリは一つとは限らない。
ステップ2209において、予測条件設定プログラム118は、購買者分布データ114から利用者分布ベクトルを取得する。利用者分布データは、購買者分布データ114において、予測期間及び商品カテゴリが対象の予測期間及び商品カテゴリと一致するデータである。ステップ2210において、予測条件設定プログラム118は、利用者分布ベクトルテーブル120を生成する。
以下では、予測条件設定ステップ2004において生成されるデータ、つまり、商品特性ベクトルテーブル119、利用者分布ベクトルテーブル120、発注分析条件テーブル121、嗜好分析条件テーブル122の例を説明する。
図22は、商品特性ベクトルテーブル119の例を示す。商品特性ベクトルテーブル119の項目は、図6の商品マスタデータ113と同じである。各行の商品は、予測対象の商品である。図22の例において、レコード2301が唐揚弁当、レコード2302がマグロ丼、レコード2303がうどんを示す。これらは、以降の分析の対象となる商品群である。商品特性の項目の値は、入力条件により変更されている場合がある。商品マスタデータ113における同じ商品IDに関する情報とは一致しないこともある。
図22の商品特性ベクトルテーブル119の例は、一つ商品ラインナップのためのテーブル構成を有する。複数の商品ラインナップにおいて最適な商品ラインナップを推薦する場合、予測条件設定プログラム118は、候補となる商品ラインナップごとに、商品特性ベクトルテーブル119を生成する。
図23は発注分析条件テーブル121の例を示す。図20の例において、セクション2113で入力される条件が発注分析条件テーブル121に反映される。項目2401は入荷個数制限に関する条件を示す。項目2402は、制限がある商品種類の数を示す。項目2403は、制限のある一つ目の商品に関する項目である。項目2405は、商品ID、項目2406は注文数の最小単位、項目2407は注文数の最小個数である。最小個数は、少なくともこの個数以上は発注したいと発注者が考えている個数を意味する。
項目2408は注文数の最大個数で、これ以上は発注したくないと発注者が考えている個数である。項目2304は制限のある二つ目の商品に関する同様の項目である。項目2409は商品ID、項目2410は最小単位、項目2411は最小個数、項目2412は最大個数である。制限のない項目は、空白である。
この他、商品ラインナップの候補を考えるための制限を設けるため、陳列する棚のサイズや一つの棚に陳列したい商品種類といった条件を条件設定画像に追加し、発注者からの入力を発注分析条件テーブル121に加えてもよい。
図24は嗜好分析条件テーブル122の例を示す。項目2501は対象商品カテゴリであり、項目2502は対象商品特性である。項目2502の対象商品特性は、詳細に嗜好性を分析する商品特性である。図20の例において、セクション2103において選択された商品の情報と、セクション2116における入力情報が、嗜好分析条件テーブル122に反映される。
図25は利用者分布ベクトルテーブル120の例を示す。項目は、図10の購買者分布データ114と同一である。項目1101は、入力条件と一致する予測期間であり、項目1102は分析する店舗の店舗ID、項目1103は入力条件と一致するカテゴリIDである。典型嗜好タイプの項目1104の値は、購買者分布データ114における同一予測期間、同一店舗ID、同一カテゴリIDの同項目の値と一致する。つまり、各レコードは、各嗜好タイプの購買者が、予測期間において、商品カテゴリIDに属する商品を購入する数を示す。
図26は、商品販売数予測のために、嗜好タイプ(典型嗜好木)ごとに、各商品の購買確率を算出する処理を説明する図である。購買確率は、例えば、商品販売数/売上予測ステップ2005(図27の詳細フロー参照)において算出される。
図26の例は、嗜好タイプ01における各商品の購買確率の算出を示している。嗜好木モデル2701は、嗜好タイプ01の嗜好木モデルである。商品群2702は、予測対象となる商品群である。本例では、2種類の商品が示されているが、種類の数は限定されない。特性ベクトル2703は、商品マスタデータ113から各商品の特性情報を取得して生成する。
予測対象となる商品群の特性ベクトル2703は、全て同一の要素から構成されており、特性ベクトル間で異なる種類の要素が存在することはない。プロセス2704は、各商品の特性ベクトルxiから、各商品の購買確率piを算出する。プロセス2704は、プロセス2706、2708を含む。
プロセス2706は、嗜好タイプ01にとっての各商品の嗜好度合いを点数評価する。嗜好木モデル2701は、商品の商品特性ベクトルxiから、入力した商品の嗜好得点νiを出力する。得点が高いと嗜好タイプ01がその商品を嗜好しやすいことを意味し、低い場合はその商品を嗜好しにくいことを意味する。
プロセス2708は、商品間の嗜好得点νiを比較し、各商品の購買確率(選択確率)を算出する。得点が高い商品のほうが購買されやすい。プロセス2708は、それぞれの商品の購買確率2705を算出する。図26の例では、プロセス2708は、ロジットモデルを用いて各商品の購買確率を算出している。異なる誤差項を仮定して、プロビットモデルを用いて購買確率を算出してもよい。
図27は商品販売数/売上予測ステップ2005のフローチャートの一例を示す。商品販売数/売上予測プログラム123は、当該フローチャートに従って動作する。ステップ2801において、商品販売数/売上予測プログラム123は、仕入れ候補となる商品群の特性ベクトル、商品カテゴリID、予測期間を取得する。商品カテゴリID及び特性ベクトルは、商品特性ベクトルテーブル119から取得され、予測期間は発注者の入力データ116から取得される。
ステップ2802において、商品販売数/売上予測プログラム123は、中央管理サーバ101から対応する典型嗜好木群を取得し、利用者分布ベクトルテーブル120から予測期間の利用者分布ベクトルを取得する。商品販売数/売上予測プログラム123は、上記商品カテゴリIDに対応する典型嗜好木群を取得する。
ステップ2803において、商品販売数/売上予測プログラム123は、嗜好タイプにおける各商品の嗜好得点νi、購買確率piを、各商品の特性ベクトル及び取得した典型嗜好木を使用して算出する。嗜好得点、購買確率の算出方法は、図26を参照して説明した通りである。
ステップ2804において、商品販売数/売上予測プログラム123は、嗜好評価関数の重み係数に基づき、各嗜好タイプにおける各商品の購買因子を特定する。例えば、商品販売数/売上予測プログラム123は、重い係数のみ又は重み係数と商品特性ベクトルにおける特性値との積(商品特性毎の嗜好得点)に基づき、商品特性における購買因子を特定することができる。
例えば、後述する例において、商品販売数/売上予測プログラム123は、嗜好タイプの典型嗜好木により商品に対して決まる重みベクトルαiの要素における正の最大値と負の最小値を、それぞれ、Max購買因子とMin購買因子と決定する。商品販売数/売上予測プログラム123は、重みベクトルαiの各重み係数と各商品特性値との積における正の最大値と負の最小値を、それぞれ、Max購買因子とMin購買因子と決定してもよい。
ステップ2805において、商品販売数/売上予測プログラム123は、需要変動因子マトリクス125を生成する。需要変動因子マトリクス125は、ステップ2084で決定された、各商品の各嗜好タイプにおけるMax購買因子とMin購買因子を格納する。需要変動因子マトリクス125の詳細は、図28を参照して後述する。需要変動因子マトリクス125は、図30を参照して後述する、購買促進要因(アピールポイント)、購買抑制要因(ウィークポイント)、商品特性変化と嗜好性変化との間の関係等の表示のために参照される。
ステップ2806において、商品販売数/売上予測プログラム123は、ステップ2803で算出した購買確率と、ステップ2802で取得した商品カテゴリIDの利用者分布ベクトルに基づき、商品販売数を予測する。商品の予測販売数は、当該商品の各嗜好タイプの購買確率と、利用者分布ベクトルにおける購買数(図25を参照)と、の積和で表される。
さらに、ステップ2807において、商品販売数/売上予測プログラム123は、予測販売数を格納する、販売数予測結果テーブル124を生成する。ステップ2808において、商品販売数/売上予測プログラム123は、商品販売数予測結果を表示する。商品販売数の予測方法及び販売数予測結果テーブル124の詳細は、図29を参照して後述する。
図28は、需要変動因子マトリクス125の一例を示す。項目2901は商品ID、項目2902は典型嗜好タイプ別の重みベクトル、項目2905は典型嗜好タイプ別のMax購買因子における重み関数、項目2910は典型嗜好タイプ別のMin購買因子における重み関数、を示す。
項目2903、2904は、典型嗜好タイプ別の重みベクトルにおける各典型嗜好タイプの番号である。項目2903の各セルは、嗜好タイプ01の同じ行の商品IDに対する商品評価関数の重みベクトルを記述する。項目2904の各セルは、嗜好タイプ02の同じ行の商品IDに対する商品評価関数の重みベクトルを記述する。同様にして、全ての嗜好タイプに関して、商品評価関数の重みベクトルが記述される。
項目2906は、典型嗜好タイプ別のMax購買因子に対する重み関数2905、の嗜好タイプ01に関するデータを示し、因子名2907、基準ベクトル2908、重み行列2909からなる。
因子名2907は、嗜好タイプ01において同一行の商品IDに対する重みベクトルのMax購買因子の因子名を示す。因子名2907は、重みベクトル(商品評価関数)において、最も購買インパクトの大きい(重み係数の正の最大値)特性を意味する。
基準ベクトル2908は、因子名2907の特性が嗜好タイプ01の典型嗜好木の分岐条件に含まれる場合に、分岐の閾値となる基準値を小さい順に並べたベクトルである。例えば、典型嗜好木が、価格について二つの分岐を含み、それらの閾値が500円と1000円である場合、基準ベクトルは、(500、1000)である。
重み行列2909は、商品の特性ベクトルにおいて因子名2907の値を変化させた場合の重みベクトルの変化を記録するための行列である。具体的には、基準ベクトル2908の各閾値の前後で異なる商品評価関数の重みベクトルを順に並べた行列である。例えば、基準ベクトルが(500、1000)であるとする。重み行列は、商品価格以外の商品特性が同一であり、商品価格が500未満、500以上1000円未満、1000円以上である三つの商品特性ベクトルが対応する商品評価関数の重みベクトルで構成される。
項目2911は、典型嗜好タイプ別のMin購買因子に対する重み関数2910の、嗜好タイプ01に関するデータを示し、因子名2912と基準ベクトル2913と重み行列2914からなる。図28のテーブルは、MaxとMinの購買因子に関する関数のみ記述している。さらに、正の因子及び負の因子のそれぞれについて、2番目、3番目にインパクトのある因子に関する情報が含まれていてもよい。
図29は、商品販売数の予測結果テーブルの例を示す。項目3001は商品ID、項目3002は販売数の予測結果、項目3003は価格、項目3004は典型嗜好タイプ別の購買確率を示す。上述のように、商品の予測販売数は、当該商品の各嗜好タイプの購買確率と、利用者分布ベクトルにおける購買数と、の積和で表される。
項目3005、3006は各典型タイプを示す。項目3005は嗜好タイプ01の購買確率、項目3006は嗜好タイプ02の購買確率を示す。同様にして、全ての嗜好タイプに関する購買確率が示される。
図30は、販売数予測結果の表示画像の例を示す。結果表示プログラム129は、販売数予測結果テーブル124、需要変動因子マトリクス125を参照して、販売数予測結果のGUI画像を生成し、ディスプレイ307において表示する。
セクション3101は予測条件を表示し、設定された予測期間と商品カテゴリを表示する。セクション3102は、購買確率予測結果を表示し、嗜好タイプと商品毎の購買確率のグラフを表示する。グラフは、購買確率の軸3105、嗜好タイプの軸3127、予測対象商品の軸3128、を有する。
セクション3106、3107、3108はそれぞれ、嗜好01、嗜好02、嗜好03を表す。嗜好タイプは中央管理サーバ101における購買嗜好モデル分析プログラム133で分類されたものであり、タイプの数は3個に限らない。
セクション3109、3110、3111は、軸3128上の商品名を表示する。セクション3109は唐揚弁当、セクション3110はマグロ丼、セクション3111はうどんを示す。一度に予測する商品数は3個に限らない。
バー3104は、嗜好タイプ毎の各商品の購買確率を表す。セクション3103は、購買因子影響度を表示する。
この例では、セクション3103において、嗜好Aタイプのマグロ丼を購買する際に購買を促進させる商品特性(アピールポイント)と購買を抑制させる商品特性(ウィークポイント)を示している。本例において、アピールポイントとウィークポイントは、それぞれ、Max購買因子とMin購買因子に対応する。
セクション3103は、嗜好Aにおけるマグロ丼の購買確率のバー3104がクリックされることで表示され、もう一度クリックされるとクローズする。他の購買確率のバーも同様の機能を持つ。十分に広い画像であれば、全ての情報を1画像に表示させてもよい。
セクション3129は、アピールポイントとなる商品特性を表示する。図30の例では、価格がアピールポイントであり、嗜好タイプ01の、マグロ丼を評価する商品評価関数の価格に対する重みが正であり、かつ、大きいことを意味する。この例は価格のみ表示しているが、複数の特性を表示してもよい。
セクション3130は、ウィークポイントとなる商品特性を表示する。図30の例では、鮮度がウィークポイントであり、嗜好タイプ01のマグロ丼を評価する商品評価関数の鮮度に対する重みが負であり、絶対値が大きいことを意味する。ウィークポイントも、複数の特性を表示してもよい。
セクション3114、3115は、購買因子影響度表示セクション3103における商品特性に対する、より詳細な嗜好傾向を表示する。セクション3114は、嗜好Aタイプの価格に対する嗜好性を表示しており、価格のみ変更した場合の商品魅力度の得点をグラフで表示する。商品魅力度は、嗜好得点から決まり、例えば、嗜好得点と一致する。点3116は、現在設定されているマグロ丼の価格を示す。
セクション3115は、嗜好Aタイプの鮮度に対する嗜好性を表示しており、鮮度のみ変更した場合の商品魅力度の得点をグラフで表示する。点3117は、マグロ丼の現在価格を示す。
画像上に表示される情報過多を防ぐため、セクション3114は、セクション3129をクリックに応答して、開き、閉じてもよい。セクション3115も同様である。
チェックボックス3112、3113は、予測条件の変更を受け付ける。チェックボックス3112がチェックされると、価格の変更受付セクションが表示され、発注者は、価格変更に対する予測結果の差を画像上で確認することができる。価格変更に対する表示画像の変化は後述する。
チェックボックス3113をチェックすると、生産日の変更が可能となる。この他の予測条件の変更受付セクションが用意されていてもよい。例えば、商品数を増やしたり減らしたりするための変更受付セクションを、商品名表示セクションに付け加えてもよい。
セクション3118は、トータルの販売数及び売上の予測結果を表示する。セクション3119は、予測販売数に関するグラフを表示する。セクション3120は、唐揚弁当の予測販売数、セクション3121はマグロ丼の予測販売数、セクション3122はうどんの予測販売数を示す。
セクション3123は、予測売上に関するグラフを表示する。セクション3124は唐揚弁当の予測売上、セクション3125はマグロ丼の予測売上、3126はうどんの予測売上を示す。
図30のチェックボックス3112、3113が示すように、本システムは、分析結果の表示画像上で、予測条件の変更を受け付ける。以下では、予測条件の変更と、それによる表示画像の遷移を説明する。
図31は、販売数予測結果の表示画像において販売数予測条件の変更入力があった場合の処理のフローチャート例を示す。ステップ3201において、結果表示プログラム129は、販売数予測結果を表示する。ステップ3202において、条件変更入力受付プログラム131は、商品特性条件変更に関する発注者からの入力を受け付ける。
ステップ3203において、予測条件設定プログラム118は、条件変更入力受付プログラム131が受け付けた入力に応じて、予測条件を変更し、新しい商品特性ベクトルテーブル119を生成する。
ステップ3204において、商品販売数/売上予測プログラム123は、商品特性ベクトルテーブル119を使用して商品販売数を予測し、販売数予測結果テーブル124、需要変動因子マトリクス125を生成する。結果表示プログラム129は、生成した販売数予測結果テーブル124、需要変動因子マトリクス125を利用し、販売数予測結果画像の表示内容を変更する。
ステップ3201に関し、図30に示したように、販売数予測結果画像は、チェックボックス3112、3113のような条件変更受付セクションを有し、発注者がそれをクリックすると、結果表示プログラム129は、例えば価格の変更用スクロールバーのような、商品特性条件変更の入力受付セクションを表示する。
ステップ3202において、条件変更入力受付プログラム131は、商品特性条件変更の入力受付セクションにおいて商品特性条件の変更入力があった場合に、その入力を受け付ける。この他、例えば予測対象の商品群の変更を可能とするセクションを用意し、予測対象の商品群変更の入力を受け付けてもよい。
入力受け付けから条件変更後の画像表示までの時間の短縮のために、店舗売上分析プログラム132は、全ての分析を終えた後に結果を表示するのではなく、結果が算出された部分から順次変更を表示してもよい。
例えば、図26の商品販売数予測のステップの中で、店舗売上分析プログラム132は、ステップ2702のように、発注者からの商品特性条件の変更に影響されない部分のデータはあらかじめ保持し、ステップ2703で購買確率を算出し、それをそのまま表示結果に反映し購買確率を表示する。これにより、応答時間を短縮できる。
図32A、32Bは、販売数予測結果における商品特性条件の変更に対する画像遷移の一例を示す。図30と同一の要素には同一符号が付されている。以下では、図30との相違点を主に説明する。図32Aにおいて、セクション3316は、変更前の表示画像の一例を示す。セクション3102の購買確率予測結果と、セクション3118のトータルの販売数は、売上の予測結果を示す。
図32Aにおいて、セクション331は、価格に関する予測条件の変更受付のチェックボックス3112にチェックが入れられた後の画像を示している。セクション3301は、価格条件の変更受付セクションである。スクロールバー3302は、価格条件の変更受付セクション3301において、実際に価格の基準値を入力するためのスクロールバーである。初期値は、変更前に設定されている価格の位置を示している。
図32Bにおいて、セクション3317は、変更後の表示画像の一例を示す。スクロールバー3303が示すように、本例ではマグロ丼の価格は変更前よりも高く設定されている。この時、嗜好01のマグロ丼の購買確率は、変更前確率3104から変更後確率3304に低下する。この例のように、購買確率のセクションは、商品特性の変化に応じた購買確率の変化をバーの長さを変更することで表現する。
変化の方向性を示す矢印3315は、購買確率が高くなる場合は上向き、低くなる場合は下向きである。画像の見やすさに応じて、矢印は表示しなくてもよい。マグロ丼の商品特性の条件が変わると、商品間の競合状況が変化するため、マグロ丼以外の商品に関しても、嗜好タイプ毎の購買確率が変化する。
例えば、図32Aにおいて、バー3313は、変更前の画像3316における、嗜好01の唐揚弁当の購買確率を表す。図32Bにおいて、バー3314は、変更後の画像3317における嗜好01の唐揚弁当の購買確率を表す。変更前購買確率3313と変更後購買確率3314を比較すると、変更後の購買確率のほうが、変更前購買確率が高い。
すなわち、マグロ丼の値段が上がったことで、嗜好01のタイプの人は、マグロ丼を以前よりも購買しなくなり、代わりに唐揚弁当を購買しやすくなるという傾向が示されている。このように、店舗売上分析プログラム132は、条件を変更していない商品の購買確率の変化も表示させることで、競合商品間の影響を表現する。
セクション3118において、販売数3119及び売上3123の予測結果も、購買確率の変化に合わせて変化する。図32Aにおいて、セクション3120〜3122は、それぞれ、変更前の唐揚弁当の販売予測数、変更前のマグロ丼の販売予測数、変更前のうどんの販売予測数を示している。
図32Bにおいて、セクション3305〜3307は、それぞれ、変更後の唐揚弁当の販売予測数、変更後のマグロ丼の販売予測数、変更後のうどんの販売予測数を示している。この例では、唐揚弁当のトータルの販売予測数は、マグロ丼の価格変更により増加し、マグロ丼とうどんの販売予測数は減少している。
図32Aの売上に関する表示セクション3123において、セクション3124〜3126は、それぞれ、変更前の唐揚弁当の売上予測金額、変更前のマグロ丼の売上予測金額、変更前のうどんの売上予測金額を示している。
図32Bの売上に関する表示セクション3123において、セクション3308〜3310は、それぞれ、変更後の唐揚弁当の売上予測金額、変更後のマグロ丼の売上予測金額、変更後のうどんの売上予測金額を示している。売上予測金額は、唐揚弁当とマグロ丼において増加し、うどんにおいて減少している。
セクション3311は変更前の売上のトータル予測金額を示しており、12000円である。セクション3312は変更後の売上のトータル予測金額を示しており、20000円である。トータル予測金額は、増加いている。売上の他、例えば(売上―仕入れ値)を利益として、利益に関する予測金額を表示してもよい。
図33は、図19のフローチャートにおけるステップ2006の最適発注量/発注商品推定ステップのフローチャート例を示す。本例は、最適発注量の推定を示す。最適発注量/発注商品推定プログラム126は、本フローチャートに応じて動作を示す。
ステップ3401において、最適発注量/発注商品推定プログラム126は、販売数の予測結果テーブル124を取得する。ステップ3402において、最適発注量/発注商品推定プログラム126は、在庫管理データ136を取得する。
ステップ3403において、最適発注量/発注商品推定プログラム126は、発注分析条件テーブル121を取得する。ステップ3404において、最適発注量/発注商品推定プログラム126は、予測される販売数と制約条件に基づき、発注量、在庫の廃棄量を算出する。制約条件がない場合、例えば、最適発注量/発注商品推定プログラム126は、下記の式2により最適発注量を決定する。
発注量=予測される販売数―在庫数+安全在庫 (式2)
それぞれの商品の発注量の最小単位に制限が存在する場合、最適発注量/発注商品推定プログラム126は、式3を満たす最小のxを求めることで最適発注量を決定する。
発注量=発注の最小単位の販売数×x
>予測される販売数―在庫数+安全在庫 (式3)
安全在庫はあらかじめ設定しておいてもよいし、発注者が入力画像において商品毎に設定してもよい。廃棄量は予測期間終了時点で廃棄する必要がある商品個数であり、予測される販売数と在庫数の差分を求めることで予測可能である。
ステップ3405において、最適発注量/発注商品推定プログラム126は、発注商品マトリクス130を生成する。ステップ3406において、結果表示プログラム129は、発注商品マトリクス130を参照して、発注推薦の画像を生成し、表示する。
ステップ3404において、最適発注量/発注商品推定プログラム126は、発注の最小単位が存在する場合に、品切れも加味して利益を最大化するように発注量最適化を行ってもよい。例えば、式3で算出された発注量で注文を行った場合に商品廃棄が存在する場合に、
発注の最小単位の販売数×x<予測される販売数―在庫数+安全在庫 (式4)
を満たす最大のxを求め、その商品が品切れた場合の他の商品の販売数を予測し、他の商品の発注量を決定する。
商品が品切れた場合の他の商品の販売数の予測方法は、例えば、当初の商品ラインナップから品切れた商品を省いた商品ラインナップにおける、各商品の購買確率を算出し、購買確率に基づき、残りの商品販売数を予測する。
最適発注量/発注商品推定プログラム126は、品切れを許す場合/許さない場合で、複数パターンの販売数予測を行い、商品発注における売上金額と仕入れに使った金額との差分を求める。最適発注量/発注商品推定プログラム126は、一部の商品は品切れするものの、総廃棄量を減らし、全体の利益を最大化させる発注量の組み合わせを検索する。
次に、発注商品推定の例を説明する。予測条件設定プログラム118は、複数の商品の組み合わせ方を受け付け、それぞれの組み合わせ方について商品特性ベクトルテーブル119を生成する。更に、商品販売数/売上予測プログラム123は、それぞれの商品特性ベクトルテーブル119について、商品販売数/売上予測を行い、販売数予測結果テーブル124を算出する。
最適発注量/発注商品推定プログラム126は、複数生成された販売数予測結果テーブル124それぞれについて、最適発注量推定とその際の利益を算出し、最も利益の高い商品の組み合わせ結果に関して発注商品マトリクス130を生成する。
発注者に発注商品を推薦する場合、最適発注量/発注商品推定プログラム126は、発注者が予測対象に指定していない商品に関しても予測を行い、発注を推薦してもよい。その場合、新しい商品候補の抽出方法は、全店舗在庫管理データ104からランダムに抽出する、購買数の多い嗜好タイプにとって嗜好得点が高い商品を探索して候補に加えるなどの方法が考えられる。また、類似した商品ばかりが陳列されないように、指定商品群との商品特性ベクトルの類似度を算出し、類似度の低いものを候補に加えるといった方法でもよい。
図34は店舗内サーバ102における在庫管理データ136の例を示す。在庫管理データ136の項目は、中央管理サーバ101における全店舗在庫管理データ104の項目と類似している。図34の例では、在庫管理データ136の項目は、全店舗在庫管理データ104の項目のうち、店舗IDの項目を除き、仕入れ値の項目3501を加えたものである。
図35は発注商品マトリクス130の例を示す。項目3601は商品ID、項目3602は推奨発注数、項目3603は推奨価格、項目3604は予想廃棄数、項目3605は陳列指定ありなしの情報を示す。項目3606は、予測される販売数を示す。項目3607は仕入れ値、項目3608は売上、項目3609は在庫数を示す。
この他、例えば利益や、過去仕入れたことがあるか否かの情報、発注者が予測対象に指定した商品か否かの情報などを加えてもよい。利益は、例えば下記の式5で算出できる。
(価格―仕入れ値)×販売数―仕入れ値×廃棄数 (式5)
図36は発注量/発注商品推薦処理結果の表示、及び、表示画像における発注者の入力に対する応答処理のフローチャート例を示す。ステップ3701において、結果表示プログラム129は、発注商品マトリクス130を取得する。ステップ3702において、結果表示プログラム129は、発注推薦画像を生成し、それを表示する。
ステップ3703において、条件変更入力受付プログラム131は、表示された画像に対する予測条件変更の入力を取得する。ステップ3704において、予測条件設定プログラム118は、予測条件を変更する。ステップ3705において、商品販売数/売上予測プログラム123は、商品販売数を予測し、販売数予測結果テーブル124を生成する。
最適な商品の組み合わせを探索する場合、ステップ3702において、商品販売数/売上予測プログラム123は、複数の商品特性ベクトルテーブル119のそれぞれについて販売数予測結果テーブル124を生成する。ステップ3706において、最適発注量/発注商品推定プログラム126は、発注量/利益算出し、発注商品マトリクス130を生成する。
図37A、37Bは発注商品推薦画像において発注者が入力を変更した際の画像遷移の例である。図37Aにおいて、セクション3801は変更前の画像を示し、図37Bにおいてセクション3802は変更後の画像を示す。
図37Aにおいて、セクション3803は、発注者の条件変更入力を受け付ける。本例では、指定商品の結果のみ表示するか否か、価格変更不可か否か、新商品提案ありか否かの3つの条件変更を示している。この他、例えば安全在庫の設定などその他の条件についても変更可能としてもよい。セクション3804は、指定商品名を表示し、発注者が予測対象として設定した商品名を示している。
セクション3817は、発注量推薦結果を示す。テーブルが、分析結果を示している。項目3805は商品名、項目3806は現在の在庫数、項目3807は推奨発注数、項目3808は価格、項目3809は予想廃棄数を示す。セクション3818は、トータルの売上/利益算出結果を示し、セクション3810は売上金額、セクション3811は利益の金額を示している。
図37Bのセクション3812において、"指定商品の結果のみ表示"の条件が解除されている。すなわち、変更後画像3802は、発注者が指定した商品以外の予測結果も表示し、高い利益を出す商品群の発注量を推薦している。
セクション3813は、分析の結果新しく推薦された商品を示し、この例では、ピザを示す。セクション3814は、新たにピザが推薦されたことを示す。セクション3814は省略してもよい。セクション3815は、ピザを発注し陳列した際に予測される売上金額を示し、セクション3816は、ピザを発注し陳列した際に予測される利益額を示す。変更前の金額と比較し、どちらも増加している。
図38は、図19のフローチャートにおける、嗜好傾向分析ステップ2007のフローチャート例を示す。ステップ3901において、嗜好傾向分析プログラム127は、嗜好分析条件テーブル122(図24参照)から対象商品カテゴリ、対象商品特性の情報を取得する。
ステップ3902において、嗜好傾向分析プログラム127は、中央管理サーバ101から、嗜好分析条件テーブル122の対象商品カテゴリに対応する典型嗜好木、及び、予測期間中の利用者分布ベクトルを取得する。ステップ3903において、嗜好傾向分析プログラム127は、利用者分布ベクトルから、対象商品カテゴリにおける各嗜好タイプの購入数の割合を算出する。
また、ステップ3904において、嗜好傾向分析プログラム127は、対象商品カテゴリの商品群の特性ベクトルを、商品特性ベクトルテーブル119から、または、中央管理サーバ101の商品マスタデータ113から取得する。全ての商品について特性ベクトルを取得してもよいし、一部の商品のみを対象としてもよい。一部の商品を対象とする場合、例えば、販売開始日時が最近のもの中から選択する、などの方法をとる。
ステップ3905において、嗜好傾向分析プログラム127は、各商品について嗜好タイプ(典型嗜好木)毎に嗜好得点を算出する。嗜好得点の算出は、図8を参照して説明した通りである。ステップ3906において、嗜好傾向分析プログラム127は、嗜好タイプ毎に嗜好得点上位三つの商品名を決定する。
また、ステップ3907において、嗜好傾向分析プログラム127は、ステップ3902で取得した典型嗜好木から、深さが2まで分岐構造を取得する。深さは任意に設定してよい。
ステップ3908において、嗜好傾向分析プログラム127は、取得した分岐構造の各下端ノードについて、それ以降の未取得の分岐を集約し、各選択された対象商品特性の重み係数の平均値を算出する。例えば、取得した分岐構造の一つの下端ノードに三つの嗜好木の葉ノードが属する、つまり、当該下端ノードの下に三つの商品評価関数が存在する場合、三つの商品評価関数おける対象商品特性(例えば肉)の重み係数の平均値を算出する。
ステップ3908において、嗜好傾向分析プログラム127は、対象商品特性に対する凡その嗜好傾向を把握するための分析を行う。嗜好傾向分析プログラム127は、重みの平均値を算出する代わりに、集約する分岐間の重みの符号に着目し、符号の一致率(負に一致が多い場合は一致率の符号を反転)を算出してもよい。
ステップ3909において、嗜好傾向分析プログラム127は、嗜好分析結果テーブル128を生成する。ステップ3910において、結果表示プログラム129は、嗜好分析結果画像を生成し、表示する。
図39は、嗜好分析結果テーブル128の一例を示す。項目4001は嗜好タイプ番号、項目4002は割合を示す。項目4002は、各典型嗜好タイプ番号の人の購買数割合であり、全嗜好タイプの値を加算すると1になる。購買数割合の比は、利用者分布ベクトルの数値の比と一致する。項目4003は上位商品名であり、嗜好得点の高い商品及びその順位を記載する。
項目4006は、嗜好得点が1位の商品名、項目4007は嗜好得点が2位の商品名、項目4008は嗜好得点が3位の商品名、を示す。本例は3位の商品までしか記載しないが、4位以下の商品情報も同様に示してもよい。
項目4004は、各嗜好タイプの典型嗜好木構造の概略情報を示し、あらかじめ指定されている深さまでの分岐条件の情報を記載する。図38のフロー例において、深さ2が指定されている。したがって、格納される分岐条件は分岐条件01(4009)、分岐条件02、分岐条件03である。分岐条件には関する情報は、図9の典型嗜好木ベクトルテーブル115で格納される項目と同一であり、項目4010は特性、項目4011は符号、項目4012はレベルを示す。項目4005は、ステップ3908で算出された重みを示し、対象商品特性に関する重み係数の平均値を格納する。
項目4005は、指定された深さで枝を切った典型嗜好木における、各葉ノードについて重み係数の平均値の情報を格納する。ここでの葉ノードは、枝が切断された位置のノードである。項目4004で定義される決定木(典型嗜好木の上部分岐構造)において、左から順に葉ノード番号がつけられている。
一つの葉ノードから到達する全ての評価関数における一つ商品特性の重み係数の平均値が、当該葉ノードにおける当該商品特性の重み平均値である。項目4016は葉ノード01に関する対象商品特性の重み情報を示し、項目4013が魚の重み平均値、項目4014は肉の重み平均値、項目4015は野菜の重み平均値を示す。
図38を参照して説明したように、重みの平均値の代わりに符号の一致率などを算出してもよく、この場合、項目4005の値は、符号の一致率を示す。
図40は、ある競合商品群に関して、ある店舗で購買する人の、嗜好タイプ分析結果の画像例を示す。表示画像4201は、2013/07/14 09:00−12:00にお弁当/お惣菜を購入する者の嗜好分析結果を示す。
セクション4214は、購買数割合グラフを表示し、各嗜好タイプの購買数割合を円グラフで表示する。セクション4202、4203、4204、4205、4206は、それぞれ嗜好01、嗜好02、嗜好03、嗜好04の購買数割合を表している。これらの値は、嗜好分析結果テーブル128の割合4002の値と一致する。
セクション4207は、嗜好タイプ02に関する詳細な嗜好性に関する情報を表示する。セクション4208は、嗜好タイプ02が購入しそうな商品を表示し、嗜好得点の高い三つの商品名を示す。これら商品は、嗜好分析結果テーブル128における嗜好タイプ番号02のエントリの情報と一致する。
セクション4209は、着目する商品特性に関する詳細な嗜好傾向を表示する。本例は、魚、肉、野菜の商品特性に関する嗜好性を表示している。セクション4209は、最大深さ2までの決定木の分岐条件を表示し、かつ葉ノードでは、魚、肉、野菜が購買に与える影響度を表示する。
影響度は、嗜好分析結果テーブル128における各商品特性の重み4005の値で決まる。重みの値が正であり、かつその絶対値大きい程、購買にプラスに影響する。一方、重みの値が負であり、その絶対値が大きい程、購買にマイナスに影響する。
セクション4210は、分岐条件を表示する。セクション4212は一つの葉ノードにおける商品特性が購買に与える影響度表示の例である。矢印の向きと数で購買への影響度を表示している。セクション4212は、重みや符号の一致率など数値で影響度を表現してもよい。矢印の数は、重み平均値と基準値を比較することで決定できる。
セクション4213は、葉ノードにおける商品特性の影響度を表す表示記号を説明する。セクション4211は、分析結果表示画像における発注者の条件変更入力受付セクションである。本例は、対象とする商品特性の変更をするか否かに関するチェックボックスを表示している。条件変更があった場合、店舗売上分析プログラム132は、予測条件を変更して、嗜好分析をもう一度行う。
以上のように、本実施形態は、嗜好モデルに基づき複数の競合商品が存在する中での購買者の購買を予測し、販売実績の少ない商品や複数の商品間の競合の影響を加味した各商品のより正確な販売数予測を迅速に行うことができる。
日々の発注では、発注者は、陳列する商品の組み合わせ、発注量、価格など様々な条件を検討して発注作業を行う。本実施形態は、単に与えられた一つの条件に対する予測結果を提示するだけでなく、様々な条件に対する結果(販売数や売上など)の予測と次に検討すべき条件を示唆することで、発注者による発注を効率的に支援する。
本実施形態は、過去の販売データを分析し、複数商品の組み合わせ条件や商品特性の組み合わせ条件の変更に素早く対応して、販売数の予測結果の他、各商品の購買促進/抑制要因や競合商品間の影響度を提示する。これにより、発注者は発注の際に、商品ラインナップ、新商品導入の有無、価格設定などを、効率よく検討することができる。
本実施形態は、商品特性に対する購買者の嗜好を分析し、その分析結果を提示する。これにより、発注者は、販売実績がない商品でも購買者にどのくらい嗜好されやすいかを予測できる。また、個人の嗜好度を複数商品間で比較し、その比較結果を提示する。これにより、発注者は、競合状況にある複数の商品の中でどの商品が購買されるかを予測できる。
本実施形態は、販売予測に際し、ある商品の購買を促進/抑制させる商品特性や他の競合商品の影響を推定する。これにより、発注者は商品の組み合わせ方や価格設定などを様々シミュレーションしながら、商品の種類と発注量を効率よく決定できる。
上記例は、個人嗜好木をクラスタリングして典型嗜好木を生成するが、システムは、個人嗜好木をクラスタリングすることなく、販売予測のための嗜好木として使用してもよい。販売予測の表示画像は、上記例に限定されない。上記例の一部のみが表示されてもてよい。本発明は、販売予測結果を表示せずに自動発注を行うシステムにも適用することができる。
実施形態2
実施形態1は、商品特性に対する購買傾向のみを分析して需要予測を行う事例を説明した。実施形態2は、その拡張として、気温、イベント情報といった外部の需要変動要因を考慮した需要予測システムについて説明する。図41は、本実施形態におけるシステム例の全体構成を示す。以下、実施形態1と異なる点を主に説明する。
中央管理サーバ101は、外部データ4101を蓄積し、外部データ4101は、入力データとして用いられる。中央管理サーバ101は、例えば、店舗ごとに、日々の気温、曜日、季節、特売日か否か、近隣地区のイベント情報といった商品特性以外のコーザル情報を蓄積している。この他、商品やユーザ依存で生じた割引情報などを個人ID付POSデータ4102の項目に加えてもよい。これらのデータは、各店舗内で蓄積され、収集されてもよいし、気象庁の気象予報データなど他機関から入手可能なデータであってもよい。
外部データ4101は、本実施形態において、個人嗜好モデル抽出プログラム4103と購買者分布算出プログラム4104によって、入力データとして用いられる。そして、これらのコーザルを加味した形で、購買者分布データ4106、典型嗜好木ベクトルテーブル4107が作成され、データベースに蓄積される。
個人嗜好モデル抽出プログラム4103は、気温などの外部要因の影響を加味した嗜好性のモデリングを行う。例えば、個人嗜好モデル抽出プログラム4103は、外部データ4101を商品特性データと同列に扱って嗜好モデルを構築する。
例えば、個人嗜好モデル抽出プログラム4103は、図11のステップ1205において取得する商品特性ベクトルに、気温などの外部要因の項目も付け加えて特性ベクトルを生成し、それ以降のステップを行う。これにより、ステップ1207における嗜好木の各葉ノードの商品特性の重みベクトルの算出で、商品特性だけでなく、気温などの外部要因が個人の購買動機に与える影響の重みも算出される。これにより、外部要因の影響を加味した嗜好性のモデルが構築できる。
購買者分布算出プログラム4104は、気温などの外部要因変化による各商品カテゴリの購買人数の変化を踏まえて、購買者分布を算出する。例えば、購買者分布算出プログラム4104は、同一温度帯における購買履歴に絞り、購買者分布を算出する。これにより、外部要因の違いを加味した購買者分布データ4108が生成され、データベースに蓄積される。
店舗内サーバ102が販売数を予測するに際、店舗売上分析プログラム132の予測条件設定プログラム118は、決められた温度帯などの外部条件に即した購買者分布データを取得して利用する。
店舗内サーバ102における発注者の入力条件4111は、外部要因に関する情報の入力を含む。例えば、近隣でのイベントの有無、天候の予測などである。季節や曜日、天気予報といった情報をあらかじめ蓄積しておき、これを用いた分析を行ってもよい。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明したすべての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
また、上記の各構成・機能・処理部等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード等の記録媒体に置くことができる。