以下に、本発明の実施の形態について図面を参照して説明する。
[システムの構成]
図1は、本発明を適用したシステムの一実施の形態の構成を示す図である。図1に示したシステムは、ユーザが所定の情報を提示したときに、その所定の情報に関連性のある情報を推薦するという処理を行うシステムである。また、その情報を推薦するとき、推薦理由もあわせて、ユーザ側に提示すためのシステムである。
学習装置11は、モデルパラメータ保持部12に保持されるモデルパラメータを生成する。推薦情報提供装置13は、モデルパラメータ保持部12に保持されているモデルパラメータを参照して、ユーザに推薦する情報と、その情報を推薦する理由に関する情報を生成し、提供する。
図1においては、また、以下の説明においては、学習装置11、モデルパラメータ保持部12,および、推薦情報提供装置13は、それぞれ別体として図示したが、一体型に構成されていても良い。
学習装置11、モデルパラメータ保持部12,および、推薦情報提供装置13は、それぞれネットワーク(不図示)などで相互にデータの授受が行えるように接続されていても良い。そのように構成された場合、例えば、学習装置11で生成されたモデルパラメータは、ネットワークを介してモデルパラメータ保持部12に保持され、推薦情報提供装置13は、ネットワークを介して、必要に応じて、モデルパラメータ保持部12に保持されているパラメータを参照する。
学習装置11により生成されたモデルパラメータは、所定の記録媒体に記録され、モデルパラメータ保持部12に提供されるようにしても良い。
[学習装置の内部構成例]
図2は、モデルパラメータ保持部12が保持するモデルパラメータ(テーブル)を作成する学習装置11の構成を示す図である。入力部31は、テキストデータなどが入力される。この入力されるデータは、大量の学習用コーパスデータである。入力部31に入力されたデータは、形態素解析部32に供給される。
入力部31に入力されるコーパスデータは、日本語に関するテーブルを作成する場合、日本語の文章が入力されるわけだが、日本語の文章は、単語毎に区切られていないので、例えば、形態素解析などと称される方法により、文章を単語毎に分解する必要がある。そこで、本実施の形態においては、そのような処理を、形態素解析部32が行うように構成する。
また、ここでは、学習用コーパスデータは、所定のジャンルに属する人や、その人の作品などに対するプロフィールや批評記事といった文章であるとする。ここで扱われる学習用コーパスデータは、推薦情報提供装置13により推薦する情報に依存する。すなわち、推薦情報提供装置13で、音楽に関する情報を推薦する場合、所定のミュージシャンや、そのミュージシャンのアルバムに対する批評記事などが、学習用コーパスデータとして用いられる。また、例えば、推薦情報提供装置13で書籍に関する情報を推薦する場合、所定の作家や、その作家の作品に対する批評記事などが、学習用コーパスデータとして用いられる。
これは、例えば、同じ単語であっても、使われるジャンルが異なれば、その意味も異なってくる(ニュアンスが異なってくる)ことがあるからである。例えば、音楽に関して“暖かい”と表現されていれば、バラードなどのジャンルで、精神的に暖かさを感じるということが表現されていると理解できるが、新聞記事などで“暖かい”と表現されていれば、天気に関することで、身体的に暖かさを感じるということが表現されていると理解される。
このように、同じ単語であっても、同一の意味内容で用いられないこともあり、そのようなことを考慮すると、後述する推薦情報提供装置13における推薦する情報の設定などに係わる処理を実行するうえで参照されるモデルパラメータを作成するには、推薦する情報に依存して、学習用コーパスデータを変える方が好ましいと考えられる。
図2の学習装置11の構成の説明に戻り、形態素解析部32から出力されるデータは、単語に関するデータである。なお、ここでは形態素解析の方法に基づいて、文章を単語単位に分解するとして説明を続けるが、他の解析方法を適用することも可能である。
形態素解析部32から出力された単語に関するデータは、データ更新部33に供給される。データ更新部33は、記憶部34に記憶されているデータを更新するために設けられている。記憶部34は、コーパスデータに含まれていた単語の出現回数に関するデータを保持する。記憶部34に記憶されているデータを利用し、モデルパラメータ生成部35は、モデルパラメータ(後述するテーブル61(図5)における確率値)を算出し、図5に示すようなテーブル61を作成する。作成されたテーブル61は、モデルパラメータデータベース36に記憶される。
モデルパラメータデータベース36に記憶されたテーブル61が、ネットワークを介して配布されることにより、所定の記録媒体に記録されて配布されることにより、または、他の手段により、モデルパラメータ保持部12に供給され、保持される。
[学習装置の学習について]
次に、図2に示した学習装置11の学習の仕方(テーブル61の作成の仕方)について、図3のフローチャートを参照して説明する。ステップS11において、入力部31に学習用のコーパスデータが入力され、順次、形態素解析部32に供給され、1単語単位に分解される。形態素解析部32からの単語に関するデータは、データ更新部33に供給される。
このような処理が行われる一方で、ステップS12において、学習用コーパスデータは終了か否か(入力部31に入力された全ての学習用コーパスデータに対する処理は終了したか否か)が判断される。ステップS12における処理は、入力部31が、入力がなくなったか否かを判断することにより行われるようにしても良い。
ステップS12において、学習用コーパスデータは終了していないと判断された場合、ステップS13に処理が進められ、処理対象となっている単語(その時点で、形態素解析部32から出力された単語)に関する出現回数の更新が行われる。例えば、記憶部34には、図4に示すようなテーブル51が記憶されている。テーブル51は、横軸に所定の文章を、縦軸に単語をそれぞれ管理しており、その文章と単語が交わる欄には、所定の文章内で、所定の単語が出現した回数が記載される。
例えば、図4に示したテーブル51においては、文章1に、単語1は5回出現しており、単語2は1回出現しているといったような文章内の単語の出現回数が管理されている。
データ更新部33は、テーブル51を更新する際、まず、処理対象の単語が、既に記憶部34に記憶されているか否か(テーブル51に登録されているか否か)を判断する。そして、処理対象の単語が既にテーブル51に記憶されていると判断された場合、その記憶されていると判断された単語に関連付けられ、処理対象とされている文章に関連付けられている回数を、1だけ増加させる。一方、処理対象の単語は、まだ記憶部34に記憶されていないと判断された場合、その処理単語を新たに登録すると共に、その単語の回数を1と設定する。
例えば、処理対象とされている文章が文章1であり、処理対象の単語が単語Nであった場合、単語Nが既にテーブル51に登録されていたときには、文章1と単語Nが交差する欄に、既に書き込まれている数値が1だけ増加され、単語Nはまだテーブル51に登録されていないときには、新たに、単語Nが登録され、その登録された単語Nと文章1が交差する欄に、1が書き込まれる。
このようなステップS11乃至S13の処理が繰り返されることにより学習が行われる。
そして、ステップS12において、学習用コーパスデータは終了したと判断された場合、ステップS14に処理が進められる。ステップS14において、モデルパラメータの計算が、モデルパラメータ生成部35により行われる。モデルパラメータ生成部35は、記憶部34に記憶されているテーブル51を参照し、例えば、PLSA(Probabilistic Latent Semantic Analysis)法などにより、確率的言語モデルパラメータ(図5のテーブル61における確率値)を算出する。このステップS14における処理の詳細については、図5,6を参照して後述する。
算出された確率値は、意味クラスIDと単語に関連付けられる。このような処理が実行されることにより、図5に示したテーブル61が作成される。作成されたテーブル61は、モデルパラメータデータベース36に記憶される。このモデルパラメータデータベース36に記憶されたテーブル61が、モデルパラメータ保持部12に保持される。
ここで、図5に示したテーブル61について説明を加える。図5に示したテーブル61は、横に意味クラス、縦に単語をとり、交わる部分に、その単語のその意味クラスでの確率値が記載されている。例えば、単語w1の意味クラスz1における確率値は、P(z1|w1)である。
ここで、意味クラスについて、また、確率値(モデルパラメータ)について図6を参照して説明する。図6には、単語w1,w2,w3,w4に関するパラメータを、それぞれグラフ化したものを示している。図6に示した各グラフは、縦軸にp(z|w)の値をとり、横軸に意味クラスをとったものとされている。また、図6に示した各グラフは、意味クラス数をz=10に設定したときのものとされている。
意味クラスとは、特定のジャンルなど、人が識別できるようなクラスを示すものではなく、後述する推薦する情報の設定や推薦理由を選択するにあたり、単語や文脈などを特徴付けるために設定されたものである。
p(z|w)は、単語wが生起するという条件のもとで、意味クラスzが生起する条件付き確率の値を示す。p(z|w)は、次式(1)により算出される。
式(1)からp(z|w)は、p(w|z)とp(z)から算出されることがわかる。p(w|z)とp(z)は、EMアルゴリズムのうち、M−stepにおいて用いられる次式(2)と次式(3)により、それぞれ算出される。
すなわち、p(w|z)とp(z)から単語の意味クラスへの帰属確率分布p(z|w)を求めることができる。この意味クラスへの帰属確率分布を求めることにより、単語wのもつ意味の概要を表現することができる。
なお、EMアルゴリズムとは、図7に示すE―stepとM―stepとから構成される演算である。式(1)乃至(3)で示したp(z),p(w|z),p(d|z)というパラメータは、図7に示す、式(4)乃至式(8)(式(5)は式(2)であり、式(7)は式(3)である)によるEM(期待値最大化)アルゴリズムを利用してそれぞれ最適化される。
ステップS14におけるモデルパラメータの計算は、このEMアルゴリズムにおけるE−stepとM−stepが繰り返し演算されることにより行われる。
図6を参照するに、単語w1と単語w2は、共通の意味クラスz2とz9に対して高い帰属確率が与えられているなど分布の形状が類似しており、意味的に共通点がある。これに対し、単語w3は、単語w1や単語w2と共通の意味クラスで高い帰属確率が与えられるようなことがなく、分布の形状が異なり、意味的な共通点が少ない。
また、単語w4のグラフを参照するに、意味クラス毎の帰属確率値は、一様な値であり、特に高い確率値を有する意味クラスは存在していない。このようなグラフは、機能語、例えば、“〜する”といった語であり、特定の意味を表現しない(1または複数の意味クラスの確率値で特徴を表すことができず、確率値の分布に基づいて分類することができない語である)ことを示している。
このように、単語wの意味確率分布p(z|w)は、意味的に特徴のある単語に対しては確率値が意味クラスにより偏るが(分布自体に特徴が表れるが)、機能語のような意味的には特徴をあまり有さないような単語に対しては、確率値は意味クラスにより偏るようなことがないといった特徴を有する。
このような特徴を、単語wの意味確率分布p(z|w)は有するため、図6に示した例では、意味クラスの数を10に設定した場合を示したが、意味クラスの数を10以上に設定し、より詳細に解析すれば、単語の特徴をより明確に表すことができると考えられる。
図6に示したような単語毎に意味クラスと確率値(モデルパラメータ)が関連付けられたデータを、テーブル化すると、例えば、図5に示したようなテーブル61となる。
なお、テーブル61として保持される単語として、例えば、“〜は”、“〜しない”といったような助詞や助動詞は、ユーザ側に提供する情報としては不適切である。すなわち、このテーブル61は、推薦情報提供装置13がユーザ側に推薦する情報や推薦理由を設定する際に参照されるテーブルであり、このテーブル61に記載されている単語がユーザ側に提示されるため、提示する情報として助詞や助動詞は不適切であると考えられる。
そこで、例えば、ステップS14の処理が終了された後、よって、図5に示したようなテーブル61が作成された後に、そのテーブル61から、助詞や助動詞といったユーザに提供するには好ましくないと思われる単語が削除されるといった処理を設けるようにしても良い。その際、削除される単語は、助詞や助動詞だけに限定されるものではない。
また、さらに、テーブル61が作成された後、そのテーブル61から、人手により不要な単語が削除されるような処理が含まれるようにしても良い。
このようにして作成(学習)されたテーブル61は、モデルパラメータ保持部12により保持される。
以下の説明においては、モデルパラメータ保持部12には、図8に示すように、2つのテーブル61−1とテーブル61−2が保持されているとして説明する。テーブル61−1は、ユーザに推薦する情報が記載されているテーブルであり、テーブル61−2は、推薦理由が記載されているテーブルである。テーブル61−1とテーブル61−2は、それぞれ、図5に示したテーブル61と同様に、単語と意味クラスIDが関連付けられたテーブルである。
以下の説明においては、テーブル61−1を、推薦情報テーブル61−1と記載し、テーブル61−2を、推薦理由テーブル61−2と記載する。また、以下の説明においては、音楽に関する情報をユーザに提供する(推薦する)場合を例にあげて説明する。音楽に関する情報をユーザに推薦する場合、推薦情報テーブル61−1に記載されている単語(推薦する情報)(例えば、単語w1,w2など)は、アーティスト名(ミュージシャンの名前)や、曲目などであり、推薦理由テーブル61−2に記載されている単語(推薦理由に関する情報)(例えば、単語w1’,w2’など)は、アーティストを表現する形容詞などである。
なお、ここでは、モデルパラメータ保持部12には、推薦情報テーブル61−1と推薦理由テーブル61−2という2つのテーブルが保持されるとして説明するが、これらのテーブルを1つのテーブルとして管理するようしても勿論良い。1つのテーブルとして管理する場合、例えば、上位n番目までは、推薦情報テーブル61−1として用い、n番目以降は、推薦理由テーブル61−2として用いるようにする。
また、ここでは、2つのテーブルがモデルパラメータ保持部12で保持されるとして説明を続けるが、これらの2つのテーブルを参照するためのリストがさらに管理されるようにしても良い。例えば、図9に示すように、推薦情報テーブル61−1に記載されている単語のみから構成されるリスト62−1と、推薦理由テーブル61−2に記載されている単語のみから構成されるリスト62−2が、さらに、モデルパラメータ保持部12に保持されるようにしても良い。
図9に示したようにリスト62−1,62−2を設けるようにした場合、また、学習装置11でテーブル61が作成された後、そのテーブル61から、人手により不要な単語を削除するような処理を行うようにした場合、その処理を実行する人は、リスト62−1やリスト62−2を参照するだけで、推薦情報テーブル61−1や推薦理由テーブル61−2にそれぞれ管理されている単語を認識することができ、不要な単語を削除するといった処理を行いやすくなる。
このように、モデルパラメータ保持部12に保持されるテーブルなどは、適宜変更可能である。
次に、モデルパラメータ保持部12に保持されているテーブルを用いて処理を実行する推薦情報提供装置13について説明を加える。
[推薦情報提供装置の構成]
図10は、推薦情報提供装置13の内部構成例を示す図である。推薦情報提供装置13は、ユーザから提供される情報を取得する情報取得部101を備える。ここでは、ユーザにより情報が提供され、その情報に対応する(関連する)情報が、ユーザ側に提供(推薦)される例をあげて説明する。ここでは、上記したように、ユーザ側に提供(推薦)する情報は、音楽に関する情報である場合を例にあげて説明するため、ユーザから提供される情報も、音楽に関する情報である。
例えば、ネットワーク上で開店している店舗(サーバ)に、推薦情報提供装置13が備えられ、その店舗でユーザ(客)が所定のアーティストのCD(Compact Disc)を購入するとき、その“所定のアーティスト”の情報が、ユーザから提供される情報として利用される。このようなとき、情報取得部101は、ネットワーク(不図示)を介してユーザからの情報を取得するため、ネットワークを介してデータの授受を行うことができる通信部を備える構成とされる。
また、推薦情報提供装置13が、ユーザ側の装置(例えば、パーソナルコンピュータなどの端末)に備えられている場合、情報取得部101は、キーボードやマウスなどのユーザからの情報(ユーザからの指示)を受け付ける操作部を含む構成とされる。
また、ユーザから提供される情報は、ユーザが、商品を購入する意志をもって入力した情報の他に、何らかの検索の対象としたい情報、例えば、類似する情報を検索したいときなどに入力した情報などでも良い。
情報取得部101により取得されたユーザからの情報は、距離計算部102に供給される。距離計算部102には、テーブル参照部103により参照された推薦情報テーブル61―1(図8)からの情報も供給される。詳細は後述するが、距離計算部102は、情報取得部101からの情報と、推薦情報テーブル61−1に記載されている単語との距離を計算する。計算結果は、推薦単語抽出部104に供給される。
推薦単語抽出部104は、距離計算部102から供給される計算結果を参照し、最も距離が近いとされる単語を抽出する。換言すれば、推薦単語抽出部104は、情報取得部101により取得されたユーザからの情報に、最も類似していると判断される、推薦情報テーブル61−1に記載されている情報(単語)を抽出する。
推薦単語抽出部104により抽出された単語に関する情報は、共通意味クラス抽出部105に供給される。共通意味クラス抽出部105は、ユーザからの情報と、推薦単語抽出部104からの情報に、共通する意味クラスを抽出し、その抽出した意味クラスを示す情報を、推薦理由抽出部106に供給する。
推薦理由抽出部106は、共通意味クラス抽出部105から供給された意味クラスを示す情報を用いて、また、テーブル参照部103が参照する推薦理由テーブル61−2に記載されている情報を参照し、推薦理由となる単語を抽出する。推薦理由抽出部106により抽出された単語は、提供部107に提供される。提供部107は、推薦単語抽出部104により抽出された推薦する情報と、推薦理由抽出部106により抽出された推薦理由とする情報とを、ユーザに提供する。
提供部107は、情報取得部101と対になる構成とされる。すなわち、推薦情報提供装置13が、ネットワーク上のサーバに備えられている場合、提供部107は、通信部を備え、その通信部を制御することにより、ユーザ側の端末に情報を提供する。ユーザ側の端末は、提供された情報をディスプレイ上に表示するなどして、ユーザに情報を提示する。または、推薦情報提供装置13が、ユーザ側の端末に備えられている場合、提供部107は、ディスプレイなどの表示部(不図示)を備え、その表示部の表示を制御することにより、ユーザに情報を提供する。
このような構成を有する推薦情報提供装置13の動作について説明する。
[推薦情報提供装置の動作について]
図11は、推薦情報提供装置13の動作について説明するためのフローチャートである。ステップS31において、情報取得部101は、ユーザからの情報を取得する。ここで、取得される情報は、例えば、アーティスト名などの単語である。取得されたアーティスト名などの単語は、距離計算部102に供給される。
ステップS32において、距離計算部102は、供給された単語に関する意味クラスに係わる情報を、推薦情報テーブル61−1から読み出す。例えば、距離計算部102は、テーブル参照部103に、モデルパラメータ保持部12に保持されている推薦情報テーブル61−1を読み出すように指示を出す。その指示に対応し、テーブル参照部103は、推薦情報テーブル61−1を読み出し、距離計算部102に供給する。
距離計算部102は、取得した推薦情報テーブル61−1を参照し、ユーザから供給された単語を検索し、その検索された単語のモデルパラメータ(確率値)を読み出す。このようにして、ユーザから供給された情報(単語)のモデルパラメータが読み出される。その読み出された単語とモデルパラメータは、共通意味クラス抽出部105に供給される。また、距離計算部102は、読み出された単語のモデルパラメータを用いて、推薦情報テーブル61−1に記載されている各単語との距離を計算する。
例えば、ユーザから供給された単語が、単語w1であった場合、単語w1のモデルパラメータと、単語w2のモデルパラメータが用いられ、単語w1と単語w2の距離が計算され、単語w1のモデルパラメータと、単語w3のモデルパラメータが用いられ、単語w1と単語w3の距離が計算され、・・・といったように、ユーザから供給された単語と、推薦情報テーブル61−1に記載されている各単語との距離が、それぞれ計算される。
距離計算部102は、例えば、次式(9)に示すKullback-Leibler Divergenceの方式を用いて距離を計算する。
式(9)により距離が算出される場合、例えば、単語w1と単語w2の距離が算出されるときには、単語w1の意味クラスz1のモデルパラメータを、単語w2の意味クラスz1のモデルパラメータで除算した値のlogをとり、その値に単語w1の意味クラスz1のおけるモデルパラメータを乗算する。そしてさらに、このような計算を、意味クラス毎に行い(意味クラスが10クラスであった場合には10回行われる)、その意味クラス毎の値が加算されることにより、単語w1と単語w2の距離が算出される。
距離計算部102による計算結果は、順次、推薦単語抽出部104に供給される。推薦単語抽出部104は、ステップS33において、推薦する情報(単語)を抽出する。
距離計算部102が式(9)に基づいて距離を計算する場合、計算結果が小さいほど距離が近いと判断され、距離が近いと判断されるほど、単語同士は類似していると判断される。ここでは、ユーザから供給された単語に類似する単語を推薦する情報として、ユーザ側に提供する。その提供する単語の数は、1つでも良いし、複数でも良い。1または複数の単語を推薦する場合、計算結果が小さい方から順に提供されるようにすればよい。
このようにした場合、推薦単語抽出部104は、距離計算部102から供給される計算結果を一旦蓄積するメモリを備える構成とされる。距離計算部102は、メモリに蓄積された計算結果を、値の小さい順にソートし、その順に、所定の数だけ(例えば、ユーザ側に提示する情報が1つの場合は1つ)、共通意味クラス抽出部105に出力する。
推薦単語抽出部104から共通意味クラス抽出部105に出力されるのは、推薦する単語(距離が最も近いと判断され、推薦情報テーブル61−1から読み出された単語)のモデルパラメータであり、推薦単語抽出部104から提供部107に出力されるのは、推薦する単語の情報である。
共通意味クラス抽出部105は、ステップS34において、ユーザから供給された単語のモデルパラメータと、推薦する単語のモデルパラメータを比較し、共に高い数値を示す意味クラスを抽出する。上記したように、意味クラスとは、単語を特徴付けるために設定されたものである。そこで、2つの単語のモデルパラメータを比較したときに、その2つの単語のモデルパラメータが共に高い数値を示す意味クラスを抽出することで、その2つの単語の特徴を見いだすことができると考えられる。
共通意味クラス抽出部105が抽出する意味クラスの数は、一番高い値を有する1つでも良いし、上位からの複数個の意味クラスでも良い。共通意味クラス抽出部105により、抽出される意味クラスの数を1つとした場合、次式(10)に基づく算出が行われる。
式(10)において、P(z|u)は、ユーザから供給された単語uの意味クラスzにおけるモデルパラメータを示し、P(z|r)は、処理対象とされている単語r(推薦理由テーブル61−2に記載されている単語)の意味クラスzにおけるモデルパラメータを示す。P(z|u)は、距離計算部102から供給され、P(z|r)は、推薦単語抽出部104から抽出される。
式(10)によれば、P(z|u)とP(z|r)の積の最大値(Max)が算出される。この式(10)に基づく算出結果のうち、最も大きな値を有する意味クラスが、共通意味クラスタとして、推薦理由抽出部106に供給される。
推薦理由抽出部106は、ステップS35において、推薦理由としてユーザに提供する情報(単語)を抽出する。推薦理由抽出部106は、テーブル参照部103に、推薦理由テーブル61−2(図8)を読み出すように指示を出す。その指示に対応し、テーブル参照部103は、推薦理由テーブル61−2をモデルパラメータ保持部12から読み出し、推薦理由抽出部106に供給する。
推薦理由抽出部106は、共通意味クラス抽出部105から供給された意味クラス(意味クラスAとする)のモデルパラメータ値(モデルパラメータ値Aとする)が大きい単語を、推薦理由テーブル61−2を参照して検索する。
意味クラスAのモデルパラメータだけを参照し、モデルパラメータAよりも大きい値を有する単語を、推薦理由テーブル61−2から読み出すようにしても良いし(従って、この場合、複数の単語が読み出される可能性がある)、最も大きなモデルパラメータ値を有する単語のみを読み出すようにしても良い。または、上位の複数の単語を読み出すようにしても良い。
いずれにしても、推薦理由抽出部106により、推薦理由とする単語(情報)が推薦理由テーブル61−2から読み出され、提供部107に供給される。推薦理由抽出部106による処理を式で表すと、次式(11)のようになる。
式(11)において、P(z|w)は、意味クラスzにおける単語wのモデルパラメータを示す。推薦理由抽出部106には、共通意味クラス抽出部105から共通意味クラスに関する情報が供給されている。この供給される情報が示す意味クラスが、式(11)における意味クラスzの値として用いられる(代入される)。
式(11)に基づく演算が行われることにより、共通意味クラスzにおいて最も高い(Max)モデルパラメータの値を有する単語を抽出することができる。このようにして抽出された単語は、提供部107に供給される。
提供部107には、推薦単語抽出部104から推薦する単語と、推薦理由抽出部106から推薦理由とする単語とが供給される。
ステップS36において、提供部107は、推薦する単語と推薦理由を、ユーザ側に提供する。このようにして、ユーザには、ユーザが入力した情報と、何らかの関係のある情報が推薦され、さらに、その情報をなぜ推薦するのかという推薦理由の情報も、提供される。よって、情報が推薦されたユーザは、自分が入力した情報と推薦された情報との間に、どのような関連があるのかなどの情報を理解することができるようになり、単に情報を推薦する場合よりも、よりユーザにとって有益な情報の提供を行えることになる。
[推薦に関する具体的な例]
次に、図12乃至図16を参照し、再度、推薦情報提供装置13が行う処理について説明する。
図12は、モデルパラメータ保持部12が保持する推薦情報テーブル61−1の一例を示す図である。図12に示した推薦情報テーブル61−1は、モデルパラメータの分布を図6と同様なグラフとして表した場合(図8に示したようなテーブル形式のデータをグラフ化した場合)を例に挙げて示している。図12乃至図16に示した図も、それぞれ、モデルパラメータの分布をグラフ化して表した場合を例に挙げて示している。また、意味クラスが16クラス設けられている場合であり、横軸に意味クラス、縦軸にモデルパラメータをとったときの例を挙げて示している。
また、図12乃至図16に示した各グラフは、実際のデータを基に作成されたグラフである。図12に示したグラフは、推薦情報テーブル61−1の一例を示しているが、推薦情報テーブル61−1は、上記したように、ユーザからの情報に類似した(関連した)単語(情報)を提供するために設けられているテーブルである。ここでは、音楽に関する情報が推薦される場合を例に挙げて説明するため、推薦情報テーブル61−1に書き込まれている情報(単語)は、音楽に関する情報である。さらにここでは、アーティスト名が管理されているとして説明を続ける。
上記したように、図12乃至図17に示したグラフは、実際のデータを基に作成されたグラフであり、図12に示したグラフ(推薦情報テーブル61−1)で管理している単語も、実在するアーティスト(音楽家、グループなど)の名前である。しかしながら、説明の都合上、それらの実在するアーティストの名前を挙げることはできないため、図12においては、“アーティストA”などと表記している。
図12に示した推薦情報テーブル61−1に記憶されているアーティストA乃至アーティストFについて、一般的な評価、分類について説明を加える。なお、ここで加える説明は、アーティストA乃至アーティストFに対して一般的にいわれていることであり、例えば、CDなどの販売店で、そのアーティストのCDがおかれているジャンルや、そのアーティストに関する記事などで、そのアーティストを表現するのに使われている単語などを列記する。
アーティストAとアーティストBは、共に、アイドル(Idol)に属している。アーティストCとアーティストは、共に、演歌歌手に属している。アーティストA乃至アーティストDは、日本人である。アーティストEとアーティストFは、ロック(Rock)やポップス(Pops)に属し、外国人である。アーティストA乃至アーティストFは、このような特徴を有する。
図12に示すように、例えば、アーティストAとアーティストBは、共にアイドルに属する歌手であるため、意味クラスにおけるモデルパラメータの分布の形状が類似している。同様に、アーティストCとアーティストD、アーティストEとアーティストFに関するモデルパラメータの分布の形状も類似している。逆に、例えば、アーティストBとアーティストCは、属する分野が異なるため、モデルパラメータの分布の形状が異なったもの(類似していないもの)となっている。
このように、類似点を有するようなアーティスト同士のモデルパラメータの分布の形状は、類似した形状となり、類似点を有しないようなアーティスト同士のモデルパラメータの分布の形状は、類似していない形状となる。すなわち、モデルパラメータの分布の形状で、単語(アーティスト)を特徴付けることが可能であることがわかる。
図13は、推薦理由テーブル61−2で管理されているデータの一例を示す図である。推薦理由テーブル61−2は、ユーザ側に推薦する情報を、なぜ推薦するのかを示す推薦理由を抽出する際に参照されるテーブルである。推薦理由テーブル61−2には、推薦理由として、複数の単語が管理されている。図13に示した例では、“定番”、“アイドル”、“声量”、“豪華”という4つの単語が管理されている例を示す。
これらの4つの単語に関しても、上記したこと、すなわち、モデルパラメータの分布の形状により特徴付けることが可能である。
図12に示したような推薦情報テーブル61−1と、図13に示したような推薦理由テーブル61−2が、モデルパラメータ保持部12に保持されている場合を例に挙げて、図10に示した推薦情報提供装置13において実行される、図11に示したフローチャートの処理について説明を加える。
ステップS31において、情報取得部101が、ユーザにより、“アーティストA”という情報を取得すると、ステップS32において、“アーティストA”という単語と、推薦情報テーブル61−1に記憶されている各単語との距離が計算される。まず距離計算部102は、情報取得部101から“アーティストA”という単語を取得すると、テーブル参照部103により参照される推薦情報テーブル61−1(図12)から、図14に示すモデルパラメータを読み出す。
図14は、“アーティストA”に関するモデルパラメータの分布を示す図である。距離計算部102は、図14に示した“アーティストA”のモデルパラメータと、図12に示した推薦情報テーブル61−1の各単語のモデルパラメータを用いて、推薦情報テーブル61−1に記載されている単語毎に、“アーティストA”との距離を算出する。
すなわち、“アーティストA”と“アーティストB”との距離1が算出され、“アーティストA”と“アーティストC”との距離2が算出され、“アーティストA”と“アーティストD”との距離3が算出され、“アーティストA”と“アーティストE”との距離4が算出され、“アーティストA”と“アーティストF”との距離5が算出される。距離計算部102により算出された距離1乃至距離5は、順次、推薦単語抽出部104に供給される。
実際に実データに基づきアーティストAとの類似度を計算すると以下のようになる。なお、式(9)で示したKullback-Leibler divergenceの値は、同じ分布の場合に0となり、異なる分布ほど大きな値となるため、類似度としては、ここでは、
exp(−D(wi,wj))
を利用している。
アーティストAとアーティストBの類似度 5.179e-1
アーティストAとアーティストCの類似度 1.125e-4
アーティストAとアーティストDの類似度 6.378e-6
アーティストAとアーティストEの類似度 4.365e-2
アーティストAとアーティストFの類似度 1.820e-2
推薦単語抽出部104は、ステップS33において、推薦単語を抽出する。この場合、供給された距離1乃至距離5のうち、最も距離が近い距離が抽出され、その距離に対応する単語が、推薦単語として決定される。最も距離が近いと判断される距離は、最もモデルパラメータの分布の形状が類似している単語である。よって、この場合、図12を参照するに、“アーティストA”と“アーティストB”との距離1が、最も距離が近い距離であると判断され、“アーティストB”が推薦単語として抽出される。
このようにして抽出された“アーティストB”という情報は、提供部107に供給される。また“アーティストB”に係わるモデルパラメータは、共通意味クラス抽出部105に供給される。共通意味クラス抽出部105には、距離計算部102から、“アーティストA”に関するモデルパラメータも供給されている。
すなわち、共通意味クラス抽出部105には、図15に示すように、“アーティストA”に係わるモデルパラメータと、“アーティストB”に係わるモデルパラメータが供給される。共通意味クラス抽出部105は、ステップS34において、供給されたこれら2つのモデルパラメータの分布を参照し、共通してモデルパラメータの値が高い意味クラスを抽出する。
図15を参照するに、“アーティストA”と“アーティストB”の両方のモデルパラメータのうち、共通して値が高いのは、意味クラスz8である(図15において点線で囲った部分)。よって、この場合、共通意味クラス抽出部105では、意味クラスz8が、共通意味クラスとして抽出される。
共通意味クラス抽出部105が、上述した式(10)に基づいて処理を実行する場合、次式により求められた値が、最も大きな値となる。すなわち、式(10)において、max以下の部分に値を代入した式を以下に記述すると、
P(意味クラスz8|アーティストA)×P(意味クラスz8|アーティストB)
となるときに演算された値が、この場合、他の意味クラスのときに演算された値と比べて最も大きな値となる。よって、意味クラスz8が共通意味クラスとして、推薦理由抽出部106に供給される。
推薦理由抽出部106は、ステップS35において、推薦理由の抽出を行う。この場合、推薦理由抽出部106には、共通意味クラスとして、意味クラスz8という情報が供給されている。推薦理由抽出部106は、図13に示したデータを管理している推薦理由テーブル61−2のうち、意味クラスz8に関連付けられているモデルパラメータの値を参照する。
すなわち、図16を参照するに、推薦理由抽出部106は、推薦理由テーブル61−2のうち、図中点線で囲った部分に存在するモデルパラメータの値のみを参照する。このとき、式(11)に基づいて処理が行われるとすれば、max以下の部分に値を代入して記載すると、
P(意味クラスz8|定番)
P(意味クラスz8|アイドル)
P(意味クラスz8|声量)
P(意味クラスz8|豪華)
に、それぞれ該当する値が読み出され、このうち、最も値が大きい単語が選択される。
図16に示した例では、 P(意味クラスz8|アイドル) の値が最も高い値になるので、“アイドル”という単語が推薦理由として選択される。推薦理由抽出部106により抽出された“アイドル”という単語の情報は、提供部107に供給される。
このようにして、提供部107には、推薦情報として“アーティストB”が、推薦理由として“アイドル”が、供給される。このような情報は、例えば、“推薦する情報は、「アーティストB」です。推薦する理由は、アーティストAと同じく「アイドル」だからです。”といったようなメッセージに加工されて、ユーザ側に提示される。
このように、本発明を適用することにより、ユーザ側から供給される情報に関連がある情報を抽出することができる。また、その抽出される情報は、ユーザ側から供給される情報に類似する情報とすることができる。また、その類似する情報を抽出する際、意味クラスという概念を利用して抽出するので、より、類似性の高い情報を、より確実に抽出することが可能となる。
また、本発明を適用することにより、推薦(提供)する情報に関し、なぜその情報を推薦するのかといったような推薦理由も抽出することが可能となり、ユーザ側に提示することが可能となる。よって、ユーザが、推薦された情報が、なぜ推薦されたのかを理解することができるようになる。
[情報の抽出に関する他の方法]
なお、推薦情報提供装置13の処理として図11に示したフローチャートを参照して説明した実施の形態においては、ステップS32,S33において、ユーザからの情報と推薦情報テーブル61−1に記載されている情報毎との距離を計算することにより、推薦する情報を決定した。また、ステップS34,S35において、推薦する情報のモデルパラメータの値が大きな意味クラスと、その意味クラスでモデルパラメータが高い情報が、推薦理由テーブル61−2から読み出されることにより、推薦理由が決定された。
すなわち、上述した実施の形態においては、推薦する情報を決定するときには、距離が計算され、推薦する理由を決定するときには、モデルパラメータ値の高い意味クラスが抽出された。
推薦情報提供装置13の他の実施の形態とし、推薦する情報を決定するときも、推薦する理由を決定するときも、ともに、単語同士の距離を計算し、その距離が近いとされる情報が、推薦する情報、推薦する理由として決定されるようにしても良い。このようにした場合、推薦する情報を決定するときには、上記した処理と同様の処理(ステップS32,S33)が実行される。そして、推薦する理由が決定されるときには、推薦する情報(または、ユーザからの情報でも良い)と推薦理由テーブル61−2に記載されている各情報との距離が計算され、距離が近いと判断される情報が、推薦理由テーブル61−2から読み出されるようにすればよい。
また、推薦情報提供装置13の他の実施の形態とし、推薦する情報を決定するときも、推薦する理由を決定するときも、ともに、モデルパラメータ値の高い意味クラスが抽出されることにより行われるようにしても良い。このようにした場合、推薦する情報を決定するときには、ユーザからの情報のモデルパラメータ値が最も高い意味クラスが抽出され、その抽出された意味クラスのモデルパラメータ値が高い情報が、推薦情報テーブル61−1から読み出されることにより決定される。そして、推薦する理由を決定するときには、上記した処理と同様の処理(ステップS34,S35)が実行されるようにすればよい。
また、推薦情報提供装置13の他の実施の形態とし、推薦する情報を決定するときには、モデルパラメータ値の高い意味クラスが抽出されることにより行われるようにし、推薦する理由を決定するときには、単語同士の距離が計算されることにより行われるようにしても良い。このようにした場合、推薦する情報を決定するときには、ユーザからの情報のモデルパラメータ値が最も高い意味クラスが抽出され、その抽出された意味クラスのモデルパラメータ値が高い情報が、推薦情報テーブル61−1から読み出される。そして、推薦する理由が決定されるときには、推薦する情報と推薦理由テーブル61−2に記載されている各情報との距離が計算され、距離が小さいと判断される情報が、推薦理由テーブル61−2から読み出されるようにすればよい。
また、推薦情報提供装置13の他の実施の形態とし、推薦する情報や推薦する理由を、モデルパラメータ値の高い情報とするようにした場合、所定の閾値よりも高いモデルパラメータ値をもつ情報が、推薦する情報や推薦する理由として決定されるようにしても良い。
上記した実施の形態においては、ユーザから供給される情報は、1つであり、その1つの情報から類似度が計算され、推薦情報や推薦理由が抽出される手順を説明した。一般に推薦が行われる場合、ユーザからの情報が複数与えられた方がより適切な推薦情報や推薦理由を生成することができる。
そこで、ユーザからの情報が、複数与えられたときの類似度の計算方法について説明する。ユーザからの情報が複数与えられたときの類似度の計算方法としては、(1)個々のユーザ情報との類似度を計算し、その和を算出する方法と、(2)個々のユーザ情報の分布を重畳し、その重畳分布を利用して類似度を計算する方法の2つがある。
(1)の方法は、上記した説明とユーザから1つの情報が与えられたときと同様の類似度計算と同様の処理を、与えられた複数の情報に対して適用し、その値を累積することにより行われる。
(2)の方法は、ユーザからの情報に対応する個々の分布を重畳して、1つの分布を合成し、その合成分布との間で類似度を計算するというものである。複数の分布を重畳する方法として、例えば、本出願人が先に出願した特願2004-296473号に記載の方法を適用することができる。ここでは、特願2004-296473号に記載の方法について、簡便な説明を加えておく。
図17は、複数(ここでは2個とする)の分布を重畳する方法について説明するための図である。図17の上側には、ユーザからの情報として単語w1と単語w2が供給された場合の単語w1と単語w2の意味クラス毎の確率分布をグラフ化したもの(単語w1と単語w2の、それぞれの確率分布表現)を示している。この単語w1と単語w2を重畳したグラフを図17の下側に示す。図17の下側のグラフは、文脈(w1,w2)の確率分布表現のグラフを示す。ここでは、2つの単語を含むということで、文脈と表現する。
文脈(w1,w2)との表記は、単語w1と単語w2を含む文脈の確率分布表現を示すとする。また、その所定の意味クラスzにおける確率値は、p(z|w1,w2)と表記する。
図17を参照したように、複数の単語の確率分布表現を重ね合わせることにより、文脈に関する確率分布表現を作成する場合、各単語の意味クラスに基づく確率分布表現から、複数の単語より構成される文や文章の意味クラスに基づく確率分布表現が求められる。
w1,w2,・・,wnのn個の単語を含む文脈をhとすると、この意味クラスに基づく分布表現は次式(12)で表される。
式(12)に示したように、意味クラスに基づく分布表現は、意味クラスzにおける生起確率p(z|w)を、単語毎に乗算していくことにより求められる。ここでw1,w2,・・,wnは全て独立に生起するものと仮定して、それらが全て生起した時に意味クラスの分布がどのようになるかという近似を用いている。ここでβは、全てのクラスにわたる確率値の合計が1になるようにするための正規化係数である。またα(wi)は、個々の単語毎に決められる重み係数である。
また、ナイーブベイズを用いることによって次式(13)のように、
と近似することも可能である。
このようにして、ユーザから供給された複数の情報(単語)の確率分布表現を重畳し、1つの確率分布表現を生成し、その1つの確率分布表現を、上記した実施の形態における、ユーザから供給された情報の確率分布表現として用いれば、上記した方法により推薦情報や推薦理由を抽出することができる。
また、複数のユーザ情報から類似する推薦情報を抽出するというこの手順は、ユーザ情報と、それに対応する推薦情報の両方を利用して、推薦する理由を決定する際にも同様に利用できる。すなわち、ユーザ情報と推薦情報を複数の分布として、上記の類似度の累計や分布の重畳によって類似する推薦理由を抽出する。
[記録媒体について]
上述した一連の処理は、それぞれの機能を有するハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
図18は、汎用のパーソナルコンピュータの内部構成例を示す図である。パーソナルコンピュータのCPU(Central Processing Unit)1001は、ROM(Read Only Memory)1002に記憶されているプログラムに従って各種の処理を実行する。RAM(Random Access Memory)1003には、CPU1が各種の処理を実行する上において必要なデータやプログラムなどが適宜記憶される。入出力インタフェース1005は、キーボードやマウスから構成される入力部1006が接続され、入力部1006に入力された信号をCPU1001に出力する。また、入出力インタフェース1005には、ディスプレイやスピーカなどから構成される出力部1007も接続されている。
さらに、入出力インタフェース1005には、ハードディスクなどから構成される記憶部1008、および、インターネットなどのネットワークを介して他の装置とデータの授受を行う通信部1009も接続されている。ドライブ1010は、磁気ディスク1021、光ディスク1022、光磁気ディスク1023、半導体メモリ1024などの記録媒体からデータを読み出したり、データを書き込んだりするときに用いられる。
記録媒体は、図18に示すように、パーソナルコンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク1021(フレキシブルディスクを含む)、光ディスク1022(CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)を含む)、光磁気ディスク1023(MD(Mini-Disc)(登録商標)を含む)、若しくは半導体メモリ1024などよりなるパッケージメディアにより構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供される、プログラムが記憶されているROM1002や記憶部1008が含まれるハードディスクなどで構成される。
なお、本明細書において、媒体により提供されるプログラムを記述するステップは、記載された順序に従って、時系列的に行われる処理は勿論、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。