KR101014895B1 - 관련 단어들의 클러스터들을 바탕으로 문서를 특성화하는방법 및 장치 - Google Patents

관련 단어들의 클러스터들을 바탕으로 문서를 특성화하는방법 및 장치 Download PDF

Info

Publication number
KR101014895B1
KR101014895B1 KR1020057005832A KR20057005832A KR101014895B1 KR 101014895 B1 KR101014895 B1 KR 101014895B1 KR 1020057005832 A KR1020057005832 A KR 1020057005832A KR 20057005832 A KR20057005832 A KR 20057005832A KR 101014895 B1 KR101014895 B1 KR 101014895B1
Authority
KR
South Korea
Prior art keywords
node
cluster
active
probability
nodes
Prior art date
Application number
KR1020057005832A
Other languages
English (en)
Other versions
KR20050065578A (ko
Inventor
조지즈 하리크
놈 엠. 샤지어
Original Assignee
구글 인코포레이티드
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 구글 인코포레이티드 filed Critical 구글 인코포레이티드
Publication of KR20050065578A publication Critical patent/KR20050065578A/ko
Application granted granted Critical
Publication of KR101014895B1 publication Critical patent/KR101014895B1/ko

Links

Images

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)

Abstract

발명의 한가지 실시예는 개념적으로 서로 관련된 단어들의 클러스터들에 대해 한 문서를 특성화하는 시스템을 제공한다. 단어 세트를 지닌 문서를 수신하였을 때, 시스템은 단어 세트에 관련된 개념적으로 서로 관련된 단어들의 “후보 클러스터들”을 선택한다. 이 후보 클러스터들은 개념적으로 서로 관련된 단어들의 클러스터들로부터 단어 세트들이 어떻게 발생되는 지를 설명하는 모델을 이용하여 선택된다. 그후, 시스템은 문서를 특성화하도록 구성요소 세트를 구축하며, 이때, 상기 구성요소 세트는 후보 클러스터들에 대한 구성요소들을 포함한다. 구성요소 세트 내 각각의 구성요소는 해당 후보 클러스터가 단어 세트에 관련된 정도를 표시한다.

Description

관련 단어들의 클러스터들을 바탕으로 문서를 특성화하는 방법 및 장치{METHOD AND APPARATUS FOR CHARACTERIZING DOCUMENTS BASED ON CLUSTERS OF RELATED WORDS}
본 발명은 테스트 문서에서 질의를 실행하는 기술에 관한 것이다. 특히 본 발명은 개념적 측면의 단어들의 클러스터들을 바탕으로 텍스트 문서를 특성화하는 방법 및 장치에 관한 것이다.
함축적 의미를 캡처하는 방식으로 텍스트를 처리하는 것(의미론; semantics)은 자주 실행되는 방법이지만 이해하기 어려운 작업이다. 이 기능은 검색 엔진 분야에서 가장 자주 이용되는데, 이 분야에서는 사용자측의 질의어에 대해 일부 저장소의 문서들을 매칭시키려 시도한다. 이는 유사한 콘텐트를 가진 문서들을 찾기 위해 다른 라이브러리형 정보 소스에 의해 또한 이용된다. 일반적으로, 텍스트의 의미를 이해하는 것은 이러한 시스템의 매우 유용한 세부구성요소이다. 불행하게도, 과거에 쓰여진 대부분의 시스템들은 아주 원시적인 수준에 지나지 않는다. 즉, 테스트에 사용된 단어들에 대해서만 집중하며, 그 뒤에 깔린 의미에는 집중하지 못하고 있다.
한 예로, 미국, 캘리포니아, 팔로 알토(Palo-Alto)에 소재한 요리 강좌 (cooking class)를 찾는 데 관심있는 사용자의 행동을 고려해보자. 이 사용자는 인기있는 검색 엔진에 "cooking classes palo alto"라는 단어 세트를 타이핑할 수 있다. 검색 엔진은 웹페이지에서 상기 단어들을 찾을 것이고, 이 정보를 이러한 페이지에 관한 다른 정보들과 조합하여 사용자에게 결과를 제시할 것이다. 현재, 이 문서가 "cooking class palo alto"라는 단어를 가질 경우, 여러 검색 엔진 중 상당수는 이를 찾아내지 못할 것이다. 왜냐하면, 이 검색엔진들은 단어 "class"와 "classes"가 관련된 용어인지를 알지 못하기 때문이다.
스테밍 구성요소들(stemming components)을 가진 프로토타입 시스템들이 시도되고 있으나 아직까지 크게 성공하지 못하고 있다. 이는 한 개의 스템(stem)이 특정 범주 내에 사용될 수 있는 지를 결정하는 것이 어렵기 때문이다. 이는 스템이 되는 단어 그 자체에 의해서라기 보다는 테스트 내 주변 단어들에 의해 결정될 수 있다. 예를 들어, 제임스 본드 영화 “for your eyes only”를 찾을 경우, “for your eyes only”라는 단어를 가진 페이지를 되돌려보낸 결과는 우수하다고 간주할 수 없다.
일반적으로, 기존 검색 시스템 및 그 외 다른 이러한 의미론적 처리 시스템들은 텍스트에 내포되어 있는 의미 중 상당수를 찾아내는 데 실패하고 있다.
따라서, 텍스트 내의 배경 의미를 효율적으로 찾아낼 수 있는 방식으로 텍스트를 처리하는 방법 및 장치가 필요하다.
본 발명의 한가지 실시예는 개념적으로 서로 관련 있는 단어들의 클러스터들에 대해 한 문서를 특성화하는 시스템을 제공한다. 단어 세트를 지닌 문서를 수신할 때, 시스템은 상기 단어 세트와 관련이 있으며 개념적으로 서로 관련 있는 단어들의 “후보 클러스터들”을 선택한다. 이 후보 클러스터들은 개념적으로 서로 관련 있는 단어들의 클러스터들로부터 단어 세트들이 어떻게 발생되는 지를 설명하는 모델을 이용하여 선택된다. 그 다음, 시스템은 상기 문서를 특성화하기 위해 구성요소들의 세트(가령, 벡터)를 구성한다. 이때, 구성요소 세트는 후보 클러스터들의 구성요소들을 포함한다. 구성요소 세트의 각각의 구성요소는 대응하는 후보 클러스터가 상기 단어 세트에 관련된 정도를 표시한다.
본 실시예의 한가지 변형에서, 상기 모델은 확률 모델로서, 단어들과, 개념적으로 서로 관련된 단어들의 클러스터들에 대한 확률 변수(random variable)를 나타내는 노드들을 포함한다.
본 실시예의 또한가지 변형에서, 구성요소 세트의 각각의 구성요소는 단어 세트를 발생시킴에 있어 해당하는 후보 클러스터가 활성 상태인 정도를 표시한다.
본 실시예의 한가지 변형에서, 확률 모델의 노드들은 가중치화된 링크에 의해 함께 연결된다. 그리고, 확률 모델의 클러스터 노드가 점화될 경우, 클러스터 노드로부터 또다른 노드까지 가중치화된 링크가 그 외 다른 노드를 점화시킬 수 있다.
본 실시예의 또한가지 변형에서, 한 노드가 활성 상태인 여러개의 부모 노드를 가질 경우, 노드가 점화하지 않을 확률은 활성 부모 노드로부터의 링크들이 점화하지 않을 확률들의 프로덕트이다.
본 실시예의 한가지 변형에서, 상기 확률 모델은 범용 노드로서 항상 활성 상태이고 모든 클러스터 노드들에 대해 가중치화된 링크들을 가진다.
본 실시예의 또 한가지 변형에서, 시스템은 증거 트리를 구축함으로써 후보클러스터들을 선택한다. 이는 문서 내 단어 세트들에 관련된 터미널 노드들로 시작하여, 역방향으로 부모 클러스터노드들에 대한 링크를 따른다. 본 시스템은 단어 세트를 발생시킴에 있어 각각의 부모 클러스터 노드가 활성 상태였을 가능성을 추정하도록 증거 트리를 이용한다. 이어서 본 시스템은, 추정된 가능성을 바탕으로 후보 클러스터 노드가 될 부모 클러스터 노드를 선택한다.
본 실시예의 한가지 변형에서, 단어 세트들을 발생시킴에 있어 해당 부모 노드가 활성 상태일 가능성을 추정하는 상기 단계는,
- 해당 부모 노드가 활성 상태일 무조건적 확률,
- 해당 부모 노드의 부모 노드들이 활성 상태라고 가정할 때 해당 부모 노드가 활성 상태일 조건부 확률, 그리고
- 해당 부모 노드의 자손 노드들의 활성 상태라고 가정할 때 해당 부모 노드가 활성 상태일 조건부 확률
을 고려하는 단계를 포함할 수 있다.
또한가지 변형에서, 조건부 확률들을 고려하는 상기 단계는 노드들 간의 링크에 대한 가중치를 고려하는 단계를 포함한다.
한가지 변형에서, 단어 세트를 발생시킴에 있어 해당 부모 노드가 활성 상태일 가능성을 추정하는 상기 단계는, 추정 과정 중 터미널 노드들을 표시하여, 터미널 노드들이 추정 중에 두 번 이상 팩터화되지 않음을 보장한다.
또한가지 변형에서, 증거 트리를 구축하는 상기 단계는 증거 트리로부터 가능성 적은 노드들을 가지치는 과정을 포함한다.
한가지 변형에서, 구성요소 세트의 구축 중, 단어 세트를 발생시킴에 있어 후보 클러스터가 활성 상태인 정도는, 단어 세트를 발생시킴에 있어 후보 클러스터가 활성 상태일 확률을 연산함으로서 결정된다.
또한가지 변형에서, 구성요소 세트 구축 중, 단어 세트를 발생시킴에 있어 후보 클러스터가 활성 상태인 정도는 후보 클러스터에 대한 활성화와, 단어 세트를 발생시킴에 있어 후보 클러스터가 활성 상태인 확률을 곱함으로서 결정되며, 이때, 상기 활성화는 후보 클러스터로부터 그 외 다른 노드까지 몇 개의 링크가 점화될 가능성이 있는 지를 표시한다.
한가지 변형에서, 구성요소 세트를 구축하는 단계는, 구성요소 세트를 노멀라이징하는 과정을 포함한다.
또한가지 변형에서, 구성요소 세트를 구축하는 단계는, 단어 세트를 발생시킬 수 있는 확률 모델의 상태들에 대해 주어진 확률 클러스터가 활성 상태일 확률을 근사시키는 과정을 포함한다.
한가지 변형에서, 확률에 근사하는 상기 단계는, 문서 내 단어 세트들을 발생시켰을 가능성이 높은 확률 모델들에 대한 상태들을 선택하는 단계와, 이어서, 해당 후보 클러스터가 활성 상태인 확률을 연산할 때 선택된 상태들만을 고려하는 단계들을 포함한다.
또한가지 변형에서, 단어 세트를 발생시켰을 가능성이 높은 상태를 선택하는 단계는, 확률 모델에 대해 시작 상태를 임의적으로 선택하는 단계와, 단어 세트를 발생시켰을 가능성이 높은 상태에 도달하도록 시작 상태에서 시작하는 힐-클라이밍 동작을 실행하는 단계를 포함한다.
한가지 변형에서, 힐-클라이밍 동작들을 실행하는 단계는, 힐-클라이밍 동작들을 통해 도달할 수 없는 확률 모델의 상태들을 탐구하도록 힐-클라이밍 동작들에 대한 목적 함수에 관계없이 개별 후보 클러스터들의 상태들을 주기적으로 변경시키는 단계들을 포함한다.
또한가지 변형에서, 개별 후보 클러스터의 상태를 변경시키는 단계는, 변경된 상태를 포함하는, 목적 함수에 대한 극점을 생성하도록 변경된 상태를 일시적으로 고정시키는 단계를 포함한다.
한가지 변형에서, 상기 문서는, 웹페이지, 또는 질의어로부터의 용어 세트를 포함할 수 있다.
도 1은 본 발명의 한 실시예에 따른 확률 모델의 도면.
도 2는 본 발명의 한 실시예에 따른 확률 모델의 상태도.
도 3은 본 발명의 한 실시예에 따라 미국의 주를 표시하는 모델.
도 4는 본 발명의 한 실시예에 따른 전역 노드와 다수의 지역 네트워크의 도면.
도 5는 지역 네트워크 노드와 전역 모델 노드 간의 상호작용 도면.
도 6은 본 발명의 한 실시예에 따른 리워크 모델(reworked model)의 도면.
도 7A는 발명의 한 실시예에 따라 두 개의 부울 노드(boolean nodes)를 가진 단순한 네트워크의 도면.
도 7B는 발명의 한 실시예에 따라 두 개의 부울 노드를 가진 단순한 네트워크에서 추론이 어떻게 이루어지는 지를 도시하는 도면.
도 8은 본 발명의 한 실시예에 따라 루프가 어떻게 실패하는 경우의 잡음형 네트워크의 도면.
도 9는 발명의 한 실시예에 따른 간단한 세션 내부의 루피 연산의 도면.
도 10은 발명의 한 실시예에따른 단순화된 지역 네트워크의 도면.
도 11은 발명의 한 실시예에 따라 터미널을 트리거링하기 위해 경쟁하는 두 개의 클러스터의 도면.
도 12는 발명의 한 실시예에 따라 런타임 시에 지역 확률 네트워크가 렉시콘의 컴파운드들을 어떻게 동적으로 처리하는 지를 도시하는 도면.
도 13은 발명의 한 실시예에 따라 “터미널 산재성(terminal sparseness)”를 통해 가상 메시지를 전역 노드까지 단일 클러스터 C가 어떻게 발급하는 지를 도시하는 도면.
도 14는 발명의 한 실시예에 따라 새 전역 노드의 최적 설정을 찾아내는 데 산재성 링크 메시지가 어떻게 사용되는 지를 도시하는 도면.
도 15.1은 본 발명의 한 실시예에 따른 간단한 네트워크의 도면.
도 15.2A는 발명의 한 실시예에 따른 일례의 네트워크의 도면.
도 15.2B는 발명의 한 실시예에 다른 대안의 네트워크의 도면.
도 16은 발명의 한 실시예에 따른 시스템 출력의 도면.
도 17은 발명의 한 실시예에 따른 추가적인 시스템 출력의 도면.
도 18은 발명의 한 실시예에 따른 또다른 시스템 출력의 도면.
도 19는 발명의 한 실시예에 따른 또하나의 시스템 출력의 도면.
도 20은 발명의 한 실시예에 따른 검색 결과의 도면.
도 21은 발명의 한 실시예에 따라 문서를 특성화하는 데 관련된 데이터 구조의 도면.
도 22는 발명의 한 실시예에 따른 특성화 처리과정의 순서도.
도 23은 발명의 한 실시예에 따라 후보 클러스터들을 선택하는 과정의 순서도.
도 24는 발명의 한 실시예에 따라 후보 클러스터들에 대한 확률을 근사하는 과정의 순서도.
도 25는 발명의 한 실시예에 따라 확률 모델의 상태들이 어떻게 선택되는 지를 도시하는 도면.
본원 상세한 설명에 기재되는 데이터 구조 및 코드는 컴퓨터에 의해 판독가능한 저장 매체에 저장되는 것이 일반적이며, 이 매체는 컴퓨터 시스템에 의해 이용하기 위해 코드나 데이터를 저장할 수 있는 임의의 장치나 매체이다. 이는 디스크 드라이브, 자기 테이프, CD, 그리고 DVD같은 자기/광학 저장 장치를 포함하며, 또한, 전송 매체에 구현된 컴퓨터 명령 신호들을 포함한다. 예를 들어, 전송 매체는 인터넷같은 통신 네트워크를 포함할 수 있다.
시스템
발명의 한 실시예는 텍스트의 일례의 모델을 학습함으로서 개념들(concepts)을 학습하는 시스템을 제공한다. 시스템 측면에서, 텍스트의 작은 조각들이 확률 네트워크 실행을 통해 매우 간단하면서도 엄청나게 강력한 방식으로 발생된다. 이 시스템은 테스트의 작은 조각들의 수많은 예를 점검함으로서 이 네트워크의 매개변수들을 학습한다.
이 시스템의 한 실시예는 텍스트에 사용되는 단어들(및 컴파운드)이 될 테스트의 한 조각에서 중요한 정보를 고려한다. 예를 들어, 질의어 “cooking classes palo alto”에서, 단어들은 “cooking”, “classes”이고, 컴파운드는 간단한 컴파운드 “palo alto”로 구성된다. 컴파운드와 단어의 구별은 복합어를 기준으로 하여 구분된다. 예를 들어, “cooking class”는 컴파운드가 아니다. 왜냐하면, 이는 "요리"와 "강좌"에 관한 것이기 때문이다. 그러나, “palo alto”는 “palo”와 “alto”를 개별적으로 언급하는 것이 아니다. 이는 종종 구분하기 어려울 수 있으나, 전혀 고려하지 않는 것보다는 이를 잘 고려함으로서 더 우수한 시스템을 구성할 수 있다.
이것이 의미하는 바는 시스템이 텍스트 내 단어들의 순서를 고려하지 않음으로서 텍스트의 분석을 단순화한다는 점이다. 예를 들어, 발명의 한 실시예는 “palo-alto classes cooking”으로부터 위의 언급사항을 구별하지 않는다(본원에서 는 컴파운드의 구성요소들을 연결하기 위해 “-” 표시를 이용한다). 우리는 단어와 컴파운드를 “터미널”로 칭할 것이다. 이러한 단순화는 이 시스템이 텍스트의 구절들을 터미널 세트로 취급한다는 것을 의미한다.
터미널 세트로 텍스트를 발생시키는 확률 모델
단어 세트로 텍스트를 발생시킨 시스템이 어떻게 보이는 지를 살펴보자. 도 1은 이러한 모델을 도시한다. 여기서, 원은 모델 노드라 불린다. 이 노드들은 확률 변수들을 표현하며, 각각의 변수는 개념이나 터미널이 존재하는 지, 존재하지 않는 지를 모델링한다. 이 모델에서 우리가 고려하고 있는 터미널들은 "elephant", "grey", ", "skies"이다. C1, C2라 불리는 두 개의 개념들(concepts)이 존재한다(이들이 관련 단어들을 발생시키는 데 사용되기 때문에, 개념들은 종종 클러스터라 불린다).
이 모델은 단어 grey와 skies가 함께 자주 나타나는 이유, 단어 grey와 elephant가 함께 자주 나타나는 이유, 그러나 elephant와 skies는 함께 자주 나타나지 않는 이유를 설명하는 데 사용될 수 있다. 이는 사람들이 이 단어들로 텍스트를 발생시킬 때 이들이 마음속에 생각을 가지고 있기 때문이다. 시스템의 개념들은 텍스트를 발생시키기 전에 사람속의 생각을 모델링한다고 가정된다.
이름없이 도면의 상단에 위치한 어두운 노드에 주목해보자. 이는 범용 노드 U로서, 항상 활성 상태이다. 텍스트를 모델링할 때, 이는 항상 활성 상태이고, 모든 개념들이 여기서부터 발생한다. 임의의 개념으로부터 생기는 화살표들은 링크라 불린다. 이 링크들은, 한 개의 개념을 사용자가 생각하였을 때, 또다른 개념을 생 각하기 쉽고, 또한 또다른 터미널을 뒤에 쓰기 쉽다는 것을 의미한다. 예를 들어, 개념 C1은 단어 elephant와 grey에 링크된다. 이는 사용자가 C1을 생각한 후, elephant나 grey를 자주 쓴다는 것을 의미한다. 특히, 링크 상의 수치들이 중요하다. 이 수치들은 어떤 이벤트의 확률을 나타낸다. C1과 elephant 간의 링크는 C1을 생각한 후, 사용자가 0.5의 확률로 단어 elephant를 생각한다는 것이다. 이 수치들은 링크의 가중치(weights)로 불린다.
이 모델은 텍스트를 발생시키는 데 사용되거나 텍스트를 발생시키도록 실행될 수 있다. 우리가 이를 행할 때, 우리는 범용 노드(U)에서 시작하여, 발생시키는 사람의 마음 속에 존재한다고 이를 고려한다. 우리는 노드가 “활성 상태(active)”이거나 “점화되었다(fired)”고 자주 얘기한다. 개념(concepts)에 대하여는, 점화란 상기 개념의 아이디어가 활성 상태이고 터미널을 점화시킬 수 있다는 것을 의미한다. 터미널에 대하여는, 점화의 아이디어가, 발생될 텍스트에 터미널이 존재한다는 것이다.
이러한 텍스트 조각이 어떻게 발생될 수 있는 지를 한 예를 들어 살펴보자. 도 1의 예에서, 우리는 범용 노드(U)가 활성 상태라고 가정함으로서 시작할 수 있다. C1은 0.1 확률로 점화된다. 이 시점에서, C1이 점화될 것인지 여부를 일부 임의적 처리과정이 결정할 수 있다. 이러한 임의적 처리과정으로 인해, 우리는 주사위를 던질 수도 있고 임의적 정보를 이용할 수도 있다. 일반적으로, 연산 머신 상에서 이 과정이 발생하고 있을 경우, 임의적인 수치 발생기가 사용될 것이다. 의사결정을 생성하는 일부 방식을 우리가 가지기만 한다면 여러 방법들이 적당하다. 즉 , 10번 중 9번(0.9)은 no이고 10번 중 한번(0.1)은 yes로 나타난다. yes라고 판정되면, 개념 C1이 활성화된다. no라고 판정되면, C1이 활성화되지 않는다. 유사한 과정이 C2에도 적용된다.
우리는 임의적인 수치 발생기가 링크 U -> C1에 대하여 YES를, 링크 U -> C2에 대하여 NO를 발생하였다고 가정해보자. 이 시점에서, C1은 활성 상태이다. 개념이 활성 상태일 때, 우리는 상기 활성 개념으로부터 발원하는 링크들을 가진 다른 개념이나 터미널들에 대한 임의적 수치들을 얻을 수 있다. 본 예에서, 단어 elephant와 grey는 0.5와 0.4의 확률로 활성화될 가능성을 가진다. 이제 우리는 더 많음 임의적 수치를 얻어(간단한 해석을 위해 본 발명자는 이를 주사위 던지기로 언급할 것임) 두 단어(elephant와 grey)가 모두 활성 상태라고 결정한다고 가정해보자. 이는 우리가 텍스트 조각을 가진다는 것을 의미하며, 그 텍스트 조각이 단어 elephant와 grey임을 의미한다. 본 발명의 한 실시예에서 단어 순서가 모델링되지 않기 때문에, 우리는 “grey elephant”와 “elephant grey”를 구분할 수 없다. 이러한 방식으로, 우리는 작은 텍스트 조각을 발생시켰다.
도 2는 도 1에 상세하게 제시된 모델의 특별한 실행을 도시한다. 이 도면에서, 우리는 C1이 활성 상태임을 알 수 있고(노드를 어둡게 함으로서) 단어 elephant와 grey가 활성임을 알 수 있다. 텍스트 조각의 실행 모델을 그래픽 방식으로 관찰하는 이러한 아이디어는 전체 시스템이 제대로 동작하고 있는 지를 확인하고자 시스템을 점검하는 측면에서 중요하다. 따라서, 우리는 이를 나중에 이용할 것이다.
이는 grey elephant를 발생시키는 데 상당한 작업을 요하는 것으로 보인다. 그러나, 우리가 만나는 단어들은 우리에게 사람으로서 어떤 의미를 가진다. 이는 코끼리가 회색이기 때문이다. 어떤 세부적인 방식에서는 도 1의 이러한 모델도 세상의 물정에 관한 작은 조각을 찾아낸다. 표면적인 경우에서는, 이 모델이 grey와 elephant 간의 상관관계, grey와 skies 간의 상관관계를 찾아낼 수 있으나, elephant와 skies 간의 상관관계는 밝힐 수 없다.
본 시스템은 중간 개념, 링크, 그리고 링크 가중치를 학습하여, 텍스트의 작은 조각들 내에서 단어와 컴파운드의 동시발생을 설명할 수 있다. 추가적으로, 일반화된 모델은 상술한 바보다 훨씬 복잡하다. 따라서, 다양한 크기의 텍스트를 발생시키고 설명할 수 있다(가령, 질의어가 2~3개의 단어이고, 문서는 100단어 등등).
다양한 크기의 텍스트를 위한 조정
여러 가지 이유로, 상술한 간단한 모델의 종류는 텍스트를 취급하는 데 약간 부적합하다. 이에 대하여 간단히 설명하자면, 각각의 개념들은 어떤 숫자의 단어들을 생성하지만, 링크의 가중치가 작을 경우 여러 단어들을 생성하는 것이 매우 어렵다는 것을 발견하게 된다. 한 개의 개념이 터미널로부터 몇 개 또는 여러개의 단어들을 생성할 수 있다면 바람직할 것이다.
도 3은 미국의 주들을 표시하는 개념을 도시한다. 앞선 모델에 이어, 개념은 50개의 주 각각을 표시하는 터미널들을 점화한다. 각각의 확률은 1/50이 될 것이다. 따라서, 이 모델이 단어 California를 단독으로 발생시킬 확률은 매우 낮은 것 이다. 그 확률은 (1/50) * (49/50)49로서, 대략 0.7% 정도이다. 이러한 개념이 모든 주들을 점화시키는 것은 (1/50)50으로서, 이는 매우 작은 값이다. 그러나, 미국의 주들에 대한 아이디어를 포괄하는 이러한 개념을 우리가 발전시킬 경우, 우리는 모든 주들이 나타나는 텍스트의 조각들을 설명하고자 한다.
이 문제점을 해결하기 위해, 다른 터미널을 점화하기 전에, 각각의 개념은 활성 레벨을 얻는다. 개념적으로, 이 활성 레벨은 “얼마나 많은” 터미널들이 이 개념으로부터 얻어질 지를 선택한다. 이 활성 레벨은 우리 모델의 품질이 아님에 주목하여야 한다. 실제로, 이 모델이 실행 중일 때 선택될 뿐이다. 활성화가 행하는 바는, 이 개념이 각각의 단말기를 점화하는 확률을 수정시킨다는 것이다.
정확한 수치적 조정은 다음과 같을 수 있다. 한 개의 링크가 가중치 W를 가지며 클러스터가 실행시에 활성화 A를 선택할 경우, 그리고 링크가 개념과 터미널 사이를 가리킬 경우, 개념은 상기 터미널을 (1-e-AW)의 확률로 점화시킨다. 여기서, e는 자연대수로서, 약 2.71이다. 한눈에 보기에도, 이 공식은 특이해보이지만, 다음의 우수한 성질을 보인다. W가 매우 작고 A가 작은 수(가령, 2)일 경우, 확률은 AW가 된다. 따라서, 이 수치들은 일반적으로 근사시키기 용이하다. 특이한 지수 형태를 가지는 이유는 확률이 1의 상한치를 가져야 하기 때문이다. 따라서, 0.02의 링크 가중치와 100의 활성 레벨을 가지는 것은 확률 2.0을 제시할 수 없다. 지수 형태는 수학적 관점으로부터 그 외 다른 다수의 우수한 이론적 성질을 가진다.
이 시점에서, 우리는 우리 모델을 포함하는 모든 개별적인 조각들을 세분화 하고 있다. 한가지 세부사항은 동일한 터미널이나 클러스터를 점화시키기 위해 두 개 이상의 클러스터 사이에서의 상호작용이다. 이 경우에, 각각의 상호작용은 나머지에 대해 독립적이다. 특히, 결과가 점화되지 않을 확률은 각각의 사유가 점화하지 않을 확률의 곱이다. 예를 들어, 세 개의 클러스터 C1, C2, C3가 제 4 클러스터 C4에 가중치 0.1, 0.2, 0.3으로 링크될 경우, C1, C2, C3는 활성상태이다. 그러나 C4는 확률(1-0.1)*(1-0.2)*(1-0.3) 또는 (0.9)*(0.8)*(0.7) 또는 0.504로 점화되지 않을 것이다. 따라서, 점화될 확률은 1-0.504 = 0.496이다.
우리가 언급하지 않은 또다른 사항은 활성화를 얻을 때의 기존의 확률이다. 이 모델의 학습은 이 사항에 대해 크게 민감하지 않다는 것이 판명되었다. 여기서, 활성화는 ∃1 이 되도록 제약받으며, 1/Alog*A와 같은 확률이 활성화 이전의 값이다. (이때, log*A는 AlogAloglogAlogloglogA...). 이는 텍스트 발생 용도의 경우에만 중요하다고 판명되었다. 이 용도를 위해, 베이스 모델로부터 정확한 단어 수들을 대략적으로 발생시키는 어떠한 분배과정이 적절하여야 한다.
베이시안 네트워크(Bayesian Networks)
이 시점에서, 그리고 더 이상의 진행을 하기 전에, 우리가 논하였던 모델과, 베이시안 네트워크라 불리는 확률 모델의 일부 클래스 간의 어떤 이중성에 관하여 언급하는 것이 가치가 있다.
베이시안 네트워크는 조인트 분포에서 여러 확률 변수들 간에 조건부 독립성이 확인되는 잘 알려진 확률 모델 기술이다. 상술한 모델에서처럼, 베이시안 네트워크는 노드와 직접 링크들을 가진다. 이 네트워크는 다수의 확률 변수들에 관한 조건부 독립적 가정을 구조적으로 표현하면서, 다수의 확률 변수들에 대한 조인트 분포를 간략하게 표현한다.
베이시안 네트워크에서, 한 노드를 가리키는 노드 세트는 “부모(parents)”라 불린다. 한 노드로부터 다음의 링크를 통해 도달가능한 노드 세트들은 “자손(descendants or children)이라 불린다. 이 구조는 노드가 부모가 있을 때 비-자손에게 독립적임을 제시한다. 따라서 전체 분포는 부모가 있을 때 자손의 조건부 확률 표로 인코딩된다. 전체 네트워크의 특정 실례의 확률은 부모가 있을 때 각각의 자손의 확률의 곱에 해당한다.
베이시안 네트워크는 다음의 방식으로 우리의 모델에 관련된다. 즉, 우리 모델의 실행에 있어 각각의 노드가 확률 변수가 될 거라고 고려한다면, 점화되는 노드들의 세트에 대한 조인트 분포가 잡음형/조합 함수와 함께 베이시안 네트워크로 우리의 모델을 고려하는 것으로부터 발생하는 것과 정확하게 같다. 잡음형 또는 조건부 확률은 부울 자손(boolean child)을 각각의 부모로부터 독립적이도록 한다. 즉, 자손이 오프되는 확률은 각각의 부모가 점화되지 않는 확률의 곱에 해당한다. 이는 한 터미널에 링크된 여러개의 활성 개념들이 점화되지 않는 지를 결정하기 위해 우리의 모델에 사용되는 조합 함수와 정확하게 일치한다. 베이시안 네트워크는 훨씬 더 일반화된 확률 모델의 서브클래스에 해당한다.
학습(Learning)
이 시점에서, 우리는 텍스트를 발생시키는 데 기존 모델이 어떻게 사용될 수 있는 지에 대하여 살펴보고 있다. 우리는 이 작업의 연결 태양들을 상세하게 살펴 보지 못하였다. 즉, 1) 우리의 모델이 어떻게 학습하는 지, 2) 텍스트에 존재하는 개념들을 추정하는 데 우리의 모델이 어떻게 이용되는 지, 그리고 3) 실제 상황에서 우리 모델이 어떻게 사용되는 지를 상세하게 살펴보지 못하였다. 본 단락에서는 우리의 모델이 어떻게 학습되는 지를 상세하게 살펴볼 것이며, 이 용도로 사용될 수 있는 여러 가지 기술에 대하여서도 상세하게 살펴볼 것이다.
텍스트의 일반화 모델을 학습함에 있어, 발명의 한 실시예에서는, 일부 테스트 소스가 선택되어야 한다. 이러한 선택에서의 일부 고려사항은 다음과 같다. 즉, 1) 관련 단어들이 가까이에 위치하여야 하고, 2) 우리가 학습하려는 모델이 주어졌을 때, 독립적인 증거를 제시하여야 하며, 3) 다른 종류의 텍스트에 대해 관련성이 있어야 한다. 이러한 이유로, 다음에 이어지는 모델의 구현은 검색 엔진으로부터 일례의 “질의 세션”을 텍스트의 작은 조각들로 이용한다. 우리는 웹페이지와 텍스트의 그 외 다른 소스에서 우리의 모델을 또한 구현하였으며 실행하였으나, 이러한 모델을 보다 구체적으로 검토하기 위해, 우리는 질의 세션의 분석에 집중할 것이다.
보다 정확성을 기하기 위해, 우리는 질의 세션을 하루동안 검색 엔진에서 단일 사용자에 의해 사용되는 단어 세트로 정의한다. 사용자들은 관련 물질을 검색할 것이며, 특정 토픽에 관하여 한 행에 여러 질의어를 입력할 것이다. 가끔씩, 이들 질의어들은 임의적인 다른 토픽들과 뜨문뜨문 산재(intersparse)된다. 일례의 질의 세션들이 다음과 같이 나타날 수 있다.
the graduate
dustin hoffman
rain man
autism
cool junk
fast cars
tom cruise nicole kidman
각각의 질의어는 서로 다른 라인에 기재되어 있다. 대부분의 단어들은 어떤 방식으로 서로 관련성을 가진다. 첫 번째는 세 번째 줄과 마찬가지로 더스틴 호프만의 영화제목이다. 두 번째는 더스틴 호프만 본인의 이름이다. 네 번째(autism; 자폐증)는 세 번째 영화에 나타난 증상을 언급하며, 다섯 번째 질의어 “cool junk”는 본 세션의 메인 토픽에 관련된 사항이 없으며, 여섯 번째 “fast cars”도 마찬가지이다. 마지막은 약간의 관련성을 가진다. 왜냐하면 영화 레인맨에 탐크루즈가 더스틴호프만과 함께 출연하였기 때문이다. 일반적으로, 우리가 추론을 도출할 수 있는 사항을 이용하여 작은 텍스트 조각에서 다량의 정보가 존재한다. 하지만, 상관없는 잡동사니도 다수 존재한다. 우리의 시스템의 메인 작업은 이러한 다수의 텍스트 조각들을 살펴보면서, 잡동사니로부터 적절한 상관관계를 도출하는 것이다.
질의어에 함께 나타나는 모든 단어들을 설명할 수 있는 확률 모델을 학습하는 것은 쉬운 일이 아니다. 상술한 세션의 설명에서, 우리는 질의 세션을 설명하기 위해 일반적으로 세상에 관하여 우리가 가진 정보를 이용하였다. 이는 상술한 세션이 좀더 미세하게 유사한 세상의 모델과 일치하도록 하기 위해 우리의 모델이 학습 하는 정보의 속성이다. 다음은 이러한 접근법을 언급한다.
이 모델이 무엇인 지 우리는 알 수 없으나, 다수의 개념들이 존재함을 우리가 알고 있다고 가정해보자. 이 불확실성을 표현하기 위해 확률 네트워크가 자체적으로 사용될 수 있다. 한 개념과 다른 한 개념 또는 터미널 간의 각각의 링크를 표현하는 노드가 삽입될 수 있다. 이러한 종류의 노드들은 전역 노드라고 불리며, 이들은 모델 자체에 관한 불확실성을 나타낸다.
이 전역 노드들은 상술한 모델 노드와는 다르다. 즉, 모델 노드와 링크에 관하여 불확실성을 가지기 때문이다. 이제, 각각의 텍스트 조각에 대하여, 우리는 전체 모델을 복제하여, 지역 네트워크를 생성한다. 각각의 모델 사본은 지역 노드라 불리며, 이 지역 노드들은 특정 실행에 대해 한 개의 개념이 존재하는 지에 관한 불확실성을 표현한다. 우리의 모델을 학습하기 위해, 우리는 우리 모델에 과난 모든 불확실성을 고려하여야 하며, 최적 모델과 일치하도록, 또는 우리가 추가적으로 처리할 수 있는 사항을 이용하여 모델 세트와 일치하도록, 어떤 종류의 이유를 구현하여야 한다.
도 4는 이렇게 큰 네트워크가 어떻게 보이는 지를 도시한다. 점선 위쪽이 전역 노드로서, 우리의 모델에 관한 불확실성을 나타낸다. 노드 U->C1은 모델에서 U와 C1 간 링크의 가중치에 관한 불확실성을 표현한다. U는 항상 활성 상태인 범용 노드에 대한 이름임을 상기하라. 마찬가지로, 노드 U->T1, C1->C2, C1->T1 등등을 이해할 수 있다. 우리의 모델에서는 모든 노드들을 다른 모든 노드들에 링크시키지 않는다. 이는, 범용 노드 U로부터 유입되는 모든 아이디어의 일관된 설명을 제시하 기 위해서, 링크 구조의 사이클들이 허용되지 않기 때문이다. 예를 들어, U가 C1, C2를 링크하지 않았음에도, C1을 야기할 수 있는 C2를 야기할 수 있는 개념 C1이 항상 C1과 C2를 유사하게 하기 때문이다. 이러한 이유로, 한 개의 개념은 높은 수치의 개념들에 링크되는 것만이 허용되며, 범용 개념은 모든 노드에 링크될 수 있다.
이제, 점선 아래에는 지역 네트워크들이 존재한다. 각각의 네트워크에서, 특정 사용자 세션에 대한 터미널들이 활성 상태라고 가정한다. 이러한 각각의 세션에 대해 우리의 모델이 복제된다. 이는, 각각의 세션에 대해 우리가 관찰한 사항이 사용자가 사용한 단어에 있기 때문이며, 상기 단어들이 나타났을 때 사용자의 마음에 활성 상태로 있는 개념에 있는 것이 아니기 때문이다. 지역 노드들은 이 개념들에 관한 우리의 불확실성을 표현한다. 사용자가 자신이 쓴 각각의 단어를 썼을 때 무언가를 생각하고 있었을 수 있기 때문에, 모든 개념들은 각각의 지역 네트워크에서 고려되어야 한다.
이제, 지역 네트워크가 어떻게 전역 노드에 관련되는 것일까? 단순하게 말해서, 지역 네트워크의 U와 C1 간의 각각의 링크는 전역 노드(U->C1)에 의해 구현된다. 각각의 지역 네트워크에서 U가 C1을 점화할 확률은 전역 노드(U->C1)에 달려 있다. 도 4의 지역 네트워크의 최대 확률 네트워크 도면에서, 각각의 전역 노드는 모든 지역 네트워크의 모든 C1을 가리킬 것이다. 도 5는 도 4에서 이를 위해 공간이 충분하지 않았기 때문에 이러한 네트워크와의 이러한 상호작용을 도시한다. 또한, 도 5는 두 개의 개념을 가진 한 개의 모델에 대한 상호작용들만을 도시한다. 전역 노드(U->C1)와 C1 간의 링크들은, 지역 세션에서 점화되기 전에 C1이 U의 상태를 알아야하고 전역 노드(U->C1)의 상태를 알아야 한다는 사실을 표현한다.
도 6은 이 모델의 약간 변형된 버전을 도시하며, 이때, 각각의 개념이 또다른 개념이나 터미널을 트리거링하는 지를 명백하게 도시하도록 변수들이 존재한다. 둘 모두에 의해 제시되는 조인트 분포들은 동일하다(단, 이들이 관심대상인 원 변수들 값에 투영될 경우(즉, C1과 C2)). 도면의 삼각형은 엑스트라 “트리거” 변수를 표현하며, 이는, 요구되는 조건부 확률의 수치를 단순화시키기 때문에 모델을 생각하는 데 도움이 되는 경우가 많다.
예를 들어 도 6에서, U와 C2 간의 트리거 변수는 C2가 U로부터 점화될 확률을 결정하기 위해 U와 U->C2 의 분포를 알기만 하면 된다. 마찬가지로, C2로의 또다른 트리거는 C1과 C1->C2 분포의 값들을 알기만 하면 된다. 이 두 조인트들은 도 5의 모델에서 C2 노드가 필요로하던 모두 4개의 변수에 비추어 그 조인트보다 훨씬 단순하다. 이는 주로, 조건부 확률 명세의 복잡도가, 고려해야할 요소의 수에 따라 기하급수적으로 증가하기 때문이다.
이 부분은 좀 더 명확하게 할 필요가 있다. 도박의 수입이 10마리 경마 이벤트에 따라 좌우되는 복잡한 도박 기법에 사람이 참가하는 예를 고려해보자. 이때, 각각의 수입은 서로 다른 원금회수를 보일 것이다. 이러한 도박을 위해, 210, 즉, 1024개의 수치가 필요하다. 왜냐하면, 모든 레이스가 동시에 고려될 경우 이는 개별적인 수입들의 수치이기 때문이다. 대신에, 동일한 사람이 각각의 말에 대해 10 개의 독립적인 도박에 참여한다고 가정해보자. 이때, 이기는 지, 지는지 등은 각각의 말에 따라 좌우될 것이다. 이 도박은 이제 10개의 수치만을 필요로 한다. 마찬가지로, 조건부 확률 분포가 N개의 변수들에 대해 적용되어야 할 때, 요구되는 복잡도의 수준은 2N이며, 따라서, 이러한 상태를 처리하기 위해서는 그 정도의 연산 복잡도가 요구된다. 이는 트리거 변수들이 이 문제의 인수분해로 유용한 이유이다. 이러한 관점으로부터, 우리는 트리거 형태 또는 비-트리거 형태로 상호교환방식으로 지역 네트워크를 제시할 것이다.
한가지 마지막 사항은 거대 네트워크에서 구현하는 것이 여전히 필요하다. 그래서 확률적으로 잘 규정되도록 하는 것이 필요하다. 먼저, 전역 노드는 기존 분포를 필요로한다. 즉, 한 개념이 다른 특정 개념이나 단어에 링크하는 것이 얼마나 비슷하게 이루어지는 지에 관한 증거를 조합하기 위해, 우리는 우리의 믿음이 앞서의 어떤 것인 지를 알아야 할 필요가 있다. 우리의 모델을 학습하는 것은 이러한 분포에 크게 민감하지 않다고 드러났으며, 따라서, 여러 가지 사항들이 여기서 가능하며, 그 예로, 0이 아닌 링크 상의 1/1000의 평탄한 분포와, 0이 아닌 링크 상의 1/1000 을 포함한다.
이는 어사이드(aside)와 다이버전(diversion)의 한 비트이다. 그러나, 완전함을 위해, 이것이 변수들을 완전하게 제약하지 않는다고 생각한다. 왜냐하면, 0이 아닌 값들에 대해 어떤 부하도 인가되지 않기 때문이다. 그리고 이는 점화 확률을 위한 상기 사항을 가중치화하는 활성화 수준의 곱에 불과하다. 그러나, 세션의 개 념 활성화를 얻기 위해 우리가 이용하는 발견적 지도법(heuristics)은, 이 개념으로부터 모든 터미널까지 점화의 총 가중치가, 각각의 세션에서 점화할 수 있는 단어들의 평균 수로 나눈, 이러한 개념이 점화하는 터미널들의 평균수치와 대략 같아야 한다는 것을 제시한다. 또한, 이 확률들을 설정하는 또다른 방식은 전역 노드에 대한 영향이 나타나는 구체적 방식에 따라 좌우된다. 앞서와 같이, 우리는 두 개의 스파이크 분포에 의해 각각의 전역 노드가 표현되는 단순화된 모델만을 찾는다(하나는 0에서 하나는 다른 최적값에서). 이 경우에, 당신은 이러한 새로운 링크가 주어졌을 때, 네트워크의 콜모고로프 복잡도(Kolmogorov complexity)에 대해 대략 의존하도록 새 링크에 대한 기존치를 추정할 수 있다. 즉, 모델이 새 링크에 대해 얼마나 간단한 관계에 있는 지를 추정할 수 있다. 이때, 모델들이 더 간단할 경우 모델들이 닮기 쉬운 세상의 설명으로부터 전체 모델이 자기 자체를 도출한다고 가정한다. 여기서, 클러스터로부터 터미널까지의 링크는 클러스터가 링크되는 다른 것들의 수에 따라 좌우될 가능성이 높으며, 터미널에 링크되는 것들의 수에 좌우될 가능성도 높다. 또한 둘 모두에도 해당된다.
전체 거대 네트워크가 설정되면, 더 이상의 개념적 작업이 필요하지 않다. 이 네트워크에서 추론을 얻으려 시도하는 것은 이론적 관점에서 매우 직관적이 것이며, 충분한 연산 파워가 제공될 때, 전역 노드들의 모든 분포에 도달하는 것이 직관적이다. 이는 모델을 완전하게 구현한다. 여기서의 추론이란, 주어진 모든 학습 증거(사용자 세션)를 설명하는 것을 의미하며, 우리의 모델에 대한 상기 증거의 연계를 완전히 이용할 수 있음을 의미한다. 유사 모델들에 대한 분포는 일부 텍스 트 조각이 활성 상태일 때 개념들이 언제 얼마만큼의 확률로 활성 상태가 되는 지를 정확하게 추측할 수 있게 한다. 실제로, 모델에 대한 분포에 의해 우리는 이러한 텍스트 발생에 관한 모든 질문에 답할 수 있다.
이제 한가지 남은 문제점은 스케일의 문제이다. 기본적인 문제점은 다음과 같다. 즉, 세상에 5백만개의 개념이 존재한다고 생각해보자(이는 실제로 작은 것이다. 60억명의 사람들이 존재하며, 이들과 각기 얘기할 때, 귀하는 각기 다른 사항들을 말할 것이며, 따라서 적어도 50억개의 개념들이 존재한다. 하지만 일단 5백만개에서 시작해보자). 백만개의 터미널들이 존재한다고 또한 생각해보자(new-york같은 컴파운드를 고려하여, 영어만으로 생각해보자. 이것이 접근하기 쉬운 방식이다). 이제 50억 사용자 세션에서 이 네트워크를 단련시키고자 한다. 추가적으로, 연속 확률 변수들을 취급하는 연산 부담을 무시한다. 이제 모델 노드들은 각각의 세션에 대해 한번씩 복제될 필요가 있다. 이는 충분히 거대한 네트워크가 아래의 값을 가질 것임을 의미한다.
50억 세션 x (100만 터미널 지역 노드 + 500만 개념 지역 노드)
= 300억 x 1조 지역 터미널 모드
이는 매우 용이한 부분이다. 그러면 링크를 카운트해보자. 전역 모델은 500만개의 노드를 가지며, 각각의 노드는 100만개의 터미널에 링크될 수 있다. 각각의 터미널들은 지역 네트워크에 50억번 복제될 수 있고, 각각의 네트워크는 적절한 전역 노드로부터의 링크를 가진다(수치 두배). 그래서,
100만 터미널 x
500만 클러스터 x
50억 세션 x
2
= 5조 x 100억 링크
가장 나쁜 부분은 네트워크 크기에 대해 기하급수적 시간으로 정확한 추정 기술이 실행된다는 점이다. 따라서 기본적으로, 이를 직관적인 방식으로 행하는 것은 수용불가할 정도로 값비싸다. 본원의 다음 섹션은 이 시스템을 구현할 수 있도록 하기 위해 처리해야만하는 다른 작업들을 기술한다.
스케일 기술 및 루피 신뢰 전파(Scalability Techniques And Loopy Belief Propagation)
우리의 대형 네트워크를 해결함에 있어 우리가 직면한 첫 번째 문제는 네트워크 크기 측면에서 완전한 추론이 기하급수적이라는 점이다. 여기서 일부 잘라내야할 점이 있다. 신속하고 부정확한 방식으로 확률 네트워크 주변에서 증거를 전파시키는 “루피 신뢰 전파(loopy belief propagation)”(“루피”라고도 함)라 불리는 추론 기술이 존재한다. 빠르다는 것이 장점이고 정확하지 않다는 점이 단점이다. 그러나, 이는 여러 신뢰 네트워크에 대해 우수한 근사 해결사로 판명되곤 한다.
루피 신뢰 전파는 특정 네트워크의 모든 노드들의 가장자리 분포를 해결하기 위해 네트워크에서 전송되는 두 종류의 메시지들에 의존한다. 다운 메시지들은 링크의 흐름과 함께 이동하는 메시지들이며, 따라서, 어떤 노드가 링크의 반대편에 있더라도, 종착지로부터 들어오는 것과는 다른 모든 다른 증거가 부여되었을 때 소스의 신뢰를 요약한다. 업 메시지는 링크의 흐름을 거슬러 올라가는 메시지로서, 종착지 노드에 다양한 값이 주어졌을 때, 링크의 같은 쪽의 확률이 얼마인지를 종착지 노드에 말하여준다.
도 7A는 잡음형 구성요소를 가진 간단한 두 개의 부울 노드 네트워크를 도시한다. 여기서 노드 A는 참인 기존의 0.1을 가지며, 노드 B는 A가 참이란 가정 하에서 참인 0.3을 가진다. 이제, 우리는 이 네트워크에서 루피를 가동함으로서 참인 B의 확률을 결정할 수 있다. A는 다운 메시지를 B에게 전하여, 모든 다른 증거가 주어졌을 때, A가 확률 0.1로 참이라는 것을 말하여준다. B는 이 메시지를 수신하고, 조건부 확률에서 자체적으로 인수화한다. 그리고 확률 0.3으로 참이라고 결론짓는다.
도 7B는 업 메시지를 이용하여 추론이 어떻게 이루어지는 지를 도시하는 두 개의 부울 노드 네트워크를 디스플레이한다. 여기서, B가 참이라는 사실에 대하여 B에 증거가 존재한다. 그래서, 우리는 B가 참이라는 전제 하에서 A의 확률을 결정하려 시도하고 있다. B가 A에게 업 메시지를 전송하고, 이는 A가 참일 경우에만 B가 참일 수 있다는 사실을 A에게 얘기한다. 즉, A가 거짓이라면, B가 알고있는 아래로부터의 증거의 확률은 0이다. 따라서, A는 참이 되어야 한다. A는 이 메시지를 수신하여 그 기존값과 곱하며(0.1의 참의 기회), 이것이 참이 되어야 한다고 결론지으며, 따라서 상기 증거의 전제 하에서 A가 참이다.
루피 신뢰 전파는 다음의 이유로 추론 문제에 기술적으로 정확한 해법이 아 니다. 두 개의 다른 소스로부터 증거가 특정 포인트에 도달할 때, 이 소스들은 상기 소스들이 상관된 상태인 지에 관한 정보를 잃는다. 다음의 예를 고려해보자. 세 사람 A, B, C가 대화 중에 있다. A는 주식시장이 다음달에 상승할 것이라고 믿는다고 B에게 말한다. B는 C에게 동일한 정보를 말한다. 이 시점에서, C는 A에게, 다른 누군가가 시장이 상승할 것이라고 믿는다고 말한다. 루피에서의 문제점은 이러한 간단한 신뢰 전파 시스템에서도, C의 신뢰가 A의 원래 확인사항을 바탕으로 한다는 것을 A가 말할 수 없다는 것이다. 따라서, A로부터의 증거는 다시 순환한다. 약간 더 복잡한 방식에서는, 루피 신뢰 전파가 네트워크의 루프를 따라 증거를 순환시켜서, 일반적으로 정확한, 그러나 가끔씩은 부정확한 해법을 생성해낸다.
루프가 없이 네트워크에서 루피가 실행될 때, 루피는 정확하며, 네트워크의 직경과 같은 단계들의 수 내에서 정착된다. 그러나 루프가 있는 네트워크에서 실행될 경우, 증거는 네트워크에서 루프를 따라 이동한다. 일반적으로, 특정 해(solution)에 대해 정착되지만, 상기 해가 정확하다고 보장할 수 없으며, 루피가 정착된다고 말할 수도 없다. 도 8은 루피가 실패하는 잡음형 네트워크를 도시한다. 여기서 D는 참이라 가정하며, 그 유일한 소스는 실제로 A이고, 따라서, A가 참임을 추론이 보여주어야 한다. 그러나 루피는 A에 대해 약 0.6의 값에 정착한다. 일반적으로 루피는 제대로 동작하며, 본원에서 나중에, 루피가 어떻게 개선될 수 있는 지를 점검할 것이다.
여기서 언급해양할 추가적인 사항은 이러한 거대 네트워크에서 루피를 실행하는 효과는 클러스터를 감추어진 변수라고 가정할 때 데이터에 대해 EM(기대치 최 대화) 연산을 실행하는 바와 크게 유사하다는 점이다. EM에서는, 모델 변수에서의 초기 추정치가 채택된다. 그후, 감추어진 변수의 확률이 추론된다. 그후, 이 모델 변수에 대한 추정치가 업데이트된다. 이는 실질적으로 루피와 동일한 연산이다. 둘간의 한 개의 차이는 루피가 한 세션으로부터의 증거를 다시 반영하지 못한다는 점을 의미한다. 즉, 루피의 적절한 설명은 최종 반복시 상기 세션이 전송한 이전 업 메시지에 대해 전역 노드로부터 다운 메시지를 디스카운트할 것이다. 각각의 반복마다 데이터의 서로 다른 조각에 대해 EM 접근법을 구현하는 것과 루피 접근법 사이에는 큰 차이가 없다. 본원의 나머지 부분에서, 우리는 이 처리 과정을 논의함에 있어 EM 용어보다는 루피 용어를 이용할 것이다.
거대 네트워크에서의 루피 신뢰 전파(Loopy Belief Propagation in the Big Network)
거대 네트워크의 전역/지역 경계부 사이에 루피 메시지가 사용된다. 여기서 전역 노드는 특정 네트워크에 자신의 신뢰를 자체적으로 하향으로 전파하며, 네트워크가 백만개 중 하나이기 때문에, 이는 어디에서나 전파되는 동일한 신뢰 바로 그것이다. 그러나, 트리거 노드에 관하여 알고있는 그 외 다른 모든 것이 주어졌을 때, 네트워크의 확률을 트리거 노드가 상향으로 전파시킨다.
도 9는 단 한 개의 개념(C1)과 한 개의 터미널(T1)을 포함하는 한 개의 모델을 이용하여, 특히 간단한 세션 내부에서 발생하는 루피 연산을 도시한다. 이 세션에서 우리는 터미널 T1을 볼 수 있다. 즉, 로컬 노드가 어둡게 칠해진 이유를 알 수 있다. 이제, 이 모델을 둘러싸는 일부 메시지들이 무엇인 지를 살펴보자.
먼저, U->C1 전역 노드로부터 U와 C1 사이의 트리거 노드까지 이동하는 다운 메시지를 살펴보자. 이 메시지는 (U->C1) 노드의 상태에서 현재의 신뢰를 보고하여야 한다. 단, 나머지 세션으로부터 루피의 현재의 반복에서 접수된 데이터를 전제사항으로 한다. 연속 변수에 대해 완전하고 정확한 분포를 이용하여 연산 및 통신하는 것은 어렵다. 이러한 이유로, 본 섹션에서 (U->C1)으로부터 트리거 노드까지 다운 메시지가 단순화된다. 완전한 분포를 소통시키는 대신에, 두 개의 피크 구분 분포로 분포를 근사시키며, 이때, 한 개의 피크는 0이고 또다른 피크는 최적값 W로 선택된다.
이 다운 메시지의 해를 구하기 위해, 우리의 시스템은 먼저, 이 전역 노드에 관해 다른 섹션으로부터 유입된 증거를 컴파일한다. 우리의 시스템은 이 노드에 대해 최선의 값인 0이 아닌 값 W를 얻는다. 그후, 업 메시지를 노드의 존재에 관한 메시지로 변환하여, 최적값 W에서 다운 메시지로 전송할 확률이 얼마인지, 그리고 값 0에서 확률이 얼마인 지를 결정한다. 전역 노드로부터의 다운 메시지에 대한 이러한 단순화는 연산상 가능한 방식으로 전역 노드의 구분-연속 특성을 취급함에 있어 바람직하다.
U->C1으로부터의 단순화된 다운 메시지는 U->C1으로부터 발원하는 링크 다음의 작은 화살표를 따른다. 이는 (0.1, 1.0)으로 표시된다. 이는 최적값이 0.1이고, 1.0의 확률로 이러한 링크가 존재함을 의미한다. 모든 네트워크가 부분적으로 설명가능하다는 이유로, 우리는 U로부터 어디로의 링크도 1.0보다 작은 확률을 가지게 하지 않는다. 또다른 예의 다운 메시지는 지역 네트워크에서 C1->T1으로부터 C1과 T1 간의 트리거 노드까지 발생하는 메시지이다. 이 메시지는 (0.2, 0.8)로 표현되며, 이는 0이 아닌 기회가 0.8이고, 0이 아닐 때 이는 0.2와 같다는 것을 의미한다.
이제, 전역 모델로부터 다운 메시지를 알고있다고 가정한 후 이 네트워크에서의 일부 추론을 행해보자. C1으로부터 T1까지 하나, U로부터 C1까지 하나, 그리고 U로부터 T1까지 하나의 세 개의 트리거 노드가 존재하며, 그 확률에 대해서는 우리도 모른다. 우리는 이 세션 내에서 클러스터 C1이 활성 상태일 확률도 모른다. 이들 모두는 이 세션에서 루피를 실행함으로서 풀릴 수 있다. 즉, 해를 얻을 수 있다. 이 연산들의 샘플을 실행하기 전에, 우리는 추가적인 단순화를 포함시켜야 할 것이다. C1->T1으로부터 트리거 노드까지의 다운 메시지는 (0.2, 0.8)로 표시된다. 그러나, 이 메시지를 이용하기 전에, 우리는 두 개의 스파이크 분포를 곱함으로서, 그리고 이를 단일 스파이크 분포로 단순화시킴으로서, (0.16, 1.0)의 단일 메시지였다고 바꾸어 해석한다. 이제, 우리는 작은 세션 네트워크만을 살펴보면 된다. 이러한 단순화는 우리의 작업틀 내에서 행할 수 있다.
우리가 행할 수 있는 한가지 작은 가정은 C1의 활성화가 1로 설정된다는 점이다. 일반적으로, 확률 네트워크를 구동할 때, 이 값은 추론을 통해 자체적으로 도출될 수 있다. 그러나, 이러한 지역 네트워크에서 추론을 행하려 시도할 때, 우리의 모델은 클러스터의 활성화가 본 네트워크에서 점화할 수 있는 터미널의 수와 같다고 가정한다. 이는 활성화 및 가중치의 곱만이 고려된다는 사실을 취급하는 상술한 바의 조정에 해당한다. 이러한 조정은 다음의 정당화 수준 내에서 이루어진 다. 즉, 활성화는 어떤 크기 수준 내에서만 이루어지고, 따라서, 이를 최적으로 결정함에 있어 어떤 연산 시간도 허비되지 않는다.
이제, 전역 노드를 무시하면서 이 네트워크의 단순화된 잡음형 모델을 살펴보자. 이는, 전역 노드가 시스템에 공급하는 모든 정보가, 클러스터와 그 외 다른 클러스터, 또는 터미널 간의 잡음들에 대한 가중치에 의해 요약될 수 있기 때문이다. 이는 어떤 다른 부모없이 타 노드들을 단순화시키는 확률 네트워크의 표준 기술로서, 노드들을 네트워크에 합산함으로서 구현된다. 이렇게 단순화된 지역 네트워크는 도 10에서처럼 나타난다. 본 네트워크의 링크는 0.095, 0.095, 그리고 0.1478로 표시된다. 이는 U가 T1을 트리거하는 확률이 1-e-0.1 = 0.095와 같기 때문이다. 대략 AW의 확률로 링크가 결과물을 트리거링하여야 함을 우리가 어떻게 언급하였는 지에 관하여 생각해보자. 여기서 A는 1이고 W는 0.1이며, 따라서 이는 대략 0.095이다. 마찬가지 원리가 C1과, T1으로의 트리거 간의 링크에도 적용된다. 이는 0.1478로서, 1-e-0.16에 해당한다.
이제 우리는 T1이 참임을 안다. C1이 이를 야기할 확률을 결정해보자. U로부터의 트리거 노드가 T1에 전송할 다운 메시지는 (0.095, 0.905)이다. 이때, 0.095는 노드가 참이라는 신뢰를 나타내며, 0.905는 노드가 거짓이라는 신뢰를 나타낸다. 이 다운 메시지의 속성은 전역 노드로부터의 다운 메시지의 속성과는 완전히 다른 것이다. 이는 트리거 노드가 부울 변수(boolean variable)이기 때문이다. 반면에, 전역 노드는 연속적이고 구분된 변수의 특이한 믹스로서, 0에서 일부 확률 매스를 가지며 그 외 다른 지점에서 일부 밀도를 가진다. 또한, 이는 2-점 분포에 의해 근사되며, 단일 지점 분포로 단순화된다.
트리거가 부울 노드이기 때문에, 트리거는 그 하나의 수치를 아래로만 전송하면 되고, 그 확률은 참이며, 나머지 수치는 1 빼기 상기 첫 번째 수치이다. 우리의 구현에서 우리는 이러한 최적화를 행한다. T1은 이 번호를 취하여 C1 측의 트리거 노드까지 전송한다. 트리거가 트리거링되었을 때의 T1의 확률과, 트리거가 트리거되지 않았을 때의 T1의 확률을 전송한다. 이 업 메시지는 (1.0, 0.095)이다. 이제, 부울 변수에 대한 업 메시지들은 이러한 두 개의 값을 가지며, 그러나, 실제로는 단 한 개만이 필요하다. 즉, 둘 간의 비율만이 필요하다. 이제, C1으로부터 T1까지의 트리거 노드는 (1.0, 0.095)의 업 메시지를 얻지만, C1으로부터 유입되는 다운 메시지를 또한 가진다. 이 메시지는 C1으로부터 (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)을 얻는다. 이는 최종적인 신뢰이다. 본 네트워크에서 나머지 “감춰진 변수들”의 해를 구하기 위해 이와 유사한 연산이 실행될 수 있다.
일반적으로 루피는 부모에 대한 신뢰를 노드에 제시하며, 그 자손의 신뢰를 자체적으로 제시한다. 이는 부모에 대한 신뢰를 자신에 대한 신뢰로 변환하기 위해 조건부 확률 분포를 이용한다. 이제, 자신을 위해 두 개의 신뢰 수치를 가지며, 이는 구성요소를 곱한 것으로서, 자체 신뢰를 얻기 위해 1을 기준으로 노멀라이징을 행한다. 이 메시지들을 연산하기 위해 우리가 자주 행하는 한쌍의 최적화는 다음과 같다. 우리는 언더플로를 피하기 위해 긴 공간에서 여러 확률 연산을 행한다. 이는 다운 메시지와 업 메시지 비를 모두 포함한다. 추가적으로, 노드에 대한 부모들의 수에서 선형 시간으로 동작하도록 루피를 구현하기 위해, 노드의 신뢰로부터 한 부모의 효과를 빼는 것을 돕는다. 이는 특별한 루틴을 통해 행하여지며, 상기 루틴은 이러한 전파를 신속하게 행하기 위해 N개의 수치들을 취하여, 상기 수치들의 N-1에 대한 모든 N 프로덕트들을 연산한다.
서로 다른 속성을 가진 전역 노드들까지 전송되는 업 메시지를 살펴보자. 전역 노드는 0에서 무한대까지 어떤 값도 취할 수 있는 구분-연속 확률 변수임을 상기해보자. 링크에 가중치가 주어졌을 때, 네트워크의 확률을 당신이 어떻게 연산할 수 있는 지를 보여주는 간단한 예를 살펴보자.
도 11은 한 개의 터미널을 트리거링하기 위해 경쟁하는 두 개의 클러스터 C1과 C2를 도시한다. C1->T와 C2->T로부터 적절한 트리거 노드까지의 다운 메시지는 q1과 q2의 점화 확률을 각각 표시한다. 상술한 바와 같이, 우리는 존재 확률 곱하기 최적값을 곱함으로서 전역 노드로부터 다운 메시지의 영향을 근사한다. 따라서, 우리는 지역 네트워크에서, C2가 1-e-a2q2 의 확률로 T를 발진시킬 수 있다라고 해석함으로서 우리의 해에 근사한다. C1도 앞서와 마찬가지로 T의 발진에 이용된다. 이 제, 모델의 다른 부분으로부터 C1에 유입되는 메시지들은 p1이 참일 가능성이 높다는 것을 보여준다. 마찬가지로, 모델의 다른 부분으로부터 C2에 유입되는 메시지들은 p2가 참일 가능성이 높다는 것을 보여준다. C1과 C2는 a1과 a2의 활성화 상태를 가진다고 결정되며, 노드 T는 관측된 터미널이다.
이제, C1과 T 간의 지역 모델에서 C1-> T로부터 트리거 노드까지 링크를 따라 전송되는 업 메시지를 살펴보자. 이 메시지는 도면에서 M으로 표시된다. 이 메시지는 q1의 함수로 네트워크의 확률을 전송할 수 있다. 네트워크의 실제 확률은 전송할 필요가 없다. 실제로, 상대적인 확률 비율만 전송하면 된다. 즉, 확률과 곱한 어떤 상수 팩터만 전송될 수 있고, 그 팩터가 q1의 모든 값에 대해 동일하기만 하면 된다. 마지막으로, 우리는 전송된 메시지를 조사하기 위해 준비한다.
네트워크에서 고려할 사항은 네가지이다. 이 작은 네트워크 바깥에서 발생하는 바에 대하여 각자 고유 확률을 가진다. 첫 번째는 C1과 C2가 모두 참인 경우이다. 이는 확률 p1p2로 나타난다. 이 경우에, T가 참일 확률은 다음과 같다.
1 - e-a1q1e-a2q2
따라서, 전체 네트워크 확률은 다음과 같다.
p1p2(1-e-a1q1e-a2q2)
C1이 참이고 C2가 거짓일 경우, 이 조합이 발생할 확률은 p1(1-p2)이다. T가 참일 확률은 다음과 같다.
1 - e-a1q1
따라서 전체 네트워크 확률은 다음과 같다.
p1(1-p2)(1-e-a1q1 )
마찬가지로, C2가 참이고 C1이 거짓인 경우, 네트워크의 확률은 다음과 같다.
p2(1-p1)(1-e-a2q2)
마지막으로, C1과 C2가 모두 참이 아닌 경우에는 T가 참일 수가 없다. 따라서, 전역 노드(C1->T)까지 전송된 함수 메시지는 다음과 같다.
p1p2(1-e-a1q1e-a2q2)+
p1(1-p2)(1-e-a1q1)+
p2(1-p1)(1-e-a2q2)
이 함수가 복잡해보이지만, 실제론 대단히 간단하다. 메시지 M의 용도로 이 함수에서 유일한 변수가 q1이다. 따라서 이 함수는 다음의 형태로 나타날 수 있다.
a + be-a1q1
이때, a는 상술한 모든 상수 항들의 합이고, b는 상술한 합에서 e-a1q1의 계수이다. 메시지를 노드(C1->T)에게로 상향 전송하는 용도일 경우 q2, p1, p2가 모두 일정하다고 간주됨에 주목하여야 한다. 실제로, 이 함수와 곱하여질 상수 팩터는 문제가 되지 않기 때문에, 이 방정식을 다음과 같이 표현할 수 있다.
1 + ke-a1q1
이때, 전역 모델에게로 전송할 두 개의 수치 k와 a1만을 남겨둔다. 우리는 전역 노드를 향한 이러한 업 메시지들을 링크 메시지라고 부른다.
이제, 링크의 종착지가 클러스터일 때, 이러한 업 메시지들의 함수 형태가 크게 변하지 않는다. 예를 들어, T가 클러스터일 경우, C1가 C2의 활성화가 문제가 되지 않으며, 반면에 참인지 거짓인 지를 표시하기 위해 다른 터미널로부터 업 메시지를 T가 수신할 수 있다. 이는 연산에 일부 조건 세트를 단순히 부가한 것에 불과하다. 왜냐하면, 각각의 세상 관점이 T가 거짓인지, T가 참인지를 설명해야하기 때문이다. 그리고 네 개의 서로 다른 파트들을 가지는 대신에, 상술한 합계는 8개의 파트를 가질 것이며, C1, C2, T의 각각의 가능한 값에 대해 한 개씩의 파트를 가질 것이다. 이제, 트리거 노드에 업 메시지를 전송함으로서, 우리의 코드는 T와 그 클러스터 부모들을 모두 완전하게 고려함으로서 발생하는 기하학적 뻥튀기를 효율적으로 피할 수 있다. 이러한 기하학적 뻥튀기의 경우엔 T가 단지 몇 개를 넘는 부모를 가진다고만 하여도 엄청나게 비용이 비싸진다.
언급해야할 한가지 사항은 전역 노드를 포함한 전체 네트워크 사이에서 우리가 루피를 구동함에도 불구하고, 우리는 락스텝(lockstep)에서 루피의 지역적 및 전역적 반복을 구동할 필요가 없다. 실제로, 우리는, 전역 노드에 대한 루피의 한 단계를 실행하도록 되돌아가기 전에, 수렴을 위해 각각의 국부 네트워크에 대해 루피의 10회 이상의 반복을 자주 시행한다.
링크 가중치 최적화(Link Weight Optimization)
이제, 우리는 루피가 전역 노드들을 어떻게 취급하는 지를 고려해볼 것이다. 즉, 루피의 각각의 반복에서, 모델 내 각각의 링크에 대한 최적 값과 기존 값을 우리의 모델이 어떻게 재고려하는 지를 살펴보자. 어떤 전역 노드로의 업 메시지도 다음의 형태를 가진다는 점을 상기하자.
1 + ke-a1q1
이제, 이 변수에 대한 가장 가능성높은 가중치를 선택하기 위해, 우리의 모델은 모든 이러한 업메시지들을 조합하여야 하고, 전역 노드에 대한 최적치를 골라야 한다. 우리의 용어표기를 약간 변화시켜주자. 노드는 (1+kiexp(aix)) 형태의 N개의 업 메시지들을 수신한다고 하자.
여기서, 우리는 1부터 N까지 진행하는 첨자로 I를 이용한다. ki는 상수 팩터이고, ai는 x에 대한 계수이며, x는 X에 대해 풀려야할 변수이다. X는 변수에 대한 가능한 선택을 나타낸다. 함수 메시지는 x에 대해 서로 다른 값들을 이용하여 다양한 세션의 확률들을 표시한다.
0이 아닌 가장 큰 x를 선택하기 위해, 우리는 모든 이러한 업 메시지들의 프로덕트를 최대화시키는 x를 찾아야 한다. 이는 1차원적 최적화 문제이다. 이를 풀기 위한 한가지 방식은 한 범위에서 x를 샘플링하는 것이다. 보다 효율적인 방식은 다음과 같다. 프로덕트의 로그가 최적화될 때 수치들의 묶음의 프로덕트가 최적화된다. 이 수치들의 프로덕트의 로그는 그 로그들의 합이다. 이는 다음과 같은 최적 화를 보여준다.
Figure 112005017624762-pct00001
이제 x에 대해 이의 도함수를 취할 수 있고, 특정 범위(가령 0에서 1까지) 내의 점들을 찾아보자. 이때, 상기 도함수는 극값에서 감소한다. 이 검색은 바이섹션에 의해, 또는 그 외 다른 기술을 통해 실행될 수 있다. 이 함수는 비-단조함수일 수 있어서(즉, 항상 증가하거나 항상 감소하는 것이 아님), 두 개 이상의 극점을 가지기도 한다. 그러나 이런 경우가 항상 적용되는 것은 아니다.
여기서 간단히 언급하자면, 이러한 최적화가 0이나 무한대의 최적치 x를 왜 생성하지 못하는 것일까? 함수 1 + ke-ax 의 속성은 k에 달려있다. k가 양수일 경우, 함수는 x가 커짐에 따라 증가한다. 이는 이 특정 세션이 이러한 특정 링크를 커지게함으로서 훼손될 수 있다는 것을 의미한다. 일반적으로, 이는 세션에 의해 표시될 가능성이 높지 않은 또다른 클러스터를 한 클러스터가 가리킬 때 발생한다. k가 음수일 경우, 특히 -1 부근일 경우, 이는 이 링크를 가지는 강한 이유를 표시한다. 예를 들어, k가 0.99라고 가정하자. x=0은 0.01의 상대 확률을 제시한다. x가 매우 높은 경우는 1의 상대 확률을 제시하며, 따라서 x는 0일 때의 경우보다 100배 정도 높다. 그러나 가끔씩은,0의 값이 유일한 극점으로 나타난다. 이 경우에, 우리 모델은 0에서 링크의 모든 확률 매스를 제시한다.
최적값이 선택되면, 업 메시지는 부울 기존 변수에 대한 업 메시지로 변환될 수 있어서, 0의 값에 대한 X의 최적치를 흥정한다. 상술한 확률의 곱은 0과 X에서 평가되며, 링크의 존재에 대한 기존값(Kolmogorov 복잡도에 의해 결정되거나 위에서 결정된 바에 따르면 1/1000)이 함께 합쳐진다. 이러한 믹싱은 링크에 대한 존재 확률을 우리에게 제시한다.
프리-컴파운딩 및 렉시콘(Pre-compounding and the Lexicon)
우리의 모델은 한정된 세트의 단언들이나 컴파운드로 취급된다. 이를 우리는 “렉시콘”이라 부른다. 이 렉시콘을 결정하기 위해 사전처리 단계가 요구된다. 이 사전처리 단계는 우리의 모델을 처리하기 위해 중요한 단어 및 컴파운드들을 결정한다. 대략적으로 말해서, 사용자 세션에서 시간의 특정 단위 내에 나타나는 모든 단어들이 포함된다. 컴파운드 포함은 좀더 복잡하다. 두 개의 전략이 여기서 가능하다. 첫 번째로, 한 개의 전략은 컴파운드를 좀더 포함하고 런타임 컴파운딩을 실행하는 것이며, 두 번째는, 컴파운드를 덜 포함하고 정적 타임 컴파운딩을 실행하는 것이다.
컴파운딩이 복잡한 이유는 컴파운드 자체의 표기 때문이다. 상술한 바와 같이, 단어 세트들이 "new york"처럼 비-구성적(non-compositional)일 경우, 이는 우수한 컴파운드이다. "red car"같은 또다른 세트는 구성적이다. 즉, 이는 red와 car 모두에 해당한다. 이를 발견하기 위한 한가지 방식은 사용자 세션의 절단(break)과 분리(split)를 살펴보는 것이다. 우리는 절단되는 횟수를 각각의 잠재적 컴파운드에 대해 카운팅할 수 있다. 여기서 절단된 컴파운드란, 사용자가 한 질의에서 전체 컴파운드를 발급하였고, 또다른 질의에서, 사용자는 화합물의 일부분을 발급하였다는 것을 의미한다. 예를 들어, 다음의 세션은 red car에 대해 2개의 절단점을 가진 다.
red car
blue car
yellow car
분리점들은 유사한 개념으로서, 이때, 컴파운드는 어느쪽에서도 따로 분리된다. 2-단어 컴파운드의 경우, 절단도 분리에 해당한다. 그러나 긴 컴파운드의 경우, 가령, “this is the time for all good men”의 경우, 절단은 세션 내 어딘가에서 단어 “the time"을 찾을 수 있을 것이다. 이제, 이 정보는 절단 가능성에 관한 정보와 조합될 수 있어서, 절단이 의도적인 것이 아니라 우발적인 것일 확률을 설명할 수 있다. 예를 들어 사용자는 다음의 사용자 세션을 살펴볼 수 있다.
new york cars
new magazines
그리고 우리의 모델은 이것이 “new york”에 대한 절단(break)이라고 결론지을 것이다. 그러나, “new”는 비교적 자주 나타나는 단어이기 때문에, 절단(break)의 가중치, 또는 우리의 모델이 얼마만한 중요도로 이를 신뢰하느냐하는 바는 상기 단어가 얼마나 흔하게 사용되느냐에 의해 가중치화된다. 이러한 모든 정보, 즉, 화합물의 빈도, 절단과 분리의 빈도, 그리고 분리나 절단 단어들의 용어 빈도는 렉시콘에 대한 화합물들의 적절한 세트를 결정하는 데 사용된다. 이 렉시콘이 사용자 세션을 바탕으로 할 필요는 없다. 실제로 웹 문서, 책 등을 포함하는 어떤 방식의 텍스트도 적절한 컴파운딩 렉시콘을 형성하는 데 사용될 수 있다.
정적 컴파운딩 접근법에서 우리의 모델은 렉시콘의 단어 및 컴파운드들의 빈도를 취하여, 텍스트를 프리-컴파운딩(pre-compounding)하는 데 이들을 사용한다. 이 경우에, 각각의 시퀀스는 렉시콘으로부터 토큰들의 시퀀스를 살펴볼 확률을 최대화하려 시도하는 동적 프로그래밍 접근법을 이용하여 설명된다. 동적 프로그래밍 접근법은 텍스트 조각의 길이를 따라 실행하여, 지금까지 보아온 토큰들의 시퀀스를 최대한으로 설명하는 것이다. 각각의 포인트에서, 우리는 각각의 새 단어까지 시퀀스의 최적 설명을 알 경우, 둘 중 하나가 가능하다. 즉, 1) 단어가 고유 렉시콘 토큰에 의해 설명되며, 앞서의 모든 다른 단어들은 상기 포인트에 대한 최적의 설명에 의해 설명된다. 또는 2) 단어는 이전의 다수의 토큰들까지 질의어의최적 설명과 믹싱되는 컴파운드의 일부분이다. 이러한 두가지 대안 모두가 탐구될 수 있으며, 상기 포인트까지 세션에 대한 새로운 최적 설명이 발생될 수 있다. 이 동작을 실행함으로서, 각각의 새로운 단어를 단어 세트에서 찾을 수 있다.
동적 컴파운딩의 경우에, 세션 내 각각의 위치에서 발생하는 가능한 워드 해들(solutions)의 OR에 대한 증거이도록 세션의 증거가 채택된다. 도 12는 지역 확률 네트워크가 런타임 시에 렉시콘의 화합물을 동적으로 처리할 수 있는 지를 도시한다. 단어들 “new york”만으로 구성된 세션이 보일 경우, 단어들 new, york, 또는 new york에 대해 증거가 카운팅되지 않는다. 차라리, 우리는 첫 번째 위치에서 단어 “new”나, 컴파운드 “new york”이 상기 위치를 설명함을 알 수 있을 것이다. 마찬가지로, “york”나 “new york”은 제 2 위치를 또한 설명한다. 이전 섹션에서 우리가 언급한 모든 메시지들은 이렇게 새로운 컴파운딩 방법에 부합하도록 조정하기가 매우 용이하다. 실제로, 이 방법은 한쌍의 단어들이 세션 내 다른 단어들을 바탕으로 한 컴파운드인 지를 결정할 수 있는 장점을 가진다.
산재성 및 초기화(Sparseness and Initialization)
대부분의 상술한 내용에서 우리 모델의 설명은 임의적으로 큰 수의 개념들을 가정하고 있지만, 이러함이 이 기술이 초기화되는 방식일 필요는 없다. 실제로, 우리의 모델은 단 한 개의 특정 클러스터(범용 클러스터 U)로 시작되며, 이는 CANADA(국가 Canada와는 다른 점에 주의)와 같은 기억연상 이유(mnemonic reasons)로 불린다.
루피 신뢰 전파는 반복적 접근법으로서, 새로운 잠재적 클러스터를 도입하도록 항상 실행중인 상태이며, 이것이 우리의 모델이 행하는 바이다. 각각의 반복에서, 우리의 모델은 다수의 사용자 세션을 채택하여, 그 세션 내 단어들을 점검한다. 한 세션이 충분한 수의 단어들을 포함할 경우, 상기 특정 세션을 완벽하게 설명하는 새로운 클러스터가 형성된다. 이러한 새로운 클러스터는 다수의 잠재적 모델 노드들을 도입한다. 이러한 새로운 클러스터 내에서 또는 이 클러스터로부터 각각의 잠재적 모델 링크마다 하나씩 도입한다. 이들 모두가 저장되는 것은 아니다. 실제로 우리의 모델은 특정 링크만을 저장한다. 단지, 링크 최적화 단계에서 특정 한도보다 존재할 가능성이 높다고 결정될 경우에 한한다. 그리고 그 가중치가 CANADA로부터의 링크의 가중치보다 충분히 큰 경우에 한한다. 이는 모델로부터 가짜 링크를 제거한다. 왜냐하면, 우리는 메모리 및 연산 리소스에 대해 모두 비용을 지불할 것임을 알 수 있기 때문이다. 이러한 단순화는 “모델 산재성(model sparseness)”라 불린다.
유사한 산재성이 지역 네트워크에도 적용된다. 시작시에도, 5백만개의 단어와 화합물들의 렉시콘으로, 지역 세션들이 특히 클 것이다. 각각의 지역 네트워크에 모든 터미널과 화합물을 포함시킬 이유가 없다. 우리는 텍스트 안에서 모든 단어 및 컴파운드들을 관측하지 못하는 효과를 거짓이라고 요약할 수 있다. 이는 어떤 단어들도 점화하지 못하는 확률을 각각의 개념에 대해 사전연산함으로서 실행된다. 이는 링크 최적화 단계 이후에 실행될 수 있다(차후의 우리의 모델 단계에서 더욱 나타난다). 이 사전연산은 텍스트에 실제로 존재하는 단어들의 효과를 제거함으로서 조정될 수 있다. 즉, 존재하지 않는 모든 단어들의 효과를 부가적으로 결정하는 대신에, 우리는 각각의 클러스터에 대해 한번씩 어떤 단어도 트리거링하지 않을 확률 비용을 연산하고, 그리고 이미 존재하던 단어들의 효과를 제거한다.
이러한 “터미널 산재성”은 각각의 지역 세션으로부터 몇 개를 제외한 모든 터미널을 제거하고, 결정된 가중치를 가진 “거짓” 부울 노드를 가리키는 각각의 개념에 대한 일부 증거로 이들을 요약한다.
추가적으로, 전역 노드로 업 메시지들을 전송할 때, 존재하지 않는 모든 터미널들의 효과가 요약된다. 일반적으로, 단어 T1만을 가진 세션에 클러스터 C1이 존재할 경우, 우리는 C1과 C2, C1과 C3, T2와 C1, 그리고 C1과 T3 등등간의 링크에 대하여 네트워크의 확률이 감소될 것임에 관한 업 메시지를 필요로할 것이다(상술한 바와 같이 k는 양수). 이러한 업 메시지들이 수백만개 존재한다. 대신에, 우리는 한 개의 업 메시지로 이를 요약한다. 이 과정은 “링크 메시지 산재성”에 대한 기술 세트의 일부분이다. 이것이 어떻게 이행되는 지를 점검해보자.
도 13에서, 우리는 단일 클러스터 C를 볼 수 있다. 이때, 참일 확률 p는 네트워크의 나머지 부분에 의해 결정된다. 이 세션에서, C는 활성화 상태 a를 가진다. 이제, 터미널 T는 관측되지 않는다. “터미널 산재성”을 통해 세션에서 배제될 것이다. x가 C->T 노드의 값이라고 생각해보자. C->T 노드로부터 C와 T간의 트리거 노드까지 링크를 따르는 업 메시지는 x에 대해 네트워크의 확률을 소통시킨다. 이제, T가 거짓일 확률은 다음과 같이 근사된다.
Figure 112005017624762-pct00002
여기서 우리는 링크 강도 x가 작다고 가정한다. 이는 합리적이라고 판단되는 데 왜냐하면 클러스터가 존재하지만 단어는 존재하지 않기 때문이다. 낮은 링크 강도에서 e-ax ~=1-ax이다.
또한 이 연산을 정확하게 하기 위해, 우리는 이 단어가 그위치에 존재하지 않았다는 가정하에서 C의 확률을 초기에 연산하였다는 사실을 조정하여야 한다. 이는 이 특정 업 메시지의 루피 결정에서 가감되어야 한다. 우리가 이를 행하지 않는 이유는 이를 무시함으로서 우리가 텍스트의 이 조각에서 클러스터 C의 존재에 대해 단 한개의 수치만을 상향 전송할 수 있기 때문이다. 이 정보(즉, e-pax)는 소스로 C를 가지는 모델 노드들에 대한 모든 링크 최적화 연산으로 팩터화된다. 즉, C->T 전역 노드는 이 수치를 이용하여 이 네트워크 확률에 대한 최적치의 효과를 근사할 수 있다.
여기서 도입된 한가지 작은 오류는 이 메시지들이 클러스터마다 전송되기 때문에, 우리는 터미널이 텍스트에서 실제 발생하는 경우의 클러스터와 터미널의 조합에 대해 이를 또한 고려한다는 점이다. 예를 들어 도 13에서, C가 상향 전송하는 산재성 링크 메시지는 전역 노드(C->T)의 최적 설정을 풀어내는 데 사용된다. 이는 정확하다. 그러나, (C->T2) 노드의 최적값을 연산하는 데도 사용될 수 있다. 하지만 이는 부정확하다. 왜냐하면, T2는 텍스트에 실제 존재하기 때문이다. 이를 조정하기 위해, T2와 C 사이의 트리거 노드는 링크 메시지에 추가 구성요소를 포함한다. epax의 이러한 조정은 C->T2 전역 노드에 대한 정상 링크 메시지와 함께 전송된다. 이는 산재성 링크 메시지로부터 유입되는 e-pax를 소거하고, 모든 연산이 정확하게 근사하여 완료된다.
지금까지, 우리는 존재하지 않는 터미널로서, 트리거 노드로부터 상향으로 메시지들을 링크시키는 터미널들을 단순화하였다. 각각의 지역 네트워크에서 처리할 클러스터 노드는 한 개의 거대 모델에서 수백만개가 여전히 존재한다. 이를 단순화시키기 위해, 우리는 고속 근사 연산을 실행함으로서, 이 세션에서 어떤 확률로 어떤 클러스터들이 존재할 지를 결정할 수 있다. 학습에 필요한 전역 메시지들 의 용도 측면에서, 범용 산재성 링크 메시지들이 설명되면, 존재하지 않을 가능성이 높은 클러스터들이 전역 모델에 거의 영향을 미치지 않는다고 판명되었다. 따라서, 다수의 클러스터를 우리가 고려할 필요가 없도록 하는 신속한 연산이 매우 바람직할 것이다.
우리의 모델은 지역 네트워크 내에서 고려해야할 클러스터들을 결정하기 위해 “부모 피킹(parent picking)”이라 불리는 루틴을 실행한다. 이 루틴은 몇가지 종류의 정보를 이용한다. 즉, 1) 모든 다른 세션에서의 확률로부터 추정될 수 있는 클러스터의 기존 존재 가능성, 2) 단어들을 가리키는 클러스터들의 가능성을 발생시키는 세션 내 단어들, 3) 높은 확률을 가진 클러스터로부터 링크된 단어들, 그리고 4) 전역 모델의 구조를 이용한다. 우리는, 텍스트의 작은 조각에 대해 이 루틴을 실행한 후, 점검받을 클러스터들의 수를 큰 팩터만큼 감소시키는 이러한 루틴으로 되돌아가 점검할 것이다. 백만개 이상의 개념들을 가진 한 개의 대형 모델에서, 단일 단어 “office”로 구성된 세션에서 실행될 때, 우리의 모델은 백만개 이상의 클러스터로부터 단 12개만을 고려하면 된다. 이 “클러스터 산재성”은 세션 분석에 요구되는 작업양을 크게 감소시킨다.
현재의 반복에서 높은 확률로 이미 존재하는 링크들을 위해 업 메시지들이 전송되어야 하는 것은 아니다. 우리의 모델의 한 실시예는 새 단어들에 대해 개념들을 관련짓는 업 메시지들을 전송할 필요가 있다. 실제로, 이는 새 단어들이 한 개념으로부터 어떻게 링크되는 지에 관한 것이다. 클러스터 C의 초기 할당이 질의 세션에 대한 것인 예를 고려해보자.
california
palo alto
berkeley
이제 우리가 새로운 지역 네트워크에서 학습 중임에 따라, 아래의 세션을 관찰한다.
california
berkeley
san francisco
도 14는 이러한 네트워크가 어떻게 보이는 지를 도시한다. 우리의 새로운 클러스터 C는 본 세션에서 california와 berkeley를 모두 가리킨다. 터미널 산재성을 이용하여 모든 다른 터미널들이 명백하게 고려되는 것은 아니며, 클러스터 산재성을 이용하는 것도 마찬가지이다. 또한, 낮은 확률을 가진 모델 링크들에 저장하는 것이 아니기 때문에, C와 San Francisco 간의 어떤 명백한 링크도 존재하지 않는다. 모델 산재성 때문에 전역 노드(C->San Francisco)도 명백하게 존재하지 않는다. 이제, C가 세션에 나타날 거라고 결정될 경우, 존재하지 않는 노드(C->San Francisco)에 업 메시지를 전송하는 것이 바람직하다. 우리의 모델이 이 메시지를 수신할 때, 이는 링크(C->San Francisco)에 대한 최적치를 연산할 것이며, 링크가 충분할 경우(둘다 존재하고 충분히 높은 최적치를 가질 경우), (C->San Francisco) 노드가 전역 모델에 추가된다. 이는 전역 모델이 클러스터로부터 터미널까지 새 링크를 어떻게 성장시키는 지를 정확하게 보여준다. 그러나, 실행될 수 있는 한가지 최적화는 루피를 국부적으로 실행한 후 충분히 높은 확률을 클러스터가 가질 경우 이 새로운 노드 링크 메시지를 상향으로 전송할 뿐이다.
이러한 산재성 기술의 효과는 대단히 중요하다. 그 본질은 다중 메시지를 조합하여 요약 메시지로 하는 것이며, 크게 무시될 수 있는 존재하지 않는 가상 정보의 산재성 표현에 해당한다.
모델 저장 및 압축
이 시점에서, 우리는 우리의 모델의 명세와, 우리 모델을 실현하는 데 사용되는 산재성 기술의 일부를 둘러싼 이론적 세부사항 중 여러 곳을 살펴보고 있다. 이 단락은 우리의 모델의 실행을 포괄하며, 즉, 상술한 이론적 모델에서 실행되는 단계 및 처리과정들의 정확한 세트를 포괄한다. 이 섹션에는 여전히 중요한 이론적 소개사항이 존재하며, 이는 우리의 모델의 실제 실행 측면에서만 일부 전이 효과를 설명할 수 있기 때문이다.
우리의 모델은 공유 파일 시스템이나 네트워크를 이용하여 데이터를 교환하는 별도의 연산 유닛에서 병렬로 실행될 수 있다. 그 동작의 한 스테이지는 “파편화(sharded)”된다고 말한다. 단, 이러한 평행화를 구현하도록 하는 방식으로 나누어질 경우에 그렇게 말한다. 데이터는 마찬가지 방식으로 “파편화(sharded)”된다고 말한다. 예를 들어, 우리는 파일이 id로 파편화된다고 말한다. 이는 파일이 N개의 조각으로 나누어지고, 어떤 id를 가진 데이터가 id 모드 N 조각에 위치한다는 것을 의미한다.
저장된 구성요소(Components Stored)
먼저, 우리는 학습을 위해 한 반복으로부터 다음 반복까지 우리의 모델이 저장할 수 있는 정보의 구성요소들을 포괄함으로서 시작한다.
사용자 세션들이 파일 시스템에 한 개 이상의 파일로 저장된다. 그 포맷은 렉시콘 룩업이 각각의 인지된 단어를 독자적 정수로 기변환시키도록 이루어지며, 이때, 독자적 정수는 그 terminal_id이다. 렉시콘에 따르면, terminal_id들이 텍스트 스트링으로부터 작은 id들로 앞뒤로 변환될 수 있다. id를 이용할 때의 한가지 장점은 이들이 작은 밀집 공간 내에 위치하기 때문에, 이들을 조작하는 데 사용되는 데이터 구조들을 단순화시킬 수 있다는 것이다.
렉시콘은 terminal_id로부터 터미널까지, 그리고 그 역으로 각각의 변환을 구현하는 포맷이다. 각각의 터미널은 고유 terminal_id를 가진다.
우리의 모델은 클러스터로부터 터미널까지 또는 클러스터로부터 클러스터까지 관련 링크 관계 모두와 함께 저장될 수 있다. 각각의 링크의 소스는 부모(parent)라고 불리며, 그 종착지는 자손(child)이라 불린다. 부모와 자손 간 각각의 링크가 저장될 수 있다. 우리의 모델에서, 이 정보는 역전된 인덱스로 저장되며, child_id에 의해 파편화된다. 각각의 클러스터는 생성됨에 따라 고유 cluster_id를 부여받는다. 이 id는 동일 공간에서 terminal_id로 나타날 수 있다. 역전된 인덱스는 각각의 자손에 대해, 상기 자손의 부모들의 리스트를 저장하며, 그 존재 확률과 가중치도 저장한다. 모든 이러한 정보는 라이스 인코딩(rice encoding)처럼 압축 기술을 이용하여 비트-인코딩되어, 인덱스가 메모리에서 차지하는 공간의 양을 감소시킨다.
한가지 특정한 최적화는 크기를 두배로 한 블록에 역정된 인덱스 데이터를 저장하는 것이다. 이때, 각각의 블록 내에는 압축을 위해 부모가 id로 저장된다. 블록간 오더링(inter-block ordering)은 타겟에 대한 중요한 링크를 먼저 강조하도록 선택될 수 있다. 이 데이터 구조의 장점은 전체 인덱스 엔트리를 살펴보지 않으면서도 터미널이나 클러스터에 대한 가장 중요한 링크를 불러올 수 있다는 점이다. 이는 중요도에 의한 소팅에 의해 간단하게 실행될 수 있다. 두 번째 장점은 인덱스 엔트리의 상당부가 id에 의해 소팅되어, 중요도에 의한 간단한 소팅에 비해 보다 압축 효과를 높인다는 점이다.
이 모델은 역전된 순서로 저장될 수도 있다. 이때, 부모는 자손들의 리스트를 가진다. 이는 정보의 디버깅(debugging)에 사용될 수 있다. 모델은 별개의 인덱스 및 데이터 구조들로 분리될 수도 있으며, 이때, 인덱스는 파일 내로의 포인터 인덱스여서, 클러스터나 터미널의 부모들이 두 개의 파일 액세스로 발견될 수 있다.
다음 반복을 위한 링크 최적화를 재시행하기 위해, 그리고 부모 피킹(parent picking)을 위해, 우리의 모델은 이 세션에 관한 다른 어떤 정보도 없을 때, 각각의 클러스터의 확률같은 여러 정보 조각들을 찾아야 한다. 이는 각각의 클러스터에 대한 확률 곱하기 총 합계 활성화를, 루피의 최종 반복에 대한 상기 클러스터의 빈도로 근사하였다. 이는 링크 최적화에서 가상 링크 메시지용으로 사용된다. 이 정보는 1-수준 정보나 모델로 불리는 데, 이는 클러스터가 존재하느냐 여부의 1-수준 모델(그리고 기대 활성화 곱하기 확률의 모델)이기 때문이다.
이 모델은 모든 클러스터들의 모든 아웃링크 합을 또한 저장할 수 있다. 여기서 아웃링크는 클러스터로부터 또다른 클러스터까지의 링크이다. 이는 링크의 현재 존재 값과 그 가중치를 곱함으로서 합계된다. 이 모델은 활성화된 아웃링크 합계를 모두 저장할 수 있다. 이는 클러스터로부터 터미널까지 링크의 합이다. 이 두 정보 조각들은, 클러스터나 터미널 산재성을 이용할 때처럼, 자손 터미널이나 클러스터들의 일부를 내부적으로만 고려함에 따라, 클러스터의 확률을 조정하는 방법을 알아내기 위해 필요하다. 이 데이터는 cluster_id에 의해 파편화된다.
이 모델은 파일에 클러스터 명칭의 리스트를 부가적으로 저장할 수 있다. 이 명칭들은 클러스터 내의 좀더 지배적인 터미널들 몇 개를 선택하여 이를 연쇄화시킴으로서 결정되는 것이 일반적이다. 이는 대개 컴파운딩을 위한 기억연상 장치이다. 그러나, 이는 특정 정보 필요성에 응답하는 우리 모델의 현 클러스터를 터미널을 통해 식별하는 데도 사용될 수 있다. 예를 들어, 포로노그래피 단어 세트는 포로노그래피 클러스터를 식별하는 데 사용될 수 있으며, 이는 자손에게 안전한 검색을 형성하도록 우리의 모델과 조합하여 사용될 수 있다.
업 링크 메시지는 다음 반복의 처리과정에서 일시적으로 저장된다. 이 메시지들은 부모와 자손 id의 조합에 의해 파편화된다.
상술한 내용은 실행 중에 우리 모델의 데이터 요건을 포괄한다. 다음 섹션은 우리 모델의 실행 중 다른 단계들에 대해 세부적으로 기재한다.
(1) 섹션 처리(Process Section)
먼저, 우리 모델은 파일 시스템 액세스를 절약하기 위해 메모리로 로딩된다. 두 번째로, 우리 모델은 파일 시스템으로부터 학습 세션을 판독한다. 이는 상술한 산재성 원리를 이용하여 상기 섹션들에 대한 지역 네트워크를 형성한다. 그후 지역 세션에 대해 추론(루피)을 실시한다. 왜냐하면, 여러 다양한 클러스트들의 확률에 대해 집행이 요구되기 때문이다. 이는 링크 메시지들을 추출함에 있어 중요한 사항이다.
추론 실행 후, 우리 모델은 상기 세션들로부터 업 링크 메시지를 추출하며, 상기 메시지의 (source_id, target_id)에 의해 파편화된 상기 메시지들을 저장한다. 이는 상기 세션들로부터 “노드 메시지들”을 또한 추출한다. 이 노드 메시지들은 클러스터와 터미널의 활성화 및 현재 확률을 포함한다. 터미널은 항상 1의 활성 상태를 가진다. 이 정보는 차후 단계에 의해 처리될 I에 의해 파편화된 파일 시스템에 저장된다. 각각의 클러스터에 대한 이러한 정보“링크 메시지 산재성”의 효과를 조정하는 데 필요한 것과 정확하게 같다. 즉, 도 13의 용어에서, 소스 C와의 어떤 전역 노드에서도 e-pax 메시지를 재생성하는 데 필요한 “a”와 “p”를 지닌다.
이 단계 중에, 우리의 모델은 새 클러스터를 바탕으로 할 수 있는 세션이 어느 것인 지를 또한 결정한다. 이 세션들 각각에 대해, 우리의 모델은 유사한 터미널들과 클러스터들을 레코딩하는 “새 클러스터 메시지”를 생성한다. 새 클러스터는 터미널을 가리키도록 의도될 것이며, 연루된 클러스터들에 의해 표시된다. 이 “새 클러스터 메시지들”은 처리할 “새 클러스터 처리” 단계를 위한 id로 파편화되는 파일 시스템에 저장된다.
이 단계는 세션에 의해 파편화된다. 이는 입력이 여러 조작으로 나누어질 수 있음을 의미하며, 각각의 처리 유닛이 특정 세션 세트만을 취급할 수 있음을 의미한다. (세션에 의한) 입력의 파편화는 출력의 파편화와 다르다. N개의 입력 세션 파편이 존재하고 노드 메시지에 대해 M개의 출력 노드 파편(클러스터 id에 의해 파편화됨)이, 링크 메시지에 대해 L개의 출력 파편(타겟 id, 소스 id에 의해 파편화됨)이 존재하는 경우를 고려해보자. 이 스테이지의 출력은 세션 파편과 클러스터 id 파편 모두에 의해 파편화되는 MN개의 노드 메시지 파일들이다. 이 데이터는 M 개의 클러스터 id 파편들을 생성하기 위해 N 개의 방식으로 함께 병합된다. 유사한 과정이 링크 파편에 대해서도 발생한다. 일반적으로, 그 출력과는 다른 방법에 의해 단계가 파편화될 때, 다음 스테이지가 기대하는 바에 의해 차폐되는 결과를 얻도록 그 부분 파일이 병합된다.
한 예로, 한주의 요일에 의해 사용자의 데이터에서 밟는 처리과정을 고려해보자. 그러나 사용자의 성의 첫 철자에 의해 파편화되는 데이터를 생성한다고 생각하자. 그 입력은 7개의 파일로서, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, 그리고 Sunday 중 하나이다. 그 최종 출력은 26개의 파일이 될 것이며, 알파벳 각 철자마다 한 개씩이다. 그러나, 7개의 처리과정 각각은 저마다 26개의 파일을 생성하므로, 총 182개의 파일이 생성된다. 예를 들어, “monday-a” 파일, “monday-b” 파일, 등등, “tuesday-a” 파일, 등등, 이 존재한다. 이제, 모두 7개의 “a” 파일이 한 개의 “a” 파일로 조합되며, 알파벳의 그 외 다른 철자들에 대해서도 마찬가지로 적용되어, 결국 26개의 파일들만이 결과로 남는다.
이 “크로스 프로덕트 병합(cross product merge)”은 출력과는 달리 파편화된 입력을 처리하는 한가지 방식이다. 이는 데이터를 병렬로 발생시키는 매우 효율적인 방식으로서, 추가적인 처리작업들에 의해 데이터를 병렬로 소비시킬 수 있다. 이에 대한 한가지 대안은 파일 시스템을 단순히 이용하여, 출력 파편에 동시에 모든 데이터를 매달게 하는 것이다. 이는 다양의 데이터가 매달릴 때 그리고 소스 파편화가 클 때 느려지는 경향이 있다.
(2) O1 연산
여기서, 클러스터들의 확률 합과, 활성화 곱하기 클러스터 확률의 합이 결정된다. 이 정보는 처리 세션 단계에서 생성되는 “노드 메시지들”의 요약이다. 이 정보는 id에 의해 파편화되는 “요약된 노드 메시지”의 새 세트로 파일 시스템에 저장되며, 우리 모델의 일부분에 해당한다. 이 정보는 수준-1 모델이라 불린다.
이 단계는 노드 id에 의해 파편화된다. 여기서 노드는 터미널이나 클러스터일 수 있다. 이는 각각의 처리 유닛이 데이터의 일부분에 대해 데이터의 일부분에 대해서만 수준-1 모델을 연산할 책임이 있음을 의미하며, 실제로, 이를 위해 데이터가 출력된다. 따라서 어떤 크로스 프로덕트 병합도 필요하지 않다.
(3) 새 클러스터 처리
이 단계는 새 클러스터 메시지들을 취하여, 새 클러스터들이 우리의 모델에 어떻게 부합할 것인 지를 결정한다. 이 결정은 이 시간까지 지연된다. 왜냐하면, O1 단계에서 연산되는 정보를 필요로하기 때문이다. 이는 중요한 동적 이론적 이유 때문이다. 새 클러스터가 도입되면, 이에 대한 모든 링크의 가능성과 최적값에 대 한 결정이 이루어질 수 있다. 일반적으로, 이러한 클러스터는 CANADA로부터 링크될 것이고, 이를 기반으로 하는 “새 클러스터 메시지”에서의 다른 링크들로부터도 링크될 것이다.
새 클러스터에 너무 강한 링크(가능성과 가중치가 높은 링크)가 제공될 경우, 이는 기존의 우수한 클러스터들로부터의 단어들을 즉시 접수할 것이다. 이는 클러스터가 적절히 관련된 터미널 세트를 아직 가리키지 못하고 있기 때문이다. 새 클러스터에 너무 약한 링크가 제공될 경우, 이는 어떤 세션에서도 차이를 보일만큼 충분히 중요하지 못할 것이며, 충분히 강한 링크 메시지를 수신하지 못할 것이다. 따라서 실패할 것이다. 여기서 실패란 새 클러스터가 수신하는 링크 메시지들이 이에 대한 링크를 제거할 것이고 모델의 나머지 부분으로부터의 링크 또한 제거할 것임을 의미한다.
이 링크들이 얼마나 강해야 하는 지를 결정하기 위해, 우리는 잠재적 부모 각각이 확률 측면에서 얼마나 자주 점화될 것인 지를 고려한다. 이는 앞서 연산한 우리의 모델을 순서대로 제시한 정보와 같다. 이 결정을 현명하게 실행하기 위해, 우리는 다음 반복에서 이 클러스터의 작은 수치(가령, 100)의 기대된 발생들을 기대하기 위해 링크 가능성과 가중치의 균형을 이룬다.
이 단계의 출력은 “엔트리 메시지(entry message)” 세트이다. 엔트리 메시지는 기본적으로, 모델의 역전된 인덱스 정보에 존재하는 것에 해당한다. 한 개의 엔트리는 소스, 타겟, 존재 가능성, 그리고 최적값에 관한 정보를 지닌다. 이 정보는 타겟 id에 의해 파편화된다.
이 단계는 새 클러스터의 클러스터 id에 의해 파편화된다. 즉, 각각의 처리 유닛은 새 클러스터 id들의 일부만에 대해 엔트리 메시지들을 생성한다. 동일한 파편에 대해 (타겟 id에 의해) 정해진 데이터를 서로 다른 처리 유닛들이 생성할 수 있기 때문에, 이들은 파일 시스템을 이용하여 동일한 파일의 일부에 비동기식으로 데이터를 부착하여야 한다. 여기서 크로스 프로덕트 병합이 사용될 수 있지만, 데이터의 양은 매우 적으며, 따라서 데이터는 파일 시스템 레벨 바로 앞에 병합된다.
(4) 링크 최적화
이 단계는 처리 세션 단계로부터 모든 링크 메시지들과, 모든 요약된 노드 메시지들을 수신하여, 링크 최적화 세션에서 상술한 방식으로 링크의 가능성과 확률을 최적화한다. 그출력은 타겟 id에 의해 파편화되는 “엔트리 메시지” 세트이다.
이 단계는 소스와 타겟 id의 조합에 의해 파편화된다. 즉, 각각의 처리 유닛은 파편 공간 내에 있는 링크들만에 대해 책임을 진다. 결과적인 데이터는 매우 작으며, 크로스 프로덕트 병합을 진행할 필요가 없다. 모든 소스로부터 병렬로 파일 세트에 부착될 수 있다.
(5) 부모 인덱스 구축(Build Parent Index)
이 단계는 모든 엔트리 메시지들을 취하여, 이들을 한 개의 특정 타겟에 대해 함께 배치한다. 이 단계는 특정 타겟을 가리킬 수 있는 소스의 수를 세트 번호 N으로 한정한다. N에 대한 전형적인 값은 100일 수도 있고 그 외 다른 값일 수도 있다. 타겟을 가리켜야 하는 N개의 소스들은 타겟에 대해 가장 중요한 소스들이다. 여기서의 중요성은 소스에 대한 o1 값, 링크 가중치, 그리고 상기 링크를 따를 링크 가능성의 프로덕트에 의해 결정된다. 이 단순화는 효율성 문제 때문에 특정 노드를 가리키는 부모들의 수를 작게 유지시키도록 실행된다. 이는 또다른 스케일러빌러티 기술(scalability technique)이며, 이는 “행 산재성(row sparseness)”으로 불릴 것이다.
(6) 자손 인덱스 구축(Build Child Index)
이 단계는 자손 인덱스를 구축하기 위해 부모 인덱스 데이터를 변환한다. 그 입력은 링크의 타겟에 의해 파편화되며, 그 출력은 대신에 소스에 의해 파편화된다. 각각의 처리 유닛은 다수의 결과 파일들에 병렬로 매달린다.
상술한 바는 모델 정련을 위해 루피 신뢰 전파의 한 반복을 실행하는 단계들을 설명하고 있다. 이 과정은 더 우수한 모델을 얻기 위해 필요한만큼 반복된다.
리넘버링(Renumbering)
몇 번 반복마다 발생하는 “리넘버링”이라는 특수 단계가 존재한다. 클러스터 C1이 클러스터 C2에 링크될 수 있으나, 그 역방향은 성립되지 않음을 상기할 수 있다. 일반적으로, id=i의 클러스터는 id=j의 클러스터에 링크될 수 있고, i가 j보다 작을 경우 그러하다. 특성화 및 일반화 관계를 학습하기 위해, 더 큰 클러스터가 더 작은 클러스터에 링크되는 것이 바람직하다. 개념들이 일반화보다는 특성화를 더 많이 가지기 때문에, id 공간에서 더 큰 클러스터들을 앞에 위치시키는 것이 바람직하다. 이것이 학습하는 순서와 일치할 필요는 없다. 이러한 이유로, 우리는 모든 클러스터들을 (몇회반복시마다) 리넘버링한다.
클러스터를 리넘버링한다는 것은 거의 모든 링크에서 링크 가중치와 가능성을 변경시킨다는 것을 의미한다. 이같은 과정이 발생하는 방식은 다음과 같다. 클러스터 A가 클러스터 B를 가중치 w로 가리킨다고 가정하자. 더욱이, A와 B의 합계 확률은 각각 p1과 p2라고 한다. 이제, 우리는 A가 세션의 비율 p1에서 나타나도록, 세션의 비율 p2에서 B가 나타나도록, 그리고 A와 B가 세션의 비율 (p1 w)에서 나타나도록 기대한다. 이 수치들은 물론 모두 근사치들이다. B가 A를 가리키게 하는 합리적 접근법은 기대되는 조인트 발생들을 동일 수치로 유지하는 것이다. 이는 새로운 링크 가중치 w'으로 달성된다. w'은 아래의 관계를 만족시킨다.
w'p2 = wp1
또는
w' = wp1/p2
이를 행하기 위해, 특정 모델이 “엔트리 메시지”로 변환되며, 이 모델의 한 부분이 메모리로 로딩되며(이 부분들은 p1 및 p2 성분에 대해 요구된다), 이 변환이 발생한다. 이 변환의 출력은 정규 동작의 “부모 인덱스 구축” 단계로 공급되는 엔트리 메시지 세트이다.
부모 피킹: 후보 클러스터 선택(Parent Picking: Choosing Candidate Clusters)
한 세션을 분석할 때, 발명의 한 실시예는 우리가 얻고자 하는 지역 신뢰 네트워크 내 모두 수천개의 클러스터들을 포함하지 않는다. 먼저 우리는 어떤 클러스터들이 멀리서 활성상태일 것 같은 지를 결정하고, 나머지는 활성상태가 아니라고 가정한다. 우리는 우리가 고려하는 이 클러스터들을 “후보 클러스터”라 칭한다. 어느 클러스터가 후보가 될 것인지를 결정하기 위해, 우리는 평가될 클러스터들의 우선순위 큐를 유지한다. 그래서, 모델의 높이 순서를 증가시킴에 있어(클러스터 id 감소, 일반성 증가) 이들을 평가한다. 우리는 이 세션에 대한 터미널들의 모든 부모들을 상기 큐에 추가한다. 그후 우리는 상기 큐로부터 클러스터들을 떼내기 시작하고 이들을 평가한다. 주어진 클러스터 C1의 경우, 우리는 도 15.1에 도시되는 바와 같이 신뢰 네트워크를 구축한다. 우리는 C1을 포함하고, C1에 의해 링크되는 세션의 모든 터미널들을 포함한다. 우리는 이들 노드 간의 링크를 가중치화한다. 마치, C1이 일부 상수(우리는 3.0을 이용한다)와 같은 활성 상태를 가지는 것처럼 링크의 가중치화를 실행한다. 우리는 세션의 단어들의 수와 곱한 터미널의 o1 모델과 같은 가중치로, 어떤 것으로부터도 터미널에 링크를 추가한다. 이 링크는 다른 어떤 것에 의해서도 터미널이 야기되는 기회를 대략 요약한다. 우리는 C1의 o1 모델과 같은 가중치로 어디에서로부터도 C1으로의 링크를 추가한다. 그후 우리는 C1에 대한 확률을 얻기 위해 이 네트워크를 푼다. 이 네트워크가 트리(tree)이기 때문에, 우리는 이를 신속하게 풀 수 있다. 네트워크에서 C1의 확률이 어떤 한도(우리는 0.05를 이용한다)를 넘을 경우, 우리는 C1이 후보 클러스터라고 결정한다. 이 경우에 우리는 평가될 클러스터의 큐에 C1의 모든 부모들을 추가한다.
우리가 클러스터 C2를 평가하는 경우에, 클러스터 C2는 우리가 후보 클러스터로 만든 또다른 클러스터 C1을 자손으로 가지는 데, 우리는 우리가 C2를 위해 생성하는 네트워크 내에 C1에 대해 생성한 네트워크를 추가하고자 한다. 그래서 C2에 대해 적절한 부가 증거를 추가한다. 이러한 포함사항에서의 위험사항은 이것이 네트워크에서 루프를 생성할 것이라는 점이다. 따라서 우리는 C2에 대한 네트워크에 터미널과 클러스터 자손들을 추가할 뿐이다. 그래서, 터미널과, 클러스터에 서브네트워크들이 모두 단절된다. 어느 것이 포함되는 지를 선택함에 있어, 우리는 C2에 전송될 메시지의 강도 순서로 선택한다. 예를 들어, 클러스터 C2가 세션의 “grey”와 “mouse”에 링크되고 클러스터 C1에 또한 링크될 경우, 우리는 C1을 포함하는 도 15.2A에서와 같은 네트워크를 구축할 수 있다. 또는, C2로부터 “grey”까지 링크를 포함하는 도 15.2B에서와 같은 네트워크를 구축할 수 있다. 우리는 C1으로부터 C2까지, 또는 “grey”로부터 C2까지 어떤 메시지가 더 강한가에 따라 구축하고자 하는 바를 선택할 것이다.
실제로, 이 네트워크들에 대응하는 데이터 구조들이 구성될 필요는 없다. 우리가 C1을 후보 클러스터로 하고 그 부모를 평가될 클러스터 큐에 추가하고 있을 때, (C2에 대한 네트워크의 다른 요소들과 상호작용을 피하기 위해) 우리는 C1에서 기원한 트리의 노드 세트와, C2에 대한 네트워크에 C1이 포함된 경우, C1으로부터 C2까지 전달될 메시지를 명시하는 메시지를 물론 추가할 수 있다. 세션의 터미널들의 부모를 큐에 추가할 때 유사한 메시지들이 또한 추가된다. 모든 연산들이 이 메시지들 측면에서 실행될 수 있다.
차동 텍스트 소스 조정 기술(Differential Text Source Adjustment Techniques)
우리는 질의 세션 범주에서 우리의 모델을 논의하고 있다. 그러나, 본원의 서두에서 기재한 바와 같이, 우리의 모델은 웹문서같은 어떤 텍스트 소스에서 실행될 수 있다. 우리가 고안한 한가지 흥미로운 기술은 한 개의 데이터 소스에 대해 우리의 모델을 훈련시키면서 이를 또다른 소스에 적용할 수 있다는 것이다.
예를 들어, 우리는 사용자 질의에 대해 우리의 모델을 훈련시키지만, 웹페이지에서 여러 클러스터들의 존재 확률을 예측하기 위해 훈련받은 모델을 적용한다. 이는 어떤 측면에서 불확실성을 가진다. 왜냐하면, 동사와 같은 일부 단어들이 더 많은 명사들을 가지려하는 사용자 질의에서보다 문서 내에서 훨씬 더 자주 발생하기 때문이다. 불행하게도, 질의에서, 여러 동사들이 가사(song lyrics)에서 발생하며, 질의에 단련된 모델이 대부분의 문서를 부분적으로 가사에 관한 것임을 식별할 것이다.
이를 위한 착점은 후보 언어(즉, 웹페이지의 언어)에서 그 확률을 반영하기 위해 CANADA로부터 모든 터미널까지의 링크의 가중치를 변경시키는 것이다. 한 터미널에 대한 CANADA로부터의 설명이, 기본적으로 상기 터미널을 발원시킨 잘 정의된 개념이 존재하지 않는다는 문장이기 때문에, 이는 일부 단어들의 효과를 축소시키는 결과를 야기한다. 이는 질의어의 개념과 웹페이지를 비교하기 위한 우수한 개념 엔진이 되는 경우도 많다.
적용될 수 있는 또다른 작은 착안점은 텍스트를 트레이닝시킬 때 도움이 되는 독립적인 가정들을 취급하는 것이다. 다수의 웹페이지들이 서로의 복제본에 해당하기 때문에 잘라내기와 붙여넣기를 통해 여러 다른 웹서버에 전달된다. 이들 모두에 대해 함께 우리의 모델을 훈련시키는 것은 일면 소모적이다. 왜냐하면, 이들 뒤에 감추어진 의미를 전혀 고려하지 않고 반복되는 복제본들을 정확하게 학습하는 것으로 끝나기 때문이다. 이 문제를 감소시키기 위해, 우리는 대형 문서 세트로부터 N개 또는 그 이상의 단어들(N은 통상적으로 10개)의 모든 반복 실행들을 제거할 수 있다. 이는, N개 단어들의 모든 시퀀스를 핑거프린팅하고, 군을 형성하도록 핑거프린트를 소팅하며, 그후 훈련 텍스트에 대해 뒤로 반복을 행하여, 두 번 이상 나타나는 10개 단어 길이의 실행의 시점에 있는 단어들을 제거함으로서, 실행될 수 있다. 이 기술은 웹페이지에서 훈련을 실행할 때 우리의 모델에 적용되고 있다.
시현(Demonstration)
이 시점에서, 도 16에 도시된 우리의 모델로부터 일부 출력을 살펴보자. 라인 “Model of 1378939 clusters” 아래의 정보를 보자. 2-열 포맷으로 데이터가 존재한다. 좌측열은 한 클러스터에 대한 01 모델을 보고한다. 즉, 우리 모델의 최종 반복에서 모든 세션에 존재할 확률의 합을 보고한다. 우측열은 클러스터의 현재 이름이다. CANADA9범용 노드)가 모든 세션에 존재하기 때문에, 595417600은 이 모델이 훈련받는 사용자 세션의 수에 해당한다.
다음 클러스터를 살펴보자. [john david mark paul michael scott]이라 기재되어 있다. 이는 (성이 아닌) 이름의 클러스터이다. 다음의 클러스터 [free sex porn pics movies xxx]는 포르노그래피 단어의 클러스터이다. 다음의 클러스터 [uk england london in-the-uk ltd friends-reunited]는 UK 콘텐트에 집중하고 있다. 이 모델이 영어 질의어의 그룹에서 실행되고 있지만, 우리 모델에서는 언어에 대해 전혀 제한을 받지 않으며, 다른 언어에서도 이와 유사한 모델을 쉽게 구성할 수 있 다. 다음의 클러스터는 [pictures of picture photos pics images]이다. 이 클러스터는 흥미로운 것이다. 왜냐하면, 이는 웹상의 그림을 요청하는 여러 다른 방식 중 일부분에 의해 표시되는 것으로 보이기 때문이다. 실제로, 이는, 토픽별로 단어들을 함께 그룹형성하도록 하는, 우리의 모델이 하고자 하는 바와 정확하게 일치한다.
이러한 토픽은 대략 130만개 정도가 있다. 몇 개만이 도 16에 도시된다. 이제, 클러스터 중 하나를 좀 더 세밀하게 관찰해보자. 6408187의 카운트를 가진 것은 [jobs job employment in job-search careers]라 표시된다. 우리의 모델에 HTML 인터페이스가 제공되어, 클러스터에 관한 보다 상세한 정보를 클러스터가 불러들이는 것을 선택할 수 있다. 이렇게 보다 상세한 정보가 도 17에 도시된다. 우리는 수평선 아래의 정보를 먼저 리뷰할 것이다(나중에 검색 박스로 되돌아갈 것이다).
여기에는 세 개의 메인 섹션이 존재한다. 하나는 PARENTS, 하나는 CHILDREN, 하나는 ID 4737501로 시작한다. PARENTS와 CHILDREN 섹션은 이 클러스터에 관련된 나머지 클러스터들을 리스트한다. 좌측 열은 부모가 트리거링될 것이라 기대되는 횟수를 나열하고, 또는 자손이 트리거링될 횟수를 나열한다. 부모 정보는 산재성이어서, CANADA만이 이 클러스터의 부모이고, 이는 직업(jobs)의 개념이 매우 커서 여러 다른 개념의 부모이도록 리넘버링이 이를 신속하게 이동시키기 때문이다.
이제 자손 정보를 살펴보자. 가장 자주 트리거링되는 자손은 리스트 하단에 위치한다. 자손 개념 [in jobs for india it bangalore]은 이 직업(jobs) 클러스터로부터 378070 회 트리거링될 것으로 기대된다. 이 서브클러스터는 jobs를 검색하 는 인도 사람이다. 다음 서브클러스터는 [programs degree program education online masters]로서 교육에 관한 사항이다. 이는 사람들이 직업에 관해 얘기할 때, 교육에 관해 자주 이야기 함을 의미한다. 다음 클러스터는 [salary salaries average salary-survey wages pay] 봉급에 관한 것일 수 있고, 등등 이어질 수 있다. 우리의 모델은 세상에 관한 다량의 흥미로운 정보를 지니며, 직업이 교육, 봉급 등에 관련있다고 결정한다. 자손 클러스터를 뒤따르는 수치들(가령, 0.0608101, inf)은 두 클러스터 간의 링크의 최적치와, 링크 존재의 신뢰를 세분화하는 한쌍의 값으로서, 이 경우에는 신뢰는 무한대(infinite)이다. 따라서 우리의 모델에 따르면 확률 1.0으로 링크가 존재한다.
이제 ID 4737501로 시작하는 정보를 살펴보자. 이는 이 직업 클러스터의 id가 4737501임을 의미한다. “Total Firing: 6408187.000000”은 이 클러스터의 기존 합계 확률(o1)이 우리 모델의 최종 반복에서 6408187 회였음을 의미한다. Firing(점화)은 확률이나 확률의 합에 대한 동의어로 여기에서 사용된다. “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 섹션과 유사한 방식 으로, 다음 섹션은 이 클러스터와 터미널들 간의 링크를 세부적으로 기재한다.
첫 번째 터미널은 “jobs”이다. 좌측의 정보 1841287은 단어 “jobs”를 이 클러스터가 트리거링하는 횟수이다. 이 단어 우측의 정보는 다시 최적값과 그 존재 가능성이다. 다음의 몇몇 단어들 “job”, “employment”, “in”, "job-search", "careers", "it", "career", "job-opportunities", "human-resources", 등등이다. 모든 이러한 터미널들은 사람들이 직업의 개념을 얘기할 때 사용된다. 더많은 터미널들이 이 클러스터로부터 링크되며, 가장 중요한 것들만이 이 도면에 도시된다.
마찬가지로, 이 개념들의 이용은 이 아이디어가 활성 상태임을 표시하며, 다른 단어들보다 일부 단어들이 활성 상태임을 의미한다. 예를 들어, 단어 job은 이 개념에 의해 가장 많이 야기된다. 우리는 서로 다른 출력을 지켜봄으로서 이를 점검하며, 단어 “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] 클러스터 내에 있다. 하지만, 터미널 in에 대한 페이지를 선택할 때(도 19 참조), 우리 는 “in”을 가장 자주 야기시키는 클러스터가 CANADA임을 알 수 있다. 이에 대한 해석은 다음과 같다. “in”은 직업에 관하여 사람들이 이야기할 때 사용되지만, “in”은 다른 것들에 의해 더 자주 야기되는 것 또한 사실이며, 따라서, “in”은 사람들이 검색하는 것 중에서 단어 “jobs”만큼 강한 표시자가 아니다. 훨씬 더 많은 클러스터들이 이 터미널에 링크되며, 가장 빈도가 높은 것들만 이 도면에 도시된다.
이제, 우리는 페이지 상단의 검색 박스를 살펴보기로 하자. 우리는 질의어 “palo alto restaurants”를 박스에 입력하고, Search를 클릭한다. 도 20은 이 검색 결과를 도시한다. “QUERY: palo alto restaurants”으로 시작해보자. 이는 박스에 타이핑된 것이다. 다음 두 개의 라인은 컴파운드 “palo alto”와 단어 “restaurants”이다. 이들은 질의어의 현재 컴파운딩을 나타낸다.
단어 palo-alto 다음의 수치들을 점검해보자. 마지막 수치 9.9789는 단어를 표현하는 데 드는 비트 수이다. 비트 표현 비용과 확률 사이에는 이중성이 존재하며, 비트 비용은 확률의 로그 베이스 2의 음수이다. 이는 한 단어가 발생할 때 2^9.9789(약 1000) 마다 한번 발생한다는 것을 의미한다. 중간의 수치는 APPROXIMATION(근사치)으로서, 다른 세상이 나타났을 때 이 단어가 얼마나 많은 비트를 요구하는 지를 표현한다. 단어 palo-alto는 가능성이 높아지지는 않지만, 단어 restaurants는 가능성이 높아진다. 이는 매우 높은 빈도로 palo alto를 검색하는 사람들이 palo alto 의 식당을 원하기 때문이다. 동일한 원리가 palo alto 에 관하여 글을 쓰는 사람들의 문서에도 적용된다.
이러한 정보를 이용하는 한가지 방식은, 다른 것들보다 덜 구체적이기 때문에 문자형 검색에서 어떤 단어들이 탈락될 수 있는 지를 결정하는 것이다. 예를 들어, “palo alto” 식당들에 대한 검색이 문서 자료로부터 충분한 결과를 얻어내지 못할 경우, 당신은 palo alto만을 언급한 페이지들을 찾을 수 있고, 식당에 관한 것이지만 다른 단어를 이용하는 지를 확인할 수 있다(예를 들어, [restaurants in restaurants restaurants dining best] 클러스터의 단어들 중 하나처럼). palo-alto 에 대한 첫 번째 수치 15.2624는 비트 비용으로서, 한 문서 내 확률이 높은(0.95 이상) 클러스터들이 있으나 이 세션에는 없다고 가정한다. 이 수치는 역시 근사치이다.
“session graph 8 nodes 16 edges”로 시작하는 라인은 터미널들을 관찰한 증거를 해결하기 위해 도입된 지역 네트워크에 관하여 이야기한다. 우리의 모델은 8개보다 많은 클러스터들을 가지지만, 터미널과 클러스터 산재성 기술은 우리가 총 8개의 노드만을 보고있다는 것을 의미한다. 여기서 노드는 클러스터일 수도 있고 터미널일 수도 있다. 이 라인의 나머지는 타이밍 정보를 취급한다. 다음의 몇줄들은 질의어에서 발견된 모든 클러스터들에 관한 정보를 디스플레이한다. 첫 번째는 [restaurants in restaurants restaurants dining best] 라 불리는 식당 클러스터이다. 좌측에는 세 열의 수치가 존재한다. 첫 번째는 클러스터 확률이다. 두 번째는 확률 곱하기 활성 상태이다. 세 번째는 확률 곱하기 조정된 활성 상태이다. 지역 네트워크 내의 활성화 상태는 트리거할 수 있는 참인 단어들의 수치에서 임의적으로 설정되었음을 상기해보자. 우리가 네트워크를 해결하면, 우리는 터미널들을 발원시킨 보다 훈련받은 추정치를 구현할 수 있다. 우리는 각각의 클러스터와 각각의 터미널 간에 트리거 노드들의 확률을 연산함으로서 이를 행한다. 클러스터는 “조정된 활성 상태”로 발진하는 각각의 터미널의 확률에 대하여 신용을 얻는다.
발견될 두 번째 클러스터는 [san-jose ca sunnyvale santa-clara bay-area mountain-view] 클러스터로서, 0.682912의 확률을 가진다. 세 번째는 [palo-alto menlo-park restaurant evvia palo straits-cafe] 클러스터로서, 0.37의 확률을 가진다. 여기서 주목할만한 흥미로운 사항은 “Evvia”와 “Straits Cafe”가 실제 Palo Alto 소재의 식당이라는 것이다. 이 클러스터는 Palo Alto 인근의 식당들의 개념에 집중화되어 있다.
이 방식으로, 우리의 모델은 텍스트 조각에 여러 개념들이 존재하는 확률을 추정하는 데 사용될 수 있다. 물론 웹페이지에 대해서도 마찬가지로 동작이 이루어질 수 있다. 질의어와 웹페이지에 존재하는 조인트 개념들을 바라봄으로서, 우리 모델의 이용사항 중 하나가 웹페이지에 대한 검색용이 된다. 다음 섹션은 우리 모델의 이용사항 중 일부에 관하여 논한다.
모델 이용(Use of Model)
이 섹션은 우리 모델의 가능한 이용사항 중 일부를 세부적으로 기술한다.
1) 텍스트 조각 두의 개념에서 추측을 실시해보자. 개념은 사용자에게 디스플레이되어, 텍스트 뒤의 의미를 더 잘 이해할 수 있게 돕는다.
2) 한 문서와 한 질의어 사이의 단어들과 개념들을 비교한다. 이는 문서 검색 엔진에 요구되는 정보 불러오기 스코어링 기능 일 수 있고, 문서들이 웹페이지 인 경우같은 특수 경우를 포함한다.
3) 웹 검색을 위해 우리 모델을 이용하는 다른 방식은 클러스터의 분포가 질의어를 확대시킨다고 가정하는 것이다. 예를 들어, 단어 “jaguar”에 대한 질의어는 모호하다. 동물이나 차 중 한가지를 의미할 수 있다. 우리 모델은 이 검색에 따라 두가지 의미에 관련된 클러스터들을 식별할 것이다. 이 경우에, 우리는 사용자가 jaguar(CAR) 질의어나 jaguar(ANIMAL) 질의어 중 하나를 타이핑하였음을 고려할 수 있다. 우리는 각 클러스터의 확률의 비를 고려하는 이 질의어들 모두에 대한 문서들을 불러올 수 있다. 각각의 의미에 대해 얼마나 많은 결과들을 내보내는 지를 주의깊게 균형잡음으로서, 우리는 한 검색에 대한 결과들의 일부 다양성을 보증한다.
4) 한 문서와 한 광고 사이의 단어들과 개념들을 비교해보자. 이는 콘텐트 조각에 부착될 경우 광고가 얼마나 잘 실행할 것인가에 대한 프록시(proxy)로 이용될 수 있다. 이의 특성화는 웹페이지에 광고를 부착하는 것이다.
5) 질의어와 광고 간에 단어들과 개념들을 비교한다. 검색 엔진에서, 광고자들은 사용자 질의어에서 나타날 때 광고가 “targeting criteria” 세트를 자주 선택한다. 이것이 사용자 질의어에 나타날 때, 광고가 제시된다. 이러한 기준들의 텍스트는 우리 모델의 클러스터의 이용을 통해 질의어와 비교된다. 이러한 비교는 질의어로부터 발생하는 검색 페이지에 서빙될 경우 이 광고가 얼마나 잘 실행할 수 있는 지에 대한 프록시(proxy)일 수 있다.
6) 두 문서 간의 단어들과 개념들을 비교해보자. 이는 문서들의 개념적 클러 스터링에 대한 거리 측정치로 사용될 수 있다. 이때, 유사한 문서들은 함께 군을 형성한다.
7) 클러스터 공간에 텍스트를 투영한다. 텍스트 내 클러스터들의 확률은 임의 분류 작업에 대한 특징들로 사용될 수 있다. 예를 들어, 클러스터에 한 페이지의 텍스트를 투영함으로서, 그리고 그 입력에서 클러스터와 단어들을 이용하는 분류기를 구축함으로서, 포르노그래피 필터가 생성될 수 있다.
8) 웹 질의어를 일반화하여 더 많은 결과를 불러올 수 있다. 이때는 부모 클러스터가 주어졌을 때 단어나 터미널 세트의 확률이나 비트 비용을 이용한다.
9) 두 단어에 의해 유도되는 개념들을 살펴봄으로서 특정 단어가 또다른 단어의 오타인지를 추측한다.
지역 추정 메커니즘(Local Inference Mechanism)
전역 노드에서 루피를 이용함에도 불구하고 루피와는 다른 접근법으로 지역 네트워크를 해결할 수 있다. 이러한 접근법의 장점은 루피보다 더 빠르거나 정확하게 수렴을 이끌 수 있다는 것이다. 다음의 두 섹션들은 로컬 네트워크에서 사용될 수 있는 대안의 추정 메커니즘들을 세부적으로 기술한다.
또다른 지역 추정 메커니즘(Another Local Inference Mechanism)
로컬 네트워크에서 추정을 행하는 또다른 방식은 루피 실행 대신에 문제점에 대한 몇가지 우수한 해법을 찾아보는 것이다. 우리는 우리 네트워크에 대한 양호한 해법 세트를 발견하기 위해 네트워크의 완전한 예증 공간 주변을 검색한다. 우리는 이들이 네트워크에 대한 해(solutions)의 완벽한 수치화인 것처럼 이들을 취급한 다. 우리는 루피가 전송하는 메시지들과 유사한 업 링크 메시지들을 전송할 수 있다. 하지만 충분히 우수한 솔루션 세트를 고려할 경우 훨씬 정확하다. 우리 시스템의 나머지는 대부분 동일하게 유지된다.
클러스터가 플립(flip)될 때마다, 우리는 전체 네트워크의 가능성을 신속하게 업데이트할 수 있고, 모든 이러한 확률들이 저장된다(이는 예증 확률이 다수의 지역 조건부 확률 표의 프로덕트이기 때문이다). 검색 중에, 네트워크 내 각각의 클러스터에 대해 히스토리가 저장된다. 이는 우리로 하여금 링크 메시지를 더 빠르게 연산할 수 있게 한다.
일반적으로, 전체 예증에 대한 우리의 검색은 아래와 같이 진행된다. 즉, CANADA를 제외하고는 모든 클러스터를 오프 상태로 하여 출발한다. 우리는 개별 클러스터들을 온이나 오프로 플립함으로서 극점까지 올라간다. 그후, CANADA와는 다른 각각의 클러스터 노드에 대해, 우리는 지금까지의 전역 최적치에서 시작하고, 상기 노드의 값을 플립하며, 상기 노드의 값을 고정 상태로 유지하면서, 우리는 극점에 도달할 때까지 노드의 나머지 부분에 대해 상승시도를 계속한다. 이 과정에서, 우리가 새 전역 최적치를 찾아낼 경우, 우리는 전역 최적치로 시작한다. 이 방식으로, 우리는 비-CANADA 클러스터 노드 각각의 각각의 값으로 우수한 해법들을 고려하는 것을 보장받는다.
이 방법의 한가지 장점은 실행 속도 대 정확도를 절충하기 위해 검색이 임의적으로 제한될 수 있다는 것이다. 더 큰 텍스트 조각들을 분석할 때, 적절한 시간량으로 우리의 모델에서 결과를 얻기 위해, 실행 속도를 선호하는 절충이 자주 구 현된다.
또하나의 지역 추정 메커니즘(Yet Another Inference Mechanism)
지역 네트워크에서 추정을 실행하는 한가지 추가적인 방식은 잠시동안 루피를 실행하고 신속하게 수렴하는 지 여부를 확인하는 것이다. 루피가 신속하게 수렴할 경우 보다 정확하게 수렴하는 지를 표시하는 이론적 결과들이 존재한다. 이 경우에, 루피가 신속하게 수렴하지 않을 경우, 한 개 이상의 노드가 “조건부화”될 수 있다. 즉, 루피가 이 변수들의 참의 값 및 거짓 값에 대해 실행된다. 네트워크가 충분히 조건부화되면, 루피는 좀 더 안정해지며, 이는 루피의 메이지 루핑 사이클을 루프의 상부나 측부의 조건설정이 파괴하기 때문이다. 이러한 조건부화는 루피가 신속하게 수렴될 때까지 반복적으로 적용된다. 조건부화된 루피를 실행한 후, 그 결과는 여러 조건들이며, 이 조건들 하에서 모든 링크 메시지들이 알려진다.
나머지 전부는 상대적 확률로 함께 이 조건들을 조합할 수 있다는 것이다(조건들이 구분되기 때문에). 우리가 고안한 한가지 기술은 네트워크 에너지(네트워크 솔루션이 이전 제약들을 침범하는 정도)와 네트워크의 엔트로피(네트워크 수렴에서의 나머지 자유 비트들의 수)의 척도를 이용하여 네트워크에 루피가 정착된 후 조합 확률을 추정하는 것이다. 이러한 근사에 의해 우리는 여러 링크 메시지들을 정확한 순서로 조합할 수 있고, 우리 모델의 나머지는 대략 동일하게 유지된다.
문서의 특성화 과정(Process of Characterizing a Document)
도 21은 발명의 한 실시예에 따라 한 문서를 특성화하는 데 관련된 데이터 구조들을 도시한다. 이 데이터 구조들은 수준-1 확률 표(2102), 부모 표(2104), 자 손 표(2106), 그리고 링크 표(2108)를 포함한다.
수준-1 확률 표(2102)는 주어진 단어 세트를 발생시킴에 있어 노드가 활성일 수준-1(조건없음) 확률에 근사하는 확률 모델에서의 각각의 노드에 대한 엔트리들을 포함한다. 그러므로, 수준-1 확률 표(2102)는 확률 모델에 의해 발생되는 단어 세트에서 관련 단어나 클러스터가 얼마나 흔하게 존재하는 지를 표시한다. 발명의 한 실시예에서, 수준-1 우선순위 표(2102)는 후보 클러스터로부터 다른 노드까지 얼마나 많은 링크들이 점화될 가능성이 높은 지를 표시하는 각각의 클러스터 노드에 대한 “활성 상태”를 또한 표시한다.
부모 표(2104)는 확률 모델에서의 관련 노드들의 부모들을 식별하는 엔트리들을 포함하며, 식별된 부모로부터의 링크 가중치까지도 포함한다.
마찬가지로, 자손 표(2106)는 확률 모델에서 관련 노드들의 자손을 식별하는 엔트리들을 포함하며, 식별된 자손에 대한 링크 가중치도 또한 포함한다.
문서를 특성화하기 전에, 수준-1 확률 표(2102), 부모 표(2104), 그리고 자손 표(2106)가 확률 모델에 대해 기연산된다는 점에 주목하여야 한다. 다른 한편, 링크 표(2108)는 문서를 특성화하는 과정 중에 채워진다.
링크 표(2108)는 도 22-25를 참고하여 아래에 설명되는 바와 같이 증거 트리를 구성하면서 증거로 고려할 링크들에 대한 엔트리들을 포함한다. 링크 표(2108)의 각각의 엔트리는 관련 부모 표에 대한 식별자를, 그리고 관련 링크에 대한 가중치를 내포한다. 더욱이, 링크 표(2108)는 아래 설명되는 바와 같이 부모 식별자에 의해 소팅될 수 있다.
도 22는 본 발명의 한 실시예에 따른 특성화 과정의 순서도이다. 이 시스템은 단어 세트를 지닌 문서를 수신함으로서 시작한다(단계 2202). 이 문서는 질의어로부터 용어 세트나 웹페이지를 포함할 수 있다.
그후, 시스템은 단어 세트를 발생시킴에 있어 활성 상태일 것 같은 “후보 클러스터들”의 세트를 확률 모델로부터 선택한다(단계 2204). 이 과정은 도 23을 참고하여 아래에 보다 상세하게 설명된다. 후보 클러스터 세트를 선택함으로서, 시스템은 이어지는 연산 동작들에서 고려되는 클러스터들의 수를 제한하고, 따라서, 문서의 특성화에 관련된 연산량을 감소시킬 수 있다.
그후 시스템은 문서를 특성화하기 위한 벡터를 구성한다(단계 2206). 이 벡터는 후보 클러스터들에 대한 성분들을 포함하며, 이때, 벡터의 각각의 성분은 문서 내 단어 세트를 발생시킴에 있어 대응하는 후보 클러스터가 활성인 정도를 표시한다. 이 과정은 도 24-25를 참고하여 아래에서 보다 상세하게 설명된다.
마지막으로, 시스템은 문서에 관련된 여러 다른 다수의 동작들을 촉진시키기 위해 이 벡터를 이용할 수 있다(단계 2208). 이 사용자들 중 일부는 “Uses of Model(모델 이용)” 단락에서 상술한 바와 같이 리스트된다.
도 23은 본 발명의 한 실시예에 따라 후보 클러스터들을 선택하는 과정의 순서도이다. 이 순서도는 도 22의 단계 2204를 실행함에 관련된 동작들을 자세하게 설명한다. 이 시스템은 문서 내 단어 세트에 관련된 터미널 노드로부터 시작하는 증거 트리(evidence tree)를 부모 노드에 대한 링크를 따라 구축함으로서 시작된다(단계 2302). 증거 트리의 일부분이 되도록 노드가 선택됨에 따라, 부모 노드로부 터 상기 노드까지의 링크가 링크 표(2108)에 삽입된다.
증거 트리를 구축하는 과정 중, 시스템은 단어 세트를 발생시킴에 있어 각각의 부모 클러스터가 활성 상태일 가능성을 추정하기 위해 증거 트리를 이용한다(단계 2304). 구체적으로 말하자면, 발명의 한 실시예에서, 터미널 노드들만을 가리키는 클러스터 노드 Ci의 경우에, 시스템은 다음의 공식을 이용하여 단어 세트를 발생시킬 때 Ci가 관련되어있을 가능성을 추정한다(우리는 추정된 가능성을 “Guess of Ci(Ci의 추정치)”라 칭한다).
Figure 112005017624762-pct00003
이 공식은 Ci의 추정치(Guess)가 Ci의 활성 자손 노드 wj로부터 조건부 확률 기여분의 프로덕트와 곱한 Ci의 수준-1 확률에 해당함을 표시한다. 이 기여도의 분자 P~(Ci->wj)는 Ci의 활성화 상태에서의 추정치 곱하기 Ci로부터 wj까지의 링크의 가중치이다. Ci의 활성화는 노드 Ci로부터의 활성 링크들의 수의 표시자이다. 이 기여분의 분모 P~(wj)는 단어 세트에서 단어들의 수 곱하기 wj의 수준-1 확률이다.
다른 클러스터 노드들을 가리키는 클러스터 노드 Ci의 경우에, 이 공식은 약간 다르다.
Figure 112005017624762-pct00004
터미널만을 가리키는 클러스터 노드의 경우에서처럼, Ci의 추정치(guess)는 조건부 확률 기여분의 프로덕트 곱하기 Ci의 수준-1 확률에 해당한다. 그러나, 이 조건부 확률 기여분은 다른 클러스터 노드 Ck로부터, 그리고 자손 노드 wj로부터 발생한다.
자손 노드로부터의 기여분은 터미널들만을 가리키는 클러스터 노드의 경우에서와 동일하다.
Figure 112005017624762-pct00005
다른 클러스터 노드로부터의 기여분은 좀더 복잡하다.
Figure 112005017624762-pct00006
이때, P(Ck|Ci)는 Ci가 주어졌을 때 Ck의 조건부 확률이고, P(Ck)는 Ck의 수준-1 확률이며, Score(Ck)는 Ck의 앞서 연산된 스코어이다. 증거 트리가 터미널로부 터 상향으로 구축되기 때문에, 자손 노드 Ck의 스코어는 부모 노드 Ci의 스코어가 연산되기 전에 연산될 것이다.
발명의 한 실시예에서, 시스템은 주어진 클러스터 노드에 대한 추정 과정 중 터미널 노드들을 표시하여, 추정에 터미널 노드들이 두 번 이상 개입되지 않음을 보장한다.
마지막으로, 시스템은 이 추정된 가능성을 바탕으로 후보 클러스터 노드들이 될 부모 노드들을 선택한다(단계 2306). 이 “부모 피킹” 과정의 말미에서, 시스템은 활성화와 함께 고려할 후보 클러스터 세트를 가진다.
도 24는 본 발명의 한 실시예에 따라 후보 클러스터들의 확률을 근사하는 과정의 순서도를 제시한다. 시스템은 단어 세트를 발생시켰을 가능성이 높은 확률 모델에 대한 상태를 선택한다(단계 2402).
그후, 시스템은 벡터를 구축하고, 이 벡터는 후보 클러스터들에 대한 구성요소들을 포함한다. 각각의 구성요소는 단어 세트를 발생시킬 때 대응하는 후보 클러스터가 활성일 가능성을 표시한다. 구성요소를 추정하기 위해 시스템은 단어 세트를 발생시킬 때 관련 후보 클러스터가 활성일 확률을 근사함에 있어 선택된 상태들만을 고려한다(단계 2404).
구체적으로 말하자면, 발명의 한 실시예에서, 시스템은 클러스터 노드 Ci에 관련된 벡터의 주어진 구성요소 Vi를 연산하여, 다음과 같은 결과를 얻는다.
Vi = Activation(Ci) x P(Ci)
이때, Activation(Ci)는 노드 Ci가 점화될 경우 점화될 링크들의 수의 표시자이고, P(Ci)는 문서 내 단어 세트를 발생시킴에 있어 Ci가 활성일 확률이다.
P(Ci)는 다음과 같이 연산될 수 있다.
Figure 112005017624762-pct00007
이 공식은 네트워크에 대한 네트워크 확률의 합계로서, 이 경우에, Ci는 탐구되는 네트워크에 대한 모든 네트워크 확률들의 합으로, Ci가 활성 상태로 발견될 네트워크에 대한 네트워크 확률의 합을 나눈 값이다.
발생하는 주어진 네트워크 상태의 확률은 다음과 같이 연산될 수 있다.
Figure 112005017624762-pct00008
이 확률은 “on” 상태인 노드로부터의 기여도들을 포함한다. 구체적으로 말하자면, 주어진 네트워크에서 “on” 상태에 있는 각각의 노드 j에 대하여, 시스템은 j에 대한 한 개 이상의 링크가 점화될 확률을 연산한다. 이는 활성 부모 노드 i로부터 j에게로의 어떤 링크도 점화하지 않을 확률을 1에서 뺀 값이며, 이때, 활성 노드로부터의 링크가 점화하지 않을 확률은 링크 가중치를 1에서 뺀 값이다.
이 확률은 “off”인 노드 k로부터의 기여도를 또한 포함한다. off 상태인 해당 노드 k의 경우에, 위 기여도는 활성 노드 i로부터 어떤 링크도 k를 가리키지 않는 확률에 해당하며, 이는 링크 가중치를 1에서 뺀 값이다.
도 25는 발명의 한 실시예에 따라 확률 모델에 대한 상태들이 어떻게 선택되는 지를 도시한다. 이 순서도는 도 25에서 단계 2402를 수행함에 관련된 동작들을 상세하게 설명한다. 상태들을 선택함에 있어 관련된 연산 작업들의 양을 제한하기 위해, 발명의 한 실시예는 문서 내 단어 세트들에 관련된 터미널 노드들과 후보 클러스터 노드들만을 고려한다. 모든 다른 노드들을 무시된다.
확률 모델의 링크 가중치들은 다른 상태들에 비해 일부 상태에서 문서 내 단어 세트 발생 가능성을 높게 만드는 경향이 있다. 따라서, 임의적으로 시작하는 상태가 문서 내 단어 세트를 발생시킬 가능성은 별로 없다. 보다 가능성 높은 상태를 찾기 위해, 시스템은 문서 내 단어 세트를 발생시켰을 가능성이 높은 상태에 도달하기 위해 “힐-클라이밍(hill-climbing)” 동작을 실행한다(단계 2504). 다수의 잘 알려진 힐-클라이밍 기술이 이 용도로 사용될 수 있다. 힐-클라이밍 동작은 특정 목적 함수의 값을 증가시키는 방식으로 시스템의 상태를 변화시키는 것이 일반적이다. 이 경우에, 목적 함수는 주어진 발생하는 네트워크 상태의 확률 Pnetwork이다.
발명의 한 실시예에서, 시스템은 목적 함수에 관계없이 힐 클라이밍 동작들 간에 개별 후보 클러스터의 상태를 주기적으로 변경시킨다. 이를 위해, 시스템은 변화된 상태를 고정시켜서, 이어지는 힐-클라이밍 동작 중 상태 변화가 없도록 한다. 이는 목적 함수에 대한 극점을 생성하며, 이는 상태 변화를 또한 포함하며, 이에 의해, 힐-클라이밍 동작만으로는 도달할 수 없었던 확률 모델의 상태를 시스템 이 탐구할 수 있다.

Claims (62)

  1. 개념적으로 서로 관련된 단어들의 클러스터들에 대해 한 문서를 특성화하는 방법으로서, 이 방법은,
    - 단어 세트를 지닌 문서를 수신하는 단계와,
    - 상기 단어 세트와 관련이 있으며 개념적으로 서로 관련된 단어들의 후보 클러스터들을 선택하는 단계로서, 이때, 개념적으로 서로 관련된 단어들의 클러스터들로부터 단어 세트들이 어떻게 발생되는 지를 설명하는 모델을 이용하여 후보 클러스터들이 선택되는 단계와,
    - 문서를 특성화하기 위한 구성요소 세트를 구축하는 단계로서, 이때, 상기 구성요소 세트는 후보 클러스터들에 대한 구성요소들을 포함하고, 각각의 구성요소는 해당 후보 클러스터가 단어 세트들에 관련된 정도를 표시하는 것을 특징으로 하는, 구성요소 세트 구축 단계
    를 포함하는 것을 특징으로 하는 문서 특성화 방법.
  2. 제 1 항에 있어서, 상기 모델은 확률 모델로서, 단어들을 나타내는 확률 변수(random variable)와, 개념적으로 서로 관련된 단어들의 클러스터들을 나타내는 확률 변수인 노드들을 포함하는 것을 특징으로 하는 문서 특성화 방법.
  3. 제 2 항에 있어서, 구성요소 세트의 각각의 구성요소는 단어 세트를 발생시킴에 있어 해당하는 후보 클러스터가 활성 상태인 정도를 표시하는 것을 특징으로 하는 문서 특성화 방법.
  4. 제 3 항에 있어서,
    확률 모델의 노드들은 가중치화된 링크에 의해 함께 연결되고,
    확률 모델의 클러스터 노드가 점화될 경우, 상기 클러스터 노드에서 또 다른 노드까지의 가중치화된 링크가 그 외 다른 노드를 점화시킬 수 있는 것을 특징으로 하는 문서 특성화 방법.
  5. 제 4 항에 있어서, 하나의 노드가 활성 상태인 복수의 부모 노드를 가질 경우, 상기 노드가 점화하지 않을 확률은 활성 부모 노드로부터의 링크들이 점화하지 않을 확률들의 곱인 것을 특징으로 하는 문서 특성화 방법.
  6. 제 2 항에 있어서, 상기 확률 모델은, 항상 활성 상태이고 모든 클러스터 노드들로의 가중치화된 링크들을 갖는 범용 노드를 포함하는 것을 특징으로 하는 문서 특성화 방법.
  7. 제 4 항에 있어서, 후보 클러스터들을 선택하는 상기 단계는,
    - 문서 내 단어 세트들에 관련된 터미널 노드들로 시작하고 역방향으로 부모 클러스터 노드들로의 링크를 따름으로써, 증거 트리를 구축하는 단계와,
    - 단어 세트를 발생시킴에 있어 각각의 부모 클러스터 노드가 활성 상태였을 가능성을 추정하기 위해 상기 증거 트리를 이용하는 단계와,
    - 추정된 가능성을 바탕으로 후보 클러스터 노드가 될 부모 클러스터 노드를 선택하는 단계
    를 포함하는 것을 특징으로 하는 문서 특성화 방법.
  8. 제 7 항에 있어서, 단어 세트들을 발생시킴에 있어 해당 부모 노드가 활성 상태일 가능성을 추정하는 상기 단계는,
    - 해당 부모 노드가 활성 상태일 무조건적 확률,
    - 해당 부모 노드의 부모 노드들이 활성 상태라고 가정할 때 상기 해당 부모 노드가 활성 상태일 조건부 확률, 그리고
    - 해당 부모 노드의 자손 노드들이 활성 상태라고 가정할 때 상기 해당 부모 노드가 활성 상태일 조건부 확률
    을 고려하는 단계를 포함하는 것을 특징으로 하는 문서 특성화 방법.
  9. 제 8 항에 있어서, 조건부 확률들을 고려하는 상기 단계는 노드들 간의 링크에 대한 가중치를 고려하는 단계를 포함하는 것을 특징으로 하는 문서 특성화 방법.
  10. 제 7 항에 있어서, 단어 세트를 발생시킴에 있어 해당 부모 노드가 활성 상태일 가능성을 추정하는 상기 단계는, 추정 과정 중 터미널 노드들을 표시하여, 터미널 노드들이 추정 중에 두 번 이상 팩터화되지 않음을 보장하는 것을 특징으로 하는 문서 특성화 방법.
  11. 제 7 항에 있어서, 증거 트리를 구축하는 상기 단계는, 노드가 단어 세트를 발생시켰을 가능성 추정치를 바탕으로, 증거 트리로부터 상기 노드를 가지치는 과정을 포함하는 것을 특징으로 하는 문서 특성화 방법.
  12. 제 3 항에 있어서, 구성요소 세트의 구축 중, 단어 세트를 발생시킴에 있어 후보 클러스터가 활성 상태인 정도는, 단어 세트를 발생시킴에 있어 후보 클러스터가 활성 상태일 확률을 연산함으로서 결정되는 것을 특징으로 하는 문서 특성화 방법.
  13. 제 3 항에 있어서, 구성요소 세트 구축 중, 단어 세트를 발생시킴에 있어 후보 클러스터가 활성 상태인 정도는 후보 클러스터에 대한 활성화와, 단어 세트를 발생시킴에 있어 후보 클러스터가 활성 상태인 확률을 곱함으로서 결정되며, 이때, 상기 활성화는 후보 클러스터로부터 그 외 다른 노드까지 몇 개의 링크가 점화될 가능성이 있는 지를 표시하는 것을 특징으로 하는 문서 특성화 방법.
  14. 제 1 항에 있어서, 구성요소 세트를 구축하는 단계는, 구성요소 세트를 노멀라이징하는 과정을 포함하는 것을 특징으로 하는 문서 특성화 방법.
  15. 제 3 항에 있어서, 구성요소 세트를 구축하는 단계는, 단어 세트를 발생시킬 수 있는 확률 모델의 상태들에 대해 주어진 확률 클러스터가 활성 상태일 확률을 근사시키는 과정을 포함하는 것을 특징으로 하는 문서 특성화 방법.
  16. 제 15 항에 있어서, 확률에 근사하는 상기 단계는,
    - 문서 내 단어 세트들을 발생시켰을 가능성 추정치를 바탕으로, 확률 모델들에 대한 상태들을 선택하는 단계와,
    - 해당 후보 클러스터가 활성 상태인 확률을 연산할 때 선택된 상태들만을 고려하는 단계
    를 포함하는 것을 특징으로 하는 문서 특성화 방법.
  17. 제 16 항에 있어서, 단어 세트를 발생시켰을 가능성 추정치를 바탕으로 상태를 선택하는 단계는,
    - 확률 모델에 대해 시작 상태를 임의적으로 선택하고, 그리고
    - 이전 상태보다 단어 세트를 발생시켰을 가능성 추정치가 높은 상태에 도달하도록 시작 상태에서 시작하는 힐-클라이밍(hill-climbimg) 동작을 실행하는
    단계들을 포함하는 것을 특징으로 하는 문서 특성화 방법.
  18. 제 17 항에 있어서, 힐-클라이밍 동작들을 실행하는 단계는 힐-클라이밍 동작들을 통해 도달할 수 없는 확률 모델의 상태들을 탐구하도록 힐-클라이밍 동작들 에 대한 목적 함수에 관계없이 개별 후보 클러스터들의 상태들을 주기적으로 변경시키는 단계들을 포함하는 것을 특징으로 하는 문서 특성화 방법.
  19. 제 18 항에 있어서, 개별 후보 클러스터의 상태를 변경시키는 단계는, 변경된 상태를 포함하는, 목적 함수에 대한 극점을 생성하도록 변경된 상태를 일시적으로 고정시키는 단계를 포함하는 것을 특징으로 하는 문서 특성화 방법.
  20. 제 1 항에 있어서, 상기 문서는,
    - 웹페이지 또는
    - 질의어로부터의 용어 세트
    를 포함할 수 있는 것을 특징으로 하는 문서 특성화 방법.
  21. 개념적으로 서로 관련된 단어들의 클러스터들에 대해 한 문서를 특성화하는 방법을 컴퓨터에 의해 실행하도록 컴퓨터를 통해 실행시키는 명령들을 저장하는 컴퓨터-판독형 저장 매체로서, 상기 방법은,
    - 단어 세트를 지닌 문서를 수신하는 단계와,
    - 상기 단어 세트와 관련이 있으며 개념적으로 서로 관련된 단어들의 후보 클러스터들을 선택하며, 이때, 개념적으로 서로 관련된 단어들의 클러스터들로부터 단어 세트들이 어떻게 발생되는 지를 설명하는 모델을 이용하여 후보 클러스터들이 선택되는 단계와,
    - 문서를 특성화하기 위한 구성요소 세트를 구축하고, 이때, 상기 구성요소 세트는 후보 클러스터들에 대한 구성요소들을 포함하고, 이때, 각각의 구성요소는 해당 후보 클러스터가 단어 세트들에 관련된 정도를 표시하는 단계
    를 포함하는 것을 특징으로 하는 컴퓨터-판독형 저장 매체.
  22. 제 21 항에 있어서, 상기 모델은 확률 모델로서, 단어들을 나타내는 확률 변수(random variable)와, 개념적으로 서로 관련된 단어들의 클러스터들을 나타내는 확률 변수인 노드들을 포함하는 것을 특징으로 하는 컴퓨터-판독형 저장 매체.
  23. 제 22 항에 있어서, 구성요소 세트의 각각의 구성요소는 단어 세트를 발생시킴에 있어 해당하는 후보 클러스터가 활성 상태인 정도를 표시하는 것을 특징으로 하는 컴퓨터-판독형 저장 매체.
  24. 제 23 항에 있어서,
    확률 모델의 노드들은 가중치화된 링크에 의해 함께 연결되고, 그리고
    확률 모델의 클러스터 노드가 점화될 경우, 클러스터 노드로부터 또다른 노드까지 가중치화된 링크가 그 외 다른 노드를 점화시킬 수 있는 것을 특징으로 하는 컴퓨터-판독형 저장 매체.
  25. 제 24 항에 있어서, 한 노드가 활성 상태인 여러개의 부모 노드를 가질 경우, 노드가 점화하지 않을 확률은 활성 부모 노드로부터의 링크들이 점화하지 않을 확률들의 프로덕트인 것을 특징으로 하는 컴퓨터-판독형 저장 매체.
  26. 제 22 항에 있어서, 상기 확률 모델은 범용 노드로서, 항상 활성 상태이고 모든 클러스터 노드들에 대해 가중치화된 링크들을 가지는 것을 특징으로 하는 컴퓨터-판독형 저장 매체.
  27. 제 24 항에 있어서, 후보 클러스터들을 선택하는 상기 단계는,
    - 문서 내 단어 세트들에 관련된 터미널 노드들로 시작함으로서 그리고 역방향으로 부모 클러스터노드들에 대한 링크를 따름으로서 증거 트리를 구축하고,
    - 단어 세트를 발생시킴에 있어 각각의 부모 클러스터 노드가 활성 상태였을 가능성을 추정하도록 증거 트리를 이용하며, 그리고
    - 추정된 가능성을 바탕으로 후보 클러스터 노드가 될 부모 클러스터 노드를 선택하는
    단계들을 포함하는 것을 특징으로 하는 컴퓨터-판독형 저장 매체.
  28. 제 27 항에 있어서, 단어 세트들을 발생시킴에 있어 해당 부모 노드가 활성 상태일 가능성을 추정하는 상기 단계는,
    - 해당 부모 노드가 활성 상태일 무조건적 확률,
    - 해당 부모 노드의 부모 노드들이 활성 상태라고 가정할 때 해당 부모 노드가 활성 상태일 조건부 확률, 그리고
    - 해당 부모 노드의 자손 노드들의 활성 상태라고 가정할 때 해당 부모 노드가 활성 상태일 조건부 확률
    을 고려하는 단계를 포함하는 것을 특징으로 하는 컴퓨터-판독형 저장 매체.
  29. 제 28 항에 있어서, 조건부 확률들을 고려하는 상기 단계는 노드들 간의 링크에 대한 가중치를 고려하는 단계를 포함하는 것을 특징으로 하는 컴퓨터-판독형 저장 매체.
  30. 제 27 항에 있어서, 해당 부모 노드가 활성 상태일 가능성을 추정하는 상기 단계는, 추정 과정 중 터미널 노드들을 표시하여, 터미널 노드들이 추정 중에 두 번 이상 팩터화되지 않음을 보장하는 것을 특징으로 하는 컴퓨터-판독형 저장 매체.
  31. 제 27 항에 있어서, 증거 트리를 구축하는 상기 단계는, 노드가 단어 세트를 발생시켰을 가능성 추정치를 바탕으로, 증거 트리로부터 상기 노드를 가지치는 과정을 포함하는 것을 특징으로 하는 컴퓨터-판독형 저장 매체.
  32. 제 23 항에 있어서, 구성요소 세트의 구축 중, 단어 세트를 발생시킴에 있어 후보 클러스터가 활성 상태인 정도는, 단어 세트를 발생시킴에 있어 후보 클러스터가 활성 상태일 확률을 연산함으로서 결정되는 것을 특징으로 하는 컴퓨터-판독형 저장 매체.
  33. 제 23 항에 있어서, 구성요소 세트 구축 중, 단어 세트를 발생시킴에 있어 후보 클러스터가 활성 상태인 정도는 후보 클러스터에 대한 활성화와, 단어 세트를 발생시킴에 있어 후보 클러스터가 활성 상태인 확률을 곱함으로서 결정되며, 이때, 상기 활성화는 후보 클러스터로부터 그 외 다른 노드까지 몇 개의 링크가 점화될 가능성이 있는 지를 표시하는 것을 특징으로 하는 컴퓨터-판독형 저장 매체.
  34. 제 21 항에 있어서, 구성요소 세트를 구축하는 단계는, 구성요소 세트를 노멀라이징하는 과정을 포함하는 것을 특징으로 하는 컴퓨터-판독형 저장 매체.
  35. 제 23 항에 있어서, 구성요소 세트를 구축하는 단계는, 단어 세트를 발생시킬 수 있는 확률 모델의 상태들에 대해 주어진 확률 클러스터가 활성 상태일 확률을 근사시키는 과정을 포함하는 것을 특징으로 하는 컴퓨터-판독형 저장 매체.
  36. 제 35 항에 있어서, 확률에 근사하는 상기 단계는,
    - 문서 내 단어 세트들을 발생시켰을 가능성 추정치를 바탕으로, 확률 모델들에 대한 상태들을 선택하고,
    - 해당 후보 클러스터가 활성 상태인 확률을 연산할 때 선택된 상태들만을 고려하는
    단계들을 포함하는 것을 특징으로 하는 컴퓨터-판독형 저장 매체.
  37. 제 36 항에 있어서, 단어 세트를 발생시켰을 가능성 추정치를 바탕으로 상태를 선택하는 단계는,
    - 확률 모델에 대해 시작 상태를 임의적으로 선택하고, 그리고
    - 이전 상태보다 단어 세트를 발생시켰을 가능성 추정치가 높은 상태에 도달하도록 시작 상태에서 시작하는 힐-클라이밍(hill-climbimg) 동작을 실행하는
    단계들을 포함하는 것을 특징으로 하는 컴퓨터-판독형 저장 매체.
  38. 제 37 항에 있어서, 힐-클라이밍 동작들을 실행하는 단계는 힐-클라이밍 동작들을 통해 도달할 수 없는 확률 모델의 상태들을 탐구하도록 힐-클라이밍 동작들에 대한 목적 함수에 관계없이 개별 후보 클러스터들의 상태들을 주기적으로 변경시키는 단계들을 포함하는 것을 특징으로 하는 컴퓨터-판독형 저장 매체.
  39. 제 38 항에 있어서, 개별 후보 클러스터의 상태를 변경시키는 단계는, 변경된 상태를 포함하는, 목적 함수에 대한 극점을 생성하도록 변경된 상태를 일시적으로 고정시키는 단계를 포함하는 것을 특징으로 하는 컴퓨터-판독형 저장 매체.
  40. 제 21 항에 있어서, 상기 문서는,
    - 웹페이지 또는
    - 질의어로부터의 용어 세트
    를 포함할 수 있는 것을 특징으로 하는 컴퓨터-판독형 저장 매체.
  41. 개념적으로 서로 관련된 단어들의 클러스터들에 대해 한 문서를 특성화하는 장치에 있어서, 이 장치는,
    - 단어 세트를 지닌 문서를 수신하도록 구성되는 수신 수단,
    - 상기 단어 세트와 관련이 있으며 개념적으로 서로 관련된 단어들의 후보 클러스터들을 선택하도록 구성되는 선택 수단으로서, 이때, 개념적으로 서로 관련된 단어들의 클러스터들로부터 단어 세트들이 어떻게 발생되는 지를 설명하는 모델을 이용하여 후보 클러스터들이 선택되는 것을 특징으로 하는 상기 선택 수단, 그리고
    - 문서를 특성화하기 위한 구성요소 세트를 구축하도록 구성되는 구성요소 구축 수단으로서, 이때, 상기 구성요소 세트는 후보 클러스터들에 대한 구성요소들을 포함하고, 이때, 각각의 구성요소는 해당 후보 클러스터가 단어 세트들에 관련된 정도를 표시하는 바의 상기 구성요소 구축 수단
    을 포함하는 것을 특징으로 하는 문서 특성화 장치.
  42. 제 41 항에 있어서, 상기 모델은 확률 모델로서, 단어들을 나타내는 확률 변수(random variable)와, 개념적으로 서로 관련된 단어들의 클러스터들을 나타내는 확률 변수인 노드들을 포함하는 것을 특징으로 하는 문서 특성화 장치.
  43. 제 42 항에 있어서, 구성요소 세트의 각각의 구성요소는 단어 세트를 발생시킴에 있어 해당하는 후보 클러스터가 활성 상태인 정도를 표시하는 것을 특징으로 하는 문서 특성화 장치.
  44. 제 43 항에 있어서,
    확률 모델의 노드들은 가중치화된 링크에 의해 함께 연결되고, 그리고
    확률 모델의 클러스터 노드가 점화될 경우, 클러스터 노드로부터 또다른 노드까지 가중치화된 링크가 그 외 다른 노드를 점화시킬 수 있는 것을 특징으로 하는 문서 특성화 장치.
  45. 제 44 항에 있어서, 한 노드가 활성 상태인 여러개의 부모 노드를 가질 경우, 노드가 점화하지 않을 확률은 활성 부모 노드로부터의 링크들이 점화하지 않을 확률들의 프로덕트인 것을 특징으로 하는 문서 특성화 장치.
  46. 제 42 항에 있어서, 상기 확률 모델은 범용 노드로서 항상 활성 상태이고 모든 클러스터 노드들에 대해 가중치화된 링크들을 가지는 것을 특징으로 하는 문서 특성화 장치.
  47. 제 44 항에 있어서, 상기 선택 수단은,
    - 문서 내 단어 세트들에 관련된 터미널 노드들로 시작함으로서 그리고 역방 향으로 부모 클러스터노드들에 대한 링크를 따름으로서 증거 트리를 구축하고,
    - 단어 세트를 발생시킴에 있어 각각의 부모 클러스터 노드가 활성 상태였을 가능성을 추정하도록 증거 트리를 이용하며, 그리고
    - 추정된 가능성을 바탕으로 후보 클러스터 노드가 될 부모 클러스터 노드를 선택하도록
    구성되는 것을 특징으로 하는 문서 특성화 장치.
  48. 제 47 항에 있어서, 단어 세트들을 발생시킴에 있어 해당 부모 노드가 활성 상태일 가능성을 추정하면서, 상기 선택 수단은,
    - 해당 부모 노드가 활성 상태일 무조건적 확률,
    - 해당 부모 노드의 부모 노드들이 활성 상태라고 가정할 때 해당 부모 노드가 활성 상태일 조건부 확률, 그리고
    - 해당 부모 노드의 자손 노드들의 활성 상태라고 가정할 때 해당 부모 노드가 활성 상태일 조건부 확률
    중 한가지 이상을 고려하도록 구성되는 것을 특징으로 하는 문서 특성화 장치.
  49. 제 48 항에 있어서, 조건부 확률들을 고려하면서, 상기 선택 수단은, 노드들 간의 링크에 대한 가중치를 고려하도록 구성되는 것을 특징으로 하는 문서 특성화 장치.
  50. 제 47 항에 있어서, 단어 세트를 발생시킴에 있어 해당 부모 노드가 활성 상태일 가능성을 추정하면서, 상기 선택 수단은, 추정 과정 중 터미널 노드들을 표시하여, 터미널 노드들이 추정 중에 두 번 이상 팩터화되지 않음을 보장하도록 구성되는 것을 특징으로 하는 문서 특성화 장치.
  51. 제 47 항에 있어서, 증거 트리를 구축하면서, 상기 선택 수단은, 노드가 단어 세트를 발생시켰을 가능성 추정치를 바탕으로, 증거 트리로부터 상기 노드를 가지치도록 구성되는 것을 특징으로 하는 문서 특성화 장치.
  52. 제 43 항에 있어서, 구성요소 세트 중 해당 구성요소를 구축하면서, 상기 구성요소 구축 수단은, 단어 세트를 발생시킴에 있어 후보 클러스터가 활성 상태일 확률을 연산함으로서 단어 세트를 발생시킴에 있어 후보 클러스터가 활성 상태인 정도를 결정하도록 구성되는 것을 특징으로 하는 문서 특성화 장치.
  53. 제 43 항에 있어서, 구성요소 세트의 해당 구성요소를 구축하면서, 상기 구성요소 구축 수단은, 후보 클러스터에 대한 활성화와, 단어 세트를 발생시킴에 있어 후보 클러스터가 활성 상태인 확률을 곱함으로서 단어 세트를 발생시킴에 있어 후보 클러스터가 활성 상태인 정도를 결정하도록 구성되며, 이때, 상기 활성화는 후보 클러스터로부터 그 외 다른 노드까지 몇 개의 링크가 점화될 가능성이 있는 지를 표시하는 것을 특징으로 하는 문서 특성화 장치.
  54. 제 41 항에 있어서, 상기 구성요소 세트 구축 수단은, 구성요소 세트를 노멀라이징하도록 구성되는 것을 특징으로 하는 문서 특성화 장치.
  55. 제 43 항에 있어서, 상기 구성요소 세트 구축 수단은, 단어 세트를 발생시킬 수 있는 확률 모델의 상태들에 대해 주어진 확률 클러스터가 활성 상태일 확률을 근사시키도록 구성되는 것을 특징으로 하는 문서 특성화 장치.
  56. 제 55 항에 있어서, 확률에 근사하면서, 상기 구성요소 구축 수단은,
    - 문서 내 단어 세트들을 발생시켰을 가능성 추정치를 바탕으로, 확률 모델들에 대한 상태들을 선택하고, 그리고
    - 해당 후보 클러스터가 활성 상태인 확률을 연산할 때 선택된 상태들만을 고려하도록
    구성되는 것을 특징으로 하는 문서 특성화 장치.
  57. 제 56 항에 있어서, 단어 세트를 발생시켰을 가능성 추정치를 바탕으로 상태를 선택하면서, 상기 구성요소 구축 수단은,
    - 확률 모델에 대해 시작 상태를 임의적으로 선택하고, 그리고
    - 이전 상태보다 단어 세트를 발생시켰을 가능성 추정치가 높은 상태에 도달하도록 시작 상태에서 시작하는 힐-클라이밍(hill-climbimg) 동작을 실행하도록
    구성되는 것을 특징으로 하는 문서 특성화 장치.
  58. 제 57 항에 있어서, 힐-클라이밍 동작들을 실행하면서, 상기 구성요소 구축 수단은, 힐-클라이밍 동작들을 통해 도달할 수 없는 확률 모델의 상태들을 탐구하도록 힐-클라이밍 동작들에 대한 목적 함수에 관계없이 개별 후보 클러스터들의 상태들을 주기적으로 변경시키도록 구성되는 것을 특징으로 하는 문서 특성화 장치.
  59. 제 58 항에 있어서, 개별 후보 클러스터의 상태를 변경시키면서, 상기 구성요소 구축 수단은, 목적 함수에 대한 극점을 생성하도록 변경된 상태를 일시적으로 고정시키도록 구성되는 것을 특징으로 하는 문서 특성화 장치.
  60. 제 41 항에 있어서, 상기 문서는,
    - 웹페이지 또는
    - 질의어로부터의 용어 세트
    를 포함할 수 있는 것을 특징으로 하는 문서 특성화 장치.
  61. 개념적으로 서로 관련된 단어들의 클러스터들에 대한 한 문서의 특성화를 촉진시키는 데이터 구조를 지닌 컴퓨터-판독형 저장 매체에 있어서, 상기 데이터 구조는,
    - 단어들을 나타내는 확률 변수(random variable)와, 개념적으로 서로 관련된 단어들의 클러스터들을 나타내는 확률 변수인 노드들을 지닌 확률 모델
    을 포함하며, 이때, 상기 확률 모델의 노드들은 가중치화된 링크들에 의해 함께 연결되며,
    확률 모델의 클러스터 노드가 점화할 경우, 클러스터 노드로부터 또다른 노드까지 가중치화된 링크가 나머지 링크를 점화시킬 수 있으며, 그리고
    나머지 노드가 한 단어나 한 클러스터에 상관될 수 있는 것을 특징으로 하는 데이터 구조를 지닌 컴퓨터-판독형 저장 매체.
  62. 제 61 항에 있어서, 상기 확률 모델은 범용 노드를 포함하며, 상기 범용 노드는 항상 활성 상태로서 모든 클러스터 노드들에 대한 가중치화된 링크를 가지는 것을 특징으로 하는 데이터 구조를 지닌 컴퓨터-판독형 저장 매체.
KR1020057005832A 2002-10-03 2003-10-03 관련 단어들의 클러스터들을 바탕으로 문서를 특성화하는방법 및 장치 KR101014895B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US41614402P 2002-10-03 2002-10-03
US60/416,144 2002-10-03

Publications (2)

Publication Number Publication Date
KR20050065578A KR20050065578A (ko) 2005-06-29
KR101014895B1 true KR101014895B1 (ko) 2011-02-15

Family

ID=32069938

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057005832A KR101014895B1 (ko) 2002-10-03 2003-10-03 관련 단어들의 클러스터들을 바탕으로 문서를 특성화하는방법 및 장치

Country Status (7)

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

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
US8010459B2 (en) * 2004-01-21 2011-08-30 Google Inc. Methods and systems for rating associated members in a social network
US8015119B2 (en) 2004-01-21 2011-09-06 Google Inc. Methods and systems for the display and navigation of 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
US7668822B2 (en) * 2004-12-23 2010-02-23 Become, Inc. Method for assigning quality scores to documents in a linked database
WO2006071811A2 (en) * 2004-12-23 2006-07-06 Become, Inc. Method for assigning relative quality scores to a collection of linked documents
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
US8095876B1 (en) 2005-11-18 2012-01-10 Google Inc. Identifying a primary version of a document
US8316292B1 (en) 2005-11-18 2012-11-20 Google Inc. Identifying multiple versions of documents
US20070156887A1 (en) * 2005-12-30 2007-07-05 Daniel Wright Predicting ad quality
US10600090B2 (en) 2005-12-30 2020-03-24 Google Llc Query feature based data structure retrieval of predicted values
US8065184B2 (en) * 2005-12-30 2011-11-22 Google Inc. Estimating ad quality from observed user behavior
US20070157228A1 (en) 2005-12-30 2007-07-05 Jason Bayer Advertising with video ad creatives
US7827060B2 (en) 2005-12-30 2010-11-02 Google Inc. Using estimated ad qualities for ad filtering, ranking and promotion
US7640234B2 (en) * 2006-02-09 2009-12-29 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
US7725417B2 (en) * 2006-02-09 2010-05-25 Ebay Inc. Method and system to analyze rules based on popular query coverage
US8380698B2 (en) * 2006-02-09 2013-02-19 Ebay Inc. Methods and systems to generate rules to identify data items
WO2007095075A2 (en) * 2006-02-09 2007-08-23 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
US9443333B2 (en) * 2006-02-09 2016-09-13 Ebay Inc. Methods and systems to communicate information
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
US9069750B2 (en) 2006-10-10 2015-06-30 Abbyy Infopoisk Llc Method and system for semantic searching of natural language texts
US9892111B2 (en) 2006-10-10 2018-02-13 Abbyy Production Llc Method and device to estimate similarity between documents having multiple segments
US9495358B2 (en) 2006-10-10 2016-11-15 Abbyy Infopoisk Llc Cross-language text clustering
US9075864B2 (en) 2006-10-10 2015-07-07 Abbyy Infopoisk Llc Method and system for semantic searching using syntactic and semantic analysis
US9189482B2 (en) 2012-10-10 2015-11-17 Abbyy Infopoisk Llc Similar document search
US9098489B2 (en) 2006-10-10 2015-08-04 Abbyy Infopoisk Llc Method and system for semantic searching
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
US8275773B2 (en) * 2007-03-30 2012-09-25 Stuart Donnelly Method of searching text to find relevant content
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
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
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
US8554618B1 (en) 2007-08-02 2013-10-08 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
US8402032B1 (en) 2010-03-25 2013-03-19 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
US10540404B1 (en) * 2014-02-07 2020-01-21 Amazon Technologies, Inc. Forming a document collection in a 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
US11336648B2 (en) 2013-11-11 2022-05-17 Amazon Technologies, Inc. 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
WO2015106353A1 (en) * 2014-01-15 2015-07-23 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
JP6214756B2 (ja) * 2014-03-25 2017-10-18 株式会社日立製作所 確率推論システム
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
CN108475288B (zh) * 2016-02-19 2022-03-29 华为技术有限公司 一种联合数据库统一访问控制的系统、方法和设备
US10803245B2 (en) * 2016-09-06 2020-10-13 Microsoft Technology Licensing, Llc Compiling documents into a timeline per event
CN110023924A (zh) 2016-11-11 2019-07-16 德尼梅尔奥克提麦恩有限公司 用于语义搜索的设备和方法
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 之江实验室 数据上报方法、装置、计算机设备和存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001273293A (ja) 2000-03-23 2001-10-05 Nippon Telegr & Teleph Corp <Ntt> 単語推定方法及び装置及び単語推定プログラムを格納した記録媒体

Family Cites Families (27)

* 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
US6820093B2 (en) 1996-07-30 2004-11-16 Hyperphrase Technologies, Llc Method for verifying record code prior to an action based on the code
US7013298B1 (en) 1996-07-30 2006-03-14 Hyperphrase Technologies, Llc Method and system for automated data storage and retrieval
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
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
AU2003212463A1 (en) 2002-03-01 2003-09-16 Paul Jeffrey Krupin A 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
US7437364B1 (en) 2004-06-30 2008-10-14 Google Inc. System and method of accessing a document efficiently through multi-tier web caching
US8224964B1 (en) 2004-06-30 2012-07-17 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

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001273293A (ja) 2000-03-23 2001-10-05 Nippon Telegr & Teleph Corp <Ntt> 単語推定方法及び装置及び単語推定プログラムを格納した記録媒体

Also Published As

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

Similar Documents

Publication Publication Date Title
KR101014895B1 (ko) 관련 단어들의 클러스터들을 바탕으로 문서를 특성화하는방법 및 장치
US8412747B1 (en) Method and apparatus for learning a probabilistic generative model for text
Storks et al. Commonsense reasoning for natural language understanding: A survey of benchmarks, resources, and approaches
US9373086B1 (en) Crowdsource reasoning process to facilitate question answering
RU2377645C2 (ru) Способ и система для классификации дисплейных страниц с помощью рефератов
US9213946B1 (en) Comparing models
Blanco et al. Repeatable and reliable semantic search evaluation
US7877371B1 (en) Selectively deleting clusters of conceptually related words from a generative model for text
JPWO2007099812A1 (ja) 質問回答装置、質問回答方法および質問回答用プログラム
US20220253611A1 (en) Techniques for maintaining rhetorical flow
US20100185623A1 (en) Topical ranking in information retrieval
Song et al. Detecting opinion leader dynamically in chinese news comments
Losee Term dependence: A basis for Luhn and Zipf models
Nigam et al. Towards a robust metric of polarity
US9507858B1 (en) Selectively merging clusters of conceptually related words in a generative model for text
Secker et al. AISIID: An artificial immune system for interesting information discovery on the web
Wazzan et al. Comparing traditional and LLM-based search for image geolocation
Zhao Modeling and solving term mismatch for full-text retrieval
Du et al. Recommendation system with aspect-based sentiment analysis
Matijasevic et al. „Specific characteristics of computer criminal offenses with regard to the law regulations “
AU2003282688B2 (en) Method and apparatus for characterizing documents based on clusters of related words
Esmaeeli-Gohari et al. Effective query recommendation with medoid-based clustering using a combination of query, click and result features
Termehchy et al. A signaling game approach to databases querying and interaction
Marx et al. CACAO: Conditional Spread Activation for Keyword Factual Query Interpretation
US7302645B1 (en) Methods and systems for identifying manipulated articles

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20140127

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150127

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160125

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170131

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180129

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20190125

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20200129

Year of fee payment: 10