(57)【特許請求の範囲】
【請求項１】
概念的に関連した単語のクラスタに対して文書を特徴付ける方法であって、該方法は、受信する機構と選択機構と構成要素構築機構を含む装置によって実行され、
該方法は、
該受信する機構が、該文書を受け取ることであって、該文書は単語のセットを含む、ことと、
該選択機構が、該単語のセットに関連する概念的に関連した単語の候補クラスタを選択することであって、概念的に関連した単語のクラスタから単語のセットがどのように生成されるのかを説明するモデルを用いて、該候補クラスタが選択される、ことと
を包含し、
該モデルは、確率モデルであり、該確率モデルは、単語に対するランダムな変数および概念的に関連した単語のクラスタに対するランダムな変数を表しているノードを含み、該確率モデルにおける複数のノードは、重み付けられたリンクによって互いに結合されており、該確率モデルにおけるクラスタノードが発火するとき、該クラスタノードから他のノードへの重み付けられたリンクが該他のノードを発火させることができ、
アクティブである複数の親ノードをノードが有するとき、該ノードが発火しない確率は、該アクティブな親ノードからの複数のリンクが発火しない確率の積であり、
該候補クラスタを選択することは、
該選択機構が、該文書における該単語のセットに関連付けられたターミナルノードで始まるエビデンスツリーであって、親クラスタノードの方向に向かうリンクに続くエビデンスツリーを構築することと、
該選択機構が、該エビデンスツリーを用いることにより、該単語のセットを生成する際に、各親クラスタノードがアクティブであった可能性を推定することと、
該選択機構が、該推定された可能性に基づいて、候補クラスタノードであるべき親クラスタノードを選択することと
を包含し、
該方法は、
該構成要素構築機構が、該文書を特徴付けるために構成要素のセットを構築することであって、該構成要素のセットは、候補クラスタに対する構成要素を含み、各構成要素は、対応する候補クラスタが該単語のセットに関連する概算確率を示す、ことをさらに包含し、
該構成要素のセットにおける各構成要素は、対応する候補クラスタが該単語のセットを生成する際にアクティブである概算確率を示し、
該構成要素のセットを構築することは、該構成要素構築機構が、該単語のセットを生成できたはずである該確率モデルの状態に対して、所与の候補クラスタがアクティブである確率を概算することを包含する、方法。
【請求項２】
前記確率モデルは、常にアクティブである普遍ノードであって、すべてのクラスタノードに対して重み付けられたリンクを有する普遍ノードを含む、請求項１に記載の方法。
【請求項３】
前記単語のセットを生成する際に所与の親ノードがアクティブである可能性を推定することは、前記選択機構が、該所与の親ノードがアクティブである無条件的な確率と、該所与の親ノードの親ノードがアクティブであると仮定した際に、該所与の親ノードがアクティブである条件的な確率と、該所与の親ノードの子ノードがアクティブであると仮定した際に、該所与の親ノードがアクティブである条件的な確率とを考慮することを包含し得る、請求項１に記載の方法。
【請求項４】
前記条件的な確率を考慮することは、前記選択機構が、複数のノードの間のリンク上の重みを考慮することを包含する、請求項３に記載の方法。
【請求項５】
前記単語のセットを生成する際に所与の親ノードがアクティブである可能性を推定することは、前記選択機構が、推定処理中に、ターミナルノードに印を付けて、ターミナルノードが１度より多く推測する際に計算に入れられないことを確実にすることを包含する、請求項１に記載の方法。
【請求項６】
前記エビデンスツリーを構築することは、前記選択機構が、該エビデンスツリーから可能性の低いノードを取り除くことを包含する、請求項１に記載の方法。
【請求項７】
前記構成要素のセットの構築中に、前記単語のセットを生成する際に候補クラスタがアクティブである度合いは、該単語のセットを生成する際に候補クラスタがアクティブである確率を前記構成要素構築機構が計算することによって決定される、請求項１に記載の方法。
【請求項８】
前記構成要素のセットの構築中に、前記単語のセットを生成する際に候補クラスタがアクティブである度合いは、該単語のセットを生成する際に候補クラスタがアクティブである確率と該候補クラスタに対するアクチベーションとを前記構成要素構築機構が乗算することによって決定され、該アクチベーションは、該候補クラスタから他のノードにどれだけの数のリンクが発火する可能性があるのかを示す、請求項１に記載の方法。
【請求項９】
前記構成要素のセットを構築することは、前記構成要素構築機構が、該構成要素のセットを標準化することを包含する、請求項１に記載の方法。
【請求項１０】
前記確率を概算することは、
前記構成要素構築機構が、前記文書において前記単語のセットを生成した可能性があった前記確率モデルに対する状態を選択することと、
該構成要素構築機構が、選択された状態だけを考慮し、一方で、前記所与の候補クラスタがアクティブである確率を計算することと
を包含する、請求項１に記載の方法。
【請求項１１】
前記単語のセットを生成した可能性のあった状態を選択することは、
前記構成要素構築機構が、前記確率モデルに対する開始時の状態をランダムに選択することと、
該構成要素構築機構が、該単語のセットを生成した可能性のあった状態に到達するように該開始時の状態から登坂動作を行うことと
を包含する、請求項１０に記載の方法。
【請求項１２】
前記登坂動作を行うことは、前記構成要素構築機構が、該登坂動作に対する目的関数に関わらず個々の候補クラスタの状態を周期的に変化させることにより、さもなくば、登坂動作を介して到達不可能である前記確率モデルの状態を探ることを包含する、請求項１１に記載の方法。
【請求項１３】
前記個々の候補クラスタの状態を変化させることは、前記構成要素構築機構が、該変化した状態を一時的に固定することにより、該変化した状態を含む前記目的関数に対する局所的最適値を生成することを包含する、請求項１２に記載の方法。
【請求項１４】
前記文書は、ウェブページ、または問い合わせからの用語のセットを含み得る、請求項１に記載の方法。
【請求項１５】
命令を格納するコンピュータ読み取り可能格納媒体であって、該命令は、コンピュータによって実行されると、該コンピュータに、概念的に関連した単語のクラスタに対して文書を特徴づけるための方法を実行させ、
該方法は、
該文書を受け取ることであって、該文書は単語のセットを含む、ことと、
該単語のセットに関連する概念的に関連した単語の候補クラスタを選択することであって、概念的に関連した単語のクラスタから単語のセットがどのように生成されるのかを説明するモデルを用いて、該候補クラスタが選択される、ことと
を包含し、
該モデルは、確率モデルであり、該確率モデルは、単語に対するランダムな変数および概念的に関連した単語のクラスタに対するランダムな変数を表しているノードを含み、該確率モデルにおける複数のノードは、重み付けられたリンクによって互いに結合されており、該確率モデルにおけるクラスタノードが発火するとき、該クラスタノードから他のノードへの重み付けられたリンクが該他のノードを発火させることができ、
アクティブである複数の親ノードをノードが有するとき、該ノードが発火しない確率は、該アクティブな親ノードからの複数のリンクが発火しない確率の積であり、
該候補クラスタを選択することは、
該文書における該単語のセットに関連付けられたターミナルノードで始まるエビデンスツリーであって、親クラスタノードの方向に向かうリンクに続くエビデンスツリーを構築することと、
該エビデンスツリーを用いることにより、該単語のセットを生成する際に、各親クラスタノードがアクティブであった可能性を推定することと、
該推定された可能性に基づいて、候補クラスタノードであるべき親クラスタノードを選択することと
を包含し、
該方法は、
該文書を特徴付けるために構成要素のセットを構築することであって、該構成要素のセットは、候補クラスタに対する構成要素を含み、各構成要素は、対応する候補クラスタが該単語のセットに関連する概算確率を示す、ことをさらに包含し、
該構成要素のセットにおける各構成要素は、対応する候補クラスタが該単語のセットを生成する際にアクティブである概算確率を示し、
該構成要素のセットを構築することは、該単語のセットを生成できたはずである該確率モデルの状態に対して、所与の候補クラスタがアクティブである確率を概算することを包含する、コンピュータ読み取り可能格納媒体。
【請求項１６】
前記確率モデルは、常にアクティブである普遍ノードであって、すべてのクラスタノードに対して重み付けられたリンクを有する普遍ノードを含む、請求項１５に記載のコンピュータ読み取り可能格納媒体。
【請求項１７】
前記単語のセットを生成する際に所与の親ノードがアクティブである可能性を推定することは、該所与の親ノードがアクティブである無条件的な確率と、該所与の親ノードの親ノードがアクティブであると仮定した際に、該所与の親ノードがアクティブである条件的な確率と、該所与の親ノードの子ノードがアクティブであると仮定した際に、該所与の親ノードがアクティブである条件的な確率とを考慮することを包含し得る、請求項１５に記載のコンピュータ読み取り可能格納媒体。
【請求項１８】
前記条件的な確率を考慮することは、複数のノードの間のリンク上の重みを考慮することを包含する、請求項１７に記載のコンピュータ読み取り可能格納媒体。
【請求項１９】
所与の親ノードがアクティブである可能性を推定することは、推定処理中に、ターミナルノードに印を付けて、ターミナルノードが１度より多く推測する際に計算に入れられないことを確実にすることを包含する、請求項１５に記載のコンピュータ読み取り可能格納媒体。
【請求項２０】
前記エビデンスツリーを構築することは、該エビデンスツリーから可能性の低いノードを取り除くことを包含する、請求項１５に記載のコンピュータ読み取り可能格納媒体。
【請求項２１】
前記構成要素のセットの構築中に、前記単語のセットを生成する際に候補クラスタがアクティブである度合いは、該単語のセットを生成する際に候補クラスタがアクティブである確率を計算することによって決定される、請求項１５に記載のコンピュータ読み取り可能格納媒体。
【請求項２２】
前記構成要素のセットの構築中に、前記単語のセットを生成する際に候補クラスタがアクティブである度合いは、該単語のセットを生成する際に候補クラスタがアクティブである確率と該候補クラスタに対するアクチベーションとを乗算することによって決定され、該アクチベーションは、該候補クラスタから他のノードにどれだけの数のリンクが発火する可能性があるのかを示す、請求項１５に記載のコンピュータ読み取り可能格納媒体。
【請求項２３】
前記構成要素のセットを構築することは、該構成要素のセットを標準化することを包含する、請求項１５に記載のコンピュータ読み取り可能格納媒体。
【請求項２４】
前記確率を概算することは、
前記文書において前記単語のセットを生成した可能性があった前記確率モデルに対する状態を選択することと、
選択された状態だけを考慮し、一方で、前記所与の候補クラスタがアクティブである確率を計算することと
を包含する、請求項１５に記載のコンピュータ読み取り可能格納媒体。
【請求項２５】
前記単語のセットを生成した可能性のあった状態を選択することは、
前記確率モデルに対する開始時の状態をランダムに選択することと、
該単語のセットを生成した可能性のあった状態に到達するように該開始時の状態から登坂動作を行うことと
を包含する、請求項２４に記載のコンピュータ読み取り可能格納媒体。
【請求項２６】
前記登坂動作を行うことは、該登坂動作に対する目的関数に関わらず個々の候補クラスタの状態を周期的に変化させることにより、さもなくば、登坂動作を介して到達不可能である前記確率モデルの状態を探ることを包含する、請求項２５に記載のコンピュータ読み取り可能格納媒体。
【請求項２７】
前記個々の候補クラスタの状態を変化させることは、該変化した状態を一時的に固定することにより、該変化した状態を含む前記目的関数に対する局所的最適値を生成することを包含する、請求項２６に記載のコンピュータ読み取り可能格納媒体。
【請求項２８】
前記文書は、ウェブページ、または問い合わせからの用語のセットを含み得る、請求項１５に記載のコンピュータ読み取り可能格納媒体。
【請求項２９】
概念的に関連した単語のクラスタに対して文書を特徴付ける装置であって、
該装置は、
該文書を受け取るように構成されている受信する機構であって、該文書は単語のセットを含む、受信する機構と、
該単語のセットに関連する概念的に関連した単語の候補クラスタを選択するように構成されている選択機構であって、概念的に関連した単語のクラスタから単語のセットがどうのように生成されるのかを説明するモデルを用いて、該候補クラスタが選択される、選択機構と
を備え、
該モデルは、確率モデルであり、該確率モデルは、単語に対するランダムな変数および概念的に関連した単語のクラスタに対するランダムな変数を表しているノードを含み、該確率モデルにおける複数のノードは、重み付けられたリンクによって互いに結合されており、該確率モデルにおけるクラスタノードが発火するとき、該クラスタノードから他のノードへの重み付けられたリンクが該他のノードを発火させることができ、
アクティブである複数の親ノードをノードが有するとき、該ノードが発火しない確率は、該アクティブな親ノードからの複数のリンクが発火しない確率の積であり、
該選択機構は、
該文書における該単語のセットに関連付けられたターミナルノードで始まるエビデンスツリーであって、親クラスタノードの方向に向かうリンクに続くエビデンスツリーを構築することと、
該エビデンスツリーを用いることにより、該単語のセットを生成する際に、各親クラスタノードがアクティブであった可能性を推定することと、
該推定された可能性に基づいて、候補クラスタノードであるべき親クラスタノードを選択することと
を実行するように構成されており、
該装置は、
該文書を特徴付けるために構成要素のセットを構築するように構成されている構成要素構築機構であって、該構成要素のセットは、候補クラスタに対する構成要素を含み、各構成要素は、対応する候補クラスタが該単語のセットに関連する概算確率を示す、構成要素構築機構をさらに備え、
該構成要素のセットにおける各構成要素は、対応する候補クラスタが該単語のセットを生成する際にアクティブである概算確率を示し、
該構成要素構築機構は、該単語のセットを生成できたはずである該確率モデルの状態に対して、所与の候補クラスタがアクティブである確率を概算するように構成されている、装置。
【請求項３０】
前記確率モデルは、常にアクティブである普遍ノードであって、すべてのクラスタノードに対して重み付けられたリンクを有する普遍ノードを含む、請求項２９に記載の装置。
【請求項３１】
前記単語のセットを生成する際に所与の親ノードがアクティブである可能性を推定する一方で、前記選択機構が、該所与の親ノードがアクティブである無条件的な確率と、該所与の親ノードの親ノードがアクティブであると仮定した際に、該所与の親ノードがアクティブである条件的な確率と、該所与の親ノードの子ノードがアクティブであると仮定した際に、該所与の親ノードがアクティブである条件的な確率とのうちの少なくとも１つを考慮するように構成されている、請求項２９に記載の装置。
【請求項３２】
前記条件的な確率を考慮する一方で、前記選択機構は、複数のノードの間のリンク上の重みを考慮するように構成されている、請求項３１に記載の装置。
【請求項３３】
前記単語のセットを生成する際に所与の親ノードがアクティブである可能性を推定する一方で、前記選択機構は、推定処理中に、ターミナルノードに印を付けて、ターミナルノードが１度より多く推測する際に計算に入れられないことを確実にするように構成されている、請求項２９に記載の装置。
【請求項３４】
前記エビデンスツリーを構築する一方で、前記選択機構は、該エビデンスツリーから可能性の低いノードを取り除くように構成されている、請求項２９に記載の装置。
【請求項３５】
前記構成要素のセットにおける所与の構成要素を構築する一方で、前記構成要素構築機構は、前記単語のセットを生成する際に候補クラスタがアクティブである確率を計算することによって、該単語のセットを生成する際に候補クラスタがアクティブである度合いを決定するように構成されている、請求項２９に記載の装置。
【請求項３６】
前記構成要素のセットにおける所与の構成要素を構築する一方で、前記構成要素構築機構は、該単語のセットを生成する際に候補クラスタがアクティブである確率と該候補クラスタに対するアクチベーションとを乗算することによって、該単語のセットを生成する際に候補クラスタがアクティブである度合いを決定するように構成されており、該アクチベーションは、該候補クラスタから他のノードにどれだけの数のリンクが発火する可能性があるのかを示す、請求項２９に記載の装置。
【請求項３７】
前記構成要素構築機構は、前記構成要素のセットを標準化するように構成されている、請求項２９に記載の装置。
【請求項３８】
前記確率を概算する一方で、前記構成要素構築機構は、前記文書において前記単語のセットを生成した可能性があった前記確率モデルに対する状態を選択し、かつ、選択された状態だけを考慮し、一方で、前記所与の候補クラスタがアクティブである確率を計算するように構成されている、請求項２９に記載の装置。
【請求項３９】
前記単語のセットを生成した可能性のあった状態を選択する一方で、前記構成要素構築機構は、前記確率モデルに対する開始時の状態をランダムに選択し、かつ、該単語のセットを生成した可能性のあった状態に到達するように該開始時の状態から登坂動作を行うように構成されている、請求項３８に記載の装置。
【請求項４０】
前記登坂動作を行う一方で、前記構成要素構築機構は、該登坂動作に対する目的関数に関わらず個々の候補クラスタの状態を周期的に変化させることにより、さもなくば、登坂動作を介して到達不可能である前記確率モデルの状態を探るように構成されている、請求項３９に記載の装置。
【請求項４１】
前記個々の候補クラスタの状態を変化させる一方で、前記構成要素構築機構は、該変化した状態を一時的に固定することにより、該変化した状態を含む前記目的関数に対する局所的最適値を生成するように構成されている、請求項４０に記載の装置。
【請求項４２】
前記文書は、ウェブページ、または問い合わせからの用語のセットを含み得る、請求項２９に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テキスト文書上で問い合わせを行う技術に関する。より詳細には、本発明は、概念的に関連した単語のクラスタに基づいてテキスト文書を特徴付けるための方法および装置に関する。
【背景技術】
【０００２】
（関連技術）
根底にある意味（セマンティック）をとらえる方法でテキストを処理することは、しばしば行われているが、不明点が多い作業である。この機能は、もっとも頻繁にサーチエンジンのからみで行われている。サーチエンジンは、ユーザにより問い合わせに対してあるレジストリにおける文書を一致させようと試みる。これはまた、時々、例えば、同様な内容を有する文書を見つけ出すために図書館のような他の情報ソースによって用いられる。一般的に、テキストの意味を理解することは、このようなシステムの大変有用な一部の構成要素である。あいにく、過去に書かれた大半のシステムは、基本的な理解しか有せず、テキストに用いられている単語にだけに着眼し、単語の背後にある意味には着眼していない。
【０００３】
例として、カリフォルニアのパロアルト（ｐａｌｏ  ａｌｔｏ）にある料理教室（ｃｏｏｋｉｎｇ  ｃｌａｓｓ）を見つけたいユーザの動作を考える。このユーザは、一般的なサーチエンジンに単語のセット「ｃｏｏｋｉｎｇ  ｃｌａｓｓｅｓ  ｐａｌｏ  ａｌｔｏ」を打ち込む。サーチエンジンは、一般的に、ウェブページ上でこれらの単語を探し、このようなページについての情報と他の情報とを組み合わせて、候補結果をユーザに戻す。現在では、サーチエンジンは、単語「ｃｌａｓｓ」と「ｃｌａｓｓｅｓ」とが関連していることを知らない（なぜなら、１つが別の１つの下位部分（ステム）である）ので、文書が、単語「ｃｏｏｋｉｎｇ  ｃｌａｓｓｅｓ  ｐａｌｏ  ａｌｔｏ」を有するとき、主要なサーチエンジンのいくつかは、この単語を見つけ出せない。
【０００４】
ステム構成要素を有する代表的なシステムで試みが行われたが、実質的な成功は収めなかった。これは、なぜならステムが特定の文脈で用いられ得るか否かを決定する課題が難しいからである。このことは、ステムされるべき単語自身よりむしろテキストにおける他の近く単語によってより決定され得る。例えば、ある人がＪａｍｅｓ  Ｂｏｎｄの映画「ｆｏｒ  ｙｏｕｒ  ｅｙｅｓ  ｏｎｌｙ」を探すとき、その単語「ｆｏｒ  ｙｏｕｒ  ｅｙｅｓ  ｏｎｌｙ」を有して返された結果は、それ程良くないかもしれない。
【０００５】
一般的に、現在のサーチエンジンシステムおよび他のこのような意味的な処理をするシステムは、テキストの背後にある大半の意味を捉えることに失敗してきた。
【０００６】
それゆえ、テキスト内のその根底にある意味を効率的に捉える態様で処理をする方法および装置が必要される。
【発明の開示】
【課題を解決するための手段】
【０００７】
（概要）
本発明の１つの実施形態は、システムが概念的に関連した単語のクラスタに対して文書を特徴付けることを提供する。単語のセットを包含する文書を受け取ると、このシステムは、単語のセットに関連する概念的に関連した単語の「候補クラスタ（ｃａｎｄｉｄａｔｅ  ｃｌｕｓｔｅｒ）」を選択する。この単語のセットが概念的に関連した単語のクラスタからどのように生成されるのかを説明するモデルを用いて、これらの候補クラスタが選択される。次に、このシステムは、文書を特徴付けるように（ベクトルといった）構成要素のセットを構築する。構成要素のセットは、候補クラスタに対する構成要素を含む。この構成要素のセットにおける各構成要素は、対応する候補クラスタが単語のセットに関連付けられている度合いを示している。
【０００８】
本実施形態の１つの変形において、モデルは、確率モデルであり、この確率モデルは、単語に対するランダムな変数であって、概念的に関連した単語のクラスタに対するランダムな変数を表しているノードを包含する。
【０００９】
さらなる変形において、構成要素のセットにおける各構成要素は、単語のセットを生成する際の、対応する候補クラスタのアクティブの度合いを示している。
【００１０】
さらなる変形において、確率モデルにおけるノードは、重み付けられたリンクによってともに結合されており、この確率モデルにおけるクラスタノードが発火するとき、クラスタノードから他のノードへの重み付けられたリンクが他のノードに発火させ得。
【００１１】
さらなる変形において、アクティブである複数の親ノードを有するノードがあるとき、ノードが発火しない確率は、このアクティブな親ノードからの複数のリンクが発火しない確率の積である。
【００１２】
さらなる変形において、確率モデルは、常にアクティブであり、かつ、すべてのクラスタノードに対する重み付けられたリンクを有する普遍ノードを含む。
【００１３】
本実施形態の１つの変形において、候補クラスタを選択することは、文書における単語のセットに関連付けられたターミナルノードで始まり、かつ、親クラスタノードとは反対方向に向かうリンクに続くエビデンスツリーを構築することと、このエビデンスツリーを用いることにより、この単語のセットを生成する際に、各親クラスタノードがアクティブである可能性を推定することと、その推定された可能性に基づいて候補クラスタノードでき親クラスタノードを選択することとを伴う。
【００１４】
本実施形態の１つにおいて、単語のセットを生成する際に、所与の親ノードがアクティブである可能性を推定することは、所与の親ノードがアクティブである無条件的な確率と、この所与の親ノードの親ノードがアクティブであると仮定した際に、この所与の親ノードがアクティブである条件的な確率と、この所与の親ノードの子ノードがアクティブであると仮定した際に、この所与の親ノードがアクティブである条件的な確率とを考慮することを伴い得る。
【００１５】
さらなる変形において、条件的な確率を考慮することは、複数のノードの間のリンク上の重みを考慮することを伴う。
【００１６】
さらなる変形において、単語のセットを生成する際に所与の親ノードがアクティブである可能性を推定することは、推定処理中に、ターミナルノードにマークを付けて、ターミナルノードが１度より多く推測する際に計算に入れられないことを確実にすることを伴う。
【００１７】
さらなる変形において、エビデンスツリーを構築することは、このエビデンスツリーから可能性の低いノードを取り除くことを伴う。
【００１８】
本実施形態の１つの変形において、構成要素のセットの構築中に、単語のセットを生成する際の候補クラスタのアクティブの度合いは、この単語のセットを生成する際に候補クラスタがアクティブである確率を計算することによって決定される。
【００１９】
本実施形態の１つにおいて、構成要素のセットの構築中に、単語のセットを生成する際の候補クラスタのアクティブの度合いは、この単語のセットを生成する際に候補クラスタがアクティブである確率とこの候補クラスタに対するアクチベーションとを乗算することによって決定され、このアクチベーションは、この候補クラスタから他のノードにどれだけの数のリンクが発火する可能性があるのかを示す。
【００２０】
本実施形態の１つの変形において、構成要素のセットを構築することは、この構成要素のセットを標準化することを伴う。
【００２１】
本実施形態の１つの変形において、構成要素のセットを構築することは、所与の候補クラスタが単語セットを生成できたはずである確率モデルの状態上でアクティブである確率を概算することを伴う。
【００２２】
さらなる変形において、確率を概算することは、文書において単語のセットを生成した可能性があった確率モデルに対する状態を選択することと、選択された状態だけを考慮し、一方で、前記所与の候補クラスタがアクティブである確率を計算することとを伴う。
【００２３】
さらなる変形において、単語のセットを生成した可能性のあった状態を選択することは、確率モデルに対するスタート時の状態をランダムに選択することと、この単語のセットを生成した可能性のあった状態に到達するようにこのスタート時の状態から登坂動作を行うこととを伴う。
【００２４】
さらなる変形において、登坂動作を行うことは、登坂動作に対する目的関数に関わらず個々の候補クラスタの状態を周期的に変化させることにより、さもなくば、登坂動作を介して到達不可能である確率モデルの状態を探ることを伴う。
【００２５】
本実施形態の１つの変形において、文書は、ウェブページ、または問い合わせからの用語のセットを含む。
【発明を実施するための最良の形態】
【００２６】
以下の記載は、当業者が本発明を作成し、用い得るように提示され、かつ、特定の用途およびその要求条件の文脈において提供される。開示されている実施形態のさまざまな改良が当業者には容易に明らかになり、ここで定義される一般的な原理が、本発明の精神および範囲を逸脱することなく、他の実施形態および用途に適用される。従って、本発明は、示されている実施形態に限定されることを意図されず、ここで示されている原理および特徴に一致する最も広い範囲が許容されることを意図される。
【００２７】
この詳細な記載に記述されるデータ構造およびコードは、一般的に、コンピュータ読み取り可能格納媒体に格納されている。コンピュータ読み取り可能格納媒体は、コンピュータシステムによって用いられるコードおよび／またはデータを格納し得る任意のデバイスまたは媒体であり得る。このことは、これに限定されないが、ディスクドライブ、磁気テープ、ＣＤ（コンパクトディスク）およびＤＶＤ（デジタル多用途ディスク）といった磁気および光記憶装置デバイス、ならびに（信号が変調される搬送波の有無に関わらず）送信媒体に統合されるコンピュータ命令信号を含む。例えば、送信媒体は、インターネットといった通信ネットワークを含む。
【００２８】
システム
本発明の１つの実施形態は、例示的なモデルのテキストを学習することによって概念を学習するシステムを提供する。このシステムから見て、わずかなテキストが、確率ネットワークの実行を介してかなり単純ではあるが、信じられない程強力な態様で生成される。このシステムは、わずかなテキストを有する多くの例を調べることによってこのネットワークのパラメータを学習する。
【００２９】
このシステムの１つの実施形態は、テキストの一部分における重要な情報をテキストに用いられる単語（および複合語）であるとみなす。例えば、「ｃｏｏｋｉｎｇ  ｃｌａｓｓｅｓ  ｐａｌｏ  ａｌｔｏ」の問い合わせでは、単語は、「ｃｏｏｋｉｎｇ」および「ｃｌａｓｓｅｓ」であり、この複合語は、単純な複合語「ｐａｌｏ  ａｌｔｏ」から成る。単語から複合語を区別することが組成に基づいてされる。例えば、「ｃｏｏｋｉｎｇ  ｃｌａｓｓｅｓ」は、複合語ではない。なぜなら、その単語は、ともに料理（ｃｏｏｋｉｎｇ）およびクラス（ｃｌａｓｓｅｓ）に関するものだからである。しかしながら、「ｐａｌｏ  ａｌｔｏ」は、別々に「ｐａｌｏ」と「ａｌｔｏ」についてではない。このことが、ときどき区別をすることを難しくするが、良い推測を行うことにより、全く推測を行わないより、このようなシステムを良くする。
【００３０】
このことが意味することは、このシステムはテキストにおける単語の順序を考慮することなくテキストの分析を簡略化することである。例えば、本発明の１つの実施形態は、上述と単語「ｐａｌｏ―ａｌｔｏ  ｃｏｏｋｉｎｇ  ｃｌａｓｓｅｓ」（複合語の構成要素を結合するためにこの詳細ではダッシュを用いる）を区別しない。我々は、単語および複合語の双方を「ターミナル」と呼ぶ。（我々は、後ほどこれを考察する、なぜなら、我々のモデルの世界において、ターミナルは、概念とは対照的に単語を生成しない。概念が単語を生成する。）この簡略化は、このシステムが、テキストのセグメントをターミナルのセットとして見なしていることを意味する。
【００３１】
ターミナルのセットとしてのテキストの生成のための確率モデル
単語のセットとしてテキストを生成したシステムがどのようなものであるか参照する。図１は、１つのこのようなモデルを示す。ここでは、円は、モデルノードと呼ばれる。これらのノードは、ランダムな変数を表しており、各ランダムな変数は、概念またはターミナルの存在性または非存在性をモデル化する。このモデルにおいて我々が考慮するターミナルは、「象」、「灰色」および「空」だけである。Ｃ１とＣ２と呼ばれる２つの概念がある（なぜなら、これらは、関連した単語を生成するように用いられるため、概念は、時々クラスタと呼ばれる）。
【００３２】
例えば、このモデルは、なぜ灰色および空という単語が頻繁に一緒に起こるのか、なぜ灰色および象という単語が頻繁に一緒に起こるのか、しかし、なぜ「象」および「空」という単語がまれにしか一緒に起こらないのかを説明するように用いられ得る。なぜなら、これは人々がこれらの単語を有するテキストを生成するとき、人々が考えとして頭の中で考えるからである。このシステムの概念は、この概念がテキストを生成する前に、人の頭の中にある考えをモデル化することになっている。
【００３３】
一番上にある名前のない図の、より濃い色のノードに留意する。これは、普遍（ｕｎｉｖｅｒｓａｌ）ノードＵであり、常にアクティブである。テキストをモデル化するとき、普遍ノードＵは、常にアクティブであり、すべての概念は、そこから来る。概念から出でいる矢印は、リンクと呼ばれる。これらのリンクは、ユーザが１つの概念を考えるとき、彼らは後程、別の概念を考えるか、別のターミナルを書き留める可能性を意味する。例えば、概念Ｃ１は、「象」および「灰色」という単語にリンクする。これは、ユーザがＣ１を考えるとき、彼らは、頻繁に「象」および／または「灰色」という単語を書き留めることを意味する。特に、リンク上の数は重要である。それらは、あるイベントの確率を表している。Ｃ１と「象」との間のリンクは、ユーザがＣ１を考えた後、確率０．５で象という単語を考えることを意味する。これらの数は、しばしばリンク上の「重み（ｗｅｉｇｈｔ）」と呼ばれる。
【００３４】
このモデルは、テキストを生成するように用いられ得、つまり「実行」され得る。我々がこのことを行うとき、我々は、（しばしばＵと呼ばれる）普遍ノードから始め、それを生成するものの頭の中に思い浮かぶであるとみなす。我々は、しばしば、このことを意味するためにノードが「アクティブ」である、またはノードが「発火」したと言う。概念にとって、発火することは、その概念の考えがアクティブであり、ターミナルを発火し得ることを意味する。ターミナルにとって、発火するという考えは、ターミナルが生成されるべきテキストに存在することである。
【００３５】
このようなテキストの１つがどのように生成され得るか、例を参照して見る。図１の例では、我々は、「普遍」（Ｕｎｉｖｅｒｓｅ）がアクティブであると仮定することにより始める。それから、Ｃ１は、確率０．１で発火する。この点において、いくつかのランダムな処理がＣ１を発火するのか否かを決定する。このランダムな処理に対して、あなた方は、さいを振り得るし、またはランダムな情報を用い得る。通常、このことが計算機械上で起こっているとき、ランダムナンバー生成器が用いられ得る。決定を生成するある方法を我々が有しているかぎりは、多数の方法が適する。結果は１０回のうちの９回は、ｎｏ（０．９）であり、１０回のうち１回はｙｅｓ（０．１）である。決定がｙｅｓであるとき、概念Ｃ１がアクチベーションされる。ｎｏであるときは、Ｃ１はアクチベーションされない。同様な処理がＣ２に適用される。
【００３６】
例示のために、ランダムナンバー生成器がリンク普遍→Ｃ１に対してＹＥＳ、そしてリンク普遍→Ｃ２に対してＮｏを生成したと仮定する。この点では、Ｃ１はアクティブである。概念がアクティブであるとき、このアクティブな概念から出ているリンクを有する他の概念またはターミナルに対して、我々はランダムな数を選び得る。この例では、「象」および「灰色」という単語は、それぞれ確率０．５および０．４でアクティブになる可能性を有する。我々がより多くランダムな数を取得し（簡単な類似を行うために、これをさいを振ると呼び）、象および灰色がともにアクティブであると仮定する。これは、我々がわずかなテキストを有することを意味し、それは「象」および「灰色」という単語である。本発明の１つの実施形態において、単語の順序はモデル化されていないので、我々は（それらが複合語を形成しない限りは）、「灰色・象」と「象・灰色」とを区別することはできない。このようにして、我々は、わずかなテキストを生成した。
【００３７】
図２は、図１に詳述されるモデルのこの特定の実行を示す。この図では、我々はアクティブになる概念Ｃ１を考察し、ノードを濃くすることによって、グラフィック的にこれを示す。象および灰色という単語はアクティブになる。システムが正常に動作しているかを確認するために１つのテキストを有する実行モデルをグラフィック的に見るこの考えはシステム全体を調べる観点から重要である。我々はこれを後程用いる。
【００３８】
灰色・象を生成するために、このことは、多くの作業であるように思われる。しかしながら、我々が思いつく単語は、人としての我々にとってある意味を有することに留意する。なぜなら、これは、象が灰色であるからである。小さな方法であるが、図１におけるこのモデルでさえ、世界の状態について少しとらえている。表面上だけではあるが、このモデルは、象と空という単語ではなく、灰色と象という単語、灰色と空という単語との相関関係をとらえている。
【００３９】
我々のシステムは、わずかなテキストにおいて単語と複合語の共起性を説明するために中間的な概念、リンクおよびリンクの重みを学習する。加えて、この生成モデルは、さまざまなサイズのテキストを、より生成し、かつ、説明するために上述のものよりわずかに複雑である（例えば、問い合わせは、多くの場合２語〜３語であり、一方、文書は、およそ１０００語である）。
【００４０】
さまざまなサイズのテキストを調整する
さまざまな理由のために、上記の単純なタイプのモデルは、テキストを処理するためにわずかながら適していない。これに対する簡単な説明としては、概念のそれぞれはある数の単語を生成するが、例えば、リンク上の重みが小さいとき、多くの単語を生成することが、より難しくなることである。例えば、概念が指し示すターミナルから、わずか、または多くの単語のいずれかを生成し得ることが所望される。
【００４１】
図３は、アメリカ合衆国を表している概念の例を示す。我々の先のモデルに続いて、概念は、５０州のそれぞれを表しているターミナルを発火し得、それぞれの確率は、１／５０である。ここで、このモデルに対して、カリフォルニアという単語だけを生成することは、それ程起こり得ないことではない。この確率は、約（１／５０）×（４９／５０）４９であり、およそ０．７％である。この概念に対して、すべての州を発火することは、（１／５０）５０であり、信じられない程低い。しかしながら、我々がアメリカ合衆国の州の考えを網羅するこのような概念を発達させるなら、我々はすべての州がおこるテキストを概念が説明することを所望する。
【００４２】
この問題に対処するために、概念が他のターミナルを発火する前に、各概念はアクチベーションレベルを選ぶ。概念的に、このアクチベーションレベルは、「どれだけの数」のターミナルがこの概念から選ばれるべきかを選択する。このアクチベーションレベルは、我々のモデルにとって重要ではないことに留意する。実際には、アクチベーションレベルはモデルが実行されているとき選択されるだけである。アクチベーションが行うことは、この概念がターミナルのそれぞれを発火する確率を修正することである（従属概念ではない。つまり概念から概念のリンク付けは、アクチベーションによって影響されない）。
【００４３】
正確な数値の調整は、以下の通りであり得る。リンクが重みＷを有し、クラスタがその実行の際にアクチベーションＡを選択し、かつ、リンクが概念とターミナルとの間を示すとき、概念は確率（１−ｅ−ＡＷ）でターミナルを発火する。ここで「ｅ」は、一般的な数字およそ２．７１である。一瞥したところでは、この公式は妙に思えるが、これは、以下の申し分のない特質を有する。Ｗが大変小さく（＜０．０１）、かつ、Ａが小さな数（例えば、２）であるとき、確率はおよそＡＷに等しい。従って、これらの数は、一般的に容易に概算される。これらが妙な指数形式を有する理由は、確率が上限の１を有すべきであるからである。従って、０．０２（１／５０）のリンクの重みおよび１００のアクチベーションを有しても、確率２．０は得られない。指数形式はまた、数学的な観点からすると、多くの他の申し分のない理論的特性を有する。
【００４４】
この点では、我々は、我々のモデルが含むほとんどすべての個々の部分を詳述した。詳細の１つは、同一のターミナルまたはクラスタを発火しようとする２つ以上のクラスタの間の相互作用である。この場合には、各相互作用は、それぞれで独立している。特に、結果的に発火しない確率は、各原因がそれを発火しない確率の積である。例えば、３つのクラスタＣ１、Ｃ２、Ｃ３が、重み０．１、０．２、０．３を有して、第４のクラスタＣ４にリンクし、かつ、Ｃ１、Ｃ２およびＣ３がアクティブであるとき、Ｃ４は、（１−０．１）×（１−０．２）×（１−０．３）または（０．９）×（０．８）×（０．７）、つまり０．５０４の確率で発火しない。従って、発火する可能性は、１−（１−０．１）×（１−０．２）×（１−０．３）、つまり１−０．５０４＝０．４９６である。
【００４５】
我々が言及していない別のことは、アクチベーションが選択される事前確率である。モデルを学習すると、このことに対して、あまり敏感でないことが分かる。そこで、アクチベーションは、∃１に制約される。１／Ａｌｏｇ×Ａに等しい確率は、アクチベーションの事前確率である（ここで、ｌｏｇ×Ａ＝ＡｌｏｇＡｌｏｇｌｏｇＡｌｏｇｌｏｇｌｏｇＡ．．．）。これはテキストを生成するためだけに重要である。このために、ベースモデルからおおよそ正確な数の単語を生成する分布は適切であるべきである。
【００４６】
ベイジアンネットワーク
先に進む前に、ここで、我々が話しているモデルと、ベイジアンネットワークと呼ばれる確率モデルのあるクラスとの間の双対関係について記述する価値がある。
【００４７】
ベイジアンネットワークは、汎用的な確率モデル化技術であり、条件的な独立が結合分布におけるさまざまなランダムな変数の間で行われる。上記のモデルのように、ベイジアンネットワークは、ノードおよび方向をもったリンクを有する。これらのネットワークは、多くのランダムな変数上の結合分布を簡潔に表しており、一方これらの変数について条件的な独立の仮定を構造的に表している。
【００４８】
ベイジアンネットワークでは、ノードを指し示しているノードのセットは、「親」と呼ばれる。以下のリンクを介してノードから到達可能なノードのセットは「子孫」または「子」と呼ばれ、親を与えられるとき、この構造はノードがその子孫から（ｎｏｎ−ｄｅｓｃｅｎｄａｎｔ）から独立していることを意味する。従って、親を与えられるとき、全体の分布は、子の条件的な確率テーブルにエンコードされる（親を持たないノードは、それ自身の分布を有する）。ネットワーク全体の特定のインスタンス化の確率は単純に親を与えられたときのそれぞれの子の確率の積である。
【００４９】
ベイジアンネットワークは、我々のモデルと以下の点で関連している。我々のモデルを実行する際に各ノードがランダムな変数と考えられるとき、オンされるノードのセット上の結合分布は、我々のモデルをノイジー―オア（ｎｏｉｓｙ―ｏｒ）組み合わせ関数を有するベイジアンネットワークとして考えられる際に起こるもの一致する。ノイジー―オアの条件的な確率は、それぞれの親とは独立しているブールの子をオンする。つまり、子がオフである確率は、それぞれの親が発火しない確率の積である。これは、正に、ターミナルにリンクする複数のアクティブの概念が、そのターミナルを発火するかどうかを決定する我々のモデルに用いられるこの組み合わせ関数、であることに留意する。ベイジアンネットワークは、それ自身が、より一般的な確率モデルのサブクラスであることに留意する。
【００５０】
学習
この点では、我々は、現存のモデルがどのようにテキストを生成するように用いられたかを考察した。我々は、この作業のいくつかの側面を詳述しなかった。（１）我々のモデルはどのように学習されるのか（２）我々のモデルは、テキストに存在している概念をどのように推測するために用いられるか、および（３）我々のモデルは、実際的な状況でどのように用いられるか。このセクションでは、我々は、我々のモデルがどのように学習されるのかということと、このために用いられ得る様々な技術を詳述する。
【００５１】
テキストの生成モデルを学習する際には、本発明の１つの実施形態において、テキストのいくつかのソースが選択されるべきである。このような選択の際に考慮することは、以下のことである。（１）意味的に似ている関連した単語であること（２）我々が学習しようとするモデルが与えられているとき、独立している証拠を提示すること（後ほどより詳細に）（３）異なる種類のテキストに関連していること。この理由のために、続くモデルのインプリメンテーションは、わずかなテキストとして、サーチエンジンの例示的な「問い合わせセッション」を用いる。我々はまた、我々のモデルをウェブページおよび他のソースのテキスト上でインプリメンテーションし、実行させるが、この説明をより具体的にするために、我々は、問い合わせセッションの分析に重点を置く。
【００５２】
より明確にするために、我々は、問い合わせセッション（ユーザセッションまたはセッションとも呼ばれる）を、一日、サーチエンジン上で単一のユーザによって用いられる単語のセットと定義する。ユーザは、しばしば関連資料を検索し、特定のトピックに関して連続して、いくつかの問い合わせをする。ときどき、これらの問い合わせが他のランダムなトピックとともに点在している。問い合わせセッションの例は、（実際のものでなないにしても）以下のようなものである。
卒業（ｔｈｅ  ｇｒａｄｕａｔｅ）
ダスティン・ホフマン（ｄｕｓｔｉｎ  ｈｏｆｆｍａｎ）
レインマン（ｒａｉｎ  ｍａｉｎ）
自閉症（ａｕｔｉｓｍ）
クールジャンク（ｃｏｏｌ  ｊｕｎｋ）
高速車（ｆａｓｔ  ｃａｒｓ）
トム・クルーズ  ニコール・キッドマン（ｔｏｍ  ｃｒｕｉｓｅ  ｎｉｃｏｌｅ  ｋｉｄｍａｎ）
ここでの各問い合わせは、別々の行の上にある。大半の単語がある点で関連している。第１の単語および第３の単語は、ダスティン・ホフマン出演の映画である。第２の単語は、ダスティン・ホフマン自信である。第４の単語は、映画で取り上げられた問題に関する。第５の問い合わせの「ジャンククール」は、このセッションのメイントピックに関連していない。第６の単語も同様である。最後の単語は少し関連している。なぜなら、トム・クルーズは、レインマンの中でダスティン・ホフマンと競演した。一般的に、このようなテキストにおいても多くの情報があり、我々は、これらを用いて推論することができる。しかしまた、多くの相互に関連していないジャンクもある。我々のシステムの主なタスクは、大量（億もの）のこのようなテキストを考察する一方で、ジャンクから適切な関連性のあるものを選択することである。
【００５３】
問い合わせの際に一緒に起こるすべての単語を説明し得る確率モデルを学習することは難しい。上述のセッションの説明の際に、我々は問い合わせセッションを説明ために世間一般について我々が有する情報を用いたことに留意する。これが上記のセッションで、より起こり得る世界のモデルを見つけ出すために我々のモデルが学習する情報の本質である。以下はこのようなアプローチである。
【００５４】
我々はモデルが何であるのか分からないが、我々は、多くの概念が存在することを理解していると仮定する。確率ネットワークは、それ自身でこの不確実性を表すように用いられ得る。概念と別の概念またはターミナルとの間の各リンクを表しているノードが導入される。これらの種類のノードは、グローバルノードと呼ばれ、それらは、モデルについての我々の不確実性を表す。
【００５５】
これらのグローバルノードは、上記のモデルノードとは異なる。実際、グローバルノードは、モデルノードおよびリンクに関しての不確実性を表しているからである。ここで、テキスト（ユーザセッション）の各部分に対して、我々はモデル全体を複製して、ローカルネットワークを作成する。各モデルノードの複製は、ローカルノードと呼ばれ、これらのノードは、このテキストに導く概念が特定の実行に対して存在するか否かに関して我々の不確実性を表している。我々のモデルを学習するために、我々は、我々のモデルに関して我々のすべての不確実性を考慮にいれなければならず、最適なモデル、または我々がさらに処理し得るモデルのセットを見つけ出すためにある推理をしなければならない。
【００５６】
図４は、この大きなネットワークがどのようなものであるかを示す。点線より上は、グローバルノードであり、それらは我々のモデルに関しての不確実性を表している。ノードＵ→Ｃ１は、このモデルにおけるＵとＣ１との間のリンクの重みに関しての不確実性を表している。（Ｕは、常にアクティブである普遍ノードに対する我々の名前であることを思い出してください。）同様に、Ｕ→Ｔ１、Ｃ１→Ｃ２、Ｃ１→Ｔ１等もそうである。我々のモデルは、すべてが他のすべてにリンクすることが可能にさせないことに留意する。これは、普遍Ｕから起こるすべての考えに対して一貫した説明をするため、リンク構造におけるサイクルが可能でないだからである（例えば、ＵがＣ１およびにＣ２にリンクしないときでさえ、概念Ｃ１を引き起こし得る概念Ｃ２を引き起こし得る概念Ｃ１は、常にＣ１とＣ２とを可能性のあるものし得る。）この理由のために、概念は、それ自身より大きい番号が付けられた概念にのみリンクすることが可能であり、普遍的な概念はすべてにリンクし得る。
【００５７】
点線より下は、ローカルネットワークである。各ネットワークでは、特定のユーザセッションに対してターミナルがアクティブであると仮定される。我々のモデルがこのような各セッションに対して複製されていることに留意する。これは、なぜなら我々がセッションに対して観測しているのはユーザが用いた単語だけであり、それらの単語が起こったとき、実際ユーザの頭の中でアクティブであった概念でないからである。ここでのローカルノードは、こられの概念に関しての我々の不確実性を表している。なぜなら、ユーザは、彼らが記述する各単語を記述するとき、どのようなものでも考えているかもしれないため、すべての概念が各ローカルネットワークにおいて考慮されるべきである。
【００５８】
では、ローカルネットワークは、どのようにグローバルネットワークに関連するのであろうか？簡単に言えば、ローカルネットワークにおけるＵとＣ１との間の各リンクは、グローバルノード（Ｕ→Ｃ１）によって仲介される。各ローカルネットワークにおいて、ＵがＣ１を発火する確率は、グローバルノード（Ｕ→Ｃ１）に依存する。図４のローカルネットワークの完全なる確率ネットワークの図では、各グローバルノード（Ｕ→Ｃ１）は、すべてのローカルネットワークにおけるすべてのＣ１を指し示す。図５は、１つのこのようなネットワークとのこの相互作用を示す。なぜなら、図４には、そのように示す十分なスペースがなかったからである。また、図５は、２つの概念を有する１つのモデルに対する相互作用を示すだけである。ここで、グローバルノード（Ｕ→Ｃ１）とＣ１との間のリンクは、Ｃ１がローカルセッションにおいてＣ１が発火する前に、Ｕおよびグローバルノード（Ｕ→Ｃ１）のステータスの双方を知る必要があることを表している。
【００５９】
図６は、このモデルのわずかに手直しされたバージョンを示す。ここでの変数は、各概念が別の概念またはターミナルをトリガーするか否かを明確に示すように存在する。一度それらが我々の関心のある元の変数（つまり、Ｃ１およびＣ２）に向けて発射されると、双方によって示される結合分布が同一のものであることに留意する。この図における三角形は、追加の「トリガー」の変数を表しており、変数を有するモデルを考えた場合にしばしば役立つ。なぜなら、そられは必要とされる条件的な確率の数を簡略化するからである。
【００６０】
例えば、図６において、Ｃ２がＵから発火される確率を決定するために、ＵとＣ２との間の「トリガー」の変数はＵと（Ｕ→Ｃ２）の分布を知る必要だけがある。同様に、Ｃ２への他のトリガーは、Ｃ１のおよび（Ｃ１→Ｃ２）の分布の値を知る必要があるだけである。こられ２つの結合は、Ｃ２ノードが図５のモデルにおいて必要とする４つのすべての変数上の結合をより簡略化したものである。これは、主に、条件的な確率の詳細の複雑さが、考慮されるべき要素の数とともに指数関数的に上昇するからである。
【００６１】
この点は、より明確にする価値がある。例えば、ある人が複雑な賭け事に参加すると仮定する。そこでは、賭けの結果は、各レースの結果が異なる払い戻しを提供する１０の競馬レースに依存する。この賭けを行うために、２１０、つまり１０２４の数が必要とされる。なぜなら、それは、すべてのレースが同時に考慮されたときの異なる結果の数であるからである。ここで、代わりに、同一人物が、勝ち負けがある程度各馬に依存するそれぞれの馬に１０の独立した賭けをすると仮定する。１０の数だけがこの賭けが行われるために必要とされる。同様に、条件的な確率分布がＮを考慮しなければならないとき、変数２Ｎは、必要とされる複雑さのオーダーであり、従って、必要とされる計算の複雑さの量がこのような状況に対応するために必要とされる。これは、トリガー変数がこの問題を因数分解する際に、有効であるからである。この点からは、我々は、トリガーされた形式またはトリガーされていない形式のいずれかである我々のローカルネットワークを交互に示す。
【００６２】
最後の１つは、この大きなネットワークがはっきりと定義されるようにこの大きなネットワークにおいて明確化することが依然必要である。先ず、グローバルノードは、事前の分布が必要となる。つまり、概念がどれだけ他の特定の概念または単語にリンクしそうであるという証拠を組み合わせるために、我々は、概念における確度（ｂｅｌｉｅｆ）が事前の分布であることを知る必要がある。我々のモデルの学習はこの分布に対してそれ程敏感ではないことが分かる。従って、多くのことがここでは可能であり、それは、ゼロでないリンク上の１／１０００の平らな分布を用いることを含む。
【００６３】
これは、少しだけ的から外れているが、完全を期すために、ここでは、十分に変数を制約しないことを言及する。なぜなら、密度がゼロでない値に課されておらず、それは発火する確率に対する事柄に重み付けするアクチベーションの積である。しかしながら、セッションにおける概念のアクチベーションを選択するために我々が用いる経験則は、概念からすべてのターミナルに向けて発火する合計の重みが、この概念が発火するターミナルの平均的な数をこの概念が各セッションにおいて発火する単語の平均的な数によって除算したものにおよそ等しいことを意味する。また、これらの確率を設定する別の方法は、グローバルノード上の推測が起こる特定の方法に依存する。現状では、我々は、１つは０であり、もう１つは、別の最良の値である２つの先の尖った分布によって表されている各グローバルノードにおいて簡略化されたモデルだけを探す。この場合には、あなた方は、この新しいリンクを与えられると、コルモゴロフネットワークの複雑さにおおよそ依存する新しいリンクに基づいて事前確率を推測し得る。つまり、実際には、モデル全体が、モデルがより簡略化された際にモデルが可能である世界の説明からそれ自身を導出すると仮定すると、このモデルが新しいリンクを有するモデルがどれだけ簡単であるのかに基づいて事前確率を推測し得る。ここでは、クラスタからターミナルへのリンクは、クラスタがリンクする他のものの数、ターミナルにリンクするものの数、またはその両方の数に、より依存し得る。
【００６４】
一度大きなネットワーク全体がセットアップされると、これ以上されるべき概念的な作業はない。このネットワーク上に推測を実行することは、理論的な観点から見るとかなり単純であり、十分な計算能力を与えられているとき、グローバルノードのすべての分布に到達することは、単純であり、このことがこのモデルを十分に明確化する。
実際には、このモデル上の分布は、我々がこのようなテキストの生成に関してすべての質問に応答することを可能にする。
【００６５】
１つの問題だけが依然残っている。スケールに関してある。この基本的な問題は、以下の通りである。世界におよそ５百万の概念があるとする（この数は、６０億の人々が存在し、彼らが個々について話すとき、彼らは、違うことを話す。したがって、少なくとも５０億の概念ある。しかし、５百万の概念から始めることとする）。百万のターミナルが存在すると仮定する（ｎｅｗ−ｙｏｒｋといった複合語があるが、これは理解しやすい。なぜなら、複合語は英語にしかないからである）。我々が５０億のユーザセッション上でこのネットワークをトレーニングすることを所望するとする。加えて、ここでは、（かなりの数の）連続するランダムな変数を処理する計算上の負荷を無視するものとする。モデルノードは、各セッションに対して一度複製されるべきであることに留意する。このことは
十分に大きなネットワークが５０億のセッション×（百万のターミナルローカルノード＋５百万の概念ローカルノード）＝３００億×百万のローカルターミナルノードを有することを意味し、これは、簡単な部分である。ここでリンクを数えてみる。グローバルモデルは、５百万のノードを有し、グローバルノードのそれぞれは、百万のターミナルにリンクし得る。ターミナルのそれぞれは、ローカルネットワークにおいて、５百万回複製され得る。ローカルネットワークのそれぞれは、数を倍にする適切なグローバルノードからリンクを有する。つまり、
百万ターミナル×５百万クラスタ×５０億セッション×２＝５千万×百万×１０億リンクである。
このサイズのネットワーク上で指数関数的な数の正しい推測技術を行うことが一番厄介な部分である。したがって、基本的には、このような単刀直入なやりかたを行うことは、途方もなく高くつく。本開示の次のセクションでは、このシステムが可能であるようにするために、なされ得るさまざまなこと、およびなされるべきさまざまなことを記載する。
【００６６】
スケーラビリティ技術およびルーピー確度伝播
我々の大きなネットワークの問題を解決する際に我々が有する第１の問題は、完全なる推論はこのネットワークのサイズにおいて、指数関数的になることである。ここでは、我々は、いくらかショートカットを使う。急速で不正確な態様で、確率ネットワークに証拠を伝播させる（一般的にルーピーと呼ばれる）「ルーピー確度伝播（ｌｏｏｐｙ  ｂｅｌｉｅｆ  ｐｒｏｐａｇａｔｉｏｎ）と呼ばれる推論技術がある。これは、速いという利点を有するが、不正確であるという不都合を有する。しかしながら、これは、しばしば、さまざまな確度のネットワークに対して十分な概算を求めるものである。
【００６７】
特定のネットワークにおいてすべてのノードの周辺分布を見つけ出すために、ルーピー確度伝播はネットワークにおいて送信される２つのメッセージタイプに依存する。ダウンメッセージは、リンクの流れとともに移動するものであり、それらは、どのノードがリンクの反対側にあるかを概算する。それは目的地以外からくる他のすべての証拠が与えられているソースにおける確度である。アップメッセージは、リンクの流れに対して移動し、目的ノードのさまざまな値が与えられることにより、リンク側での確率がどのようなものであるのかを（確率的ネットワークの意味合いにおいてまた、親でもある）目的ノードに伝える。
【００６８】
図７Ａは、百万オア構成要素を伴う単純な２つのブールノードを有するナットワークを表している。ここで、ノードＡは、真である事前確率０．１を有し、Ｂは、Ａが真であるならば、真である事前確率０．３を有する。ここで、我々は、このネットワーク上にルーピーを実行させることによって真であるＢの確率を決定し得る。ＡはメッセージをＢに伝播し、他のすべての証拠が与えられるとき、Ａは、確率０．１を有して真であることを確信していることをＢに伝える。Ｂはこのメッセージを受け取り、そこで、条件的な確率（ノイジー―オア）を考慮に入れ、確率０．０３を有して真であると結論付け、終了する。
【００６９】
図７Ｂは、推論がアップメッセージを用いてどのように作動するかを示す２つのブールノードネットワークを表している。ここで、Ｂ上にＢが真である証拠がある。そこで、我々は、Ｂが真であるとするときのＡの確率を決定しようとする。ＢがＡにアップメッセージを送信する。このことは、Ａが真であるときだけＢは真であることをＡに伝える。つまり、Ａが偽であるとするならば、Ｂがそれより下の証拠を知らない確率は、０である。したがって、Ａは真であるはずである。Ａがこのメッセージを受け取り、Ａ自身上で、事前確率でＡを乗算する。Ａは、真である確率０．１を有し、Ａは真であるべきと結論付ける。したがって、この証拠が与えられるとすると、Ａは真である。
【００７０】
以下の理由のために、ルーピー確度伝播は、推論問題に対する技術的には正確な解決法ではない。証拠が、２つの異なるソースから特定の点に到達するとき、それらは、これらのソースが相互に関連しているか否かについての情報を失う。以下の例を考えてみる。３人の人（Ａ、Ｂ、Ｃ）が会話に参加している。Ａは、株式市場が翌月には上昇すると信じているとＢに伝える。Ｂは同一の情報をＣに伝える。この点で、Ｃは、誰か他の人が株式市場が上昇すると確信しているとＡに伝える。ルーピーでの問題は、この単純な確度伝播システムにおいて、Ａは、Ｃの意見がＡの本来の主張に基づいていることを伝えることができない。したがって、Ａからの証拠がそれ自身に戻ってくる。わずかにだけより複雑な方法では、ルーピー確度伝播は、ネットワークにおいてループの周りに証拠を循環させて、通常、正確であるが、時々不正確な解決法を作成する。
【００７１】
ルーピーがループを有さずにネットワーク上で動作するとき、それは正確であり、ネットワークの直径に等しいステップの数内で落ち着く。しかしながら、ルーピーがループを有してネットワーク上で動作するとき、証拠がネットワークの周りをループする。通常、ループは特定の解決法を見つけ出すが、その解決法が正確である保障はなく、またルーピーは全く見つけ出さなかったりさえする。図８は、実際に、ルーピーが機能しないノイジー―オアネットワークを示す。ここで、Ｄは真であり、その唯一のソースは、実際にはＡである。したがって、推論は、Ａが真であることを示す。しかしながら、ルーピーは、Ａに対しておよそ０．６で落ち着く。しかし、通常、ルーピーはかなり良く作動する。後ほど本開示のなかで、我々はどのようにルーピーが改善されたかを考察する。
【００７２】
ここで言及するさらなる点は、クラスタが隠れた変数であると考えると、この大きなネットワーク上でルーピーを作動させる効果はデータ上でＥＭ（期待値最大化）動作を作動させる考えにおおよそ等しいということである。ＥＭにおいては、モデル変数に対して最初の推測がなされ、それから、隠れた変数の確率が推論される。それから、このモデルの変数に対する推測がアップデートされる。これは、本質的にはルーピーと同一の計算法である。これら２つの間の１つの違いは、ルーピーは、それ自身における１つ前のセッションから証拠を反映しないことである。つまり、ルーピー対する適切な説明は、セッションが最後の反復において送信した以前のアップメッセージに対してグローバルネットワークからのダウンメッセージを軽視することである。各反復でデータの異なる部分上で、ルーピーアプローチとＥＭアプローチを動作させることとの間にはそれ程の違いはない。本開示の残りでは、我々は、この処理を記載する際に、ＥＭの専門用語ではなくむしろルーピーの専門用語を用いる。
【００７３】
大きなネットワークにおけるルーピー確度伝播
大きなネットワークにおけるグローバル／ローカルの境界を越えて、ルーピーメッセージが用いられる。ここで、グローバルノードは、特定のローカルネットワークにそれらの確度を伝播する。ネットワークは何十億分のたった１であるので、通常、これは、いかなる所において伝播されたものと同一の考えである。またしかしながら、そのトリガーノードについて他のすべてが既知であるとすると、トリガーノードはネットワークの確率を伝播する。
【００７４】
図９は、特に単純なセッション内で起こっているおり、かつ、１つの概念（Ｃ１）および１つのターミナル（Ｔ１）だけを含むモデルを有するルーピーの計算を示す。このセッションでは、我々は、ターミナルＴ１を確認したので、したがって、ローカルノードが濃く色付けされていることに留意する。ここで、このモデルを取り巻くメッセージのいくつかがどのようなものであるかを見てみる。
【００７５】
先ず、（Ｕ→Ｃ１）グローバルノードからＵとＣ１との間のトリガーノードへ向かうダウンメッセージを見てみる。他のセッションからルーピーの現在の反復においてメッセージが概算したデータを与えられるとすると、このメッセージは、（Ｕ→Ｃ１）ノードの状態における、現在の確度を報告しなければならない。連続する変数上の完全で、かつ、正確な分布を通信し、かつ、計算することは禁じられている。この理由のために、（Ｕ→Ｃ１）からＵとＣ１との間のこのセッションにおけるトリガーノードへのダウンメッセージは、簡略化される。十分な分布を通信する代わりに、ダウンメッセージは、１つのピークは、０であり、別のピークは選択された「最良の値」Ｗである、２つの異なる頂点を有する分布を有する分布を概算する。
【００７６】
このダウンメッセージを明らかにするために、我々のシステムは、先ず、このグローバルノードに関して他のセッションから入ってくる証拠を編集する。我々のシステムは、それからこのノードに対してゼロでない最良の値Ｗを選択する。それから、このシステムは、アップメッセージをノードが存在についてのメッセージに変換する。このことは、このシステムが、最良の値Ｗにおいてダウンメッセージをどのくらいの確率で、かつ、値０において、ダウンメッセージをどのくらいの確率で送信するかを決定することを可能にする。計算的に可能な態様で、グローバルノードからのダウンメッセージのこの簡略化が不連続な性質のグローバルノードに対処する際に好都合である。
【００７７】
（Ｕ→Ｃ１）からのこの簡略化されたダウンメッセージは、（Ｕ→Ｃ１）から出るリンクの隣の小さい矢印に沿ってある。これは、（０．１、１.０）とラベル付けされる。これは、最良の値が０．１であり、このリンクが確率１.０で存在することを意味する。我々がすべてのネットワークを部分的に説明可能であることを所望するために、我々は、Ｕから任意のものへのリンクは、１．０未満の確率を有さないとする。ダウンメッセージの別の例は、（Ｃ１→Ｔ１）から、ローカルネットワークにおけるＣ１とＴ１との間におけるトリガーノードに出るメッセージである。このメッセージは、（０．２、０．８）とラベル付けされる。これは、このメッセージが、ゼロでない０．８の確率を有することを意味する。このメッセージがゼロのとき、それは、０．２に等しい。
【００７８】
ここで、我々が、グローバルモデルからのダウンメッセージを知っているとするときのこのネットワーク上の推論を試みる。３つのトリガーノードがある。１つは、Ｃ１からＴ１であり、１つは、ＵからＣ１であり、残りの１つは、ＵからＴ１である。こられの確率に関しては、我々は知らない。我々はまた、このセッションでアクティブであるクラスタＣ１の確率を知らない。これらのすべてが、このセッション上でルーピーを実行させることによって明らかにする。しかしながら、我々が、すべての計算のサンプルに目を通す前に、我々はさらなる簡略化を網羅する。（Ｃ１→Ｔ１）からトリガーノードへのダウンメッセージは、（０．２、０．８）とラベル付けされる。しかしながら、我々がこのメッセージを用いる前に、我々は、このメッセージは、２つのとがった分布を展開し、それを１つのとがった分布に簡略化することによって、実際には（０．１６、１.０）の単一のメッセージであるとする。ここで、我々は、この小さなセッションのネットワークのみを考察することにする。この簡略化はまた、我々の枠組み内でされる。
【００７９】
我々が行え得る１つの小さな仮定は、Ｃ１上のアクチベーションが１とセットされることである。一般的に、確率ネットワークを実行させる際に、この値は、推論を介して導出され得る。しかしながら、これらのローカルネットワークにおいて、推論を試みる一方で、我々のモデルは、クラスタのアクチベーションが、このネットワークにおいてモデルが発火し得るターミナルの数と同等であると仮定する。これは、アクチベーションおよび重みの積だけが重要である事実に対処して我々が先述した修正である。この修正は、以下の正当性を有してなされる。アクチベーションは、大規模内で重要なだけであり、したがって、それを最適に決定する際には、計算時間が費やされる必要はない。
【００８０】
ここで、我々は、このネットワークの簡略化されたノイジー―オアモデルを考察し、一方でグローバルノードを無視する。これは、グローバルノードがシステムに供給するすべての情報が、クラスタと他のクラスタまたはターミナルとの間のノイジー―オア上で重みによって概算され得るからである。これは、手近のネットワークにノードを合計することによって別の親を有さないノードを簡略化する確率ネットワークにおいて標準的な技術である。この簡略化されたローカルネットワークは、図１０のものに似ている。このネットワークにおけるリンクは、０．０９５、０．０９５および０．１４７８とラベル付けされる。これは、ＵがＴ１をトリガーする確率がここでは、１−ｅ−０．１、つまり、０．０９５だからである。先に我々が、リンクが確率およそＡＷで結果をトリガーすると述べたことを思い出してください。ここで、Ａは１およびＷは０．１であり、これは、およそ０．０９５である。同じことがＣ１とトリガーＴ１との間のリンクに適用され、それは、１−ｅ−０．１6で０．１４７８であり、およそ０．１６である。
【００８１】
ここで、我々はＴ１が真であることを知っている。どれほどＣ１がＴ１を真であるようにさせたのか判断してみる。ＵからのトリガーノードがＴ１に送信したダウンメッセージは、（０．０９５、０．９０５）である。ここで、０．０９５は、ノードが真である確度を表しており、０．９０５は、ノードが偽である確度を表している。このダウンメッセージの性質は、グローバルノードからのダウンメッセージとは全く異なることに留意する。これは、トリガーノードがブール変数だからであり、一方、グローバルノードは、連続、かつ、分離した変数と、０における確率質量および他の点における密度との妙な混合である。さらに、これは、２点の分布によって概算され、１点の分布にさらに簡略化される。
【００８２】
トリガーは、ブールノードであるので、そのトリガーは確率が真である１つの数と、１から第１の数を差し引いたもう１つの数だけを送信するだけでよい。インプリメンテーションにおいて、我々は、これを最適化する。Ｔ１がこの数を受信し、Ｃ１側のトリガーノードに、トリガーがトリガーしたとするときのＴ１の確率対トリガーがトリガーしなかったとするときのＴ１の確率をアップロードする。このアップメッセージは、（１．０、０．０９５）である。ここで、通常、ブールメッセージに対するアップメッセージは、このような２つの値を有するが、実際には、１つの値だけが必要とされ、それは、（無限大が表示可能であるとすると）２つの間の比率である。Ｃ１からＴ１からのトリガーノードは、（１．０、０．０９５）のアップメッセージを受信するが、それは、また、Ｃ１より上から来るダウンメッセージを有する。このメッセージは、Ｃ１からの（０．０９５、０．９０５）である。ここで、トリガーノードは、必要なすべての情報を有する。このトリガーノードは、上からのメッセージを（０．０９５×０．１４７８、１−０．０９５×０．１４７８）、つまり（０．０１４、０．９８６）に変換する。この変換は、このトリガーノードより上のものが何であるのか与えられた際に、トリガーノードがそれ自身の確度を有することを意味する。このトリガーノードは、トリガーノードが下から（０．０１４×１．０、０．９８６×０．０９５）、つまり（０．０１４、０．０９３６７）を受信する確度分だけ構成要素同士を乗算し、それから、このトリガーノードは、これを累積して１にして、（０．１３、０．８７）を獲得する。これが最終的なトリガーノードの確度である。ここで、同様な計算が、このネットワークにおける他のすべての「隠れた変数」を明らかにするために行われ得る。
【００８３】
一般的に、ルーピーは、ノードの親に関する確度をノードに与え、そのノード自身に関する確度を子に与える。ノードは、条件的な確率分布を用いて、そのノードの親に関する確度をそれ自身に関する確度に変換する。ここで、ノードは、それ自身に対して、２つの確度数を有し、ノードは、構成要素同士で乗算する。それからノードは、それ自身の確度を取得するように１に標準化する。我々がこれらのメッセージを計算する際に行う２つの最適化は、以下の通りである。我々は、アンダーフローを回避するために対数空間において多くの確率計算を行う。これは、ダウンメッセージの比率とアップメッセージの比率の双方を含む。加えて、ノード上の親の数において、ルーピーが線形時間的に動作するようにそのルーピーをインプリメントするために、ノードの確度から１つの親の効果を差し引くことが役立ち得る。このことは、この伝播を迅速に行うために、Ｎの数をとり、これらの数のＮ−１のすべてのＮの積を計算する特別なルートを介して行われる。
【００８４】
ここで、異なる性質を有するグローバルノードに送信されたアップメッセージを参照してみる。グローバルノードが実際には、０から無限大までのいかなる値のも取れる分離―連続的なランダムな変数であることを思い出してください。リンクに重み付がされている際に、あなた方がどのようにネットワークの確率を計算し得るかを示す単純なサンプルを解いてみる。
【００８５】
図１１は、ターミナルをトリガーしようと競う２つのクラスタＣ１およびＣ２を示す。Ｃ１→ＴおよびＣ２→Ｔから適切なトリガーノードへのダウンメッセージは、ｑ１およびｑ２の発火する確率をそれぞれ示す。上述されるように、我々は、確率の存在を最良の値分、乗算して、グローバルノードからのダウンメッセージの影響を概算する。したがって、ローカルネットワークにおいて、Ｃ２は、確率１−ｅ−ａ２ｑ２でＴを、同様に、Ｃ2も、確率１−ｅ−ａ２ｑ２でＴを発火すると仮定して、我々は解決を概算することに留意する。ここで、このモデルの他の部分からＣ１に入ってくるメッセージは、真である可能性のあるｐ１であることを示す。同様に、このモデルの他の部分からＣ2に入ってくるメッセージは、真である可能性のあるｐ２であることを示す。Ｃ１およびＣ2は、それぞれアクチベーションａ１およびａ２を有することになっており、ノードＴは、観測されているターミナルである。
【００８６】
ここで、（Ｃ１→Ｔ）から、Ｃ１とＴとの間のローカルモデルにおけるトリガーノードに沿って送信されるアップメッセージを参照してみる。このメッセージは、この図においてＭとラベル付けされている。このメッセージは、ｑ１の関数としてネットワークの確率を送信し得る。ネットワークの実際の確率が送信される必要はない。実際には、相対的確率比だけが送信される必要がある。つまり、因子（ｆａｃｔｏｒ）がｑ１のすべての値に対して同一である限りは、確率によって乗算される一定の因子が送信され得る。最終的に、我々は、送信されたメッセージを考察する準備ができている。
【００８７】
このネットワークにおいて、考慮すべきことは、４つの可能性である。それぞれの可能性は、この小さなネットワークの外で起こっていることに対する確率を有する。第１は、Ｃ１およびＣ2の双方が真である。これは、確率ｐ１ｐ２で起こる。この場合には、Ｔが真である確率（このネットワークにおいて唯一残っている証拠）は、
１−ｅ−ａ１ｑ１ｅ−ａ２ｑ２であり、
したがって、ネットワーク全体の確率は、
ｐ１ｐ２（１−ｅ−ａ１ｑ１ｅ−ａ２ｑ２）である。
Ｃ１が真であり、Ｃ2が偽であるとき、このことが起こる確率は、ｐ１（１−ｐ２）である。Ｔが真である確率は、
１−ｅ−ａ１ｑ１であり、
したがって、ネットワーク全体の確率は、
ｐ１（１−ｐ２）（１−ｅ−ａ１ｑ１）である。
同様に、Ｃ2が真であり、Ｃ１が偽であるとき、このネットワークの確率は、
ｐ２（１−ｐ１）（１−ｅ−ａ２ｑ２）である。
最後に、Ｃ１およびＣ２のいずれもが真でないとき、Ｔが真であることはあり得ない。したがって、グローバルノード（Ｃ１→Ｔ）へ送信される関数のメッセージは、
ｐ１ｐ２（１−ｅ−ａ１ｑ１ｅ−ａ２ｑ２）＋
ｐ１（１−ｐ２）（１−ｅ−ａ１ｑ１）＋
ｐ２（１−ｐ１）（１−ｅ−ａ２ｑ２）である。
【００８８】
この関数は複雑であるように思われるが、実際にはかなり単純なものである。メッセージＭのためにこの関数における唯一の変数がｑ１であることを考慮する。したがって、この関数は、以下の形式にまとめられる。
ａ＋ｂｅ−ａ１ｑ１
ここで、ａは、すべての上記の定数項の和であり、ｂは、上記和におけるｅ−ａ１ｑ１の係数である。ｑ２、ｐ１、ｐ２が、メッセージをノード（Ｃ１→Ｔ）へ送信するためにすべて一定であることが考慮されることに留意する。実際には、この関数が乗算する一定の因子は重要ではないので、この等式は、以下のように書き換えられ得る。
１＋ｋｅ−ａ１ｑ１
グローバルモデルに送信される２つの数（ｋおよびａｌ）だけが残る。我々は、グローバルノードへのこれらのアップメッセージをリンクメッセージと呼ぶ。
【００８９】
ここで、リンクの目的地がクラスタであるとき、これらのアップメッセージの関数の形式はあまり変化しない。例えば、Ｔがクラスタであるとき、Ｃ１およびＣ２のアクチベーションは重要ではない。一方で、Ｔが、そのＴが真でありそうか否かを示す他のターミナルからアップメッセージを受信する。これは、計算に別の条件のセットを単純に追加したものである。なぜなら、それぞれの世界の視野は、Ｔが真であるかと同様にまたはＴが偽であるのかを考慮しなければならない。異なる４つの分を有するのではなく、上記の合計は８つの部分を有する。１つに対する可能な値は、Ｃ１、Ｃ２およびＴである。ここで、（われわれはここでシミュレートしないが）トリガーノードにアップメッセージを送信することによって、我々のコードは、Ｔおよびそのクラスタの親のすべてを十分に考慮することによって被る指数関数的な増加（これは、Ｔが２つ、３つ以上の親を有するとき、途方もなく高くつく）を効果的にさける。
【００９０】
留意することの１つは、我々はグローバルノードを含むネットワーク全体にわたりルーピーを実行させているが、我々はロックステップ（ｌｏｃｋｓｔｅｐ）で、ルーピーのローカルとグローバルの反復をさせる必要はない。実際には、我々がグローバルノード上でルーピーの１つのステップを実行するようにもどる前に、我々は収束させるために各ローカルネットワーク上でルーピーを１０反復以上させる。
リンクの重みの最適化
さて、我々は、ルーピーがどのようにグローバルノードをとらえるかを考慮する準備ができている。つまり、ルーピーの各反復において、我々のモデルが、そのモデルにおける各リンクに対する存在および最良の値の双方をどのように再考するかである。任意のグローバルノードへのアップメッセージは、以下の形式であることを思い出してください。
１＋ｋｅ−ａ１ｑ１
さて、この変数に対するもっとも可能性が高い重み値を選択するために、我々のモデルは、これらのすべてのアップメッセージを単純に組み合わせ、グローバルノードに対する最良の値を選ぶだけでよい。便宜上、我々の表記を少しだけ変えてみる。ノードが、（１＋ｋｉｅｘｐ（ａｉｘ））形式のＮ個のアップメッセージを受信するとする。ここでは、我々は、１からＮに移動する添え字としてiを用いている。ｋｉは一定の因子であり、ａｉはｘ上の係数である。ここでＸに対して解かれるべき変数であるｘは、その変数に対する可能な選択を表しており、一方、関数メッセージは、ｘに対する異なる値を用いて、さまざまなセッションの確率を表している。
【００９１】
ゼロでないもっとも大きいｘを選択するために、我々は、これらすべてのアップメッセージ（リンクの重みを決定するグローバルノードに移動するので、またリンクメッセージと呼ばれるこのアップメッセージ）のすべての積を最大化するｘを見つけ出すだけでよい。これは、１次元的な（ｏｎｅ―ｄｉｍｅｎｓｉｏｎａｌ）最適化問題である。この問題を解く１つの方法は、ある範囲におけるｘをサンプリングすることである。より効果的な方法は、以下を留意することである。積の対数が最適化されるとき多くの数の積が最適化される。これらの数の積の対数は、それらの対数の合計である。これによって最適化がされる。
【００９２】
【数１】
0004465274.tif 000002
【００９３】
さて、我々はｘに対してこの導関数を獲得し、局所的最適値に対して微分がなくなる特定の範囲（例えば、０から１）における点を検索し得る。この検索は、二等分することによって、または他の任意の数の技術によって行われ得る。この関数は、ときどき非単調的であり得（つまり、常に増減するわけではない）、したがって、これは、ときどき１つ以上の局所的最適値を有する。しかし、これは、通常、常にこうではない。
【００９４】
ここで、ちょっとした注意であるが、なぜこの最適化が無限大または０の最適なｘを算出しないのか？関数１＋ｋｅ−ａｘの性質は、ｋに大きく依存する。ｋが正であるとき、この関数は、より大きな値であるｘに対して減少する。このことは、この特定のリンクをより大きくすることによって、この特定のセッションが損なわれることを意味する。一般的に、クラスタがセッションによって示される確率に可能性の低い別のクラスタを指し示すとき、これが起こる。特に−１の辺りで、ｋが負であるとき、これは、このリンクを有すべき確固たる理由を示す。例えば、ｋが−０．９９と仮定する。ｘが０であることは、０．０１の相対的確率を意味する。ｘが大変大きいことは、１の相対的確率を意味する。したがって、ｘが、０より大変大きくなり得る可能性は、０である可能性より１００倍高い。しかしながら、ときどき、値０が唯一の局所的最適値であることがある。これが起こるとき、我々のモデルは、リンクのすべての確率質量を０にする。
【００９５】
最高な値が選択されるとき、アップメッセージは、最良の値Ｘと値０とを交換して、ブールの存在変数（ｅｘｉｓｔｅｎｃｅ  ｖａｒｉａｂｌｅ）に対するアップメッセージに変換される。上記の確率の積がＸと０において単純に評価される。リンクの存在（上記のようにまたはコルモゴロフの複雑さによって決定されるように１／１０００）の事前確率が組み合わせられる。この組み合わせによって我々はリンクに対する存在確率を得る。
【００９６】
事前複合化およびレキシコン
我々のモデルは、そのモデルが理解する限定された単語または複合語のセット（レキシコンと呼ばれる）を取り扱う。前処理の段階がこのレキシコンを決定するために必要とされる。この前処理段階は、我々のモデルに対して処理され得る重要な単語および複合語を決定する。大まかに述べると、ユーザセッションにおける時間のある特定の一部分に見られるすべての単語が含まれている。複合語を含むことは、より複雑である。ここでは２つの方法が可能である。１）複合語をより含み、ランタイムで複合化を行う。２）複合化をそれ程含まずに、スタティック（ｓｔａｔｉｃ）時間で複合化を行う。
【００９７】
複合化が複雑である理由は、複合語自身に対する概念のせいである。先述したように、単語のセットが、基本的に「ｎｅｗ  ｙｏｒｋ」のように非合成的であるとき、それは申し分のない複合語となる。「ｒｅｄ  ｃａｒ」のような別のセットは、ともにｒｅｄおよびｃａｒである点で合成的である。このことを発見する１つの方法は、ユーザセッションのブレーク（ｂｒｅａｋ）およびスプリット（ｓｐｌｉｔ）を考察することである。我々は、各潜在的な複合に対して、その複合語がブレークされる回数を数え得る。分割された複合語は、ここでは、１つの問い合わせにおいて、ユーザは複合語全体を発行し、一方、別の問い合わせでは、ユーザは複合語の一部を発行したことを意味する。例えば、以下のセッションは、ｒｅｄ  ｃａｒに対して２つのブレークを有する。
ｒｅｄ  ｃａｒ
ｂｌｕｅ  ｃａｒ
ｙｅｌｌｏｗ  ｃａｒ
スプリットは同様の概念である。ここでは、複合語は、その両端でスプリットされる。２語の複合語にとって、ブレークはまた、スプリットでありが、「ｔｈｉｓ  ｉｓ  ｔｈｅ  ｔｉｍｅ  ｆｏｒ  ａｌｌ  ｍｅｎ」のようなより長い複合語に対しては、セッションの他の単語「ｔｈｅ  ｔｉｍｅ」がブレークと見なされる。さて、この情報は、ブレークが意図的ではなく、偶然的である可能性を考慮するために、ブレークの可能性に関する情報と組み合わせられ得る。例えば、ユーザは、以下のユーザセッションを見る。
ｎｅｗ  ｙｏｒｋ  ｃａｒｓ
ｎｅｗ  ｍａｇａｚｉｎｅｓ
我々のモデルは、これが「ｎｅｗ  ｙｏｒｋ」に対してのブレークであると結論付ける。しかしながら、「ｎｅｗ」は、比較的頻繁に使用される単語であるので、ブレークの重み、つまり我々のモデルが、その単語をどれだけ重要であると思っているのかが、その単語がどれだけ一般的な単語であるのかによって重み付けされる。この情報のすべて（複合語の頻出度、ブレークおよびスプリット頻度、およびスプリットまたはブレークされた単語の頻出度）が、レキシコンに対する適切な複合語のセットを決定する際に用いられる。このレキシコンがユーザセッションに基づく必要はなく、実際には、ウェブの文書、本等を含む任意のテキストの態様が、適切な複合語のレキシコンを作成するように用いられ得る。
【００９８】
スタティック複合化アプローチにおいて、我々のモデルは、レキシコンにおける単語および複合語の頻出度を数え、それらを用いて、テキストをあらかじめ複合化する。この場合には、各シーケンスは、レキシコンから一連のトークンを見る確率を最大化する動的なプログラミングアプローチを用いて説明される。動的なプログラミングアプローチがテキストの長さにわたり実行され、それまでに見られた一連のシーケンスを最大限に説明することである。各点において、我々が各新しい単語までのシーケンスの最良の説明を知っているとき、２つのうちの１つが可能である。（１）単語が、それ自身のレキシコンのトークンによって説明され、かつ、以前の他のすべての単語がその点までの最良の説明によって説明されるか、または（２）単語が、以前のトークンの数までの問い合わせと最良の説明とを組み合わさる複合語の一部のいずれかである。これらの代替の双方が検討され、その点までのセッションに対する最良の説明が作成され得る。この動作を実行することによって、我々は、単語のセットにおいて、それぞれの新しい単語を見る。
【００９９】
この動的な複合化の場合では、セッションにおける証拠が、セッションないにおける各点で起こる可能な単語の解決法であるＯＲ上の証拠と見なされる。図１２は、ローカル確率ネットワークが、ランタイムで、レキシコンにおける複合語をどのように動的に処理するかを示す。単語「ｎｅｗ  ｙｏｒｋ」単独からなるセッションが見られるとき、証拠は、単語ｎｅｗ、ｙｏｒｋ、またはｎｅｗ  ｙｏｒｋとしてでさえ数えられない。むしろ、我々は、第１の位置において、単語「ｎｅｗ」または複合語「ｎｅｗ  ｙｏｒｋ」がその位置を説明することを見る。同様に、「ｙｏｒｋ」または「ｎｅｗ  ｙｏｒｋ」のいずれかは、第２の位置を説明する。以前のセッションで我々が記載したすべてのメッセージは、かなり容易にこの新しい複合化方法に適応する。実際には、この方法は、単語の組がこのセッションにおける他の単語に基づく複合語か否かを決定し得る利点を有する。
【０１００】
希薄（Ｓｐａｒｓｅｎｅｓｓ）および初期化
我々のモデルについて記載した上述の大半は、独断で大きな数の概念を仮定したが、これは技術が初期化される態様である必要はない。実際には、我々のモデルは、特定の１つのクラスタだけで始まる。それは、普遍クラスタＵである。これはまた記憶を増進させる理由だけのために、ＣＡＮＡＤＡとも呼ばれる（これは国のＣａｎａｄａとは違うことに留意する）。
【０１０１】
ローピー確度伝播は反復アプローチであり、したがって、新しい潜在的なクラスタを導入するために、ローピー確度伝播が常に動作している時間ある。これが我々のモデルが行うことである。各反復において、我々のモデルは、ユーザセッションの数を受け取り、セッションにおける単語を考察する。セッションが十分な数の単語を包含するとき、その特定のセッションを申し分なく説明する新しいクラスタが形成される。この新しいクラスタは、多くの潜在的なモデルノードを導入する。それぞれのモデルノードは、この新しいクラスタに入る、またはこの新しいクラスタから出るそれぞれの潜在的なモデルリンクに対してである。これらのすべてが格納されるのではなく、実際には、リンク最適化段階が、ある特定のリンクが存在している特定のしきい値より大きく、かつ、その重みがＣＡＮＡＤＡからのリンクの重みより十分に大きいと決定するとき、我々のモデルはその特定のリンクのみを格納する。これがモデルから偽のリンクを除くことになる。なぜなら、承知のとおり、偽のリンクは、メモリおよび計算リソースの双方がかかるからである。この簡略化は、「モデルの希薄」と呼ばれる。
【０１０２】
同様の希薄がローカルネットワークに課せられる。最初でさえ、５百万の単語および複合語を有するレキシコンでは、ローカルセッションが特に大きくなる。各ローカルネットワークにおけるすべてのターミナルおよび複合語を関与させる理由は特にない。我々は、テキストにおける偽でないすべての単語および複合語を観測した効果を概算し得る。これは、各概念に対して、その各概念が単語を発火しない確率をあらかじめ計算することによって行われえる。これは、リンク最適化段階後にも（我々のモデル段階については後ほどさらに）行われ得る。この予測計算（ｐｒｅｃｏｍｐｕｔａｔｉｏｎ）は、テキストに実際に存在する単語の効果を取り除くことによって調整され得る。つまり、存在しないすべての単語の効果を付加的に決定するのではなく、我々は、各クラスタに対して、その各クラスタが単語を発火しない確率コストを一度計算し、すでにそこに存在する単語の効果を減法的に取り除く。
【０１０３】
この「ターミナルの希薄」は、各ローカルセッションから２つ、３つのターミナルを除いてすべてのターミナルを取り除き、所定の重みを有する「偽」のブールノードを指し示す各概念に対するいくつかの証拠を用いてそれらを概算する(所定の重みは、セッションにおいて実際にターミナルを発火する概念の確率で、何も発火しない確率を除算することによって決定される)。
【０１０４】
加えて、グローバルノードにアップメッセージを送信するとき、存在しないターミナルのすべての効果が概算される。通常、クラスタＣ１が、単語Ｔ１１つだけを有してセッションに存在するとき、我々は、ネットワークの確率が、Ｃ１とＣ２、Ｃ１とＣ３、Ｃ１とＴ２、Ｃ１とＴ３等との間でリンクに対して減少されることに関連する（上記の正であるｋを有する）アップメッセージが必要である。何百万にも上るこのようなアップメッセージがある。代わりに、我々は、１つのアップメッセージを用いてこれを概算する。この処理は、「リンクメッセージの希薄」のための技術セットの一部である。これがどのように行われるか考察してみる。
【０１０５】
図１３では、我々は、残りのネットワークによって決定されるものとして、真である確率ｐを有する単一のクラスタＣを見る。このセッションにおいて、Ｃは、アクチベーションａを有する。ここでは、ターミナルＴは観察されない。ターミナルＴは「ターミナルの希薄」を介するセッションでは除外される。ｘが（Ｃ→Ｔ）ノードの値とする。ｘが与えられた際、（Ｃ→Ｔ）ノードからＣとＴとの間のトリガーノードへのリンクに沿っているアップメッセージがネットワークの確率を通信する。ここでは、Ｔが偽である確率は、およそ以下のとおりである。
【０１０６】
【数２】
0004465274.tif 000003
【０１０７】
ここでは、我々は、リンク強度ｘが低いと仮定する。リンク強度ｘが低いのは、クラスタは存在するが、単語は存在しないので妥当であると思われる。低リンク強度は、
【０１０８】
【数３】
0004465274.tif 000004
【０１０９】
である。また、この計算を正確に行うためには、我々は、この特定のアップメッセージのルーピーの決定において軽視されるべきでないこの単語がそこに存在しないと仮定して、我々が最初にＣの確率を計算した事実対して調整しなければならない。我々がこれを行わない理由は、この事実を無視することがこのテキストにおけるクラスタＣの存在に対して１つだけを我々に送信することを可能にするからである。この情報、積ｅ−ｐａｘは、ソースとしてＣを有するモデルノードに関するすべてのリンク最適化計算に考慮される。つまり、（Ｃ→Ｔ）グローバルノードは、この数を用いて、このネットワークの確率に関する最適な値の効果を概算する。
【０１１０】
ここで導入される１つの小さなエラーがある。なぜなら、これらのメッセージがクラスタ毎に送信されるために、我々はまたターミナルがテキストにおいて実際に起こるクラスタおよびターミナルの組み合わせに対してこれらのメッセージを考慮するからである。例えば、図１３では、Ｃが送信する希薄なリンクメッセージが、（Ｃ→Ｔ）グローバルノードの最適な設定を明らかにするように用いられる。これは正しいことである。しかし、希薄なリンクメッセージはまた、（Ｃ→Ｔ２）の最適な値を計算するように用いられる。しかしながら、これは、間違っている。なぜなら、Ｔ２が実際にテキストにおいて起こるからである。これに対して調整するために、Ｔ２とＣとの間のトリガーノードは、そのリンクメッセージにおいて付加的な構成要素を含む。ｅｐａｘのこの調整は、標準的なリンクメッセージを有して（Ｃ→Ｔ２）グローバルノードに送信される。これは、希薄なリンクメッセージから来るｅ−ｐａｘを相殺し、すべての計算がおおよそ正確に終了する。
【０１１１】
これまで、我々は、そこに存在しないターミナルおよびそれらのトリガーノードからのリンクメッセージを簡略化した。各ローカルネットワークにおいて処理されるべき何百万ものクラスタノードを有する潜在的に大きなモデルが依然存在する。これを簡略化するために、我々は、セッションにおいて、どのクラスタが任意の確率で存在し得るのかを我々に決定することを可能にする迅速な概算計算を行う。学習されるべき必要があるグローバルメッセージのために、一度「普遍」の希薄なリンクメッセージが考慮されると、起こりそうもないクラスタは、グローバルモデルにほとんど影響を与えないことが分かる。したがって、我々のモデルが多くの数のクラスタを考慮しないことを可能にした迅速な計算は大変好都合である。
【０１１２】
我々のモデルは、ローカルネットワーク内でどのクラスタが考慮されるべきでさえあるかを決定するように「親選択（ｐａｒｅｎｔ  ｐｉｃｋｉｎｇ）」と呼ばれるルーチンを実行する。このルーチンは、２つ、３つの情報のタイプを用いる。（１）他のすべてのセッションにおけるクラスタの確率から推定され得る事前の可能性。（２）セッションにおける単語であって、単語を指し示すクラスタに対する可能性を算出する単語。（３）高い確率を有するクラスタからリンクされた単語。（４）グローバルモデルの構造。我々は、後ほど、このルーチンに戻り、このルーチンを考察するが、差し当たっては、テキスト上にこのルーチンを実行させた後には、一般的には、大きなファクタ分、考察されるクラスタの数が減少することに留意する。百万以上の概念を有する１つの大きなモデルにおいて、単一の単語「ｏｆｆｉｃｅ」からなるセッション上にルーチンを実行することは、我々のモデルが、結果的に百万以上のクラスタから１２のクラスタだけを考慮することになる。この「クラスタの希薄」はまた、セッションの分析が必要とされる作業の量をおおいに減らす。
【０１１３】
アップメッセージは、現在の反復において高い確率で既に存在するリンクにだけに送信されるわけではないことに留意すること。我々のモデルの１つの実施形態は、また新しい単語に対する概念に関連するアップメッセージを送信することを必要とする。実際には、このようにして新しい単語が概念からリンクされる。例えば、問い合わせセッションに対するクラスタＣの当初の割り当てを考慮する。
カリフォルニア（ｃａｌｉｆｏｒｎｉａ）
パロアルト（ｐａｌｏ  ａｌｔｏ）
バークレー（ｂｅｒｋｅｌｅｙ）
さて、我々が新しいローカルネットワーク上でトレーニングするにつれて、我々は以下のセッションを観察する。
カリフォルニア（ｃａｌｉｆｏｒｎｉａ）
バークレー（ｂｅｒｋｅｌｅｙ）
サンフランシスコ（ｓａｎ  ｆｒａｎｃｉｓｃｏ）
図１４は、このようなネットワークがどのようなものであるかを示す（ここで、我々は、美的な理由のためにトリガーを削除した）。このセッションにおいて、我々の新しいクラスタＣはカリフォルニアおよびバークレーの双方を差し示す。ターミナルの希薄を用いることにより、他のすべてのターミナルは、しっかりとは考慮されないことに留意する。クラスタの希薄を用いたときも同様である。また、低い確率であるモデルリンクにおいて格納されないので、Ｃとサンフランシスコとの間にははっきりとしたリンクが存在しない（それ故に、それらの間は点線になっている）。また、モデルの希薄のためにグローバルノード（Ｃ→サンフランシスコ）がまた、はっきりと存在しないことに留意すること。ここでは、このセッションにおいて、Ｃが、起こりそうであると決定されるとき、存在しないノード（Ｃ→サンフランシスコ）にアップメッセージを送信することは好都合である。我々のモデルがこのメッセージを受信するとき、我々のモデルは、（Ｃ→サンフランシスコ）リンクに対する最適値を計算し、このリンクが十分重大であるとき（このリンクは存在し、十分に高い最高値を有する）、（Ｃ→サンフランシスコ）ノードがグローバルモデルに追加される。まさにこのようにして、グローバルノードは、クラスタからターミナルへの新しいリンクを成長させる。しかしながら、行われ得る１つの最適化は、局所的にルーピーを実行させた後でクラスタが十分に高い確率を有するとき、これらの新しいノードリンクメッセージを送信するだけである。
【０１１４】
これらの希薄技術（ｓｐａｒｓｅｎｅｓｓ  ｔｅｃｈｎｉｑｕｅ）の効果はかなり重要である。希薄技術の本質は、複数のメッセージを組み合わせて、概算メッセージにすることであり、事実上存在しない情報の希薄な表現が主として無視される。
【０１１５】
モデル格納および圧縮
この点では、我々は、我々のモデルを実用的にするために用いられるいくつかの希薄技術と同様に我々のモデルの仕様の双方を取り囲む多くの理論的な詳細を考察した。このセクションは、我々のモデルの実行を網羅する。つまり、我々のモデルの実行は、前記の理論的モデル上で動作する的確なステップおよび処理である。このセッションにおいて依然重要な理論的な紹介がある。なぜなら、我々のモデルを実際に実行する観点からして、説明可能ないくつかの一時的な効果しかないからである。
【０１１６】
我々のモデルは、共有のファイルシステムまたはネットワークを用いて、データを交換する別々のコンピュータユニット上で並列に実行させられ得る。この並列を可能にする態様でモデルが分割されるとき、動作におけるある段階は、「かけら（ｓｈａｒｄ」と言われる。データが同様に「かけら」と言われる（例えば、我々は、しばしばファイルがｉｄによってかけらにされたと言う。これは、ファイルがＮ個に分割され、あるｉｄを有するデータがＮのｉｄモジュラスに配置されたことを意味する。）
格納される構成要素
先ず、我々は、モデルが学習することを可能にするために１つの反復から次の反復までに、我々のモデルが格納し得る情報の構成要素を網羅することから始める。
【０１１７】
ユーザセッションは、ファイルシステムにおいて、１つ以上のファイルとして格納される。それらのフォーマットは、レキシコンルックアップは、それぞれの認識された単語を一意の整数（ｉｎｔｅｇｅｒ）に既に変換し得るものである。この一意の整数は、レキシコンルックアップのターミナル＿ｉｄである。レキシコンは、ターミナル＿ｉｄがテキストの列から小さなｉｄに何度も変換することを可能にする。ｉｄを用いる１つの利点は、ｉｄが密度の小さい空間に配置され、したがって、ｉｄを操作するように用いられるデータ構造をしばしば簡略化し得る。
【０１１８】
レキシコンは、ターミナル＿ｉｄからターミナルへの、そしてターミナルからターミナル＿ｉｄへの容易な変換を可能にするフォーマットで格納されている。各ターミナルは、一意のターミナル＿ｉｄを有する。
【０１１９】
我々のモデルは、関連のリンクの関係を有して格納されている。その関係とは、クラスタからターミナル、またはクラスタからクラスタである。各リンクのソースは親および目的地は子と呼ばれる。親と子との間の各リンクが格納され得る。我々のモデルでは、この情報が子＿ｉｄによってかけらにされる逆インデックスにおいて格納されている。作成されるとき、各クラスタがそれ自身のクラスタ＿ｉｄを与えられる。このｉｄは、ターミナル＿ｉｄと同一の空間に存在し得る。逆インデックスは、それぞれの子に対して、その子の親の存在の確率とその確率の重みと同様に、その子の親のリストを格納する。この情報のすべては、インデックスがメモリにおいて占めている空間を減らすためにライスエンコード（ｒｉｃｅ  ｅｎｃｏｄｅ）といった圧縮技術を用いて、ビットエンコードされる。
【０１２０】
１つの特有の最適化は、逆インデックスデータを倍のサイズのブロックで格納することである。ここでは、各ブロック内において、親が圧縮のためにｉｄで格納されている。ブロック間の順序付けがターゲット＝１に対する重要なリンクを強調するように選択される。このデータ構造の利点は、ターミナルまたはクラスタへの最も重要なリンクがインデックスエントリ全体を探索することなく検索され得ることである。もちろん、このことは重要性でソートすることによって単純に行われ得る。第２の利点は、インデックスエントリの大部分はｉｄでソートされており、これが、重要性による単純なソートよりインデックスエントリをより圧縮する。
【０１２１】
親が子のリストを有するとき、このモデルはまた逆順序で格納され得る。これは情報をデバックするように用いれ得る。このモデルはまた別々のインデックスおよびデータ構造に分けられ得る。ここで、インデックスは、クラスタまたはターミナルの親（または子）が２つのファイルアクセスを用いて発見され得るファイルへのポインタインデックスである。
【０１２２】
次の反復に対して、また親選択に対してリンク最適化を再度行うために、我々のモデルは、以下のようなさまざまな情報を保持し続ける。（１）セッションに関する他情報が与えられていないときの各クラスタの確率。これは、ルーピーの最後の反復にわたるそのクラスタの頻度に概算される。（２）各クラスタに対するアクチベーション回数の合計の確率。これはリンク最適化における仮想リンクメッセージに対して用いられる。この情報はときどき、オーダー１（ｏｒｄｅｒ  １）の情報またはモデルと呼ばれる。なぜなら、クラスタが存在するか否かに関わらず、またその予測されるアクチベーション回数の確率の（相関関係が考慮されていない）オーダー１のモデルであるからである。
【０１２３】
このモデルはまた、すべてのクラスタに対してアウトリンクの和のすべてを格納し得る。ここではアウトリンクは、クラスタから別のクラスタへのリンクである。これは、リンクの現在の存在値とリンクの重みとを乗算することによって合計（和）される。モデルはまた、アクチベーションされたアウトリンクの和のすべてを格納し得る。これは、クラスタからターミナルへのリンクの和である。これら２つの情報が、例えば、クラスタまたはターミナルの希薄さを用いるとき、子ターミナルまたはクラスタのいくつかを暗に考慮することだけに応答して、クラスタの確率をどうのように調整するかを明らかにするために必要とされる。このデータはまた、クラスタ＿ｉｄによってかけらにされる。
【０１２４】
このモデルは、オプション的に、ファイルにおけるクラスタ名のリストを格納し得る。これらの名前は、クラスタにおけるより重要なターミナルの２つ、３つを選択し、かつ、それらを連結することによって一般的に決定される。これは、主に複合化のための記憶増進のデバイスである。しかしながら、これはまた、ターミナルを介して、特定の情報の必要性に応答する我々のモデルにおける現在のクラスタを識別するように用いられ得る。例えば、性的な単語のセットが、性的なクラスタを識別するように用いられ得る。性的なクラスタは、それから、我々のモデルを組み合わせて容易に用いられ得、子に対して安全な検索を作成する。
【０１２５】
アップリンクメッセージは、次の反復の処理の際に一時的に格納される。これらのメッセージは、親と子のｉｄの組み合わせによってかけらにされる。
【０１２６】
上記は我々のモデルのデータ要件を網羅し、一方で我々のモデルが動作している。次のセクションでは、我々のモデルを実行する際の異なるステップを詳述する。
【０１２７】
（１）処理セッション
先ず、我々のモデルは主にメモリにロードされて、ファイルシステムのアクセスを保存する。第２に、我々のモデルは、ファイルシステムからトレーニングセッションを読み出す。このモデルが、上記の希薄の原理を用いて、これらのセッションに対してローカルネットワークを形成する。それから、このモデルは、ローカルセッション上で推論（ルーピー）を実行する。なぜなら、それは、さまざまなクラスタの確率を決定するために必要とされるからである。これは、（上述されるように）リンクメッセージを抽出するために重要である。
【０１２８】
推論を実行した後、我々のモデルは、こられのセッションからアップリンクメッセージを抽出し、メッセージの（ソース＿ｉｄ、ターゲット＿ｉｄ）によってかけらにされたこれらのメッセージを保存する。このモデルはまた、セッションから「ノードメッセージ」を抽出する。これらのノードメッセージは、現在の確率と、クラスタならびにターミナルの双方のアクチベーション（ターミナルは常に１のアクチベーションを有する）とを包含する。この情報は、後の段階で処理されるために、ｉｄによってかけらにされたファイルシステムに保存される。「リンクメッセージの希薄」の効果に対して調整されるために、各クラスタに対するこの情報がまさに必要とされるものであることに留意する。つまり、この情報は、図１３の用語（ｐａｒｌａｎｃｅ）において、ソースＣを有する任意のグローバルノードでｅ−ｐａｘを再び作成するために必要である「ａ」および「ｐ」をまさに包含している。
【０１２９】
この段階中に、我々のモデルはまた、どのセッションに新しいクラスタが基づき得るのかを決定する。これらのセッションのそれぞれに対して、我々のモデルは、可能性のあるターミナルおよびクラスタを記録する「新しいクラスタメッセージ」を作成する。この新しいクラスタは、ターミナルを指し示し、関連するクラスタによって指し示されることが意図される。これらの「新しいクラスタメッセージ」は、処理されるべき「新しいクラスタを処理する」段階のために、ｉｄによってかけらにされたファイルシステムに格納される。
【０１３０】
この段階は、セッションによってかけらにされる。このことは、入力が多くの部分（かけら）に分割され、各処理ユニットが特定のセッションのセットの１つだけを処理することを意味する。（セッションによって）入力をかけらにすることは、出力をかけらにすることとは異なることに留意する。例えば、Ｎ個の入力セッションのかけらがあるとき、（クラスタｉｄによってかけらにされる）ノードメッセージに対するＭ個の出力ノードのかけらおよび（ターゲットｉｄ、ソースｉｄによってかけらにされる）リンクメッセージに対するＬ個の出力のかけらがあることを考慮する。この段階の出力は、セッションのかけらおよびクラスタｉｄのかけらによってかけらにされるＭ個×Ｎ個のノードメッセージファイルである。このデータが、Ｎ個の方法でマージされて、Ｍ個のクラスタｉｄのかけらを生成する。単純なプロセスが同様にリンクのかけらに対して起こる。一般的に、段階が出力とは異なる方法によってかけらにされるとき、その一部のファイルがマージされて、次の段階が何を要求するかによってかけらにされる結果を取得する。
【０１３１】
例として、一週間の曜日毎のユーザに関するデータを取り込むが、ユーザの苗字の最初の文字によってかけらにされるデータを生成する処理を挙げてみる。その入力は７つのファイルである。月曜日、火曜日、水曜日、木曜日、金曜日、土曜日、日曜日に対して１つのファイルである。最終的な出力は、２６個のファイルである。アルファベットの各文字に対して１つのファイルである。しかしながら、先ず、７つの処理のそれぞれが、それ自身の２６個のファイルを生成し、結果的に１８２のファイルになる。例えば、「ｍｏｎｄａｙ―ａ」ファイル、「ｍｏｎｄａｙ―ｂ」ファイル（等）、「ｔｕｅｓｄａｙ―ａ」ファイル（等）があるとする。ここで、７個のすべての「ａ」ファイルが１個の「ａ」ファイルに組み合わせられる。同様にアルファベットの他のすべての文字に対しても、２６個のファイルだけが生じるまで、組み合わせられる。
【０１３２】
この「クロス積のマージ」は、出力とは異なってかけらにされる入力に対処する１つの方法である。これは、並列にデータを生成することであって、同様に並列にさらなる処理よって消費されるデータを生成する大変効率的な方法である。これに対する代替は、ファイルシステムを単純に用いて、出力のかけらにすべてのデータを同時に付加することである。これは、大量のデータが付加され、ソースをかけらにすることが多いとき、より遅くなる傾向にある。
【０１３３】
（２）Ｏ１を計算する。
【０１３４】
ここでは、クラスタの確率の和、クラスタのアクチベーション回数の確率が決定される。この情報は、単純に処理セッションの段階で生成された「ノードメッセージ」の概算である。この情報は、ｉｄによってかけらにされた新しい「概算されたノードメッセージ」のセットとしてファイルシステムに保存される。この情報は、我々のモデルの一部である。この情報は、オーダー１モデルと呼ばれる。
【０１３５】
この段階は、ノードｉｄによってかけらにされる（ここでのノードは、ターミナルまたはクラスタである）。このことは、各処理ユニットが、データの一部だけに対してオーダー１モデルに責任を持つことを意味する。実際には、データは、そのデータが一部に対して出力する一部である。したがって、クロス積のマージは必要とされない。
【０１３６】
（３）新しいクラスタを処理する
この段階は、新しいクラスタメッセージを受信し、クラスタが我々のモデルにどのように適合するのかを決定する。この決定がこのときまで延ばされる。なぜなら、この決定は、Ｏ１段階で計算される情報が必要であるからである。これは、重要な動態論的な理由のためである。新しいクラスタが導入されるとき、新しいクラスタへのすべてのリンクの可能性および最良の値について決定がされ得る。一般的に、このようなクラスタは、それが基づいている「新しいクラスタメッセージ」における他のリンクと同様にＣＡＮＡＤＡからリンクされる。
【０１３７】
新しいクラスタが強すぎるリンク（大きい重みおよび可能性）であるリンクを与えられるとき、それは、新しい概念を学習することなく現存する優良なクラスタから単語を瞬時に取る。これは、クラスタが適切に関連したターミナルのセットを依然として指し示していないためである。新しいクラスタが弱すぎるリンクを与えられたとき、それは、いずれのセッションにおいて差異をつけるために十分に重要ではない。新しいクラスタが十分に強いリンクメッセージを受信しないとき、それは同様に失敗する。ここで失敗するというのは、新しいクラスタが受信するリンクメッセージは、新しいクラスタおよびモデルの残りからのリンク、ならびに新しいクラスタおよびモデルの残りへのリンクを取り除くことを意味する。
【０１３８】
これらのリンクがどれほど強いものであるべきかを決定するために、我々は、確率においてどれだけの頻度でその潜在的な親のそれぞれが発火するかを考慮する。これがまさに上記で計算されたオーダー１モデルに存在する情報である。賢明にこの決定を行うために、我々は、次の反復においてこのクラスタの予想される発生の小さな数Ｍ（通常は１００）を予測するためにリンクの可能性と重みとのバランスをとる。
【０１３９】
この段階の出力は、「エントリメッセージ」のセットである。エントリメッセージは、モデルの逆インデックス情報に基本的に存在しているものである。エントリは、ソース、ターゲット、存在の可能性および最良の値に関しての情報を包含する。この情報は、ターゲットｉｄによってかけられにされる。
【０１４０】
この段階は、新しいクラスタのクラスタｉｄによってかけらにされる。つまり、各処理ユニットは、ある新しいクラスタｉｄだけに対してエントリメッセージを生成する。異なる処理ユニットが、（ターゲットｉｄによって）同一のかけらになることになっているデータを生成し得るので、エントリメッセージは、ファイルシステムを用いて、同一のファイルのいくつかにそれらのデータを非同期的に付加することに留意する。クロス積のマージは、同様にここで用いられ得るが、そのデータの量はかなり小さい。したがって、データは、ファイルシステムのレベルで瞬時にマージされるだけである。
【０１４１】
（４）リンクを最適化する
この段階は、処理セッション段階からすべてのリンクメッセージおよびすべての概算されたノードメッセージを受信し、リンク最適化のセクションで上記される態様でリンクの可能性および確率を最適化する。この段階の出力はまた、ターゲットｉｄによってかけらにされる「エントリメッセージ」のセットである。
【０１４２】
この段階は、ソースおよびターゲットｉｄの組み合わせによってかけらにされる。つまり、各処理ユニットは、かけらにする空間に含まれるリンクだけに責任を持つ。結果生じるデータはかなり小さく、クロス積のマージを行う必要はなく、その結果生じるデータは、すべてのソールから並列にファイルのセットに付加される。
【０１４３】
（５）親インデックスを構築する
この段階は、すべてのエントリメッセージを受信し、１つの特定のターゲットに対してそれらをひとまとめにする。この段階はまた、セットされている数Ｎに対する特定のターゲットを示し得るソースの数を制限する。Ｎに対する一般的な値は１００くらいである。ターゲットを指し示すＮ個のソースは、ターゲットにとって最も重要なソースである。ここでは、重要さは、ソースに対するＯ１の値と、そのリンク沿いのリンクの重みと、そのリンク沿いのリンクの可能性との積によって決定される。この簡略化は、効率化のために特定の小さなノードを指し示す親の数を保つために行われる。これはまた、別のスケーラビリティ技術であり、我々は、これを「行の希薄」と呼ぶ。
【０１４４】
この段階の出力は、上述のモデルファイルに対する逆インデックスの特定のかけらである。出力は、入力と同様の態様でターゲットｉｄによってかけらにされる。段階全体が、同様にターゲットｉｄによってかけらにされる。
【０１４５】
（６）子インデックスを構築する
この段階は、親インデックスデータを反転させて、子インデックスを構築する。子インデックスの入力は、リンクのターゲットによってかけられにされ、その出力は、ソースによってかけらにされる。各処理ユニットは、並列に、多くの結果ファイルを付加する。
【０１４６】
上記は、ルーピー確度伝播の１つの反復を実行して、モデルを洗練するステップを記載する。この処理は、よりよいモデルを得るために必要なだけ繰り返される。
【０１４７】
リナンバリング
数回の反復ごとに起こる「リナンバリング」と呼ばれる特別なステップがある。クラスタＣ１は、クラスタＣ２にリンクし得るが、逆は起こらないことを思い出してください。一般的に、ｉがｊより小さいとき、ｉｄ＝ｉのクラスタはｉｄ＝ｊのクラスタにリンクし得る。特別関係および一般関係を学習するために、より大きなクラスタがより小さいクラスタにリンクすることが所望される。概念は、通常、一般化より特別化を有するので、前もってより大きなクラスタをｉｄ空間に配置することは理にかなっている。これは、関係が学習されるあいにく必要でない順序である。このために、我々は、ときどき（数回の反復毎に）、クラスタのすべてをリナンバリングする。
【０１４８】
クラスタをリナンバリングすることは、ほとんどすべてのリンク上のリンクの重みおよび可能性を変更することを意味する。この起こり方は以下のとおりである。クラスタＡが重みｗを有するクラスタＢを指し示すとする。さらに、ＡおよびＢの確率の和をそれぞれｐ１およびｐ２とする（これは、ｏ１モデルの構成要素の１つである）。ここで、我々は、Ａがセッションのほぼ一部分ｐ１に現れ、Ｂがセッションの一部分ｐ２に現れ、ＡおよびＢが、セッションの一部分（ｐ１  ｗ）に現れると予想する。これらの数は、もちろんすべて概算である。ＢがＡを指し示させる適切なアプローチは、予想される同時発生の同一の数を保つことである。これは、
ｗ’ｐ２＝ｗｐ１
または
ｗ’＝ｗｐ１／ｐ２
を満たす新しいリンク重みｗ’用いて達成される。
【０１４９】
このことを行うために、特定のモデルが「エントリメッセージ」に変換され、オーダー１モデルの一部分がメモリにロードされ（一部分がｐ１およびｐ２構成要素に対して必要とされる）、そして、この変換が起こる。この変換の出力は、通常の動作の「親インデックスを構築する」段階に供給されるエントリメッセージのセットである。
【０１５０】
親選択（候補クラスタを選択する）
セッションを分析するとき、本発明の１つの実施形態は、我々が明らかにするローカル確度ネットワークにおいて何千にもおよぶすべてのクラスタを含んでいない。我々は、先ず、どのクラスタがアクティブある可能性が一番低いのかを決定し、残りがオフであると仮定する。我々は、我々が考慮するクラスタを「候補クラスタ」と呼ぶ。どのクラスタが候補であるのかを決定するために、我々は、モデルにおける高さの昇順でクラスタの優先待ち行列を評価するために、それらを保つ（クラスタｉｄを減少させ、一般性を増加させる）。我々は、セッションに対するターミナルのすべての親にその行列を加える。我々は、それから、行列のクラスタを除き、それを評価する。所定のクラスタＣ１に対して、我々は、図１５．１に示される確度ネットワークを構築する。我々は、Ｃ１およびＣ１によってリンクされるセッションにおけるすべてのターミナルを含む。Ｃ１がある定数（我々は、３．０を用いる）と同等のアクチベーションをまるで有するように、我々は、これらの複数のノードの間のリンクの重みを計る。我々は、セッションにおける単語の数によって乗算されたターミナルのｏ１モデルと同等の重みを有するターミナルであって、どこからともなくそのターミナルにリンクを追加する。このリンクは、そのターミナルが他のものによって引き起こされる可能性をおおよそ概算する。我々は、どこからともなくリンクをＣ１のｏ１モデルと同等の重みを有するＣ１に追加する。それから、我々は、このネットワークを解いて、Ｃ１の確率を獲得する。ネットワークはツリーであるので、我々は、これを直ちに解決し得る。ネットワークにおけるＣ１の確率があるしきい値（我々は、０．０５を用いる）を超えると、我々は、Ｃ１は、候補クラスタであると判断する。この場合には、我々は、Ｃ１のすべて親を、評価されるべきクラスタの行列に追加する。
【０１５１】
我々が既に候補クラスタとした別のクラスタＣ１を子として有するクラスタＣ２を我々が評価している場合には、我々は、Ｃ２に関して適切である付加的な証拠を追加するように、Ｃ２に対して我々が作成したネットワークにおいて我々がＣ１に対して作成したネットワークを含むことを所望する。このような包含における危険は、包含することによってネットワークにおいてループが作成されることである。したがって、我々は、クラスタに対応するターミナルおよびサブネットワークのすべてが交差しないように、ターミナルおよびクラスタの子をＣ２に対するネットワークに追加するだけである。どのクラスタを含むべきかを選択する際に、Ｃ２に送信されるメッセージの強度の順序で、我々は強欲に選択する。例えば、クラスタＣ２が、セッションにおけるターミナル「灰色」および「マウス」ならびに、またクラスタＣ１にリンクされるとき、我々は、Ｃ１を含む１５．２Ａに示されるようなネットワーク、または、Ｃ２から「灰色」へのリンクを含む図１５．２Ｂに示されるようなネットワークのいずれかを構築する。我々は、どちらのメッセージがより強いのか（Ｃ１からＣ２または「灰色」からＣ２）に依存して、どちらのネットワークを構築するかを選択する。
【０１５２】
実際には、これらのネットワークに対応するデータ構造は、構築される必要がない。我々がＣ１を候補クラスタとし、かつ、Ｃ１の親Ｃ２を評価されるべき行列に加えるとき、我々は、Ｃ１がＣ２に対するネットワークに含まれるとき、Ｃ１からＣ２に渡されるメッセージおよび、（Ｃ２に対するネットワークの他の要素との交わりをさけるために）Ｃ１がルートであるツリーにおけるノードのセットを明記することとを追加し得る。セッションにおけるターミナルの親を行列に加えるとき、同様なメッセージがまた追加される。
【０１５３】
差分テキストソース調整技術
我々は、問い合わせセッションに照らして我々のモデルを述べてきた。しかしながら、本開示の最初に指摘されるように、我々のモデルは、ウェブ文書といった任意のテキストソース上で実行され得る。我々が発達させた当該の１つの技術は、１つのデータのソース上で我々のモデルをトレーニングし、一方で、別のソース上でそれを適用することである。
【０１５４】
例えば、我々は、ユーザの問い合わせに基づいて我々のモデルをトレーニングし、トレーニングされたモデルを適用し得、ウェブページにおけるさまざまなクラスタの存在の確率を予想する。これはときどき問題である。なぜなら、動詞といったある単語が、より多くの名詞を有する傾向があるユーザの問い合わせにおいてより頻繁に文書において起こるからである。あいにく、問い合わせにおいて、多くの動詞は、歌詞に存在し、しばしば、問い合わせによってトレーニングされたモデルは、歌詞に関して一部である大半の文書を識別する。
【０１５５】
このための調整は、候補の言葉（つまり、ウェブページの言葉）におけるリンクの可能性を反映するようにＣＡＮＡＤＡからすべてのターミナルへのリンクの重みを変更することである。ターミナルに対するＣＡＮＡＤＡからの説明は、基本的には、そのターミナルを創造したはっきりと定義された概念がないために、これは、それらの単語をいくらか軽視する結果になるという声明である。これは、しばしば、結果として、問い合わせおよびウェブページにおいて複数の概念を比較する、よりよい概念エンジンになる。
【０１５６】
適用され得る別の小さな修正は、テキストをトレーニングする際に有用である独立の仮定に対処する。多くのウェブページは、お互いのコピーである。異なるウェブサーバにカットされ、ペーストされる。繰り返されたコピーの裏にある隠された意味を伴わずに、我々のモデルが繰り返されたコピーをそのまま学習してしまう結果になるので、すべてのこれらの上で我々のモデルをトレーニングすることは、少しだけ無駄である。この問題を減らすために、我々は、大量の文書のセットから、例えば、Ｎ以上の単語（通常Ｎは、１０程度である）の繰り返されるすべての動作を省き得る。これは、Ｎ単語のすべてのシーケンスをラベル付け（ｆｉｎｇｅｒｐｒｉｎｔ）し、そのラベル付けをグループ化するようにソートし、それから、１度より多く見られる１０単語の動作から始まる単語を取り除くために、テキストをトレーニング反復に戻る。この技術は、ウェブ上でトレーニングする際に、我々のモデルを用いて適用される。
【０１５７】
実演
この点では、図１６の我々のモデルからのある出力を見てみる。「Ｍｏｄｅｌ  ｏｆ  １３７８９３９  ｃｌｕｓｔｅｒｓ」の列より下の情報を一瞥する。このデータは、２カラムフォーマットである。左側のカラムは、クラスタに対してｏ１モデルを報告する。つまり、我々のモデルの最後の反復におけるすべてのセッションにおいてクラスタの存在の確率の和である。右側のカラムは、クラスタに対する現在の我々の名前である。ＣＡＮＡＤＡ（普遍ノード）がすべてのセッションにおいて存在するので、番号５９５４１７６００はまた、このモデルがトレーニングされているユーザセッションの番号である。
【０１５８】
次のクラスタを見てみる。それは、［ｊｏｈｎ  ｄａｖｉｄ  ｍａｒｋ  ｐａｕｌ  ｍｉｃｈａｅｌ  ｓｃｏｔｔ］とラベル付けされている。これは、第１の名前を有するクラスタのである。次のクラスタ[ｆｒｅｅ  ｓｅｘ  ｐｏｒｎ  ｐｉｃｓ  ｍｏｖｉｅｓ  ｘｘｘ]は、性的な単語のクラスタである。次のクラスタ[ｕｋ  ｅｎｇｌａｎｄ  ｌｏｎｄｏｎ  ｉｎ―ｔｈｅ―ｕｋ―ｌｔｄ  ｆｒｉｅｎｄｓ―ｒｅｕｎｉｔｅｄ]は、イギリスのコンテンツに注目している。早めの忠告であるが、このモデルがイギリスの問い合わせグループ上で実行されるが、我々のモデルにおいては、言葉の点に関して制限ななく、同様なモデルも容易に他の任意の言葉で構築され得る。次のクラスタは［ｐｉｃｔｕｒｅｓ  ｏｆ  ｐｉｃｔｕｒｅ  ｐｈｏｔｏｓ  ｐｉｃｓ  ｉｍａｇｅｓ］である。このクラスタは興味深い、なぜなら、ウェブ上の写真を求める多くの異なる方法のいくつかによってラベル付けされているように思われることに留意する。実際に、これは、まさに我々のモデルが意図されるところであり、トピック毎に単語をグループ化することである。
【０１５９】
およそ１３０万のこれらのトピックがある。（もっとも多くても）ほんのわずかだけが図１６に表されている。ここで、クラスタの１つをじっくり見てみる。カウント６４０８１８７を有するクラスタが、［ｊｏｂｓ  ｊｏｂ  ｅｍｐｌｏｙｍｅｎｔ  ｉｎ  ｊｏｂ―ｓｅａｒｃｈ  ｃａｒｅｅｒｓ］とラベル付けされている。ＨＴＭＬインターフェースが、我々のモデルを用いて提供されており、そのクラスタに関するより詳細な情報を提示しているクラスタを選択している。このより詳細な情報が図１７に示してある。我々は、先ず、横線より下の情報を見てみる（我々は、後ほどサーチボックスに戻る）。
【０１６０】
ここでは、３つの主なセクションがある。１つはＰＡＲＥＮＴＳとラベル付けされ、１つはＣＨＩＬＤＲＥＮレベル付けされ、もつ１つは、「ＩＤ４７３７５０１」で始まる。ＰＡＲＥＮＴＳおよびＣＨＩＬＤＲＥＮセクションは、このクラスタが関連している残りのクラスタをリストアップする。左側のカラムは、親がこの特定のクラスタをトリガーする、または子がトリガーされると予想される回数をリストアップしている。ここでの親情報はわずかであり、ＣＡＮＡＤＡだけがこのクラスタを有する親である。これは、なぜなら、仕事（ｊｏｂ）の概念が大変大きいものであるので、リナンバリングが多くの他の概念を有する親に概念を移動させるためである。
【０１６１】
ここで、子の情報を見ている。子はリストの下の方でより頻繁にトリガーされていることに留意する。子の概念［ｉｎ  ｊｏｂｓ  ｆｏｒ  ｉｎｄｉａ  ｉｔ  ｂａｎｇａｌｏｒｅ］が、この仕事のクラスタから３７８０７０回トリガーされると予想される。このサブクラスタは、仕事を探しているインドの人々である。次のサブクラスタは、教育を話題にする［ｐｒｏｇｒａｍｓ  ｄｅｇｒｅｅ  ｐｒｏｇｒａｍ  ｅｄｕｃａｔｉｏｎ  ｏｎｌｉｎｅ  ｍａｓｔｅｒｓ］である。このことは、人々が仕事について話すとき、彼らは、しばしば教育についての話をすることを意味する。次のクラスタは、給料に関する［ｓａｌａｒｙ  ｓａｌａｒｉｅｓ  ａｖｅｒａｇｅ  ｓａｌａｒｙ―ｓｕｒｖｅｙ  ｗａｇｅｓ  ｐａｙ］等である。我々のモデルは、仕事がしばしば、教育、給料および賃金に関連していると決定づける点で、世界について注意を引き付けるほどの量の情報を包含する。子のクラスタに続く数字は、例えば、（０．０６０８１０，ｉｎｆ）は、２つのクラスタの間のリンクの最良の値と、リンクの存在におけるｌｏｇｏｄｄｓ確度（この場合においては無限である。したがって、我々のモデルによれば確率１．０を有する）とを詳細に示す組である。
【０１６２】
ここで、ＩＤ４７３７５０１から始まる情報を見てみる。これは、この仕事のクラスタのｉｄが４７３７５０１であることを意味する。「Ｔｏｔａｌ  Ｆｉｒｉｎｇ：６４０８１８７．００００００」は、このクラスタ（ｏ１）の存在の確率の和が、我々のモデルの最後の反復で６４０８１８７回であることを意味する。発火することは、ときどき、確率、または確率の和に対する同意語として用いられる。その「Ｔｏｔａｌ  Ａｃｔｉｖａｔｉｏｎ：１１１３９１４０．００００００」は、クラスタのアクチベーション回数の合計を最後の反復においてすべてのセッションにおける確率と乗算するに対するオーダー１エントリである（これは、実際には、Ｔｏｔａｌ  Ａｃｔｉｖａｔｉｏｎ  Ｔｉｍｅｓ  Ｐｒｏｂａｂｉｌｉｔｙ呼ばれるべきであるが、この名前は使いにくい）。
「Ｏｕｔｌｉｎｋ  Ｓｕｍ：０．８４８５０６」は、重みの合計とクラスタに対するリンクの可能性を乗算が０．８４８５０６であることを意味する。「Ａｃｔｉｖａｔｅｄ  Ｏｕｔｌｉｎｋ  Ｓｕｍ：０．５２１８９９」は、重みの合計をターミナルへの可能性を乗算が０．５２１８９９であることを意味する。さて、それより下の情報がまた、２カラムフォーマットになっている。ＣＨＩＬＤＲＥＮとＰＡＲＥＮＴＳセクションと同様に、次のセクションは、このクラスタとターミナルとの間のリンクを詳細する。
【０１６３】
第１のターミナルは「ｊｏｂｓ」である。左側の情報１８４１２８７は、このクラスタが単語「ｊｏｂｓ」をトリガーする回数である。この単語の右側の情報はまた、このクラスタの最良の値および存在を有する対数の可能性である。次のいくつかの単語は、「ｊｏｂ」、「ｅｍｐｌｏｙｍｅｎｔ」、「ｉｎ」、「ｊｏｂ―ｓｅａｒｃｈ」、「ｃａｒｅｅｒｓ」、「ｉｔ」、「ｃａｒｅｅｒ」、「ｊｏｂ―ｏｐｐｏｒｔｕｎｉｔｉｅｓ」、「ｈｕｍａｎ―ｒｅｓｏｕｒｃｅｓ」等である。これらのターミナルのすべては、人々が仕事の概念を話題にするとき用いられる。より多くのターミナルがこのクラスタからリンクされ、一番重大な複数のクラスタだけがこの図において表示されていることに留意する。
【０１６４】
これらの概念のいずれかを用いることは、この考えがアクティブであることを示し、いくつかの単語が他の単語よりアクティブである。例えば、仕事という単語は、この概念によってもっとも引き起こされる。我々は、異なる出力を考察することによってこれを調べる。この異なる出力は、単語「ｊｏｂｓ」に対するすべてのターミナルに対して利用可能である。図１８は、この出力を示す。「ＴＥＲＭＩＮＡＬ：ｊｏｂｓ」の行から始める。次の行は、「Ｆｉｒｉｎｇ：３０４９３９８．００００００」である。これは、以前の反復におけるこの単語の発生の可能性の和が３０４９３９８であることを意味する（複合化のために、ターミナルは、セッションにおいて、１．０とは異なる発生の確率を有し得ることに留意する）。次のいくつかの行は、このターミナルをもっとも強くさせるクラスタを詳述する。最初の行の［ｊｏｂｓ  ｊｏｂ  ｅｍｐｌｏｙｍｅｎｔ  ｉｎ  ｊｏｂ―ｓｅａｒｃｈ  ｃａｒｅｅｒｓ］がもっとも強いクラスタである。より多くのクラスタがこのターミナルにリンクし、もっとも重要な複数のクラスタだけがこの図面に表示されることに留意する。
【０１６５】
ここで、ターミナル「ｉｎ」は、［ｊｏｂｓ  ｊｏｂ  ｅｍｐｌｏｙｍｅｎｔ  ｉｎ  ｊｏｂ―ｓｅａｒｃｈ  ｃａｒｅｅｒｓ」におけるクラスタであるが、（図１９に示されるように）このターミナルに対するページを選択することは、我々は、ＣＡＮＡＤＡは、「ｉｎ」をもっとも起こすクラスタであることがわかる。この解釈は、以下の通りである。「ｉｎ」は、人々が仕事を話題にするときに用いられるが、「ｉｎ」はまた、より頻繁に他のものによって引き起こされる。したがって、「ｉｎ」は、人々が検索する際に、単語「ｊｏｂｓ」ほど強いインジケータではない。ここでは、同様に、より多くのクラスタは、このターミナルリンクし、もっとも重要な複数のクラスタだけがこの図面に表示されることに留意する。
【０１６６】
ここで、我々は、ページの一番上のサーチボックスを見てみる。我々は、問い合わせ「ｐａｌｏ  ａｌｔｏ  ｒｅｓｔａｕｒａｎｔｓ」をこのボックスに入力し、Ｓｅａｒｃｈをクリックする。図２０は、この検索の結果を示す。行「ＱＵＥＲＹ：ｐａｌｏ  ａｌｔｏ  ｒｅｓｔａｕｒａｎｔｓ」から始めてみる。これは、単純にボックスにタイプされたものである。次の２つの行は、複合語「ｐａｌｏ  ａｌｔｏ」および単語「ｒｅｓｔａｕｒａｔｎｓ」である。これらは、問い合わせの現在の複合化（ときどきセグメント化と呼ばれる）を表している。
【０１６７】
さて、単語ｐａｌｏ―ａｌｔｏの次の数字を考察してみる。最後の数９．９７８９は、それが単語を表すために取るビットの数である。ビット表現コストと確率との間には相対性がある。ここで、ビットコストは、確率の底を２とする負の対数（−ｌｏｇ２（Ｐｒ））である。これは、単語ｐａｌｏ―ａｌｔｏは単語が発生する２＾９．９７９（約１０００）回におよそ１回起こることを意味する。真ん中の数字は、残りの単語が見られたとすると、単語がどれだけの数のビットを必要とするかに対する概算である。単語ｐａｌｏ―ａｌｔｏは、よくならない（より可能性が大きくならない）が、単語ｒｅｓｔａｕｒａｎｎｔは、よくなる。これは、なぜなら、ｐａｌｏ  ａｌｔｏを検索する人々は、大変高い頻度（およそ２３．７回に一度、つまり、１０回に一度）で、ｐａｌｏ  ａｌｔｏにあるレストランを所望するからである。同じことがｐａｌｏ  ａｌｔｏに関して執筆している人々に対する文書に当てはまる。
【０１６８】
この情報の１つの利用の仕方は、文字検索においてどの単語が落とされ得るかを決定することである。なぜなら、それらは、他の単語より、明確でないからである。例えば、「ｐａｔｏ  ａｌｔｏ」レストランの検索が、文書のコーパスから十分な結果を戻さないとき、もしかしたら、あなたはただｐａｌｏ  ａｌｔｏと記載するページを探し、そのページがレストランに関してであるが、異なる単語（例えば、［ｒｅｓｔａｕｒａｎｔｓ  ｉｎ  ｒｅｓｔａｕｒａｎｔｓ  ｒｅｓｔａｕｒａｎｔｓ  ｄｉｎｉｎｇ  ｂｅｓｔ］クラスタにおける単語の１ついった単語）を用いているかどうかを確かめ得る。ｐａｌｏ  ａｌｔｏに対する最初の数字１５．２６２４はビットコストであるが、文書において高い可能性で起こりそうな（＞０．９５）クラスタがあると仮定する（このセッションに対してはない）。この数字もまた概算である。
【０１６９】
「ｓｅｓｓｉｏｎ  ｇｒａｐｈ  ８  ｎｏｄｅｓ  １６  ｅｄｇｅｓ」で始まる行は、ターミナルを見た証拠を解くために導入されるローカルネットワークについて話している。我々のモデルは、８個よりずっと多くのクラスタを有するが、ターミナルおよびクラスタの希薄技術は、我々が合計で８個のノードを考察するだけでよいことを意味することに留意する。ここでは、ノードは、クラスタまたはターミナルであり得る。その行の残りは、タイミング情報を取り扱っている。次のいくつかの行は、問い合わせにおいて見つけられたすべてのクラスタについての情報を表している。１番目は、［ｒｅｓｔａｕｒａｔｎｓ  ｉｎ  ｒｅｓｔａｕｒａｎｔｓ  ｒｅｓｔａｕｒａｎｔｓ  ｄｉｎｉｎｇ  ｂｅｓｔ］と名づけられたレストランのクラスタである。その左側に３つの列がある。１つ目は、クラスタの確率である。２つ目は、クラスタの確率をアクチベーションと乗算したものである。３つ目は、クラスタの確率を調整済みのアクチベーションと乗算したものである。ローカルネットワーク内のアクチベーションは真である可能性の単語をトリガーし得、可能性のある単語で任意にセットされただけであることを思い出してください。一度、我々がネットワークを解いたら、我々は、ターミナルがどこから出ているかについて、より経験に基づいた推測をし得る。我々は、各クラスタと各ターミナルとの間のトリガーノードの確率を計算することによってこのことを行う。クラスタは、「調整済アクチベーション」として発火する各ターミナルの確率を得る。
【０１７０】
見つけられる２つ目のクラスタは、０．６８２９１２の存在の確率を有する［ｓａｎ―ｊｏｓｅ  ｃａ  ｓｕｎｎｙｖａｌｅ  ｓａｎｔａ―ｃｌａｒａ  ｂａｙ―ａｒｅａ  ｍｏｕｎｔａｉｎ―ｖｉｅｗ］クラスタである。３つ目は、０．３７の確率を有する［ｐａｌｏ―ａｌｔｏ  ｍｅｎｌｏ―ｐａｒｋ  ｒｅｓｔａｕｒａｎｔ  ｅｖｖｉａ  ｐａｌｏ  ｓｔｒａｉｔｓ―ｃａｆｅ］のクラスタである。ここで留意するべき興味深いことは、「Ｅｖｖｉａ」および「Ｓｔｒａｉｔｓ  Ｃａｆｅ」の双方が、実際には、パロアルトのレストランであるということである。このクラスタは、パロアルトの周囲のレストランの概念だけを包含したものである！
このようにして、我々のモデルは、さまざまな概念が任意のテキストに存在する確率を推定するように用いられ得る。同じことが、ウェブページおよび問い合わせにおいて存在する同一の概念を考察することにより、同様にウェブページに対して行われ得る。我々のモデルの使用の１つは、ウェブページ上の検索のためである。次のセクションでは、我々のモデルの使用のいくつかを話す。
【０１７１】
モデルの使用
このセクションは、我々のモデルの可能な使用のいくつかを詳述する。
（１）テキストの裏側にある概念を推測する。それから、この概念がユーザに表示されて、ユーザがこのテキストの裏側にある意味をより理解することできる。
（２）文書と問い合わせの単語および概念を比較する。これは、文書がウェブページである特別な場合を含んでいる任意の文書サーチエンジンにおいて必要とされる情報取り出しスコアリング機能である。
（３）ウェブ検索に対して我々のモデルを用いる異なる方法は、クラスタの分布が問い合わせに及ぶと仮定することである。例えば、単語「ジャガー（ｊａｇｕａｒ）」に対すると問い合わせは、不明瞭である。その単語は、動物または車のいずれかを意味し得る。我々のモデルは、この検索に応答して双方の意味に関連するクラスタを識別する。この場合には、我々は、ユーザが２つの問い合わせのうちのいずれか１つ（ジャガー（車）の問い合わせ、またはジャガー（動物）問い合わせをタイプしたと考慮し得る。我々は、それから、それぞれのクラスタの確率の比率を考慮して、これらの問い合わせの双方に対する文書を取り出し得る。我々が各意味に対してどれだけの数の結果を戻すかを慎重にバランスを取ることにより、我々は、検索に対する結果のある程度の多様性を確実にし得る。
（４）文書と広告の単語および概念の比較を行う。広告はあるコンテンツに添付されたとき、広告がどれ程うまく遂行されていかに対するプロキシとして用いられ得る。この特殊化は、広告をウェブページに添付することである。
（５）問い合わせと広告（または広告に対するターゲット基準）の単語および概念の比較を行う。サーチエンジンでは、広告主は、しばしば「ターゲット基準」のセットを選択する。ターゲット基準がユーザの問い合わせに現れるとき、広告が提供される。これらの基準を有するこれらのテキスト（および広告そのもの）が、我々のモデルにおけるクラスタの使用によって、問い合わせと比較され得る。問い合わせから結果生じる検索ページ上に提供されるとき、この比較はどれ程広告がうまく遂行されているかに対するプロキシであり得る。
（６）２つの文書間の単語および概念の比較を行う。これは、文書の概念のクラスタ化に対する距離の測定基準として用いられ得る。ここで、同様な文書がグループ化される。
（７）クラスタの領域にテキストを発射する。このテキストにおけるクラスタの確率は、任意の分類タスクのための特徴として用いられ得る。例えば、クラスタ上にページのテキストを発射し、クラスタおよび単語を入力として用いる分類器を構築することによって、ポルノグラフィー用のフィルターが生成され得る。
（８）親クラスタが与えられているとき、ビットコストまたは単語およびターミナルのセットの確率を用いて、より多くの結果を取り出すようにウェブの問い合わせを一般化する。
（９）２つの単語によって生じた概念を考察することによって特定の単語が別の単語の綴り間違いであるかを推測する。
【０１７２】
局所的推論機構
グローバルノード上では、ルーピーを用いるが、ルーピー以外のアプローチを用いてローカルネットワークを解くことは可能である。このようなアプローチの利点は、これはアプローチがルーピーより速く、かつ、より正確に解決を見つけ出し得る。続く２つのセクションは、ローカルネットワーク上で用いられ得る代替の推測技術を詳述する。
【０１７３】
別のローカル推論機構
ローカルネットワークにおいて推論する別の方法は、ルーピーを実行する代わりに、問題に対して２つ、３つの優れた解決を探すことである。我々は、完璧にインスタンス化されたネットワークの領域を検索して、我々のネットワークに対する優れた解決のセットを見つけ出す。我々は、これらをまるでネットワークに対する解決の完全なる一覧表であると見なす。我々は、ルーピーが送信するものと同様なリンクメッセージを送信するが、我々が十分優れた解決のセットを考慮するとき、リンクメッセージはより正確である。我々のシステムの残りの部分は主に同じである。
【０１７４】
クラスタがオンまたはオフされるとき、我々は、即座にネットワーク全体の確率をアップデートし得、これらの確率のすべてが格納される（これは、インスタンス化の確率が多くの局所的条件的な確率のテーブルの積であるからである）ことに留意する。検索中に、履歴がネットワークにおける各クラスタに対して格納される。これは、我々が、結果的にリンクメッセージをより速く計算することを助ける。
【０１７５】
通常、完全なるインスタンス化を用いる我々の検索は、次のように進む。我々は、ＣＡＮＤＡＤＡ以外のすべてのクラスタを除くことから始める。我々は、個々のクラスタをオンまたはオフにすることによって局所的最適値に登坂（ｈｉｌｌ―ｃｌｉｍｂ）する。それから、ＣＡＮＡＤＡ以外の各クラスタノードに対しては、我々は、グローバル最適値から始める。我々は、そのノードの値をオンおよびオフし、固定されているそのノードの値を保持し、局所的最適値が到達されるまで、我々は残りのノード上を登坂する。処理の途中で、我々が新しいグローバル最適値を発見した場合には、我々はこのグローバル最適値を用いて、最初からやり直す。このようにして、ＣＡＮＡＤＡクラスタノード以外のそれぞれの各値を有する優れた解決を考慮することにより、我々は保証される。
【０１７６】
この方法の１つの利点は、検索が、実行の速度と正確さを交換するために任意に制限され得ることである。多くのテキストの分析の際には、我々のモデルが適切な時間内に戻るために、交換がしばしば実行の速度を優先して行われる。
【０１７７】
さらなる別の局所的推論機構
ローカルネットワークにおいて推論を行うもう１つの方法は、しばらくの間ルーピーを実行させ、それが即座に解決を見つけ出すかを確かめることである。ルーピーが即座に解決を見つけ出すとき、ローピーがより正確に解決を見つけ出すことを示す理論結果がある。この場合には、ルーピーが即座に解決を見つけ出さないとき、１つ以上のノードが「条件付き」であり得る。つまり、ルーピーが、これらの変数の真および偽の値の双方に対して実行される。ネットワークが、十分な条件付きであるとき、ルーピーは、より安定する。これは、ループの上または側面の条件付けが、（さまざまな理論的理由のために）ルーピーにおいてループしているメッセージの循環を破壊するからである。ルーピーが即座に解決を見つけ出すまでこの条件付けは再帰的に適用される。条件付きのルーピーを実行した後の結果は、さまざまな条件であり、それらさまざまな条件下では、すべてのリンクメッセージが既知である。
【０１７８】
残っているすべては、（通常は、条件が異なるので）相対的確率にそれらの条件を組み合わせ得ることである。我々が考案した１つの技術は、ルーピーがネットワークを見つけ出した後に、ネットワークのエントロピーの測定値（おおよそ、ネットワーク収束において残っているフリービットの数）およびネットワークのエネルギー（おおよそ、ネットワークが、前回の制限を破る量）を用いて、組み合わせの確率を推測することである。この概算は、我々が正しい順序でさまざまなリンクメッセージを組み合わせることを可能にする。我々のモデルの残りは、主に同じである。
【０１７９】
文書を特徴付ける処理
図２１は、本発明の実施形態に従って文書を特徴付ける際に関わるデータ構造を示す。これらのデータ構造は、オーダー１の確率テーブル２１０２、親テーブル２１０４、子テーブル２１０６およびリンクテーブル２１０８を含む。
【０１８０】
オーダー１の確率テーブル２１０２は、確率モデルにおける各ノードに対するエントリであって、ノードがアクティブであるオーダー１の（無条件的な）確率を概算するエントリを含む。従って、オーダー１の確率テーブル２１０２のエントリは、確率モデルによって生成された単語のセットにおいて、関連した単語またはクラスタがどれ程一般的であるかを示す。本発明の１つの実施形態において、オーダー１の確率テーブル２１０２はまた、各クラスタノードに対して「アクチベーション」であって、候補クラスタから別のノードへどれ程の数のリンクが発火する可能性があるのかを示すアクチベーションを含む。
【０１８１】
親テーブル２１０４は、確率モデルにおいて関連したノードを有する親を識別するエントリと、識別された親からのリンクの重みとを含む。
【０１８２】
同様に、子テーブル２１０６は、確率モデルにおいて関連したノードを有する子を識別するエントリと、識別された子からのリンクの重みとを含む。
【０１８３】
オーダー１の確率テーブル２１０２、親テーブル２１０４および子テーブル２１０６は、文書を特徴づける前に、確率モデルに対してあらかじめ計算される。それに対して、文書を特徴付ける処理中に、リンクテーブル２１０８は埋められる。
【０１８４】
リンクテーブル２１０８は、証拠として考えられるリンクに対するエントリを含み、一方で、エビデンスツリーを構築することが、図２２〜図２５を参照して以下に記載される。リンクテーブルの各エントリ２１０８は、関連する親ノードに対する識別子と同様に関連するリンクに対する重みを包含する。さらに、リンクテーブル２１０８は、以下に記載されるように親識別子によって格納され得る。
【０１８５】
図２２は、本発明の実施形態に従った特徴付け処理のフローチャートを示す。このシステムは、単語のセット（ステップ２２０２）を包含する文書を受信することによって開始する。この文書は、問い合わせからのウェブページまたは用語（単語）のセットを含み得ることに留意する。
【０１８６】
次に、このシステムは、単語のセットを生成する際にアクティブであり得  る「候補クラスタ」であって、確率モデルからその「候補クラスタ」のセットを選択する（ステップ２２０４）。この処理は、図２３を参照して、より詳細に記載される。候補クラスタのセットを選択することによって、このシステムは、それに続く計算において考慮されるクラスタの数を制限し、このことによって、文書を特徴付ける際に関わる計算の数を減らすことに留意する。
【０１８７】
このシステムは、それから、ベクトル（構成要素のセット）を構築して、文書を特徴付ける（ステップ２２０６）。このベクトルは、候補クラスタに対する構成要素を含む。ベクトルの各構成要素は、文書における単語のセットを生成する際に対応する候補クラスタのアクティブである度合いを示す。この処理は、図２４〜２５を参照して、より詳細に以下に記載される。
【０１８８】
最後に、このシステムは、この文書に関連する異なる動作を容易にするようにこのベクトルを用い得る（ステップ２２０８）。これらの使用のいくつかは、「モデルの使用」と題目された本明細書の先のセクションに記載される。
【０１８９】
図２３は、本発明の１つの実施形態に従った候補クラスタの選択をするための処理のフローチャートを示す。このフローチャートは、図２２のステップ２２０４を実行する際に伴う動作をより詳細に記載する。このシステムは、文書における単語のセットに関連したターミナルノードから始まり、親ノード続くリンクである「エビデンスツリー」を構築することにより始まる（ステップ２３０２）。ノードがエビデンスツリーの一部として選択されるとき、親ノードからそのノードへのリンクがリンクテーブル２１０８に挿入される。
【０１９０】
このエビデンスツリーを構築する処理中に、このシステムは、このエビデンスツリーを用いて、単語のセットを生成する際に各親クラスタがアクティブである可能性を推測する（ステップ２３０４）。より詳細には、本発明の１つの実施形態において、ターミナルノードを指し示すだけであるクラスタノードＣｉに対して、このシステムは、以下の公式を用いて、単語のセットを生成する際にＣｉが関わる可能性を推測する（我々は、この推測された可能性を「Ｃｉの推測（Ｇｕｅｓｓ  ｏｆ  Ｃｉ）と呼ぶ」。
【０１９１】
【数４】
0004465274.tif 000005
【０１９２】
この公式は、Ｃｉの推測が、Ｃｉのアクティブな子ノードｗｊからの条件的な確率寄与（Ｃｏｎｔｒｉｂｕｔｉｏｎ）の積によって乗算されたＣｉのオーダー１の確率であることを示す。この寄与の分子
【０１９３】
【数５】
0004465274.tif 000006
【０１９４】
は、Ｃｉのアクチベーションにおける推測によって乗算されたＣｉからｗｊへのリンクの重みである。Ｃｉのアクチベーションは、ノードＣｉより外のアクティブなリンクの数のインジケータであることを思い出してください。この寄与の分母
【０１９５】
【数６】
0004465274.tif 000007
【０１９６】
は、単語のセットにおける単語の数によって乗算されたｗｊのオーダー１の確率である。
【０１９７】
他のクラスタノードを指し示すクラスタノードＣ１では、公式がわずかに異なる。
Ｇｕｅｓｓ（Ｃｉ）＝Ｏ１（Ｃｉ）・Ｓｃｏｒｅ（Ｃｉ）
ここで
【０１９８】
【数７】
0004465274.tif 000008
【０１９９】
ターミナルだけを指し示すクラスタノードの場合には、Ｃｉの推測は、条件的な確率寄与の積によって乗算されたＣｉのオーダー１の確率である。しかしながら、これらの条件的な確率寄与は、子ノードｗｊと同様に他のクラスタＣｋからももたらされる。
【０２００】
子ノードからのこの寄与は、クラスタノードがターミナルだけを指し示す場合と同様である。
【０２０１】
【数８】
0004465274.tif 000009
【０２０２】
他のクラスタからの寄与は、より複雑なものであり、以下の公式である。
【０２０３】
【数９】
0004465274.tif 000010
【０２０４】
ここで、
【０２０５】
【数１０】
0004465274.tif 000011
【０２０６】
は、Ｃｉが与えられているとき、Ｃｋの条件的な確率であり、Ｐ（Ｃｋ）は、Ｃｋのオーダー１の確率であり、スコア（Ｓｃｏｒｅ）（Ｃｋ）は、Ｃｋの前もって計算されたスコアである。エビデンスツリーが上のターミナルより構築されるので、子ノードのスコアＣｋは、親ノードのスコア（Ｃｉ）が計算される前に、計算されることに留意する。
【０２０７】
本発明の１つの実施形態において、このシステムは、所定のクラスタノードに対する推測処理中に、ターミナルノードに印を付けてターミナルノードが一度より多く推測する際に考慮されないことを確実にする。
【０２０８】
最後に、このシステムは、これらの推測された可能性に基づいて、候補クラスタノードである親ノードを選択する（ステップ２３０６）。この「親選択」処理の最後に、このシステムは、アクチベーションとともに考慮される候補クラスタのセットを有する。
【０２０９】
図２４は、本発明の実施形態に従った候補クラスタに対する確率を概算する処理のフローチャートを示す。先ず、このシステムは、確率モデルに対する状態であって、単語のセットを生成したと思われる状態を選択する。
【０２１０】
次に、このシステムは、ベクトルを構築する。このベクトルは、候補クラスタに対する構成要素を含む。こられの構成要素のそれぞれは、単語のセットを生成する際に、対応する候補クラスタがアクティブである可能性を示す。構成要素を推測するために、関連した候補クラスタが単語のセットを生成する際に、このシステムはアクティブである確率を概算する際に選択された状態だけを考慮する（ステップ２４０４）。
【０２１１】
より詳細には、本発明の１つの実施形態において、このシステムは、所定の構成要素Ｖｉのベクトルであって、クラスタノードＣｉに関連したベクトルを計算する。公式は、以下のとおりである。
【０２１２】
Ｖｉ＝Ａｃｔｉｖａｔｉｏｎ（Ｃｉ）×Ｐ（Ｃｉ），
ここで、アクチベーションＣｉは、ノードＣｉが発火するとき、発火するリンクの数のインジケータである。Ｐ（Ｃｉ）は、文書における単語のセットを生成する際に、Ｃｉがアクティブである確率である。
【０２１３】
Ｐ（Ｃｉ）は以下の通りに計算され得る。
【０２１４】
【数１１】
0004465274.tif 000012
【０２１５】
この公式は、Ｐ（Ｃｉ）は、探索されたネットワークに対するすべてのネットワーク確率の合計によって除算されてアクティブである発見されるＣｉにネットワークに対するネットワーク確率の合計であることを示す。
【０２１６】
所与のネットワーク状態が起こっている確率は、以下のよう計算され得る。
【０２１７】
【数１２】
0004465274.tif 000013
【０２１８】
この確率は、「オン」であるノードからの寄与を含む。より詳細には、所与のネットワークにおけるオンである各ノードｊに対して、このシステムは、（アクティブな親ノードから）ｊへの少なくとも１つのリンクが発火する確率を計算する。これは、１から、アクティブな親ノードからｊへのリンクが発火しない確率を差し引いたものである。ここで、アクティブなノードからのリンクが発火しない確率は、１からリンクの重みを差し引いたものである。
【０２１９】
この確率はまた、「オフ」であるノードｋからの寄与を含む。オフである所定のノードｋに対して、この寄与は、リンクが、アクティブなノードｉからｋを差し示さない確率であり、これは、単純に、１からリンクの重みを差し引いたものの積である。
【０２２０】
図２５は、本発明に従って確率モデルに対する状態がどのように選択されるのかを示す。このフローチャートは、図２５のステップ２４０２に伴う計算作業をより詳細に記載する。状態を選択する際に伴う計算作業の量を制限するために、本発明の１つの実施形態は、文書における単語にセットに関連した候補クラスタノードおよびターミナルノードだけを考慮する。
【０２２１】
このシステムは、確率モデルに対する開始状態をランダムに選択することによって開始する（ステップ２５０２）。各開始状態は、確率モデルにおいてどのノードがアクティブであって、どのノードがアクティブでないのかを示す。普遍ノードが、発火される候補クラスタの任意のサブセットをトリガーし得るので、任意の開始状態が可能であることに留意する。
【０２２２】
また、確率モデルにおけるリンクの重みは、文書における単語にセットを生成する際に、他の状態より、より可能性のある状態を作ることに留意する。従って、ランダムな開始状態は文書における単語のセットを生成したであろう可能性はない。より可能性のある状態を見つけ出すために、このシステムは、文書における単語のセットを生成したであろう状態に到達するように「登坂」動作を行う（ステップ２５０４）。既知である多数の登坂動作がこのために用いられ得ることに留意する。登坂動作は、通常、特定の目的関数の値を増加させる態様でシステムの状態を変化させる。この場合には、この目的関数は、上述される、起こっている所定のネットワークの状態の確率（Ｐｎｅｔｗｏｒｋ）である。
【０２２３】
本発明の１つの実施形態において、このシステムは、目的関数に関わらず複数の登坂動作との間で個々の候補クラスタンの状態を周囲的に変化させる。このようなことを行う際には、このシステムは、変化された状態が引き続く登坂動作中に変化しないように変化された状態を固定する。これは、変化されて状態を含む目的関数に対する局所的最適値を生成し、その変化された状態は、さもなくば、登坂動作だけを介して到達不可能である確率モデルの状態を探査することをシステムに可能にする。
【０２２４】
本発明の実施形態の先述の記載は、例証と説明だけのために提示されている。それらは、完全である、または、開示された形式に本発明を限定することを意図されない。従って、多くの改良および変形が当業者には明らかである。さらに、上記の開示は、本発明を制限することを意図されない。本発明の範囲は、添付の請求項によって定義される。
【図面の簡単な説明】
【０２２５】
【図１】図１は、本発明の１つの実施形態に従った確率モデルを示す。
【図２】図２は、本発明の１つの実施形態に従った確率モデルの状態を示す。
【図３】図３は、本発明の１つの実施形態に従ったアメリカ合衆国の州を表しているモデルを示す。
【図４】図４は、本発明の１つの実施形態に従ったグローバルノードおよびローカルネットワークの数を示す。
【図５】図５は、ローカルネットワークノードとグローバルモデルノードとの間の相互作用を示す。
【図６】図６は、本発明の１つの実施形態に従って修正されたモデルを示す。
【図７Ａ】図７Ａは、本発明の１つの実施形態に従った２つのブールノードを有する単純なネットワークを示す。
【図７Ｂ】図７Ｂは、本発明の１つの実施形態に従った２つのブールノードを有する単純なネットワークにおいて、どのように推測が動作するかを示している。
【図８】図８は、本発明の１つの実施形態に従ったローピーが機能しなくなるノイジー―オアネットワークを示す。
【図９】図９は、本発明の１つの実施形態に従った単純なセッション内のルーピーの計算を示す。
【図１０】図１０は、本発明の１つの実施形態に従った簡略化されたローカルネットワークを示す。
【図１１】図１１は、本発明の１つの実施形態に従ってターミナルをトリガーするように競う２つのクラスタを示す。
【図１２】図１２は、本発明の１つの実施形態に従ってランタイム時のレキシキンにおいて、ローカル確率ネットワークが複合語をどのうように複合的に処理するかを示す。
【図１３】図１３は、本発明の１つの実施形態に従った「ターミナルの希薄」を介してグローバルノードへ、単一のクラスタＣがどのように仮想メッセージを発行するかを示す。
【図１４】図１４は、本発明の１つの実施形態に従った新しいグローバルノードの最適な設定を明らかにする際に、希薄なリンクメッセージがどのように用いられるかを示す。
【図１５−１】図１５．１は、本発明の１つの実施形態に従った確度ネットワークを示す。
【図１５−２Ａ】図１５．２Ａは、本発明の１つの実施形態に従った例示的なネットワークを示す。
【図１５−２Ｂ】図１５．２Ｂは、本発明の１つの実施形態に従った代替の例示的なネットワークを示す。
【図１６】図１６は、本発明の１つの実施形態に従ったシステム出力を示す。
【図１７】図１７は、本発明の１つの実施形態に従ったさらなるシステム出力を示す。
【図１８】図１８は、本発明の１つの実施形態に従ったまたさらなるシステム出力を示す。
【図１９】図１９は、本発明の１つの実施形態に従ったまた別のさらなるシステム出力を示す。
【図２０】図２０は、本発明の１つの実施形態に従った検索の結果を示す。
【図２１】図２１は、本発明の１つの実施形態に従って文書を特徴付ける際に関わるデータ構造を示す。
【図２２】図２２は、本発明の１つの実施形態に従った特徴付け処理のフローチャートを示す。
【図２３】図２３は、本発明の１つの実施形態に従ってクラスタを選択する処理のフローチャートを示す。
【図２４】図２４は、本発明の１つの実施形態に従って候補クラスタに対する確率を概算する処理のフローチャートを示す。
【図２５】図２５は、本発明の１つの実施形態に従って、確率モデルに対す状態がどのように選択されるのかを示す。
【図２２】
0004465274.tif 000014
【図２３】
0004465274.tif 000015
【図２４】
0004465274.tif 000016
【図２５】
0004465274.tif 000017
【図６】
0004465274.tif 000018
【図７Ａ】
0004465274.tif 000019
【図７Ｂ】
0004465274.tif 000020
【図８】
0004465274.tif 000021
【図９】
0004465274.tif 000022
【図１０】
0004465274.tif 000023
【図１２】
0004465274.tif 000024
【図１６】
0004465274.tif 000025
【図１７】
0004465274.tif 000026
【図１８】
0004465274.tif 000027
【図１９】
0004465274.tif 000028
【図２０】
0004465274.tif 000029
【図１】
0004465274.tif 000030
【図２】
0004465274.tif 000031
【図３】
0004465274.tif 000032
【図４】
0004465274.tif 000033
【図５】
0004465274.tif 000034
【図１１】
0004465274.tif 000035
【図１３】
0004465274.tif 000036
【図１４】
0004465274.tif 000037
【図１５−１】
0004465274.tif 000038
【図１５−２Ａ】
0004465274.tif 000039
【図１５−２Ｂ】
0004465274.tif 000040
【図２１】
0004465274.tif 000041