説明

購買順序を考慮したリコメンド装置、リコメンド方法、リコメンドプログラムおよびそのプログラムを記録した記録媒体

【課題】購買順序を考慮しつつ、計算コストが低く、かつ、予測精度の高いリコメンド装置を提供する。
【解決手段】リコメンド装置1は、ユーザの購買履歴ログ45を用いて、ユーザごとに購買履歴を抽出した入力データ46を作成する前処理部21と、入力データ46からユーザが商品を購入する事前確率と、ユーザが所定の商品を購入したときにその前に購入した商品が特定の商品である確率を示すギャップマルコフモデルとを推定する拡張マルコフモデル推定部22と、事前確率47とギャップマルコフモデル48とを最大エントロピー原理により結合した結合モデルを構築して未知パラメータを示す重みを推定する重み推定部23と、入力データ46と事前確率47とギャップマルコフモデル48と重み49とを用いて、結合モデルから計算されるユーザの購入する確率が最大となる商品を選択してリコメンド対象として提示するリコメンド部24とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、購買履歴を入力として、ユーザが次に購入する商品を予測することで、ユーザに商品をリコメンドするリコメンド技術に係り、特に、オンラインストア等において商品をリコメンド対象として提示するリコメンド技術に関する。
【背景技術】
【0002】
一般に、商品またはサービス(以下、単に商品という)を販売するオンラインストア等の多くの商品提供者(販売者)は、オンラインストア等を利用するユーザの購買行動に影響を与えるように商品をリコメンド対象として提示する(リコメンドする)。リコメンド(recommendation)は、ユーザへの商品の直接的または間接的な提示であり、ユーザが所望する商品の情報に対して迅速にアクセスできるように利便性を向上させる目的と、商品提供者の収益を増加させる目的とを有している。リコメンドは、多くのオンラインストアで用いられている。
【0003】
従来、様々なリコメンド技術が知られている(例えば非特許文献1および非特許文献2参照)。商品提供者にとって、オンラインストア等で商品を購買したことのあるユーザに次回も商品を購入してもらうために、ユーザにどのような商品をリコメンドしたらよいかを予測することは重要である。ユーザが次に購入する商品は、ユーザのその時点の興味を最も表していると考えられる。そのため、ユーザの購買の予測精度が高い手法は、ユーザの興味の予測精度が高い手法であると言える。しかしながら、非特許文献1に記載されたリコメンド手法は、商品が購入された順序(以下、順序情報という)を考慮していない。このため、予測精度が低い。
【0004】
一方、非特許文献2に記載されたリコメンド手法は、順序情報を考慮して最大エントロピーモデルが適用されている。なお、最大エントロピーモデルとは、最大エントロピー原理を用いて求められた確率モデルのことを指す。この非特許文献2に記載されたリコメンド手法では、ユーザが直前に購入した商品のみを考慮するものである。これは、ユーザが直前に、つまり、最近購入した商品には、ユーザの現在の興味に関する多くの情報が含まれていると考えられるためである。また、このように順序情報を考慮した従来のリコメンド技術では、マルコフモデルや最大エントロピーモデルが適用されている。
【非特許文献1】Badrul Sarwar, George Karypis, Joseph Konstan, and John Reidl: Item-based co11aborative fi1tering recommendation algorithms. In Proceedings of the 10th international conference on World Wide Web,pp.285-295, New York,NY,USA,2001. ACM Press.
【非特許文献2】Xin Jin, Bamshad Mobasher, and Yanzan Zhou: A web recommendation sustem based on maximum entropy. In Proceedings of the international conference on Information Technology: Coding and Computing(ITCC’05)-Volume I,pp.213-218, Washington,DC,USA,2005. IEEE Computer Society.
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、非特許文献2に記載されたリコメンド手法では、ユーザが直前に購入した商品以外の情報を考慮していない。つまり、ユーザが昔に購入した商品にもある程度は含まれると考えられるユーザの現在の興味に関する情報が無視されていることになる。その結果、予測精度が低いという問題がある。
【0006】
また、順序情報を考慮した従来のリコメンド技術で用いられるマルコフモデルは、パラメータの推定および更新を高速に行うことができるが、予測精度が低いという問題点がある。また、順序情報を考慮した従来のリコメンド技術で用いられる最大エントロピーモデルは、予測精度は高いが、パラメータの推定および更新に多くの計算量を必要とするという問題点がある。
【0007】
そこで、本発明は、以上のような問題点に鑑みてなされたものであり、購買順序を考慮しつつ、計算コストが低く、かつ、予測精度の高いリコメンド技術を提供することを目的とする。
【課題を解決するための手段】
【0008】
前記課題を解決するために、本発明に係るリコメンド装置は、商品またはサービスを示す販売対象を購買したことのある複数のユーザの購買順序に基づいて、それぞれのユーザに対して、前記販売対象に属する個別対象のいずれかをリコメンド対象として提示するリコメンド装置であって、前記ユーザが過去に購入した1以上の個別対象に関する情報を含む購買履歴情報を用いて、前記ユーザごとに、前記個別対象の購買履歴を抽出したデータを示す処理用データを作成する前処理手段と、前記作成された処理用データを用いて、前記ユーザが前記個別対象を購入する確率を示す事前確率を推定する事前確率推定手段と、前記作成された処理用データを用いて、前記ユーザが所定の個別対象を購入したときにその前に購入した個別対象が特定の個別対象である確率を示すギャップマルコフモデルを推定するギャップマルコフモデル推定手段と、前記推定された事前確率と前記推定されたギャップマルコフモデルとを最大エントロピー原理により結合したモデルを示す結合モデルを構築し、構築した結合モデルの未知パラメータを示す重みを推定する重み推定手段と、前記作成された処理用データと、前記推定された事前確率と、前記推定されたギャップマルコフモデルと、前記推定された重みとを用いて、前記結合モデルから計算されるユーザの購入する確率が最大となる前記個別対象を選択してリコメンド対象として提示するリコメンド手段とを備えることを特徴とする。
【0009】
また、前記課題を解決するために、本発明に係るリコメンド方法は、商品またはサービスを示す販売対象を購買したことのある複数のユーザの購買順序に基づいて、それぞれのユーザに対して、前記販売対象に属する個別対象のいずれかをリコメンド対象として提示するリコメンド装置のリコメンド方法であって、前処理手段によって、前記ユーザが過去に購入した1以上の個別対象に関する情報を含む購買履歴情報を用いて、前記ユーザごとに、前記個別対象の購買履歴を抽出したデータを示す処理用データを作成する前処理ステップと、事前確率推定手段によって、前記作成された処理用データを用いて、前記ユーザが前記個別対象を購入する確率を示す事前確率を推定する事前確率推定ステップと、ギャップマルコフモデル推定手段によって、前記作成された処理用データを用いて、前記ユーザが所定の個別対象を購入したときにその前に購入した個別対象が特定の個別対象である確率を示すギャップマルコフモデルを推定するギャップマルコフモデル推定ステップと、重み推定手段によって、前記推定された事前確率と前記推定されたギャップマルコフモデルとを最大エントロピー原理により結合したモデルを示す結合モデルを構築し、構築した結合モデルの未知パラメータを示す重みを推定する重み推定ステップと、リコメンド手段によって、前記作成された処理用データと、前記推定された事前確率と、前記推定されたギャップマルコフモデルと、前記推定された重みとを用いて、前記結合モデルから計算されるユーザの購入する確率が最大となる前記個別対象を選択してリコメンド対象として提示するリコメンドステップとを有することを特徴とする。
【0010】
かかる構成のリコメンド装置、または、かかる手順のリコメンド方法によれば、リコメンド装置は、第1段階として、購買履歴情報を用いてユーザごとに処理用データを作成する。ここで、購買履歴情報は、例えば、どのユーザがどのタイミングに何を購買したのかを示す情報である。購買履歴情報は、例えば、オンラインストアの商品を販売対象とする場合に、オンライン処理のログの形式で取得することができる。また、処理用データは、ユーザごとに、何をどんな順序で購買したのかを示すデータである。そして、リコメンド装置は、処理用データを用いる第2段階として、事前確率とギャップマルコフモデルとをそれぞれ推定する。ここで、事前確率は、例えば、これまでに売れた全種類の商品のうち、特定の種類の商品がいずれかのユーザに購入された確率を、商品別(種類別)に求めた確率を意味する。また、ギャップマルコフモデルは、例えば、いずれかのユーザが何回目かの購入タイミングで商品を購入したときに、その数回前に、特定の種類の商品を購入したときの確率を、商品別(種類別)に求めた確率を意味する。これにより、ユーザが昔に購入した商品にもある程度は含まれると考えられるユーザの現在の興味に関する情報を取り込むことが可能となる。また、推定方法には、例えば、最大事後確率(MAP:Maximum A Posteriori)推定を用いることができる。
【0011】
そして、リコメンド装置は、第3段階として、事前確率とギャップマルコフモデルとを最大エントロピー原理により結合した結合モデルの未知パラメータを示す重みを推定する。これにより、結合モデルは、最大エントロピーモデルによる予測精度の高さと、マルコフモデルによる計算コストの低さとを合わせもつ特徴を有することとなる。そして、リコメンド装置は、第4段階として、処理用データおよび事前に推定した各パラメータを用いて、結合モデルから計算されるユーザの購入する確率が最大となる個別対象をリコメンドする。したがって、あるユーザについてその時点の興味を最も表していると考えられる商品を精度よく、低コストの計算で求めることができる。
【0012】
また、本発明に係るリコメンド装置は、前記重み推定手段が、経験分布による事前分布の対数尤度と、前記結合モデルと前記事前分布の対数尤度との積で表した結合モデルについての期待値とが等しいことを示す第1条件と、ギャップマルコフモデルの対数尤度と、前記結合モデルと前記ギャップマルコフモデルの対数尤度との積で表した結合モデルについての期待値とが等しいことを示す第2条件とを用いて、前記結合モデルを構築し、対象とする全ユーザについての前記処理用データから、対象とする全個別対象の購入確率の対数尤度を最大化することで前記重みを推定することが好ましい。
【0013】
また、本発明に係るリコメンド方法は、前記重み推定ステップが、経験分布による事前分布の対数尤度と、前記結合モデルと前記事前分布の対数尤度との積で表した結合モデルについての期待値とが等しいことを示す第1条件と、ギャップマルコフモデルの対数尤度と、前記結合モデルと前記ギャップマルコフモデルの対数尤度との積で表した結合モデルについての期待値とが等しいことを示す第2条件とを用いて、前記結合モデルを構築し、対象とする全ユーザについての前記処理用データから、対象とする全個別対象の購入確率の対数尤度を最大化することで前記重みを推定することが好ましい。
【0014】
かかる構成のリコメンド装置、または、かかる手順のリコメンド方法によれば、推定された結合モデルは、購買順序を考慮した最大エントロピーモデルによる予測精度よりも高い予測精度を実現することが可能である。
【0015】
また、本発明に係るリコメンドプログラムは、前記したリコメンド方法をコンピュータに実行させることを特徴とする。このように構成されることにより、このプログラムをインストールされたコンピュータは、このプログラムに基づいた各機能を実現することができる。
【0016】
また、本発明に係るコンピュータ読み取り可能な記録媒体は、前記したリコメンドプログラムが記録されたことを特徴とする。このように構成されることにより、この記録媒体を装着されたコンピュータは、この記録媒体に記録されたプログラムに基づいた各機能を実現することができる。
【発明の効果】
【0017】
本発明によれば、購買順序を考慮しつつ、計算コストが低く、かつ、予測精度の高いリコメンド技術を提供することができる。その結果、ユーザが所望する商品の情報に対して迅速にアクセスできるようになると共に、商品提供者の収益を増加させることが可能となる。
【発明を実施するための最良の形態】
【0018】
以下、図面を参照して本発明のリコメンド装置およびリコメンド方法を実施するための最良の形態(以下「実施形態」という)について詳細に説明する。
【0019】
図1は、本発明の実施形態に係るリコメンド装置の構成を示すブロック図である。リコメンド装置1は、商品またはサービスを示す販売対象(商品群)を購買したことのある複数のユーザの購買順序に基づいて、それぞれのユーザに対して、販売対象(商品群)に属する個別対象(商品)のいずれかをリコメンド対象として提示する(リコメンドする)ものである。リコメンド装置1は、図1に示すように、演算手段2と、入力手段3と、記憶手段4と、出力手段5とを備えており、これら各手段2〜5はバスライン6に接続されている。
【0020】
演算手段2は、例えば、CPU(Central Processing Unit)およびRAM(Random Access Memory)から構成される主制御装置である。この演算手段2は、図1に示すように、前処理部(前処理手段)21と、拡張マルコフモデル推定部(拡張マルコフモデル推定手段)22と、重み推定部(重み推定手段)23と、リコメンド部(リコメンド手段)24と、メモリ25とを含んで構成される。なお、各部21〜24の詳細な説明は後記する。
【0021】
入力手段3は、例えば、キーボード、マウス、ディスクドライブ装置などから構成される。この入力手段3は、例えば、データとして購買履歴ログ(購買履歴情報)を入力し、記憶手段4に格納する。
【0022】
購買履歴ログ(購買情報)は、ユーザが過去に購入した1以上の個別対象(商品)に関する情報を含んでいる。この購買履歴ログは、例えば、表1に示すように、商品の購買ごとに(売買成立ごとに)、ユーザ番号と、商品番号と、購買時刻とを記録したログである。表1の例では、ユーザ番号が「1」であるユーザは、商品番号が「3」,「1」,「6」の商品を購入したことが分かる。
【0023】
【表1】

【0024】
記憶手段4は、例えば、一般的なハードディスク装置などから構成され、演算手段2で用いられる各種プログラムや各種データ等を記憶する。この記憶手段4は、プログラムとして、前処理プログラム41と、拡張マルコフモデル推定プログラム42と、重み推定プログラム43と、リコメンドプログラム44とをプログラム格納部40aに記憶する。そして、演算手段2は、これらのプログラム41〜44を記憶手段4から読み込んでメモリ25に展開して実行することで、前記した前処理部21、拡張マルコフモデル推定部22、重み推定部23、リコメンド部24の各機能を実現する。
【0025】
また、記憶手段4は、購買履歴ログ45と、入力データ(処理用データ)46と、事前確率47と、ギャップマルコフモデル48と、重み49とをデータ格納部40bに記憶する。ここで、購買履歴ログ45は、入力手段3から入力されるデータであり、例えば、前記した表1に示したものである。入力データ46は、演算手段2の前処理部21の演算処理結果を示すデータである。事前確率47とギャップマルコフモデル48とは、演算手段2の拡張マルコフモデル推定部22の演算処理結果を示すデータである。重み49は、演算手段2の重み推定部23の演算処理結果を示すデータである。
【0026】
出力手段5は、例えば、グラフィックボード(出力インタフェース)およびそれに接続されたモニタである。モニタは、例えば、液晶ディスプレイ等から構成され、演算処理結果(例えば、リコメンドする商品の情報等)を表示する。
【0027】
次に、演算手段2の各部の構成の詳細を説明する。
<前処理部>
図2は、前処理部の構成を示す機能ブロック図である。前処理部21は、購買履歴ログ45を用いて、ユーザごとに、商品(個別対象)の購買系列(購買履歴)を抽出したデータを示す入力データ(処理用データ)を作成するものであり、図2に示すように、購買履歴ログ読込部211と、入力データ書込部212とを備えている。
【0028】
購買履歴ログ読込部211は、購買履歴ログ45から、各購買のユーザ、時刻、商品の情報を読み込み、入力データ書込部212に出力する。
入力データ書込部212は、購買履歴ログ45に含まれる商品の購買ごとのユーザ番号、商品番号、購買時刻に基づいて、ユーザごとに、購入商品の購買系列を算出するものである。また、入力データ書込部212は、ユーザごとに算出した購買系列を、入力データ(処理用データ)46として、記憶手段4(図1参照)に書き込む。なお、書き込まれた入力データ46は、拡張マルコフモデル推定部22と、重み推定部23と、リコメンド部24で利用される。
【0029】
以下では、ユーザ集合Uは式(1)で定義され、商品集合Sは式(2)で定義されるものとする。式(1)において、nはユーザ番号(単にユーザともいう)、Nはユーザ数を示す。式(2)において、jは商品番号(単に商品ともいう)、Vは商品数を示す。
【0030】
【数1】

【0031】
あるユーザnがk番目に購入した商品xn,kは式(3)に示すように商品集合Sに含まれ、そのときのユーザnの購買系列unkは、式(4)で表される。式(4)で示した購買系列unkは、ユーザnがk番目の商品xn,kを購入する前に購入した(k−1)個の商品による系列である。この購買系列unkは、入力データ書込部212によって、購買履歴ログ45から算出される。
【0032】
【数2】

【0033】
ここで、入力データ(処理用データ)46の具体例について表2を参照して説明する。入力データは、表2に示されるように、各ユーザの購入商品の購買系列で構成される。
【0034】
【表2】

【0035】
例えば、表1に示す購買履歴ログ45によれば、ユーザ番号が「1」であるユーザ(n=1)は、商品番号「3」の商品に続いて商品番号「1」の商品を購入している。これにより、表2に示すように、ユーザ番号nが「1」の購買系列の要素である「x1,1」は、商品番号「3」の商品を示し、同様に「x1,2」は、商品番号「1」の商品を示すこととなる。
【0036】
<拡張マルコフモデル推定部>
図3は、拡張マルコフモデル推定部の構成を示す機能ブロック図である。
拡張マルコフモデル推定部22は、図3に示すように、入力データ読込部221と、事前確率推定部222と、ギャップマルコフモデル推定部223と、拡張マルコフモデル書込部224とを備えている。
入力データ読込部221は、入力データ46を読み込み、事前確率推定部222およびギャップマルコフモデル推定部223に出力する。
【0037】
≪事前確率推定部≫
事前確率推定部(事前確率推定手段)222は、前処理部21(図1参照)で作成された入力データ46を用いて、ユーザが商品(個別対象)を購入する確率を示す事前確率を推定するものである。
本実施形態では、事前確率推定部222は、式(5)に示す事前確率P^(i)の計算を行う。なお、本明細書において、記号「^(ハット)」は直前の文字の上に記載されることを意味する。
最大事後確率(MAP:Maximum A Posteriori)推定によると、商品iを購入する事前確率P^(i)は、式(5)で推定される。式(5)において、δは、データ数が少ない場合に計算を安定化させる役割を持つハイパーパラメータであり、leave-one-out交差検定法により推定することができる。
【0038】
【数3】

【0039】
事前確率推定部222は、事前確率推定部222で推定された事前確率P^(i)を拡張マルコフモデル書込部224に出力する。
【0040】
≪ギャップマルコフモデル推定部≫
ギャップマルコフモデル推定部(ギャップマルコフモデル推定手段)223は、前処理部21(図1参照)で作成された入力データ46を用いて、ユーザが所定の商品(個別対象)を購入したときにその前に購入した商品(個別対象)が特定の商品(個別対象)である確率を示すギャップマルコフモデルを推定するものである。
本実施形態では、ギャップマルコフモデル推定部223は、式(6)に示すlギャップマルコフモデルPl(jl|i)の計算を行う。lギャップマルコフモデルPl(jl|i)は、商品iを購入したl個前の商品がjである確率を表す。MAP推定によると、lギャップマルコフモデルは、式(6)で推定される。ギャップマルコフモデル推定部223は、推定されたlギャップマルコフモデルを拡張マルコフモデル書込部224に出力する。
【0041】
【数4】

【0042】
前記した式(5)に示した事前確率および式(6)に示したlギャップマルコフモデルにおけるパラメータは、それぞれ単純な和のみで計算できる。そのため、これらの推定に必要な計算量は少なく、また、新たなデータが増えたときに、これらの更新は容易に行うことができる。
【0043】
拡張マルコフモデル書込部224は、式(5)に示した事前確率を事前確率47として記憶手段4(図1参照)に格納する。また、拡張マルコフモデル書込部224は、式(6)に示したギャップマルコフモデルをギャップマルコフモデル48として記憶手段4(図1参照)に格納する。なお、格納された事前確率47およびギャップマルコフモデル48は、重み推定部23およびリコメンド部24で利用される。
【0044】
<重み推定部>
図4は、重み推定部の構成を示す機能ブロック図である。重み推定部23は、拡張マルコフモデル推定部22(図1参照)で推定された事前確率47とギャップマルコフモデル48とを最大エントロピー原理により結合したモデルを示す結合モデルを構築し、構築した結合モデルの未知パラメータを示す重みを推定するものである。なお、この結合モデルのことを拡張マルコフモデルともいう。
【0045】
重み推定部23は、図4に示すように、入力データ読込部231と、拡張マルコフモデル読込部232と、ギャップ重み推定部233と、重み書込部234とを備えている。
入力データ読込部231は、入力データ46を読み込み、ギャップ重み推定部233に出力する。
拡張マルコフモデル読込部232は、事前確率47とギャップマルコフモデル48を読み込み、ギャップ重み推定部233に出力する。
【0046】
≪ギャップ重み推定部≫
ギャップ重み推定部233は、入力データ46と、事前確率47と、ギャップマルコフモデル48とを用いて、式(7)および式(8)の制約のもと、エントロピーを最大化することにより、事前確率47と、ギャップマルコフモデル48とを最大エントロピー原理により結合して式(9)に示す結合モデルを構築し、その重みを推定する。なお、以下では、対数は自然対数、すなわち、対数logの底は「e」であるものとする。また、式(9)において、商品iを購入するl個前に購入した商品をjlとする。また、Lは、k番目の商品を購入するまでに購入した商品の個数を示す。
【0047】
【数5】

【0048】
式(7)の左辺は、「経験分布による事前分布の対数尤度」である。また、式(7)の右辺は、「モデルP(確率)」と、「事前分布の対数尤度」との積であらわしたもの(これはモデルPについての期待値に相当する)を示す。そして、式(7)の左辺が、式(7)の右辺と等しいと仮定すること(第1条件)が「制約」を意味する。
【0049】
式(8)の左辺は、「ギャップマルコフモデルの対数尤度」である。また、式(8)の右辺は、「モデルP(確率)」と、「ギャップマルコフモデルの対数尤度」との積であらわしたもの(これはモデルPについての期待値に相当する)を示す。そして、式(8)の左辺が、式(8)の右辺と等しいと仮定すること(第2条件)が「制約」を意味する。
【0050】
この場合、式(9)に示す結合モデルは、式(10)に示すように展開することができる。式(10)において、Zは式(11)で示される正規化項であり、αは式(12)で示される未知パラメータ(以下、重みともいう)である。なお、本明細書において、αに添字を付す場合には、個別のパラメータを指し、αに添字を付さない場合には、L個のパラメータの集合を指す。
【0051】
【数6】

【0052】
未知パラメータαは、式(13)に示す対数尤度Jを、例えば、準ニュートン法などの最適化手法を用い最大化することにより、大域的最適解を得ることができる。
【0053】
【数7】

【0054】
式(13)に示す対数尤度Jは、対象とする全ユーザについての購買系列unk、つまり、入力データ(処理用データ)から求められる、対象とする全商品(全個別対象)xn,kの購入確率の対数尤度を示す。したがって、ギャップ重み推定部233は、式(13)に示す対数尤度Jを最大化することで重みαを推定する。
【0055】
また、本実施形態では、ギャップ重み推定部233は、過学習を抑えるため、未知パラメータαの事前分布として平均0の正規分布を用いることとする。なお、学習に用いなかったデータに対する汎化誤差が大きくなってしまう現象は過学習と呼ばれている。ここで、予め定められた学習データのうち、拡張マルコフモデル推定部22によって事前確率およびギャップマルコフモデルの推定に用いた学習データを、未知パラメータαの推定に用いると、過学習する可能性がある。そのため、交差検定法により、未知パラメータαを推定する。すなわち、予め定められた学習データを分割し、事前確率およびギャップマルコフモデルの推定に用いなかったデータの対数尤度を準ニュートン法などの最適化手法を用い最大化することにより、重みαを推定する。
【0056】
重み書込部234は、ギャップ重み推定部233で推定された重みαを重み49として記憶手段4(図1参照)に格納する。なお、格納された重み49は、リコメンド部24で利用される。
【0057】
<リコメンド部>
図5は、リコメンド部の構成を示す機能ブロック図である。
リコメンド部24は、入力データ(処理用データ)46と、推定された事前確率47と、推定されたギャップマルコフモデル48と、推定された重み49とを用いて、結合モデル(拡張マルコフモデル)から計算されるユーザの購入する確率が最大となる商品(個別対象)を選択してリコメンド対象として提示するものである。
【0058】
リコメンド部24は、図5に示すように、入力データ読込部241と、拡張マルコフモデル読込部242と、重み読込部243と、最大商品選択部244と、リコメンド出力部245とを備えている。
【0059】
入力データ読込部241は、入力データ46を読み込み、最大商品選択部244に出力する。
拡張マルコフモデル読込部242は、事前確率47とギャップマルコフモデル48とを読み込み、最大商品選択部244に出力する。
重み読込部243は、重み49を読み込み、最大商品選択部244に出力する。
【0060】
最大商品選択部244は、式(14)に示す演算を実行する。ここで、ユーザnの購買履歴unを式(15)とする。なお、Knは、ユーザnの購入商品数である。
【0061】
【数8】

【0062】
本実施形態では、最大商品選択部244は、式(14)から計算されるユーザnの購入する確率が、最も高い商品を選択する。すなわち、最大商品選択部244は、ユーザuが購入した商品の商品集合S(商品番号 1≦i≦V)の中から、式(14)で示される確率が最大になる商品(商品番号)

を選択する。
【0063】
リコメンド出力部245は、最大商品選択部244で選択された商品番号を出力することで、当該商品番号の商品をリコメンド対象として提示する。このリコメンド対象は、出力手段5に出力される。
【0064】
[リコメンド装置の動作]
図1に示したリコメンド装置1の動作について図6を参照(適宜図1参照)して説明する。図6は、リコメンド装置の動作を示すフローチャートである。リコメンド装置1は、前処理部21によって、購買履歴ログ45を用いて、入力データを生成する(ステップS1:前処理ステップ)。そして、リコメンド装置1は、拡張マルコフモデル推定部22によって、拡張マルコフモデル推定処理を実行する(ステップS2:拡張マルコフモデル推定ステップ)。続いて、リコメンド装置1は、重み推定部23によって、ステップS2で推定された事前確率47とギャップマルコフモデル48とを用いて、重み推定処理を実行する(ステップS3:重み推定ステップ)。そして、リコメンド装置1は、リコメンド部24によって、結合モデル(拡張マルコフモデル)から計算されるユーザの購入する確率が最大となる商品(個別対象)を選択してリコメンドする(ステップS:リコメンドステップ)。
【0065】
次に、前記したステップS2の拡張マルコフモデル推定処理と、前記したステップS3の重み推定処理について図7および図8をそれぞれ参照して説明する。図7は、拡張マルコフモデル推定処理を示すフローチャートであり、図8は、重み推定処理を示すフローチャートである。
【0066】
まず、前記したステップS2の拡張マルコフモデル推定処理では、図7に示すように、
拡張マルコフモデル推定部22は、入力データ読込部221によって、記憶手段4(図1参照)から、入力データ46を読み込む(ステップS21)。そして、拡張マルコフモデル推定部22は、事前確率推定部222によって、事前確率を推定し(ステップS22)、拡張マルコフモデル推定部22は、ギャップマルコフモデル推定部223によって、ギャップマルコフモデルを推定する(ステップS23)。そして、拡張マルコフモデル推定部22は、拡張マルコフモデル書込部224によって、推定された事前確率とギャップマルコフモデルとを記憶手段4(図1参照)に格納する(ステップS24)。なお、ステップS22の処理と、ステップS23の処理との実行順序は、任意であり、処理を並列に実行してもよい。
【0067】
次に、前記したステップS3の重み推定処理では、図8に示すように、重み推定部23は、入力データ読込部231によって、記憶手段4(図1参照)から、入力データ46を読み込む(ステップS31)。また、重み推定部23は、拡張マルコフモデル読込部232によって、記憶手段4(図1参照)から、事前確率47とギャップマルコフモデル48を読み込む(ステップS32)。続いて、重み推定部23は、ギャップ重み推定部233によって、入力データ46と、事前確率47と、ギャップマルコフモデル48とを用いて、結合モデルの未知パラメータαを推定する(ステップS33)。そして、重み推定部23は、重み書込部234によって、推定されたパラメータαを重み49として記憶手段4(図1参照)に格納する(ステップS34)。なお、ステップS31の処理と、ステップS32の処理との実行順序は、任意であり、処理を並列に実行してもよい。
【0068】
なお、リコメンド装置1は、一般的なコンピュータに、前記した各ステップを実行させるリコメンドプログラムを実行することで実現することもできる。このプログラムは、通信回線を介して配布することも可能であるし、CD−ROM等の記録媒体に書き込んで配布することも可能である。
【0069】
本実施形態によれば、購買順序を考慮しつつ、計算コストが低く、かつ、予測精度の高い商品をユーザにリコメンドすることができる。その結果、ユーザが所望する商品の情報に対して迅速にアクセスできるようになると共に、商品提供者の収益を増加させることが可能となる。
【0070】
以上、本発明の実施形態について説明したが、本発明はこれに限定されるものではなく、その趣旨を変えない範囲で実施することができる。例えば、リコメンド装置1を構成する装置は、1台に限定されることはなく、複数の装置に機能を分散配置してもよい。例えば、演算手段2の前処理部21、拡張マルコフモデル推定部22、重み推定部23、リコメンド部24や、記憶手段4のデータ格納部40bを、別々の装置として構成してもよい。これにより、各装置への負荷が分散され、高速な処理が実現可能となる。
【実施例】
【0071】
本発明の効果を確認するために、本実施形態に係るリコメンド装置1に、音楽配信サービスの購買履歴ログを入力する場合の商品の予測精度と、動画配信サービスの購買履歴ログを入力する場合の商品の予測精度とを求めた。
【0072】
<設定>
音楽配信サービスの購買履歴ログ(以下、音楽データという)は、2005年4月1日から2005年6月30日までの音楽配信サービスにおける購買履歴を示すログである。この音楽データにおいて、ユーザ数は「2,104」、商品数(楽曲数)は「561」、購買数は「15,216」であった。
動画配信サービスの購買履歴ログ(以下、動画データという)は、2007年1月1日の動画配信サービスにおける購買履歴を示すログである。この動画データにおいて、ユーザ数は「3,085」、商品数は「1,569」、購買数は「25,363」であった。
【0073】
なお、音楽データおよび動画データから、売上数が「10」未満の商品を省くと共に、購買数が「5」未満であるユーザを省いた。また、あるユーザが同じ商品を2回以上購入した場合、その商品に関する2回目以降の購買を購買履歴から省いた。また、各ユーザが最後に購入した商品をテストデータとして用いると共に、それ以前の購買履歴を学習データとして用いた。ここで、ユーザが最後に購入した商品が、学習データに含まれていないものである場合には、その商品をテストデータから省いた。
【0074】
実施例(Our Method)を以下の6つのモデル(比較例1〜比較例6)と比較した。
比較例1:1次マルコフモデル(1stMarkov)
比較例2:2次マルコフモデル(2ndMarkov)
比較例3:3次マルコフモデル(3rdMarkov)
比較例4:ギャップマルコフモデルがそれぞれ独立と仮定したモデル(GapMarkov)
比較例5:購買順序を考慮した最大エントロピーモデル(MaxEnt(seq))
比較例6:購買順序を考慮しない最大エントロピーモデル(MaxEnt)
【0075】
ここで、事前確率およびギャップマルコフモデルにおけるハイパーパラメータは、leave-one-out交差検定法により求めた。すなわち、本実施形態のリコメンド装置1では、前記した式(5)におけるハイパーパラメータ“δ”と、式(6)におけるハイパーパラメータ“δ”とを、leave-one-out交差検定法により求めた。
また、最大エントロピーモデルにおけるパラメータの事前分布は、分散が「1」の正規分布とした。すなわち、本実施形態のリコメンド装置1では、前記した式(12)における未知パラメータ(重み)αの事前分布は、分散が「1」の正規分布とした。
また、本実施形態のリコメンド装置1では、重みαを10重交差検定法により求めた。
【0076】
<結果(正答率)>
このときの各手法の実験結果(正答率)を表3に示す。
【0077】
【表3】

【0078】
比較例4(GapMarkov)、比較例5(MaxEnt(seq))、実施例(Our Method)において、l個前までの購買履歴を用いた手法(l=1,…,10)で実験し、最もよい正答率となったときの値を表示し、そのときのlを括弧内に表示している。つまり、表3では、例えば、実施例(Our Method)の場合には、音楽データはl=8の場合に正答率が最もよく、動画データはl=9の場合に正答率が最もよいことを示している。
【0079】
表3に示すように、音楽データおよび動画データのいずれでも、実施例(Our Method)の正答率が最も高かった。比較例4(GapMarkov)の正答率が実施例(Our Method)の正答率に比べて低くなった理由は、「ギャップマルコフモデルがそれぞれ独立である」という仮定が適切ではないためであると考えられる。
【0080】
また、表3に示すように、比較例3(3rdMarkov)は、すべてのデータセットにおいて、比較例1(1stMarkov)や比較例2(2ndMarkov)に比べて正答率が低くなっている。これは、高次になるとパラメータ数がデータ数に比べて多くなり、頑健な推定ができていないためであると考えられる。
【0081】
また、比較例5(MaxEnt(seq))と比較例6(MaxEnt)とを比較すると、すべてのデータセットにおいて、比較例5(MaxEnt(seq))は、比較例6(MaxEnt)に比べて正答率が高くなっている。これは、購買順序を考慮することは、正答率を上げるために重要であることを示唆している。
【0082】
<重みαとギャップlとの関係>
また、本実施例でリコメンド装置1により推定された重みαとギャップlとの関係を図9に示す。図9において、musicは、音楽データを示し、movieは、動画データを示している。なお、αl(l=1〜10)は、lギャップマルコフモデルの重みを示し、αl(l=0)は、事前確率の重みを示す。図9のグラフに示すように、全データセットともに、ギャップが小さいギャップマルコフモデルの重みが大きい。これは、最近の履歴が購買予測に関する大きな情報を与えるという直感と一致している。
【0083】
<d日前までのデータで推定した重みαを用いた正答率>
音楽データについて、d日前までのデータで推定した重みαを用いて、事前確率、ギャップマルコフモデルのみを更新したときの正答率を図10に示す。ここで、事前確率およびギャップマルコフモデルにおけるハイパーパラメータ“δ”もd日前までのデータで推定したものを用いた。なお、図10の縦軸は、正答率(accuracy)であり単位は%である。
【0084】
図10に示すように、実施例(Our Method)は、比較例6(MaxEnt)、比較例4(GapMarkov)および比較例1(1stMarkov)と比べて、正答率(accuracy)が高い。また、実施例(Our Method)は、過去何日のデータを用いるかによって正答率(accuracy)が変動する。そのため、実施例(Our Method)は、比較例5(MaxEnt(seq))よりも正答率が高い場合と、低い場合とがあって、平均すると、比較例5(MaxEnt(seq))と同程度の性能であると言える。なお、実施例(Our Method)は、過去のデータとして、例えば30日前までのデータで推定した重みを用いた場合には、正答率が、比較例5(MaxEnt(seq))の正答率よりも約1%上回った。
【0085】
これらの結果から、以下のことが理解できる。すなわち、図1に示す購買履歴ログ45に新規のデータを追加した場合、つまり、入力データ(処理用データ)46が追加された場合に、事前確率47、ギャップマルコフモデル48、重み49を、それぞれ更新する必要がある。このうち、事前確率47およびギャップマルコフモデル48よりも、重み49の方がパラメータの更新に多くの計算量が必要である。したがって、重みαを1カ月に1回程度の割合で更新し、かつ、事前確率とギャップマルコフモデルをそれよりも短い間隔で更新するようにしても、重みαを頻繁に更新したときと同様な高い予測精度を実現できる。そのため、重みαを1カ月に1回程度の割合で更新することで、長期スパンの計算コストを効果的に抑制することが可能となる。
【図面の簡単な説明】
【0086】
【図1】本発明の実施形態に係るリコメンド装置の構成を示すブロック図である。
【図2】前処理部の構成を示す機能ブロック図である。
【図3】拡張マルコフモデル推定部の構成を示す機能ブロック図である。
【図4】重み推定部の構成を示す機能ブロック図である。
【図5】リコメンド部の構成を示す機能ブロック図である。
【図6】リコメンド装置の動作を示すフローチャートである。
【図7】拡張マルコフモデル推定処理を示すフローチャートである。
【図8】重み推定処理を示すフローチャートである。
【図9】ギャップとしてl個前までの購買履歴を用いて推定された重みを示すグラフである。
【図10】d日前までのデータで推定した重みを用いたときの音楽データでの正答率を示すグラフである。
【符号の説明】
【0087】
1 リコメンド装置
2 演算手段
3 入力手段
4 記憶手段
5 出力手段
6 バスライン
21 前処理部(前処理手段)
22 拡張マルコフモデル推定部
23 重み推定部(重み推定手段)
24 リコメンド部(リコメンド手段)
25 メモリ
40a プログラム格納部
41 前処理プログラム
42 拡張マルコフモデル推定プログラム
43 重み推定プログラム
44 リコメンドプログラム
40b データ格納部
45 購買履歴ログ
46 入力データ
47 事前確率
48 ギャップマルコフモデル
49 重み
211 購買履歴ログ読込部
212 入力データ書込部
221 入力データ読込部
222 事前確率推定部(事前確率推定手段)
223 ギャップマルコフモデル推定部(ギャップマルコフモデル推定手段)
224 ギャップマルコフモデル書込部
231 入力データ読込部
232 拡張マルコフモデル読込部
233 ギャップ重み推定部
234 重み書込部
241 入力データ読込部
242 拡張マルコフモデル読込部
243 重み読込部
244 最大商品選択部
245 リコメンド出力部

【特許請求の範囲】
【請求項1】
商品またはサービスを示す販売対象を購買したことのある複数のユーザの購買順序に基づいて、それぞれのユーザに対して、前記販売対象に属する個別対象のいずれかをリコメンド対象として提示するリコメンド装置であって、
前記ユーザが過去に購入した1以上の個別対象に関する情報を含む購買履歴情報を用いて、前記ユーザごとに、前記個別対象の購買履歴を抽出したデータを示す処理用データを作成する前処理手段と、
前記作成された処理用データを用いて、前記ユーザが前記個別対象を購入する確率を示す事前確率を推定する事前確率推定手段と、
前記作成された処理用データを用いて、前記ユーザが所定の個別対象を購入したときにその前に購入した個別対象が特定の個別対象である確率を示すギャップマルコフモデルを推定するギャップマルコフモデル推定手段と、
前記推定された事前確率と前記推定されたギャップマルコフモデルとを最大エントロピー原理により結合したモデルを示す結合モデルを構築し、構築した結合モデルの未知パラメータを示す重みを推定する重み推定手段と、
前記作成された処理用データと、前記推定された事前確率と、前記推定されたギャップマルコフモデルと、前記推定された重みとを用いて、前記結合モデルから計算されるユーザの購入する確率が最大となる前記個別対象を選択してリコメンド対象として提示するリコメンド手段と、
を備えることを特徴とするリコメンド装置。
【請求項2】
前記重み推定手段は、
経験分布による事前分布の対数尤度と、前記結合モデルと前記事前分布の対数尤度との積で表した結合モデルについての期待値とが等しいことを示す第1条件と、
ギャップマルコフモデルの対数尤度と、前記結合モデルと前記ギャップマルコフモデルの対数尤度との積で表した結合モデルについての期待値とが等しいことを示す第2条件とを用いて、前記結合モデルを構築し、
対象とする全ユーザについての前記処理用データから、対象とする全個別対象の購入確率の対数尤度を最大化することで前記重みを推定する、
ことを特徴とする請求項1に記載のリコメンド装置。
【請求項3】
商品またはサービスを示す販売対象を購買したことのある複数のユーザの購買順序に基づいて、それぞれのユーザに対して、前記販売対象に属する個別対象のいずれかをリコメンド対象として提示するリコメンド装置のリコメンド方法であって、
前処理手段によって、前記ユーザが過去に購入した1以上の個別対象に関する情報を含む購買履歴情報を用いて、前記ユーザごとに、前記個別対象の購買履歴を抽出したデータを示す処理用データを作成する前処理ステップと、
事前確率推定手段によって、前記作成された処理用データを用いて、前記ユーザが前記個別対象を購入する確率を示す事前確率を推定する事前確率推定ステップと、
ギャップマルコフモデル推定手段によって、前記作成された処理用データを用いて、前記ユーザが所定の個別対象を購入したときにその前に購入した個別対象が特定の個別対象である確率を示すギャップマルコフモデルを推定するギャップマルコフモデル推定ステップと、
重み推定手段によって、前記推定された事前確率と前記推定されたギャップマルコフモデルとを最大エントロピー原理により結合したモデルを示す結合モデルを構築し、構築した結合モデルの未知パラメータを示す重みを推定する重み推定ステップと、
リコメンド手段によって、前記作成された処理用データと、前記推定された事前確率と、前記推定されたギャップマルコフモデルと、前記推定された重みとを用いて、前記結合モデルから計算されるユーザの購入する確率が最大となる前記個別対象を選択してリコメンド対象として提示するリコメンドステップと、
を有することを特徴とするリコメンド方法。
【請求項4】
前記重み推定ステップは、
経験分布による事前分布の対数尤度と、前記結合モデルと前記事前分布の対数尤度との積で表した結合モデルについての期待値とが等しいことを示す第1条件と、
ギャップマルコフモデルの対数尤度と、前記結合モデルと前記ギャップマルコフモデルの対数尤度との積で表した結合モデルについての期待値とが等しいことを示す第2条件とを用いて、前記結合モデルを構築し、
対象とする全ユーザについての前記処理用データから、対象とする全個別対象の購入確率の対数尤度を最大化することで前記重みを推定する、
ことを特徴とする請求項3に記載のリコメンド方法。
【請求項5】
請求項3または請求項4に記載のリコメンド方法をコンピュータに実行させることを特徴とするリコメンドプログラム。
【請求項6】
請求項5に記載のリコメンドプログラムが記録されたことを特徴とするコンピュータ読み取り可能な記録媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2008−287550(P2008−287550A)
【公開日】平成20年11月27日(2008.11.27)
【国際特許分類】
【出願番号】特願2007−132593(P2007−132593)
【出願日】平成19年5月18日(2007.5.18)
【出願人】(000004226)日本電信電話株式会社 (13,992)