JP4465274B2 - 関連する単語のクラスタに基づいて、文書を特徴付けるための方法および装置 - Google Patents

関連する単語のクラスタに基づいて、文書を特徴付けるための方法および装置 Download PDF

Info

Publication number
JP4465274B2
JP4465274B2 JP2004541690A JP2004541690A JP4465274B2 JP 4465274 B2 JP4465274 B2 JP 4465274B2 JP 2004541690 A JP2004541690 A JP 2004541690A JP 2004541690 A JP2004541690 A JP 2004541690A JP 4465274 B2 JP4465274 B2 JP 4465274B2
Authority
JP
Japan
Prior art keywords
node
cluster
words
probability
active
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2004541690A
Other languages
English (en)
Other versions
JP2006502480A (ja
Inventor
ゲオルゲス ハーリク,
ノーム エム. シャジール,
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of JP2006502480A publication Critical patent/JP2006502480A/ja
Application granted granted Critical
Publication of JP4465274B2 publication Critical patent/JP4465274B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/35Clustering; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/313Selection or weighting of terms for indexing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/35Clustering; Classification
    • G06F16/353Clustering; Classification into predefined classes
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99935Query augmenting and refining, e.g. inexact access
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Machine Translation (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、テキスト文書上で問い合わせを行う技術に関する。より詳細には、本発明は、概念的に関連した単語のクラスタに基づいてテキスト文書を特徴付けるための方法および装置に関する。
(関連技術)
根底にある意味(セマンティック)をとらえる方法でテキストを処理することは、しばしば行われているが、不明点が多い作業である。この機能は、もっとも頻繁にサーチエンジンのからみで行われている。サーチエンジンは、ユーザにより問い合わせに対してあるレジストリにおける文書を一致させようと試みる。これはまた、時々、例えば、同様な内容を有する文書を見つけ出すために図書館のような他の情報ソースによって用いられる。一般的に、テキストの意味を理解することは、このようなシステムの大変有用な一部の構成要素である。あいにく、過去に書かれた大半のシステムは、基本的な理解しか有せず、テキストに用いられている単語にだけに着眼し、単語の背後にある意味には着眼していない。
例として、カリフォルニアのパロアルト(palo alto)にある料理教室(cooking class)を見つけたいユーザの動作を考える。このユーザは、一般的なサーチエンジンに単語のセット「cooking classes palo alto」を打ち込む。サーチエンジンは、一般的に、ウェブページ上でこれらの単語を探し、このようなページについての情報と他の情報とを組み合わせて、候補結果をユーザに戻す。現在では、サーチエンジンは、単語「class」と「classes」とが関連していることを知らない(なぜなら、1つが別の1つの下位部分(ステム)である)ので、文書が、単語「cooking classes palo alto」を有するとき、主要なサーチエンジンのいくつかは、この単語を見つけ出せない。
ステム構成要素を有する代表的なシステムで試みが行われたが、実質的な成功は収めなかった。これは、なぜならステムが特定の文脈で用いられ得るか否かを決定する課題が難しいからである。このことは、ステムされるべき単語自身よりむしろテキストにおける他の近く単語によってより決定され得る。例えば、ある人がJames Bondの映画「for your eyes only」を探すとき、その単語「for your eyes only」を有して返された結果は、それ程良くないかもしれない。
一般的に、現在のサーチエンジンシステムおよび他のこのような意味的な処理をするシステムは、テキストの背後にある大半の意味を捉えることに失敗してきた。
それゆえ、テキスト内のその根底にある意味を効率的に捉える態様で処理をする方法および装置が必要される。
(概要)
本発明の1つの実施形態は、システムが概念的に関連した単語のクラスタに対して文書を特徴付けることを提供する。単語のセットを包含する文書を受け取ると、このシステムは、単語のセットに関連する概念的に関連した単語の「候補クラスタ(candidate cluster)」を選択する。この単語のセットが概念的に関連した単語のクラスタからどのように生成されるのかを説明するモデルを用いて、これらの候補クラスタが選択される。次に、このシステムは、文書を特徴付けるように(ベクトルといった)構成要素のセットを構築する。構成要素のセットは、候補クラスタに対する構成要素を含む。この構成要素のセットにおける各構成要素は、対応する候補クラスタが単語のセットに関連付けられている度合いを示している。
本実施形態の1つの変形において、モデルは、確率モデルであり、この確率モデルは、単語に対するランダムな変数であって、概念的に関連した単語のクラスタに対するランダムな変数を表しているノードを包含する。
さらなる変形において、構成要素のセットにおける各構成要素は、単語のセットを生成する際の、対応する候補クラスタのアクティブの度合いを示している。
さらなる変形において、確率モデルにおけるノードは、重み付けられたリンクによってともに結合されており、この確率モデルにおけるクラスタノードが発火するとき、クラスタノードから他のノードへの重み付けられたリンクが他のノードに発火させ得。
さらなる変形において、アクティブである複数の親ノードを有するノードがあるとき、ノードが発火しない確率は、このアクティブな親ノードからの複数のリンクが発火しない確率の積である。
さらなる変形において、確率モデルは、常にアクティブであり、かつ、すべてのクラスタノードに対する重み付けられたリンクを有する普遍ノードを含む。
本実施形態の1つの変形において、候補クラスタを選択することは、文書における単語のセットに関連付けられたターミナルノードで始まり、かつ、親クラスタノードとは反対方向に向かうリンクに続くエビデンスツリーを構築することと、このエビデンスツリーを用いることにより、この単語のセットを生成する際に、各親クラスタノードがアクティブである可能性を推定することと、その推定された可能性に基づいて候補クラスタノードでき親クラスタノードを選択することとを伴う。
本実施形態の1つにおいて、単語のセットを生成する際に、所与の親ノードがアクティブである可能性を推定することは、所与の親ノードがアクティブである無条件的な確率と、この所与の親ノードの親ノードがアクティブであると仮定した際に、この所与の親ノードがアクティブである条件的な確率と、この所与の親ノードの子ノードがアクティブであると仮定した際に、この所与の親ノードがアクティブである条件的な確率とを考慮することを伴い得る。
さらなる変形において、条件的な確率を考慮することは、複数のノードの間のリンク上の重みを考慮することを伴う。
さらなる変形において、単語のセットを生成する際に所与の親ノードがアクティブである可能性を推定することは、推定処理中に、ターミナルノードにマークを付けて、ターミナルノードが1度より多く推測する際に計算に入れられないことを確実にすることを伴う。
さらなる変形において、エビデンスツリーを構築することは、このエビデンスツリーから可能性の低いノードを取り除くことを伴う。
本実施形態の1つの変形において、構成要素のセットの構築中に、単語のセットを生成する際の候補クラスタのアクティブの度合いは、この単語のセットを生成する際に候補クラスタがアクティブである確率を計算することによって決定される。
本実施形態の1つにおいて、構成要素のセットの構築中に、単語のセットを生成する際の候補クラスタのアクティブの度合いは、この単語のセットを生成する際に候補クラスタがアクティブである確率とこの候補クラスタに対するアクチベーションとを乗算することによって決定され、このアクチベーションは、この候補クラスタから他のノードにどれだけの数のリンクが発火する可能性があるのかを示す。
本実施形態の1つの変形において、構成要素のセットを構築することは、この構成要素のセットを標準化することを伴う。
本実施形態の1つの変形において、構成要素のセットを構築することは、所与の候補クラスタが単語セットを生成できたはずである確率モデルの状態上でアクティブである確率を概算することを伴う。
さらなる変形において、確率を概算することは、文書において単語のセットを生成した可能性があった確率モデルに対する状態を選択することと、選択された状態だけを考慮し、一方で、前記所与の候補クラスタがアクティブである確率を計算することとを伴う。
さらなる変形において、単語のセットを生成した可能性のあった状態を選択することは、確率モデルに対するスタート時の状態をランダムに選択することと、この単語のセットを生成した可能性のあった状態に到達するようにこのスタート時の状態から登坂動作を行うこととを伴う。
さらなる変形において、登坂動作を行うことは、登坂動作に対する目的関数に関わらず個々の候補クラスタの状態を周期的に変化させることにより、さもなくば、登坂動作を介して到達不可能である確率モデルの状態を探ることを伴う。
本実施形態の1つの変形において、文書は、ウェブページ、または問い合わせからの用語のセットを含む。
以下の記載は、当業者が本発明を作成し、用い得るように提示され、かつ、特定の用途およびその要求条件の文脈において提供される。開示されている実施形態のさまざまな改良が当業者には容易に明らかになり、ここで定義される一般的な原理が、本発明の精神および範囲を逸脱することなく、他の実施形態および用途に適用される。従って、本発明は、示されている実施形態に限定されることを意図されず、ここで示されている原理および特徴に一致する最も広い範囲が許容されることを意図される。
この詳細な記載に記述されるデータ構造およびコードは、一般的に、コンピュータ読み取り可能格納媒体に格納されている。コンピュータ読み取り可能格納媒体は、コンピュータシステムによって用いられるコードおよび/またはデータを格納し得る任意のデバイスまたは媒体であり得る。このことは、これに限定されないが、ディスクドライブ、磁気テープ、CD(コンパクトディスク)およびDVD(デジタル多用途ディスク)といった磁気および光記憶装置デバイス、ならびに(信号が変調される搬送波の有無に関わらず)送信媒体に統合されるコンピュータ命令信号を含む。例えば、送信媒体は、インターネットといった通信ネットワークを含む。
システム
本発明の1つの実施形態は、例示的なモデルのテキストを学習することによって概念を学習するシステムを提供する。このシステムから見て、わずかなテキストが、確率ネットワークの実行を介してかなり単純ではあるが、信じられない程強力な態様で生成される。このシステムは、わずかなテキストを有する多くの例を調べることによってこのネットワークのパラメータを学習する。
このシステムの1つの実施形態は、テキストの一部分における重要な情報をテキストに用いられる単語(および複合語)であるとみなす。例えば、「cooking classes palo alto」の問い合わせでは、単語は、「cooking」および「classes」であり、この複合語は、単純な複合語「palo alto」から成る。単語から複合語を区別することが組成に基づいてされる。例えば、「cooking classes」は、複合語ではない。なぜなら、その単語は、ともに料理(cooking)およびクラス(classes)に関するものだからである。しかしながら、「palo alto」は、別々に「palo」と「alto」についてではない。このことが、ときどき区別をすることを難しくするが、良い推測を行うことにより、全く推測を行わないより、このようなシステムを良くする。
このことが意味することは、このシステムはテキストにおける単語の順序を考慮することなくテキストの分析を簡略化することである。例えば、本発明の1つの実施形態は、上述と単語「palo―alto cooking classes」(複合語の構成要素を結合するためにこの詳細ではダッシュを用いる)を区別しない。我々は、単語および複合語の双方を「ターミナル」と呼ぶ。(我々は、後ほどこれを考察する、なぜなら、我々のモデルの世界において、ターミナルは、概念とは対照的に単語を生成しない。概念が単語を生成する。)この簡略化は、このシステムが、テキストのセグメントをターミナルのセットとして見なしていることを意味する。
ターミナルのセットとしてのテキストの生成のための確率モデル
単語のセットとしてテキストを生成したシステムがどのようなものであるか参照する。図1は、1つのこのようなモデルを示す。ここでは、円は、モデルノードと呼ばれる。これらのノードは、ランダムな変数を表しており、各ランダムな変数は、概念またはターミナルの存在性または非存在性をモデル化する。このモデルにおいて我々が考慮するターミナルは、「」、「灰色」および「空」だけである。CとCと呼ばれる2つの概念がある(なぜなら、これらは、関連した単語を生成するように用いられるため、概念は、時々クラスタと呼ばれる)。
例えば、このモデルは、なぜ灰色および空という単語が頻繁に一緒に起こるのか、なぜ灰色およびという単語が頻繁に一緒に起こるのか、しかし、なぜ「」および「空」という単語がまれにしか一緒に起こらないのかを説明するように用いられ得る。なぜなら、これは人々がこれらの単語を有するテキストを生成するとき、人々が考えとして頭の中で考えるからである。このシステムの概念は、この概念がテキストを生成する前に、人の頭の中にある考えをモデル化することになっている。
一番上にある名前のない図の、より濃い色のノードに留意する。これは、普遍(universal)ノードUであり、常にアクティブである。テキストをモデル化するとき、普遍ノードUは、常にアクティブであり、すべての概念は、そこから来る。概念から出でいる矢印は、リンクと呼ばれる。これらのリンクは、ユーザが1つの概念を考えるとき、彼らは後程、別の概念を考えるか、別のターミナルを書き留める可能性を意味する。例えば、概念Cは、「」および「灰色」という単語にリンクする。これは、ユーザがCを考えるとき、彼らは、頻繁に「」および/または「灰色」という単語を書き留めることを意味する。特に、リンク上の数は重要である。それらは、あるイベントの確率を表している。Cと「」との間のリンクは、ユーザがCを考えた後、確率0.5でという単語を考えることを意味する。これらの数は、しばしばリンク上の「重み(weight)」と呼ばれる。
このモデルは、テキストを生成するように用いられ得、つまり「実行」され得る。我々がこのことを行うとき、我々は、(しばしばUと呼ばれる)普遍ノードから始め、それを生成するものの頭の中に思い浮かぶであるとみなす。我々は、しばしば、このことを意味するためにノードが「アクティブ」である、またはノードが「発火」したと言う。概念にとって、発火することは、その概念の考えがアクティブであり、ターミナルを発火し得ることを意味する。ターミナルにとって、発火するという考えは、ターミナルが生成されるべきテキストに存在することである。
このようなテキストの1つがどのように生成され得るか、例を参照して見る。図1の例では、我々は、「普遍」(Universe)がアクティブであると仮定することにより始める。それから、Cは、確率0.1で発火する。この点において、いくつかのランダムな処理がCを発火するのか否かを決定する。このランダムな処理に対して、あなた方は、さいを振り得るし、またはランダムな情報を用い得る。通常、このことが計算機械上で起こっているとき、ランダムナンバー生成器が用いられ得る。決定を生成するある方法を我々が有しているかぎりは、多数の方法が適する。結果は10回のうちの9回は、no(0.9)であり、10回のうち1回はyes(0.1)である。決定がyesであるとき、概念Cがアクチベーションされる。noであるときは、Cはアクチベーションされない。同様な処理がCに適用される。
例示のために、ランダムナンバー生成器がリンク普遍→Cに対してYES、そしてリンク普遍→Cに対してNoを生成したと仮定する。この点では、Cはアクティブである。概念がアクティブであるとき、このアクティブな概念から出ているリンクを有する他の概念またはターミナルに対して、我々はランダムな数を選び得る。この例では、「」および「灰色」という単語は、それぞれ確率0.5および0.4でアクティブになる可能性を有する。我々がより多くランダムな数を取得し(簡単な類似を行うために、これをさいを振ると呼び)、および灰色がともにアクティブであると仮定する。これは、我々がわずかなテキストを有することを意味し、それは「」および「灰色」という単語である。本発明の1つの実施形態において、単語の順序はモデル化されていないので、我々は(それらが複合語を形成しない限りは)、「灰色・」と「・灰色」とを区別することはできない。このようにして、我々は、わずかなテキストを生成した。
図2は、図1に詳述されるモデルのこの特定の実行を示す。この図では、我々はアクティブになる概念Cを考察し、ノードを濃くすることによって、グラフィック的にこれを示す。および灰色という単語はアクティブになる。システムが正常に動作しているかを確認するために1つのテキストを有する実行モデルをグラフィック的に見るこの考えはシステム全体を調べる観点から重要である。我々はこれを後程用いる。
灰色・を生成するために、このことは、多くの作業であるように思われる。しかしながら、我々が思いつく単語は、人としての我々にとってある意味を有することに留意する。なぜなら、これは、が灰色であるからである。小さな方法であるが、図1におけるこのモデルでさえ、世界の状態について少しとらえている。表面上だけではあるが、このモデルは、と空という単語ではなく、灰色とという単語、灰色と空という単語との相関関係をとらえている。
我々のシステムは、わずかなテキストにおいて単語と複合語の共起性を説明するために中間的な概念、リンクおよびリンクの重みを学習する。加えて、この生成モデルは、さまざまなサイズのテキストを、より生成し、かつ、説明するために上述のものよりわずかに複雑である(例えば、問い合わせは、多くの場合2語〜3語であり、一方、文書は、およそ1000語である)。
さまざまなサイズのテキストを調整する
さまざまな理由のために、上記の単純なタイプのモデルは、テキストを処理するためにわずかながら適していない。これに対する簡単な説明としては、概念のそれぞれはある数の単語を生成するが、例えば、リンク上の重みが小さいとき、多くの単語を生成することが、より難しくなることである。例えば、概念が指し示すターミナルから、わずか、または多くの単語のいずれかを生成し得ることが所望される。
図3は、アメリカ合衆国を表している概念の例を示す。我々の先のモデルに続いて、概念は、50州のそれぞれを表しているターミナルを発火し得、それぞれの確率は、1/50である。ここで、このモデルに対して、カリフォルニアという単語だけを生成することは、それ程起こり得ないことではない。この確率は、約(1/50)×(49/50)49であり、およそ0.7%である。この概念に対して、すべての州を発火することは、(1/50)50であり、信じられない程低い。しかしながら、我々がアメリカ合衆国の州の考えを網羅するこのような概念を発達させるなら、我々はすべての州がおこるテキストを概念が説明することを所望する。
この問題に対処するために、概念が他のターミナルを発火する前に、各概念はアクチベーションレベルを選ぶ。概念的に、このアクチベーションレベルは、「どれだけの数」のターミナルがこの概念から選ばれるべきかを選択する。このアクチベーションレベルは、我々のモデルにとって重要ではないことに留意する。実際には、アクチベーションレベルはモデルが実行されているとき選択されるだけである。アクチベーションが行うことは、この概念がターミナルのそれぞれを発火する確率を修正することである(従属概念ではない。つまり概念から概念のリンク付けは、アクチベーションによって影響されない)。
正確な数値の調整は、以下の通りであり得る。リンクが重みWを有し、クラスタがその実行の際にアクチベーションAを選択し、かつ、リンクが概念とターミナルとの間を示すとき、概念は確率(1−e−AW)でターミナルを発火する。ここで「e」は、一般的な数字およそ2.71である。一瞥したところでは、この公式は妙に思えるが、これは、以下の申し分のない特質を有する。Wが大変小さく(<0.01)、かつ、Aが小さな数(例えば、2)であるとき、確率はおよそAWに等しい。従って、これらの数は、一般的に容易に概算される。これらが妙な指数形式を有する理由は、確率が上限の1を有すべきであるからである。従って、0.02(1/50)のリンクの重みおよび100のアクチベーションを有しても、確率2.0は得られない。指数形式はまた、数学的な観点からすると、多くの他の申し分のない理論的特性を有する。
この点では、我々は、我々のモデルが含むほとんどすべての個々の部分を詳述した。詳細の1つは、同一のターミナルまたはクラスタを発火しようとする2つ以上のクラスタの間の相互作用である。この場合には、各相互作用は、それぞれで独立している。特に、結果的に発火しない確率は、各原因がそれを発火しない確率の積である。例えば、3つのクラスタC、C、Cが、重み0.1、0.2、0.3を有して、第4のクラスタCにリンクし、かつ、C、CおよびCがアクティブであるとき、Cは、(1−0.1)×(1−0.2)×(1−0.3)または(0.9)×(0.8)×(0.7)、つまり0.504の確率で発火しない。従って、発火する可能性は、1−(1−0.1)×(1−0.2)×(1−0.3)、つまり1−0.504=0.496である。
我々が言及していない別のことは、アクチベーションが選択される事前確率である。モデルを学習すると、このことに対して、あまり敏感でないことが分かる。そこで、アクチベーションは、∃1に制約される。1/Alog×Aに等しい確率は、アクチベーションの事前確率である(ここで、log×A=AlogAloglogAlogloglogA...)。これはテキストを生成するためだけに重要である。このために、ベースモデルからおおよそ正確な数の単語を生成する分布は適切であるべきである。
ベイジアンネットワーク
先に進む前に、ここで、我々が話しているモデルと、ベイジアンネットワークと呼ばれる確率モデルのあるクラスとの間の双対関係について記述する価値がある。
ベイジアンネットワークは、汎用的な確率モデル化技術であり、条件的な独立が結合分布におけるさまざまなランダムな変数の間で行われる。上記のモデルのように、ベイジアンネットワークは、ノードおよび方向をもったリンクを有する。これらのネットワークは、多くのランダムな変数上の結合分布を簡潔に表しており、一方これらの変数について条件的な独立の仮定を構造的に表している。
ベイジアンネットワークでは、ノードを指し示しているノードのセットは、「親」と呼ばれる。以下のリンクを介してノードから到達可能なノードのセットは「子孫」または「子」と呼ばれ、親を与えられるとき、この構造はノードがその子孫から(non−descendant)から独立していることを意味する。従って、親を与えられるとき、全体の分布は、子の条件的な確率テーブルにエンコードされる(親を持たないノードは、それ自身の分布を有する)。ネットワーク全体の特定のインスタンス化の確率は単純に親を与えられたときのそれぞれの子の確率の積である。
ベイジアンネットワークは、我々のモデルと以下の点で関連している。我々のモデルを実行する際に各ノードがランダムな変数と考えられるとき、オンされるノードのセット上の結合分布は、我々のモデルをノイジー―オア(noisy―or)組み合わせ関数を有するベイジアンネットワークとして考えられる際に起こるもの一致する。ノイジー―オアの条件的な確率は、それぞれの親とは独立しているブールの子をオンする。つまり、子がオフである確率は、それぞれの親が発火しない確率の積である。これは、正に、ターミナルにリンクする複数のアクティブの概念が、そのターミナルを発火するかどうかを決定する我々のモデルに用いられるこの組み合わせ関数、であることに留意する。ベイジアンネットワークは、それ自身が、より一般的な確率モデルのサブクラスであることに留意する。
学習
この点では、我々は、現存のモデルがどのようにテキストを生成するように用いられたかを考察した。我々は、この作業のいくつかの側面を詳述しなかった。(1)我々のモデルはどのように学習されるのか(2)我々のモデルは、テキストに存在している概念をどのように推測するために用いられるか、および(3)我々のモデルは、実際的な状況でどのように用いられるか。このセクションでは、我々は、我々のモデルがどのように学習されるのかということと、このために用いられ得る様々な技術を詳述する。
テキストの生成モデルを学習する際には、本発明の1つの実施形態において、テキストのいくつかのソースが選択されるべきである。このような選択の際に考慮することは、以下のことである。(1)意味的に似ている関連した単語であること(2)我々が学習しようとするモデルが与えられているとき、独立している証拠を提示すること(後ほどより詳細に)(3)異なる種類のテキストに関連していること。この理由のために、続くモデルのインプリメンテーションは、わずかなテキストとして、サーチエンジンの例示的な「問い合わせセッション」を用いる。我々はまた、我々のモデルをウェブページおよび他のソースのテキスト上でインプリメンテーションし、実行させるが、この説明をより具体的にするために、我々は、問い合わせセッションの分析に重点を置く。
より明確にするために、我々は、問い合わせセッション(ユーザセッションまたはセッションとも呼ばれる)を、一日、サーチエンジン上で単一のユーザによって用いられる単語のセットと定義する。ユーザは、しばしば関連資料を検索し、特定のトピックに関して連続して、いくつかの問い合わせをする。ときどき、これらの問い合わせが他のランダムなトピックとともに点在している。問い合わせセッションの例は、(実際のものでなないにしても)以下のようなものである。
卒業(the graduate)
ダスティン・ホフマン(dustin hoffman)
レインマン(rain main)
自閉症(autism)
クールジャンク(cool junk)
高速車(fast cars)
トム・クルーズ ニコール・キッドマン(tom cruise nicole kidman)
ここでの各問い合わせは、別々の行の上にある。大半の単語がある点で関連している。第1の単語および第3の単語は、ダスティン・ホフマン出演の映画である。第2の単語は、ダスティン・ホフマン自信である。第4の単語は、映画で取り上げられた問題に関する。第5の問い合わせの「ジャンククール」は、このセッションのメイントピックに関連していない。第6の単語も同様である。最後の単語は少し関連している。なぜなら、トム・クルーズは、レインマンの中でダスティン・ホフマンと競演した。一般的に、このようなテキストにおいても多くの情報があり、我々は、これらを用いて推論することができる。しかしまた、多くの相互に関連していないジャンクもある。我々のシステムの主なタスクは、大量(億もの)のこのようなテキストを考察する一方で、ジャンクから適切な関連性のあるものを選択することである。
問い合わせの際に一緒に起こるすべての単語を説明し得る確率モデルを学習することは難しい。上述のセッションの説明の際に、我々は問い合わせセッションを説明ために世間一般について我々が有する情報を用いたことに留意する。これが上記のセッションで、より起こり得る世界のモデルを見つけ出すために我々のモデルが学習する情報の本質である。以下はこのようなアプローチである。
我々はモデルが何であるのか分からないが、我々は、多くの概念が存在することを理解していると仮定する。確率ネットワークは、それ自身でこの不確実性を表すように用いられ得る。概念と別の概念またはターミナルとの間の各リンクを表しているノードが導入される。これらの種類のノードは、グローバルノードと呼ばれ、それらは、モデルについての我々の不確実性を表す。
これらのグローバルノードは、上記のモデルノードとは異なる。実際、グローバルノードは、モデルノードおよびリンクに関しての不確実性を表しているからである。ここで、テキスト(ユーザセッション)の各部分に対して、我々はモデル全体を複製して、ローカルネットワークを作成する。各モデルノードの複製は、ローカルノードと呼ばれ、これらのノードは、このテキストに導く概念が特定の実行に対して存在するか否かに関して我々の不確実性を表している。我々のモデルを学習するために、我々は、我々のモデルに関して我々のすべての不確実性を考慮にいれなければならず、最適なモデル、または我々がさらに処理し得るモデルのセットを見つけ出すためにある推理をしなければならない。
図4は、この大きなネットワークがどのようなものであるかを示す。点線より上は、グローバルノードであり、それらは我々のモデルに関しての不確実性を表している。ノードU→Cは、このモデルにおけるUとCとの間のリンクの重みに関しての不確実性を表している。(Uは、常にアクティブである普遍ノードに対する我々の名前であることを思い出してください。)同様に、U→T、C→C、C→T等もそうである。我々のモデルは、すべてが他のすべてにリンクすることが可能にさせないことに留意する。これは、普遍Uから起こるすべての考えに対して一貫した説明をするため、リンク構造におけるサイクルが可能でないだからである(例えば、UがCおよびにCにリンクしないときでさえ、概念Cを引き起こし得る概念Cを引き起こし得る概念Cは、常にCとCとを可能性のあるものし得る。)この理由のために、概念は、それ自身より大きい番号が付けられた概念にのみリンクすることが可能であり、普遍的な概念はすべてにリンクし得る。
点線より下は、ローカルネットワークである。各ネットワークでは、特定のユーザセッションに対してターミナルがアクティブであると仮定される。我々のモデルがこのような各セッションに対して複製されていることに留意する。これは、なぜなら我々がセッションに対して観測しているのはユーザが用いた単語だけであり、それらの単語が起こったとき、実際ユーザの頭の中でアクティブであった概念でないからである。ここでのローカルノードは、こられの概念に関しての我々の不確実性を表している。なぜなら、ユーザは、彼らが記述する各単語を記述するとき、どのようなものでも考えているかもしれないため、すべての概念が各ローカルネットワークにおいて考慮されるべきである。
では、ローカルネットワークは、どのようにグローバルネットワークに関連するのであろうか?簡単に言えば、ローカルネットワークにおけるUとCとの間の各リンクは、グローバルノード(U→C)によって仲介される。各ローカルネットワークにおいて、UがCを発火する確率は、グローバルノード(U→C)に依存する。図4のローカルネットワークの完全なる確率ネットワークの図では、各グローバルノード(U→C)は、すべてのローカルネットワークにおけるすべてのCを指し示す。図5は、1つのこのようなネットワークとのこの相互作用を示す。なぜなら、図4には、そのように示す十分なスペースがなかったからである。また、図5は、2つの概念を有する1つのモデルに対する相互作用を示すだけである。ここで、グローバルノード(U→C)とCとの間のリンクは、CがローカルセッションにおいてCが発火する前に、Uおよびグローバルノード(U→C)のステータスの双方を知る必要があることを表している。
図6は、このモデルのわずかに手直しされたバージョンを示す。ここでの変数は、各概念が別の概念またはターミナルをトリガーするか否かを明確に示すように存在する。一度それらが我々の関心のある元の変数(つまり、CおよびC)に向けて発射されると、双方によって示される結合分布が同一のものであることに留意する。この図における三角形は、追加の「トリガー」の変数を表しており、変数を有するモデルを考えた場合にしばしば役立つ。なぜなら、そられは必要とされる条件的な確率の数を簡略化するからである。
例えば、図6において、CがUから発火される確率を決定するために、UとCとの間の「トリガー」の変数はUと(U→C)の分布を知る必要だけがある。同様に、Cへの他のトリガーは、Cのおよび(C→C)の分布の値を知る必要があるだけである。こられ2つの結合は、Cノードが図5のモデルにおいて必要とする4つのすべての変数上の結合をより簡略化したものである。これは、主に、条件的な確率の詳細の複雑さが、考慮されるべき要素の数とともに指数関数的に上昇するからである。
この点は、より明確にする価値がある。例えば、ある人が複雑な賭け事に参加すると仮定する。そこでは、賭けの結果は、各レースの結果が異なる払い戻しを提供する10の競馬レースに依存する。この賭けを行うために、210、つまり1024の数が必要とされる。なぜなら、それは、すべてのレースが同時に考慮されたときの異なる結果の数であるからである。ここで、代わりに、同一人物が、勝ち負けがある程度各馬に依存するそれぞれの馬に10の独立した賭けをすると仮定する。10の数だけがこの賭けが行われるために必要とされる。同様に、条件的な確率分布がNを考慮しなければならないとき、変数2は、必要とされる複雑さのオーダーであり、従って、必要とされる計算の複雑さの量がこのような状況に対応するために必要とされる。これは、トリガー変数がこの問題を因数分解する際に、有効であるからである。この点からは、我々は、トリガーされた形式またはトリガーされていない形式のいずれかである我々のローカルネットワークを交互に示す。
最後の1つは、この大きなネットワークがはっきりと定義されるようにこの大きなネットワークにおいて明確化することが依然必要である。先ず、グローバルノードは、事前の分布が必要となる。つまり、概念がどれだけ他の特定の概念または単語にリンクしそうであるという証拠を組み合わせるために、我々は、概念における確度(belief)が事前の分布であることを知る必要がある。我々のモデルの学習はこの分布に対してそれ程敏感ではないことが分かる。従って、多くのことがここでは可能であり、それは、ゼロでないリンク上の1/1000の平らな分布を用いることを含む。
これは、少しだけ的から外れているが、完全を期すために、ここでは、十分に変数を制約しないことを言及する。なぜなら、密度がゼロでない値に課されておらず、それは発火する確率に対する事柄に重み付けするアクチベーションの積である。しかしながら、セッションにおける概念のアクチベーションを選択するために我々が用いる経験則は、概念からすべてのターミナルに向けて発火する合計の重みが、この概念が発火するターミナルの平均的な数をこの概念が各セッションにおいて発火する単語の平均的な数によって除算したものにおよそ等しいことを意味する。また、これらの確率を設定する別の方法は、グローバルノード上の推測が起こる特定の方法に依存する。現状では、我々は、1つは0であり、もう1つは、別の最良の値である2つの先の尖った分布によって表されている各グローバルノードにおいて簡略化されたモデルだけを探す。この場合には、あなた方は、この新しいリンクを与えられると、コルモゴロフネットワークの複雑さにおおよそ依存する新しいリンクに基づいて事前確率を推測し得る。つまり、実際には、モデル全体が、モデルがより簡略化された際にモデルが可能である世界の説明からそれ自身を導出すると仮定すると、このモデルが新しいリンクを有するモデルがどれだけ簡単であるのかに基づいて事前確率を推測し得る。ここでは、クラスタからターミナルへのリンクは、クラスタがリンクする他のものの数、ターミナルにリンクするものの数、またはその両方の数に、より依存し得る。
一度大きなネットワーク全体がセットアップされると、これ以上されるべき概念的な作業はない。このネットワーク上に推測を実行することは、理論的な観点から見るとかなり単純であり、十分な計算能力を与えられているとき、グローバルノードのすべての分布に到達することは、単純であり、このことがこのモデルを十分に明確化する。
実際には、このモデル上の分布は、我々がこのようなテキストの生成に関してすべての質問に応答することを可能にする。
1つの問題だけが依然残っている。スケールに関してある。この基本的な問題は、以下の通りである。世界におよそ5百万の概念があるとする(この数は、60億の人々が存在し、彼らが個々について話すとき、彼らは、違うことを話す。したがって、少なくとも50億の概念ある。しかし、5百万の概念から始めることとする)。百万のターミナルが存在すると仮定する(new−yorkといった複合語があるが、これは理解しやすい。なぜなら、複合語は英語にしかないからである)。我々が50億のユーザセッション上でこのネットワークをトレーニングすることを所望するとする。加えて、ここでは、(かなりの数の)連続するランダムな変数を処理する計算上の負荷を無視するものとする。モデルノードは、各セッションに対して一度複製されるべきであることに留意する。このことは
十分に大きなネットワークが50億のセッション×(百万のターミナルローカルノード+5百万の概念ローカルノード)=300億×百万のローカルターミナルノードを有することを意味し、これは、簡単な部分である。ここでリンクを数えてみる。グローバルモデルは、5百万のノードを有し、グローバルノードのそれぞれは、百万のターミナルにリンクし得る。ターミナルのそれぞれは、ローカルネットワークにおいて、5百万回複製され得る。ローカルネットワークのそれぞれは、数を倍にする適切なグローバルノードからリンクを有する。つまり、
百万ターミナル×5百万クラスタ×50億セッション×2=5千万×百万×10億リンクである。
このサイズのネットワーク上で指数関数的な数の正しい推測技術を行うことが一番厄介な部分である。したがって、基本的には、このような単刀直入なやりかたを行うことは、途方もなく高くつく。本開示の次のセクションでは、このシステムが可能であるようにするために、なされ得るさまざまなこと、およびなされるべきさまざまなことを記載する。
スケーラビリティ技術およびルーピー確度伝播
我々の大きなネットワークの問題を解決する際に我々が有する第1の問題は、完全なる推論はこのネットワークのサイズにおいて、指数関数的になることである。ここでは、我々は、いくらかショートカットを使う。急速で不正確な態様で、確率ネットワークに証拠を伝播させる(一般的にルーピーと呼ばれる)「ルーピー確度伝播(loopy belief propagation)と呼ばれる推論技術がある。これは、速いという利点を有するが、不正確であるという不都合を有する。しかしながら、これは、しばしば、さまざまな確度のネットワークに対して十分な概算を求めるものである。
特定のネットワークにおいてすべてのノードの周辺分布を見つけ出すために、ルーピー確度伝播はネットワークにおいて送信される2つのメッセージタイプに依存する。ダウンメッセージは、リンクの流れとともに移動するものであり、それらは、どのノードがリンクの反対側にあるかを概算する。それは目的地以外からくる他のすべての証拠が与えられているソースにおける確度である。アップメッセージは、リンクの流れに対して移動し、目的ノードのさまざまな値が与えられることにより、リンク側での確率がどのようなものであるのかを(確率的ネットワークの意味合いにおいてまた、親でもある)目的ノードに伝える。
図7Aは、百万オア構成要素を伴う単純な2つのブールノードを有するナットワークを表している。ここで、ノードAは、真である事前確率0.1を有し、Bは、Aが真であるならば、真である事前確率0.3を有する。ここで、我々は、このネットワーク上にルーピーを実行させることによって真であるBの確率を決定し得る。AはメッセージをBに伝播し、他のすべての証拠が与えられるとき、Aは、確率0.1を有して真であることを確信していることをBに伝える。Bはこのメッセージを受け取り、そこで、条件的な確率(ノイジー―オア)を考慮に入れ、確率0.03を有して真であると結論付け、終了する。
図7Bは、推論がアップメッセージを用いてどのように作動するかを示す2つのブールノードネットワークを表している。ここで、B上にBが真である証拠がある。そこで、我々は、Bが真であるとするときのAの確率を決定しようとする。BがAにアップメッセージを送信する。このことは、Aが真であるときだけBは真であることをAに伝える。つまり、Aが偽であるとするならば、Bがそれより下の証拠を知らない確率は、0である。したがって、Aは真であるはずである。Aがこのメッセージを受け取り、A自身上で、事前確率でAを乗算する。Aは、真である確率0.1を有し、Aは真であるべきと結論付ける。したがって、この証拠が与えられるとすると、Aは真である。
以下の理由のために、ルーピー確度伝播は、推論問題に対する技術的には正確な解決法ではない。証拠が、2つの異なるソースから特定の点に到達するとき、それらは、これらのソースが相互に関連しているか否かについての情報を失う。以下の例を考えてみる。3人の人(A、B、C)が会話に参加している。Aは、株式市場が翌月には上昇すると信じているとBに伝える。Bは同一の情報をCに伝える。この点で、Cは、誰か他の人が株式市場が上昇すると確信しているとAに伝える。ルーピーでの問題は、この単純な確度伝播システムにおいて、Aは、Cの意見がAの本来の主張に基づいていることを伝えることができない。したがって、Aからの証拠がそれ自身に戻ってくる。わずかにだけより複雑な方法では、ルーピー確度伝播は、ネットワークにおいてループの周りに証拠を循環させて、通常、正確であるが、時々不正確な解決法を作成する。
ルーピーがループを有さずにネットワーク上で動作するとき、それは正確であり、ネットワークの直径に等しいステップの数内で落ち着く。しかしながら、ルーピーがループを有してネットワーク上で動作するとき、証拠がネットワークの周りをループする。通常、ループは特定の解決法を見つけ出すが、その解決法が正確である保障はなく、またルーピーは全く見つけ出さなかったりさえする。図8は、実際に、ルーピーが機能しないノイジー―オアネットワークを示す。ここで、Dは真であり、その唯一のソースは、実際にはAである。したがって、推論は、Aが真であることを示す。しかしながら、ルーピーは、Aに対しておよそ0.6で落ち着く。しかし、通常、ルーピーはかなり良く作動する。後ほど本開示のなかで、我々はどのようにルーピーが改善されたかを考察する。
ここで言及するさらなる点は、クラスタが隠れた変数であると考えると、この大きなネットワーク上でルーピーを作動させる効果はデータ上でEM(期待値最大化)動作を作動させる考えにおおよそ等しいということである。EMにおいては、モデル変数に対して最初の推測がなされ、それから、隠れた変数の確率が推論される。それから、このモデルの変数に対する推測がアップデートされる。これは、本質的にはルーピーと同一の計算法である。これら2つの間の1つの違いは、ルーピーは、それ自身における1つ前のセッションから証拠を反映しないことである。つまり、ルーピー対する適切な説明は、セッションが最後の反復において送信した以前のアップメッセージに対してグローバルネットワークからのダウンメッセージを軽視することである。各反復でデータの異なる部分上で、ルーピーアプローチとEMアプローチを動作させることとの間にはそれ程の違いはない。本開示の残りでは、我々は、この処理を記載する際に、EMの専門用語ではなくむしろルーピーの専門用語を用いる。
大きなネットワークにおけるルーピー確度伝播
大きなネットワークにおけるグローバル/ローカルの境界を越えて、ルーピーメッセージが用いられる。ここで、グローバルノードは、特定のローカルネットワークにそれらの確度を伝播する。ネットワークは何十億分のたった1であるので、通常、これは、いかなる所において伝播されたものと同一の考えである。またしかしながら、そのトリガーノードについて他のすべてが既知であるとすると、トリガーノードはネットワークの確率を伝播する。
図9は、特に単純なセッション内で起こっているおり、かつ、1つの概念(C)および1つのターミナル(T)だけを含むモデルを有するルーピーの計算を示す。このセッションでは、我々は、ターミナルTを確認したので、したがって、ローカルノードが濃く色付けされていることに留意する。ここで、このモデルを取り巻くメッセージのいくつかがどのようなものであるかを見てみる。
先ず、(U→C)グローバルノードからUとCとの間のトリガーノードへ向かうダウンメッセージを見てみる。他のセッションからルーピーの現在の反復においてメッセージが概算したデータを与えられるとすると、このメッセージは、(U→C)ノードの状態における、現在の確度を報告しなければならない。連続する変数上の完全で、かつ、正確な分布を通信し、かつ、計算することは禁じられている。この理由のために、(U→C)からUとCとの間のこのセッションにおけるトリガーノードへのダウンメッセージは、簡略化される。十分な分布を通信する代わりに、ダウンメッセージは、1つのピークは、0であり、別のピークは選択された「最良の値」Wである、2つの異なる頂点を有する分布を有する分布を概算する。
このダウンメッセージを明らかにするために、我々のシステムは、先ず、このグローバルノードに関して他のセッションから入ってくる証拠を編集する。我々のシステムは、それからこのノードに対してゼロでない最良の値Wを選択する。それから、このシステムは、アップメッセージをノードが存在についてのメッセージに変換する。このことは、このシステムが、最良の値Wにおいてダウンメッセージをどのくらいの確率で、かつ、値0において、ダウンメッセージをどのくらいの確率で送信するかを決定することを可能にする。計算的に可能な態様で、グローバルノードからのダウンメッセージのこの簡略化が不連続な性質のグローバルノードに対処する際に好都合である。
(U→C)からのこの簡略化されたダウンメッセージは、(U→C)から出るリンクの隣の小さい矢印に沿ってある。これは、(0.1、1.0)とラベル付けされる。これは、最良の値が0.1であり、このリンクが確率1.0で存在することを意味する。我々がすべてのネットワークを部分的に説明可能であることを所望するために、我々は、Uから任意のものへのリンクは、1.0未満の確率を有さないとする。ダウンメッセージの別の例は、(C→T)から、ローカルネットワークにおけるCとTとの間におけるトリガーノードに出るメッセージである。このメッセージは、(0.2、0.8)とラベル付けされる。これは、このメッセージが、ゼロでない0.8の確率を有することを意味する。このメッセージがゼロのとき、それは、0.2に等しい。
ここで、我々が、グローバルモデルからのダウンメッセージを知っているとするときのこのネットワーク上の推論を試みる。3つのトリガーノードがある。1つは、CからTであり、1つは、UからCであり、残りの1つは、UからTである。こられの確率に関しては、我々は知らない。我々はまた、このセッションでアクティブであるクラスタCの確率を知らない。これらのすべてが、このセッション上でルーピーを実行させることによって明らかにする。しかしながら、我々が、すべての計算のサンプルに目を通す前に、我々はさらなる簡略化を網羅する。(C→T)からトリガーノードへのダウンメッセージは、(0.2、0.8)とラベル付けされる。しかしながら、我々がこのメッセージを用いる前に、我々は、このメッセージは、2つのとがった分布を展開し、それを1つのとがった分布に簡略化することによって、実際には(0.16、1.0)の単一のメッセージであるとする。ここで、我々は、この小さなセッションのネットワークのみを考察することにする。この簡略化はまた、我々の枠組み内でされる。
我々が行え得る1つの小さな仮定は、C上のアクチベーションが1とセットされることである。一般的に、確率ネットワークを実行させる際に、この値は、推論を介して導出され得る。しかしながら、これらのローカルネットワークにおいて、推論を試みる一方で、我々のモデルは、クラスタのアクチベーションが、このネットワークにおいてモデルが発火し得るターミナルの数と同等であると仮定する。これは、アクチベーションおよび重みの積だけが重要である事実に対処して我々が先述した修正である。この修正は、以下の正当性を有してなされる。アクチベーションは、大規模内で重要なだけであり、したがって、それを最適に決定する際には、計算時間が費やされる必要はない。
ここで、我々は、このネットワークの簡略化されたノイジー―オアモデルを考察し、一方でグローバルノードを無視する。これは、グローバルノードがシステムに供給するすべての情報が、クラスタと他のクラスタまたはターミナルとの間のノイジー―オア上で重みによって概算され得るからである。これは、手近のネットワークにノードを合計することによって別の親を有さないノードを簡略化する確率ネットワークにおいて標準的な技術である。この簡略化されたローカルネットワークは、図10のものに似ている。このネットワークにおけるリンクは、0.095、0.095および0.1478とラベル付けされる。これは、UがTをトリガーする確率がここでは、1−e−0.1、つまり、0.095だからである。先に我々が、リンクが確率およそAWで結果をトリガーすると述べたことを思い出してください。ここで、Aは1およびWは0.1であり、これは、およそ0.095である。同じことがCとトリガーTとの間のリンクに適用され、それは、1−e−0.16で0.1478であり、およそ0.16である。
ここで、我々はTが真であることを知っている。どれほどCがTを真であるようにさせたのか判断してみる。UからのトリガーノードがTに送信したダウンメッセージは、(0.095、0.905)である。ここで、0.095は、ノードが真である確度を表しており、0.905は、ノードが偽である確度を表している。このダウンメッセージの性質は、グローバルノードからのダウンメッセージとは全く異なることに留意する。これは、トリガーノードがブール変数だからであり、一方、グローバルノードは、連続、かつ、分離した変数と、0における確率質量および他の点における密度との妙な混合である。さらに、これは、2点の分布によって概算され、1点の分布にさらに簡略化される。
トリガーは、ブールノードであるので、そのトリガーは確率が真である1つの数と、1から第1の数を差し引いたもう1つの数だけを送信するだけでよい。インプリメンテーションにおいて、我々は、これを最適化する。Tがこの数を受信し、C側のトリガーノードに、トリガーがトリガーしたとするときのTの確率対トリガーがトリガーしなかったとするときのTの確率をアップロードする。このアップメッセージは、(1.0、0.095)である。ここで、通常、ブールメッセージに対するアップメッセージは、このような2つの値を有するが、実際には、1つの値だけが必要とされ、それは、(無限大が表示可能であるとすると)2つの間の比率である。CからTからのトリガーノードは、(1.0、0.095)のアップメッセージを受信するが、それは、また、Cより上から来るダウンメッセージを有する。このメッセージは、Cからの(0.095、0.905)である。ここで、トリガーノードは、必要なすべての情報を有する。このトリガーノードは、上からのメッセージを(0.095×0.1478、1−0.095×0.1478)、つまり(0.014、0.986)に変換する。この変換は、このトリガーノードより上のものが何であるのか与えられた際に、トリガーノードがそれ自身の確度を有することを意味する。このトリガーノードは、トリガーノードが下から(0.014×1.0、0.986×0.095)、つまり(0.014、0.09367)を受信する確度分だけ構成要素同士を乗算し、それから、このトリガーノードは、これを累積して1にして、(0.13、0.87)を獲得する。これが最終的なトリガーノードの確度である。ここで、同様な計算が、このネットワークにおける他のすべての「隠れた変数」を明らかにするために行われ得る。
一般的に、ルーピーは、ノードの親に関する確度をノードに与え、そのノード自身に関する確度を子に与える。ノードは、条件的な確率分布を用いて、そのノードの親に関する確度をそれ自身に関する確度に変換する。ここで、ノードは、それ自身に対して、2つの確度数を有し、ノードは、構成要素同士で乗算する。それからノードは、それ自身の確度を取得するように1に標準化する。我々がこれらのメッセージを計算する際に行う2つの最適化は、以下の通りである。我々は、アンダーフローを回避するために対数空間において多くの確率計算を行う。これは、ダウンメッセージの比率とアップメッセージの比率の双方を含む。加えて、ノード上の親の数において、ルーピーが線形時間的に動作するようにそのルーピーをインプリメントするために、ノードの確度から1つの親の効果を差し引くことが役立ち得る。このことは、この伝播を迅速に行うために、Nの数をとり、これらの数のN−1のすべてのNの積を計算する特別なルートを介して行われる。
ここで、異なる性質を有するグローバルノードに送信されたアップメッセージを参照してみる。グローバルノードが実際には、0から無限大までのいかなる値のも取れる分離―連続的なランダムな変数であることを思い出してください。リンクに重み付がされている際に、あなた方がどのようにネットワークの確率を計算し得るかを示す単純なサンプルを解いてみる。
図11は、ターミナルをトリガーしようと競う2つのクラスタCおよびCを示す。C→TおよびC→Tから適切なトリガーノードへのダウンメッセージは、q1およびq2の発火する確率をそれぞれ示す。上述されるように、我々は、確率の存在を最良の値分、乗算して、グローバルノードからのダウンメッセージの影響を概算する。したがって、ローカルネットワークにおいて、Cは、確率1−e−a2q2でTを、同様に、C2も、確率1−e−a2q2でTを発火すると仮定して、我々は解決を概算することに留意する。ここで、このモデルの他の部分からCに入ってくるメッセージは、真である可能性のあるp1であることを示す。同様に、このモデルの他の部分からC2に入ってくるメッセージは、真である可能性のあるp2であることを示す。CおよびC2は、それぞれアクチベーションa1およびa2を有することになっており、ノードTは、観測されているターミナルである。
ここで、(C→T)から、CとTとの間のローカルモデルにおけるトリガーノードに沿って送信されるアップメッセージを参照してみる。このメッセージは、この図においてMとラベル付けされている。このメッセージは、q1の関数としてネットワークの確率を送信し得る。ネットワークの実際の確率が送信される必要はない。実際には、相対的確率比だけが送信される必要がある。つまり、因子(factor)がq1のすべての値に対して同一である限りは、確率によって乗算される一定の因子が送信され得る。最終的に、我々は、送信されたメッセージを考察する準備ができている。
このネットワークにおいて、考慮すべきことは、4つの可能性である。それぞれの可能性は、この小さなネットワークの外で起こっていることに対する確率を有する。第1は、CおよびC2の双方が真である。これは、確率p1p2で起こる。この場合には、Tが真である確率(このネットワークにおいて唯一残っている証拠)は、
1−e−a1q1−a2q2であり、
したがって、ネットワーク全体の確率は、
p1p2(1−e−a1q1−a2q2)である。
が真であり、C2が偽であるとき、このことが起こる確率は、p1(1−p2)である。Tが真である確率は、
1−e−a1q1であり、
したがって、ネットワーク全体の確率は、
p1(1−p2)(1−e−a1q1)である。
同様に、C2が真であり、Cが偽であるとき、このネットワークの確率は、
p2(1−p1)(1−e−a2q2)である。
最後に、CおよびCのいずれもが真でないとき、Tが真であることはあり得ない。したがって、グローバルノード(C→T)へ送信される関数のメッセージは、
p1p2(1−e−a1q1−a2q2)+
p1(1−p2)(1−e−a1q1)+
p2(1−p1)(1−e−a2q2)である。
この関数は複雑であるように思われるが、実際にはかなり単純なものである。メッセージMのためにこの関数における唯一の変数がq1であることを考慮する。したがって、この関数は、以下の形式にまとめられる。
a+be−a1q1
ここで、aは、すべての上記の定数項の和であり、bは、上記和におけるe−a1q1の係数である。q2、p1、p2が、メッセージをノード(C→T)へ送信するためにすべて一定であることが考慮されることに留意する。実際には、この関数が乗算する一定の因子は重要ではないので、この等式は、以下のように書き換えられ得る。
1+ke−a1q1
グローバルモデルに送信される2つの数(kおよびal)だけが残る。我々は、グローバルノードへのこれらのアップメッセージをリンクメッセージと呼ぶ。
ここで、リンクの目的地がクラスタであるとき、これらのアップメッセージの関数の形式はあまり変化しない。例えば、Tがクラスタであるとき、CおよびCのアクチベーションは重要ではない。一方で、Tが、そのTが真でありそうか否かを示す他のターミナルからアップメッセージを受信する。これは、計算に別の条件のセットを単純に追加したものである。なぜなら、それぞれの世界の視野は、Tが真であるかと同様にまたはTが偽であるのかを考慮しなければならない。異なる4つの分を有するのではなく、上記の合計は8つの部分を有する。1つに対する可能な値は、C、CおよびTである。ここで、(われわれはここでシミュレートしないが)トリガーノードにアップメッセージを送信することによって、我々のコードは、Tおよびそのクラスタの親のすべてを十分に考慮することによって被る指数関数的な増加(これは、Tが2つ、3つ以上の親を有するとき、途方もなく高くつく)を効果的にさける。
留意することの1つは、我々はグローバルノードを含むネットワーク全体にわたりルーピーを実行させているが、我々はロックステップ(lockstep)で、ルーピーのローカルとグローバルの反復をさせる必要はない。実際には、我々がグローバルノード上でルーピーの1つのステップを実行するようにもどる前に、我々は収束させるために各ローカルネットワーク上でルーピーを10反復以上させる。
リンクの重みの最適化
さて、我々は、ルーピーがどのようにグローバルノードをとらえるかを考慮する準備ができている。つまり、ルーピーの各反復において、我々のモデルが、そのモデルにおける各リンクに対する存在および最良の値の双方をどのように再考するかである。任意のグローバルノードへのアップメッセージは、以下の形式であることを思い出してください。
1+ke−a1q1
さて、この変数に対するもっとも可能性が高い重み値を選択するために、我々のモデルは、これらのすべてのアップメッセージを単純に組み合わせ、グローバルノードに対する最良の値を選ぶだけでよい。便宜上、我々の表記を少しだけ変えてみる。ノードが、(1+kexp(ax))形式のN個のアップメッセージを受信するとする。ここでは、我々は、1からNに移動する添え字としてiを用いている。kは一定の因子であり、aはx上の係数である。ここでXに対して解かれるべき変数であるxは、その変数に対する可能な選択を表しており、一方、関数メッセージは、xに対する異なる値を用いて、さまざまなセッションの確率を表している。
ゼロでないもっとも大きいxを選択するために、我々は、これらすべてのアップメッセージ(リンクの重みを決定するグローバルノードに移動するので、またリンクメッセージと呼ばれるこのアップメッセージ)のすべての積を最大化するxを見つけ出すだけでよい。これは、1次元的な(one―dimensional)最適化問題である。この問題を解く1つの方法は、ある範囲におけるxをサンプリングすることである。より効果的な方法は、以下を留意することである。積の対数が最適化されるとき多くの数の積が最適化される。これらの数の積の対数は、それらの対数の合計である。これによって最適化がされる。
さて、我々はxに対してこの導関数を獲得し、局所的最適値に対して微分がなくなる特定の範囲(例えば、0から1)における点を検索し得る。この検索は、二等分することによって、または他の任意の数の技術によって行われ得る。この関数は、ときどき非単調的であり得(つまり、常に増減するわけではない)、したがって、これは、ときどき1つ以上の局所的最適値を有する。しかし、これは、通常、常にこうではない。
ここで、ちょっとした注意であるが、なぜこの最適化が無限大または0の最適なxを算出しないのか?関数1+ke−axの性質は、kに大きく依存する。kが正であるとき、この関数は、より大きな値であるxに対して減少する。このことは、この特定のリンクをより大きくすることによって、この特定のセッションが損なわれることを意味する。一般的に、クラスタがセッションによって示される確率に可能性の低い別のクラスタを指し示すとき、これが起こる。特に−1の辺りで、kが負であるとき、これは、このリンクを有すべき確固たる理由を示す。例えば、kが−0.99と仮定する。xが0であることは、0.01の相対的確率を意味する。xが大変大きいことは、1の相対的確率を意味する。したがって、xが、0より大変大きくなり得る可能性は、0である可能性より100倍高い。しかしながら、ときどき、値0が唯一の局所的最適値であることがある。これが起こるとき、我々のモデルは、リンクのすべての確率質量を0にする。
最高な値が選択されるとき、アップメッセージは、最良の値Xと値0とを交換して、ブールの存在変数(existence variable)に対するアップメッセージに変換される。上記の確率の積がXと0において単純に評価される。リンクの存在(上記のようにまたはコルモゴロフの複雑さによって決定されるように1/1000)の事前確率が組み合わせられる。この組み合わせによって我々はリンクに対する存在確率を得る。
事前複合化およびレキシコン
我々のモデルは、そのモデルが理解する限定された単語または複合語のセット(レキシコンと呼ばれる)を取り扱う。前処理の段階がこのレキシコンを決定するために必要とされる。この前処理段階は、我々のモデルに対して処理され得る重要な単語および複合語を決定する。大まかに述べると、ユーザセッションにおける時間のある特定の一部分に見られるすべての単語が含まれている。複合語を含むことは、より複雑である。ここでは2つの方法が可能である。1)複合語をより含み、ランタイムで複合化を行う。2)複合化をそれ程含まずに、スタティック(static)時間で複合化を行う。
複合化が複雑である理由は、複合語自身に対する概念のせいである。先述したように、単語のセットが、基本的に「new york」のように非合成的であるとき、それは申し分のない複合語となる。「red car」のような別のセットは、ともにredおよびcarである点で合成的である。このことを発見する1つの方法は、ユーザセッションのブレーク(break)およびスプリット(split)を考察することである。我々は、各潜在的な複合に対して、その複合語がブレークされる回数を数え得る。分割された複合語は、ここでは、1つの問い合わせにおいて、ユーザは複合語全体を発行し、一方、別の問い合わせでは、ユーザは複合語の一部を発行したことを意味する。例えば、以下のセッションは、red carに対して2つのブレークを有する。
red car
blue car
yellow car
スプリットは同様の概念である。ここでは、複合語は、その両端でスプリットされる。2語の複合語にとって、ブレークはまた、スプリットでありが、「this is the time for all men」のようなより長い複合語に対しては、セッションの他の単語「the time」がブレークと見なされる。さて、この情報は、ブレークが意図的ではなく、偶然的である可能性を考慮するために、ブレークの可能性に関する情報と組み合わせられ得る。例えば、ユーザは、以下のユーザセッションを見る。
new york cars
new magazines
我々のモデルは、これが「new york」に対してのブレークであると結論付ける。しかしながら、「new」は、比較的頻繁に使用される単語であるので、ブレークの重み、つまり我々のモデルが、その単語をどれだけ重要であると思っているのかが、その単語がどれだけ一般的な単語であるのかによって重み付けされる。この情報のすべて(複合語の頻出度、ブレークおよびスプリット頻度、およびスプリットまたはブレークされた単語の頻出度)が、レキシコンに対する適切な複合語のセットを決定する際に用いられる。このレキシコンがユーザセッションに基づく必要はなく、実際には、ウェブの文書、本等を含む任意のテキストの態様が、適切な複合語のレキシコンを作成するように用いられ得る。
スタティック複合化アプローチにおいて、我々のモデルは、レキシコンにおける単語および複合語の頻出度を数え、それらを用いて、テキストをあらかじめ複合化する。この場合には、各シーケンスは、レキシコンから一連のトークンを見る確率を最大化する動的なプログラミングアプローチを用いて説明される。動的なプログラミングアプローチがテキストの長さにわたり実行され、それまでに見られた一連のシーケンスを最大限に説明することである。各点において、我々が各新しい単語までのシーケンスの最良の説明を知っているとき、2つのうちの1つが可能である。(1)単語が、それ自身のレキシコンのトークンによって説明され、かつ、以前の他のすべての単語がその点までの最良の説明によって説明されるか、または(2)単語が、以前のトークンの数までの問い合わせと最良の説明とを組み合わさる複合語の一部のいずれかである。これらの代替の双方が検討され、その点までのセッションに対する最良の説明が作成され得る。この動作を実行することによって、我々は、単語のセットにおいて、それぞれの新しい単語を見る。
この動的な複合化の場合では、セッションにおける証拠が、セッションないにおける各点で起こる可能な単語の解決法であるOR上の証拠と見なされる。図12は、ローカル確率ネットワークが、ランタイムで、レキシコンにおける複合語をどのように動的に処理するかを示す。単語「new york」単独からなるセッションが見られるとき、証拠は、単語new、york、またはnew yorkとしてでさえ数えられない。むしろ、我々は、第1の位置において、単語「new」または複合語「new york」がその位置を説明することを見る。同様に、「york」または「new york」のいずれかは、第2の位置を説明する。以前のセッションで我々が記載したすべてのメッセージは、かなり容易にこの新しい複合化方法に適応する。実際には、この方法は、単語の組がこのセッションにおける他の単語に基づく複合語か否かを決定し得る利点を有する。
希薄(Sparseness)および初期化
我々のモデルについて記載した上述の大半は、独断で大きな数の概念を仮定したが、これは技術が初期化される態様である必要はない。実際には、我々のモデルは、特定の1つのクラスタだけで始まる。それは、普遍クラスタUである。これはまた記憶を増進させる理由だけのために、CANADAとも呼ばれる(これは国のCanadaとは違うことに留意する)。
ローピー確度伝播は反復アプローチであり、したがって、新しい潜在的なクラスタを導入するために、ローピー確度伝播が常に動作している時間ある。これが我々のモデルが行うことである。各反復において、我々のモデルは、ユーザセッションの数を受け取り、セッションにおける単語を考察する。セッションが十分な数の単語を包含するとき、その特定のセッションを申し分なく説明する新しいクラスタが形成される。この新しいクラスタは、多くの潜在的なモデルノードを導入する。それぞれのモデルノードは、この新しいクラスタに入る、またはこの新しいクラスタから出るそれぞれの潜在的なモデルリンクに対してである。これらのすべてが格納されるのではなく、実際には、リンク最適化段階が、ある特定のリンクが存在している特定のしきい値より大きく、かつ、その重みがCANADAからのリンクの重みより十分に大きいと決定するとき、我々のモデルはその特定のリンクのみを格納する。これがモデルから偽のリンクを除くことになる。なぜなら、承知のとおり、偽のリンクは、メモリおよび計算リソースの双方がかかるからである。この簡略化は、「モデルの希薄」と呼ばれる。
同様の希薄がローカルネットワークに課せられる。最初でさえ、5百万の単語および複合語を有するレキシコンでは、ローカルセッションが特に大きくなる。各ローカルネットワークにおけるすべてのターミナルおよび複合語を関与させる理由は特にない。我々は、テキストにおける偽でないすべての単語および複合語を観測した効果を概算し得る。これは、各概念に対して、その各概念が単語を発火しない確率をあらかじめ計算することによって行われえる。これは、リンク最適化段階後にも(我々のモデル段階については後ほどさらに)行われ得る。この予測計算(precomputation)は、テキストに実際に存在する単語の効果を取り除くことによって調整され得る。つまり、存在しないすべての単語の効果を付加的に決定するのではなく、我々は、各クラスタに対して、その各クラスタが単語を発火しない確率コストを一度計算し、すでにそこに存在する単語の効果を減法的に取り除く。
この「ターミナルの希薄」は、各ローカルセッションから2つ、3つのターミナルを除いてすべてのターミナルを取り除き、所定の重みを有する「偽」のブールノードを指し示す各概念に対するいくつかの証拠を用いてそれらを概算する(所定の重みは、セッションにおいて実際にターミナルを発火する概念の確率で、何も発火しない確率を除算することによって決定される)。
加えて、グローバルノードにアップメッセージを送信するとき、存在しないターミナルのすべての効果が概算される。通常、クラスタCが、単語T1つだけを有してセッションに存在するとき、我々は、ネットワークの確率が、CとC、CとC、CとT、CとT等との間でリンクに対して減少されることに関連する(上記の正であるkを有する)アップメッセージが必要である。何百万にも上るこのようなアップメッセージがある。代わりに、我々は、1つのアップメッセージを用いてこれを概算する。この処理は、「リンクメッセージの希薄」のための技術セットの一部である。これがどのように行われるか考察してみる。
図13では、我々は、残りのネットワークによって決定されるものとして、真である確率pを有する単一のクラスタCを見る。このセッションにおいて、Cは、アクチベーションaを有する。ここでは、ターミナルTは観察されない。ターミナルTは「ターミナルの希薄」を介するセッションでは除外される。xが(C→T)ノードの値とする。xが与えられた際、(C→T)ノードからCとTとの間のトリガーノードへのリンクに沿っているアップメッセージがネットワークの確率を通信する。ここでは、Tが偽である確率は、およそ以下のとおりである。
ここでは、我々は、リンク強度xが低いと仮定する。リンク強度xが低いのは、クラスタは存在するが、単語は存在しないので妥当であると思われる。低リンク強度は、
である。また、この計算を正確に行うためには、我々は、この特定のアップメッセージのルーピーの決定において軽視されるべきでないこの単語がそこに存在しないと仮定して、我々が最初にCの確率を計算した事実対して調整しなければならない。我々がこれを行わない理由は、この事実を無視することがこのテキストにおけるクラスタCの存在に対して1つだけを我々に送信することを可能にするからである。この情報、積e−paxは、ソースとしてCを有するモデルノードに関するすべてのリンク最適化計算に考慮される。つまり、(C→T)グローバルノードは、この数を用いて、このネットワークの確率に関する最適な値の効果を概算する。
ここで導入される1つの小さなエラーがある。なぜなら、これらのメッセージがクラスタ毎に送信されるために、我々はまたターミナルがテキストにおいて実際に起こるクラスタおよびターミナルの組み合わせに対してこれらのメッセージを考慮するからである。例えば、図13では、Cが送信する希薄なリンクメッセージが、(C→T)グローバルノードの最適な設定を明らかにするように用いられる。これは正しいことである。しかし、希薄なリンクメッセージはまた、(C→T)の最適な値を計算するように用いられる。しかしながら、これは、間違っている。なぜなら、Tが実際にテキストにおいて起こるからである。これに対して調整するために、TとCとの間のトリガーノードは、そのリンクメッセージにおいて付加的な構成要素を含む。epaxのこの調整は、標準的なリンクメッセージを有して(C→T)グローバルノードに送信される。これは、希薄なリンクメッセージから来るe−paxを相殺し、すべての計算がおおよそ正確に終了する。
これまで、我々は、そこに存在しないターミナルおよびそれらのトリガーノードからのリンクメッセージを簡略化した。各ローカルネットワークにおいて処理されるべき何百万ものクラスタノードを有する潜在的に大きなモデルが依然存在する。これを簡略化するために、我々は、セッションにおいて、どのクラスタが任意の確率で存在し得るのかを我々に決定することを可能にする迅速な概算計算を行う。学習されるべき必要があるグローバルメッセージのために、一度「普遍」の希薄なリンクメッセージが考慮されると、起こりそうもないクラスタは、グローバルモデルにほとんど影響を与えないことが分かる。したがって、我々のモデルが多くの数のクラスタを考慮しないことを可能にした迅速な計算は大変好都合である。
我々のモデルは、ローカルネットワーク内でどのクラスタが考慮されるべきでさえあるかを決定するように「親選択(parent picking)」と呼ばれるルーチンを実行する。このルーチンは、2つ、3つの情報のタイプを用いる。(1)他のすべてのセッションにおけるクラスタの確率から推定され得る事前の可能性。(2)セッションにおける単語であって、単語を指し示すクラスタに対する可能性を算出する単語。(3)高い確率を有するクラスタからリンクされた単語。(4)グローバルモデルの構造。我々は、後ほど、このルーチンに戻り、このルーチンを考察するが、差し当たっては、テキスト上にこのルーチンを実行させた後には、一般的には、大きなファクタ分、考察されるクラスタの数が減少することに留意する。百万以上の概念を有する1つの大きなモデルにおいて、単一の単語「office」からなるセッション上にルーチンを実行することは、我々のモデルが、結果的に百万以上のクラスタから12のクラスタだけを考慮することになる。この「クラスタの希薄」はまた、セッションの分析が必要とされる作業の量をおおいに減らす。
アップメッセージは、現在の反復において高い確率で既に存在するリンクにだけに送信されるわけではないことに留意すること。我々のモデルの1つの実施形態は、また新しい単語に対する概念に関連するアップメッセージを送信することを必要とする。実際には、このようにして新しい単語が概念からリンクされる。例えば、問い合わせセッションに対するクラスタCの当初の割り当てを考慮する。
カリフォルニア(california)
パロアルト(palo alto)
バークレー(berkeley)
さて、我々が新しいローカルネットワーク上でトレーニングするにつれて、我々は以下のセッションを観察する。
カリフォルニア(california)
バークレー(berkeley)
サンフランシスコ(san francisco)
図14は、このようなネットワークがどのようなものであるかを示す(ここで、我々は、美的な理由のためにトリガーを削除した)。このセッションにおいて、我々の新しいクラスタCはカリフォルニアおよびバークレーの双方を差し示す。ターミナルの希薄を用いることにより、他のすべてのターミナルは、しっかりとは考慮されないことに留意する。クラスタの希薄を用いたときも同様である。また、低い確率であるモデルリンクにおいて格納されないので、Cとサンフランシスコとの間にははっきりとしたリンクが存在しない(それ故に、それらの間は点線になっている)。また、モデルの希薄のためにグローバルノード(C→サンフランシスコ)がまた、はっきりと存在しないことに留意すること。ここでは、このセッションにおいて、Cが、起こりそうであると決定されるとき、存在しないノード(C→サンフランシスコ)にアップメッセージを送信することは好都合である。我々のモデルがこのメッセージを受信するとき、我々のモデルは、(C→サンフランシスコ)リンクに対する最適値を計算し、このリンクが十分重大であるとき(このリンクは存在し、十分に高い最高値を有する)、(C→サンフランシスコ)ノードがグローバルモデルに追加される。まさにこのようにして、グローバルノードは、クラスタからターミナルへの新しいリンクを成長させる。しかしながら、行われ得る1つの最適化は、局所的にルーピーを実行させた後でクラスタが十分に高い確率を有するとき、これらの新しいノードリンクメッセージを送信するだけである。
これらの希薄技術(sparseness technique)の効果はかなり重要である。希薄技術の本質は、複数のメッセージを組み合わせて、概算メッセージにすることであり、事実上存在しない情報の希薄な表現が主として無視される。
モデル格納および圧縮
この点では、我々は、我々のモデルを実用的にするために用いられるいくつかの希薄技術と同様に我々のモデルの仕様の双方を取り囲む多くの理論的な詳細を考察した。このセクションは、我々のモデルの実行を網羅する。つまり、我々のモデルの実行は、前記の理論的モデル上で動作する的確なステップおよび処理である。このセッションにおいて依然重要な理論的な紹介がある。なぜなら、我々のモデルを実際に実行する観点からして、説明可能ないくつかの一時的な効果しかないからである。
我々のモデルは、共有のファイルシステムまたはネットワークを用いて、データを交換する別々のコンピュータユニット上で並列に実行させられ得る。この並列を可能にする態様でモデルが分割されるとき、動作におけるある段階は、「かけら(shard」と言われる。データが同様に「かけら」と言われる(例えば、我々は、しばしばファイルがidによってかけらにされたと言う。これは、ファイルがN個に分割され、あるidを有するデータがNのidモジュラスに配置されたことを意味する。)
格納される構成要素
先ず、我々は、モデルが学習することを可能にするために1つの反復から次の反復までに、我々のモデルが格納し得る情報の構成要素を網羅することから始める。
ユーザセッションは、ファイルシステムにおいて、1つ以上のファイルとして格納される。それらのフォーマットは、レキシコンルックアップは、それぞれの認識された単語を一意の整数(integer)に既に変換し得るものである。この一意の整数は、レキシコンルックアップのターミナル_idである。レキシコンは、ターミナル_idがテキストの列から小さなidに何度も変換することを可能にする。idを用いる1つの利点は、idが密度の小さい空間に配置され、したがって、idを操作するように用いられるデータ構造をしばしば簡略化し得る。
レキシコンは、ターミナル_idからターミナルへの、そしてターミナルからターミナル_idへの容易な変換を可能にするフォーマットで格納されている。各ターミナルは、一意のターミナル_idを有する。
我々のモデルは、関連のリンクの関係を有して格納されている。その関係とは、クラスタからターミナル、またはクラスタからクラスタである。各リンクのソースは親および目的地は子と呼ばれる。親と子との間の各リンクが格納され得る。我々のモデルでは、この情報が子_idによってかけらにされる逆インデックスにおいて格納されている。作成されるとき、各クラスタがそれ自身のクラスタ_idを与えられる。このidは、ターミナル_idと同一の空間に存在し得る。逆インデックスは、それぞれの子に対して、その子の親の存在の確率とその確率の重みと同様に、その子の親のリストを格納する。この情報のすべては、インデックスがメモリにおいて占めている空間を減らすためにライスエンコード(rice encode)といった圧縮技術を用いて、ビットエンコードされる。
1つの特有の最適化は、逆インデックスデータを倍のサイズのブロックで格納することである。ここでは、各ブロック内において、親が圧縮のためにidで格納されている。ブロック間の順序付けがターゲット=1に対する重要なリンクを強調するように選択される。このデータ構造の利点は、ターミナルまたはクラスタへの最も重要なリンクがインデックスエントリ全体を探索することなく検索され得ることである。もちろん、このことは重要性でソートすることによって単純に行われ得る。第2の利点は、インデックスエントリの大部分はidでソートされており、これが、重要性による単純なソートよりインデックスエントリをより圧縮する。
親が子のリストを有するとき、このモデルはまた逆順序で格納され得る。これは情報をデバックするように用いれ得る。このモデルはまた別々のインデックスおよびデータ構造に分けられ得る。ここで、インデックスは、クラスタまたはターミナルの親(または子)が2つのファイルアクセスを用いて発見され得るファイルへのポインタインデックスである。
次の反復に対して、また親選択に対してリンク最適化を再度行うために、我々のモデルは、以下のようなさまざまな情報を保持し続ける。(1)セッションに関する他情報が与えられていないときの各クラスタの確率。これは、ルーピーの最後の反復にわたるそのクラスタの頻度に概算される。(2)各クラスタに対するアクチベーション回数の合計の確率。これはリンク最適化における仮想リンクメッセージに対して用いられる。この情報はときどき、オーダー1(order 1)の情報またはモデルと呼ばれる。なぜなら、クラスタが存在するか否かに関わらず、またその予測されるアクチベーション回数の確率の(相関関係が考慮されていない)オーダー1のモデルであるからである。
このモデルはまた、すべてのクラスタに対してアウトリンクの和のすべてを格納し得る。ここではアウトリンクは、クラスタから別のクラスタへのリンクである。これは、リンクの現在の存在値とリンクの重みとを乗算することによって合計(和)される。モデルはまた、アクチベーションされたアウトリンクの和のすべてを格納し得る。これは、クラスタからターミナルへのリンクの和である。これら2つの情報が、例えば、クラスタまたはターミナルの希薄さを用いるとき、子ターミナルまたはクラスタのいくつかを暗に考慮することだけに応答して、クラスタの確率をどうのように調整するかを明らかにするために必要とされる。このデータはまた、クラスタ_idによってかけらにされる。
このモデルは、オプション的に、ファイルにおけるクラスタ名のリストを格納し得る。これらの名前は、クラスタにおけるより重要なターミナルの2つ、3つを選択し、かつ、それらを連結することによって一般的に決定される。これは、主に複合化のための記憶増進のデバイスである。しかしながら、これはまた、ターミナルを介して、特定の情報の必要性に応答する我々のモデルにおける現在のクラスタを識別するように用いられ得る。例えば、性的な単語のセットが、性的なクラスタを識別するように用いられ得る。性的なクラスタは、それから、我々のモデルを組み合わせて容易に用いられ得、子に対して安全な検索を作成する。
アップリンクメッセージは、次の反復の処理の際に一時的に格納される。これらのメッセージは、親と子のidの組み合わせによってかけらにされる。
上記は我々のモデルのデータ要件を網羅し、一方で我々のモデルが動作している。次のセクションでは、我々のモデルを実行する際の異なるステップを詳述する。
(1)処理セッション
先ず、我々のモデルは主にメモリにロードされて、ファイルシステムのアクセスを保存する。第2に、我々のモデルは、ファイルシステムからトレーニングセッションを読み出す。このモデルが、上記の希薄の原理を用いて、これらのセッションに対してローカルネットワークを形成する。それから、このモデルは、ローカルセッション上で推論(ルーピー)を実行する。なぜなら、それは、さまざまなクラスタの確率を決定するために必要とされるからである。これは、(上述されるように)リンクメッセージを抽出するために重要である。
推論を実行した後、我々のモデルは、こられのセッションからアップリンクメッセージを抽出し、メッセージの(ソース_id、ターゲット_id)によってかけらにされたこれらのメッセージを保存する。このモデルはまた、セッションから「ノードメッセージ」を抽出する。これらのノードメッセージは、現在の確率と、クラスタならびにターミナルの双方のアクチベーション(ターミナルは常に1のアクチベーションを有する)とを包含する。この情報は、後の段階で処理されるために、idによってかけらにされたファイルシステムに保存される。「リンクメッセージの希薄」の効果に対して調整されるために、各クラスタに対するこの情報がまさに必要とされるものであることに留意する。つまり、この情報は、図13の用語(parlance)において、ソースCを有する任意のグローバルノードでe−paxを再び作成するために必要である「a」および「p」をまさに包含している。
この段階中に、我々のモデルはまた、どのセッションに新しいクラスタが基づき得るのかを決定する。これらのセッションのそれぞれに対して、我々のモデルは、可能性のあるターミナルおよびクラスタを記録する「新しいクラスタメッセージ」を作成する。この新しいクラスタは、ターミナルを指し示し、関連するクラスタによって指し示されることが意図される。これらの「新しいクラスタメッセージ」は、処理されるべき「新しいクラスタを処理する」段階のために、idによってかけらにされたファイルシステムに格納される。
この段階は、セッションによってかけらにされる。このことは、入力が多くの部分(かけら)に分割され、各処理ユニットが特定のセッションのセットの1つだけを処理することを意味する。(セッションによって)入力をかけらにすることは、出力をかけらにすることとは異なることに留意する。例えば、N個の入力セッションのかけらがあるとき、(クラスタidによってかけらにされる)ノードメッセージに対するM個の出力ノードのかけらおよび(ターゲットid、ソースidによってかけらにされる)リンクメッセージに対するL個の出力のかけらがあることを考慮する。この段階の出力は、セッションのかけらおよびクラスタidのかけらによってかけらにされるM個×N個のノードメッセージファイルである。このデータが、N個の方法でマージされて、M個のクラスタidのかけらを生成する。単純なプロセスが同様にリンクのかけらに対して起こる。一般的に、段階が出力とは異なる方法によってかけらにされるとき、その一部のファイルがマージされて、次の段階が何を要求するかによってかけらにされる結果を取得する。
例として、一週間の曜日毎のユーザに関するデータを取り込むが、ユーザの苗字の最初の文字によってかけらにされるデータを生成する処理を挙げてみる。その入力は7つのファイルである。月曜日、火曜日、水曜日、木曜日、金曜日、土曜日、日曜日に対して1つのファイルである。最終的な出力は、26個のファイルである。アルファベットの各文字に対して1つのファイルである。しかしながら、先ず、7つの処理のそれぞれが、それ自身の26個のファイルを生成し、結果的に182のファイルになる。例えば、「monday―a」ファイル、「monday―b」ファイル(等)、「tuesday―a」ファイル(等)があるとする。ここで、7個のすべての「a」ファイルが1個の「a」ファイルに組み合わせられる。同様にアルファベットの他のすべての文字に対しても、26個のファイルだけが生じるまで、組み合わせられる。
この「クロス積のマージ」は、出力とは異なってかけらにされる入力に対処する1つの方法である。これは、並列にデータを生成することであって、同様に並列にさらなる処理よって消費されるデータを生成する大変効率的な方法である。これに対する代替は、ファイルシステムを単純に用いて、出力のかけらにすべてのデータを同時に付加することである。これは、大量のデータが付加され、ソースをかけらにすることが多いとき、より遅くなる傾向にある。
(2)O1を計算する。
ここでは、クラスタの確率の和、クラスタのアクチベーション回数の確率が決定される。この情報は、単純に処理セッションの段階で生成された「ノードメッセージ」の概算である。この情報は、idによってかけらにされた新しい「概算されたノードメッセージ」のセットとしてファイルシステムに保存される。この情報は、我々のモデルの一部である。この情報は、オーダー1モデルと呼ばれる。
この段階は、ノードidによってかけらにされる(ここでのノードは、ターミナルまたはクラスタである)。このことは、各処理ユニットが、データの一部だけに対してオーダー1モデルに責任を持つことを意味する。実際には、データは、そのデータが一部に対して出力する一部である。したがって、クロス積のマージは必要とされない。
(3)新しいクラスタを処理する
この段階は、新しいクラスタメッセージを受信し、クラスタが我々のモデルにどのように適合するのかを決定する。この決定がこのときまで延ばされる。なぜなら、この決定は、O1段階で計算される情報が必要であるからである。これは、重要な動態論的な理由のためである。新しいクラスタが導入されるとき、新しいクラスタへのすべてのリンクの可能性および最良の値について決定がされ得る。一般的に、このようなクラスタは、それが基づいている「新しいクラスタメッセージ」における他のリンクと同様にCANADAからリンクされる。
新しいクラスタが強すぎるリンク(大きい重みおよび可能性)であるリンクを与えられるとき、それは、新しい概念を学習することなく現存する優良なクラスタから単語を瞬時に取る。これは、クラスタが適切に関連したターミナルのセットを依然として指し示していないためである。新しいクラスタが弱すぎるリンクを与えられたとき、それは、いずれのセッションにおいて差異をつけるために十分に重要ではない。新しいクラスタが十分に強いリンクメッセージを受信しないとき、それは同様に失敗する。ここで失敗するというのは、新しいクラスタが受信するリンクメッセージは、新しいクラスタおよびモデルの残りからのリンク、ならびに新しいクラスタおよびモデルの残りへのリンクを取り除くことを意味する。
これらのリンクがどれほど強いものであるべきかを決定するために、我々は、確率においてどれだけの頻度でその潜在的な親のそれぞれが発火するかを考慮する。これがまさに上記で計算されたオーダー1モデルに存在する情報である。賢明にこの決定を行うために、我々は、次の反復においてこのクラスタの予想される発生の小さな数M(通常は100)を予測するためにリンクの可能性と重みとのバランスをとる。
この段階の出力は、「エントリメッセージ」のセットである。エントリメッセージは、モデルの逆インデックス情報に基本的に存在しているものである。エントリは、ソース、ターゲット、存在の可能性および最良の値に関しての情報を包含する。この情報は、ターゲットidによってかけられにされる。
この段階は、新しいクラスタのクラスタidによってかけらにされる。つまり、各処理ユニットは、ある新しいクラスタidだけに対してエントリメッセージを生成する。異なる処理ユニットが、(ターゲットidによって)同一のかけらになることになっているデータを生成し得るので、エントリメッセージは、ファイルシステムを用いて、同一のファイルのいくつかにそれらのデータを非同期的に付加することに留意する。クロス積のマージは、同様にここで用いられ得るが、そのデータの量はかなり小さい。したがって、データは、ファイルシステムのレベルで瞬時にマージされるだけである。
(4)リンクを最適化する
この段階は、処理セッション段階からすべてのリンクメッセージおよびすべての概算されたノードメッセージを受信し、リンク最適化のセクションで上記される態様でリンクの可能性および確率を最適化する。この段階の出力はまた、ターゲットidによってかけらにされる「エントリメッセージ」のセットである。
この段階は、ソースおよびターゲットidの組み合わせによってかけらにされる。つまり、各処理ユニットは、かけらにする空間に含まれるリンクだけに責任を持つ。結果生じるデータはかなり小さく、クロス積のマージを行う必要はなく、その結果生じるデータは、すべてのソールから並列にファイルのセットに付加される。
(5)親インデックスを構築する
この段階は、すべてのエントリメッセージを受信し、1つの特定のターゲットに対してそれらをひとまとめにする。この段階はまた、セットされている数Nに対する特定のターゲットを示し得るソースの数を制限する。Nに対する一般的な値は100くらいである。ターゲットを指し示すN個のソースは、ターゲットにとって最も重要なソースである。ここでは、重要さは、ソースに対するO1の値と、そのリンク沿いのリンクの重みと、そのリンク沿いのリンクの可能性との積によって決定される。この簡略化は、効率化のために特定の小さなノードを指し示す親の数を保つために行われる。これはまた、別のスケーラビリティ技術であり、我々は、これを「行の希薄」と呼ぶ。
この段階の出力は、上述のモデルファイルに対する逆インデックスの特定のかけらである。出力は、入力と同様の態様でターゲットidによってかけらにされる。段階全体が、同様にターゲットidによってかけらにされる。
(6)子インデックスを構築する
この段階は、親インデックスデータを反転させて、子インデックスを構築する。子インデックスの入力は、リンクのターゲットによってかけられにされ、その出力は、ソースによってかけらにされる。各処理ユニットは、並列に、多くの結果ファイルを付加する。
上記は、ルーピー確度伝播の1つの反復を実行して、モデルを洗練するステップを記載する。この処理は、よりよいモデルを得るために必要なだけ繰り返される。
リナンバリング
数回の反復ごとに起こる「リナンバリング」と呼ばれる特別なステップがある。クラスタCは、クラスタCにリンクし得るが、逆は起こらないことを思い出してください。一般的に、iがjより小さいとき、id=iのクラスタはid=jのクラスタにリンクし得る。特別関係および一般関係を学習するために、より大きなクラスタがより小さいクラスタにリンクすることが所望される。概念は、通常、一般化より特別化を有するので、前もってより大きなクラスタをid空間に配置することは理にかなっている。これは、関係が学習されるあいにく必要でない順序である。このために、我々は、ときどき(数回の反復毎に)、クラスタのすべてをリナンバリングする。
クラスタをリナンバリングすることは、ほとんどすべてのリンク上のリンクの重みおよび可能性を変更することを意味する。この起こり方は以下のとおりである。クラスタAが重みwを有するクラスタBを指し示すとする。さらに、AおよびBの確率の和をそれぞれp1およびp2とする(これは、o1モデルの構成要素の1つである)。ここで、我々は、Aがセッションのほぼ一部分p1に現れ、Bがセッションの一部分p2に現れ、AおよびBが、セッションの一部分(p1 w)に現れると予想する。これらの数は、もちろんすべて概算である。BがAを指し示させる適切なアプローチは、予想される同時発生の同一の数を保つことである。これは、
w’p2=wp1
または
w’=wp1/p2
を満たす新しいリンク重みw’用いて達成される。
このことを行うために、特定のモデルが「エントリメッセージ」に変換され、オーダー1モデルの一部分がメモリにロードされ(一部分がp1およびp2構成要素に対して必要とされる)、そして、この変換が起こる。この変換の出力は、通常の動作の「親インデックスを構築する」段階に供給されるエントリメッセージのセットである。
親選択(候補クラスタを選択する)
セッションを分析するとき、本発明の1つの実施形態は、我々が明らかにするローカル確度ネットワークにおいて何千にもおよぶすべてのクラスタを含んでいない。我々は、先ず、どのクラスタがアクティブある可能性が一番低いのかを決定し、残りがオフであると仮定する。我々は、我々が考慮するクラスタを「候補クラスタ」と呼ぶ。どのクラスタが候補であるのかを決定するために、我々は、モデルにおける高さの昇順でクラスタの優先待ち行列を評価するために、それらを保つ(クラスタidを減少させ、一般性を増加させる)。我々は、セッションに対するターミナルのすべての親にその行列を加える。我々は、それから、行列のクラスタを除き、それを評価する。所定のクラスタCに対して、我々は、図15.1に示される確度ネットワークを構築する。我々は、CおよびCによってリンクされるセッションにおけるすべてのターミナルを含む。Cがある定数(我々は、3.0を用いる)と同等のアクチベーションをまるで有するように、我々は、これらの複数のノードの間のリンクの重みを計る。我々は、セッションにおける単語の数によって乗算されたターミナルのo1モデルと同等の重みを有するターミナルであって、どこからともなくそのターミナルにリンクを追加する。このリンクは、そのターミナルが他のものによって引き起こされる可能性をおおよそ概算する。我々は、どこからともなくリンクをCのo1モデルと同等の重みを有するCに追加する。それから、我々は、このネットワークを解いて、Cの確率を獲得する。ネットワークはツリーであるので、我々は、これを直ちに解決し得る。ネットワークにおけるCの確率があるしきい値(我々は、0.05を用いる)を超えると、我々は、Cは、候補クラスタであると判断する。この場合には、我々は、Cのすべて親を、評価されるべきクラスタの行列に追加する。
我々が既に候補クラスタとした別のクラスタCを子として有するクラスタCを我々が評価している場合には、我々は、Cに関して適切である付加的な証拠を追加するように、Cに対して我々が作成したネットワークにおいて我々がCに対して作成したネットワークを含むことを所望する。このような包含における危険は、包含することによってネットワークにおいてループが作成されることである。したがって、我々は、クラスタに対応するターミナルおよびサブネットワークのすべてが交差しないように、ターミナルおよびクラスタの子をCに対するネットワークに追加するだけである。どのクラスタを含むべきかを選択する際に、Cに送信されるメッセージの強度の順序で、我々は強欲に選択する。例えば、クラスタCが、セッションにおけるターミナル「灰色」および「マウス」ならびに、またクラスタCにリンクされるとき、我々は、Cを含む15.2Aに示されるようなネットワーク、または、Cから「灰色」へのリンクを含む図15.2Bに示されるようなネットワークのいずれかを構築する。我々は、どちらのメッセージがより強いのか(CからCまたは「灰色」からC)に依存して、どちらのネットワークを構築するかを選択する。
実際には、これらのネットワークに対応するデータ構造は、構築される必要がない。我々がCを候補クラスタとし、かつ、Cの親Cを評価されるべき行列に加えるとき、我々は、CがCに対するネットワークに含まれるとき、CからCに渡されるメッセージおよび、(Cに対するネットワークの他の要素との交わりをさけるために)Cがルートであるツリーにおけるノードのセットを明記することとを追加し得る。セッションにおけるターミナルの親を行列に加えるとき、同様なメッセージがまた追加される。
差分テキストソース調整技術
我々は、問い合わせセッションに照らして我々のモデルを述べてきた。しかしながら、本開示の最初に指摘されるように、我々のモデルは、ウェブ文書といった任意のテキストソース上で実行され得る。我々が発達させた当該の1つの技術は、1つのデータのソース上で我々のモデルをトレーニングし、一方で、別のソース上でそれを適用することである。
例えば、我々は、ユーザの問い合わせに基づいて我々のモデルをトレーニングし、トレーニングされたモデルを適用し得、ウェブページにおけるさまざまなクラスタの存在の確率を予想する。これはときどき問題である。なぜなら、動詞といったある単語が、より多くの名詞を有する傾向があるユーザの問い合わせにおいてより頻繁に文書において起こるからである。あいにく、問い合わせにおいて、多くの動詞は、歌詞に存在し、しばしば、問い合わせによってトレーニングされたモデルは、歌詞に関して一部である大半の文書を識別する。
このための調整は、候補の言葉(つまり、ウェブページの言葉)におけるリンクの可能性を反映するようにCANADAからすべてのターミナルへのリンクの重みを変更することである。ターミナルに対するCANADAからの説明は、基本的には、そのターミナルを創造したはっきりと定義された概念がないために、これは、それらの単語をいくらか軽視する結果になるという声明である。これは、しばしば、結果として、問い合わせおよびウェブページにおいて複数の概念を比較する、よりよい概念エンジンになる。
適用され得る別の小さな修正は、テキストをトレーニングする際に有用である独立の仮定に対処する。多くのウェブページは、お互いのコピーである。異なるウェブサーバにカットされ、ペーストされる。繰り返されたコピーの裏にある隠された意味を伴わずに、我々のモデルが繰り返されたコピーをそのまま学習してしまう結果になるので、すべてのこれらの上で我々のモデルをトレーニングすることは、少しだけ無駄である。この問題を減らすために、我々は、大量の文書のセットから、例えば、N以上の単語(通常Nは、10程度である)の繰り返されるすべての動作を省き得る。これは、N単語のすべてのシーケンスをラベル付け(fingerprint)し、そのラベル付けをグループ化するようにソートし、それから、1度より多く見られる10単語の動作から始まる単語を取り除くために、テキストをトレーニング反復に戻る。この技術は、ウェブ上でトレーニングする際に、我々のモデルを用いて適用される。
実演
この点では、図16の我々のモデルからのある出力を見てみる。「Model of 1378939 clusters」の列より下の情報を一瞥する。このデータは、2カラムフォーマットである。左側のカラムは、クラスタに対してo1モデルを報告する。つまり、我々のモデルの最後の反復におけるすべてのセッションにおいてクラスタの存在の確率の和である。右側のカラムは、クラスタに対する現在の我々の名前である。CANADA(普遍ノード)がすべてのセッションにおいて存在するので、番号595417600はまた、このモデルがトレーニングされているユーザセッションの番号である。
次のクラスタを見てみる。それは、[john david mark paul michael scott]とラベル付けされている。これは、第1の名前を有するクラスタのである。次のクラスタ[free sex porn pics movies xxx]は、性的な単語のクラスタである。次のクラスタ[uk england london in―the―uk―ltd friends―reunited]は、イギリスのコンテンツに注目している。早めの忠告であるが、このモデルがイギリスの問い合わせグループ上で実行されるが、我々のモデルにおいては、言葉の点に関して制限ななく、同様なモデルも容易に他の任意の言葉で構築され得る。次のクラスタは[pictures of picture photos pics images]である。このクラスタは興味深い、なぜなら、ウェブ上の写真を求める多くの異なる方法のいくつかによってラベル付けされているように思われることに留意する。実際に、これは、まさに我々のモデルが意図されるところであり、トピック毎に単語をグループ化することである。
およそ130万のこれらのトピックがある。(もっとも多くても)ほんのわずかだけが図16に表されている。ここで、クラスタの1つをじっくり見てみる。カウント6408187を有するクラスタが、[jobs job employment in job―search careers]とラベル付けされている。HTMLインターフェースが、我々のモデルを用いて提供されており、そのクラスタに関するより詳細な情報を提示しているクラスタを選択している。このより詳細な情報が図17に示してある。我々は、先ず、横線より下の情報を見てみる(我々は、後ほどサーチボックスに戻る)。
ここでは、3つの主なセクションがある。1つはPARENTSとラベル付けされ、1つはCHILDRENレベル付けされ、もつ1つは、「ID4737501」で始まる。PARENTSおよびCHILDRENセクションは、このクラスタが関連している残りのクラスタをリストアップする。左側のカラムは、親がこの特定のクラスタをトリガーする、または子がトリガーされると予想される回数をリストアップしている。ここでの親情報はわずかであり、CANADAだけがこのクラスタを有する親である。これは、なぜなら、仕事(job)の概念が大変大きいものであるので、リナンバリングが多くの他の概念を有する親に概念を移動させるためである。
ここで、子の情報を見ている。子はリストの下の方でより頻繁にトリガーされていることに留意する。子の概念[in jobs for india it bangalore]が、この仕事のクラスタから378070回トリガーされると予想される。このサブクラスタは、仕事を探しているインドの人々である。次のサブクラスタは、教育を話題にする[programs degree program education online masters]である。このことは、人々が仕事について話すとき、彼らは、しばしば教育についての話をすることを意味する。次のクラスタは、給料に関する[salary salaries average salary―survey wages pay]等である。我々のモデルは、仕事がしばしば、教育、給料および賃金に関連していると決定づける点で、世界について注意を引き付けるほどの量の情報を包含する。子のクラスタに続く数字は、例えば、(0.060810,inf)は、2つのクラスタの間のリンクの最良の値と、リンクの存在におけるlogodds確度(この場合においては無限である。したがって、我々のモデルによれば確率1.0を有する)とを詳細に示す組である。
ここで、ID4737501から始まる情報を見てみる。これは、この仕事のクラスタのidが4737501であることを意味する。「Total Firing:6408187.000000」は、このクラスタ(o1)の存在の確率の和が、我々のモデルの最後の反復で6408187回であることを意味する。発火することは、ときどき、確率、または確率の和に対する同意語として用いられる。その「Total Activation:11139140.000000」は、クラスタのアクチベーション回数の合計を最後の反復においてすべてのセッションにおける確率と乗算するに対するオーダー1エントリである(これは、実際には、Total Activation Times Probability呼ばれるべきであるが、この名前は使いにくい)。
「Outlink Sum:0.848506」は、重みの合計とクラスタに対するリンクの可能性を乗算が0.848506であることを意味する。「Activated Outlink Sum:0.521899」は、重みの合計をターミナルへの可能性を乗算が0.521899であることを意味する。さて、それより下の情報がまた、2カラムフォーマットになっている。CHILDRENとPARENTSセクションと同様に、次のセクションは、このクラスタとターミナルとの間のリンクを詳細する。
第1のターミナルは「jobs」である。左側の情報1841287は、このクラスタが単語「jobs」をトリガーする回数である。この単語の右側の情報はまた、このクラスタの最良の値および存在を有する対数の可能性である。次のいくつかの単語は、「job」、「employment」、「in」、「job―search」、「careers」、「it」、「career」、「job―opportunities」、「human―resources」等である。これらのターミナルのすべては、人々が仕事の概念を話題にするとき用いられる。より多くのターミナルがこのクラスタからリンクされ、一番重大な複数のクラスタだけがこの図において表示されていることに留意する。
これらの概念のいずれかを用いることは、この考えがアクティブであることを示し、いくつかの単語が他の単語よりアクティブである。例えば、仕事という単語は、この概念によってもっとも引き起こされる。我々は、異なる出力を考察することによってこれを調べる。この異なる出力は、単語「jobs」に対するすべてのターミナルに対して利用可能である。図18は、この出力を示す。「TERMINAL:jobs」の行から始める。次の行は、「Firing:3049398.000000」である。これは、以前の反復におけるこの単語の発生の可能性の和が3049398であることを意味する(複合化のために、ターミナルは、セッションにおいて、1.0とは異なる発生の確率を有し得ることに留意する)。次のいくつかの行は、このターミナルをもっとも強くさせるクラスタを詳述する。最初の行の[jobs job employment in job―search careers]がもっとも強いクラスタである。より多くのクラスタがこのターミナルにリンクし、もっとも重要な複数のクラスタだけがこの図面に表示されることに留意する。
ここで、ターミナル「in」は、[jobs job employment in job―search careers」におけるクラスタであるが、(図19に示されるように)このターミナルに対するページを選択することは、我々は、CANADAは、「in」をもっとも起こすクラスタであることがわかる。この解釈は、以下の通りである。「in」は、人々が仕事を話題にするときに用いられるが、「in」はまた、より頻繁に他のものによって引き起こされる。したがって、「in」は、人々が検索する際に、単語「jobs」ほど強いインジケータではない。ここでは、同様に、より多くのクラスタは、このターミナルリンクし、もっとも重要な複数のクラスタだけがこの図面に表示されることに留意する。
ここで、我々は、ページの一番上のサーチボックスを見てみる。我々は、問い合わせ「palo alto restaurants」をこのボックスに入力し、Searchをクリックする。図20は、この検索の結果を示す。行「QUERY:palo alto restaurants」から始めてみる。これは、単純にボックスにタイプされたものである。次の2つの行は、複合語「palo alto」および単語「restauratns」である。これらは、問い合わせの現在の複合化(ときどきセグメント化と呼ばれる)を表している。
さて、単語palo―altoの次の数字を考察してみる。最後の数9.9789は、それが単語を表すために取るビットの数である。ビット表現コストと確率との間には相対性がある。ここで、ビットコストは、確率の底を2とする負の対数(−log(Pr))である。これは、単語palo―altoは単語が発生する2^9.979(約1000)回におよそ1回起こることを意味する。真ん中の数字は、残りの単語が見られたとすると、単語がどれだけの数のビットを必要とするかに対する概算である。単語palo―altoは、よくならない(より可能性が大きくならない)が、単語restauranntは、よくなる。これは、なぜなら、palo altoを検索する人々は、大変高い頻度(およそ23.7回に一度、つまり、10回に一度)で、palo altoにあるレストランを所望するからである。同じことがpalo altoに関して執筆している人々に対する文書に当てはまる。
この情報の1つの利用の仕方は、文字検索においてどの単語が落とされ得るかを決定することである。なぜなら、それらは、他の単語より、明確でないからである。例えば、「pato alto」レストランの検索が、文書のコーパスから十分な結果を戻さないとき、もしかしたら、あなたはただpalo altoと記載するページを探し、そのページがレストランに関してであるが、異なる単語(例えば、[restaurants in restaurants restaurants dining best]クラスタにおける単語の1ついった単語)を用いているかどうかを確かめ得る。palo altoに対する最初の数字15.2624はビットコストであるが、文書において高い可能性で起こりそうな(>0.95)クラスタがあると仮定する(このセッションに対してはない)。この数字もまた概算である。
「session graph 8 nodes 16 edges」で始まる行は、ターミナルを見た証拠を解くために導入されるローカルネットワークについて話している。我々のモデルは、8個よりずっと多くのクラスタを有するが、ターミナルおよびクラスタの希薄技術は、我々が合計で8個のノードを考察するだけでよいことを意味することに留意する。ここでは、ノードは、クラスタまたはターミナルであり得る。その行の残りは、タイミング情報を取り扱っている。次のいくつかの行は、問い合わせにおいて見つけられたすべてのクラスタについての情報を表している。1番目は、[restauratns in restaurants restaurants dining best]と名づけられたレストランのクラスタである。その左側に3つの列がある。1つ目は、クラスタの確率である。2つ目は、クラスタの確率をアクチベーションと乗算したものである。3つ目は、クラスタの確率を調整済みのアクチベーションと乗算したものである。ローカルネットワーク内のアクチベーションは真である可能性の単語をトリガーし得、可能性のある単語で任意にセットされただけであることを思い出してください。一度、我々がネットワークを解いたら、我々は、ターミナルがどこから出ているかについて、より経験に基づいた推測をし得る。我々は、各クラスタと各ターミナルとの間のトリガーノードの確率を計算することによってこのことを行う。クラスタは、「調整済アクチベーション」として発火する各ターミナルの確率を得る。
見つけられる2つ目のクラスタは、0.682912の存在の確率を有する[san―jose ca sunnyvale santa―clara bay―area mountain―view]クラスタである。3つ目は、0.37の確率を有する[palo―alto menlo―park restaurant evvia palo straits―cafe]のクラスタである。ここで留意するべき興味深いことは、「Evvia」および「Straits Cafe」の双方が、実際には、パロアルトのレストランであるということである。このクラスタは、パロアルトの周囲のレストランの概念だけを包含したものである!
このようにして、我々のモデルは、さまざまな概念が任意のテキストに存在する確率を推定するように用いられ得る。同じことが、ウェブページおよび問い合わせにおいて存在する同一の概念を考察することにより、同様にウェブページに対して行われ得る。我々のモデルの使用の1つは、ウェブページ上の検索のためである。次のセクションでは、我々のモデルの使用のいくつかを話す。
モデルの使用
このセクションは、我々のモデルの可能な使用のいくつかを詳述する。
(1)テキストの裏側にある概念を推測する。それから、この概念がユーザに表示されて、ユーザがこのテキストの裏側にある意味をより理解することできる。
(2)文書と問い合わせの単語および概念を比較する。これは、文書がウェブページである特別な場合を含んでいる任意の文書サーチエンジンにおいて必要とされる情報取り出しスコアリング機能である。
(3)ウェブ検索に対して我々のモデルを用いる異なる方法は、クラスタの分布が問い合わせに及ぶと仮定することである。例えば、単語「ジャガー(jaguar)」に対すると問い合わせは、不明瞭である。その単語は、動物または車のいずれかを意味し得る。我々のモデルは、この検索に応答して双方の意味に関連するクラスタを識別する。この場合には、我々は、ユーザが2つの問い合わせのうちのいずれか1つ(ジャガー(車)の問い合わせ、またはジャガー(動物)問い合わせをタイプしたと考慮し得る。我々は、それから、それぞれのクラスタの確率の比率を考慮して、これらの問い合わせの双方に対する文書を取り出し得る。我々が各意味に対してどれだけの数の結果を戻すかを慎重にバランスを取ることにより、我々は、検索に対する結果のある程度の多様性を確実にし得る。
(4)文書と広告の単語および概念の比較を行う。広告はあるコンテンツに添付されたとき、広告がどれ程うまく遂行されていかに対するプロキシとして用いられ得る。この特殊化は、広告をウェブページに添付することである。
(5)問い合わせと広告(または広告に対するターゲット基準)の単語および概念の比較を行う。サーチエンジンでは、広告主は、しばしば「ターゲット基準」のセットを選択する。ターゲット基準がユーザの問い合わせに現れるとき、広告が提供される。これらの基準を有するこれらのテキスト(および広告そのもの)が、我々のモデルにおけるクラスタの使用によって、問い合わせと比較され得る。問い合わせから結果生じる検索ページ上に提供されるとき、この比較はどれ程広告がうまく遂行されているかに対するプロキシであり得る。
(6)2つの文書間の単語および概念の比較を行う。これは、文書の概念のクラスタ化に対する距離の測定基準として用いられ得る。ここで、同様な文書がグループ化される。
(7)クラスタの領域にテキストを発射する。このテキストにおけるクラスタの確率は、任意の分類タスクのための特徴として用いられ得る。例えば、クラスタ上にページのテキストを発射し、クラスタおよび単語を入力として用いる分類器を構築することによって、ポルノグラフィー用のフィルターが生成され得る。
(8)親クラスタが与えられているとき、ビットコストまたは単語およびターミナルのセットの確率を用いて、より多くの結果を取り出すようにウェブの問い合わせを一般化する。
(9)2つの単語によって生じた概念を考察することによって特定の単語が別の単語の綴り間違いであるかを推測する。
局所的推論機構
グローバルノード上では、ルーピーを用いるが、ルーピー以外のアプローチを用いてローカルネットワークを解くことは可能である。このようなアプローチの利点は、これはアプローチがルーピーより速く、かつ、より正確に解決を見つけ出し得る。続く2つのセクションは、ローカルネットワーク上で用いられ得る代替の推測技術を詳述する。
別のローカル推論機構
ローカルネットワークにおいて推論する別の方法は、ルーピーを実行する代わりに、問題に対して2つ、3つの優れた解決を探すことである。我々は、完璧にインスタンス化されたネットワークの領域を検索して、我々のネットワークに対する優れた解決のセットを見つけ出す。我々は、これらをまるでネットワークに対する解決の完全なる一覧表であると見なす。我々は、ルーピーが送信するものと同様なリンクメッセージを送信するが、我々が十分優れた解決のセットを考慮するとき、リンクメッセージはより正確である。我々のシステムの残りの部分は主に同じである。
クラスタがオンまたはオフされるとき、我々は、即座にネットワーク全体の確率をアップデートし得、これらの確率のすべてが格納される(これは、インスタンス化の確率が多くの局所的条件的な確率のテーブルの積であるからである)ことに留意する。検索中に、履歴がネットワークにおける各クラスタに対して格納される。これは、我々が、結果的にリンクメッセージをより速く計算することを助ける。
通常、完全なるインスタンス化を用いる我々の検索は、次のように進む。我々は、CANDADA以外のすべてのクラスタを除くことから始める。我々は、個々のクラスタをオンまたはオフにすることによって局所的最適値に登坂(hill―climb)する。それから、CANADA以外の各クラスタノードに対しては、我々は、グローバル最適値から始める。我々は、そのノードの値をオンおよびオフし、固定されているそのノードの値を保持し、局所的最適値が到達されるまで、我々は残りのノード上を登坂する。処理の途中で、我々が新しいグローバル最適値を発見した場合には、我々はこのグローバル最適値を用いて、最初からやり直す。このようにして、CANADAクラスタノード以外のそれぞれの各値を有する優れた解決を考慮することにより、我々は保証される。
この方法の1つの利点は、検索が、実行の速度と正確さを交換するために任意に制限され得ることである。多くのテキストの分析の際には、我々のモデルが適切な時間内に戻るために、交換がしばしば実行の速度を優先して行われる。
さらなる別の局所的推論機構
ローカルネットワークにおいて推論を行うもう1つの方法は、しばらくの間ルーピーを実行させ、それが即座に解決を見つけ出すかを確かめることである。ルーピーが即座に解決を見つけ出すとき、ローピーがより正確に解決を見つけ出すことを示す理論結果がある。この場合には、ルーピーが即座に解決を見つけ出さないとき、1つ以上のノードが「条件付き」であり得る。つまり、ルーピーが、これらの変数の真および偽の値の双方に対して実行される。ネットワークが、十分な条件付きであるとき、ルーピーは、より安定する。これは、ループの上または側面の条件付けが、(さまざまな理論的理由のために)ルーピーにおいてループしているメッセージの循環を破壊するからである。ルーピーが即座に解決を見つけ出すまでこの条件付けは再帰的に適用される。条件付きのルーピーを実行した後の結果は、さまざまな条件であり、それらさまざまな条件下では、すべてのリンクメッセージが既知である。
残っているすべては、(通常は、条件が異なるので)相対的確率にそれらの条件を組み合わせ得ることである。我々が考案した1つの技術は、ルーピーがネットワークを見つけ出した後に、ネットワークのエントロピーの測定値(おおよそ、ネットワーク収束において残っているフリービットの数)およびネットワークのエネルギー(おおよそ、ネットワークが、前回の制限を破る量)を用いて、組み合わせの確率を推測することである。この概算は、我々が正しい順序でさまざまなリンクメッセージを組み合わせることを可能にする。我々のモデルの残りは、主に同じである。
文書を特徴付ける処理
図21は、本発明の実施形態に従って文書を特徴付ける際に関わるデータ構造を示す。これらのデータ構造は、オーダー1の確率テーブル2102、親テーブル2104、子テーブル2106およびリンクテーブル2108を含む。
オーダー1の確率テーブル2102は、確率モデルにおける各ノードに対するエントリであって、ノードがアクティブであるオーダー1の(無条件的な)確率を概算するエントリを含む。従って、オーダー1の確率テーブル2102のエントリは、確率モデルによって生成された単語のセットにおいて、関連した単語またはクラスタがどれ程一般的であるかを示す。本発明の1つの実施形態において、オーダー1の確率テーブル2102はまた、各クラスタノードに対して「アクチベーション」であって、候補クラスタから別のノードへどれ程の数のリンクが発火する可能性があるのかを示すアクチベーションを含む。
親テーブル2104は、確率モデルにおいて関連したノードを有する親を識別するエントリと、識別された親からのリンクの重みとを含む。
同様に、子テーブル2106は、確率モデルにおいて関連したノードを有する子を識別するエントリと、識別された子からのリンクの重みとを含む。
オーダー1の確率テーブル2102、親テーブル2104および子テーブル2106は、文書を特徴づける前に、確率モデルに対してあらかじめ計算される。それに対して、文書を特徴付ける処理中に、リンクテーブル2108は埋められる。
リンクテーブル2108は、証拠として考えられるリンクに対するエントリを含み、一方で、エビデンスツリーを構築することが、図22〜図25を参照して以下に記載される。リンクテーブルの各エントリ2108は、関連する親ノードに対する識別子と同様に関連するリンクに対する重みを包含する。さらに、リンクテーブル2108は、以下に記載されるように親識別子によって格納され得る。
図22は、本発明の実施形態に従った特徴付け処理のフローチャートを示す。このシステムは、単語のセット(ステップ2202)を包含する文書を受信することによって開始する。この文書は、問い合わせからのウェブページまたは用語(単語)のセットを含み得ることに留意する。
次に、このシステムは、単語のセットを生成する際にアクティブであり得 る「候補クラスタ」であって、確率モデルからその「候補クラスタ」のセットを選択する(ステップ2204)。この処理は、図23を参照して、より詳細に記載される。候補クラスタのセットを選択することによって、このシステムは、それに続く計算において考慮されるクラスタの数を制限し、このことによって、文書を特徴付ける際に関わる計算の数を減らすことに留意する。
このシステムは、それから、ベクトル(構成要素のセット)を構築して、文書を特徴付ける(ステップ2206)。このベクトルは、候補クラスタに対する構成要素を含む。ベクトルの各構成要素は、文書における単語のセットを生成する際に対応する候補クラスタのアクティブである度合いを示す。この処理は、図24〜25を参照して、より詳細に以下に記載される。
最後に、このシステムは、この文書に関連する異なる動作を容易にするようにこのベクトルを用い得る(ステップ2208)。これらの使用のいくつかは、「モデルの使用」と題目された本明細書の先のセクションに記載される。
図23は、本発明の1つの実施形態に従った候補クラスタの選択をするための処理のフローチャートを示す。このフローチャートは、図22のステップ2204を実行する際に伴う動作をより詳細に記載する。このシステムは、文書における単語のセットに関連したターミナルノードから始まり、親ノード続くリンクである「エビデンスツリー」を構築することにより始まる(ステップ2302)。ノードがエビデンスツリーの一部として選択されるとき、親ノードからそのノードへのリンクがリンクテーブル2108に挿入される。
このエビデンスツリーを構築する処理中に、このシステムは、このエビデンスツリーを用いて、単語のセットを生成する際に各親クラスタがアクティブである可能性を推測する(ステップ2304)。より詳細には、本発明の1つの実施形態において、ターミナルノードを指し示すだけであるクラスタノードCに対して、このシステムは、以下の公式を用いて、単語のセットを生成する際にCが関わる可能性を推測する(我々は、この推測された可能性を「Cの推測(Guess of C)と呼ぶ」。
この公式は、Cの推測が、Cのアクティブな子ノードwからの条件的な確率寄与(Contribution)の積によって乗算されたCのオーダー1の確率であることを示す。この寄与の分子
は、Cのアクチベーションにおける推測によって乗算されたCからwへのリンクの重みである。Cのアクチベーションは、ノードCより外のアクティブなリンクの数のインジケータであることを思い出してください。この寄与の分母
は、単語のセットにおける単語の数によって乗算されたwのオーダー1の確率である。
他のクラスタノードを指し示すクラスタノードCでは、公式がわずかに異なる。
Guess(C)=O1(C)・Score(C
ここで
ターミナルだけを指し示すクラスタノードの場合には、Cの推測は、条件的な確率寄与の積によって乗算されたCのオーダー1の確率である。しかしながら、これらの条件的な確率寄与は、子ノードwと同様に他のクラスタCからももたらされる。
子ノードからのこの寄与は、クラスタノードがターミナルだけを指し示す場合と同様である。
他のクラスタからの寄与は、より複雑なものであり、以下の公式である。
ここで、
は、Cが与えられているとき、Cの条件的な確率であり、P(C)は、Cのオーダー1の確率であり、スコア(Score)(C)は、Cの前もって計算されたスコアである。エビデンスツリーが上のターミナルより構築されるので、子ノードのスコアCは、親ノードのスコア(C)が計算される前に、計算されることに留意する。
本発明の1つの実施形態において、このシステムは、所定のクラスタノードに対する推測処理中に、ターミナルノードに印を付けてターミナルノードが一度より多く推測する際に考慮されないことを確実にする。
最後に、このシステムは、これらの推測された可能性に基づいて、候補クラスタノードである親ノードを選択する(ステップ2306)。この「親選択」処理の最後に、このシステムは、アクチベーションとともに考慮される候補クラスタのセットを有する。
図24は、本発明の実施形態に従った候補クラスタに対する確率を概算する処理のフローチャートを示す。先ず、このシステムは、確率モデルに対する状態であって、単語のセットを生成したと思われる状態を選択する。
次に、このシステムは、ベクトルを構築する。このベクトルは、候補クラスタに対する構成要素を含む。こられの構成要素のそれぞれは、単語のセットを生成する際に、対応する候補クラスタがアクティブである可能性を示す。構成要素を推測するために、関連した候補クラスタが単語のセットを生成する際に、このシステムはアクティブである確率を概算する際に選択された状態だけを考慮する(ステップ2404)。
より詳細には、本発明の1つの実施形態において、このシステムは、所定の構成要素Vのベクトルであって、クラスタノードCに関連したベクトルを計算する。公式は、以下のとおりである。
Vi=Activation(C)×P(C),
ここで、アクチベーションCは、ノードCが発火するとき、発火するリンクの数のインジケータである。P(C)は、文書における単語のセットを生成する際に、Cがアクティブである確率である。
P(C)は以下の通りに計算され得る。
この公式は、P(C)は、探索されたネットワークに対するすべてのネットワーク確率の合計によって除算されてアクティブである発見されるCにネットワークに対するネットワーク確率の合計であることを示す。
所与のネットワーク状態が起こっている確率は、以下のよう計算され得る。
この確率は、「オン」であるノードからの寄与を含む。より詳細には、所与のネットワークにおけるオンである各ノードjに対して、このシステムは、(アクティブな親ノードから)jへの少なくとも1つのリンクが発火する確率を計算する。これは、1から、アクティブな親ノードからjへのリンクが発火しない確率を差し引いたものである。ここで、アクティブなノードからのリンクが発火しない確率は、1からリンクの重みを差し引いたものである。
この確率はまた、「オフ」であるノードkからの寄与を含む。オフである所定のノードkに対して、この寄与は、リンクが、アクティブなノードiからkを差し示さない確率であり、これは、単純に、1からリンクの重みを差し引いたものの積である。
図25は、本発明に従って確率モデルに対する状態がどのように選択されるのかを示す。このフローチャートは、図25のステップ2402に伴う計算作業をより詳細に記載する。状態を選択する際に伴う計算作業の量を制限するために、本発明の1つの実施形態は、文書における単語にセットに関連した候補クラスタノードおよびターミナルノードだけを考慮する。
このシステムは、確率モデルに対する開始状態をランダムに選択することによって開始する(ステップ2502)。各開始状態は、確率モデルにおいてどのノードがアクティブであって、どのノードがアクティブでないのかを示す。普遍ノードが、発火される候補クラスタの任意のサブセットをトリガーし得るので、任意の開始状態が可能であることに留意する。
また、確率モデルにおけるリンクの重みは、文書における単語にセットを生成する際に、他の状態より、より可能性のある状態を作ることに留意する。従って、ランダムな開始状態は文書における単語のセットを生成したであろう可能性はない。より可能性のある状態を見つけ出すために、このシステムは、文書における単語のセットを生成したであろう状態に到達するように「登坂」動作を行う(ステップ2504)。既知である多数の登坂動作がこのために用いられ得ることに留意する。登坂動作は、通常、特定の目的関数の値を増加させる態様でシステムの状態を変化させる。この場合には、この目的関数は、上述される、起こっている所定のネットワークの状態の確率(Pnetwork)である。
本発明の1つの実施形態において、このシステムは、目的関数に関わらず複数の登坂動作との間で個々の候補クラスタンの状態を周囲的に変化させる。このようなことを行う際には、このシステムは、変化された状態が引き続く登坂動作中に変化しないように変化された状態を固定する。これは、変化されて状態を含む目的関数に対する局所的最適値を生成し、その変化された状態は、さもなくば、登坂動作だけを介して到達不可能である確率モデルの状態を探査することをシステムに可能にする。
本発明の実施形態の先述の記載は、例証と説明だけのために提示されている。それらは、完全である、または、開示された形式に本発明を限定することを意図されない。従って、多くの改良および変形が当業者には明らかである。さらに、上記の開示は、本発明を制限することを意図されない。本発明の範囲は、添付の請求項によって定義される。
図1は、本発明の1つの実施形態に従った確率モデルを示す。 図2は、本発明の1つの実施形態に従った確率モデルの状態を示す。 図3は、本発明の1つの実施形態に従ったアメリカ合衆国の州を表しているモデルを示す。 図4は、本発明の1つの実施形態に従ったグローバルノードおよびローカルネットワークの数を示す。 図5は、ローカルネットワークノードとグローバルモデルノードとの間の相互作用を示す。 図6は、本発明の1つの実施形態に従って修正されたモデルを示す。 図7Aは、本発明の1つの実施形態に従った2つのブールノードを有する単純なネットワークを示す。 図7Bは、本発明の1つの実施形態に従った2つのブールノードを有する単純なネットワークにおいて、どのように推測が動作するかを示している。 図8は、本発明の1つの実施形態に従ったローピーが機能しなくなるノイジー―オアネットワークを示す。 図9は、本発明の1つの実施形態に従った単純なセッション内のルーピーの計算を示す。 図10は、本発明の1つの実施形態に従った簡略化されたローカルネットワークを示す。 図11は、本発明の1つの実施形態に従ってターミナルをトリガーするように競う2つのクラスタを示す。 図12は、本発明の1つの実施形態に従ってランタイム時のレキシキンにおいて、ローカル確率ネットワークが複合語をどのうように複合的に処理するかを示す。 図13は、本発明の1つの実施形態に従った「ターミナルの希薄」を介してグローバルノードへ、単一のクラスタCがどのように仮想メッセージを発行するかを示す。 図14は、本発明の1つの実施形態に従った新しいグローバルノードの最適な設定を明らかにする際に、希薄なリンクメッセージがどのように用いられるかを示す。 図15.1は、本発明の1つの実施形態に従った確度ネットワークを示す。 図15.2Aは、本発明の1つの実施形態に従った例示的なネットワークを示す。 図15.2Bは、本発明の1つの実施形態に従った代替の例示的なネットワークを示す。 図16は、本発明の1つの実施形態に従ったシステム出力を示す。 図17は、本発明の1つの実施形態に従ったさらなるシステム出力を示す。 図18は、本発明の1つの実施形態に従ったまたさらなるシステム出力を示す。 図19は、本発明の1つの実施形態に従ったまた別のさらなるシステム出力を示す。 図20は、本発明の1つの実施形態に従った検索の結果を示す。 図21は、本発明の1つの実施形態に従って文書を特徴付ける際に関わるデータ構造を示す。 図22は、本発明の1つの実施形態に従った特徴付け処理のフローチャートを示す。 図23は、本発明の1つの実施形態に従ってクラスタを選択する処理のフローチャートを示す。 図24は、本発明の1つの実施形態に従って候補クラスタに対する確率を概算する処理のフローチャートを示す。 図25は、本発明の1つの実施形態に従って、確率モデルに対す状態がどのように選択されるのかを示す。

Claims (42)

  1. 概念的に関連した単語のクラスタに対して文書を特徴付ける方法であって、該方法は、受信する機構と選択機構と構成要素構築機構を含む装置によって実行され、
    該方法は、
    該受信する機構が、該文書を受け取ることであって、該文書は単語のセットを含む、ことと、
    該選択機構が、該単語のセットに関連する概念的に関連した単語の候補クラスタを選択することであって、概念的に関連した単語のクラスタから単語のセットがどのように生成されるのかを説明するモデルを用いて、該候補クラスタが選択される、ことと
    を包含し、
    該モデルは、確率モデルであり、該確率モデルは、単語に対するランダムな変数および概念的に関連した単語のクラスタに対するランダムな変数を表しているノードを含み、該確率モデルにおける複数のノードは、重み付けられたリンクによって互いに結合されており、該確率モデルにおけるクラスタノードが発火するとき、該クラスタノードから他のノードへの重み付けられたリンクが該他のノードを発火させることができ、
    アクティブである複数の親ノードをノードが有するとき、該ノードが発火しない確率は、該アクティブな親ノードからの複数のリンクが発火しない確率の積であり、
    該候補クラスタを選択することは、
    該選択機構が、該文書における該単語のセットに関連付けられたターミナルノードで始まるエビデンスツリーであって、親クラスタノードの方向に向かうリンクに続くエビデンスツリーを構築することと、
    該選択機構が、該エビデンスツリーを用いることにより、該単語のセットを生成する際に、各親クラスタノードがアクティブであった可能性を推定することと、
    該選択機構が、該推定された可能性に基づいて、候補クラスタノードであるべき親クラスタノードを選択することと
    を包含し、
    該方法は、
    該構成要素構築機構が、該文書を特徴付けるために構成要素のセットを構築することであって、該構成要素のセットは、候補クラスタに対する構成要素を含み、各構成要素は、対応する候補クラスタが該単語のセットに関連する概算確率を示す、ことをさらに包含し、
    該構成要素のセットにおける各構成要素は、対応する候補クラスタが該単語のセットを生成する際にアクティブである概算確率を示し、
    該構成要素のセットを構築することは、該構成要素構築機構が、該単語のセットを生成できたはずである該確率モデルの状態に対して、所与の候補クラスタがアクティブである確率を概算することを包含する、方法。
  2. 前記確率モデルは、常にアクティブである普遍ノードであって、すべてのクラスタノードに対して重み付けられたリンクを有する普遍ノードを含む、請求項に記載の方法。
  3. 前記単語のセットを生成する際に所与の親ノードがアクティブである可能性を推定することは、前記選択機構が、該所与の親ノードがアクティブである無条件的な確率と、該所与の親ノードの親ノードがアクティブであると仮定した際に、該所与の親ノードがアクティブである条件的な確率と、該所与の親ノードの子ノードがアクティブであると仮定した際に、該所与の親ノードがアクティブである条件的な確率とを考慮することを包含し得る、請求項に記載の方法。
  4. 前記条件的な確率を考慮することは、前記選択機構が、複数のノードの間のリンク上の重みを考慮することを包含する、請求項に記載の方法。
  5. 前記単語のセットを生成する際に所与の親ノードがアクティブである可能性を推定することは、前記選択機構が、推定処理中に、ターミナルノードに印を付けて、ターミナルノードが1度より多く推測する際に計算に入れられないことを確実にすることを包含する、請求項に記載の方法。
  6. 前記エビデンスツリーを構築することは、前記選択機構が、該エビデンスツリーから可能性の低いノードを取り除くことを包含する、請求項に記載の方法。
  7. 前記構成要素のセットの構築中に、前記単語のセットを生成する際候補クラスタアクティブである度合いは、該単語のセットを生成する際に候補クラスタがアクティブである確率を前記構成要素構築機構が計算することによって決定される、請求項に記載の方法。
  8. 前記構成要素のセットの構築中に、前記単語のセットを生成する際候補クラスタアクティブである度合いは、該単語のセットを生成する際に候補クラスタがアクティブである確率と該候補クラスタに対するアクチベーションとを前記構成要素構築機構が乗算することによって決定され、該アクチベーションは、該候補クラスタから他のノードにどれだけの数のリンクが発火する可能性があるのかを示す、請求項に記載の方法。
  9. 前記構成要素のセットを構築することは、前記構成要素構築機構が、該構成要素のセットを標準化することを包含する、請求項1に記載の方法。
  10. 前記確率を概算することは、
    前記構成要素構築機構が、前記文書において前記単語のセットを生成した可能性があった前記確率モデルに対する状態を選択することと、
    該構成要素構築機構が、選択された状態だけを考慮し、一方で、前記所与の候補クラスタがアクティブである確率を計算することと
    を包含する、請求項に記載の方法。
  11. 前記単語のセットを生成した可能性のあった状態を選択することは、
    前記構成要素構築機構が、前記確率モデルに対する開始時の状態をランダムに選択することと、
    該構成要素構築機構が、該単語のセットを生成した可能性のあった状態に到達するように該開始時の状態から登坂動作を行うことと
    を包含する、請求項10に記載の方法。
  12. 記登坂動作を行うことは、前記構成要素構築機構が、該登坂動作に対する目的関数に関わらず個々の候補クラスタの状態を周期的に変化させることにより、さもなくば、登坂動作を介して到達不可能である前記確率モデルの状態を探ることを包含する、請求項11に記載の方法。
  13. 前記個々の候補クラスタの状態を変化させることは、前記構成要素構築機構が、該変化した状態を一時的に固定することにより、該変化した状態を含む前記目的関数に対する局所的最適値を生成することを包含する、請求項12に記載の方法。
  14. 前記文書は、ウェブページ、または問い合わせからの用語のセットを含み得る、請求項1に記載の方法。
  15. 命令を格納するコンピュータ読み取り可能格納媒体であって、該命令は、コンピュータによって実行されると、該コンピュータに概念的に関連した単語のクラスタに対して文書を特徴づけるための方法を実行させ、
    該方法は、
    該文書を受け取ることであって、該文書は単語のセットを含む、ことと、
    該単語のセットに関連する概念的に関連した単語の候補クラスタを選択することであって、概念的に関連した単語のクラスタから単語のセットがどのように生成されるのかを説明するモデルを用いて、該候補クラスタが選択される、ことと
    を包含し、
    該モデルは、確率モデルであり、該確率モデルは、単語に対するランダムな変数および概念的に関連した単語のクラスタに対するランダムな変数を表しているノードを含み、該確率モデルにおける複数のノードは、重み付けられたリンクによって互いに結合されており、該確率モデルにおけるクラスタノードが発火するとき、該クラスタノードから他のノードへの重み付けられたリンクが該他のノードを発火させることができ、
    アクティブである複数の親ノードをノードが有するとき、該ノードが発火しない確率は、該アクティブな親ノードからの複数のリンクが発火しない確率の積であり、
    該候補クラスタを選択することは、
    該文書における該単語のセットに関連付けられたターミナルノードで始まるエビデンスツリーであって、親クラスタノードの方向に向かうリンクに続くエビデンスツリーを構築することと、
    該エビデンスツリーを用いることにより、該単語のセットを生成する際に、各親クラスタノードがアクティブであった可能性を推定することと、
    該推定された可能性に基づいて、候補クラスタノードであるべき親クラスタノードを選択することと
    を包含し、
    該方法は、
    該文書を特徴付けるために構成要素のセットを構築することであって、該構成要素のセットは、候補クラスタに対する構成要素を含み、各構成要素は、対応する候補クラスタが該単語のセットに関連する概算確率を示す、ことをさらに包含し、
    該構成要素のセットにおける各構成要素は、対応する候補クラスタが該単語のセットを生成する際にアクティブである概算確率を示し、
    該構成要素のセットを構築することは、該単語のセットを生成できたはずである該確率モデルの状態に対して、所与の候補クラスタがアクティブである確率を概算することを包含する、コンピュータ読み取り可能格納媒体。
  16. 前記確率モデルは、常にアクティブである普遍ノードであって、すべてのクラスタノードに対して重み付けられたリンクを有する普遍ノードを含む、請求項15に記載のコンピュータ読み取り可能格納媒体。
  17. 前記単語のセットを生成する際に所与の親ノードがアクティブである可能性を推定することは、該所与の親ノードがアクティブである無条件的な確率と、該所与の親ノードの親ノードがアクティブであると仮定した際に、該所与の親ノードがアクティブである条件的な確率と、該所与の親ノードの子ノードがアクティブであると仮定した際に、該所与の親ノードがアクティブである条件的な確率とを考慮することを包含し得る、請求項15に記載のコンピュータ読み取り可能格納媒体。
  18. 前記条件的な確率を考慮することは、複数のノードの間のリンク上の重みを考慮することを包含する、請求項17に記載のコンピュータ読み取り可能格納媒体。
  19. 所与の親ノードがアクティブである可能性を推定することは、推定処理中に、ターミナルノードにを付けて、ターミナルノードが1度より多く推測する際に計算に入れられないことを確実にすることを包含する、請求項15に記載のコンピュータ読み取り可能格納媒体。
  20. 前記エビデンスツリーを構築することは、該エビデンスツリーから可能性の低いノードを取り除くことを包含する、請求項15に記載のコンピュータ読み取り可能格納媒体。
  21. 前記構成要素のセットの構築中に、前記単語のセットを生成する際候補クラスタアクティブである度合いは、該単語のセットを生成する際に候補クラスタがアクティブである確率を計算することによって決定される、請求項15に記載のコンピュータ読み取り可能格納媒体。
  22. 前記構成要素のセットの構築中に、前記単語のセットを生成する際候補クラスタアクティブである度合いは、該単語のセットを生成する際に候補クラスタがアクティブである確率と該候補クラスタに対するアクチベーションとを乗算することによって決定され、該アクチベーションは、該候補クラスタから他のノードにどれだけの数のリンクが発火する可能性があるのかを示す、請求項15に記載のコンピュータ読み取り可能格納媒体。
  23. 前記構成要素のセットを構築することは、該構成要素のセットを標準化することを包含する、請求項15に記載のコンピュータ読み取り可能格納媒体。
  24. 前記確率を概算することは
    前記文書において前記単語のセットを生成した可能性があった前記確率モデルに対する状態を選択することと
    選択された状態だけを考慮し、一方で、前記所与の候補クラスタがアクティブである確率を計算することと
    を包含する、請求項15に記載のコンピュータ読み取り可能格納媒体。
  25. 前記単語のセットを生成した可能性のあった状態を選択することは
    前記確率モデルに対する開始時の状態をランダムに選択することと
    該単語のセットを生成した可能性のあった状態に到達するように該開始時の状態から登坂動作を行うことと
    を包含する、請求項24に記載のコンピュータ読み取り可能格納媒体。
  26. 記登坂動作を行うことは、該登坂動作に対する目的関数に関わらず個々の候補クラスタの状態を周期的に変化させることにより、さもなくば、登坂動作を介して到達不可能である前記確率モデルの状態を探ることを包含する、請求項25に記載のコンピュータ読み取り可能格納媒体。
  27. 前記個々の候補クラスタの状態を変化させることは、該変化した状態を一時的に固定することにより、該変化した状態を含む前記目的関数に対する局所的最適値を生成することを包含する、請求項26に記載のコンピュータ読み取り可能格納媒体。
  28. 前記文書は、ウェブページ、または問い合わせからの用語のセットを含み得る、請求項15に記載のコンピュータ読み取り可能格納媒体。
  29. 概念的に関連した単語のクラスタに対して文書を特徴付ける装置であって、
    該装置は、
    該文書を受け取るように構成されている受信する機構であって、該文書は単語のセットを含む受信する機構と、
    該単語のセットに関連する概念的に関連した単語の候補クラスタを選択するように構成されている選択機構であって、概念的に関連した単語のクラスタから単語のセットがどうのように生成されるのかを説明するモデルを用いて、該候補クラスタが選択される、選択機構と
    を備え、
    該モデルは、確率モデルであり、該確率モデルは、単語に対するランダムな変数および概念的に関連した単語のクラスタに対するランダムな変数を表しているノードを含み、該確率モデルにおける複数のノードは、重み付けられたリンクによって互いに結合されており、該確率モデルにおけるクラスタノードが発火するとき、該クラスタノードから他のノードへの重み付けられたリンクが該他のノードを発火させることができ、
    アクティブである複数の親ノードをノードが有するとき、該ノードが発火しない確率は、該アクティブな親ノードからの複数のリンクが発火しない確率の積であり、
    該選択機構は、
    該文書における該単語のセットに関連付けられたターミナルノードで始まるエビデンスツリーであって、親クラスタノードの方向に向かうリンクに続くエビデンスツリーを構築することと、
    該エビデンスツリーを用いることにより、該単語のセットを生成する際に、各親クラスタノードがアクティブであった可能性を推定することと、
    該推定された可能性に基づいて、候補クラスタノードであるべき親クラスタノードを選択することと
    を実行するように構成されており、
    該装置は、
    該文書を特徴付けるために構成要素のセットを構築するように構成されている構成要素構築機構であって、該構成要素のセットは、候補クラスタに対する構成要素を含み、各構成要素は、対応する候補クラスタが該単語のセットに関連する概算確率を示す、構成要素構築機構をさらに備え、
    該構成要素のセットにおける各構成要素は、対応する候補クラスタが該単語のセットを生成する際にアクティブである概算確率を示し、
    該構成要素構築機構は、該単語のセットを生成できたはずである該確率モデルの状態に対して、所与の候補クラスタがアクティブである確率を概算するように構成されている、装置。
  30. 前記確率モデルは、常にアクティブである普遍ノードであって、すべてのクラスタノードに対して重み付けられたリンクを有する普遍ノードを含む、請求項29に記載の装置。
  31. 前記単語のセットを生成する際に所与の親ノードがアクティブである可能性を推定する一方で、前記選択機構が、該所与の親ノードがアクティブである無条件的な確率と、該所与の親ノードの親ノードがアクティブであると仮定した際に、該所与の親ノードがアクティブである条件的な確率と、該所与の親ノードの子ノードがアクティブであると仮定した際に、該所与の親ノードがアクティブである条件的な確率とのうちの少なくとも1つを考慮するように構成されている、請求項29に記載の装置。
  32. 前記条件的な確率を考慮する一方で、前記選択機構は、複数のノードの間のリンク上の重みを考慮するように構成されている、請求項31に記載の装置。
  33. 前記単語のセットを生成する際に所与の親ノードがアクティブである可能性を推定する一方で、前記選択機構は、推定処理中に、ターミナルノードにを付けて、ターミナルノードが1度より多く推測する際に計算に入れられないことを確実にするように構成されている、請求項29に記載の装置。
  34. 前記エビデンスツリーを構築する一方で、前記選択機構は、該エビデンスツリーから可能性の低いノードを取り除くように構成されている、請求項29に記載の装置。
  35. 前記構成要素のセットにおける所与の構成要素を構築する一方で、前記構成要素構築機構は、前記単語のセットを生成する際に候補クラスタがアクティブである確率を計算することによって、単語のセットを生成する際候補クラスタアクティブである度合いを決定するように構成されている、請求項29に記載の装置。
  36. 前記構成要素のセットにおける所与の構成要素を構築する一方で、前記構成要素構築機構は該単語のセットを生成する際に候補クラスタがアクティブである確率と該候補クラスタに対するアクチベーションとを乗算することによって、該単語のセットを生成する際候補クラスタアクティブである度合いを決定するように構成されており、該アクチベーションは、該候補クラスタから他のノードにどれだけの数のリンクが発火する可能性があるのかを示す、請求項29に記載の装置。
  37. 前記構成要素構築機構は、前記構成要素のセットを標準化するように構成されている、請求項29に記載の装置。
  38. 前記確率を概算する一方で、前記構成要素構築機構は、前記文書において前記単語のセットを生成した可能性があった前記確率モデルに対する状態を選択し、かつ、選択された状態だけを考慮し、一方で、前記所与の候補クラスタがアクティブである確率を計算するように構成されている、請求項29に記載の装置。
  39. 前記単語のセットを生成した可能性のあった状態を選択する一方で、前記構成要素構築機構は、前記確率モデルに対する開始時の状態をランダムに選択し、かつ、該単語のセットを生成した可能性のあった状態に到達するように該開始時の状態から登坂動作を行うように構成されている、請求項38に記載の装置。
  40. 記登坂動作を行う一方で、前記構成要素構築機構は、該登坂動作に対する目的関数に関わらず個々の候補クラスタの状態を周期的に変化させることにより、さもなくば、登坂動作を介して到達不可能である前記確率モデルの状態を探るように構成されている、請求項39に記載の装置。
  41. 前記個々の候補クラスタの状態を変化させる一方で、前記構成要素構築機構は、該変化した状態を一時的に固定することにより、該変化した状態を含む前記目的関数に対する局所的最適値を生成するように構成されている、請求項40に記載の装置。
  42. 前記文書は、ウェブページ、または問い合わせからの用語のセットを含み得る、請求項29に記載の装置。
JP2004541690A 2002-10-03 2003-10-03 関連する単語のクラスタに基づいて、文書を特徴付けるための方法および装置 Expired - Lifetime JP4465274B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US41614402P 2002-10-03 2002-10-03
PCT/US2003/031545 WO2004031916A2 (en) 2002-10-03 2003-10-03 Method and apparatus for characterizing documents based on clusters of related words

Publications (2)

Publication Number Publication Date
JP2006502480A JP2006502480A (ja) 2006-01-19
JP4465274B2 true JP4465274B2 (ja) 2010-05-19

Family

ID=32069938

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004541690A Expired - Lifetime JP4465274B2 (ja) 2002-10-03 2003-10-03 関連する単語のクラスタに基づいて、文書を特徴付けるための方法および装置

Country Status (7)

Country Link
US (2) US7383258B2 (ja)
EP (1) EP1546932A4 (ja)
JP (1) JP4465274B2 (ja)
KR (1) KR101014895B1 (ja)
CN (1) CN100504856C (ja)
CA (1) CA2500914C (ja)
WO (1) WO2004031916A2 (ja)

Families Citing this family (127)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8229957B2 (en) * 2005-04-22 2012-07-24 Google, Inc. Categorizing objects, such as documents and/or clusters, with respect to a taxonomy and data structures derived from such categorization
US7231393B1 (en) * 2003-09-30 2007-06-12 Google, Inc. Method and apparatus for learning a probabilistic generative model for text
US7020593B2 (en) * 2002-12-04 2006-03-28 International Business Machines Corporation Method for ensemble predictive modeling by multiplicative adjustment of class probability: APM (adjusted probability model)
GB0322600D0 (en) * 2003-09-26 2003-10-29 Univ Ulster Thematic retrieval in heterogeneous data repositories
US7617205B2 (en) 2005-03-30 2009-11-10 Google Inc. Estimating confidence for query revision models
US8015119B2 (en) 2004-01-21 2011-09-06 Google Inc. Methods and systems for the display and navigation of a social network
US8010459B2 (en) * 2004-01-21 2011-08-30 Google Inc. Methods and systems for rating associated members in a social network
EP1562111B1 (en) * 2004-02-03 2017-04-26 Sap Se A context modeller for modelling a context representation and a method of modelling a context representation
US7313552B2 (en) * 2004-03-19 2007-12-25 Sybase, Inc. Boolean network rule engine
US7409383B1 (en) 2004-03-31 2008-08-05 Google Inc. Locating meaningful stopwords or stop-phrases in keyword-based retrieval systems
US8019875B1 (en) 2004-06-04 2011-09-13 Google Inc. Systems and methods for indicating a user state in a social network
US8832132B1 (en) 2004-06-22 2014-09-09 Google Inc. Personalizing search queries based on user membership in social network communities
US9223868B2 (en) 2004-06-28 2015-12-29 Google Inc. Deriving and using interaction profiles
US7860314B2 (en) * 2004-07-21 2010-12-28 Microsoft Corporation Adaptation of exponential models
US8015019B1 (en) 2004-08-03 2011-09-06 Google Inc. Methods and systems for providing a document
US20060074910A1 (en) * 2004-09-17 2006-04-06 Become, Inc. Systems and methods of retrieving topic specific information
US9031898B2 (en) * 2004-09-27 2015-05-12 Google Inc. Presentation of search results based on document structure
JP2008525896A (ja) * 2004-12-23 2008-07-17 ビカム, インコーポレイテッド リンクされた文書の集合に相対的品質スコアを割り当てるための方法
US7668822B2 (en) * 2004-12-23 2010-02-23 Become, Inc. Method for assigning quality scores to documents in a linked database
US7716140B1 (en) 2004-12-31 2010-05-11 Google Inc. Methods and systems for controlling access to relationship information in a social network
US7567946B2 (en) * 2005-03-14 2009-07-28 Xerox Corporation Method, apparatus, and article of manufacture for estimating parameters of a probability model on shared device usage probabilistic semantic analysis
US7870147B2 (en) * 2005-03-29 2011-01-11 Google Inc. Query revision using known highly-ranked queries
US8412780B2 (en) 2005-03-30 2013-04-02 Google Inc. Methods and systems for providing current email addresses and contact information for members within a social network
CN100470544C (zh) 2005-05-24 2009-03-18 国际商业机器公司 用于链接文档的方法、设备和系统
US7818208B1 (en) 2005-06-28 2010-10-19 Google Inc. Accurately estimating advertisement performance
US8028337B1 (en) 2005-08-30 2011-09-27 Sprint Communications Company L.P. Profile-aware filtering of network traffic
US8204974B1 (en) * 2005-08-30 2012-06-19 Sprint Communications Company L.P. Identifying significant behaviors within network traffic
US8316292B1 (en) * 2005-11-18 2012-11-20 Google Inc. Identifying multiple versions of documents
US8095876B1 (en) 2005-11-18 2012-01-10 Google Inc. Identifying a primary version of a document
US10600090B2 (en) 2005-12-30 2020-03-24 Google Llc Query feature based data structure retrieval of predicted values
US7827060B2 (en) * 2005-12-30 2010-11-02 Google Inc. Using estimated ad qualities for ad filtering, ranking and promotion
US20070156887A1 (en) * 2005-12-30 2007-07-05 Daniel Wright Predicting ad quality
US20070157228A1 (en) 2005-12-30 2007-07-05 Jason Bayer Advertising with video ad creatives
US8065184B2 (en) * 2005-12-30 2011-11-22 Google Inc. Estimating ad quality from observed user behavior
US7725417B2 (en) * 2006-02-09 2010-05-25 Ebay Inc. Method and system to analyze rules based on popular query coverage
WO2007095075A2 (en) * 2006-02-09 2007-08-23 Ebay Inc. Methods and systems to communicate information
US8380698B2 (en) * 2006-02-09 2013-02-19 Ebay Inc. Methods and systems to generate rules to identify data items
US9443333B2 (en) * 2006-02-09 2016-09-13 Ebay Inc. Methods and systems to communicate information
US7739226B2 (en) * 2006-02-09 2010-06-15 Ebay Inc. Method and system to analyze aspect rules based on domain coverage of the aspect rules
US7640234B2 (en) * 2006-02-09 2009-12-29 Ebay Inc. Methods and systems to communicate information
US7739225B2 (en) 2006-02-09 2010-06-15 Ebay Inc. Method and system to analyze aspect rules based on domain coverage of an aspect-value pair
US7849047B2 (en) 2006-02-09 2010-12-07 Ebay Inc. Method and system to analyze domain rules based on domain coverage of the domain rules
US8019754B2 (en) * 2006-04-03 2011-09-13 Needlebot Incorporated Method of searching text to find relevant content
US8856145B2 (en) * 2006-08-04 2014-10-07 Yahoo! Inc. System and method for determining concepts in a content item using context
US7660804B2 (en) * 2006-08-16 2010-02-09 Microsoft Corporation Joint optimization of wrapper generation and template detection
US7831472B2 (en) 2006-08-22 2010-11-09 Yufik Yan M Methods and system for search engine revenue maximization in internet advertising
US20080066107A1 (en) 2006-09-12 2008-03-13 Google Inc. Using Viewing Signals in Targeted Video Advertising
EP1903457B1 (en) * 2006-09-19 2012-05-30 Exalead Computer-implemented method, computer program product and system for creating an index of a subset of data
US7747607B2 (en) * 2006-09-21 2010-06-29 Yahoo! Inc. Determining logically-related sub-strings of a string
US9189482B2 (en) 2012-10-10 2015-11-17 Abbyy Infopoisk Llc Similar document search
US9075864B2 (en) 2006-10-10 2015-07-07 Abbyy Infopoisk Llc Method and system for semantic searching using syntactic and semantic analysis
US9098489B2 (en) 2006-10-10 2015-08-04 Abbyy Infopoisk Llc Method and system for semantic searching
US9892111B2 (en) 2006-10-10 2018-02-13 Abbyy Production Llc Method and device to estimate similarity between documents having multiple segments
US9069750B2 (en) 2006-10-10 2015-06-30 Abbyy Infopoisk Llc Method and system for semantic searching of natural language texts
US9495358B2 (en) 2006-10-10 2016-11-15 Abbyy Infopoisk Llc Cross-language text clustering
JP5011947B2 (ja) * 2006-10-19 2012-08-29 オムロン株式会社 Fmeaシートの作成方法およびfmeaシート自動作成装置
US7945854B2 (en) * 2006-10-30 2011-05-17 Palo Alto Research Center Incorporated Systems and methods for the combination and display of social and textual content
US20080172293A1 (en) * 2006-12-28 2008-07-17 Yahoo! Inc. Optimization framework for association of advertisements with sequential media
US20080159114A1 (en) * 2007-01-02 2008-07-03 Dipietro Richard Anthony High density data storage medium, method and device
US9507858B1 (en) * 2007-02-28 2016-11-29 Google Inc. Selectively merging clusters of conceptually related words in a generative model for text
US8584013B1 (en) 2007-03-20 2013-11-12 Google Inc. Temporal layers for presenting personalization markers on imagery
US8271476B2 (en) * 2007-03-30 2012-09-18 Stuart Donnelly Method of searching text to find user community changes of interest and drug side effect upsurges, and presenting advertisements to users
US8103707B2 (en) * 2007-03-30 2012-01-24 Verizon Patent And Licensing Inc. Method and system for presenting non-linear content based on linear content metadata
US8275773B2 (en) * 2007-03-30 2012-09-25 Stuart Donnelly Method of searching text to find relevant content
US8229942B1 (en) 2007-04-17 2012-07-24 Google Inc. Identifying negative keywords associated with advertisements
US8086624B1 (en) * 2007-04-17 2011-12-27 Google Inc. Determining proximity to topics of advertisements
US8667532B2 (en) * 2007-04-18 2014-03-04 Google Inc. Content recognition for targeting video advertisements
US20080276266A1 (en) * 2007-04-18 2008-11-06 Google Inc. Characterizing content for identification of advertising
US8433611B2 (en) * 2007-06-27 2013-04-30 Google Inc. Selection of advertisements for placement with content
US20090006190A1 (en) * 2007-06-28 2009-01-01 Google Inc. Determining location-based commercial information
US8073803B2 (en) * 2007-07-16 2011-12-06 Yahoo! Inc. Method for matching electronic advertisements to surrounding context based on their advertisement content
US20090024470A1 (en) * 2007-07-20 2009-01-22 Google Inc. Vertical clustering and anti-clustering of categories in ad link units
US8180725B1 (en) * 2007-08-01 2012-05-15 Google Inc. Method and apparatus for selecting links to include in a probabilistic generative model for text
US8799285B1 (en) 2007-08-02 2014-08-05 Google Inc. Automatic advertising campaign structure suggestion
US9064024B2 (en) 2007-08-21 2015-06-23 Google Inc. Bundle generation
WO2009046130A1 (en) * 2007-10-01 2009-04-09 Wand, Inc. Method for resolving failed search queries
CN101493823B (zh) * 2007-10-05 2012-06-13 富士通株式会社 根据单词相关度识别单词聚类
US8572087B1 (en) * 2007-10-17 2013-10-29 Google Inc. Content identification
US9824372B1 (en) 2008-02-11 2017-11-21 Google Llc Associating advertisements with videos
US8255948B1 (en) 2008-04-23 2012-08-28 Google Inc. Demographic classifiers from media content
US8214346B2 (en) * 2008-06-27 2012-07-03 Cbs Interactive Inc. Personalization engine for classifying unstructured documents
US20100037149A1 (en) * 2008-08-05 2010-02-11 Google Inc. Annotating Media Content Items
US8583618B2 (en) * 2008-11-24 2013-11-12 Business Objects S.A. Determination of graphical format to present search results
US8234274B2 (en) * 2008-12-18 2012-07-31 Nec Laboratories America, Inc. Systems and methods for characterizing linked documents using a latent topic model
US8099453B2 (en) * 2009-01-22 2012-01-17 Hewlett-Packard Development Company, L.P. System and method for data clustering
US20100211894A1 (en) * 2009-02-18 2010-08-19 Google Inc. Identifying Object Using Generative Model
US8296257B1 (en) 2009-04-08 2012-10-23 Google Inc. Comparing models
US8060512B2 (en) * 2009-06-05 2011-11-15 Xerox Corporation Hybrid tensor-based cluster analysis
DE102009031872A1 (de) 2009-07-06 2011-01-13 Siemens Aktiengesellschaft Verfahren und Vorrichtung zur automatischen Suche nach Dokumenten in einem Datenspeicher
US8326820B2 (en) 2009-09-30 2012-12-04 Microsoft Corporation Long-query retrieval
US8229959B1 (en) 2009-11-11 2012-07-24 Google Inc. Sharable search result labels
US9152708B1 (en) 2009-12-14 2015-10-06 Google Inc. Target-video specific co-watched video clusters
US9002866B1 (en) 2010-03-25 2015-04-07 Google Inc. Generating context-based spell corrections of entity names
CN102236664B (zh) * 2010-04-28 2016-04-13 百度在线网络技术(北京)有限公司 基于语义归一化的检索系统、检索方法以及信息处理方法
US8161073B2 (en) 2010-05-05 2012-04-17 Holovisions, LLC Context-driven search
AU2010202901B2 (en) * 2010-07-08 2016-04-14 Patent Analytics Holding Pty Ltd A system, method and computer program for preparing data for analysis
JP5403696B2 (ja) * 2010-10-12 2014-01-29 株式会社Nec情報システムズ 言語モデル生成装置、その方法及びそのプログラム
US8751496B2 (en) 2010-11-16 2014-06-10 International Business Machines Corporation Systems and methods for phrase clustering
US9026479B1 (en) 2011-02-02 2015-05-05 Google Inc. Predicting user interests
US8811726B2 (en) * 2011-06-02 2014-08-19 Kriegman-Belhumeur Vision Technologies, Llc Method and system for localizing parts of an object in an image for computer vision applications
US8869208B2 (en) * 2011-10-30 2014-10-21 Google Inc. Computing similarity between media programs
US8997008B2 (en) 2012-07-17 2015-03-31 Pelicans Networks Ltd. System and method for searching through a graphic user interface
US9245024B1 (en) * 2013-01-18 2016-01-26 Google Inc. Contextual-based serving of content segments in a video delivery system
US9390383B2 (en) * 2013-01-28 2016-07-12 Georges Harik Method for an optimizing predictive model using gradient descent and conjugate residuals
US9600777B2 (en) 2013-03-11 2017-03-21 Georges Harik Configuring and optimizing computational structure for a machine learning application using a tuple of vectors
US11336648B2 (en) 2013-11-11 2022-05-17 Amazon Technologies, Inc. Document management and collaboration system
US9542391B1 (en) 2013-11-11 2017-01-10 Amazon Technologies, Inc. Processing service requests for non-transactional databases
US10599753B1 (en) 2013-11-11 2020-03-24 Amazon Technologies, Inc. Document version control in collaborative environment
US10540404B1 (en) * 2014-02-07 2020-01-21 Amazon Technologies, Inc. Forming a document collection in a document management and collaboration system
US9652554B2 (en) * 2013-12-26 2017-05-16 Facebook, Inc. Systems and methods for adding users to a networked computer system
US20160335674A1 (en) * 2014-01-15 2016-11-17 Intema Solutions Inc. Item classification method and selection system for electronic solicitation
CN103810266B (zh) * 2014-01-27 2017-04-05 中国电子科技集团公司第十研究所 语义网络目标识别判证方法
US10691877B1 (en) 2014-02-07 2020-06-23 Amazon Technologies, Inc. Homogenous insertion of interactions into documents
WO2015145555A1 (ja) * 2014-03-25 2015-10-01 株式会社日立製作所 確率推論システム
US9811931B2 (en) 2014-06-02 2017-11-07 Business Objects Software Limited Recommendations for creation of visualizations
US9807073B1 (en) 2014-09-29 2017-10-31 Amazon Technologies, Inc. Access to documents in a document management and collaboration system
US9928232B2 (en) 2015-02-27 2018-03-27 Microsoft Technology Licensing, Llc Topically aware word suggestions
CN104881400B (zh) * 2015-05-19 2018-01-19 上海交通大学 基于联想网络的语义相关性计算方法
US9684842B2 (en) 2015-10-29 2017-06-20 The Nielsen Company (Us), Llc Methods and apparatus to extract text from imaged documents
EP3398091B1 (en) * 2016-02-19 2022-05-11 Huawei Technologies Co., Ltd. System and method for unified access control on federated database
US10803245B2 (en) * 2016-09-06 2020-10-13 Microsoft Technology Licensing, Llc Compiling documents into a timeline per event
US20190347281A1 (en) 2016-11-11 2019-11-14 Dennemeyer Octimine Gmbh Apparatus and method for semantic search
CN108075959B (zh) * 2016-11-14 2021-03-12 腾讯科技(深圳)有限公司 一种会话消息处理方法和装置
JP6751064B2 (ja) * 2017-09-20 2020-09-02 株式会社東芝 データ検索システム、データ検索方法、及びプログラム
JP6652986B2 (ja) * 2018-05-02 2020-02-26 株式会社Fronteo 危険行動予測装置、予測モデル生成装置および危険行動予測用プログラム
US11205179B1 (en) 2019-04-26 2021-12-21 Overstock.Com, Inc. System, method, and program product for recognizing and rejecting fraudulent purchase attempts in e-commerce
CN116821053B (zh) * 2023-08-30 2023-11-21 之江实验室 数据上报方法、装置、计算机设备和存储介质

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5675819A (en) * 1994-06-16 1997-10-07 Xerox Corporation Document information retrieval using global word co-occurrence patterns
US6460036B1 (en) * 1994-11-29 2002-10-01 Pinpoint Incorporated System and method for providing customized electronic newspapers and target advertisements
GB9426165D0 (en) 1994-12-23 1995-02-22 Anthony Andre C Method of retrieving and displaying data
US5794050A (en) 1995-01-04 1998-08-11 Intelligent Text Processing, Inc. Natural language understanding system
US7013298B1 (en) 1996-07-30 2006-03-14 Hyperphrase Technologies, Llc Method and system for automated data storage and retrieval
US6820093B2 (en) 1996-07-30 2004-11-16 Hyperphrase Technologies, Llc Method for verifying record code prior to an action based on the code
US6078914A (en) 1996-12-09 2000-06-20 Open Text Corporation Natural language meta-search system and method
US6137911A (en) 1997-06-16 2000-10-24 The Dialog Corporation Plc Test classification system and method
US6606143B1 (en) 1998-03-13 2003-08-12 Sharp Kabushiki Kaisha Liquid crystal display device with phase element
US6108662A (en) 1998-05-08 2000-08-22 Allen-Bradley Company, Llc System method and article of manufacture for integrated enterprise-wide control
US6161130A (en) * 1998-06-23 2000-12-12 Microsoft Corporation Technique which utilizes a probabilistic classifier to detect "junk" e-mail by automatically updating a training and re-training the classifier based on the updated training set
US7181438B1 (en) 1999-07-21 2007-02-20 Alberti Anemometer, Llc Database access system
GB9925741D0 (en) 1999-10-30 1999-12-29 Ibm Interaction with database reports
US20020120619A1 (en) 1999-11-26 2002-08-29 High Regard, Inc. Automated categorization, placement, search and retrieval of user-contributed items
US6868525B1 (en) 2000-02-01 2005-03-15 Alberti Anemometer Llc Computer graphic display visualization system and method
JP2001273293A (ja) 2000-03-23 2001-10-05 Nippon Telegr & Teleph Corp <Ntt> 単語推定方法及び装置及び単語推定プログラムを格納した記録媒体
US6684205B1 (en) 2000-10-18 2004-01-27 International Business Machines Corporation Clustering hypertext with applications to web searching
US7363308B2 (en) * 2000-12-28 2008-04-22 Fair Isaac Corporation System and method for obtaining keyword descriptions of records from a large database
US20020087310A1 (en) 2000-12-29 2002-07-04 Lee Victor Wai Leung Computer-implemented intelligent dialogue control method and system
US8001118B2 (en) 2001-03-02 2011-08-16 Google Inc. Methods and apparatus for employing usage statistics in document retrieval
US6751611B2 (en) 2002-03-01 2004-06-15 Paul Jeffrey Krupin Method and system for creating improved search queries
GB2391967A (en) 2002-08-16 2004-02-18 Canon Kk Information analysing apparatus
US7231393B1 (en) 2003-09-30 2007-06-12 Google, Inc. Method and apparatus for learning a probabilistic generative model for text
US7685236B1 (en) 2003-09-24 2010-03-23 Google Inc. Methods and systems for developing an instant messaging network
US8224964B1 (en) 2004-06-30 2012-07-17 Google Inc. System and method of accessing a document efficiently through multi-tier web caching
US7437364B1 (en) 2004-06-30 2008-10-14 Google Inc. System and method of accessing a document efficiently through multi-tier web caching
US9820658B2 (en) 2006-06-30 2017-11-21 Bao Q. Tran Systems and methods for providing interoperability among healthcare devices
US7558622B2 (en) 2006-05-24 2009-07-07 Bao Tran Mesh network stroke monitoring appliance

Also Published As

Publication number Publication date
US7383258B2 (en) 2008-06-03
CA2500914C (en) 2010-12-21
AU2003282688A1 (en) 2004-04-23
EP1546932A2 (en) 2005-06-29
KR20050065578A (ko) 2005-06-29
CN100504856C (zh) 2009-06-24
KR101014895B1 (ko) 2011-02-15
WO2004031916A2 (en) 2004-04-15
CN1711536A (zh) 2005-12-21
CA2500914A1 (en) 2004-04-15
JP2006502480A (ja) 2006-01-19
US20040068697A1 (en) 2004-04-08
EP1546932A4 (en) 2008-04-09
US8688720B1 (en) 2014-04-01
WO2004031916A3 (en) 2004-12-23

Similar Documents

Publication Publication Date Title
JP4465274B2 (ja) 関連する単語のクラスタに基づいて、文書を特徴付けるための方法および装置
US7231393B1 (en) Method and apparatus for learning a probabilistic generative model for text
CN109657054B (zh) 摘要生成方法、装置、服务器及存储介质
Kumar et al. Fake news detection using machine learning and natural language processing
JP2019504413A (ja) 絵文字を提案するためのシステムおよび方法
US20170103324A1 (en) Generating responses using memory networks
CN112182230B (zh) 一种基于深度学习的文本数据分类方法和装置
US10326863B2 (en) Speed and accuracy of computers when resolving client queries by using graph database model
JPWO2007099812A1 (ja) 質問回答装置、質問回答方法および質問回答用プログラム
US11809506B1 (en) Multivariant analyzing replicating intelligent ambience evolving system
US20230306205A1 (en) System and method for personalized conversational agents travelling through space and time
Çetinkaya et al. Developing a Twitter bot that can join a discussion using state-of-the-art architectures
CN112328778A (zh) 确定用户特征和模型训练的方法、装置、设备及介质
GB2601884A (en) Intelligent chat channel processor
Volkova et al. Online bayesian models for personal analytics in social media
US9547701B2 (en) Method of discovering and exploring feature knowledge
CN117236410A (zh) 一种可信的电子文件大语言模型训练、推理方法和装置
EP4322066A1 (en) Method and apparatus for generating training data
JP4539616B2 (ja) 意見収集分析装置及びそれに用いる意見収集分析方法並びにそのプログラム
Preotiuc-Pietro Temporal models of streaming social media data
AU2003282688B2 (en) Method and apparatus for characterizing documents based on clusters of related words
Nguyen et al. Determination of user interfaces in adaptive systems using a rough classification-based method
Pilgrim Adaptive rationality in communication
Lim et al. Spoofing Tweet Generator Considering Points of Interest of Target User
CN116186220A (zh) 信息检索方法、问答处理方法、信息检索装置及系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061002

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090907

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091207

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100208

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100222

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130226

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4465274

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130226

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140226

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term