(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022190454
(43)【公開日】2022-12-26
(54)【発明の名称】逆強化学習プログラム、逆強化学習方法、及び、情報処理装置
(51)【国際特許分類】
G06Q 30/02 20120101AFI20221219BHJP
G06Q 30/06 20120101ALI20221219BHJP
【FI】
G06Q30/02 300
G06Q30/06
【審査請求】未請求
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2021098783
(22)【出願日】2021-06-14
(71)【出願人】
【識別番号】000005223
【氏名又は名称】富士通株式会社
(74)【代理人】
【識別番号】100092978
【弁理士】
【氏名又は名称】真田 有
(74)【代理人】
【識別番号】100189201
【弁理士】
【氏名又は名称】横田 功
(72)【発明者】
【氏名】本間 克己
【テーマコード(参考)】
5L049
【Fターム(参考)】
5L049BB02
5L049BB72
(57)【要約】
【課題】顧客が購入していない商品を含む複数の商品間の関係性を取得する。
【解決手段】コンピュータが、第1の商品を購入した複数の顧客の移動軌跡11bを取得し、前記第1の商品を含む複数の商品のそれぞれと対応付けられた複数の位置が示す状態を含む報酬関数の前記第1の商品に対応付けられた第1の位置に対する第1のパラメータを固定した状態で、前記複数の顧客の移動軌跡に基づいた逆強化学習によって、前記報酬関数のパラメータ11dを更新し、更新後の報酬関数に含まれる第2の商品に対応する第2の位置に対する第2のパラメータに基づいて、前記第1の商品と前記第2の商品との関係を示す情報11eを出力する。
【選択図】
図3
【特許請求の範囲】
【請求項1】
第1の商品を購入した複数の顧客の移動軌跡を取得し、
前記第1の商品を含む複数の商品のそれぞれと対応付けられた複数の位置が示す状態を含む報酬関数の前記第1の商品に対応付けられた第1の位置に対する第1のパラメータを固定した状態で、前記複数の顧客の移動軌跡に基づいた逆強化学習によって、前記報酬関数のパラメータを更新し、
更新後の報酬関数に含まれる第2の商品に対応する第2の位置に対する第2のパラメータに基づいて、前記第1の商品と前記第2の商品との関係を示す情報を出力する、
処理をコンピュータに実行させる、逆強化学習プログラム。
【請求項2】
前記更新する処理は、前記第1のパラメータを所定値以上の値に設定した状態で、前記複数の顧客の移動軌跡に基づいた前記逆強化学習によって、前記報酬関数のパラメータを更新する処理を含み、
前記出力する処理は、前記更新後の報酬関数に含まれる前記第2のパラメータと、所定の閾値との比較結果に基づいて、前記情報を出力する処理を含む、
請求項1に記載の逆強化学習プログラム。
【請求項3】
前記出力する処理は、前記更新後の報酬関数に含まれる前記第2のパラメータが前記所定の閾値以上である場合に、前記第1の商品と前記第2の商品とが購買の相関を有することを示す前記情報を出力する処理を含む、
請求項2に記載の逆強化学習プログラム。
【請求項4】
前記複数の顧客は、前記第1の商品を購入した顧客のうちの所定の属性を有する顧客である、
請求項1~請求項3のいずれか1項に記載の逆強化学習プログラム。
【請求項5】
第1の商品を購入した複数の顧客の移動軌跡を取得し、
前記第1の商品を含む複数の商品のそれぞれと対応付けられた複数の位置が示す状態を含む報酬関数の前記第1の商品に対応付けられた第1の位置に対する第1のパラメータを固定した状態で、前記複数の顧客の移動軌跡に基づいた逆強化学習によって、前記報酬関数のパラメータを更新し、
更新後の報酬関数に含まれる第2の商品に対応する第2の位置に対する第2のパラメータに基づいて、前記第1の商品と前記第2の商品との関係を示す情報を出力する、
処理をコンピュータが実行する、逆強化学習方法。
【請求項6】
第1の商品を購入した複数の顧客の移動軌跡を取得し、
前記第1の商品を含む複数の商品のそれぞれと対応付けられた複数の位置が示す状態を含む報酬関数の前記第1の商品に対応付けられた第1の位置に対する第1のパラメータを固定した状態で、前記複数の顧客の移動軌跡に基づいた逆強化学習によって、前記報酬関数のパラメータを更新し、
更新後の報酬関数に含まれる第2の商品に対応する第2の位置に対する第2のパラメータに基づいて、前記第1の商品と前記第2の商品との関係を示す情報を出力する、
制御部を備える、情報処理装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、逆強化学習プログラム、逆強化学習方法、及び、情報処理装置に関する。
【背景技術】
【0002】
顧客の購買行動の解析において、顧客が購入する商品の購買相関を解析することが知られている。購買相関とは、例えば、商品Aが購入される際に商品Bも購入される傾向が高い、等の商品間の購入の関係性、例えば共起関係性、同時発生関係性を意味してよい。
【0003】
例えば、商品の購買相関が分かれば、店舗側は、相関の高い商品どうしを近くに配置して買い易くする、POP(Point of Purchase advertising)を用いて相関の高い商品の購買を誘発する、等の手法により、商品の売上向上を図ることができる。
【0004】
商品の購買相関は、例えば、POS(Point of sale;販売時点情報管理)システムから得られる、顧客が実際に購入した商品の情報である購買記録を用いて解析することができる。以下、購買記録を「POSデータ」と表記する場合がある。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】国際公開第2018/131214号パンフレット
【特許文献2】特開2020-086742号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかしながら、POSデータに基づいて商品間の関係性を特定した場合、顧客が実際に購入した商品間の購買相関は得られる一方、それ以外の商品、例えば、顧客が実際に購入していない商品に関して、商品間の関係性は特定されない。
【0007】
例えば、顧客が購入した商品と、顧客が購入を検討したが(迷ったが)、実際には購入しなかった商品(顧客が弱い関心を持つ商品)との間の関係性、及び、当該実際には購入しなかった商品間の関係性は、POSデータに基づく解析では特定されない。
【0008】
1つの側面では、本発明は、顧客が購入していない商品を含む複数の商品間の関係性を取得することを目的とする。
【課題を解決するための手段】
【0009】
1つの側面では、逆強化学習プログラムは、コンピュータに以下の処理を実行させてよい。前記処理は、第1の商品を購入した複数の顧客の移動軌跡を取得してよい。また、前記処理は、前記第1の商品を含む複数の商品のそれぞれと対応付けられた複数の位置が示す状態を含む報酬関数の前記第1の商品に対応付けられた第1の位置に対する第1のパラメータを固定した状態で、前記複数の顧客の移動軌跡に基づいた逆強化学習によって、前記報酬関数のパラメータを更新してよい。さらに、前記処理は、更新後の報酬関数に含まれる第2の商品に対応する第2の位置に対する第2のパラメータに基づいて、前記第1の商品と前記第2の商品との関係を示す情報を出力してよい。
【発明の効果】
【0010】
1つの側面では、顧客が購入していない商品を含む複数の商品間の関係性を取得することができる。
【図面の簡単な説明】
【0011】
【
図2】
図1に示すPOSデータに対応する各顧客の買い回り軌跡の一例を示す図である。
【
図3】一実施形態に係るサーバの機能構成例を示すブロック図である。
【
図4】区画データを説明するための店舗内の区画例を示す図である。
【
図7】強化学習処理の一例を説明するための図である。
【
図11】一実施形態に係るサーバの動作例を説明するためのフローチャートである。
【
図12】一実施形態に係るサーバの機能を実現するコンピュータのハードウェア(HW)構成例を示すブロック図である。
【発明を実施するための形態】
【0012】
以下、図面を参照して本発明の実施の形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図はない。例えば、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。なお、以下の実施形態で用いる図面において、同一符号を付した部分は、特に断らない限り、同一若しくは同様の部分を表す。
【0013】
〔1〕一実施形態
〔1-1〕顧客の購買行動解析について
図1は、POSデータの一例を示す図である。
図1に例示するA~Eは、顧客が購入した商品を識別する識別情報の一例である。
図1に例示するように、顧客#0のPOSデータは、顧客#0が商品C
A、C
B、C
C、C
Dを購入したことを示し、顧客#1のPOSデータは、顧客#1が商品C
A、C
C、C
Eを購入したことを示す。同様に、顧客#2及び#3のPOSデータは、顧客#2及び#3のそれぞれが商品C
A、C
Cを購入したことを示す。
【0014】
POSデータによる解析では、例えば、複数のPOSデータに所定数以上又は所定の割合以上で出現する組み合わせの商品に購買相関があると判断される。購買相関があるとは、例えば、商品間の相関(関係性)が高いと判断される区分に属することを意味してよい。
図1の例では、顧客#0~#3のそれぞれが購入した商品C
A、C
Cの購買相関が高いと判断される。
【0015】
購買相関のある商品間は、例えば、当該商品間のうちの1つ(1種類)の商品が購入される場合に、当該商品間のうちの他の1つ以上(1種類以上)の商品が一緒に購入される可能性が高い(例えば所定確率以上である)ことを意味してよい。
【0016】
図2は、
図1に示すPOSデータに対応する各顧客の買い回り軌跡の一例を示す図である。
図2では、店舗における商品棚及び商品C
A~C
Eの配置を店舗内の配置図(平面図)に表し、商品棚間の通路を通過する各顧客の買い回り軌跡を実線(顧客#0)、短破線(顧客#1)、一点鎖線(顧客#2)及び長破線(顧客#3)でそれぞれ示している。
【0017】
図2に例示する各顧客の買い回り軌跡から、商品C
Eの近辺を通過する顧客が多いことがわかる。なお、
図1に示すPOSデータによれば、顧客#1は商品C
Eを購入している。
【0018】
図1に例示するPOSデータから得られる商品C
A、C
Cの購買相関と、
図2に例示する各顧客の買い回り軌跡とを総合すると、商品C
A、C
Cを購入する顧客は、商品C
Eにも興味があるといえる。
【0019】
このように、
図1に例示するPOSデータ、換言すれば、顧客による実際の購買記録による解析では、顧客が購入しようとしたが実際には購入しなかったといった「弱い関心」(
図2参照)は無視される。
【0020】
そこで、一実施形態では、このような「弱い関心」を商品の購買相関(商品相関)に取り入れることで、顧客が購入しなかった商品(商品CE等)を含む商品間の関係性を取得し、ひいては店舗の売上の向上を図るための手法を説明する。
【0021】
〔1-2〕一実施形態の機能構成例
図3は、一実施形態に係るサーバ1の機能構成例を示すブロック図である。サーバ1は、逆強化学習装置又は情報処理装置の一例であり、例えば、顧客に関する種々の情報に基づき顧客の購買行動を解析する購買行動解析装置であってよい。
【0022】
図3に示すように、サーバ1は、例示的に、メモリ部11、取得部12、逆強化学習部13、検出部14、及び、出力部15を備えてよい。取得部12、逆強化学習部13、検出部14、及び、出力部15は、制御部16の一例である。
【0023】
メモリ部11は、記憶領域の一例であり、サーバ1による処理に用いられる種々の情報を記憶する。
図3に示すように、メモリ部11は、例示的に、区画データ11a、買い回り軌跡データ11b、POSデータ11c、報酬関数係数データ11d、及び、購買相関データ11eを記憶可能であってよい。区画データ11a、買い回り軌跡データ11b、POSデータ11c、報酬関数係数データ11d、及び、購買相関データ11eのそれぞれは、例えば、テーブル形式、DB(Database)形式、又は、配列形式等の種々の形式でメモリ部11に格納されてよい。
【0024】
取得部12は、逆強化学習部13による処理の実行に用いる情報の少なくとも一部、一例として、区画データ11a、買い回り軌跡データ11b、及び、POSデータ11cを、例えば図示しないコンピュータから取得する。
【0025】
区画データ11aは、店舗内の区画に関するデータ、例えば、商品棚間の通路の区画と、商品棚に配置(陳列)される商品が面する区画との関係を示す情報である。
【0026】
図4は、区画データ11aを説明するための店舗内の区画例を示す図である。
図4では、網掛けで示す商品棚の間の通路を、点線で示すラインによりメッシュ状に複数の区画に分割した例を示す。
図4に例示するように、各区画には、区画を示す符号“M”と“1”から始まる数字とを組み合わせた区画Mの識別情報(“M11”以降図示省略)が設定されてよい。
【0027】
また、
図4に例示するように、各区画Mに面する位置(例えば商品棚)に配置される商品には、商品を示す符号“C”と“1”から始まる数字とを組み合わせた商品Cの識別情報(“C11”以降図示省略)が設定されてよい。なお、
図4では、簡単のために、1つの区画Mに面する位置に1つの商品Cが配置される場合を例に挙げる。また、以下の説明では、商品Cの識別情報の数字部分に代えて、アルファベット(
図2参照)を用いて商品C
A等と表記する場合がある。同様に、以下の説明では、区画Mの識別情報の数字部分に代えて、アルファベット(
図2参照)を用いて区画M
A等と表記する場合がある。
【0028】
区画データ11aは、
図4に示す区画例に基づく区画Mxと商品Cyとの対応関係が設定されてよい。xは、区画Mの識別情報の数字部分に対応する1以上の整数であり、yは、商品Cの識別情報の数字部分に対応する1以上の整数又はアルファベットである。例えば、区画データ11aには、区画Mxと、区画Mxに面する(属する)位置に配置される商品Cyとが対応付けられた情報が格納されてよい。
【0029】
区画データ11aには、例えば、店舗における各区画Mの位置(例えば座標)を示す情報、及び、区画M間の隣接関係(例えば隣接する区画Mの識別情報)を示す情報、区画例を表現(再現)可能な情報、のうちの少なくとも1つが含まれてもよい。或いは、これらの情報は、区画データ11aとは別にメモリ部11に格納されてもよい。
【0030】
買い回り軌跡データ11bは、各顧客による店舗での買い回りの軌跡(又は「軌道」)を示す情報であり、例えば、各顧客が通過した区画Mを時系列で示す情報であってよい。顧客の買い回りの軌跡(買い回り軌跡)は、顧客の移動軌跡の一例である。
【0031】
図5は、買い回り軌跡データ11bの一例を示す図である。
図5に示すように、買い回り軌跡データ11bは、例示的に、「顧客」及び「区画」の項目を含んでよい。「顧客」には、顧客の識別情報が設定されてよい。「区画」は、「顧客」による通過(買い回り)の順序を区別可能な態様で複数の区画Mの識別情報を含んでよい。一例として、
図5に示す買い回り軌跡データ11bには、顧客#0による区画Mの通過順序が、M1、M4、M6、M7、・・・であることが設定されている。
【0032】
取得部12は、種々の手法により顧客ごとの買い回り軌跡を取得してよい。例えば、取得部12は、顧客の移動の軌跡を取得するシステムから、当該システムにより生成された買い回り軌跡データ11bを取得してもよい。或いは、取得部12は、当該システムから、店舗における顧客ごとの移動の軌跡に関する情報を取得して、取得した情報に基づき買い回り軌跡データ11bを生成してもよい。また、取得部12は、区画データ11aに基づき、買い回り軌跡データ11bの区画Mの情報を設定してもよい。
【0033】
このように、取得部12は、第1の商品CAと第2の商品CCとを購入した複数の顧客の移動軌跡を取得するのである。
【0034】
顧客の移動の軌跡を取得するシステムとしては、例えば、買い物カゴ又はカート等に付加されたRF(Radio Frequency)タグ等のタグを追跡するシステム、店舗に設置された監視カメラ等の撮像装置により撮像された画像を解析するシステム、等が挙げられる。
【0035】
POSデータ11cは、顧客が実際に購入した商品の情報であり、顧客の購買記録の一例である。POSデータ11cは、POSシステムから取得されてよい。
【0036】
図6は、POSデータ11cの一例を示す図である。
図6に示すように、POSデータ11cは、例示的に、「顧客」及び「商品」の項目を含んでよい。「顧客」には、顧客の識別情報が設定されてよい。「商品」は、「顧客」により購入された複数の商品Cの識別情報を含んでよい。一例として、
図6に示すPOSデータ11cには、顧客#0により、C1、C8、・・・の商品Cが購入されたことが設定されている。
【0037】
取得部12は、種々の手法により顧客の購買記録を取得してよい。例えば、取得部12は、POSシステムから、当該POSシステムにより集計及び生成されたPOSデータ11cを取得してもよい。或いは、取得部12は、POSシステムから、店舗における顧客ごとの商品の購買に関する情報を取得して、取得した情報に基づきPOSデータ11cを生成してもよい。
【0038】
買い回り軌跡データ11bに含まれる「顧客」の識別情報と、POSデータ11cに含まれる「顧客」の識別情報とは、共通の識別情報であってもよく、或いは、他の情報を介して互いに対応付け可能な識別情報であってもよい。換言すれば、買い回り軌跡データ11b及びPOSデータ11cは、顧客の識別情報をキーとすることで、各顧客について、顧客が購入した商品Cと、当該顧客が通過した区画M(買い回り軌跡)と、を関連付けた情報であると捉えられてもよい。
【0039】
逆強化学習部13は、買い回り軌跡データ11b及びPOSデータ11cを利用した逆強化学習を行ない、逆強化学習により得られた報酬関数係数データ11dをメモリ部11に格納する。
【0040】
例えば、逆強化学習部13は、区画データ11aに基づき、買い回り軌跡データ11b及びPOSデータ11cに対して逆強化学習の手法を適用する。逆強化学習部13による逆強化学習処理、及び、報酬関数係数データ11dについては後述する。
【0041】
検出部14は、報酬関数係数データ11dに基づき、買い回り軌跡を考慮した購買相関(商品相関)を検出し、検出した購買相関を購買相関データ11eとしてメモリ部11に格納する。検出部14は、買い回り軌跡を考慮することで、「弱い関心」を考慮した購買相関を検出することができる。例えば、検出部14は、或る商品Cに関して、顧客行動の報酬関数の係数値が大きい商品Cを相関のある商品として検出する。
【0042】
出力部15は、検出部14により取得される購買相関データ11eを出力データとして出力する。例えば、出力部15は、購買相関データ11eそのものを図示しない他のコンピュータに送信してもよいし、購買相関データ11eをメモリ部11に蓄積してサーバ1又は他のコンピュータから参照可能に管理してもよい。或いは、出力部15は、購買相関データ11eを示す情報をサーバ1等の出力装置に画面出力してもよい。
【0043】
なお、出力部15は、出力データとして、購買相関データ11eそのものに代えて又は加えて、種々のデータを出力してもよい。出力データは、例えば、購買相関データ11eに基づく顧客の購買行動の解析結果、逆強化学習処理における中間生成情報、又は、購買行動の解析処理における中間生成情報、等の種々のデータであってもよい。
【0044】
以上のように、サーバ1によれば、逆強化学習部13及び検出部14により、顧客の買い回り軌跡に基づく解析によって、顧客が商品Cの棚へ行ったものの購入しなかった等の「弱い関心」を考慮した購買相関を検出することができる。
【0045】
これにより、顧客が購入していない商品を含む複数の商品間の購入の関係性を取得する、換言すれば、より正確な購買相関を取得することができるため、例えば、当該購買相関に基づく顧客の購買行動の解析により、店舗における商品の売上向上を実現できる。
【0046】
〔1-3〕逆強化学習処理の説明
次に、逆強化学習部13による逆強化学習処理について説明する。
【0047】
まず、強化学習処理について説明する。
図7は、強化学習処理の一例を説明するための図である。強化学習処理は、エージェント(「制御器」と称されてもよい)110が行なう行動aを検出するためのモデルの機械学習を行なう処理である。例えば、強化学習処理では、エージェント110が、状態s(state)の環境120において或る行動a(action)を行なうと、報酬rが与えられるというモデルが想定される。
【0048】
エージェント110は、例えば買い物客(顧客)であり、報酬rが高くなる行動aを行なうものとする。行動aは、例えば買い物(移動)である。報酬rの総額(合計)は、下記式(1)に例示するように、利得R(t)となる。なお、下記式(1)において、tは時刻であり、γは時刻の経過に応じて報酬rを減少させるための割引率である。
R(t) = r(t+1)+γr(t+2)+ ... (1)
【0049】
ところで、報酬r及び遷移確率Pが既知である場合、価値(V,Q)が最大となる方策Π(a|s)を求める動的計画法が知られている。動的計画法には、例えば、ベルマン方程式が用いられてよい。
【0050】
これに対し、強化学習処理は、報酬r、及び、遷移確率Pが未知(ブラックボックス)である場合に、実データでモデルの機械学習を行ないながら、価値(V,Q)が最大となる方策を求める処理を含んでよい。
【0051】
遷移確率Pの一例として、マルコフ決定過程(MDP;Markov Decision Process)における遷移確率が挙げられる。例えば、(s,a)のときに状態s’となる遷移確率Pは、P(s|s,a)と表記されてよい。
【0052】
方策Π(a|s)は、状態sであるときに行動aが行なわれる確率である。例えば、動的計画法では、Q(s,a)が最大となるs,aが求められてよい。価値(V,Q)は、状態価値関数VΠ(s)及び行動価値関数QΠ(s,a)を含んでよい。状態価値関数VΠ(s)及び行動価値関数QΠ(s,a)は、それぞれ、下記式(2)及び式(3)により表されてよい。なお、下記式(2)及び式(3)において、Eは期待値を表す。
VΠ(s) = EP,Π[R(t)|s(t)=s] (2)
QΠ(s,a) = EP[R(t)|s(t)=s, a(t)=a] (3)
【0053】
以上のように、強化学習処理は、利得R(報酬r)が不明である場合に、エージェント110がトライアンドエラーにより状態s及び行動aを変化させて繰り返し利得Rを算出することで得られるデータを利用して、利得Rが最大となる方策を求める手法である。なお、強化学習処理は、Q学習、例えば、Q(s,a)をDL(Deep Learning;深層学習)でモデル化する深層Q学習の一例であり、「方策学習」と称されてもよい。
【0054】
強化学習処理による訓練済みのモデルによれば、エージェント110の時系列の状態s及び動作a、換言すれば、エージェント110の移動の軌跡を取得することができる。
【0055】
逆強化学習処理は、強化学習処理の軌跡(結果)が与えられているときに、当該軌跡を実現する利得(コスト)関数を推定する手法である。一例として、逆強化学習処理は、エージェントが或る行動aを行なったときに、当該行動aが何らかの報酬rに従ってエージェントが動いた結果であると仮定して、当該行動aを実現するような利得関数を取得するためのモデルの機械学習処理が実施されてよい。逆強化学習処理では、例えば、最大エントロピー法が用いられてよいが、これに限定されるものではなく、既知の種々の手法が用いられてもよい。
【0056】
(s,a)の利得関数は、(s,a)及びパラメータベクトルθを用いたr(s,a;θ)として表現されてよい。利得関数r(s,a;θ)は、下記式(4)により表されてよい。下記式(4)において、φ(s,a)は、特徴ベクトルであり、エージェント110の状態s及び行動a、換言すれば、エージェント110が次に何売り場に行くか、どちらの方向に行くか、といったアクション(軌跡)を蓄積した情報であってよい。
r(s, a; θ) = θ・φ(s,a) (4)
【0057】
上記式(4)において、中黒(・)は内積を示す。最大エントロピー法では、例えば、特徴ベクトルの1次関数によって利得関数が表現されてよい。
【0058】
ここで、逆強化学習処理では、エージェント110が、下記式(5)に例示する遷移確率P(ζi;θ)で観測軌跡{ζi}を選択していると仮定する。観測軌跡{ζi}は、下記式(6)に示すように、1~Niのそれぞれにおけるエージェント110の状態si及び行動aiを含んでよい。下記式(5)において、Z(θ)は、P(ζi;θ)が確率(0以上1以下の数)となるための規格化定数であり、例えば、下記式(5-1)により表されてよい。下記式(6)において、i(1)、i(2)、・・・、i(Ni)は、軌跡ζiが通過したメッシュ番号の時系列を意味する。換言すれば、軌跡ζiは、Mi(1)、Mi(2)、・・・、Mi(Ni)の順にメッシュを通過したことを意味する。Niは、軌跡ζiが通過した総メッシュ数である。ai(1)、・・・ai(Ni)は、各メッシュで顧客が次に向かう方向、例えば、現在のメッシュを起点として、上、下、右又は左等の方向を意味する。当該方向は、軌道から求めることができる。
P(ζi;θ) = exp(Σ<sj, aj> ∈ ζi θ・φ(sj,aj))/Z(θ) (5)
Z(θ) = Σi exp(Σ<sj, aj> ∈ ζi θ・φ(sj, aj)) (5-1)
{ζi} = {<si(1), ai(1)>, ..., <si(Ni), ai(Ni)>} (6)
【0059】
上記式(5)に示す遷移確率P(ζi;θ)において尤度を最大化することによって最適化されるパラメータベクトルθ*は、下記式(7)に従い算出されてよい。argmaxは、最大点の集合を求める関数である。
θ* = argmax Σi log(P(ζi;θ)) (7)
【0060】
逆強化学習処理としては、例えば、「“Maximum Entropy Inverse Reinforcement Learning”、B. Ziebart, A. Maas, et.al.、Proc. of the 23rd AAAI (2008)」に記載の手法が採用されてもよい。
【0061】
一実施形態に係る逆強化学習部13は、上述した逆強化学習処理により、観測軌跡{ζi}が実際の軌跡(顧客の買い回り)を再現するようなパラメータベクトルθを得るための最適化問題を解くことで、利得関数r(s,a;θ)を取得する。以下の説明において、利得関数r(s,a;θ)は、「報酬関数」と称されてもよい。
【0062】
図8は、顧客#0の買い回り軌跡の一例を示す図である。例えば、POSデータ11cにおいて顧客#0が商品C
A、C
B、C
C、C
Dを購入したことが設定されており、買い回り軌跡データ11bにおいて顧客#0が
図8に示す買い回り軌跡で移動した場合を想定する。
【0063】
逆強化学習部13は、買い回り軌跡データ11b及びPOSデータ11cに基づき、顧客#0による買い回り軌跡を再現するような報酬関数を出力する機械学習モデルの訓練を行なう。
【0064】
例えば、状態sは、区画(メッシュ)Mのうちの顧客#0が存在する区画を示す情報である。一例として、状態sは、メッシュ番号の0-1ベクトルsi=(0,…,0,1,…0)のように、顧客#0が位置するメッシュMの番号iに対応する座標に“1”がセットされた情報であってよい。
【0065】
報酬関数は、上記式(4)、式(5)、式(7)に基づき、下記式(8)のように表現されてよい。下記式(8)において、θiは、報酬関数のパラメータの一例であり、例えば、メッシュi(区画Mi)に面する(属する)位置に配置される商品Cの関心度を示す。商品Cの関心度は、顧客#0による商品Cの関心の度合いを示す指標であり、関心度が高いことは、顧客#0が商品Cに移動する可能性(尤度)が高いことを意味する。
報酬関数:θ1*s1+...+θN*sN (8)
【0066】
逆強化学習部13は、機械学習モデルの訓練において、顧客#0が購入した商品C(POSデータ11c)が位置する区画Miのθを十分大きな値に固定した状態で、買い回り軌跡データ11bによる逆強化学習処理を行なう。例えば、逆強化学習部13は、顧客#0の買い回り軌跡を再現した出力が得られるように各θ(θi)を更新する。
【0067】
報酬関数は、上記式(8)に示すように、状態si(状態ベクトル)に係数としてのθiを乗じて得られることから、報酬が高い場所(区画Mi)では、係数θiの値が大きくなるといえる。そこで、逆強化学習部13は、顧客#0が購入した商品Cに対応する区画i、換言すれば、報酬が高いことが分かっている区画Miについて、θを十分大きな値に固定するのである。
【0068】
図9は、報酬関数係数データ11dの一例を示す図である。
図9に示すように、報酬関数係数データ11dは、例示的に、「区画」、及び、「係数値」の項目を含んでよい。「区画」には、各区画Mの識別情報が設定されてよい。「係数値」には、区画Miに対応するθ
iの値が設定されてよい。
【0069】
なお、1つの区画Mに複数の商品Cが対応付けられる(配置される)場合、報酬関数係数データ11dには、「区画」に代えて又は加えて、商品Cの識別情報を示す「商品」が設定されてもよい。
【0070】
逆強化学習部13は、逆強化学習処理による訓練済みのモデルから報酬関数の係数θを抽出(取得)して報酬関数係数データ11dを生成し、メモリ部11に格納してよい。
【0071】
このように、逆強化学習部13は、1以上の商品Cの同一の組み合わせ(セット)を購入した複数の顧客のそれぞれの買い回り軌跡データ11bに基づき、当該組み合わせを購入した顧客の買い回り軌跡を再現する報酬関数係数データ11dを出力する。換言すれば、逆強化学習部13は、購買相関を検出する対象となる1以上の商品Cの同一の組み合わせごとに、逆強化学習処理を行ない、報酬関数係数データ11dを生成してよい。
【0072】
例えば、逆強化学習部13は、商品CA、CCを購入した顧客をPOSデータ11cから抽出する。そして、逆強化学習部13は、抽出した顧客のそれぞれの買い回り軌跡データ11bに基づき、商品CA、CCに対応するθA、θCを高い値に固定した状態で、逆強化学習処理を行なう。高い値とは、例えば、後述する検出部14により、購買相関があると検出される所定値以上の値、一例として、後述する所定の閾値以上の値である。逆強化学習処理によって、第1の商品CAと第2の商品CCとを含む複数の商品のそれぞれと対応付けられた複数の位置MA、MCが示す状態sを含む報酬関数のパラメータθが更新される。
【0073】
以上のように、逆強化学習部13は、報酬関数の第1の商品CAに対応付けられた第1の位置MAに対する第1のパラメータθAと第2の商品CCに対応付けられた第2の位置MCに対する第2のパラメータθCとを固定した状態で、複数の顧客の移動軌跡に基づいた逆強化学習によって、報酬関数のパラメータθを更新するのである。
【0074】
なお、1以上の商品Cの組み合わせ(例えば商品CA、CC)を購入した顧客とは、例えば、複数の商品Cのうちの商品CA、CCのみを購入した顧客であってもよいし、商品CA、CCを少なくとも含む複数の商品Cを購入した顧客であってもよい。また、上述した例では、1以上の商品Cが第1の商品CA及び第2の商品CCであるものとしたが、これに限定されるものではなく、1つの商品C(例えば第1の商品CA)であってもよい。
【0075】
例えば、1以上の商品Cが1つの商品C(例えば第1の商品CA)である場合、取得部12は、第1の商品CAを購入した複数の顧客の買い回り軌跡データ11bを取得してよい。また、逆強化学習部13は、第1の商品CAを含む複数の商品のそれぞれと対応付けられた複数の位置Miが示す状態sを含む報酬関数の第1の商品CAに対応付けられた第1の位置MAに対する第1のパラメータθAを固定した状態で、複数の顧客の移動軌跡に基づいた逆強化学習によって、報酬関数のパラメータθを更新してよい。
【0076】
〔1-4〕購買相関の検出処理の説明
検出部14は、逆強化学習部13により生成された報酬関数係数データ11dに基づき、購買相関データ11eを生成し、メモリ部11に格納する。
【0077】
上述したように、逆強化学習処理により、報酬が高い場所(区画Mi)では、係数θiの値が大きくなる。一例として、商品CA、CCに関する報酬関数係数データ11dでは、区画MA、MCに対応するθA、θCの値が大きくなる。また、商品CA、CCを購入した顧客が商品CEの区画MEを通過することが多い場合、換言すれば、当該顧客が商品CEに関心がある場合、当該報酬関数係数データ11dでは、区画MEに対応するθEの値も大きくなる。
【0078】
そこで、検出部14は、報酬関数係数データ11dの各パラメータベクトルθiの値を所定の閾値と比較し、θiの値が所定の閾値以上である複数の商品Ci(区画Mi)、例えば商品CA、CC、CEを、購買相関のある商品Cとして検出してよい。所定の閾値は、固定値であってもよいし、可変値であってもよい。可変値である場合、例えば、所定の閾値は、報酬関数係数データ11dに含まれるθiの値の平均値、θiの値の中央値、等の種々の手法により算出されてもよい。
【0079】
図10は、購買相関データ11eの一例を示す図である。
図10に示すように、購買相関データ11eは、例示的に、「商品」、及び、「相関」の項目を含んでよい。「商品」には、各商品Cの識別情報が設定されてよい。「相関」には、商品Ci(区画Mi)に対応する、報酬関数係数データ11dに基づく購買相関の検出結果が設定されてよい。
【0080】
一例として、購買相関がある、換言すれば、θiの値が所定の閾値以上であると判定された商品Ciの「相関」には、“1”が設定されてよい。また、購買相関がない、換言すれば、θiの値が所定の閾値未満であると判定された商品Ciの「相関」には、“0”が設定されてよい。
【0081】
購買相関データ11eにおいて、「相関」に“1”が設定された複数の商品Ciは、購買相関が高い商品Ciである、換言すれば、顧客により同時に(1度の買い物において)購入される可能性が高い商品Ciであるといえる。例えば、1以上の商品Cの組み合わせが第1の商品CA及び第2の商品CCであり、第3の商品CEのθEが所定の閾値以上である場合、購買相関データ11eは、第1の商品CAと第2の商品CCと第3の商品CEとが購買の相関を有することを示す情報となる。また、例えば、1以上の商品C(の組み合わせ)が第1の商品CAであり、第2の商品CEのθEが所定の閾値以上である場合、購買相関データ11eは、第1の商品CAと第2の商品CEとが購買の相関を有することを示す情報となる。
【0082】
なお、
図10に示す購買相関データ11eは、検出部14により、
図9に示す報酬関数係数データ11dに対して、所定の閾値を“4.0”として購買相関の検出処理が行なわれた結果の一例である。
【0083】
以上のように、検出部14は、更新後の報酬関数に含まれる第3の商品CEに対応する第3の位置MEに対する第3のパラメータθEに基づいて、第1の商品CAと第2の商品CCと第3の商品CEとの関係を示す情報、例えば購買相関データ11eを生成する。また、1以上の商品Cが1つの商品C(例えば第1の商品CA)である場合、検出部14は、更新後の報酬関数に含まれる第2の商品CEに対応する第2の位置MEに対する第2のパラメータθEに基づいて、第1の商品CAと第2の商品CEとの関係を示す情報、例えば購買相関データ11eを生成する。検出部14が生成した購買相関データ11eは、例えば、出力部15により出力されてよい。
【0084】
このように、一実施形態に係るサーバ1によれば、顧客の買い回り軌跡データ11b及びPOSデータ11cに基づき、逆強化学習処理の手法により、顧客の関心を考慮した商品Cの購買相関を検出することができる。また、サーバ1によれば、検出された購買相関を利用し、売上の向上を図ることができる。
【0085】
〔1-5〕動作例
次に、
図11を参照して、上述した一実施形態に係るサーバ1の動作例を説明する。
図11は、一実施形態に係るサーバ1の動作例を説明するためのフローチャートである。
図11に示すように、サーバ1の取得部12は、買い回り軌跡データ11b及びPOSデータ11cを取得する(ステップS1)。
【0086】
逆強化学習部13は、例えばユーザから指定された購買相関の検出対象の1以上の商品Cについて、POSデータ11cに基づき、当該1以上の商品Cの同一の組み合わせを購入した顧客を特定する(ステップS2)。
【0087】
逆強化学習部13は、当該1以上の商品のそれぞれのθの値を所定値以上(例えば所定の閾値以上)の値に固定し、特定した顧客の買い回り軌跡データ11bに基づきモデルの逆強化学習処理を実施する(ステップS3)。
【0088】
検出部14は、訓練済みのモデルのパラメータの一部である報酬関数係数データ11dに基づき、購買相関の検出対象の1以上の商品に関する購買相関を検出し(ステップS4)、購買相関を示す購買相関データ11eをメモリ部11に格納する。
【0089】
出力部15は、検出部14が検出した購買相関を示す購買相関データ11eを出力し(ステップS5)、処理が終了する。
【0090】
なお、サーバ1は、購買相関の検出対象として1以上の商品をユーザから指定される都度、上述したステップS1~S5の処理を実行してよい。
【0091】
〔1-6〕ハードウェア構成例
一実施形態に係るサーバ1を実現する装置は、仮想サーバ(VM;Virtual Machine)であってもよいし、物理サーバであってもよい。また、サーバ1の機能は、1台のコンピュータにより実現されてもよいし、2台以上のコンピュータにより実現されてもよい。さらに、サーバ1の機能のうちの少なくとも一部は、クラウド環境により提供されるHW(Hardware)リソース及びNW(Network)リソースを用いて実現されてもよい。
【0092】
図12は、一実施形態に係るサーバ1の機能を実現するコンピュータ10のハードウェア(HW)構成例を示すブロック図である。サーバ1の機能を実現するHWリソースとして、複数のコンピュータが用いられる場合は、各コンピュータが
図12に例示するHW構成を備えてよい。
【0093】
図12に示すように、コンピュータ10は、HW構成として、例示的に、プロセッサ10a、メモリ10b、記憶部10c、IF(Interface)部10d、I/O(Input / Output)部10e、及び読取部10fを備えてよい。
【0094】
プロセッサ10aは、種々の制御や演算を行なう演算処理装置の一例である。プロセッサ10aは、コンピュータ10内の各ブロックとバス10iで相互に通信可能に接続されてよい。なお、プロセッサ10aは、複数のプロセッサを含むマルチプロセッサであってもよいし、複数のプロセッサコアを有するマルチコアプロセッサであってもよく、或いは、マルチコアプロセッサを複数有する構成であってもよい。
【0095】
プロセッサ10aとしては、例えば、CPU、MPU、GPU、APU、DSP、ASIC、FPGA等の集積回路(IC;Integrated Circuit)が挙げられる。なお、プロセッサ10aとして、これらの集積回路の2以上の組み合わせが用いられてもよい。CPUはCentral Processing Unitの略称であり、MPUはMicro Processing Unitの略称である。GPUはGraphics Processing Unitの略称であり、APUはAccelerated Processing Unitの略称である。DSPはDigital Signal Processorの略称であり、ASICはApplication Specific ICの略称であり、FPGAはField-Programmable Gate Arrayの略称である。
【0096】
メモリ10bは、種々のデータやプログラム等の情報を格納するHWの一例である。メモリ10bとしては、例えばDRAM(Dynamic Random Access Memory)等の揮発性メモリ、及び、PM(Persistent Memory)等の不揮発性メモリ、の一方又は双方が挙げられる。
【0097】
記憶部10cは、種々のデータやプログラム等の情報を格納するHWの一例である。記憶部10cとしては、HDD(Hard Disk Drive)等の磁気ディスク装置、SSD(Solid State Drive)等の半導体ドライブ装置、不揮発性メモリ等の各種記憶装置が挙げられる。不揮発性メモリとしては、例えば、フラッシュメモリ、SCM(Storage Class Memory)、ROM(Read Only Memory)等が挙げられる。
【0098】
なお、
図3に示すメモリ部11が記憶する情報11a~11eは、メモリ10b及び記憶部10cの一方又は双方が有する記憶領域に格納されてよい。
【0099】
また、記憶部10cは、コンピュータ10の各種機能の全部若しくは一部を実現するプログラム10g(逆強化学習プログラム)を格納してよい。例えば、サーバ1のプロセッサ10aは、記憶部10cに格納されたプログラム10gをメモリ10bに展開して実行することにより、
図3に例示するサーバ1(例えば制御部16)としての機能を実現できる。
【0100】
IF部10dは、ネットワークの一方又は双方との間の接続及び通信の制御等を行なう通信IFの一例である。例えば、IF部10dは、イーサネット(登録商標)等のLAN(Local Area Network)、或いは、FC(Fibre Channel)等の光通信等に準拠したアダプタを含んでよい。当該アダプタは、無線及び有線の一方又は双方の通信方式に対応してよい。例えば、サーバ1は、IF部10dを介して、図示しないコンピュータと相互に通信可能に接続されてよい。また、例えば、プログラム10gは、当該通信IFを介して、ネットワークからコンピュータ10にダウンロードされ、記憶部10cに格納されてもよい。
【0101】
I/O部10eは、入力装置、及び、出力装置、の一方又は双方を含んでよい。入力装置としては、例えば、キーボード、マウス、タッチパネル等が挙げられる。出力装置としては、例えば、モニタ、プロジェクタ、プリンタ等が挙げられる。
【0102】
読取部10fは、記録媒体10hに記録されたデータやプログラムの情報を読み出すリーダの一例である。読取部10fは、記録媒体10hを接続可能又は挿入可能な接続端子又は装置を含んでよい。読取部10fとしては、例えば、USB(Universal Serial Bus)等に準拠したアダプタ、記録ディスクへのアクセスを行なうドライブ装置、SDカード等のフラッシュメモリへのアクセスを行なうカードリーダ等が挙げられる。なお、記録媒体10hにはプログラム10gが格納されてもよく、読取部10fが記録媒体10hからプログラム10gを読み出して記憶部10cに格納してもよい。
【0103】
記録媒体10hとしては、例示的に、磁気/光ディスクやフラッシュメモリ等の非一時的なコンピュータ読取可能な記録媒体が挙げられる。磁気/光ディスクとしては、例示的に、フレキシブルディスク、CD(Compact Disc)、DVD(Digital Versatile Disc)、ブルーレイディスク、HVD(Holographic Versatile Disc)等が挙げられる。フラッシュメモリとしては、例示的に、USBメモリやSDカード等の半導体メモリが挙げられる。
【0104】
上述したコンピュータ10のHW構成は例示である。従って、コンピュータ10内でのHWの増減(例えば任意のブロックの追加や削除)、分割、任意の組み合わせでの統合、又は、バスの追加若しくは削除等は適宜行なわれてもよい。例えば、サーバ1において、I/O部10e及び読取部10fの少なくとも一方は、省略されてもよい。
【0105】
〔2〕その他
上述した一実施形態に係る技術は、以下のように変形、変更して実施することができる。
【0106】
例えば、
図3に示すサーバ1が備える各処理機能12~15は、それぞれ任意の組み合わせで併合してもよく、分割してもよい。
【0107】
また、サーバ1は、逆強化学習処理、及び、購買相関の検出処理において、区画データ11aを利用しない場合、メモリ部11において区画データ11aを記憶しない構成が許容されてもよい。
【0108】
さらに、一実施形態において、メモリ部11は、買い回り軌跡データ11b及びPOSデータ11cの一方又は双方を、所定の属性を有する顧客のグループ、例えば、特定の性質を有する顧客層に限定して記憶してもよい。顧客層としては、例えば、男性客、女性客、若年層顧客、老年層顧客等の、顧客の属性に応じた区分が挙げられる。このように顧客層を限定することにより、サーバ1は、限定した顧客層特有の購買相関を検出することができる。
【0109】
また、
図3に示すサーバ1は、複数の装置がネットワークを介して互いに連携することにより、各処理機能を実現する構成であってもよい。一例として、取得部12及び出力部15はWebサーバ、逆強化学習部13及び検出部14はアプリケーションサーバ、メモリ部11はDB(Database)サーバ、であってもよい。この場合、Webサーバ、アプリケーションサーバ及びDBサーバが、ネットワークを介して互いに連携することにより、サーバ1としての各処理機能を実現してもよい。
【0110】
〔3〕付記
以上の実施形態に関し、さらに以下の付記を開示する。
【0111】
(付記1)
第1の商品を購入した複数の顧客の移動軌跡を取得し、
前記第1の商品を含む複数の商品のそれぞれと対応付けられた複数の位置が示す状態を含む報酬関数の前記第1の商品に対応付けられた第1の位置に対する第1のパラメータを固定した状態で、前記複数の顧客の移動軌跡に基づいた逆強化学習によって、前記報酬関数のパラメータを更新し、
更新後の報酬関数に含まれる第2の商品に対応する第2の位置に対する第2のパラメータに基づいて、前記第1の商品と前記第2の商品との関係を示す情報を出力する、
処理をコンピュータに実行させる、逆強化学習プログラム。
【0112】
(付記2)
前記更新する処理は、前記第1のパラメータを所定値以上の値に設定した状態で、前記複数の顧客の移動軌跡に基づいた前記逆強化学習によって、前記報酬関数のパラメータを更新する処理を含み、
前記出力する処理は、前記更新後の報酬関数に含まれる前記第2のパラメータと、所定の閾値との比較結果に基づいて、前記情報を出力する処理を含む、
付記1に記載の逆強化学習プログラム。
【0113】
(付記3)
前記出力する処理は、前記更新後の報酬関数に含まれる前記第2のパラメータが前記所定の閾値以上である場合に、前記第1の商品と前記第2の商品とが購買の相関を有することを示す前記情報を出力する処理を含む、
付記2に記載の逆強化学習プログラム。
【0114】
(付記4)
前記複数の顧客は、前記第1の商品を購入した顧客のうちの所定の属性を有する顧客である、
付記1~付記3のいずれか1項に記載の逆強化学習プログラム。
【0115】
(付記5)
第1の商品を購入した複数の顧客の移動軌跡を取得し、
前記第1の商品を含む複数の商品のそれぞれと対応付けられた複数の位置が示す状態を含む報酬関数の前記第1の商品に対応付けられた第1の位置に対する第1のパラメータを固定した状態で、前記複数の顧客の移動軌跡に基づいた逆強化学習によって、前記報酬関数のパラメータを更新し、
更新後の報酬関数に含まれる第2の商品に対応する第2の位置に対する第2のパラメータに基づいて、前記第1の商品と前記第2の商品との関係を示す情報を出力する、
処理をコンピュータが実行する、逆強化学習方法。
【0116】
(付記6)
前記更新する処理は、前記第1のパラメータを所定値以上の値に設定した状態で、前記複数の顧客の移動軌跡に基づいた前記逆強化学習によって、前記報酬関数のパラメータを更新する処理を含み、
前記出力する処理は、前記更新後の報酬関数に含まれる前記第2のパラメータと、所定の閾値との比較結果に基づいて、前記情報を出力する処理を含む、
付記5に記載の逆強化学習方法。
【0117】
(付記7)
前記出力する処理は、前記更新後の報酬関数に含まれる前記第2のパラメータが前記所定の閾値以上である場合に、前記第1の商品と前記第2の商品とが購買の相関を有することを示す前記情報を出力する処理を含む、
付記6に記載の逆強化学習方法。
【0118】
(付記8)
前記複数の顧客は、前記第1の商品を購入した顧客のうちの所定の属性を有する顧客である、
付記5~付記7のいずれか1項に記載の逆強化学習方法。
【0119】
(付記9)
第1の商品を購入した複数の顧客の移動軌跡を取得し、
前記第1の商品を含む複数の商品のそれぞれと対応付けられた複数の位置が示す状態を含む報酬関数の前記第1の商品に対応付けられた第1の位置に対する第1のパラメータを固定した状態で、前記複数の顧客の移動軌跡に基づいた逆強化学習によって、前記報酬関数のパラメータを更新し、
更新後の報酬関数に含まれる第2の商品に対応する第2の位置に対する第2のパラメータに基づいて、前記第1の商品と前記第2の商品との関係を示す情報を出力する、
制御部を備える、情報処理装置。
【0120】
(付記10)
前記制御部は、
前記更新する処理において、前記第1のパラメータを所定値以上の値に設定した状態で、前記複数の顧客の移動軌跡に基づいた前記逆強化学習によって、前記報酬関数のパラメータを更新し、
前記出力する処理において、前記更新後の報酬関数に含まれる前記第2のパラメータと、所定の閾値との比較結果に基づいて、前記情報を出力する、
付記9に記載の情報処理装置。
【0121】
(付記11)
前記制御部は、前記出力する処理において、前記更新後の報酬関数に含まれる前記第2のパラメータが前記所定の閾値以上である場合に、前記第1の商品と前記第2の商品とが購買の相関を有することを示す前記情報を出力する、
付記10に記載の情報処理装置。
【0122】
(付記12)
前記複数の顧客は、前記第1の商品を購入した顧客のうちの所定の属性を有する顧客である、
付記9~付記11のいずれか1項に記載の情報処理装置。
【符号の説明】
【0123】
1 サーバ
10 コンピュータ
11 メモリ部
11a 区画データ
11b 買い回り軌跡データ
11c POSデータ
11d 報酬関数係数データ
11e 購買相関データ
12 取得部
13 逆強化学習部
14 検出部
15 出力部
16 制御部