説明

マッチング成功度算出装置及び方法

【課題】マッチング結果を学習し、学習結果に基づいて候補者を選定することができる装置又は方法を提供すること。
【解決手段】マッチング成功度算出装置1は、ユーザの素性ベクトルを生成する素性ベクトル生成部11と、学習部13へ入力するための入力リストを生成し、学習DB22に記憶させる入力リスト生成部12と、学習DB22に記憶されている入力リストに基づいて学習を行い学習モデルを生成し、学習DB22に記憶させる学習部13と、任意の2人のユーザの合成素性ベクトルの入力を受付ける入力受付部14と、学習DB22に記憶された学習モデルと、入力受付部14により入力された任意の2人の合成素性ベクトルと、に基づいて、任意の2人のユーザのマッチング成功度を算出するマッチング成功度算出部15とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、マッチング成功度算出装置及び方法に関する。
【背景技術】
【0002】
従来より、好相性の会員の組み合わせを抽出して会員に紹介する好相性会員紹介装置が提案されている(例えば、特許文献1)。特許文献1で提案された好相性会員紹介装置は、会員により、自身の個人情報、希望条件及びアンケートに対する回答が入力されると、アンケートの回答に基づいて当該会員の性格カテゴリを決定する。そして、好相性会員紹介装置は、予め記憶されている相性度テーブルを参照して会員の性格カテゴリと相性のよい性格カテゴリに属する複数の異性の会員を抽出し、さらに、会員の希望条件に基づいて、当該複数の異性の会員から候補となる異性の会員を決定する。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2003−30306号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、特許文献1で提案された好相性会員紹介装置は、相性度テーブルという異性間の性格カテゴリに基づいて異性の会員を抽出し、その中から希望条件に沿った候補者を選定するにすぎない。このため、過去の紹介結果、すなわち、マッチング結果を装置で学習させて、学習結果に基づいて候補者を選定することについては示されていない。
【0005】
本発明は、マッチング結果を学習し、学習結果に基づいて候補者を選定可能な装置又は方法を提供することを目的とする。
【課題を解決するための手段】
【0006】
(1) 任意のユーザのマッチング成功度を算出するマッチング成功度算出装置であって、マッチングを行うユーザの個々のデータであって、予め所定のデータベースに記憶されたプロフィール情報を数値化し、各数値をベクトルの要素とすることで、ユーザの素性ベクトルを生成する素性ベクトル生成手段と、個々の前記ユーザの素性ベクトルに基づいて合成素性ベクトルを生成する合成素性ベクトル生成手段と、前記合成素性ベクトルと、該合成素性ベクトルの各ユーザの過去のマッチング成功履歴と、を関係付けて記憶するマッチング記憶手段と、前記マッチング記憶手段に記憶された合成素性ベクトルと、前記過去のマッチング成功履歴と、に基づいて、教師ベクトルを生成することで学習モデルを生成する学習手段と、任意の2人のユーザの合成素性ベクトルの入力を受付ける入力受付手段と、前記教師ベクトルと、入力された前記任意の2人のユーザの合成素性ベクトルと、に基づいて、前記任意の2人のユーザのマッチング成功度を算出するマッチング成功度算出手段と、を備えるマッチング成功度算出装置。
【0007】
(1)に記載のマッチング成功度算出装置によれば、素性ベクトル生成手段により、マッチングを行うユーザの個々のデータであって、予め所定のデータベースに記憶されたプロフィール情報を数値化し、各数値をベクトルの要素とすることで、ユーザの素性ベクトルを生成し、合成素性ベクトル生成手段により、個々のユーザの素性ベクトルに基づいて合成素性ベクトルを生成する。また、マッチング記憶手段により、合成素性ベクトルと、該合成素性ベクトルの各ユーザの過去のマッチング成功履歴と、を関係付けて記憶する。また、学習手段により、マッチング記憶手段に記憶された合成素性ベクトルと、過去のマッチング成功履歴と、に基づいて、教師ベクトルを生成することで学習モデルを生成し、入力受付手段により、任意の2人のユーザの合成素性ベクトルの入力を受付ける。また、マッチング成功度算出手段により、教師ベクトルと、入力された任意の2人のユーザの合成素性ベクトルと、に基づいて、任意の2人のユーザのマッチング成功度を算出する。
【0008】
このようにすることで、(1)に記載のマッチング成功度算出装置は、生成した学習モデルに基づいて、任意の2人のユーザの組み合わせのマッチング成功度を算出できる。このため、本発明では、任意の2人のユーザの組み合わせを複数用意して、マッチング成功度を算出させることにより、マッチング成功度を比較してマッチングに適した候補者を選定可能となる。
【0009】
(2) 前記合成素性ベクトル生成手段は、2人のユーザの素性ベクトルの各要素について、所定の演算を行うことにより前記合成素性ベクトルを生成することを特徴とする(1)記載のマッチング成功度算出装置。
【0010】
(2)に記載のマッチング成功度算出装置によれば、2人のユーザの素性ベクトルの各要素について、所定の演算を行うことにより合成素性ベクトルを生成するので、2人のユーザの相違点や類似点を合成素性ベクトルに反映させることができる。
【0011】
(3) 前記教師ベクトルと、相対的に良好な結果を得られたマッチングを行った2人のユーザの合成素性ベクトルとの内積の値が、前記教師ベクトルと、相対的に良好な結果を得られなかったマッチングを行った2人のユーザの合成素性ベクトルとの内積の値に比べて高い値となることを特徴とする(2)記載のマッチング成功度算出装置。
【0012】
(3)に記載のマッチング成功度算出装置によれば、教師ベクトルは、相対的に良好な結果を得られたマッチングを行った2人のユーザの合成素性ベクトルとの内積の値が高くなるように生成される。このため、教師ベクトル及び2人のユーザの合成素性ベクトルの内積の値が相対的に高い場合には、相対的に高い内積の値に対応する2人のユーザの組み合わせが相対的に良好な結果を得られる組み合わせであると予想できる。
【0013】
(4) 前記入力受付手段は、一のユーザの素性ベクトルと、該一のユーザの候補となる複数のユーザの各素性ベクトルとから生成された2以上の合成素性ベクトルを受付け、前記マッチング成功度算出手段は、前記2以上の合成素性ベクトルの各々と、前記教師ベクトルとの内積値を算出し、算出した結果として、内積値が高い合成素性ベクトルのユーザを、前記一のユーザとのマッチング成功度が高いとする、(1)に記載のマッチング成功度算出装置。
【0014】
(4)に記載のマッチング成功度算出装置によれば、入力受付手段により、一のユーザの素性ベクトルと、該一のユーザの候補となる複数のユーザの各素性ベクトルとから生成された2以上の合成素性ベクトルを受付け、マッチング成功度算出手段により、2以上の合成素性ベクトルの各々と、教師ベクトルとの内積値を算出し、算出した結果として、内積値が高い合成素性ベクトルのユーザを、一のユーザとのマッチング成功度が高いとする。このようにすることで、一のユーザの候補となる複数のユーザについて、該一のユーザとのマッチング成功度が相対的に高いユーザを確認できる。
【0015】
(5) 任意のグループのマッチング成功度を算出するマッチング成功度算出装置であって、マッチングを行うグループに属するユーザの個々のデータであって、予め所定のデータベースに記憶されたプロフィール情報を数値化し、各数値をベクトルの要素とすることで、ユーザの素性ベクトルを生成する素性ベクトル生成手段と、前記マッチングを行うグループに属する個々の前記ユーザの素性ベクトルを結合することで、合成素性ベクトルを生成する合成素性ベクトル生成手段と、前記合成素性ベクトルと、該合成素性ベクトルの各ユーザの過去のマッチング成功履歴と、を関連付けて記憶するマッチング記憶手段と、前記マッチング記憶手段に記憶された合成素性ベクトルと、前記過去のマッチング成功履歴と、に基づいて、教師ベクトルを生成することで学習モデルを生成する学習手段と、任意の2つのグループの選択を受付ける選択受付手段と前記教師ベクトルと、選択が受付けられた2つのグループに属する複数のユーザの合成素性ベクトルに基づいて、前記任意の2つのグループのマッチング成功度を算出するマッチング成功度算出手段と、を備えるマッチング成功度算出装置。
【0016】
(5)に記載のマッチング成功度算出装置によれば、マッチング成功度算出手段により、任意の2つのグループのマッチング成功度を算出できる。このようにすることで、あるグループに対して、他の複数のグループのマッチング成功度を算出し、当該マッチング成功度を比較することにより、マッチング成功度が相対的に高いグループを確認できる。
【0017】
(6) 前記マッチング成功度算出手段は、前記教師ベクトルと、第1のグループに属する複数のユーザのそれぞれについて、第2のグループに属する複数のユーザのそれぞれとのマッチング成功度を、前記教師ベクトルと、該第1のグループに属する複数のユーザと該第2のグループに属する複数のユーザとの合成素性ベクトルと、に基づいて算出し、該マッチング成功度の平均値を該第1のグループ及び該第2のグループのマッチング成功度として算出することを特徴とする(5)に記載のマッチング成功度算出装置。
【0018】
(6)に記載のマッチング成功度算出装置によれば、マッチング成功度算出手段により、グループに属するユーザのマッチング成功度の平均値に基づいてグループのマッチング成功度を算出する。このため、グループに属するユーザそれぞれを均等に評価してグループのマッチング成功度を算出できる。
【0019】
(7) 任意のユーザのマッチング成功度を算出するマッチング成功度算出方法であって、マッチングを行うユーザの個々のデータであって、予め所定のデータベースに記憶されたプロフィール情報を数値化し、各数値をベクトルの要素とすることで、ユーザの素性ベクトルを生成するステップと、個々の前記ユーザの素性ベクトルに基づいて合成素性ベクトルを生成するステップと、前記合成素性ベクトルと、該合成素性ベクトルの各ユーザの過去のマッチング成功履歴と、を関係付けて記憶するステップと、前記記憶するステップにおいて記憶された合成素性ベクトルと、前記過去のマッチング成功履歴と、に基づいて、教師ベクトルを生成することで学習モデルを生成するステップと、任意の2人のユーザの合成素性ベクトルの入力を受付けるステップと、前記教師ベクトルと、入力された前記任意の2人のユーザの合成素性ベクトルと、に基づいて、前記任意の2人のユーザのマッチング成功度を算出するステップと、を備えるマッチング成功度算出方法。
【0020】
このような構成によれば、当該方法を実施することにより、(1)と同様の効果が期待できる。
【発明の効果】
【0021】
本発明によれば、マッチング結果を学習し、学習結果に基づいて候補者を選定可能な装置又は方法を提供することができる。
【図面の簡単な説明】
【0022】
【図1】本実施形態に係るマッチング成功度算出装置1の全体構成を示す図である。
【図2】本実施形態に係るプロフィールテーブル21aを示す図である。
【図3】本実施形態に係る素性ベクトルテーブル21bを示す図である。
【図4】本実施形態に係る実績テーブル21cを示す図である。
【図5】本実施形態に係る入力リストテーブル22aを示す図である。
【図6】本実施形態に係るモデルテーブル22bを示す図である。
【図7】本実施形態に係るウェイトwを算出するコードを示す図である。
【図8】本実施形態に係るマッチング成功度算出装置1のハードウェア構成を示す図である。
【図9】本実施形態に係るマッチング成功度算出装置1がユーザの素性ベクトルを生成してから学習モデルを生成するまでの処理の流れを示すフローチャートである。
【図10】本実施形態に係るマッチング成功度算出装置1の学習部13における処理の流れを示すフローチャートである。
【図11】本実施形態に係るマッチング成功度算出装置1のマッチング成功度算出部15における処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0023】
以下、本発明のマッチング成功度算出装置の好ましい一実施形態について図面を参照しながら説明する。
【0024】
[システム全体構成]
図1は、本実施形態に係るマッチング成功度算出装置1の全体構成を示す図である。
【0025】
マッチング成功度算出装置1は、マッチングサービスを利用する任意の2人のユーザのマッチング成功度を算出する装置である。マッチング成功度算出装置1は、制御部10及び記憶部20を備える。
【0026】
記憶部20は、マッチング成功度算出装置1として機能させるための各種プログラム(図示省略)、本発明の機能を実行するプログラム(図示省略)、ユーザデータベース(以下、データベースをDBという)21及び学習DB22を記憶する。
【0027】
ユーザDB21は、マッチングサービスを利用するユーザに係る情報を記憶する。ユーザDB21は、プロフィールテーブル21a、素性ベクトルテーブル21b及び実績テーブル21cを備える。
【0028】
図2は、本実施形態に係るプロフィールテーブル21aを示す図である。プロフィールテーブル21aは、マッチングサービスを利用するユーザのプロフィール情報が格納されており、ユーザを一意に特定する「ユーザID」フィールドと、ユーザの姓名を示す「ユーザ名」フィールドと、ユーザの年齢を示す「年齢」フィールドと、ユーザの性別を示す「性別」フィールドと、ユーザの婚姻暦を示す「婚姻暦」フィールドが含まれている。プロフィールテーブル21aは、後述の素性ベクトル生成部11によりユーザの素性ベクトルを生成するときと、後述のマッチング成功度算出部15により任意の2人のユーザのマッチング成功度を算出するときに参照される。
【0029】
図3は、本実施形態に係る素性ベクトルテーブル21bを示す図である。素性ベクトルテーブル21bには、素性ベクトルが格納されている。素性ベクトルとは、プロフィールテーブル21aに記憶されているユーザのプロフィール情報を数値化したものを、ベクトルの要素としたものである。素性ベクトルテーブル21bには、ユーザIDを示す「ユーザID」フィールドと、ユーザの素性ベクトルを示す「素性ベクトル」フィールドとが含まれている。素性ベクトルテーブル21bには、素性ベクトル生成部11により生成された素性ベクトルが記憶される。また、素性ベクトルテーブル21bは、後述の入力リスト生成部12により入力リストを生成するときに参照される。
【0030】
図4は、本実施形態に係る実績テーブル21cを示す図である。実績テーブル21cには、マッチングサービスを利用したユーザの実績、すなわち、過去のマッチング成功履歴を示す情報が記憶される。実績テーブル21cには、マッチングを行った2人のユーザのうち、第1ユーザのユーザIDを示す「ユーザID1」フィールドと、第2のユーザのユーザIDを示す「ユーザID2」フィールドと、第1ユーザ及び第2ユーザの組み合わせによるマッチング成功履歴、すなわち、成功度を示す「成功度」フィールドとが含まれている。実績テーブル21cは、入力リスト生成部12により入力リストを生成するときに参照される。
【0031】
ここで、本実施形態では、成功度は、成功度合いにより3種類の値のいずれかが設定される。マッチングが成功した場合には、成功度が3に設定され、マッチングが途中で失敗した場合には、成功度が2に設定され、マッチングが最初に失敗した場合には、成功度が1に設定される。すなわち、より成功した場合には、成功度の値が高く設定される。なお、本実施形態では、成功度合いにより3種類の値のいずれかが設定されることとしたが、これに限らない。例えば、5種類の値や10種類の値等、3種類の値とは異なる設定としてもよい。
【0032】
例えば、マッチングが、いわゆるお見合いであり、ユーザ「A」の候補者として、ユーザ「B」、「C」、「D」が選ばれたとする。ユーザ「B」がユーザ「A」とのマッチングを受け入れ、かつ、婚約等によりお見合いが成立した場合には、ユーザ「A」及び「B」の成功度に3が設定される。また、ユーザ「C」がユーザ「A」とのお見合いを一度受け入れたものの、途中辞退等によりお見合いが成立しなかった場合には、ユーザ「A」及び「C」の成功度に2が設定される。また、ユーザ「D」がユーザ「A」とのお見合いを受け入れることなく辞退した場合には、ユーザ「A」及び「D」の成功度に1が設定される。
【0033】
図1に戻り、学習DB22は、後述の学習部13の入出力情報を記憶する。学習DB22は、入力リストテーブル22a及びモデルテーブル22bを備える。
【0034】
図5は、本実施形態に係る入力リストテーブル22aを示す図である。入力リストテーブル22aには、学習部13への入力情報として、合成素性ベクトルと、該合成素性ベクトルの各ユーザの過去のマッチング成功履歴と、が関連付けて記憶されている。入力リストテーブル22aには、2人のユーザの素性ベクトルを合成した合成素性ベクトルを一意に特定するための「シリアルID」フィールドと、合成素性ベクトルを示す「合成素性ベクトル」フィールドと、2人のユーザの成功履歴、すなわち、成功度を示す「成功度」フィールドとが含まれている。入力リストテーブル22aは、入力リスト生成部12により生成された入力リストが記憶される。また、入力リストテーブル22aには、学習部13が学習モデルを生成するときに参照される。
【0035】
図6は、本実施形態に係るモデルテーブル22bを示す図である。モデルテーブル22bには、学習部13により生成された学習モデルが記憶されており、学習モデルを示す「学習モデル」フィールドが含まれている。モデルテーブル22bは、学習部13により生成されたモデルが記憶される。また、モデルテーブル22bは、マッチング成功度算出部15によりマッチング成功度を算出するときに参照される。
【0036】
図1に戻り、制御部10は、マッチング成功度算出装置1に係る各機能を統括的に制御する部分であり、本発明に係る各機能として、素性ベクトル生成部11と、入力リスト生成部12と、学習部13と、入力受付部14と、マッチング成功度算出部15とを備える。
【0037】
素性ベクトル生成部11は、プロフィールテーブル21aに記憶されているユーザのプロフィール情報を参照して、ユーザの素性ベクトルを生成し、生成した素性ベクトルを素性ベクトルテーブル21bに記憶させる。素性ベクトルは、プロフィールテーブル21aを構成するフィールドのそれぞれをベクトル成分とする。また、それぞれのベクトル成分の値は正規化のために0から1の間の値となる。このため、素性ベクトルは0から1の間の数値の列で表現される。
【0038】
入力リスト生成部12は、学習部13へ入力するための入力リストを生成し、入力リストテーブル22aに記憶させる。より具体的には、実績テーブル21cを参照して、過去にマッチングを行った2人のユーザの組み合わせを抽出する。そして、抽出した組み合わせを構成する第1ユーザ及び第2ユーザの素性ベクトルを結合、すなわち、第1ユーザ及び第2ユーザの素性ベクトルに基づいて合成素性ベクトルを生成する。そして、合成素性ベクトルに対して、当該合成素性ベクトルを一意に特定するためにシリアルIDを付与するとともに、実績テーブル21cに記憶されている2人のユーザの成功度を関連付けて入力リストを生成する。そして、生成した入力リストを入力リストテーブル22aに記憶させる。ここでは、合成素性ベクトルの算出方法として、第1ユーザ及び第2ユーザの素性ベクトルの差を取ることとする。このようにすることで、2人のユーザの相違点や類似点を合成素性ベクトルに反映させることができる。
【0039】
学習部13は、入力リストテーブル22aに記憶されている入力リスト、すなわち、合成素性ベクトルと、過去のマッチング成功履歴(成功度)と、に基づいて、教師ベクトルを生成することで学習モデルを生成する。続いて、学習部13は、生成した学習モデルをモデルテーブル22bに記憶させる。
【0040】
より具体的には、学習部13は、入力リストテーブル22aに記憶されている入力リストを参照して、成功度毎の合成素性ベクトルの集合を生成する。そして、学習部13は、成功度毎の合成素性ベクトルの集合から、2つの集合R及びNを定義する。2つの集合R及びNの定義は、全ての成功度の組み合わせで行われるものである。すなわち、本実施形態では、成功度が1、2、3のいずれかに設定されるので、集合Rと集合Nの組み合わせとして、成功度3及び成功度2、成功度3及び成功度1並びに成功度2及び成功度1の3つが定義される。また、集合Rに応じた成功度が集合Nに応じた成功度よりも小さくなることはないものとする。
【0041】
続いて、学習部13は、集合R及びNよりそれぞれ1つの合成素性ベクトルを抽出して、2つの合成素性ベクトルの組み合わせSとして、(dnq,drq)を生成する。例えば、成功度が3である合成素性ベクトルの集合をRとして、集合Rが合成素性ベクトルd1a及びd1bから構成されるとする。そして、成功度が2である合成素性ベクトルの集合をNとして、集合Nが合成素性ベクトルd2a及びd2bから構成されるとする。この場合には、2つの合成素性ベクトルの組み合わせSとして、(d2a,d1a)、(d2b,d1a)、(d2a,d1b)、(d2b,d1b)の4つが生成される。
【0042】
続いて、学習部13は、学習モデルとして、教師ベクトルであるウェイトwを生成する。ウェイトwは、ウェイトw及び相対的に良好な結果を得られたマッチングを行った2人のユーザの合成素性ベクトルの内積の値が、ウェイトw及び相対的に良好な結果を得られなかったマッチングを行った2人のユーザの合成素性ベクトルの内積の値に比べて高い値となるベクトルである。ウェイトwは、学習部13が図7に示されるコードにより演算を行うことで生成される。図7に示されるコードにおいて、Tは集合R及びNの組み合わせの数であり、Score(dnq,w)は、dnq及びwの内積の値である。図7に示されるコードでは、学習モデルであるウェイトw及び比較対象のベクトルの内積の値が高いほど高い成功度となるようにウェイトwの値を調整する。この調整は、ウェイトw及び成功度の低い集合に含まれるベクトルの内積の値がウェイトw及び成功度の高い集合に含まれるベクトルの内積の値に比べて高い場合に行われる。このため、ウェイトwのベクトル成分において、高い成功度に影響を与え易いベクトル成分は、それ以外の成分に対して重み付けをされることとなる。
【0043】
すなわち、学習部13は、集合Nを構成する合成素性ベクトルdnq及びウェイトwの内積の値と、集合Rを構成する合成素性ベクトルdrq及びウェイトwの内積の値について比較を行う。学習部13は、集合Nを構成する合成素性ベクトル及びウェイトwの内積の値が、集合Rを構成する合成素性ベクトル及びウェイトwの内積の値以上である場合には、ウェイトwに対して、drqとdnqの差分に全組み合わせの数の逆数であるηで乗算した数を加算してウェイトwを更新する。そして、学習部13は、全組み合わせについて、この演算を行いウェイトwを算出する。そして、学習部13は、算出したウェイトwを学習モデルとしてモデルテーブル22bに記憶させる。
【0044】
このようにすることで、学習モデルであるウェイトwは、過去の結果に基づいて相対的に良好な結果を得られたマッチングとの内積の値が高くなるように生成される。このため、ウェイトw及び新たな2人のユーザの組み合わせの合成素性ベクトルの内積の値が相対的に高い場合には、新たな2人のユーザの組み合わせが相対的に良好な結果を得られる組み合わせであると予想できる。
【0045】
入力受付部14は、任意の2人のユーザの合成素性ベクトルの入力を受付ける。より具体的には、入力受付部14は、任意の2人のユーザの組み合わせを後述の表示部に表示させて、ユーザに、任意の2人のユーザの組み合わせの選択を受付ける。選択が受付けられると、入力受付部14は、選択された組み合わせを構成するユーザのプロフィール情報に基づいて合成素性ベクトルを生成してマッチング成功度算出部15に受け渡す。
【0046】
なお、本実施形態では、入力受付部14は、任意の2人のユーザの合成素性ベクトルの入力を受付けることとしたが、これに限らない。例えば、入力受付部14は、任意の2人のユーザ名やユーザIDを受付けることとする。そして、入力受付部14は、任意の2人のユーザ名やユーザIDを受付けたことに応じて、任意の2人の合成素性ベクトルを生成して、マッチング成功度算出部15に受け渡すこととしてもよい。
【0047】
マッチング成功度算出部15は、モデルテーブル22bに記憶された学習モデル(教師ベクトル)と、入力受付部14により入力された任意の2人の合成素性ベクトルと、に基づいて、任意の2人のユーザのマッチング成功度を算出する。具体的には、マッチング成功度算出部15は、入力受付部14により任意の2人の合成素性ベクトルを受け渡されると、入力受付部14により入力された任意の2人の合成素性ベクトルと、モデルテーブル22bに記憶された学習モデル(教師ベクトル)との内積の値を算出する。そして、算出した結果をマッチング成功度として、表示部に出力する。このように、マッチング成功度算出部15は、任意の2人のユーザのマッチング成功度を算出する。このため、入力受付部14により、任意の2人のユーザの合成素性ベクトルが複数回受付けられると、マッチング成功度算出部15により、複数のマッチング成功度が算出されるので、当該複数のマッチング成功度の比較が可能となる。
【0048】
なお、本実施形態では、マッチング成功度算出部15は、入力受付部14により入力された任意の2人の合成素性ベクトルを受付けて、当該任意の2人のマッチング成功度を算出することとしたが、これに限らない。例えば、入力受付部14は、一のユーザの素性ベクトルと、当該一のユーザの候補となる複数のユーザの各素性ベクトルとから生成された2以上の合成素性ベクトルを受付ける。そして、マッチング成功度算出部15は、入力受付部14が受付けた2以上の合成素性ベクトルの各々と、モデルテーブル22bに記憶された学習モデル(教師ベクトル)との内積値を算出する。そして、マッチング成功度算出部15は、算出した結果として、内積値が高い合成素性ベクトルのユーザを、当該一のユーザとのマッチング成功度が高いものとして、表示部に表示させてもよい。このようにすることで、一のユーザの候補となる複数のユーザについて、該一のユーザとのマッチング成功度が相対的に高いユーザを確認できる。
【0049】
また、マッチング成功度算出部15は、所定時間内に、入力受付部14より受け渡された任意の2人の合成素性ベクトルが複数である場合に、算出した複数のマッチング成功度をソートして、マッチング成功度の高い順に表示部に表示することとしてもよい。このようにすることで、所定時間内に入力受付部14より受け渡された合成素性ベクトルに対応する任意の2人の組み合わせのうち、相対的に良好な組み合わせを選定することができる。なお、この場合における所定時間とは、後述の操作部により合成素性ベクトルの入力開始操作がされてから、入力終了操作がされるまでの時間である。
【0050】
[マッチング成功度算出装置のハードウェア構成]
図8は、本実施形態に係るマッチング成功度算出装置1のハードウェア構成を示す図である。本発明が実施されるマッチング成功度算出装置1は標準的なものでよく、以下に構成の一例を示す。
【0051】
マッチング成功度算出装置1は、バスライン1000、制御部10を構成するCPU(Central Processing Unit)1010(マルチプロセッサ構成ではCPU1012等複数のCPUが追加されてもよい)、通信I/F(I/F:インターフェイス)1020、メインメモリ1030、BIOS(Basic Input Output System)1040、表示装置1050、入力装置1060、I/O(Input/Output)コントローラ1070、ハードディスク1074、光ディスクドライブ1076、光ディスク1077及び半導体メモリ1078を備える。なお、ハードディスク1074、光ディスクドライブ1076、及び半導体メモリ1078をまとめて記憶部20と呼ぶ。
【0052】
CPU1010は、マッチング成功度算出装置1に係る各種機能を統括的に制御する部分であり、ハードディスク1074等に記憶された各種プログラムを適宜読み出して実行することにより、上述したハードウェアと協働し、本発明に係る各種機能を実現している。通信I/F1020は、マッチング成功度算出装置1が、通信ネットワークを介して外部サーバ等と情報を送受信する場合のネットワーク・アダプタである。通信I/F1020は、モデム、ケーブル・モデム及びイーサネット(登録商標)・アダプタを含んでよい。
【0053】
メインメモリ1030は、CPU1010により各種プログラムを実行する際に生成される情報を一時的に記憶する。BIOS1040は、マッチング成功度算出装置1の起動時にCPU1010が実行するブートプログラムや、マッチング成功度算出装置1のハードウェアに依存するプログラム等を記録する。表示装置1050は、ブラウン管表示装置(CRT)、液晶表示装置(LCD)等のディスプレイ装置を含み、表示部として機能する。表示装置1050は、マッチング成功度算出装置1により出力された情報を表示する。入力装置1060は、キーボードやマウス等を含み、マッチング成功度算出装置1の管理者による入力の受付けを行い、操作部として機能する。I/Oコントローラ1070は、ハードディスク1074、光ディスクドライブ1076及び半導体メモリ1078といった機器が接続され、情報の入出力制御を行う。
【0054】
ハードディスク1074は、本ハードウェアをマッチング成功度算出装置1として機能させるための各種プログラム、本発明の機能を実行するプログラム及び上述のDBを記憶する。なお、マッチング成功度算出装置1は、外部に別途設けたハードディスク(図示せず)を外部記憶装置として利用することもできる。
【0055】
光ディスクドライブ1076としては、例えば、DVD−ROMドライブ、CD−ROMドライブ、DVD−RAMドライブ、ブルーレイディスク(Blu−ray Disc:登録商標)ドライブを使用することができる。光ディスクドライブ1076を使用する場合は、光ディスクドライブ1076に対応した光ディスク1077を使用する。光ディスク1077から光ディスクドライブ1076によりプログラム又はデータを読み取り、I/Oコントローラ1070を介してメインメモリ1030又はハードディスク1074に提供することもできる。
【0056】
なお、本発明でいうコンピュータとは、記憶装置、制御部等を備えた情報処理装置をいい、マッチング成功度算出装置1は、上述のように、制御部10、記憶部20等を備えた情報処理装置により構成され、この情報処理装置は、本発明のコンピュータの概念に含まれる。
【0057】
また、マッチング成功度算出装置1は、ハードウェアの数に制限はなく、必要に応じて1又は複数のハードウェアで構成してよい。また、複数のハードウェアで構成する場合には、通信ネットワークを介して各ハードウェアを接続してもよい。例えば、機能毎に別サーバ(装置)とし、各サーバ間での信号の送受信により、各サーバを連携させることで、本実施形態の機能を実現してもよい。
【0058】
[処理フロー]
図9は、本実施形態に係るマッチング成功度算出装置1がユーザの素性ベクトルを生成してから学習モデルを生成するまでの処理の流れを示すフローチャートである。
【0059】
ステップS11では、制御部10(素性ベクトル生成部11)は、プロフィールテーブル21aに記憶されているユーザのプロフィール情報を参照して、ユーザの素性ベクトルを生成する。そして、制御部10(素性ベクトル生成部11)は、生成した素性ベクトルを素性ベクトルテーブル21bに記憶させる。
【0060】
ステップS12では、制御部10(入力リスト生成部12)は、実績テーブル21cを参照して、過去にマッチングを行ったユーザの組み合わせを抽出する。ステップS13では、制御部10(入力リスト生成部12)は、ステップS12にて抽出したユーザの組み合わせを構成する第1ユーザ及び第2ユーザの素性ベクトルの各要素の差を取り、第1ユーザ及び第2ユーザの合成素性ベクトルを生成する。
【0061】
ステップS14では、制御部10(入力リスト生成部12)は、入力リストを生成して入力リストテーブル22aに記憶させる。より具体的には、制御部10(入力リスト生成部12)は、ステップS13にて生成した合成素性ベクトルにシリアルIDを付与するとともに、実績テーブル21cに記憶されているユーザの組み合わせの成功度を関連付けて入力リストを生成する。そして、生成した入力リストを入力リストテーブル22aに記憶させる。
【0062】
ステップS15では、制御部10(学習部13)は、入力リストに基づいて、学習モデルを生成する。詳細については、図10で説明する。
【0063】
図10は、本実施形態に係るマッチング成功度算出装置1の学習部13における処理の流れを示すフローチャートである。
【0064】
ステップS151では、制御部10(学習部13)は、入力リストテーブル22aを参照して、成功度毎に合成素性ベクトルの集合を生成する。ステップS152では、制御部10(学習部13)は、ステップS151で生成した成功度毎の合成素性ベクトルの集合から、2つの集合R及びNを定義する。
【0065】
ステップS153では、制御部10(学習部13)は、ステップS152で定義された集合R及びNよりそれぞれ1つの合成素性ベクトルを抽出して、2つの合成素性ベクトルの組み合わせとして、(dnq,drq)を生成する。dnqは、集合Nの合成素性ベクトルであり、drqは、集合Rの合成素性ベクトルである。
【0066】
ステップS154では、制御部10(学習部13)は、集合Nを構成する合成素性ベクトルdnq及びウェイトwの内積の値が、集合Rを構成する合成素性ベクトルdrq及びウェイトwの内積の値以上であるか否かを判別する。この判別結果がYESのときは、ステップS155に移り、NOのときは、ステップS156に移る。ここで、ウェイトwは、i回目に更新されたウェイトwを示す。
【0067】
ステップS155では、制御部10(学習部13)は、ウェイトwに対して、drqとdnqの差を、組み合わせSの合計値の逆数であるηで乗算した数を加算してウェイトwを更新する。
【0068】
ステップS156では、制御部10(学習部13)は、他の合成素性ベクトルの組み合わせ(dnq,drq)が存在しているか否かを判別する。この判別結果がYESのときは、ステップS154に移り、NOのときは、ステップS157に移る。
【0069】
ステップS157では、制御部10(学習部13)は、他の集合の定義が可能であるか否かを判別する。この判別結果がYESのときは、S152に移り、NOのときはS158に移る。ステップS158では、制御部10(学習部13)は、ウェイトwをモデルテーブル22bに記憶させる。この処理が終了すると、学習部13における処理を終了する。このようにすることで、学習結果がモデルテーブル22bに記憶されることとなる。
【0070】
図11は、本実施形態に係るマッチング成功度算出装置1のマッチング成功度算出部15における処理の流れを示すフローチャートである。
【0071】
ステップS21では、制御部10(マッチング成功度算出部15)は、2人のユーザの組み合わせの入力を受付ける。ステップS22では、制御部10(マッチング成功度算出部15)は、ステップS21で受付けた組み合わせを構成する2人のユーザの合成素性ベクトルを生成する。より具体的には、制御部10(マッチング成功度算出部15)は、組み合わせを構成するユーザについてプロフィールテーブル21aを参照して、ユーザの素性ベクトルを生成する。そして、生成した素性ベクトルに基づいて合成素性ベクトル生成する。
【0072】
ステップS23では、制御部10(マッチング成功度算出部15)は、ステップS22にて生成した合成素性ベクトル及びモデルテーブル22bに記憶されている学習モデルの内積を算出する。
【0073】
このように、本実施形態では、学習部13は、過去のマッチング結果を学習して学習結果として学習モデルを生成してモデルテーブル22bに記憶させる。そして、マッチング成功度算出部15は、モデルテーブル22bの学習モデルに基づいて、新たな2人のユーザの組み合わせのマッチング成功度を算出できる。このため、本発明では、新たな2人のユーザの組み合わせを複数用意して、マッチング成功度算出部15にマッチング成功度を算出させることによりマッチング成功度を比較してマッチングに適した候補者を選定することができる。
【0074】
以上、本発明の実施形態について説明したが、本発明は前記実施形態に限定されるものではなく、本発明の目的を達成できる範囲での変形、改良等は本発明に含まれるものである。
【0075】
本実施形態に係るマッチング成功度算出装置1は、お見合いやビジネスパートナーといった、2人のユーザのマッチング成功度を算出することを想定しているが、これに限らない。例えば、過去のマッチング結果に基づいて2つのグループのマッチング成功度を算出させることとしてもよい。より具体的には、図1に示される機能に加えて、ユーザが所属するグループの情報を記憶するグループDBと、グループマッチング成功度算出部とを設ける。そして、マッチング成功度算出部15は、グループDBを参照して第1のグループに所属するそれぞれのユーザを特定し、第1のグループに所属するそれぞれのユーザについて、第2のグループに属するそれぞれのユーザとのマッチング成功度をマッチング成功度算出部15により算出する。そして、グループマッチング成功度算出部は、算出したマッチング成功度の平均値を算出して、当該平均値を第1のグループ及び第2のグループのマッチング成功度とする。このようにすることで、あるグループに対して、他の複数のグループのマッチング成功度を算出し、当該マッチング成功度を比較することにより他の複数のグループのマッチング成功度の順位を決定できる。また、グループに属するユーザのマッチング成功度の平均値に基づいてグループのマッチング成功度を算出するので、グループに属するユーザそれぞれを均等に評価してグループのマッチング成功度を算出できる。
【0076】
また、本実施形態では、第1ユーザ及び第2ユーザの素性ベクトルの各要素の差を取ることにより合成素性ベクトルを生成することとしたが、これに限らない。すなわち、第1ユーザ及び第2ユーザの素性ベクトルに基づいて所定の演算を行うことにより、合成素性ベクトルを生成することとしてもよい。例えば、第1ユーザ及び第2ユーザの素性ベクトルを単純に結合して合成素性ベクトルを生成する方法や、成功度算出対象の2人のユーザ素性ベクトルを結合してベクトルを生成し、さらに、当該成功度算出対象の2人のユーザの素性ベクトルの差を当該生成したベクトルに対して結合させて合成素性ベクトルを生成する方法や、素性ベクトルを構成する要素において、複数の要素を指定し、当該指定した複数の要素に対して演算を施すことにより合成素性ベクトルを生成する方法といった、他の方法を用いて合成素性ベクトルを生成してもよい。
【0077】
また、本実施形態では、図10に示す処理、すなわち、検索システムにおけるページランクの学習方法を用いて学習モデル(Jonathan Elsas,Fast learning of Document Ranking Functions with the Committee Perceptron(WSDM 2008, Committee Perceptron)を生成することとしたが、これに限らず、他の学習方法を用いて学習モデルを生成することとしてもよい。すなわち、本実施形態では、例えば、Koby Crammerらが提案するOnline Passive−Aggressive Algorithm(JMLR 2006,Passive Aggressive)や、T.Joachimsらが提案するOptimizing search engines using clickthrough data(KDD 2002,“RankingSVM”)や、Zhe Caoらが提案するLearning to Rank:From Pairwise Approach to Listwise Approach(ICML 2007,Microsoft tech.report,‘ListNet’)に記載される学習方法を用いて学習モデルを生成してもよい。
【0078】
また、本実施形態では、成功度という指標を用いてマッチング成功度を算出しているが、これに限らない。例えば、ランクや得点といった、複数のユーザを客観的に評価できる指標を用いてもよい。
【符号の説明】
【0079】
1 マッチング成功度算出装置
10 制御部
11 素性ベクトル生成部
12 入力リスト生成部
13 学習部
14 入力受付部
15 マッチング成功度算出部
20 記憶部
21 ユーザDB
22 学習DB

【特許請求の範囲】
【請求項1】
任意のユーザのマッチング成功度を算出するマッチング成功度算出装置であって、
マッチングを行うユーザの個々のデータであって、予め所定のデータベースに記憶されたプロフィール情報を数値化し、各数値をベクトルの要素とすることで、ユーザの素性ベクトルを生成する素性ベクトル生成手段と、
個々の前記ユーザの素性ベクトルに基づいて合成素性ベクトルを生成する合成素性ベクトル生成手段と、
前記合成素性ベクトルと、該合成素性ベクトルの各ユーザの過去のマッチング成功履歴と、を関係付けて記憶するマッチング記憶手段と、
前記マッチング記憶手段に記憶された合成素性ベクトルと、前記過去のマッチング成功履歴と、に基づいて、教師ベクトルを生成することで学習モデルを生成する学習手段と、
任意の2人のユーザの合成素性ベクトルの入力を受付ける入力受付手段と、
前記教師ベクトルと、入力された前記任意の2人のユーザの合成素性ベクトルと、に基づいて、前記任意の2人のユーザのマッチング成功度を算出するマッチング成功度算出手段と、を備えるマッチング成功度算出装置。
【請求項2】
前記合成素性ベクトル生成手段は、2人のユーザの素性ベクトルの各要素について、所定の演算を行うことにより前記合成素性ベクトルを生成することを特徴とする請求項1記載のマッチング成功度算出装置。
【請求項3】
前記教師ベクトルと、相対的に良好な結果を得られたマッチングを行った2人のユーザの合成素性ベクトルとの内積の値が、前記教師ベクトルと、相対的に良好な結果を得られなかったマッチングを行った2人のユーザの合成素性ベクトルとの内積の値に比べて高い値となることを特徴とする請求項2記載のマッチング成功度算出装置。
【請求項4】
前記入力受付手段は、一のユーザの素性ベクトルと、該一のユーザの候補となる複数のユーザの各素性ベクトルとから生成された2以上の合成素性ベクトルを受付け、
前記マッチング成功度算出手段は、前記2以上の合成素性ベクトルの各々と、前記教師ベクトルとの内積値を算出し、算出した結果として、内積値が高い合成素性ベクトルのユーザを、前記一のユーザとのマッチング成功度が高いとする、請求項1に記載のマッチング成功度算出装置。
【請求項5】
任意のグループのマッチング成功度を算出するマッチング成功度算出装置であって、
マッチングを行うグループに属するユーザの個々のデータであって、予め所定のデータベースに記憶されたプロフィール情報を数値化し、各数値をベクトルの要素とすることで、ユーザの素性ベクトルを生成する素性ベクトル生成手段と、
前記マッチングを行うグループに属する個々の前記ユーザの素性ベクトルを結合することで、合成素性ベクトルを生成する合成素性ベクトル生成手段と、
前記合成素性ベクトルと、該合成素性ベクトルの各ユーザの過去のマッチング成功履歴と、を関連付けて記憶するマッチング記憶手段と、
前記マッチング記憶手段に記憶された合成素性ベクトルと、前記過去のマッチング成功履歴と、に基づいて、教師ベクトルを生成することで学習モデルを生成する学習手段と、
任意の2つのグループの選択を受付ける選択受付手段と
前記教師ベクトルと、選択が受付けられた2つのグループに属する複数のユーザの合成素性ベクトルに基づいて、前記任意の2つのグループのマッチング成功度を算出するマッチング成功度算出手段と、を備えるマッチング成功度算出装置。
【請求項6】
前記マッチング成功度算出手段は、前記教師ベクトルと、第1のグループに属する複数のユーザのそれぞれについて、第2のグループに属する複数のユーザのそれぞれとのマッチング成功度を、前記教師ベクトルと、該第1のグループに属する複数のユーザと該第2のグループに属する複数のユーザとの合成素性ベクトルと、に基づいて算出し、該マッチング成功度の平均値を該第1のグループ及び該第2のグループのマッチング成功度として算出することを特徴とする請求項5に記載のマッチング成功度算出装置。
【請求項7】
任意のユーザのマッチング成功度を算出するマッチング成功度算出方法であって、
マッチングを行うユーザの個々のデータであって、予め所定のデータベースに記憶されたプロフィール情報を数値化し、各数値をベクトルの要素とすることで、ユーザの素性ベクトルを生成するステップと、
個々の前記ユーザの素性ベクトルに基づいて合成素性ベクトルを生成するステップと、
前記合成素性ベクトルと、該合成素性ベクトルの各ユーザの過去のマッチング成功履歴と、を関係付けて記憶するステップと、
前記記憶するステップにおいて記憶された合成素性ベクトルと、前記過去のマッチング成功履歴と、に基づいて、教師ベクトルを生成することで学習モデルを生成するステップと、
任意の2人のユーザの合成素性ベクトルの入力を受付けるステップと、
前記教師ベクトルと、入力された前記任意の2人のユーザの合成素性ベクトルと、に基づいて、前記任意の2人のユーザのマッチング成功度を算出するステップと、を備えるマッチング成功度算出方法。

【図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

【図11】
image rotate