(57)【要約】【課題】データ群の各データに対してランク付けする機械学習システムを提供すること。【解決手段】本システムは、微分可能なパラメータを有するランク付けモジュールを備える。本システムは、対になった標本に依存するコスト関数を使用するコスト計算モジュールであって、ランク付けモジュールの出力を説明するコスト計算モジュールをさらに備える。開示するシステムを使用する方法も提供する。【選択図】図１
2006236345.tif 000002
【特許請求の範囲】
【請求項１】
微分可能なパラメータを有するランク付けモジュールと、
対になった標本に依存するコスト関数を使用するコスト計算モジュールであって、ランク付けモジュールの出力を記述するコスト計算モジュールと
を備えたことを特徴とするデータ群内のデータをランク付けする機械学習システム。
【請求項２】
前記コスト関数は、確率的であることを特徴とする請求項１に記載の機械学習システム。
【請求項３】
前記ランク付けモジュールを、勾配降下を使用して調整することが可能であることを特徴とする請求項２に記載の機械学習システム。
【請求項４】
前記ランク付けモジュールは、ニューラルネットワークおよびカーネルメソッドを採用する機械の１つであることを特徴とする請求項３に記載の機械学習システム。
【請求項５】
前記コスト関数は、１対のトレーニング標本の各々に関する前記システムの出力差の関数であることを特徴とする請求項４に記載の機械学習システム。
【請求項６】
少なくとも１つの基準に基づきデータをソートするフィルタモジュールをさらに備えたことを特徴とする請求項５に記載の機械学習システム。
【請求項７】
前記ランク付けモジュールに動作可能に接続されたユーザフィードバックモジュールをさらに備えたことを特徴とする請求項６に記載の機械学習システム。
【請求項８】
ランク付けされた要素の対を含むトレーニングデータ群を用いて、微分可能なパラメータを有する機械学習システムをトレーニングするステップと、
要素の対に依存するコスト関数を使用して前記機械学習システムの有効性を評価するステップと、
前記機械学習システムに１つの標本を１つの実数にマッピングさせることによって、前記機械学習システムを評価するステップと、
各要素にマップされた実数に基づくデータ群の要素を順序付けするステップと
を有することを特徴とするデータをランク付けする方法。
【請求項９】
前記コスト関数からの情報を使用することによって、前記機械学習システムの有効性を調節して、前記機械学習システムの少なくとも１つのパラメータを調節するステップをさらに有することを特徴とする請求項８に記載の方法。
【請求項１０】
前記コスト関数は、一対の標本の各々についての前記システムの出力差の関数であることを特徴とする請求項９に記載の方法。
【請求項１１】
前記機械学習システムのトレーニングは、少なくとも１人のユーザが提供した少なくとも１つのランク付けの使用を含むことを特徴とする請求項１０に記載の方法。
【請求項１２】
少なくとも部分的にユーザの好みに基づいてデータ群の要素を順序付けするステップをさらに有することを特徴とする請求項１１に記載の方法。
【請求項１３】
前記トレーニングデータ群の要素は、同一のランクを有する要素の対を含むことを特徴とする請求項９に記載の方法。
【請求項１４】
ランク付けされた要素の対を含むトレーニングデータ群を用いて、微分可能なパラメータを有する機械学習システムをトレーニングする手段と、
要素の対に依存するコスト関数を使用して前記機械学習システムの有効性を評価する手段と、
前記機械学習システムに１つの標本を１つの実数にマッピングさせることによって、前記機械学習システムを評価する手段と、
各要素にマップされた実数に基づきデータ群の要素を順序付けする手段と
を備えたことを特徴とするデータをランク付けするシステム。
【請求項１５】
前記コスト関数からの情報を用いることにより前記機械学習システムの有効性を調節して、前記機械学習システムの少なくとも１つのパラメータを調節する手段
をさらに備えたことを特徴とする請求項１４に記載のシステム。
【請求項１６】
前記コスト関数は、一対のトレーニング標本の各々についてのシステムの出力差の関数であることを特徴とする請求項１５に記載のシステム。
【請求項１７】
前記機械学習システムをトレーニングする前記手段は、ユーザが提供した少なくとも１つのランク付けを含むことを特徴とする請求項１６に記載のシステム。
【請求項１８】
少なくとも部分的にユーザの好みに基づいてデータ群の要素を順序付けする手段をさらに備えたことを特徴とする請求項１７に記載のシステム。
【請求項１９】
前記トレーニングデータ群の要素は、同一のランクを有する要素の対を含むことを特徴とする請求項１６に記載のシステム。
【請求項２０】
前記トレーニング手段に動作可能に接続されたユーザフィードバックを獲得する手段をさらに備えたことを特徴とする請求項１９に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的に、機械学習に関し、より詳細には、データ群をランク付けする機械学習システムおよび機械学習方法に関する。
【背景技術】
【０００２】
インターネット上の情報源が急増した結果、社内のビジネス情報を組織化しようと民間が努力した結果、または他の様々な原因により、情報を求める人が入手可能なデータの量は、天文学的に増えた。入手可能なデータ量の増加に伴い、データをより効率良く検索することができるように、カテゴリ化またはラベル付けすることの必要性も高まっている。これに関連した問題の１つが、ある検索クエリに応答する際に識別されたデータをランク付けする必要性である。このタスクに対する１つのアプローチが、機械学習システムを使用することである。
【０００３】
機械学習システムには、例えば、ニューラルネットワークのようなシステムおよびカーネルベースの学習方法を使用する機械などのシステムが含まれる。これらのシステムは、様々なデータ処理タスクまたはデータ分析タスクに使用でき、このタスクは、これに限定されないが、光学パターン認識およびオブジェクト認識、制御およびフィードバックシステム、ならびにテキストのカテゴリ化を含む。機械学習システムの他の潜在的用途には、データ分類を用いるアプリケーションが含まれる。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ユーザが情報の検索を行う場合、ユーザは、一般に、入力した検索クエリに単に何らかの関連を有するリストが欲しいのではなく、リストの中からユーザが最良の結果だと思うものに素早くアクセスできることを望んでいる。ここで、ランク付けが重要となる。なぜなら、高くランク付けすることによって、ユーザが検索した情報が、最も高くランク付けされた検索結果の中に存在している確率が高いことをユーザに示すからである。
【課題を解決するための手段】
【０００５】
本発明のいくつかの態様を基本的に理解するために、本発明の簡単な概要を下記に示す。本概要は、本発明を幅広く概説するものではない。また、本発明の主要要素または重要な要素の特定を意図したものではなく、本発明の範囲の画定を意図したものでもない。本概要の唯一の目的は、後に提示するより詳細な記述の前置きとして本発明のいくつかの概念を簡単な形で提示することである。さらに、本明細書で使用する見出しは、単に便宜上、提供したものであり、多少なりとも限定を加えるものととらえるべきではない。
【０００６】
開示された本発明の一態様は、データ群をランク付けするのに使用できる機械学習システムである。本システムは、トレーニング可能なシステムのいずれによっても実装でき、特に、勾配降下トレーニング方法を使用するシステムによって実装される。とりわけ考えられるシステムは、ニューラルネットワークおよびカーネル学習機械である。
【０００７】
本発明の別の態様に従って、機械学習システムをトレーニングしてランク付けを行う方法を開示する。開示された方法には、ランク付けされたデータ対の使用が含まれ、このデータ対は既知の正確な結果に対して評価、比較される。このような比較に基づき、本発明のシステムをトレーニングして、ランク付けの誤差を減らすことができ、理想的には誤差をなくすことができる。本発明のさらに別の態様に従って、コスト関数などの関数を使用して誤差率を判定する方法を開示する。コスト関数は、この関数の計算から得られる情報を使用して本システムの機能性を向上させることができる方法で作り上げられる。
【０００８】
本発明のもう１つ別の態様に相応し、ユーザからのフィードバックを使用するランク付けシステムを開示する。ユーザフィードバックのシステムおよび方法を採用することによって、ランク付けシステムをトレーニングして、固有の文脈に合わせて調整できるランク付け結果を提供すること、または、個別のユーザの好みを組み込むことが可能となる。これに替えて、またはこれに加えて、本システムを最初にトレーニングした後、このようなユーザフィードバックを使用して、ユーザが自身にとって重要だと特定した属性に関してシステムの機能性を向上させることができる。
【０００９】
本発明のさらに別の態様を参照して、２次ランク付けシステムを採用するランク付けシステムを開示する。１次ランク付けシステムを使用して、最初にランク付けしたデータ群を提供することができる。この最初のデータ群は２次ランク付けシステムへの入力として使用でき、２次ランク付けシステムをトレーニングして、個々のユーザの好みに基づき再ランク付けすることができる。このようなシステムによって、多くのクエリに対し機能できる一般的ランク付けシステムの使用が可能になる一方で、個々のユーザは独自の２次ランク付けシステムを使用することによりパーソナライズされた結果を得ることができる。
【００１０】
前述および関連した目的を達成するために、本発明は、後に余すところなく記述し、請求項で特に指摘する特徴を備える。下記の記述および添付図面は、本発明の図示的態様のいくつかを詳細に示す。しかしながら、これらの態様は、本発明の原理を採用できる各種方法のうちの一部を示したものに過ぎず、本発明の対象は、これらの態様およびその等価物のすべてを含むよう意図されている。本発明の他の目的、利点、および新規の特徴は、図面と共に考慮すると、下記の詳細な説明から明らかとなろう。
【発明を実施するための最良の形態】
【００１１】
本発明の対象は、データのランク付けを容易にするシステムおよび方法に関する。本出願における使用に伴い、「コンポーネント」、「システム」等の用語は、ハードウェア、（例えば、実行中の）ソフトウェア、および／またはファームウェアのいずれかのコンピュータ関連の実在物を指すよう意図されている。例えば、コンポーネントとは、プロセッサ上を走るプロセス、プロセッサ、オブジェクト、実行ファイル、プログラム、および／またはコンピュータであってよい。また、サーバで走らせるアプリケーションとそのサーバの両方をコンポーネントとすることもできる。1つまたは複数のコンポーネントが、1つのプロセス内に常駐することができ、１つのコンポーネントは１つのコンピュータに局在してもよく、複数のコンピュータ間に分散してもよく、その両方であってもよい。
【００１２】
本発明の対象は、図面を参照して記述される。図面全体を通し、同じ参照番号は同じ要素の参照に使用されている。下記の記述では、説明目的で、本発明の対象を十分に理解できるように、多数の具体的詳細を示す。しかしながら、本発明の対象は、これらの具体的詳細がなくても実施できることは、明らかであろう。他の例では、本発明の対象の記述を容易にするために、公知の構造および装置をブロック図の形で示す。さらに、示された具体例は、クライアント／サーバアーキテクチャに一致する用語を使用してもよく、またはクライアント／サーバの実装例であってもよいが、クライアントとサーバの役割は入れ換え可能なこと、また、本発明の対象は、クライアント／サーバアーキテクチャに限定されず、本発明の精神または範囲から逸脱することなしに、ピアツーピア（Ｐ２Ｐ）アーキテクチャを特に含む他のアーキテクチャに簡単に適合できることを当業者は理解されよう。
【００１３】
図１は、開示された本発明の態様によるランク付けシステム１００のシステムブロック図である。ランク付けシステム１００は、ランク付けコンポーネント１１０と、入力データストア１２０と、ランク付けされたデータ１３０の一群とを含む。ランク付けコンポーネント１００は、勾配降下を使用してトレーニングすることができるいずれの機械学習システムであってもよい。本開示の一部として提示された例は、ニューラルネットワークをランク付けコンポーネント１１０として使用する実装に焦点を当てる。しかしながら、これに限定されないが、カーネル学習メソッドシステムを含む他の機械学習システムを本発明の対象との関連で利用できることを本分野の当業者は認識されよう。また当業者は、ランク付けコンポーネント１１０としてのニューラルネットワークに代えて他の機械学習システムで代替するために、提示の具体例に修正を加えてよいことも容易に認識されよう。この種の修正を加えることができるが、それらは単に実装に関する細かい点であり、開示された本発明の範囲から逸脱するものではない。
【００１４】
入力データストア１２０は、ランク付けコンポーネント１１０に入力され、ランク付けコンポーネント１１０によってランク付けされるデータを含む。通常、入力データストア１２０内のデータは、ランク付けコンポーネント１１０による使用に合わせた方法でフォーマットされる。入力データストア１２０内のデータのフォーマットは、ランク付けコンポーネント１１０のモードまたは、トレーニングフェーズ、テストフェーズ、もしくは動作フェーズ等のランク付けコンポーネント１１０のオペレーションのフェーズによって異なる。
【００１５】
ランク付けコンポーネント１１０は、データを処理し、ランク付けされたデータ１３０の一群を出力する。その後、ランク付けされたデータ１３０の一群は、他のコンポーネントによって使用されるか、ユーザに提示される、または、その両方でもよい。このようなランク付けされたデータの一例が、インターネット上のウェブページなど、ユーザのクエリに応答するネットワーク上の文書の検索結果である。応答する文書の一群をランク付けされた検索結果としてユーザに提示する前に、その文書の一群を入力データとして提示し、何らかの基準に基づく順序でその文書をランク付けすることができる。
【００１６】
ランク付けコンポーネント１００は、修正されてランク付けを行うことができるようになったニューラルネットワークであればよい。ニューラルネットワークは、通常、分類タスクおよび回帰タスクに使用される。ニューラルネットワークは、通常、処理要素の多層で階層的な配置として組織される。この処理要素は、ニューロン、ノード、またはユニットと呼ばれる。本開示の目的のために、ニューロン、ノード、およびユニットという用語は、同義的に使用される。各ユニットは、一般的に１つまたは複数の入力および１つの出力を有する。各入力は、一般的に何らかの係数値で重みづけされる。ユニットの各出力は、一般的に、動作関数と加えられた重みまたはバイアスに従ってユニットの入力値を処理した結果である。
【００１７】
ニューラルネットワーク内のニューロンの階層配置において、ニューロンは、通常、層に配置される。１つの層のニューロンの出力は、次の層の１つまたは複数のニューロンに対する入力となることができる。この層のニューロンの入力はニューラルネットワーク外部のデータソースから入力を直接受け取るか、または、ニューロンの出力は処理の所望の結果であるかのどちらかであるという意味では、層が露出されていると言ってよい。この層のユニットの入力は、前の層または下位の層のユニットの出力を使用して算出され、隠れ層のユニットの出力は、次の層または高位の層のユニットへの入力を供給するという意味では、層は隠されているとも言うことができる。例示のニューラルネットワークは、入力層および、中間層、出力層など、任意の適当な数の層を含むことができる。
【００１８】
ニューラルネットワークの使用は、一般的に、トレーニングフェーズおよびテストフェーズを必要とする。トレーニングフェーズ中、「トレーニング群」と呼ばれる、データパターンの予め選択されたグループの１つが、分類用にネットワークに提示される。この処理は、順伝播と呼ばれることが多い。次に、ネットワークが生成する実際の結果は、通常、コスト関数を参照することで、既知の正解の結果と比較される。トレーニングステップの目的は、コスト関数を最小にすることであり、そうすることによってネットワークの誤差を最小にする。次に、この比較の結果を用いて、そのパターンが再度順伝播に提示された場合、ネットワークのコストがより低くなるような方法で、重みまたはバイアス等のネットワークのパラメータを調整する。この調整処理を逆伝播と呼ぶ。順伝播および逆伝播は、通常、コスト関数が最小になるまで行われる。そのコスト関数は、「検証群」と呼ばれる、適切な、第２の予め選択されたデータパターンのグループで平均されたものである。
【００１９】
トレーニングが完了すると、ネットワークのパラメータをフリーズし、変更しない。この時点で、ネットワークは完全にトレーニングされたと言える。ネットワークにテストデータ群が提示され、そのテスト群での算出結果を既知の理想的な結果を用いて評価する。この評価によって、許容マージン内にある結果が生じる場合、ネットワークの使用を承認する。
【００２０】
図２は、ランク付けコンポーネント１１０として使用できる多層ニューラルネットワーク２００のシステムブロック図である。図示のニューラルネットワーク２００は、入力層２１０、隠れ層２２０、および出力層２３０を含む。各層は、１つまたは複数のニューロン２４１、２４２、２４３を含む。各ニューロンは、１つの入力を受け入れ、何らかの所定の関数と任意の重みまたはバイアスとに対してその入力を処理し、１つの出力を提供する。各層のユニットは、多数の接続２５０を介して互いに接続されている。図示の例において、各層は、隣接層に完全に接続されており、これは、その層の各ユニットが、自身が常駐する層に隣接する層の全ユニットに接続されていることを意味する。明瞭に示すために、ユニットおよび接続のいくつかを図では省略している。よって、理解していただきたいのは、ニューラルネットワークのユニットの正確な数および構成は、この分野の当業者の技術水準内にある実装の細部であり、図２に示し、本明細書で論じた特定の構成を、限定要因としてとらえるべきではないということである。
【００２１】
入力層２１０は、ランク付けすべき入力データを最初に受け取る層である。一般的に、入力データは、多数の興味属性を定義し各属性は関連付けられた値を有するように構成される。よく用いられており、多くの場合好適な入力層２１０の構成は、処理されるべきデータの興味属性の数と同数の多くのユニットを有する層の構成である。その後、入力層２１０の各ユニット２４１は、入力データの単一の属性を処理し、その処理結果を隠れ層２２０のユニット２４２に順方向で供給する。一般的に、入力層のユニットは、関連付けられたバイアスを有さないが、ネットワークの他のユニットは全て関連付けられたバイアスを有する。同様に、隠れ層２２０のユニット２４２は、入力層２１０のユニット２４１からユニット２４２に入力されたデータを処理し、処理結果を出力層２３０のユニット２４３に順方向で供給する。出力層２３０のユニット２４３は、それぞれの入力データを同様に処理し、結果を同様に出力する。
【００２２】
図３は、サンプルユニット３００のシステムブロック図である。ユニット３００は、所定のプロセスに従ってデータ処理を行う本体３１０を含む。通常、このプロセスは、動作関数３２０の形である。採用可能な固有の動作関数は、実装選択の問題によるところが大きいが、一般的には、何らかのシグモイド関数である。
【００２３】
入力３４０は、所定の関数に従って処理するためにデータを本体３１０に供給する。ユニット３００の本体３１０内で、変数などの他の重みづけ手段またはバイアスをかける手段を使用してよいが、重みまたはバイアス３５０をユニット３００の本体３１０への入力としても図示する。出力３６０とは、入力の合計とバイアスを動作関数に通した結果である。
【００２４】
上述したように、具体的にどの動作関数が採用されるかは、所与のアプリケーションのいずれかにおける実装選択によるところが大きい。ニューラルネットワークの全ユニットは、それぞれ、一意の動作関数を有することが可能である。しかしながら、入力層および隠れ層内のユニットが、同じ動作関数を有し、出力層には異なる関数を使用することが一般的である。繰り返すが、異なる関数を使用するか否かは、主に実装時の選択である。
【００２５】
これまで記述してきたシステムの一用途に、データ群の要素をランク付けすることがある。興味を反映した固有のデータ群とは、ユーザが作成した検索クエリの結果として作成されたウェブページ群である。このデータ群内では、ユーザは、一般的に、結果の中にあるウェブページがユーザの検索要求に応答する見込みの最も高いものから見込みの最も低いものへと順序付けされていることを望む。応答性の見込みが同一である（例えば、何らかの基準に基づくクエリにマッチする確率が同じ）ウェブページは、同じランクを受け取るべきである。ユーザに提示するために、同じランクのウェブページを順序付けることは、任意でもよいし、適切なスキームのいずれかに基づいていてもよい。
【００２６】
記述した種類のニューラルネットワークを構築および構成するには、多数の要因が考えられる。適切な動作関数および閾値を作成または選択する。入力データフォーマットを定義する。ユニットおよび層に関する相互接続トポロジと共に、このユニットおよび層の数を決定する。構築が完了したら、ネットワークをトレーニングおよびテストする。ウェブページのランク付け用途に関して、これらの活動に関連した詳細を下に記述する。
【００２７】
ランク付け問題例には、トレーニング用のサンプル群
【００２８】
【数１】
2006236345.tif 000003
【００２９】
と、所望のランクへのサンプルのマップ
【００３０】
【数２】
2006236345.tif 000004
【００３１】
を伴う。
【００３２】
【数３】
2006236345.tif 000005
【００３３】
であり、ここでＮは、固定値と仮定する。複数のサンプルが同一のランクを有することができるが、各トレーニングサンプルは全て、割り当てられるランクが1つであるという意味で、マップＲは、多対一となり得る。よりフレキシブルな方法では、対になったトレーニング標本をシステムに提示することができ、システムにおいて、トレーニング標本の対の第１の要素は、第２の要素より上にランク付けを要求される。この場合、提示されたトレーニング標本の対は、上述の形をしたマップが存在しない場合（例えば、サンプル対［１，２］、［２，３］、および［３，１］）であっても、所望のランク付けを表わすことができる。ランクを確率的にモデル化することができる。すなわち、各対ｉ，ｊ毎に、モデルはｒｉ＞ｒｊである確率に対する近似値を学習する。確率的なモデルが、パターン認識または回帰推定よりもこの問題には望ましい。その理由は、ラベル付け中、ある一群内のオブジェクトに、そのオブジェクトの特徴に基づき正しいランク付けを割り当てるという問題は、単純な分類タスクでのラベル割り当てに相当する問題よりも主観的な処理であることが多いからである。本発明は、非確率的なランク付け方法も扱うが、ここでは確率的なランク付けを算出する方法を記述する。
【００３４】
ランク付けの問題を解決するために、ニューラルネットワークをトレーニングして順序回帰を行うことが可能であるが、このようなシステムでは、入力されたトレーニングパターンごとに固有の目標値を定義することが必要である。多くのランク付けアプリケーションにおいて問題なのは、ランク付け関数の値ではなく、システムがパターンに起因するランク付け位置である。そのため、ニューラルネットを順序回帰に使用してランク付け問題を解決することは、不必要に難しい問題を解決することになる。従って、本発明において、トレーニングに使用するランク付けされた対の群に可能な限り一致したマッピングをニューラルネットワークが選ぶことを可能にする方法を提案する。通常のニューラルネットワークのトレーニングでは、コスト関数は、単一パターンのネットワーク出力の関数であるのに対し、ここではコスト関数を、相対的な所望のランクが既知である１対のパターンのネットワーク出力の差の関数としてとらえる。
【００３５】
【数４】
2006236345.tif 000006
【００３６】
がｘ１はｘ２よりも高いランクであること意味するようなモデル
【００３７】
【数５】
2006236345.tif 000007
【００３８】
を考えよう。モデル確率
【００３９】
【数６】
2006236345.tif 000008
【００４０】
は
【００４１】
【数７】
2006236345.tif 000009
【００４２】
で表される。所望の確率目標値は
【００４３】
【数８】
2006236345.tif 000010
【００４４】
で表される。
【００４５】
【数９】
2006236345.tif 000011
【００４６】
が定義されれば、使われる交差エントロピーコスト関数は次のように定義される。
【００４７】
【数１０】
2006236345.tif 000012
【００４８】
ここで、
【００４９】
【数１１】
2006236345.tif 000013
【００５０】
は
【００５１】
【数１２】
2006236345.tif 000014
【００５２】
の関数である。
【００５３】
交差エントロピーコスト関数に対して、モデルの出力から確率へのマップはシグモイド関数を用いて得られる。即ち、
【００５４】
【数１３】
2006236345.tif 000015
【００５５】
しかしながら、ここで、関数値は１対のパターンに関連付けられた出力のペアに対応する。予め定義したコスト関数
【００５６】
【数１４】
2006236345.tif 000016
【００５７】
は次の形で表される。
【００５８】
【数１５】
2006236345.tif 000017
【００５９】
コスト関数Ｃは２つの顕著な性質を有する。まず第１に、この関数は
【００６０】
【数１６】
2006236345.tif 000018
【００６１】
が増加するにつれて線形になる。第２に、
【００６２】
【数１７】
2006236345.tif 000019
【００６３】
の場合（例えば、２つのパターンの所望のランクが同一である時）に、この関数は対称になり、１次導関数は原点でゼロになる。高次のコストは、全体の汎化能力のコストにおいて重要でない外れ値にペナルティを与える傾向があるので、
【００６４】
【数１８】
2006236345.tif 000020
【００６５】
の増加とともに線形性が増すのは望ましい。
【００６６】
【数１９】
2006236345.tif 000021
【００６７】
で対称性があるのは、原理的に同じランクを持つように望まれるパターンでのトレーニングを可能にするので、望ましい。
【００６８】
表１は、３つの値
【００６９】
【数２０】
2006236345.tif 000022
【００７０】
に対する
【００７１】
【数２１】
2006236345.tif 000023
【００７２】
の関数としてＥをプロットしたものを示す。ここで、ランク付けシステムの出力の表記として、
【００７３】
【数２２】
2006236345.tif 000024
【００７４】
を導入した。
【００７５】
【表１】
2006236345.tif 000025
【００７６】
このコスト関数は回帰のためにニューラルネットワークをトレーニングする他のいくつかのコスト関数とは全く異なる。例えば、最小二乗コスト関数がその一例で、これは原点に関して対称である。ここでは、コスト関数は非対称で、
【００７７】
【数２３】
2006236345.tif 000026
【００７８】
が大きな正の値なら、
【００７９】
【数２４】
2006236345.tif 000027
【００８０】
であり、パターン１がパターン２よりもランクが高いことが確かであり、その時のコストは低いことになる。もし、
【００８１】
【数２５】
2006236345.tif 000028
【００８２】
が大きな負の値なら、依然として
【００８３】
【数２６】
2006236345.tif 000029
【００８４】
であり、コストは大きい。その代わりに、もし
【００８５】
【数２７】
2006236345.tif 000030
【００８６】
ならば、コスト関数は対称となり、同じランク、同じ出力の原因となったパターンを与えるようネットワークに働きかける効果がある。ここでは、コスト関数は２つのパターンの出力値の差の関数であって、１つのパターンの出力値の関数ではない。
【００８７】
本モデルは、
【００８８】
【数２８】
2006236345.tif 000031
【００８９】
に関して次の一致要件を設定する。すなわち、
【００９０】
【数２９】
2006236345.tif 000032
【００９１】
および
【００９２】
【数３０】
2006236345.tif 000033
【００９３】
を与えられたとすると、その結果
【００９４】
【数３１】
2006236345.tif 000034
【００９５】
に関する条件を計算することができる。一致条件は、
【００９６】
【数３２】
2006236345.tif 000035
【００９７】
となるように、モデルのある理想的な出力
【００９８】
【数３３】
2006236345.tif 000036
【００９９】
が存在する要件とともに生ずる。ここで、
【０１００】
【数３４】
2006236345.tif 000037
【０１０１】
であり、αは、
【０１０２】
【数３５】
2006236345.tif 000038
【０１０３】
の定義に含まれる。一致要件が満たされなければ、所望のペアワイズの確率を生じるモデルの出力群は存在しない。例えば、
【０１０４】
【数３６】
2006236345.tif 000039
【０１０５】
と
【０１０６】
【数３７】
2006236345.tif 000040
【０１０７】
を与えられたとすると、閉形式の
【０１０８】
【数３８】
2006236345.tif 000041
【０１０９】
は、下記の式で算出される。
【０１１０】
【数３９】
2006236345.tif 000042
【０１１１】
これは、
【０１１２】
【数４０】
2006236345.tif 000043
【０１１３】
の場合について表２にプロットされている。
【０１１４】
【表２】
2006236345.tif 000044
【０１１５】
結合確率
【０１１６】
【数４１】
2006236345.tif 000045
【０１１７】
は、いくつかの顕著な特性を有する。まず第１に、Ｐ＝０、Ｐ＝０．５、Ｐ＝１の３点に限り
【０１１８】
【数４２】
2006236345.tif 000046
【０１１９】
である。そのため、例えば、
【０１２０】
【数４３】
2006236345.tif 000047
【０１２１】
（すなわち、ＢよりＡが高くランク付けされるイベント）の確率が０．５であり、
【０１２２】
【数４４】
2006236345.tif 000048
【０１２３】
の確率は０．５であることがわかれば、
【０１２４】
【数４５】
2006236345.tif 000049
【０１２５】
の確率も０．５であるということになる。信頼または信頼の欠如は、予想されるように、次のようになる。すなわち、Ｔの値が０＜Ｔ＜０．５の場合は、
【０１２６】
【数４６】
2006236345.tif 000050
【０１２７】
となり、Ｔの値が０．５＜Ｔ＜１の場合は
【０１２８】
【数４７】
2006236345.tif 000051
【０１２９】
となる。
【０１３０】
説明目的では、以下を考慮するとよい。ラベル付けされたサンプル群
【０１３１】
【数４８】
2006236345.tif 000052
【０１３２】
が与えられ
【０１３３】
【数４９】
2006236345.tif 000053
【０１３４】
を満たす任意の目標事後確率が、隣接する事後確率として参照される隣接対
【０１３５】
【数５０】
2006236345.tif 000054
【０１３６】
すべてに対して指定されたと仮定する。そうすると、すべての対
【０１３７】
【数５１】
2006236345.tif 000055
【０１３８】
に対する
【０１３９】
【数５２】
2006236345.tif 000056
【０１４０】
を満たす事後確率を一意に識別するためには、この隣接する事後確率を指定することで十分である。
【０１４１】
これは次のように示される。隣接する事後確率を指定することによって、目標事後確率全ての値が与えられる。方程式
【０１４２】
【数５３】
2006236345.tif 000057
【０１４３】
から、
【０１４４】
【数５４】
2006236345.tif 000058
【０１４５】
は、
【０１４６】
【数５５】
2006236345.tif 000059
【０１４７】
であり、よって、どの
【０１４８】
【数５６】
2006236345.tif 000060
【０１４９】
についてもｊ≦ｋは、
【０１５０】
【数５７】
2006236345.tif 000061
【０１５１】
として算出することができる。
【０１５２】
公式
【０１５３】
【数５８】
2006236345.tif 000062
【０１５４】
は、結果として生じる確率が０と１との間にあることを示す。一意性は次のように示される。すなわち、任意のｉ、ｊに関して
【０１５５】
【数５９】
2006236345.tif 000063
【０１５６】
を計算できる。予め算出された事後確率の一群
【０１５７】
【数６０】
2006236345.tif 000064
【０１５８】
,を与えられたとすると、
【０１５９】
【数６１】
2006236345.tif 000065
【０１６０】
の対応する値をまず計算し、これらの値を加算した後で
【０１６１】
【数６２】
2006236345.tif 000066
【０１６２】
を用いることによって、
【０１６３】
【数６３】
2006236345.tif 000067
【０１６４】
を計算することができる。しかしながら、
【０１６５】
【数６４】
2006236345.tif 000068
【０１６６】
なので、中間項は消え、
【０１６７】
【数６５】
2006236345.tif 000069
【０１６８】
のみが残る。この結果得られる
【０１６９】
【数６６】
2006236345.tif 000070
【０１７０】
は、一意である。
【０１７１】
上記の公式は、隣接する事後確率の任意の一群を与えられる
【０１７２】
【数６７】
2006236345.tif 000071
【０１７３】
を算出するのに役立つ方法を提供するが、例えば隣接する事後確率の全てがＰに等しいなど、隣接する事後確率の値が全て等しい特殊な場合に、
【０１７４】
【数６８】
2006236345.tif 000072
【０１７５】
を算出するのにも役立つ。この場合、
【０１７６】
【数６９】
2006236345.tif 000073
【０１７７】
および
【０１７８】
【数７０】
2006236345.tif 000074
【０１７９】
によって
【０１８０】
【数７１】
2006236345.tif 000075
【０１８１】
が与えられる。
ここで、
【０１８２】
【数７２】
2006236345.tif 000076
【０１８３】
は、オッズ比
【０１８４】
【数７３】
2006236345.tif 000077
【０１８５】
である。
【０１８６】
【数７４】
2006236345.tif 000078
【０１８７】
は、次の顕著な特性を有する。
【０１８８】
ｎ＞０とする。
【０１８９】
【数７５】
2006236345.tif 000079
【０１９０】
の場合、
【０１９１】
【数７６】
2006236345.tif 000080
【０１９２】
となり、ｎ＝１の時、等式である。また、
【０１９３】
【数７７】
2006236345.tif 000081
【０１９４】
はｎに厳密に単調増加する。
【０１９５】
【数７８】
2006236345.tif 000082
【０１９６】
の場合、
【０１９７】
【数７９】
2006236345.tif 000083
【０１９８】
となり、ｎ＝１の時、等式である。また、
【０１９９】
【数８０】
2006236345.tif 000084
【０２００】
はｎに厳密に単調減少する。
【０２０１】
【数８１】
2006236345.tif 000085
【０２０２】
の場合、すべてのｎに対し、
【０２０３】
【数８２】
2006236345.tif 000086
【０２０４】
となる。
【０２０５】
これは、次のように示される。ｎ＞０であると仮定する。
【０２０６】
【数８３】
2006236345.tif 000087
【０２０７】
であるため、
【０２０８】
【数８４】
2006236345.tif 000088
【０２０９】
の値について、
【０２１０】
【数８５】
2006236345.tif 000089
【０２１１】
であり、その分母は、ｎに厳密に単調減少する。
【０２１２】
【数８６】
2006236345.tif 000090
【０２１３】
の値について、
【０２１４】
【数８７】
2006236345.tif 000091
【０２１５】
であり、その分母は、ｎに厳密に単調増加する。
【０２１６】
【数８８】
2006236345.tif 000092
【０２１７】
の値については、代入により
【０２１８】
【数８９】
2006236345.tif 000093
【０２１９】
となる。最後に、ｎ＝１の場合、構成により
【０２２０】
【数９０】
2006236345.tif 000094
【０２２１】
となる。
【０２２２】
ニューラルネットをどのようにトレーニングするかについて、一般的な方法は、何らかのコスト関数を参照し、勾配降下を用いる逆伝播である。下記の例は、採用することができる１つのアプローチである。ここで、逆伝播アルゴリズムの数学を提示して、我々の方法を本文中に置く。
【０２２３】
例として、２層のフィードフォワードニューラルネットを考える。２層の間またはユニット間の接続について、さらなる仮定はしない。例えば、第１層のノードまたは第１のユニットの中には、入力ｘｉのサブセットに接続できるものがある。記述した例から、複数の出力または、多数の異なる層に一般化することが可能である。一般的なランク付けアプリケーションについて、ニューラルネットは、１つの出力だけを有するが、ここでは総体的な状況を説明する。出力をｏｉ、目標をｔｉとし、所与のノードでのコスト関数Ｃをｆとすると、総コスト関数は、次の式で表される。
【０２２４】
【数９１】
2006236345.tif 000095
【０２２５】
ここで、この和は、出力ノードを超える。
【０２２６】
関数Ｃについて、２つの仮定がなされる。第１に、コスト関数は、各ノードで同じであると仮定される。第２に、所与のノードにおけるコストは、他のノードにおける出力に依存しないとも仮定される。αｉが本モデルのパラメータであるならば、勾配降下は、次の導関数によってモデル化されることに注意する。
【０２２７】
【数９２】
2006236345.tif 000096
【０２２８】
ここで、
【０２２９】
【数９３】
2006236345.tif 000097
【０２３０】
は、正の学習比率である。
【０２３１】
ｉ′番目のノードでの出力を
【０２３２】
【数９４】
2006236345.tif 000098
【０２３３】
とする。
ここで、ｇｋはノードの第ｋ層内のノードに対する動作関数で、ｗは重み、ｂはバイアスである。ここで、上付きの指数は、層を指数化し、下付きの指数はノードを指数化したものである。パラメータに関するＣの導関数は、
【０２３４】
【数９５】
2006236345.tif 000099
【０２３５】
となる。
【０２３６】
次のパターンに留意することは有用である。所与のノードで、ｂに関する導関数をΔとする。ｗに関して微分するために、上記のノードのΔに現在の動作関数を乗算することができる。現在のノードのΔを算出するために、上記の複数のΔを合計して、上記の（複数の）ノードに加わる重みを乗算し、上記のΔに勾配（動作関数の勾配）を乗算することができる。
【０２３７】
逆伝播には、次の動作が含まれる。まず第１に、ニューラルネットワークノードを介し、順方向パスを行って出力ｏｉを算出する。この出力の値および出力の導関数の値は、全てのネットワークノードに保存される。出力層のために
【０２３８】
【数９６】
2006236345.tif 000100
【０２３９】
を算出し、出力の閾値を更新することができる。
【０２４０】
【数９７】
2006236345.tif 000101
【０２４１】
を使うと、
【０２４２】
【数９８】
2006236345.tif 000102
【０２４３】
に前の層の出力を乗算して、層２〜３への重みの更新を算出することができる。
【０２４４】
【数９９】
2006236345.tif 000103
【０２４５】
と出力の勾配と重みとを用いて、
【０２４６】
【数１００】
2006236345.tif 000104
【０２４７】
を算出することができる。必要に応じて、この処理を繰り返す。
【０２４８】
このスキームを確率的な勾配降下に適合させるために、前述したような重みを適合させることができ、完了するまで前記の処理を繰り返すことができる。一括学習するために、複数のΔｗを保存し、全トレーニング標本について複数のΔｗをインクリメントすることができ、その後複数のΔｗを更新することができる。
【０２４９】
ランク付けに戻り、提示された逆伝播例を拡張および修正して、ランク付け機能の学習を行う。ある入力標本ｘが実線上の点ｙにマップされたランク付け問題を考察する。ランク付け問題には、出力値ｙよりむしろ相対的な測度である正確なランクを予測するほうが望ましいことが多い。しかしながら、さまざまな対の標本に関して正確なランクを得る相対的な重要度を符号化することも可能である。どんな機械学習システムを使用しても、例示のシステムは、トレーニングに複数の対の標本を使用する。しかしながら、テストフェーズにおいて、複数の対の標本をテストすることは大抵非常に費用がかかるため、望ましくは、本システムは、１対の標本を実数にマップすべきである。しかしながら、特定の実装においては、複数の対においてテストすることを採用してもよい。
【０２５０】
ニューラルネットワークのコスト関数は、２つの入力ｘ１,ｘ２に対応する出力ｏ１,ｏ２の関数である。コスト関数を
【０２５１】
【数１０１】
2006236345.tif 000105
【０２５２】
に導入することができる。コスト関数は、所与の１対の標本に関して正確なランクを得る重要度を符号化するパラメータを含むこともできることに留意する。ここで、ｆは、
【０２５３】
【数１０２】
2006236345.tif 000106
【０２５４】
のように単調増加する関数である。このため、ｘ１およびｘ２の所望の格付けが
【０２５５】
【数１０３】
2006236345.tif 000107
【０２５６】
であり、システムの出力が
【０２５７】
【数１０４】
2006236345.tif 000108
【０２５８】
であるならば、小さなペナルティがある。しかしながら、
【０２５９】
【数１０５】
2006236345.tif 000109
【０２６０】
であるならば、ペナルティはより大きく、
【０２６１】
【数１０６】
2006236345.tif 000110
【０２６２】
が増加するのに伴い、ペナルティが大きくなる。
【０２６３】
このコスト関数を用いて、前述の逆伝播例を修正し、ランク付けを取り扱うことができる。コスト関数は、
【０２６４】
【数１０７】
2006236345.tif 000111
【０２６５】
であるため、あるパラメータβに関するその導関数は、
【０２６６】
【数１０８】
2006236345.tif 000112
【０２６７】
となる。この勾配を２つの勾配の和として書くことはできず、２つの勾配の各々は、１つの標本のみに依存する。これは、このｆ′が２つの標本に依存するためである。従って、このランク付け標本を実装するには、２つの標本を順方向に伝播し、各標本の動作関数および勾配を保存した後に更新する。さらに、２つの標本を正確にランク付けする重要度を符号化する重みを介して、コスト関数は、複数の対の標本に依存することができる。高い方のランクの標本を最初に通過させるか、あるいはその標本を２番目に通過させるかに関する、何らかの規定も採用しなければならない。ここでは、高い方のランクの標本（ｘ１）を最初に通過させる。
【０２６８】
次の標本は、３層（すなわち重みの３つの層）のニューラルネットワークから成るものである。出力ノードが３とラベル付けされ、入力ノードは０とラベル付けされている。コスト関数は、
【０２６９】
【数１０９】
2006236345.tif 000113
【０２７０】
である。ここで、ｇの下付き文字１は、ｘ１を意味する。また、
【０２７１】
【数１１０】
2006236345.tif 000114
【０２７２】
と書かれたものは、
【０２７３】
【数１１１】
2006236345.tif 000115
【０２７４】
である。ここで上の方程式において、省略記号は、項が繰り返されていることを単に意味しているが、（例えば、ｘ２の関数の代わりに、ｘ１の関数というように）下付き文字２の代わりに下付き文字１を用いる。１対のパターンよりむしろ複数の対のパターンのために、対応する量を各ノードで保存しなければならないことを除けば、この処理は、逆伝播に類似している。各項において、各パターンへの依存度は、２つの項の差として現れる。項の各々は、個々の各パターンに依存し、両方のパターンに依存する全項（コスト関数の導関数）を乗算する。
【０２７５】
図４を参照すると、例示のトレーニング群４００が図示されている。トレーニング群４００は、トレーニング標本４１０に再分割され、トレーニング標本４１０は、トレーニング対４２０にグループ化される。トレーニング対４２０の各々の中にあるトレーニング標本は、標本Ａが標本Ｂより高くランク付けされるようにランク付けおよび順序付けされる。各トレーニング標本４１０は、描写した属性
【０２７６】
【数１１２】
2006236345.tif 000116
【０２７７】
および
【０２７８】
【数１１３】
2006236345.tif 000117
【０２７９】
など、多数の属性を含む。各属性は１つの値を有し、ニューラルネットワークの入力データとして使用される。一般的に、属性の数ｎ＋１は、ニューラルネットワークの入力層にあるノードの数に等しく、各入力ノードがトレーニング標本４１０の単一の属性に関する処理を開始するようになっている。これらの属性に基づいてニューラルネットワークが処理する出力は、トレーニング標本４１０に割り当てられるランクである。スペースを節約するために、トレーニング用パターンの各対を格納するのではなく、パターンの配列を１つだけ格納し、その配列内に、ランク付けの対を、対のオフセットとして格納することに留意されたい。
【０２８０】
図５は、トレーニング標本５００のブロック図である。トレーニング標本５００は、データ属性５１０をｎ＋１個含む。各データ属性５１０は、各属性の定義に一致するよう割り当てられた値を有する。例えば、属性ａ０は、あるウェブページの本文に、あるキーワードが現れる回数であってよい。この場合、属性ａ０の値Ｖ０は整数である。属性ａ１は、ａ１の値Ｖ１が、何らかの選択された正確さを持って表現された実数であるように、ウェブページの本体内のキーワードに比較的近似した測度であってよい。本発明は、ウェブアプリケーション、またはテキスト文書に限定されたものではないことに留意されたい。例えば、ユーザは、オーディオクリップをクエリとして提示し、このクエリへの類似性の順でランク付けされて戻された結果の一群を望む場合がある。このために、オリジナルのオーディオデータとそのオーディオデータに関連付けられたメタデータとの両方を使用して、特徴を生成することができる。別の例として、ユーザは、画像をクエリとして提示し、このクエリへの類似性の順でランク付けされて戻された結果の一群を望む場合がある。このために、オリジナルの画像とその画像に関連付けられたメタデータの両方を使用して、特徴を生成することができる。
【０２８１】
カウントデータには、始めに対数を適用するのが一般的である。これは、入力のダイナミックレンジを制限することと、加法性の関係ではなく、乗法性の関係をニューラルネットが学習するのを容易に可能にするという２つの利点を有する。通常、乗法性の関係のほうが、カウントデータに有用である見込みが高い。例えば、１つの入力が、ある文書内の所与の単語の１カウントに対応する場合、その文書内の単語の総数で除算すると、より情報量の多い測度を提供することができる。さらに、各入力は、例えばトレーニング群など何らかの大きくて代表的なデータ群に対し、各入力がゼロ平均および単位分散を有するように、線形に再マップされる。その後、再マップ関数は全テストデータに適用される。
【０２８２】
図６は、開示された本発明の一態様に従ってニューラルネットワークをトレーニングするメソッド６００を示すフロー図である。一般的に、確率的な勾配降下のトレーニングエポックについて予め選択または固定された何らかの最大数を使用してトレーニングを行う。確率的な勾配降下は、最小コストで終了するのが理想的である。下の表３は、エポックベースのトレーニングシステムのコスト情報を示したグラフである。
【０２８３】
【表３】
2006236345.tif 000118
【０２８４】
（Pairwise Percent Correct：対の正解率）
（Epoch Number：エポック数）
（Mean Cost：平均コスト）
【０２８５】
開始ブロック６１０で処理が始まり、トレーニング群のデータを混ぜる処理ブロック６１５に続く。混ぜるとは、トレーニング群をニューラルネットワークに提示する前に、その一群内のデータを再順序付けする手続きを言う。このような混ぜることが収束を助けるので、トレーニングエポックの開始前にこの方法でデータを混ぜることが有用であることが多い。処理ブロック６２０で、トレーニングエポックが始まる。処理ブロック６２５が示すように、トレーニング群からの対がニューラルネットワークに提示される。所与のエポック内で、このトレーニング群から標本の全ての対が、処理のためニューラルネットワークに提示される。処理ブロック６３０において処理の結果を獲得し、格納する。処理ブロック６３５で、トレーニングエポックを終了する。
【０２８６】
検証群を用いてニューラルネットワークをテストし、処理ブロック６４０で処理を継続する。処理ブロック６４５で、上述したような適切なコスト関数に基づくコストなどの誤差測度を計算する。判断ブロック６５０で、計算した誤差測度を評価して、最小に達したか確かめる。達していない場合、トレーニングの終了点に達したか否かの判定を行う判断ブロック６５５で処理を継続する。たとえ検証群で明らかな最小誤差が見つからない場合でも、判断ブロック６５５は、エポックが取り得る最大数を課すことをユーザが望んでいる処理の場合を示す。トレーニングの終了点に達していなかった場合、トレーニングデータが混ぜられる処理ブロック６１５で処理を継続する。
【０２８７】
判断ブロック６５０でなされた判定が、誤差測度が最小に達したことを示す場合、ニューラルネットワークのパラメータをフリーズさせる処理ブロック６６０で処理を継続する。同様に、判断ブロック６５５でなされた判定が、トレーニングの終了点に達したことを示す場合、処理ブロック６６０で処理を継続し、ニューラルネットのパラメータをフリーズする。そして、処理は、終了ブロック６７０で終了する。判断ブロック６５５で肯定的な決定がなされると、単にそれ以上のトレーニング標本がないため、ニューラルネットワークのパラメータがフリーズしてしまうことを理解されたい。この場合、コスト関数が最小になっていないことがある。各種技法をここで採用して、この状態を検出することができると考えられる。
【０２８８】
図７は、テストフェーズおよび使用フェーズの一般的な処理フロー７００を示すフロー図である。処理は、開始ブロック７１０で始まり、第１層のユニットにデータを提示する処理ブロック７２０へと続く。処理ブロック７３０で、動作関数、重み、およびバイアスに基づく第１層への出力を計算する。第１層の出力を第２層へ順方向に供給する処理ブロック７４０で処理を継続する。
【０２８９】
処理ブロック７５０で、第２層への出力を、動作関数、重み、およびバイアスに再度基づいて計算する。第２層の出力を第３層へ順方向に供給する処理ブロック７６０で処理を継続する。処理ブロック７７０で、第３層への出力を、やはり動作関数、重み、およびバイアスに再度基づいて計算する。第３層からの結果を出力する処理ブロック７８０で処理を継続し、終了ブロック７９０で処理を終える。
【０２９０】
開示したシステムおよび方法に各種の修正または変更を加えてよいことを理解されたい。例えば、各種のフィードバックシステムを採用して、システムの初期トレーニング、または再トレーニングフェーズを改良することができる。考えられる方法の一つは、ブーストである。ブーストスキームに従うと、トレーニング中、初期フェーズでの誤った結果は、後のトレーニングフェーズで重要度を増す。この結果、汎化能力が向上する。
【０２９１】
考えられる別のフィードバック機構は、直接的なユーザフィードバックである。このようなスキームを図８に示す。図では、ユーザフィードバック８００を採用するランク付けシステムが示されている。このシステムは、入力データストア８２０からのデータを受け入れるランク付けモジュール８１０を含む。ランク付けモジュール８１０は、このデータを処理し、ランク付けしたデータ群８３０をユーザに出力する。ユーザフィードバックモジュール８４０によって、ユーザは、通常、ランク付けの好みまたはランク付け変更の提案といった形でフィードバックを入力することができ、ユーザによって調整されたデータ８５０の一群を作成できる。このユーザによって調整されたデータ８５０をトレーニングモジュール８６０が入力として受け取り、そのデータを使用して、ランク付けモジュール８１０の機能性を調節する。人間によるラベル付けは費用が嵩むので、ユーザフィードバックの使用は有益である。また、システムが高くランク付けしたパターンを人間にラベル付けさせることは、偽肯定（誤って高くランク付けされたパターン）を修正するためにラベル付けが必要なパターンがほとんどないということを意味する。しかしながら、偽否定（高くランク付けされるべきだが、そうされていないパターン）を検出するために、システムによるランク付けが高くないパターンの統計サンプルに人間がラベル付けを行うことも望ましい。
【０２９２】
上述のプロセスを使用してラベル付けコストを改善できる一方で、本明細書に開示したシステムおよび方法を採用して、パーソナライズされた、すなわちユーザに合わせて調整された結果を提供することもできる。例えば、特定のユーザが、スポーツ全般に興味があり、スポーツの中でも特に野球が好きで、その中でもレッドソックスのチームが特に好きな場合がある。図８に示したシステムなどのランク付けシステムを使用する一環として、ユーザは、単に、全般的にスポーツに関連した話題の検索を行うことができる。しかし、ユーザフィードバックモジュール８４０を使用すれば、ユーザは、常に、野球およびレッドソックスに関する結果を他の結果より高くランク付けすることができる。ユーザのこのランク付けをその後のトレーニングで使用して、そのユーザに対してはこのような結果を初めから高くランク付けすることができる。あるいは、ユーザのランク付けの好みを予め知っている場合、そのランク付けの好みを初期トレーニングフェーズに組み込むことができる。
【０２９３】
図９に示すシステムでは、別のアプローチを利用することが可能である。パーソナライズされたランク付けシステム９００が示されている。このシステムは、入力データストア９２０からのデータを受け入れる１次ランク付けシステム９１０を含む。１次ランク付けシステム９１０は、受け取ったデータを処理し、中間ランク付けデータ９３０の一群を出力する。続いて、中間ランク付けデータ９３０を２次ランク付けシステム９４０に入力する。２次ランク付けシステム９４０は、ユーザ固有のトレーニングに基づくデータを再ランク付けする。処理後、２次ランク付けシステム９４０は、最終のランク付けを行ったデータ９５０の一群をユーザに出力する。図には示されていないが、上述した種類のフィードバック機構およびフィードバック方法を含むフィードバックの機構および方法を図９のシステムならびに他の開示したシステムおよび方法に採用することができる。このように、ウェブ文書をランク付けするアプリケーションでは、第１のシステムがクエリに何らかの関連があると考えられる多数の文書を返す場合があり、第２のシステムは、その文書のランク付け結果の位置を変えて、ユーザの既知の興味を反映することができる。第１のシステムがランク付けの仕事のほとんどを行うので、一例では、第１のシステムがサーバに常駐し、第２のシステムがユーザのクライアントコンピュータに常駐することもある。そうすると、ユーザの興味に関して自動的に収集された情報に基づいて、バックグラウンドで第２のシステムをトレーニングすることができる。
【０２９４】
本発明の対象の各種態様を実装するために追加の状況を提供するために、図１０、図１１および以下の記述は、本発明の対象の各種態様を実装するのに適したコンピューティング環境を簡潔かつ一般的に記述するよう意図されている。ローカルコンピュータおよび／またはリモートコンピュータ上を走るコンピュータプログラムのコンピュータ実行可能命令の一般的な文脈において本発明について上述したが、本発明を他のプログラムモジュールとの組合せで実装してもよいことを当業者は認識するであろう。通常、プログラムモジュールには、特定のタスクを行いかつ／または特定の抽象データ型を実装するルーチン、プログラム、コンポーネント、データ構造などが含まれる。
【０２９５】
さらに、当業者は理解されるであろうが、他のコンピュータシステム構成で本発明の方法を実施することができ、その実施可能なコンピュータシステム構成には、シングルプロセッサまたはマルチプロセッサのコンピュータシステム、ミニコンピュータ、メインフレームコンピュータ、パーソナルコンピュータ、ハンドヘルドコンピューティング装置、マイクロプロセッサベースおよび／またはプログラム可能な家庭用電化製品等が含まれ、このような構成の各々が、１つまたは複数の関連付けられた装置と動作可能に通信できる。また、通信ネットワークを介してリンクされたリモートの処理装置によって何らかのタスクが行われる分散コンピューティング環境において、本発明の図示した態様を実施することもできる。また一方、本発明の態様のうち全てではないがそのいくつかを独立のコンピュータで実施することができる。分散コンピューティング環境では、ローカルおよび／またはリモートのメモリストレージ装置にプログラムモジュールを配置することができる。
【０２９６】
図１０は、本発明の対象が対話することができるコンピューティング環境サンプル１０００の概略ブロック図である。システム１０００は、１つまたは複数のクライアント１０１０を含む。クライアント１０１０は、ハードウェアおよび／またはソフトウェア（例えば、スレッド、プロセス、コンピューティング装置）であってよい。また、システム１０００は、１つまたは複数のサーバ１０２０を含む。サーバ１０２０は、ハードウェアおよび／またはソフトウェア（例えば、スレッド、プロセス、コンピューティング装置）であってよい。サーバ１０２０は、例えば、本発明の対象を採用することによって、変換を行うスレッドまたはプロセスを収容することができる。
【０２９７】
クライアント１０１０とサーバ１０２０との間の通信手段の１つを、複数のコンピュータプロセス間で伝送するのに適したデータパケットの形とすることができる。システム１０００は、通信フレームワーク１０４０を含み、通信フレームワーク１０４０を採用して、クライアント１０１０とサーバ１０２０の間の通信を容易にすることができる。クライアント１０１０は、１つまたは複数のクライアントデータストア１０５０に動作可能に接続され、クライアントデータストア１０５０を採用して、クライアント１０１０にとってローカルな情報を格納することができる。同様に、サーバ１０２０は、１つまたは複数のクライアントデータストア１０３０に動作可能に接続され、クライアントデータストア１０３０を採用して、サーバ１０４０にとってローカルな情報を格納することができる。
【０２９８】
図１１を参照すると、本発明の各種態様を実装する例示の環境１１００には、コンピュータ１１１２が含まれる。コンピュータ１１１２は、処理装置１１１４、システムメモリ１１１６、およびシステムバス１１１８を含む。システムバス１１１８は、これに限定されないがシステムメモリ１１１６を含むシステムコンポーネントを、処理装置１１１４に結合する。処理装置１１１４は、利用可能な各種プロセッサのいずれであってもよい。また、処理装置１１１４として、デュアルマイクロプロセッサおよび他のマルチプロセッサアーキテクチャを採用することもできる。
【０２９９】
システムバス１１１８は、メモリバスもしくはメモリコントローラ、周辺バスもしくは外部バス、および／または利用可能である様々なバスアーキテクチャのいずれかを使用するローカルバスを含む数種のバス構造のいずれであってもよく、利用可能である様々なバスアーキテクチャは、これに限定されないが、ＩＳＡ（業界標準アーキテクチャ）、ＭＳＡ（マイクロチャネルアーキテクチャ）、ＥＩＳＡ（拡張ＩＳＡ）、ＩＤＥ（Ｉｎｔｅｌｌｉｇｅｎｔ  Ｄｒｉｖｅ  Ｅｌｅｃｔｒｏｎｉｃｓ）、ＶＥＳＡローカルバス（ＶＬＢ）、ＰＣＩ（周辺装置相互接続）、カードバス、ＵＳＢ（ユニバーサルシリアルバス）、ＡＧＰ（Ａｄｖａｎｃｅｄ  Ｇｒａｐｈｉｃｓ  Ｐｏｒｔ）、ＰＣＭＣＩＡ（パーソナルコンピュータメモリカード国際協会）バス、ファイアワイヤ（ＩＥＥＥ１３９４）、およびＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍｓ  Ｉｎｔｅｒｆａｃｅ）を含む。
【０３００】
システムメモリ１１１６は、揮発性メモリ１１２０および不揮発性メモリ１１２２を含む。起動時などに、コンピュータ１１１２内の要素間で情報を転送する基本ルーチンを含む基本入出力システム（ＢＩＯＳ）は、不揮発性メモリ１１２２に格納される。限定のためではなく、例証する目的で挙げると、不揮発性メモリ１１２２は、読み出し専用メモリ（ＲＯＭ）、プログラマブルＲＯＭ（ＰＲＯＭ）、電気的にプログラマブルなＲＯＭ（ＥＰＲＯＭ）、電気的に消去可能なＲＯＭ（ＥＥＲＯＭ）、またはフラッシュメモリを含むことができる。揮発性メモリ１１２０はランダムアクセスメモリ（ＲＡＭ）を含み、ＲＡＭは外部キャッシュメモリとして働く。限定のためではなく、例証する目的で挙げると、ＳＲＡＭ（同期ＲＡＭ）、ＤＲＡＭ（ダイナミックＲＡＭ）、ＳＤＲＡＭ（同期ＤＲＡＭ）、ＤＤＲ  ＳＤＲＡＭ（ダブルデータレートＳＤＲＡＭ）、ＥＳＤＲＡＭ（Ｅｎｈａｎｃｅｄ  ＳＤＲＡＭ）、ＳＬＤＲＡＭ（ＳｙｎｃｈＬｉｎｋ  ＤＲＡＭ）およびＤＲＲＡＭ（Ｄｉｒｅｃｔ  Ｒａｍｂｕｓ  ＲＡＭ）など多くの形でＲＡＭを利用することが可能である。
【０３０１】
コンピュータ１１１２は、取り外し可能な／固定の、揮発性／不揮発性コンピュータ記憶媒体も含む。例えば、図１１では、ディスクストレージ１１２４を示す。ディクスストレージ１１２４は、これに限定されないが、磁気ディスクドライブ、フロッピー（登録商標）ディスクドライブ、テープドライブ、Ｊａｚドライブ、Ｚｉｐドライブ、ＬＳ−１００ドライブ、フラッシュメモリカード、またはメモリスティックのような装置を含む。さらに、ディスクストレージ１１２４は、単独で記憶媒体を含むこともできるし、これに限定されないが、コンパクトディスクＲＯＭ（ＣＤ−ＲＯＭ）、ＣＤ−Ｒドライブ（ＣＤ ｒｅｃｏｒｄａｂｌｅ  ｄｒｉｖｅ）、ＣＤ−ＲＷドライブ(ＣＤ  ｒｅｗｒｉｔａｂｌｅ  ｄｒｉｖｅ）、またはデジタル多用途ディスクＲＯＭドライブ（ＤＶＤ−ＲＯＭ）などの光ディスクドライブを含む他の記憶媒体と組み合わせて記憶媒体を含むこともできる。ディスクストレージ装置１１２４のシステムバス１１１８への接続を容易にするために、インターフェース１１２６などの取り外し可能な、または固定のインターフェースを一般的に使用する。
【０３０２】
図１１は、適切な動作環境１１００において記述した基本的なコンピュータリソースとユーザの間で媒介として働くソフトウェアを記述していることを理解されたい。このようなソフトウェアは、オペレーティングシステム１１２８を含む。オペレーティングシステム１１２８は、ディクスストレージ１１２４に格納でき、コンピュータシステム１１１２のリソースを制御し、割り当てるよう働く。システムアプリケーション１１３０は、システムメモリ１１１６またはディスクストレージ１１２４のどちらかに格納されたプログラムモジュール１１３２およびプログラムデータ１１３４を介して、オペレーティングシステム１１２８によるリソースの管理を活用する。各種オペレーティングシステムまたはオペレーティングシステムの各種組合せに本発明の対象を実装できることを理解されたい。
【０３０３】
ユーザは、入力装置１１３６を通してコマンドまたは情報をコンピュータ１１１２に入力する。入力装置１１３６は、これに限定されないが、マウスや、トラックボール、スタイラス、タッチパッド、キーボード、マイク、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナ、テレビチューナカード、デジタルカメラ、デジタルビデオカメラ、ウェブカメラ等のポインティングデバイスを含む。このような入力装置および他の入力装置は、インターフェースポート１１３８を介してシステムバス１１１８を通じ処理装置１１１４に接続される。インターフェースポート１１３８は、例えば、シリアルポート、パラレルポート、ゲームポート、およびＵＳＢ（ユニバーサルシリアルバス）を含む。出力装置１１４０は、入力装置１１３６と同じ種類のポートをいくつか使用する。そのため、例えば、ＵＳＢポートを使用して、コンピュータ１１１２への入力を提供し、コンピュータ１１１２からの情報を出力装置１１４０に出力することができる。出力アダプタ１１４２が提供され、出力装置１１４０の中には、モニタ、スピーカ、プリンタのように特別なアダプタを必要とするものもあるということを示している。限定する目的ではなく例として挙げると、出力アダプタ１１４２は、出力装置１１４０とシステムバス１１１８との間を接続する手段を提供するビデオカードおよびサウンドカードを含む。リモートコンピュータ１１４４など、他の装置および／または装置の他のシステムが入力能力と出力能力の両方を提供することに留意されたい。
【０３０４】
コンピュータ１１１２は、リモートコンピュータ１１４４などの１つまたは複数のリモートコンピュータへの論理接続を使用してネットワーク環境で動作することができる。リモートコンピュータ１１４４は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ワークステーション、マイクロプロセッサベースの電化製品、ピア装置または他のよく用いられるネットワークノード等であればよく、一般的に、コンピュータ１１１２に関連して記述した多くの要素または全要素を含む。簡単にするために、メモリストレージ装置１１４６のみをコンピュータ１１４４とともに図示する。リモートコンピュータ１１４４は、ネットワークインターフェース１１４８を通して、コンピュータ１１１２に論理接続され、その後、通信接続１１５０を介して物理的に接続される。ネットワークインターフェース１１４８は、ローカルエリアネットワーク（ＬＡＮ）および広域ネットワーク（ＷＡＮ）など有線および／または無線の通信ネットワークを包含する。ＬＡＮ技術には、ＦＤＤＩ（Ｆｉｂｅｒ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｄａｔａ  Ｉｎｔｅｒｆａｃｅ）や、ＣＤＤＩ（Ｃｏｐｐｅｒ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｄａｔａ  Ｉｎｔｅｒｆａｃｅ）、イーサネット（登録商標）や、トークンリング等が含まれる。ＷＡＮ技術には、これに限定されないが、ポイントツーポイントリンクや、ＩＳＤＮ（サービス統合デジタル網）およびその変形などの回路交換網、パケット交換網、ならびにＤＳＬ（デジタル加入者線）が含まれる。
【０３０５】
通信接続１１５０とは、ネットワークインターフェース１１４８をバス１１１８に接続するために採用されたハードウェア／ソフトウェアのことである。明瞭に図示するために、通信接続１１５０をコンピュータ１１１２の内部に示しているが、通信接続１１５０はコンピュータ１１１２の外部にあってもよい。ネットワークインターフェース１１４８に接続するために必要なハードウェア／ソフトウェアには、例示目的のみで述べるが、通常の電話グレードのモデム、ケーブルモデムおよびＤＳＬモデムを含むモデム、ＩＳＤＮアダプタ、並びにイーサネット（登録商標）カードなどの内部技術および外部技術が含まれる。
【０３０６】
これまでに述べたことには、本発明の対象の例が含まれる。当然のことながら、本発明の対象を記述するために、考え得るコンポーネントまたは方法をすべて記述することは不可能であるが、当業者には、本発明の対象のさらに多くの組合せおよび置き換えが可能であることが理解されよう。よって、本発明の対象は、添付請求項の精神および範囲内にあるそのような変更、修正、および変形すべてを包含するよう意図されている。
【０３０７】
詳細には、上述したコンポーネント、装置、回路、システム等によって行われる各種機能に関し、このようなコンポーネントの記述に使用される用語（「手段」に関する言及をも含む）は、特に指摘のない限り、記述したコンポーネントの指定の機能を行ういずれのコンポーネント（例えば、機能上等価な物）、すなわち、開示した構造と構造上等価でなくとも、本明細書で説明した本発明の例示的態様における機能を行ういずれのコンポーネントにも該当するよう意図されている。この点で、本発明は、システムと共に、本発明の各種方法のアクトおよび／またはイベントを行うコンピュータ実行可能命令を有するコンピュータ可読媒体とを含むことも理解されよう。
【０３０８】
さらに、本発明に固有の特徴をいくつかの実装のうちの１つだけについて開示したが、所与のまたは固有のアプリケーションのいずれにとっても望ましく、かつ有利なように、この特徴を他の実装の他の特徴の１つまたは複数と組み合わせることができる。さらに、詳細な記述または請求項で使用されている用語「含む」およびその変化形は、用語「備える」に類似した意味で包括的であることを意図している。
【図面の簡単な説明】
【０３０９】
【図１】開示された本発明の態様によるランク付けシステムのシステムブロック図である。
【図２】開示された本発明に関連して利用できる多層ニューラルネットワークのシステムブロック図である。
【図３】開示された本発明の態様によるユニットのシステムブロック図である。
【図４】開示された本発明の１つまたは複数の態様と共に利用できるトレーニングデータ群のシステム ブロック図である。
【図５】開示された本発明の態様によるトレーニング標本のブロック図である。
【図６】開示された本発明の別の態様による方法を示すフロー図である。
【図７】本発明のさらに別の態様による一般的な処理フローを示すフロー図である。
【図８】本発明のさらに別の態様によるフィードバックシステムを有するランク付けシステムを示すブロック図である。
【図９】本発明の別の態様による２次ランク付けシステムを採用したランク付けシステムを示すブロック図である。
【図１０】本発明の対象の新規な態様を採用できるネットワーキング環境例を示す図である。
【図１１】本発明の対象の新規な態様を採用できる動作環境例を示す図である。
【符号の説明】
【０３１０】
２１０  入力層
２２０  隠れ層
２３０  出力層
２４１、２４２、２４３  ニューロン
２５０  接続
４１０  トレーニング標本
５１０  データ属性
【図１】
2006236345.tif 000119
【図２】
2006236345.tif 000120
【図３】
2006236345.tif 000121
【図４】
2006236345.tif 000122
【図５】
2006236345.tif 000123
【図６】
2006236345.tif 000124
【図７】
2006236345.tif 000125
【図８】
2006236345.tif 000126
【図９】
2006236345.tif 000127
【図１０】
2006236345.tif 000128
【図１１】
2006236345.tif 000129