KR20060131746A - 슈퍼유닛을 사용하는 검색 처리 시스템 및 방법 - Google Patents

슈퍼유닛을 사용하는 검색 처리 시스템 및 방법 Download PDF

Info

Publication number
KR20060131746A
KR20060131746A KR1020067008727A KR20067008727A KR20060131746A KR 20060131746 A KR20060131746 A KR 20060131746A KR 1020067008727 A KR1020067008727 A KR 1020067008727A KR 20067008727 A KR20067008727 A KR 20067008727A KR 20060131746 A KR20060131746 A KR 20060131746A
Authority
KR
South Korea
Prior art keywords
units
unit
superunit
signature
seed
Prior art date
Application number
KR1020067008727A
Other languages
English (en)
Other versions
KR100851706B1 (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 KR20060131746A publication Critical patent/KR20060131746A/ko
Application granted granted Critical
Publication of KR100851706B1 publication Critical patent/KR100851706B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9532Query formulation
    • 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/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • 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
    • 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/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99936Pattern matching 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/99931Database or file accessing
    • Y10S707/99937Sorting
    • 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/99942Manipulating data structure, e.g. compression, compaction, compilation
    • 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/99944Object-oriented database structure
    • Y10S707/99945Object-oriented database structure processing
    • 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/99948Application of database or data structure, e.g. distributed, multimedia, or image

Landscapes

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

Abstract

검색 처리 시스템에서, 쿼리를 유닛들로 분석하고 쿼리에 함께 나타나는 유닛들의 패턴에 부분적으로 기초하여 유닛들 간의 다양한 관계를 정의함으로써 일련의 쿼리로부터 개념 네트워크가 생성된다. 어떤 유사한 특성(들)을 가지는 개념 네트워크에서의 유닛들은 슈퍼유닛으로 그룹화된다. 각각의 슈퍼유닛에 대해, 그 그룹의 유사한 특성을 정의하는 대응하는 서명이 존재한다. 쿼리는 구성 유닛을 식별하고 구성 유닛들 중 일부 또는 전부의 슈퍼유닛 멤버십을 결정하며 그 정보를 사용하여 쿼리에 대한 응답을 작성함으로써 처리된다.
네트워크 검색, 슈퍼유닛, 쿼리, 네트워크 인터페이스

Description

슈퍼유닛을 사용하는 검색 처리 시스템 및 방법{SYSTEMS AND METHODS FOR SEARCH PROCESSING USING SUPERUNITS}
관련 출원의 상호 참조
본 출원은 2003년 10월 9일자로 출원된 발명의 명칭이 "유닛의 클러스터화를 사용하는 검색 처리 시스템 및 방법(Systems and Methods for Searching Processing Using Clustering of Units)"인 미국 가특허출원 제60/510,220호에 대해 우선권 주장하며, 이는 여기에 인용함으로써 그 전체 내용이 본 명세서에 포함된다.
본 발명은 2003년 11월 12일자로 출원된 발명의 명칭이 "검색 쿼리로부터 개념 유닛을 생성하는 시스템 및 방법(Systems and Methods for Generating Concept Units from Search Queries)"인 출원인에게 양수되고 동시 계류 중인 미국 특허출원 제10/713,576호 및 2003년 4월 4일자로 출원된 발명의 명칭이 "범용 검색 인터페이스 시스템 및 방법(Universal Search Interface System and Methods)"인 출원인에게 양수되고 동시 계류 중인 미국 가특허출원 제60/460,222호에 관련된다. 이들 출원의 각각의 개시 내용은 여기에 인용함으로써 그 전체 내용이 본 명세서에 포함된다.
본 발명은 일반적으로 네트워크 및 인터넷 검색 및 인터페이스 시스템에 관한 것으로서, 구체적으로는 향상된 검색 기능을 제공하는 검색 시스템에 관한 것이다.
월드 와이드 웹을 통해 사용자가 이용가능한 인터넷 및 다수의 웹 페이지 및 미디어 콘텐츠의 등장과 함께, 사용자에게 웹으로부터 원하는 정보를 필터링 및 획득하는 간소화된 방법을 제공할 필요가 있게 되었다. 원하는 정보를 획득하기 위한 사용자의 요구를 충족시키는 검색 시스템 및 프로세스가 개발되었다. 이러한 기술들의 예가 야후!, 구글 및 다른 사이트를 통해 액세스될 수 있다. 전형적으로, 사용자는 쿼리(query)를 입력하고 검색 프로세스는 그 쿼리와 관련된 하나 이상의 링크(웹을 검색하는 경우), 문서 및/또는 참조{다른 검색 코퍼스(search corpus)의 경우}를 반환한다. 반환된 링크는 사용자가 실제로 찾고 있는 것과 밀접하게 관련되거나, 또는 전혀 관련이 없을 수 있다. 쿼리에 대한 결과들의 "관련성(relatedness)"은 사용되는 검색 시스템(하부의 수집 시스템)의 안정성(robustness) 뿐만 아니라, 부분적으로는 입력된 실제 쿼리의 함수일 수 있다. 관련성은 사용자에 의해 주관적으로 결정되거나 또는 사용자가 찾고 있을 수 있는 것에 의해 객관적으로 결정될 수 있다.
사용자가 입력하는 쿼리는 전형적으로 하나 이상의 단어로 이루어져 있다. 예를 들어, "hawaii(하와이)"는 쿼리이며, "new york city(뉴욕시)"도 마찬가지이고, "new york city law enforcement(뉴욕시 법 집행)"도 마찬가지로 쿼리이다. 그 자체로서, 쿼리는 전체로서 인간의 두뇌에 필수적인 것은 아니다. 즉, 인간은 당연히 쿼리를 통해 생각하는 것은 아니다. 쿼리는 부분적으로 검색 엔진으로 검색하거나 도서관 도서 목록을 탐색할 필요성에 의해 이용되는 인공적 구문이다. 인간은 당연히 단일어를 통해 생각하는 것도 아니다. 인간이 생각할 때 사용하는 것은 자연스러운 개념이다. 예를 들어, "hawaii" 및 "new york city"는 단어의 수로 측정되는 길이의 관점에서 아주 다른 쿼리이지만, 인간에게 있어서는 이들이 한가지 중요한 특성을 공유한다. 즉, 이들 각각은 하나의 개념으로 이루어져 있다. 이와 반대로, 사람은 쿼리 "new york city law enforcement"를 기본적으로 다른 것으로 간주하는데, 이는 2개의 별개의 개념 "new york city" 및 "law enforcement"로 이루어져 있기 때문이다.
또한, 인간은 개념들 간의 논리적 관계를 통해 생각한다. 예를 들어, "law enforcement(법 집행)" 및 "police(경찰)"은 관련이 있는 개념인데, 이는 경찰이 법 집행의 중요 기관이기 때문이며, 이러한 개념들 중 하나를 타이핑하는 사용자는 이들 사이트가 사용자가 우연히 타이핑한 특정의 단어 또는 구문을 포함하지 않더라도 다른 개념에 관련된 사이트에 관심이 있을 수 있다. 그러한 사고 패턴의 결과, 인간은 본질적으로 단지 가변 길이의 단일어 시퀀스가 아니라 하나 이상의 자연의 개념을 입력함으로써 쿼리를 구축하고, 이 쿼리는 일반적으로 사용자가 알 수 있는 관련된 개념들 전부를 포함하고 있지는 않다. 또한, 사용자 의도가 쿼리의 개개의 단어에 반드시 반영되어 있는 것은 아니다. 예를 들어, "law enforcement"는 하나의 개념이지만, 개별적인 단어 "law"와 "enforcement" 각각은 조합된 단어와 동일한 사용자 의도를 전달하지는 않는다.
주요 검색 제공자, 예컨대 MSN, 구글 또는 임의의 다른 주요 검색 엔진 사이트의 현재 기술은 사람이 쿼리를 생성하는 것과 동일한 방식으로 쿼리를 이해하지 않는다. 예를 들어, 기존의 검색 엔진은 사용자가 실제로 마음 속에 가지고 있던 근원적인 자연의 개념 또는 관련된 개념을 검색하는 것이 아니라 일반적으로 사용자가 입력한 바로 그 단어 또는 구문을 검색한다. 이는 아마도 검색 제공자가 사용자의 의도를 식별하고 최적의 검색 결과 및 콘텐츠를 제공하지 못하는 가장 중요한 이유이다.
알 수 있는 바와 같이, 사용자가 관심을 가질 수 있는 실제의 개념과 보다 일치하는 결과를 제공하고 보다 나은 사용자 경험을 제공하는 데 도움을 주는 개선된 검색 및 인터페이스 기술이 필요하다.
본 발명의 실시예들은, 찾고 있는 정보에 대한 보다 세밀한 이해를 제공하기 위해 수신된 쿼리를 분석하는 것을 포함하는, 검색 요청을 처리하는 시스템 및 방법을 제공한다. 쿼리를 유닛으로 분석하고(parsing), 예컨대 쿼리에 함께 나타나는 유닛들의 패턴에 기초하여 유닛들 간의 다양한 관계를 정의함으로써, 일련의 쿼리로부터 개념 네트워크가 생성된다. 개념 네트워크로부터, 서로 다른 유닛들 간의 다양한 유사성이 검출되고, 어떤 식별 특성(들)을 공통으로 갖는 유닛들이 슈퍼유닛(superunit)으로 그룹화될 수 있다. 각각의 슈퍼유닛에 대하여, 그 그룹의 식별 특성(들)을 정의하는 대응하는 서명이 존재한다. 쿼리는 구성 유닛들을 식별하고 구성 유닛들의 일부 또는 전부의 슈퍼유닛 멤버십(superunit membership)을 결정하며 그 정보를 사용하여 쿼리에 대한 응답을 작성함으로써 처리될 수 있다.
본 발명의 일 특징에 따르면, 사용자 검색 쿼리로부터 슈퍼유닛을 생성하는 컴퓨터 구현 방법이 제공된다. 다수의 이전의 쿼리는 개념 네트워크로서 표현되고, 이 개념 네트워크는 유닛들 및 이 유닛들의 쌍들 간에 정의된 관계들을 포함하며, 각각의 관계는 관련된 에지 웨이트(edge weight)를 갖는다. 슈퍼유닛 시드(superunit seed)가 식별되고, 이 슈퍼유닛 시드는 적어도 하나의 멤버 유닛을 포함하며, 각각의 멤버 유닛은 개념 네트워크의 복수의 유닛 중 하나이다. 슈퍼유닛 시드에 대해 서명이 정의된다. 이 서명은 하나 이상의 서명 유닛을 포함하며, 각각의 서명 유닛은 개념 네트워크에서 적어도 최소 수의 멤버 유닛들과 관계를 갖는다. 그리고 나서, 이 슈퍼유닛은 개념 네트워크로부터의 하나 이상의 새로운 멤버 유닛을 추가함으로써 확장되며, 각각의 새로운 멤버 유닛은 서명에 기초한 매치 기준(match criterion)을 만족시킨다. 이 서명은 확장된 슈퍼유닛 시드에 기초하여 수정된다. 수렴 기준(convergence criterion)이 만족될 때까지 확장하는 단계 및 수정하는 단계가 반복되고, 수렴 기준이 만족되면 최종 슈퍼유닛 및 최종 서명이 형성된다. 이어서, 최종 슈퍼유닛의 각각의 멤버 유닛에 대한 슈퍼유닛 멤버십 정보가 저장되고, 후속하는 쿼리에 대한 응답으로 사용될 수 있다. 슈퍼유닛 멤버십 정보는, 예를 들어 최종 슈퍼유닛의 각각의 멤버 유닛에 대한 멤버십 웨이트를 포함할 수 있으며, 이 멤버십 웨이트는 개념 네트워크에서 최종 서명의 서명 유닛과 멤버 유닛 사이의 관계에 기초하고 있다.
본 발명의 다른 특징에 따르면, 사용자 검색 쿼리로부터 슈퍼유닛을 생성하는 시스템은, 개념 네트워크 빌더 모듈(concept network builder module), 슈퍼유닛 시드 모듈, 슈퍼유닛 빌더 모듈, 및 저장 모듈을 포함한다. 개념 네트워크 빌더 모듈은 일련의 이전의 쿼리로부터 개념 네트워크를 생성하도록 구성되고, 개념 네트워크는 유닛들 및 유닛들의 쌍들 사이에 정의된 관계들을 포함하며, 각각의 관계는 관련된 에지 웨이트를 갖는다. 슈퍼유닛 시드 모듈은 적어도 하나의 멤버 유닛을 포함하는 슈퍼유닛 시드를 식별하도록 구성되며, 각각의 멤버 유닛은 개념 네트워크의 유닛들 중 하나이다. 슈퍼유닛 빌더 모듈은 슈퍼유닛 시드로 시작하는 서명 및 슈퍼유닛을 만들도록 구성된다. 각각의 슈퍼유닛은 복수의 멤버 유닛을 포함하고, 각각의 서명은 슈퍼유닛 중 하나와 관련된다. 각각의 서명은 하나 이상의 서명 유닛을 포함하고, 각각의 서명 유닛은 개념 네트워크에서, 관련된 슈퍼유닛의 적어도 최소 수의 멤버 유닛들과 관계를 갖는다. 저장 모듈은 멤버 유닛에 대한 슈퍼유닛 멤버십 정보를 저장하도록 구성되며, 슈퍼유닛 멤버십 정보는 슈퍼유닛 빌더 모듈에 의해 제공된다. 일부 실시예들에 따르면, 이 시스템은 저장 모듈에 연결되며 현재의 쿼리를 수신하도록 구성된 쿼리 응답 모듈 역시 포함한다. 쿼리 응답 모듈은 현재의 쿼리를 하나 이상의 구성 유닛(constituent unit)으로 분석하고, 하나 이상의 구성 유닛에 대한 슈퍼유닛 멤버십 정보를 저장 모듈로부터 검색하며(retrieve), 검색된 슈퍼유닛 멤버십 정보에 적어도 부분적으로 기초하여 현재의 쿼리에 대한 응답을 작성한다.
도 1은 본 발명의 일 실시예에 따른 정보 검색 및 통신 시스템의 간략화된 상위 레벨 블록도.
도 2는 본 발명의 일 실시예에 따른 미디어 콘텐츠를 전달하는 정보 검색 및 통신 네트워크의 간략화된 블록도.
도 3은 본 발명의 일 실시예에 따른 개념 네트워크를 나타낸 도면.
도 4는 본 발명의 일 실시예에 따른 쿼리 처리 엔진의 간략화된 블록도.
도 5는 본 발명의 일 실시예에 따른 슈퍼유닛 시드로서 사용가능한 클러스터(cluster)를 생성하는 프로세스의 흐름도.
도 6은 본 발명의 일 실시예에 따른 슈퍼유닛 시드로서 사용가능한 클리크(clique)를 생성하는 프로세스의 흐름도.
도 7은 본 발명의 일 실시예에 따른 시드로부터 슈퍼유닛을 구성하는 프로세스의 흐름도.
도 8a 및 도 8b는 도 7에 도시된 슈퍼유닛 생성 프로세스의 서로 다른 단계에서의 개념 네트워크를 그래픽으로 나타낸 도면.
도 9는 본 발명의 일 실시예에 따른 슈퍼유닛에 대한 서명 집합을 구성하는 프로세스의 흐름도.
도 10은 도 7의 슈퍼유닛 생성 프로세스의 예시적인 결과를 나타낸 것으로서, 도 10a는 서명 유닛을 나타내고 도 10b는 대표적인 슈퍼유닛 멤버를 나타내는 도면.
도 11은 본 발명의 일 실시예에 따른, 어떤 측면에서 쿼리 처리 엔진을 포함하는, 유닛 사전(unit dictionary) 및 관련된 처리 지능을 포함하는 시스템의 간략 화된 블록도.
첨부 도면과 함께 이하의 상세한 설명은 본 발명의 특성 및 이점에 대한 보다 나은 이해를 제공할 것이다.
I. 개요
A. 네트워크 구현
도 1은 본 발명의 일 실시예에 따른 클라이언트 시스템(20)을 포함하는 정보 검색 및 통신 네트워크(10)의 일반적인 개요를 도시하고 있다. 컴퓨터 네트워크(10)에서, 클라이언트 시스템(20)은 인터넷(40) 또는 기타 통신 네트워크, 예컨대 임의의 근거리 통신망(LAN) 또는 원거리 통신망(WAN) 연결을 통해 다수의 서버 시스템(501 내지 50N)에 연결된다. 본 명세서에 기술되는 바와 같이, 클라이언트 시스템(20)은 예컨대 미디어 콘텐츠 및 웹 페이지와 같은 기타 정보를 액세스, 수신, 검색 및 디스플레이하기 위해 본 발명에 따라 임의의 서버 시스템(501 내지 50N)과 통신하도록 구성된다.
도 1에 도시된 시스템에서의 몇몇의 구성요소는 본 명세서에서 상세히 설명될 필요가 없는 종래의 공지된 구성요소를 포함한다. 예를 들어, 클라이언트 시스템(20)은 데스크탑 퍼스널 컴퓨터, 워크스테이션, 랩탑, 개인 휴대 정보 단말기(PDA), 이동 전화 또는 임의의 WAP 지원 장치 또는 인터넷에 직접 또는 간접적으로 인터페이스로 연결할 수 있는 임의의 기타 연산 장치를 포함할 수 있다. 전형 적으로 클라이언트 시스템(20)은 클라이언트 시스템(20)의 사용자가 인터넷(40)을 통해 서버 시스템(501 내지 50N)으로부터 이용가능한 페이지 및 정보를 액세스하고 처리하고 보도록 허용하는 마이크로소프트사의 인터넷 익스플로러(Internet Explorer)™ 브라우저, 넷스케이프 내비게이터(Netscape Navigator)™ 브라우저, 모질라(Mozilla)™ 브라우저, 오페라(Opera)™ 브라우저, 또는 이동 전화, PDA 또는 기타 무선 장치의 경우의 WAP-지원 브라우저 등의 브라우징 프로그램을 실행시킨다. 또한, 전형적으로 클라이언트 시스템(20)은, 서버 시스템(501 내지 50N) 또는 기타 서버에 의해 제공되는 페이지, 폼(form) 및 기타 정보와 관련하여 디스플레이(예컨대, 모니터 스크린, LCD 디스플레이 등) 상에 브라우저에 의해 제공되는 그래픽 사용자 인터페이스(GUI)와 인터페이스로 연결하기 위한 키보드, 마우스, 터치 스크린, 펜 등과 같은 하나 이상의 사용자 인터페이스 장치(22)를 포함한다. 본 발명은, 네트워크들의 특정 글로벌 인터네트워크(global internetwork)를 의미하는 인터넷에 사용하기에 적합하다. 그러나, 인트라넷, 엑스트라넷, 가상 사설망(VPN), 비-TCP/IP 기반 네트워크, LAN 또는 WAN 등과 같은 기타 네트워크들이 인터넷 대신에 또는 그에 부가하여 사용될 수 있다는 점에 유의하자.
일 실시예에 따르면, 클라이언트 시스템(20) 및 그의 컴포넌트 모두는 인텔 펜티엄™ 프로세서, AMD 애슬론™ 프로세서 등 또는 다수의 프로세서들과 같은 중앙 처리 장치를 사용하여 실행되는 컴퓨터 코드를 포함하는 애플리케이션을 사용하여 구성 가능한 오퍼레이터이다. 본 명세서에 기술된 바와 같이 데이터 및 미디어 콘텐츠를 전달, 처리 및 디스플레이하기 위해 클라이언트 시스템(20)을 동작 및 구성하는 컴퓨터 코드는 바람직하게는 다운로드되어 하드 디스크 상에 저장되지만, 전체 프로그램 코드 또는 그 일부는 잘 알려진 바와 같이 ROM 또는 RAM 등과 같은 임의의 기타 휘발성 또는 비휘발성 메모리 매체 또는 장치에 저장되거나, 또는 CD(compact disk) 매체, DVD(digital versatile disk) 매체, 플로피 디스크 등의 프로그램 코드를 저장할 수 있는 임의의 매체 상에 제공될 수 있다. 또한, 전체 프로그램 코드 또는 그 일부는 소프트웨어 소스, 예컨대 서버 시스템(501 내지 50N) 중 하나로부터 인터넷을 통해 클라이언트 시스템(20)으로 전송 및 다운로드되거나, 또는 임의의 통신 매체 및 프로토콜(예컨대, TCP/IP, HTTP, HTTPS, 이더넷, 또는 기타 종래의 매체 및 프로토콜)을 사용하여 임의의 기타 네트워크 연결(예컨대, 엑스트라넷, VPN, LAN, 또는 기타 종래의 네트워크)을 통해 전송될 수 있다.
본 발명의 특징들을 구현하는 프로그램 코드가 C, C++, HTML, XML, 자바, 자바스크립 등의 코드, 또는 임의의 기타 적절한 스크립팅 언어(예컨대, VBScript), 또는 클라이언트 시스템(20) 상에서 실행되거나 클라이언트 시스템(20) 상에서 실행하도록 컴파일될 수 있는 임의의 기타 적절한 프로그래밍 언어일 수 있음을 알아야 한다. 일부 실시예들에 따르면, 어떠한 코드도 클라이언트 시스템(20)으로 다운로드되지 않으며, 필요한 코드가 서버에 의해 실행되거나, 클라이언트 시스템(20)에 이미 존재하는 코드가 실행된다.
B. 검색 시스템
도 2는 본 발명의 일 실시예에 따른 미디어 콘텐츠를 전달하는 다른 정보 검색 및 통신 네트워크(110)를 도시하고 있다. 도시된 바와 같이, 네트워크(110)는 클라이언트 시스템(120), 하나 이상의 콘텐츠 서버 시스템(150) 및 검색 서버 시스템(160)을 포함한다. 네트워크(110)에서, 클라이언트 시스템(120)은 인터넷(140) 또는 기타 통신 네트워크를 통해 서버 시스템(150, 160)에 통신 연결된다. 전술한 바와 같이, 클라이언트 시스템(120) 및 그의 컴포넌트들은 인터넷(140) 또는 기타 통신 네트워크를 통해 서버 시스템(150, 160) 및 기타 서버 시스템과 통신하도록 구성된다.
1. 클라이언트 시스템
일 실시예에 따르면, 클라이언트 시스템(120) 상에서 실행되는 클라이언트 애플리케이션{모듈(125)로 표시됨}은 서버 시스템(150, 160)과 통신하고 또 그로부터 수신된 데이터 콘텐츠를 처리 및 디스플레이하기 위해 클라이언트 시스템(120) 및 그의 컴포넌트들을 제어하기 위한 명령어를 포함한다. 클라이언트 애플리케이션 모듈(125)은 전술한 바와 같이 플로피 디스크, CD, DVD 등과 같은 임의의 소프트웨어 저장 매체 상에 제공될 수 있지만, 클라이언트 애플리케이션(125)은 바람직하게는 원격 서버 시스템{예컨대, 서버 시스템(150), 서버 시스템(160) 또는 기타 원격 서버 시스템}과 같은 소프트웨어 소스로부터 클라이언트 시스템(120)으로 전송 및 다운로드된다. 예를 들어, 일 특징에 따르면, 클라이언트 애플리케이션 모듈(125)은 다양한 객체, 프레임 및 윈도우에서 데이터를 처리하고 데이터를 렌더링(rendering)하기 위해, 예컨대 임베디드 자바스크립트 또는 ActiveX 컨트롤과 같 은 다양한 컨트롤을 포함하는 HTML 래퍼(wrapper)로 인터넷(140) 상에서 클라이언트 시스템(120)으로 제공될 수 있다.
또한, 클라이언트 애플리케이션 모듈(125)은, 검색 요청 및 검색 결과 데이터를 처리하기 위한 특수 검색 모듈(126), 텍스트 및 데이터 프레임 및 활성 창, 예컨대 브라우저 창 및 대화 상자에서 데이터 및 미디어 콘텐츠를 렌더링하기 위한 사용자 인터페이스 모듈(127), 및 클라이언트(120) 상에서 실행되는 다양한 애플리케이션과 인터페이스로 연결하고 통신하기 위한 애플리케이션 인터페이스 모듈(128)과 같은 데이터 및 미디어 콘텐츠를 처리하기 위한 다양한 소프트웨어 모듈을 포함한다. 본 발명의 특징에 따라 바람직하게는 애플리케이션 인터페이스 모듈(128)과 인터페이스로 연결하도록 구성되는 클라이언트 시스템(120) 상에서 실행되는 다양한 애플리케이션의 예에는 다양한 이메일 애플리케이션, 인스턴트 메시징(IM) 애플리케이션, 브라우저 애플리케이션, 문서 관리 애플리케이션 등을 포함된다. 또한, 인터페이스 모듈(127)은 클라이언트 시스템(120) 상에 구성되는 디폴트 브라우저 또는 상이한 브라우저와 같은 브라우저를 포함할 수 있다. 일부 실시예들에 따르면, 클라이언트 애플리케이션 모듈(125)은 앞서 언급한 미국 가특허출원 제60/460,222호에 기술된 바와 같은 범용 검색 인터페이스의 특징들을 제공한다.
2. 검색 서버 시스템
일 실시예에 따르면, 검색 서버 시스템(160)은 검색 결과 데이터 및 미디어 콘텐츠를 클라이언트 시스템(120)에 제공하도록 구성되고, 콘텐츠 서버 시스 템(150)은, 예컨대 검색 서버 시스템(160)에 의해 제공되는 검색 결과 페이지에서 선택된 링크에 대한 응답으로, 웹 페이지와 같은 미디어 콘텐츠 및 데이터를 클라이언트 시스템(120)에 제공하도록 구성된다. 일부 변경에 있어서, 검색 서버 시스템(160)은 콘텐츠로의 링크 및/또는 다른 참조와 함께, 또는 그 대신에 콘텐츠를 반환한다. 또한, 바람직하게는, 검색 서버 시스템(160)은 이하에서 기술되는 쿼리 로그 파일(query log file)의 형태로 사용자 쿼리 활동을 기록하도록 구성된다.
일 실시예에 따른 검색 서버 시스템(160)은, 예컨대 페이지, 페이지로의 링크, 인덱싱된 페이지의 콘텐츠를 나타내는 데이터 등으로 채워지는 다양한 페이지 인덱스(170)를 참조한다. 페이지 인덱스는 계층 구조 내에 웹 페이지들을 분류하고 정렬하기 위한 수동 또는 반자동 분류 알고리즘 및 인터페이스 뿐만 아니라 자동 웹 크롤러(web crawler), 스파이더(spider) 등을 포함하는 다양한 수집 기술에 의해 생성될 수 있다. 이러한 기술들은 검색 서버 시스템(160) 상에서 구현되거나, 페이지 인덱스(170)를 생성하고 검색 서버 시스템(160)이 페이지 인덱스(170)를 이용할 수 있게 하는 별개의 시스템(도시되지 않음)에서 구현될 수 있다.
페이지 인덱스(170)에서의 엔트리(162)는 검색어, 이 검색어가 있는 페이지로의 링크(또는 다른 인코딩된 식별자) 및 그 페이지에 대한 컨텍스트 식별자(context identifier)를 포함한다. 컨텍스트 식별자는 서로 다른 문맥에서 서로 다른 의미를 가질 수 있는 검색어에 대한 유사한 결과를 그룹화하는데 사용될 수 있다. 예를 들어, 검색어 "java(자바)"는 자바 컴퓨터 언어, 인도네시아 자바 섬 또는 커피(종종 일상 회화에서 자바라고 함)를 말할 수 있다. 페이지에 대한 컨텍 스트 식별자는 유리하게도 이들 컨텍스트 중 어느 것이 적용가능한지를 가리킨다. 페이지 링크는 다수의 컨텍스트 식별자와 연관될 수 있으며, 따라서 동일한 페이지(또는 동일한 페이지로의 링크)가 다수의 컨텍스트에 디스플레이될 수 있다. 컨텍스트 식별자는 바람직하게는 사용자가 관련 검색을 수행할 때 시스템에 의해 자동적으로 페이지 링크와 연관되지만, 이 식별자는 또한 하나 이상의 인덱스 편집자들의 팀에 의해 수동으로 수정되고 링크와 연관될 수 있다. 이러한 방식으로, 많은 검색으로부터 수집된 지식은 디스플레이된 검색 결과가 요청측 사용자에게 보다 가치있고 유용하게 되도록 컨텍스트를 정의 및 재정의하기 위해 시스템으로 피드백될 수 있다.
검색 서버 시스템(160)은 클라이언트 시스템, 특히 검색 모듈(126)로부터 수신되는 다양한 검색 요청에 응답하여 데이터를 제공하도록 구성된다. 예를 들어, 검색 서버 시스템(160)은 (예컨대, 쿼리에서의 검색어의 출현 패턴에 의해 측정되는 논리적 관련성, 컨텍스트 식별자, 페이지 후원 등의 조합에 기초하여) 주어진 쿼리에 관련된 웹 페이지를 처리 및 정렬하는 검색 관련 알고리즘으로 구성될 수 있다. 본 발명의 실시예들에 따르면, 이러한 알고리즘은 개념 분석을 위한 알고리즘을 포함한다.
예를 들면, 본 발명의 일부 실시예들은 검색 쿼리 및/또는 결과를 분석하고 그 결과를 사용자의 컴퓨터(120)에 디스플레이하기 위한 컨텍스트로 그룹화한다. 예를 들어, 검색어 "java(자바)"에 대한 응답으로, 검색 서버 시스템(160)의 일부 실시예들은 3개(또는 다른 컨텍스트들이 식별되는 경우에는 3개 이상)의 컨텍스트 또는 단어 의미로 그룹화된 검색 결과, 즉 자바 컴퓨터 언어, 자바 섬 및 커피 자바를 반환한다. 이 시스템은 각각의 컨텍스트에 관련하여 제공된 링크와 세트로 결과를 디스플레이하도록 구성되거나, 어떤 링크도 없이 (사용자에게 컨텍스트를 구분할 충분한 정보가 제공하면서) 단지 컨텍스트만을 디스플레이하고 사용자로 하여금 관련된 링크를 디스플레이하도록 원하는 컨텍스트를 선택할 수 있게 할 수 있다. 예를 들어, 야후! 네트워크 시스템에서, 일련의 컨텍스트가 디스플레이될 수 있으며, 각각의 컨텍스트는 검색 인덱스로부터 페이지로의 일련의 링크, 후원된 매치와 관련된 링크, 디렉토리 매치와 관련된 링크 및 인사이드 야후!(IY) 매치와 관련된 링크를 갖는다.
"Java(자바)"와 같은 모호한 의미를 갖는 단어 또는 구문 이외에, 본 발명의 일부 실시예들은 결과를 꼭 모호하지는 않은 검색어에 대한 컨텍스트로 그룹화하도록 구성된다. 한 예는 검색어 "Hawaii(하와이)"에 대해 반환된 결과이다. 용어 "Hawaii"는 그 자체로서 모호하지 않을 수 있지만, 그러한 용어에 대하여 반환된 결과의 성질은 아주 광범위하고, 하와이에 대해 기술하거나 단지 언급하기만 하는 모든 사이트에 관계된다. 사용자에게 보다 유용한 결과를 제공하기 위해, 본 발명의 시스템은 바람직하게는 그 결과가 실제로 무엇에 관계되어 있는지에 대한 지식을 이용함으로써 검색 결과를 컨텍스트로 조직화한다. 예를 들어, 하와이의 경우, 본 시스템은 "하와이:여행", "하와이:기후", "하와이:지리", "하와이:문화" 등과 같은 다양한 컨텍스트 그룹으로 결과를 반환할 수 있다. 그러한 컨텍스트 식별자("여행", "기후" 등)는 전술한 바와 같이 페이지 인덱스 엔트리(162)에 저장될 수 있다.
본 명세서에서 기술된 검색 시스템이 예시적인 것이며 변경 및 수정이 가능하다는 것을 잘 알 것이다. 콘텐츠 서버 및 검색 서버 시스템은 단일 조직, 예컨대 Yahoo! Inc.에 의해 사용자에게 제공되는 것과 같은 분산 서버 시스템의 일부이거나, 개별적인 조직들의 일부일 수 있다. 각각의 서버 시스템은 일반적으로 적어도 하나의 서버 및 관련된 데이터베이스 시스템을 포함하며, 다수의 서버 및 관련된 데이터베이스 시스템을 포함할 수 있으며, 단일의 블록으로서 도시되어 있지만 지리적으로 분산될 수 있다. 예를 들어, 검색 서버 시스템의 모든 서버는 서로 근접하여(예컨대, 단일의 빌딩 또는 캠퍼스에 위치한 서버 팜에) 위치되거나 서로 멀리 분산될 수 있다(예컨대, 하나 이상의 서버는 A 도시에 위치하고 하나 이상의 서버는 B 도시에 위치함). 따라서, 본 명세서에서 사용되는 바와 같이, 전형적으로 "서버 시스템"은 국부적으로 또는 하나 이상의 지리적 장소에 걸쳐 분산된 하나 이상의 논리적 및/또는 물리적으로 연결된 서버를 포함하며, 용어 "서버" 및 "서버 시스템"은 상호교환가능하게 사용된다.
검색 서버 시스템은 하나 이상의 페이지 인덱스 및 클라이언트 시스템으로부터 수신된 검색 쿼리에 대한 응답으로 페이지 인덱스(들)에 액세스하고 검색 결과를 사용자에게 제공하기 위한 알고리즘으로 구성될 수 있다. 검색 서버 시스템은 페이지 인덱스 자체를 생성하거나, 다른 소스(예컨대, 별도의 서버 시스템)로부터 페이지 인덱스를 수신하거나, 또는 다른 소스로부터 페이지 인덱스를 수신하여 그에 대한 추가의 처리(예컨대, 컨텍스트 식별자의 추가 또는 갱신)를 수행할 수 있 다.
C. 개념 네트워크 및 슈퍼유닛
일 실시예에 따르면, 검색 서버 시스템(160) 상의 알고리즘은 보다 적절한 결과를 사용자에게 제공하기 위해 검색어의 개념 분석을 수행한다. 예를 들어, 검색 구문 "New York City(뉴욕시)"의 경우, 사용자가 뉴욕주 내의 임의의 다른 도시와 반대로 뉴욕시(도시 또는 지역)에 관련된 사이트에 관심있어 할 경우가 가장 많을 것이다. 마찬가지로, "New York City law enforcement(뉴욕시 법 집행)"의 경우, 사용자가 뉴욕시에서의 법 집행(예를 들어, 직업 구분)에 관계가 있는 사이트에 관심있어 할 경우가 가장 많을 것이다. 그러나, 대부분의 종래의 검색 엔진은 검색 구문에 나타나는 검색어의 순서에 상관없이 단순히 개개의 검색어 "New", "York", "City", "law" 및 "enforcement"를 사용하여 검색할 것이다. 다른 종래의 검색 엔진은 인덱스에도 역시 나타나는 검색 구문에서 가장 긴 서브문자열(substring)을 찾으려고 시도할 수 있다. 예를 들어, 인덱스가 "New York", "New York City" 및 "New York City law"를 포함하지만 "New York City law enforcement"를 포함하지 않는 경우, 검색 엔진은 "New York City law" 및 "enforcement"를 사용하여 검색할 것이고, 이는 반드시 사용자가 의도한 것이라고는 할 수 없으며, 최적의 결과를 생성하지 못할 가능성이 있다.
검색 서버 시스템(160)은 유리하게도 "New York City law enforcement" 등의 쿼리에서 개념 "New York City" 및 "law enforcement"를 검출하고 이들 2개의 개념에 대한 결과를 반환하도록 구성된다. 일부 실시예들에 따르면, 검색 서버(160)는 그의 구성 개념을 식별하기 위해 검색어가 쿼리에 제공되는 순서를 사용한다. 예를 들어, 검색 구문으로 "New York City law enforcement"를 사용할 때, 본 시스템은 예컨대 해싱(hashing)에 의해 검색 구문에서 2개의 개념으로서 "New York City" 및 "law enforcement"를 식별하고 이들 개념에 대한 결과를 반환한다. "law enforcement in New York City(뉴욕시에서의 법 집행)"에 대해 동일한 결과가 반환될 것이다. 그러나, "city law enforcement in New York(뉴욕에서의 도시 법 집행)"의 경우에, 개념 "law enforcement" 및 "New York" 및 "city", 또는 "city law enforcement" 및 "New York"에 기초하여 다른 결과가 반환될 것이다. 마찬가지로, "enforcement of law in New York City(뉴욕시에서의 법의 집행)"는, 개념 "New York City", "law" 및 "enforcement"를 포함하는 것으로 식별될 것이다. 따라서, 개념의 순서가 개념을 이루고 있는 검색어의 순서만큼 중요하지 않다. 일부 실시예들에 따르면, 개념이 페이지 인덱스에 (예컨대, 용어 및/또는 컨텍스트 식별자로서) 포함되거나 별도의 개념 인덱스가 구현될 수 있다. 유의해야 할 점은 "law enforcement"가 "enforcement of law"와 동일한 것으로, 즉 컨텍스트에 의존하지 않는 것으로 간주될 수 있다는 점이다. 일부 실시예에 따르면, 쿼리 내의 개념들은 유리하게도 알고 있는 개념(또는, "유닛")의 리스트를 포함하는 유닛 사전{unit dictionary}(172)을 참조하여 검출된다.
유닛 사전(172)은 유리하게도 얼마간의(바람직하게는 많은 수, 예를 들어 적어도 수십만의) 이전의 쿼리에 기초하여 개념 발견 프로세스(concept discovery process)에 의해 생성된다. 이하에서 그 예가 설명되는 개념 발견은 개념 네트워 크를 생성하기 위해 쿼리의 분석을 수반하며 검색 서버(160) 또는 기타 서버(도시되지 않음)에 의해 수행될 수 있다.
본 명세서에서 사용되는 바와 같이, "개념 네트워크"라는 용어는 개념들 간의 관계의 임의의 표현을 포괄한다. 예를 들어, 도 3은 소수의 개념들에 대한 개념 네트워크(300)의 그래픽 표현이다. 각각의 개념 또는 유닛(예컨대, "New", "York", "New York City" 등)은 네트워크의 "노드(node)"{예컨대, 노드(302)}이고 개념들 사이의 다양한 관계를 나타내는 "에지(edge)"{예컨대, 에지(304)}에 의해 다른 노드에 연결된다. 개념 네트워크는 다양한 관계를 포착할 수 있다. 도 3에 도시된 실시예에 따르면, 관계는 확장(extension){"ext"}, 연관(association){"assoc"} 및 대안(alternative){"alt"}을 포함하며, 본 명세서에 기술된 것에 부가하여 또는 그 대신에 다른 관계도 역시 포착될 수 있다.
본 명세서에서 사용되는 "확장"은 2개의 유닛을 연결(concatenation)하여 획득되는 문자열도 역시 유닛인 경우에 존재하는 2개의 유닛 사이의 관계이다. 예를 들어, 유닛 "new york" 및 "city"를 연결하여 획득되는 문자열은 "new york city"이며, 이도 역시 유닛이다. 확장 관계는 도 3에서 확장에 의해 관련된 2개의 유닛(예컨대, "new york"과 "city")을 연결하는 크로스바(crossbar)와 확장 유닛(예컨대, "new york city")에 연결되는 줄기(stem)를 가지는 "T" 접합(junction)으로 도시되고 있다.
본 명세서에서 사용되는 "연관"은 쿼리에 함께 나타나는 2개의 유닛 사이에 존재하는 관계이다. 예를 들어, 도 3은 유닛 "hotels(호텔)"가 유닛 "new york"과 "new york city"과 연관된 것임을 보여준다. 본 명세서에서 연관 유닛(associated unit)의 쌍은 "이웃(neighbor)"이라고도 하며, 유닛의 "이웃들(neighborhood)"은 그의 이웃의 집합이다. 유닛들 간의 연관 관계를 설정하기 위해서는, 최소 빈도수의 동시 발생이 요구될 수 있다. 유의해야 할 점은 연관에 의해 관련된 유닛들이 쿼리에서 서로 인접하여 나타날 필요가 없고, 연관 유닛들을 연결하여 획득되는 문자열이 유닛일 필요가 없다는 점이다. (서로 인접하여 나타나고 연결되어 획득된 문자열이 유닛인 경우, 확장 관계가 존재할 것이다. 따라서, 확장 관계는 연관의 특수한 유형으로 간주될 수 있다.)
제1 유닛의 "대안"은 동일한 표현의 다른 형태(선호되거나, 정정되거나, 또는 기타 변형된 형태일 수 있음)이다. 예를 들어, 도 3은 "motel"과 "hotel"이 대안임을 보여준다. 대안의 다른 예에는 "brittany spears"와 "britney spears"(서로 다른 스펠링), 또는 "belgian"와 "belgium"(서로 다른 품사)이 포함된다. 일련의 대안 유닛들 중에서, 하나는 예컨대 출현의 빈도수에 기초하여 "선호되는" 것으로 지정될 수 있다. 예를 들어, "britney spears"(팝 가수 이름의 정확한 철자)는 "brittany spears"과 같은 철자가 틀린 대안에 대한 선호되는 대안일 수 있다. 본 명세서에 기술된 실시예들은 대소자를 구별하지 않으며(case insensitive), 대문자 사용에 있어서만 서로 다른 용어들(예컨대, "Belgium" 및 "belgium")은 동일한 유닛을 가리키나, 다른 실시예들은 대소문자에 기초하여 유닛을 구분할 수 있으며 대문자 사용에 있어서만 다른 유닛들을 대안들로 식별할 수 있다.
일부 실시예들에 따르면, 개념 네트워크에서의 에지는 할당된 웨이트(도 3에 도시되지 않음), 즉 서로 다른 관계의 상대적 세기를 표현하는 수치(numerical value)일 수 있다. 예를 들어, 제1 유닛과 연관 유닛 간의 에지 웨이트는, 제1 유닛을 포함하는 모든 쿼리가 연관 유닛도 포함하는 비율, 또는 어느 한쪽 유닛을 포함하는 모든 쿼리가 다른 쪽 유닛도 포함하는 비율에 기초할 수 있다. 웨이트는 유리하게도 상대적인 세기를 반영하며, 따라서 웨이트는 원하는 임의의 방식으로 정규화(normalization)될 수 있다. 도 3은 예시적인 것이며, 서로 다른 유닛 또는 개념 간의 연결 또는 관계의 다른 표현은 물론 다른 관계 역시 사용될 수 있음을 알 수 있을 것이다. 본 명세서에서 사용되는 용어 "개념 네트워크"는 대안적인 표현들을 포괄한다.
또한, 본 발명의 실시예들에 따르면, 개념 네트워크에 나타나는 관계들은 "슈퍼유닛(superunit)" 내의 다양한 유닛들의 멤버십도 포함한다. 본 명세서에서 사용되는 용어 "슈퍼유닛"은 식별된 공통의 특성을 갖는 유닛들의 집합을 말한다. 식별된 공통의 특성(다수의 요소를 포함할 수 있음)은 다른 유닛이 슈퍼유닛에 속하는지 여부를 결정하는 데 사용될 수 있는 슈퍼유닛의 "서명(signature)"으로 표현된다. 일부 실시예들에 따르면, 서명은 또한 유닛의 특성과 서명 특성(들) 간의 유사성의 정도에 기초하여 각각의 멤버 유닛에 대한 "멤버십 웨이트"를 결정하는 데도 사용된다. 멤버십 웨이트의 역치(threshold membership weight)가 정의될 수 있으며, 슈퍼유닛은 멤버십 웨이트가 이 역치를 초과하는 유닛들만을 포함할 수 있다.
예를 들어, 하나의 슈퍼유닛은 도시들{예컨대, "New York City(뉴욕시)", "San Francisco(샌프란시스코)", "Chicago(시카고)" 등}로 이루어질 수 있고, 그의 서명은 도시의 이름과 관련하여 쿼리에 자주 나타나는 얼마간의 다른 유닛들{예컨대, "hotel(호텔)", "museum(박물관)", "mayor(시장)", "jobs(직업)" 등}을 포함할 수 있다. 새로운 유닛은 자신의 연관을 서명과 비교함으로써 그 유닛이 도시(즉, 슈퍼유닛의 멤버)인지 여부를 결정하도록 평가될 수 있다. 다른 예로서, 다른 슈퍼유닛은 서로에 대한 대안인 유닛들(예컨대, "britney spears", "brittany spears", "britney speers" 등)로 이루어질 수 있고, 그의 서명은 그 가수의 이름과 관련된 유닛들(예컨대, "photos(사진)", "mp3","tour(순회 공연)" 등)과 철자에서의 유사성을 나타내는 "편집 거리(edit distance)" 파라미터를 포함할 수 있다. 유사한 연관들을 갖지만 큰 편집 거리를 갖는 유닛(예를 들어, "barbra streisand" 또는 "celine dion")은 배제되지만, Britney Spears의 다른 철자 오류는 포함될 것이다. 쿼리로부터 슈퍼유닛 및 서명을 생성하는 특정의 기술이 이하에서 기술된다. 유닛의 다른 관계들과 마찬가지로, 다양한 유닛들에 대한 슈퍼유닛 서명 및 슈퍼유닛 멤버십 정보(예컨대, 멤버십 웨이트)가 유닛 사전(172)에 저장될 수 있다.
일부 실시예들에 따르면, 슈퍼유닛의 서명의 서로 다른 요소에 서로 다른 웨이트가 할당될 수 있다. 이 웨이트는 유리하게도 슈퍼유닛을 특징지우는데 있어서 서로 다른 서명 요소의 상대적인 유효성(relative effectiveness)을 반영하도록 선택된다.
검색 서버(160)는 유리하게도 쿼리에 대하여 응답함에 있어서, 예컨대 쿼리 에서의 유닛들이 어느 슈퍼유닛에 속하는지를 결정하고 사용자가 무엇을 가장 의도하였을지를 결정하기 위해 그 쿼리의 유닛들을 이 슈퍼유닛의 서명과 비교함으로써 슈퍼유닛 정보를 사용한다. 검색 서버(160)는, 예컨대 검색 결과를 조직화하고 관련된 검색을 제안하기 위해 가능성이 많은 사용자 의도에 관한 이 정보를 사용할 수 있다. 검색 서버(160)의 이러한 특징들은 이하의 섹션 Ⅲ에서 기술된다.
Ⅱ. 개념 분석 시스템
도 4는 본 발명의 일 실시예에 따른, 슈퍼유닛 생성을 포함하는 개념 발견 또는 개념 분석을 수행하는 시스템(400)의 블록도이다. 하나 이상의 쿼리 로그 파일(402){또는 실제 쿼리}이 유닛 사전(406)을 생성하는 쿼리 처리 엔진{쿼리 엔진이라고도 함}(404)에 의해 수신된다. 쿼리 엔진(404)은 검색 서버 시스템(160){도 2}의 컴포넌트 또는 검색 서버 시스템(160)과 통신하는 다른 시스템일 수 있다. 일 실시예에 따르면, 쿼리 엔진(404)은 개념 네트워크(CN) 빌더(410), 슈퍼유닛 시드 모듈(412) 및 슈퍼유닛 빌더(414)를 포함한다. CN 빌더(410)는 쿼리 로그 파일(402)의 내용을 분석하고, 유닛들, 유닛들 간의 관계(예를 들어, 확장, 연관 및 대안), 및 관계들에 대한 에지 웨이트를 포함하는 개념 네트워크(408)를 생성한다. 슈퍼유닛 시드 모듈(412)은 선택적으로 개념 네트워크(408)의 분석에 의해, 슈퍼유닛(본 명세서에서 "시드"라고 함)으로 유닛들을 예비 그룹화한다. 슈퍼유닛 빌더(414)는 다수의 슈퍼유닛을 생성하기 위해 슈퍼유닛 시드 모듈(412)에 의해 제공되는 시드를 사용하여 개념 네트워크(408)를 처리한다. 슈퍼유닛을 포함하는 유닛 및 그의 관계는 유닛 사전(406)에서 포착된다.
유닛 사전(406)은 임의의 포맷으로 구현되고 자기 디스크 또는 테이프, 콤팩트 디스크(CD)와 같은 광학 저장 매체 등을 포함하는 임의의 적절한 저장 매체에 저장될 수 있다. 유닛 사전(406)의 내용은 유리하게도 관계(예컨대, 확장, 연관, 대안) 및 CN 빌더(410)에 의해 생성되는 통계적 데이터(예컨대, 에지 웨이트) 및 슈퍼유닛 빌더(414)에 의해 결정되는 슈퍼유닛 멤버십(예컨대, 멤버십 웨이트)와 같은 각각의 유닛에 관한 부가 정보 뿐만 아니라 유닛들도 포함한다. 또한, 유닛 사전(406)은 슈퍼유닛과 관련된 서명의 파라미터와 같은 슈퍼유닛 자체에 관한 정보도 포함할 수 있다. 유닛 사전(406)에 저장된 정보는 차후의 검색에 응답하기 위해 검색 서버{예컨대, 도 2의 검색 서버(160)}에 의해 사용될 수 있다.
쿼리 로그 파일(402){또는 실제의 쿼리}는 인터넷 상에서 또는 다양한 네트워크 연결, 예컨대 LAN, WAN, 직접 링크, 배포 매체(예컨대, CD, DVD, 플로피 디스크) 등을 통해 다양한 소스로부터 수신될 수 있다. 소스의 예로는 검색 서버 시스템(160){도 2} 또는 검색 서버들의 분산 네트워크 내의 다수의 검색 서버(160) 및 하나 이상의 콘텐츠 서버(150)가 있다. 쿼리 로그 파일 소스는 전형적으로 동일한 조직 또는 개체, 예컨대 야후! 서버와 관련되지만, 꼭 그럴 필요는 없다. 쿼리 로그 파일(쿼리 로그라고도 함)은 정보 이론에서 사용될 수 있는 것과 같은 통계적 방법 또는 상호 정보(mutual information)와 같은 개념을 사용하여 쿼리 엔진(404)에 의해 처리된다. 일부 실시예들에 따르면, 원하는 바에 따라 상이한 시간 주기, 예컨대 시간, 주간 등에 대한 로그가 사용될 수 있으나, 일간(daily) 쿼리 로그가 사용된다. 쿼리 로그는 전형적으로 사용자에 의해 전송되는 실제 쿼리(예컨대, 텍 스트 문자열)를 포함하며, 또한 쿼리를 하는 사용자의 지리적 위치, 타임스탬프, 클라이언트 시스템의 IP 주소, 쿠키, 클라이언트의 유형(예컨대, 브라우저 유형) 등의 쿼리의 일부 또는 그 전부에 대한 부가 정보(본 명세서에서 "메타-정보(meta-information)"라고 함)도 포함할 수 있다. 예를 들어, 쿼리 로그 엔트리는 <쿼리_문자열, 메타-정보> 또는 <카운트, 쿼리_문자열>의 포맷일 있으며, 여기서 "카운트"는 출현 빈도수를 나타낸다. (빈도수는 원하는 바에 따라 정규화되거나 그렇지 않을 수 있다.)
A. 개념 네트워크 빌더
CN 빌더(410)는 개념 네트워크(408)를 생성하기 위해 쿼리 로그(402)를 처리한다. 바람직한 실시예에 따르면, CN 빌더(410)는 쿼리를 구성하는 하나 이상의 유닛을 식별하기 위하여 쿼리 내에서의 검색어의 순서를 사용한다. 예를 들어, 유닛은 단어(예컨대, "java") 또는 서로에 인접하여 빈번하게 나타나는 일군의 단어(예컨대, "new york city")일 수 있다. 유닛은 개념 네트워크에서의 노드(개념)에 대응한다.
또한, CN 빌더(410)는 확장(때로는 다른 단어 또는 유닛이 뒤따라 오고 때로는 그렇지 않은 하나의 단어 또는 유닛에 기초하여 검출될 수 있음), 연관(유닛들의 쌍의 출현 빈도수에 기초하여 검출될 수 있음), 및 대안("편집 거리", 즉 한 유닛을 다른 유닛으로 변환하는 데 필요한 철자 변화의 수에 기초하여 검출될 수 있음)과 같은 관계를 검출하기 위하여 유닛들을 분석한다. 유닛들 및 유닛들 간의 관계(연관, 확장 및 대안을 포함함)를 식별하는 특정의 기술은 상기 참조된 미국 특허 출원 제10/713,576호에 상세히 기술되어 있다. 또한, CN 빌더(410)가 개념 네트워크(408)를 생성하기 위해 상기 미국 특허 출원에 기술된 것에 부가하여 또는 그 대신에 다른 기술도 구현할 수 있음을 잘 알 것이다.
개념 네트워크(408)의 표현은 유닛 사전(406)에 저장될 수 있다. 일부 실시예들에 따르면, 이 표현은 각각의 유닛에 대한 일련의 관계 및 웨이트와 함께 유닛들을 포함한다. 이 정보를 유닛 사전(406)에 표현하기 위해 다양한 데이터 압축 기술이 사용될 수 있다.
B. 슈퍼유닛 시드 모듈
슈퍼유닛 시드 모듈(412)은 하나 이상의 시드를 생성하며, 이 시드로부터 슈퍼유닛이 구성될 수 있다. 본 명세서에서, "시드"는 단일의 유닛 또는 하나 이상의 공통된 특색을 갖는 유닛들의 리스트일 수 있다. 슈퍼유닛 시드 모듈(412)은 시드를 생성하기 위해 다양한 기술들을 사용할 수 있다. 이러한 기술들 중 4가지 예, 즉 (1) 개념 네트워크(408)의 분석, (2) 외부 소스의 참조, (3) 사용자 거동의 분석, 및 (4) 검색 코퍼스(search corpus) 내의 문서의 분석에 대해 지금부터 설명한다. 또한, 단일의 유닛이 시드로 사용될 수 있고, 슈퍼유닛 시드 모듈(412)이 (예컨대, 출현의 빈도수, 이웃들의 크기 또는 어떤 다른 기준에 기초하여) 개념 네트워크(408)로부터 시드로 사용될 얼마간의 유닛을 단순히 선택할 수 있음을 잘 알 것이다.
1. 개념 네트워크에 기초한 시드(클러스터 및 클리크 )
일 실시예에 따르면, 슈퍼유닛 시드 모듈(412)은 시드로서 사용될 수 있는 클러스터(즉, 관련된 유닛들의 그룹)를 생성하기 위해 개념 네트워크(408)를 사용하여 쿼리에 대한 추가적인 분석을 수행한다. 이 실시예에 따르면, 클러스터는 유사한 이웃들(즉, 관련된 유닛들의 집합)을 가지는 상이한 유닛들(클러스터의 "멤버")을 식별함으로써 유닛들로부터 생성된다. 클러스터는 슈퍼유닛 생성을 위한 시드로서 사용될 수 있으며, 알게 되는 바와 같이, 클러스터 자체도 역시 슈퍼유닛일 수 있다.
예를 들어, 사용자가 좋아하는 가수에 관한 정보를 검색하는 경우를 고려해 보자. 전형적으로, 이 사용자들은 가수의 이름(예컨대, "Avril Lavigne" 또는 "Celine Dion" 또는 "Matchbox Twenty") 및 "lyrics(가사)", "mp3", "guitar tab(기타 타브)", "discography(디스코그래피)" 등과 같은 찾는 정보의 유형을 반영하는 기타 단어들을 포함하는 쿼리를 작성하게 되며, 이러한 기타 단어들은 다른 가수의 이름과 함께 나타나는 경향이 있는 이웃 유닛이다. 유사한 이웃 유닛의 출현에 기초하여, 슈퍼유닛 시드 모듈(412)은 가수 이름들을 클러스터로 그룹화한다.
보다 구체적으로, 도 5는 개념 네트워크(408)로부터 클러스터를 생성하기 위해 슈퍼유닛 시드 모듈(412)에 의해 수행될 수 있는 프로세스(500)의 흐름도이다. 단계(502)에서, 개념 네트워크(408)는 슈퍼유닛 시드 모듈(412)에 제공된다.
단계(503)에서, 클러스터를 형성하기 위한 기본 유닛(base unit)이 선택된다. 일부 실시예들에 따르면, 개념 네트워크 내의 모든 유닛은 기본 유닛으로 사용될 수 있다. 다른 실시예들에 따르면, 기본 유닛은 예컨대 적어도 어떤 최소 빈도수로 출현하는 유닛으로 제한될 수 있다. 상이한 기본 유닛을 사용하여 프로세 스(500)를 반복함으로써 다수의 클러스터가 생성될 수 있다는 것을 알 수 있을 것이다.
단계(504)에서, 개념 네트워크(408) 내의 다른 하나의 유닛이 기본 유닛을 갖는 클러스터에 포함되기 위한 후보 유닛(candidate unit)으로 선택된다. 모든 유닛의 쌍을 선택하기 위해 반복적 절차가 사용될 수 있거나 어떤 조건을 만족시키는 유닛으로 선택이 제한될 수 있다. 예를 들어, 일 실시예에 따르면, 개념 네트워크(408)는 다양한 이웃 유닛 및 특정 유닛의 연관을 포함한다. 이 실시예에 따르면, 단계(504)는 중첩(overlap)의 정도를 결정하기 위해 제2 유닛과 기본 유닛의 이웃들을 비교하는 단계를 포함한다. 중첩이 아주 적은 경우, 제2 유닛은 후보 유닛이 되지 않는다. 이 실시예에 따르면, 고려할 유닛의 선택은 기본 유닛 B에서 시작하고 이웃 유닛 A를 찾고 이어서 역시 A의 이웃인 제3 유닛 C를 찾음으로써 간단화된다. 유닛 B 및 C의 이웃들을 비교하여 유닛 C가 유닛 B를 갖는 클러스터에 포함될 후보 유닛으로 선택되는지 여부를 결정한다. 이 절차는 가능한 후보 유닛의 집합을, 기본 유닛과 공통으로 적어도 하나의 이웃을 갖는 유닛으로 감소시킨다.
단계(506)에서, 기본 유닛 및 후보 유닛 둘 다와 함께 출현하는 이웃 유닛들의 경우가 식별된다. 예를 들어, "Avril Lavigne" 및 "Matchbox Twenty"가 기본 유닛 및 후보 유닛인 경우, 이웃 유닛들은 공통으로 "lyrics(가사)", "discography(디스코그래피)" 등을 포함할 수 있다. 기본 유닛 및 후보 유닛과 함께 나타나는 이웃 유닛들은 본 명세서에서 "매치된" 유닛(matched unit)이라고 한 다.
단계(508)에서, 매치된 유닛을 포함하는 이웃 유닛에 기초하여 후보 유닛에 대한 클러스터링 웨이트(clustering weight)가 계산된다. 이 클러스터링 웨이트는 후보 유닛과 기본 유닛 사이의 유사성의 척도이며, 이는 다양한 방식으로 계산될 수 있다. 클러스터링 웨이트를 계산하는 적절한 알고리즘의 5개의 예가 이제부터 기술되며, 당업자라면 다른 알고리즘도 역시 사용될 수 있음을 잘 알 것이다.
예 1: 한 알고리즘은 유사성의 척도로서 매치된 유닛의 수를 고려한다. 유닛 u1 및 u2에 대한 클러스터링 웨이트는 이하의 수학식 1과 같이 정의된다.
Figure 112006031694980-PCT00001
여기서, NC는 매치된 유닛의 수이고, NT는 유닛 u1에 대한 이웃 유닛의 총 수와 유닛 u2에 대한 이웃 유닛의 총 수 중 더 큰 것이다.
변경들이 가능하다. 예를 들어, NT는 (더 큰 것 대신에) 2개의 총 수 중 더 작은 것, 또는 2개의 총 수의 평균으로 정의될 수 있다.
예 2: 두번째 알고리즘은 모든 매치된 유닛에 대한 빈도수(및 유닛에 대해 이웃 유닛이 얼마나 중요한지)를 고려한다. 유닛 u1 및 u2에 대한 클러스터링 웨이트는 이하의 수학식 2와 같이 정의된다.
Figure 112006031694980-PCT00002
여기서, FM은 모든 매치된 유닛 si들에 대해 유닛 si가 유닛 u1과 함께 나타나는 빈도수 및 유닛 si가 유닛 u2와 함께 나타나는 빈도수의 합이고, FT는 매치되거나 그렇지 않은 모든 이웃 유닛들에 대한 동일한 빈도수들의 합이다.
예 3: 상대적인 빈도수(relative frequency)는, 매치된 유닛이 유닛 u1 및 u2와 함께 나타나는 상대적인 빈도수가 서로 다른 경우에 불이익(웨이트의 감소)이 부과되는 대안적인 중요성 척도이다. 이 예에 따르면, R1i 및 R2i는 유닛 u1 및 u2 각각에 있어서의 이웃 유닛 si의 상대적인 빈도수로서 정의된다. 클러스터링 웨이트는 이하의 수학식 3에 의해 주어진다.
Figure 112006031694980-PCT00003
여기서, 합은 매치된 유닛들 si에 대해 취해지고, P는 상대적인 빈도수의 차이에 웨이트를 주는 불이익 인자(penalty factor)이다. P의 값은 변동될 수 있으며, 일 실시예에 따르면 P = 2이다.
예 4: 빈도수(순위)의 내림 차순으로 이웃 유닛들을 비교하는 것은 중요성을 측정하는 다른 방식이다. 예 3과 유사하게, 매치된 유닛의 순위의 임의의 차이에 대해 불이익이 부과된다. 각각의 매치된 유닛 si는 2개의 순위 Q1i 및 Q2i를 할당받으며, 이는 각각 유닛 u1 및 u2에서의 그의 순위를 나타낸다. 클러스터링 웨이트는 이하의 수학식 4에 의해 주어진다.
Figure 112006031694980-PCT00004
여기서, M은 유닛 u1에 대한 이웃 유닛의 총 수 및 유닛 u2에 대한 이웃 유닛의 총 수 중 더 작은 것이고, 매치된 유닛들 si에 대해 합이 취해진다.
예 5: 전술한 알고리즘과는 달리, 이 알고리즘은 이웃 유닛의 판별력(discriminatory power)을 고려한다. 임의의 유닛 u에 대한 "관련성(relevance)"은 유닛이 쿼리 (fu)에서 하나 이상의 다른 유닛(임의의 유닛일 수 있음)과 함께 나타나는 빈도수를 유닛이 쿼리(fq)에서 단독으로 나타나는 빈도수와 비교함으로써 정의될 수 있다. 한 척도에 따르면, 관련성은
Figure 112006031694980-PCT00005
에 의해 주어진다.
이 관련성 척도는 클러스터링 웨이트를 계산하기 위해 전술한 상대적인 빈도수의 개념과 결합될 수 있다. "스코어(score)"
Figure 112006031694980-PCT00006
가 그의 상대적인 빈도수에 기초하여 각각의 매치된 유닛 si에 부여된다. 구체적으로는,
Figure 112006031694980-PCT00007
이 고, 여기서 R1i 및 R2i는 상기 예 3에서와 같이 정의된다. 클러스터링 웨이트는 이하의 수학식 5에 의해 주어진다.
Figure 112006031694980-PCT00008
상수 C의 값은 경험적 분석에 기초하여 최적화될 수 있으며, 일 실시예에 다르면 C = 0.5이다.
도 5로 돌아가서, 단계(510)에서, 후보 유닛을 기본 유닛을 갖는 클러스터에 포함할지 여부에 관한 결정이 행해진다. 예를 들어, 유닛은 그의 클러스터링 웨이트가 너무 낮은 경우 클러스터로부터 배제될 수 있다.
일부 실시예들에 따르면, 클러스터링은 유닛들의 쌍들로 종료될 수 있다. 다른 실시예들에 따르면, 다른 후보 유닛을 선택하고 단계(506, 508, 510)를 반복함으로써 더 큰 클러스터가 형성된다. 또 다른 실시예들에 따르면, 더 큰 클러스터를 생성하기 위해 기본 유닛 대신에 2개 이상의 유닛의 클러스터가 사용될 수 있다. 클러스터가 기본 유닛으로서 사용되는 경우, 그의 이웃들은 다양한 방식으로, 예컨대 멤버 유닛들의 이웃들의 합집합 또는 교집합으로서, 적어도 어떤 최소 비율(예컨대, 25%, 50%, 80%)의 멤버 유닛들의 이웃인 유닛들의 집합으로서 정의될 수 있다. 클러스터는 크기에 상관없이 슈퍼유닛 시드로서 사용될 수 있다.
일부 실시예들에 따르면, 클러스터는 멤버 유닛들 간의 더 강한 또는 더 밀접한 관계를 갖는 "클리크(clique)"로 추가로 정제(refine)될 수 있다. 일 실시예 에 따르면, "클리크"는 모든 멤버 유닛이 다른 모든 멤버 유닛으로부터 형성된 클러스터에 존재하는 것인 유닛들의 집합이다. 클리크는 다양한 목적으로, 예컨대 철자 오류와 대안적인 단어 형태를 구분하기 위해, 또는 클러스터가 그 주변에 형성된 기본 유닛의 상이한 단어 의미를 구분하기 위해 사용될 수 있다. 예를 들어, 기본 유닛이 "New York"인 클러스터는 다른 도시의 이름(예컨대, "Boston(보스톤)", "Seattle(시애틀)" 등)인 유닛들을 포함할 수 있고, 동일 도시의 대안적인 이름(예컨대, "NY", "NYC")인 유닛들도 포함할 수 있다. 이러한 유닛들로부터, 다른 도시들("New York", "Boston", "Seattle")을 포함하는 클리크 및 "New York City"에 대한 대안적인 이름들("New York", "NYC", "NY")을 포함하는 클리크가 형성될 수 있다.
다른 예로서, 기본 유닛 "Yahoo(야후)"를 갖는 클러스터는 다른 이메일 제공자의 이름들{예컨대, "AOL", "Hotmail(핫메일)"}과 다른 검색 엔진의 이름들{예컨대, "Google(구글)"}을 포함할 수 있다. 기본 유닛 "Google"을 갖는 클러스터는 "Yahoo"를 포함하지만 "AOL" 또는 "Hotmail"을 포함하지 않을 수 있다. 따라서, "Yahoo" 및 "Google"은 한 클리크의 멤버일 수 있고, "Yahoo", "AOL" 및 "Hotmail"은 다른 클리크의 멤버일 수 있다.
도 6은 본 발명의 일 실시예에 따라 일군의 클러스터로부터 멤버 유닛 qk를 갖는 클리크 Q를 형성하는 데 사용될 수 있는 프로세스(600)의 흐름도이다. 이러한 예에 따르면, N개의 클러스터가 형성되고, 각각은 서로 다른 기본 유닛 bi
Figure 112006031694980-PCT00009
를 갖는다. 이 클러스터는 본 명세서에서
Figure 112006031694980-PCT00010
로 표시되고, 클러스터
Figure 112006031694980-PCT00011
의 멤버인 유닛 u는
Figure 112006031694980-PCT00012
로 표시된 클러스터링 웨이트를 가지며, 이 웨이트는 예컨대 이상에서 주어진 수학식들 중 임의의 것을 사용하여 계산될 수 있다. (클러스터
Figure 112006031694980-PCT00013
에 있지 않은 유닛 u의 경우, 웨이트
Figure 112006031694980-PCT00014
는 0의 값을 할당받을 수 있다.) 주어진 유닛이 다수의 클러스터
Figure 112006031694980-PCT00015
의 멤버일 수 있고, 일부 경우에 클러스터
Figure 112006031694980-PCT00016
가 기본 유닛 bi로만 구성될 수 있음을 잘 알 것이다. 프로세스(600)에서, 멤버 qk를 갖는 클리크
Figure 112006031694980-PCT00017
는 클리크
Figure 112006031694980-PCT00018
의 제1 멤버로서 기본 유닛 bi로부터 시작하여, (1) 클리크 Q의 모든 멤버 qk가 클러스터
Figure 112006031694980-PCT00019
의 요소들이고, 또한 (2) 유닛 uj가 클리크 Q의 각각의 멤버 qk에 대한 클러스터
Figure 112006031694980-PCT00020
의 요소인,
Figure 112006031694980-PCT00021
의 다른 유닛 uj를 찾아냄으로써 형성된다.
보다 구체적으로는, 단계(602)에서, 하나의 멤버 bi를 갖는 클리크 Q가 생성된다. 단계(604)에서, 클러스터
Figure 112006031694980-PCT00022
의 그 다음 멤버 유닛 uj가 획득된다. 단계(606)에서, 클러스터
Figure 112006031694980-PCT00023
가 획득된다. 단계(608)에서, 클리크 Q의 모든 멤버가 클러스터
Figure 112006031694980-PCT00024
의 멤버인지 여부가 결정된다. '아니오'인 경우, 유닛 uj는 클리크 Q에 추가되지 않으며, 프로세스(600)는 단계(616)로 점프한다. 그렇지 않은 경우, 단계(610)에서, 클리크 Q의 각각의 멤버 qk에 대해, 클러스터
Figure 112006031694980-PCT00025
가 획득된다. 단계(612)에서, 유닛 uj가 단계(610)에서 획득된 각각의 클러스터
Figure 112006031694980-PCT00026
에 있는지 여부가 결정된다. 단계(610) 및 단계(612)는 클리크 Q의 멤버 qk에 걸쳐 반복하여 수행될 수 있거나, 다수의 멤버 qk에 대한 클러스터들이 병렬로 테스트될 수 있다. 유닛 uj가 단계(610)에서 획득된 모든 클러스터
Figure 112006031694980-PCT00027
에 있지 않은 경우, uj는 클리크 Q에 추가되지 않으며, 프로세스(600)는 단계(616)로 점프한다. 유닛 uj가 모든 클러스터
Figure 112006031694980-PCT00028
에 있는 경우, 단계(614)에서 유닛 uj는 클리크 Q에 추가된다.
단계(616)에서, 유닛 uj가 클리크 Q에 추가되었는지 여부에 상관없이, 클러스터
Figure 112006031694980-PCT00029
에 유닛 uj가 더 남아 있는지 여부가 결정된다. '예'인 경우, 프로세스(600)는 단계(604)로 되돌아가서 그 다음 멤버 유닛 uj를 처리한다.
모든 유닛 uj가 처리된 후에, 단계(618)에서, 클리크 Q의 각각의 멤버 qk에 대한 멤버십 스코어가 결정된다. 일 실시예에 따르면, 이 스코어는 클리크 Q의 각각의 다른 멤버 유닛에 기초하여 클러스터에서의 유닛 qk의 클러스터링 웨이트들을 가산함으로써 계산된다. 즉, 이하의 수학식 6과 같다.
Figure 112006031694980-PCT00030
여기서,
Figure 112006031694980-PCT00031
는 클러스터
Figure 112006031694980-PCT00032
의 멤버로서의 유닛 qk에 대한 클러스터링 웨이트를 나타낸다. 클리크 멤버십 스코어를 할당하는데 다른 식들도 역시 사용될 수 있다. 일부 실시예들에 따르면, 클리크 멤버는 스코어 내림차순 또는 올림차순으로 정렬될 수 있다.
본 명세서에 기술된 프로세스가 예시적인 것이며 변경 및 수정이 가능함을 잘 알 것이다. 순차적인 것으로 기술된 단계들은 병렬적으로 실행될 수 있고, 단계들의 순서가 변경될 수 있으며, 단계들이 수정 또는 조합될 수 있다. 예를 들어, 유닛을 클리크에 추가하는 조건은, 예컨대 (단계 608에서) 클리크 Q의 멤버들 qk 중 비율 f1 이상이 클러스터
Figure 112006031694980-PCT00033
의 요소이거나 (단계 612에서) uj가 클러스터
Figure 112006031694980-PCT00034
의 비율 f2 이상의 요소일 것을 요구하는 것으로 완화될 수 있다. 비율 f1 및/또는 f2는 원하는 바에 따라 선택될 수 있으며, 예컨대 50%, 70%, 90% 등일 수 있고, 이 2개의 비율은 다양한 실시예들에서 같거나 같지 않을 수 있다. 프로세스(600)는 다수의 클리크를 생성하기 위해 상이한 기본 유닛 bi으로 반복될 수 있다. 클리크가 생성되는 경우, 클리크는 클러스터 대신에 슈퍼유닛 시드로 사용될 수 있거나, 클리크와 클러스터의 조합이 슈퍼유닛 시드로 사용될 수 있다.
2. 외부 소스에 기초한 시드
다른 실시예에 따르면, 슈퍼유닛 시드 모듈(412)은 하나 이상의 외부 소스(도 4에 블록(416)으로 일반적으로 도시되어 있음)를 참조하여 시드를 생성한다. 외부 소스의 예는 편집자 또는 편집 팀에 의해 생성된 관련 용어의 리스트(예컨대, 인기있는 가수의 리스트 또는 그 팀이 알고 있는 자동차 제조업자의 리스트), 권위있는 웹 사이트(예컨대, 질병의 사전 또는 기타 리스트를 보유하는 의학 참고 사이트) 등을 포함한다. 이 실시예에 따르면, 슈퍼유닛 시드 모듈(412)은 외부 소스 데이터에 대한 처리를 거의 수행하지 않거나 전혀 수행하지 않을 수 있다. 예를 들어, 단어들의 리스트가 편집 팀에 의해 제공되는 경우, 슈퍼유닛 시드 모듈(412)은 단지 그 리스트를 슈퍼유닛 빌더(414)로 전달할 수 있다. 또한, 슈퍼유닛 시드 모듈(412)은 개념 네트워크(408) 내의 유닛이 아닌 임의의 엔트리를 제거하기 위해 그 리스트를 프루닝할(prune) 수 있다. 유의해야 할 점은 그러한 슈퍼유닛 시드가 완전한 리스트일 필요는 없으며 적은 수(예컨대, 2개, 5개 또는 10개)의 유닛을 포함할 수 있다는 점이다.
3. 사용자 거동에 기초한 시드
세번째 실시예에 따르면, 슈퍼유닛 시드 모듈(412)은 사용자 거동을 분석함으로써 시드를 생성한다. 예를 들어, 검색 서버{예컨대, 도 2의 서버(160)}는 검색 결과 페이지를 클라이언트(120)에 제공하는 것으로 쿼리에 응답할 수 있다. 검색 결과 페이지는 "히트(hit)"(쿼리와 관련이 있는 콘텐츠를 포함하는 웹 페이지 또는 사이트로의 링크)의 리스트를 포함한다. 히트의 리스트는 예컨대 페이지 제목, 관련 콘텐츠를 보여주는 요약, 및/또는 다른 정보를 포함할 수 있다. 사용자 는 그 리스트를 검토하고 예컨대 디스플레이된 링크를 클릭함으로써 히트를 선택한다. {링크 및 클릭이 요구되는 것은 아님을 잘 알 것이지만, 이 행동은 "클릭 쓰루(click-through)"라고 불린다.} 쿼리 로그(402)는 사용자가 검색 결과 페이지(들)로부터 어느 링크(들)를 따라갔는지를 나타내는 일부 또는 전부의 쿼리에 대한 클릭-쓰루 데이터를 제공할 수 있다. 슈퍼유닛 시드 모듈(412)은 이 데이터를 수신하고 다른 쿼리를 입력한 사용자가 동일 페이지에 이르기까지 클릭(클릭 쓰루)한 경우를 식별할 수 있다. 이러한 사용자 거동은 쿼리들 간의 공통점을 암시하고, 시드 모듈(412)은 유사한(또는 동일한) 클릭-쓰루 거동을 갖는 쿼리들(또는 그 중 선택된 유닛)을 시드로 그룹화할 수 있다. 시드 모듈(412)은 유리하게도 페이지의 관련성을 암시하는 거동의 패턴이 검출될 때만(예컨대, 어떠한 최소 빈도수로 특정의 페이지로의 클릭쓰루가 일어나는 때) 쿼리들(또는 유닛들)을 그룹화하도록 구성된다.
4. 문서 분석에 기초한 시드
네번째 실시예에 따르면, 시드 모듈(412)은 검색 코퍼스에서의 하나 이상의 "소스" 문서(예컨대, 웹 검색 실시예의 경우 웹 페이지)의 분석에 의해 시드를 생성한다. 이 실시예에 따르면, 시드 모듈(412)은 유닛들이 동일 문서에 나타나는 것에 기초하여 유닛들 간의 공통점을 추론한다(infer). 예를 들어, 시드 모듈(412)은, 예컨대 텍스트 문자열을 유닛 사전(406) 내의 엔트리 또는 개념 네트워크(408) 내의 유닛(노드)에 매치시킴으로써 문서를 구성 유닛들로 분석(parsing)할 수 있다. 일 실시예에 따르면, 문서에서 찾아진 모든 유닛이 수집되어 단일의 시 드 리스트로 만들어진다. 다른 실시예에 따르면, 이 유닛들은, 예컨대 최소 출현 빈도수를 요구하거나, 유닛들의 쌍(또는 더 큰 그룹)이 서로 근접하여 출현하는 경우에만 그 쌍(또는 더 큰 그룹)을 포함함으로써 필터링된다. 그 결과 얻어지는 유닛의 리스트는 슈퍼유닛 시드로서 사용될 수 있다. 문서 분석은 다수의 소스 문서를 사용하여 수행될 수 있고, 분석할 문서를 자동적으로 또는 수동적으로 선택하기 위해 다양한 기준이 사용될 수 있다.
시드 모듈(412)의 상기한 실시예들이 예시적인 것이고 제한적인 것이 아님을 잘 알 것이다. 시드는 상기한 기술들 또는 다른 기술들 중 임의의 하나 이상을 사용하여 또는 기술들의 조합에 의해 생성될 수 있다. 또 다른 실시예에 따르면, 각각의 유닛(또는 유닛들의 각각의 일부 서브셋, 예컨대 가장 빈번한 것)은 개별적인 시드로서 사용될 수 있다.
C. 슈퍼유닛 빌더
시드가 어떻게 생성되느냐에 상관없이, 시드 모듈(412)은 슈퍼유닛 빌더(414)에 시드를 제공하고, 슈퍼유닛 빌더(414)는 슈퍼유닛을 구성하기 위하여 CN 빌더(410)에 의해 생성된 개념 네트워크(408) 및 시드를 사용한다. 일부 실시예에 따르면, 슈퍼유닛은 서명(즉, 시드 내의 유닛이 공통으로 갖는 경향이 있는 하나 이상의 관계)을 식별하는 단계, 이 서명에 매치하는 개념 네트워크 내의 부가적인 유닛들을 검색하는 단계, 이 유닛들을 슈퍼유닛에 추가하는 단계, 및 슈퍼유닛의 현재 내용을 반영하기 위해 이 서명을 수정하는 단계의 반복적인 프로세스에 의해 작성된다.
보다 구체적으로, 도 7은 본 발명의 일 실시예에 따라 슈퍼유닛 빌더(414)에서 구현될 수 있는 슈퍼유닛을 생성하는 프로세스(700)의 흐름도이다. 단계(702)에서, 슈퍼유닛 빌더(414)는 시드 모듈(412)로부터 시드를 수신한다. 이 시드는 초기의 슈퍼유닛으로서 취급된다.
단계(704)에서, 이 (초기의) 슈퍼유닛에 대한 서명이 결정된다. 이 서명은 유리하게도 슈퍼유닛의 하나 이상의 멤버 유닛과 관계가 있는 일련의 유닛에 기초하여 정의되며, 서명 유닛 중 어느 것도 슈퍼유닛의 멤버가 아니다. 예를 들어, 슈퍼유닛 빌더(414)는 개념 네트워크(408)에서 슈퍼유닛의 멤버 유닛을 찾아내고, 어느 이웃 유닛이 멤버 유닛에 공통된 것인지(또한, 그 자체는 멤버 유닛이 아닌지)를 결정하기 위해 각각의 멤버 유닛의 이웃 유닛들을 비교한다. 일 실시예에 따르면, 서명 유닛은 유리하게도 두가지 기준, 즉 (1) 다수의 슈퍼유닛이 서명 유닛의 이웃일 가능성, 및 (2) 서명 유닛의 이웃이 슈퍼유닛의 멤버일 가능성에 기초하여 선택된다. 이러한 기준은 슈퍼유닛의 멤버와 비멤버 간의 효과적인 구분자(discriminator)인 경향이 있는 서명 유닛을 식별한다.
제1 기준의 예로서, 서명 유닛은 적어도 5%(또는 10% 또는 50%)의 멤버 유닛들과 특정의 관계를 가질 필요가 있을 수 있거나, 또는 서명 유닛의 어떤 비율의 멤버 유닛에 대한 관계가 최소의 에지 웨이트를 가져야 할 필요가 있을 수 있거나, 또는 서명 유닛과 멤버 유닛들 간의 에지 웨이트의 합이 어떤 역치를 초과할 필요가 있을 수 있다. 일부 실시예들에 따르면, 이 서명 유닛은 슈퍼유닛 및 각각의 서명 유닛의 멤버 유닛들 간의 관계에 대한 평균 에지 웨이트(또는 에지 웨이트의 분포)를 반영할 수 있는 웨이트 한계와 관련된다.
제2 기준의 예로서, 최소 비율의 서명 유닛의 이웃 유닛이 슈퍼유닛의 멤버일 필요가 있을 수 있거나, 서명 유닛과 멤버 유닛 간의 관계들에 대한 에지 웨이트 대 서명 유닛과 비멤버 유닛 간의 관계들에 대한 에지 웨이트가 특정의 관계를 만족시킬 필요가 있을 수 있다. 서명 정의에 대한 추가의 예가 이하에서 기술된다.
단계(706)에서, 후보 유닛, 즉 슈퍼유닛 또는 서명이 아닌 유닛이, 서명과 매치하는지 여부를 결정하기 위해 평가된다. 후보 유닛의 서명 유닛에 대한 관계가 사전 설정된 기준을 만족시키는 경우, 그 후보 유닛은 서명과 매치한다. 예를 들어, 후보 유닛은 그의 관계가 서명과 얼마나 밀접하게 매치하는지를 반영하는 멤버십 스코어를 부여받을 수 있다. 이 스코어는 다양한 방식으로 계산될 수 있으며, 최소 스코어가 "매치" 기준으로서 부과될 수 있다. 일 실시예에 따르면, 멤버십 스코어는 후보 유닛에 관련된 서명 유닛의 비율에 기초하며, 최소 스코어는 50%(또는 40% 또는 90% 등)이다. 다른 실시예들에 따르면, 서명 유닛이 웨이트 한계와 관련된 경우, 후보의 관계의 에지 웨이트가 웨이트 한계 내에 있는 서명 유닛의 비율에 기초하여 후보가 평가될 수 있다. 또 다른 실시예에 따르면, 클러스터링 프로세스(도 5) 동안에 2개의 유닛의 유사성을 결정하기 위한 전술한 알고리즘 또는 기타 적절한 알고리즘 중 임의의 것은, 슈퍼유닛을 다른 후보 유닛으로 사용하고 서명 유닛을 슈퍼유닛에 대한 이웃 유닛으로 사용하여, 후보 유닛에 대한 멤버십 스코어를 결정하도록 구성될 수 있다.
평가될 후보 유닛의 선택은, 예컨대 하나 이상의 서명 유닛에 직접적으로 관련된 유닛만을 고려함으로써 단순화될 수 있다. 전술한 바와 같이, 이미 슈퍼유닛 또는 서명의 멤버인 유닛들은 후보의 리스트로부터 배제될 수 있다.
단계(708)에서, 서명과 매치하는(예컨대, 어떤 임계값을 초과하는 멤버십 스코어를 갖는) 임의의 후보 유닛이 슈퍼유닛에 추가된다. 단계(710)에서, 갱신된 슈퍼유닛에 대해 새로운 서명이 생성된다. 단계(710)는 유리하게도 단계(704)와 동일한 서명 생성 기술을 사용하며, 따라서 새로운 서명과 이전의 서명 간의 차이는 슈퍼유닛에서의 변경된 멤버십에 기인한다.
단계(712)에서, 슈퍼유닛은 새로운 서명과 매치하지 않는 임의의 멤버 유닛을 제거함으로써 정화(purge)된다. 단계(712)는 유리하게도 단계(706)와 동일한 매치 기준을 사용한다. 일부 실시예들에 따르면, 시드 유닛은 테스트되고 단계(712)에서 임의의 다른 멤버 유닛으로 정화되며, 다른 실시예들에 따르면 시드 유닛은 정화되지 않는다. 또 다른 실시예들에 따르면, 슈퍼유닛 멤버십이 증가되지만 감소되지는 않도록 단계(712)가 생략된다.
단계(714)에서, 슈퍼유닛이 수렴되었는지 여부가 결정되고, '아니오'인 경우 프로세스는 단계(706)로 되돌아가 서명에 기초하여 슈퍼유닛을 갱신하는 단계 및 이어서 그 서명을 갱신하는 단계를 반복한다. 슈퍼유닛 또는 그의 서명 중 어느 하나(또는 둘 다)의 멤버십이 반복 동안에 변하지 않았을 때 수렴이 일어난다. 일부 실시예들은 수렴에 대한 완화된 조건을 이용할 수 있으며, 그에 따라 슈퍼유닛 또는 서명에서의 충분히 작은 변화가 일어날 때 수렴이 발견될 수 있게 된다.
단계(716)에서, 슈퍼유닛이 수렴되었으면, 새로운 슈퍼유닛이 유닛 사전(406)에 추가된다. 예를 들어, 슈퍼유닛은 멤버 유닛들의 벡터 및 멤버십 웨이트들의 벡터(각각의 멤버에 대한 멤버십 웨이트가 최종 서명으로부터 결정된 최종 멤버십 스코어인 경우)로 표현될 수 있다. 이와 달리, 슈퍼유닛은 유닛 사전(406)의 모든 유닛에 대한 멤버십 웨이트들의 벡터를 사용하여 표현될 수 있다. 이 경우에, 슈퍼유닛의 멤버가 아닌 유닛들에 대한 웨이트가 0으로 설정될 수 있거나, 멤버십 웨이트가 최종 서명에 기초하여 비멤버 유닛에 대해 계산될 수 있다. 슈퍼유닛에 대한 최종 서명도 역시 유리하게도 유닛 사전(406)에 저장되어 있다.
도 8a 및 도 8b는 프로세스(700)에 따라 슈퍼유닛 작성 동안의 개념 네트워크(800)의 일부분을 도시하고 있다. 도 8a 및 도 8b의 표기법은, 네트워크(800)의 경우 연관 관계만이 도시되어 있고, 따라서 관계 에지가 표시되어 있지 않다는 점을 제외하고는 일반적으로 도 3의 표기법과 유사하다. (다른 경우에, 연관 이외의 관계도 역시 고려될 수 있음을 잘 알 것이다.) 도 8a는 단계(704) 이후의 개념 네트워크(800)의 상태를 나타낸 것이다. 노드(유닛) "avril lavigne"(802) 및 "celine dion"(804)은 슈퍼유닛 "X"{점선 박스(806)}에 대한 시드의 멤버이다. 노드 "mp3"(808), "lyrics(가사)"(810), "pictures(사진)"(812), "album(앨범)"(814) 및 "tour(순회 공연)"(816)는 슈퍼유닛 X의 서명 "Y"{점선 박스(818)}의 멤버로서 {단계(704) 동안} 식별된다. 노드 "barbra streisand"(820), "movies(영화)"(822), 및 "arnold schwarzenegger"(824)는 슈퍼유닛 X 또는 서명 Y의 멤버가 아니다.
이 예에 따르면, 슈퍼유닛 생성은 유닛 "barbra streisand"(820) 및 "arnold schwarzenegger"(824)를 후보 유닛인 것으로 식별함으로써 진행될 수 있는데, 이는 각각이 서명 Y의 적어도 하나의 유닛의 이웃이기 때문이다. 이후, 각각의 후보 유닛은 어떤 기준에 기초하여 서명에 매치하는지 평가된다. 예를 들어, 후보는 서명 유닛의 적어도 75%에 관련될 필요가 있을 수 있다. "barbra streisand" 노드(820)는 서명 Y 내의 5개의 유닛 중 4개와 관련되어 있으며, 단계(708)에서 슈퍼유닛 X에 추가되어질 것이다. "arnold schwarzenegger" 노드(824)는 서명 Y의 유닛 중 단 하나에만 관련되어 있으며, 단계(708)에서 슈퍼유닛 X에 추가되지 않을 것이다. 도 8b는 단계(706) 및 단계(708) 후의 개념 네트워크(800)의 상태를 나타낸 것으로서, "barbra streisand" 노드(802)가 슈퍼유닛 X'{점선 박스(806')}에 추가된다.
이후, 슈퍼유닛 X'에 대한 서명 Y가 갱신된다{단계 (710)}. 예를 들어, 서명 Y는 슈퍼유닛 X의 멤버들의 적어도 50%와 관련된 유닛만을 포함하도록 정의될 수 있다. "barbra streisand" 유닛(820)은 "movies" 유닛(822)과 관련되어 있지만, 다른 멤버들은 그렇지 않으며, 따라서 "movies"는 서명 Y에 추가되지 않는다. "pictures" 유닛(812)은 "barbra streisand" 멤버 유닛(820)과 관련되어 있지 않지만 3개의 유닛 중 다른 2개와 연관되어 있으며, 따라서 "pictures"는 서명에 남아 있다.
이 예에 따르면, 서명 Y는 반복 동안에 변하지 않으며, 가능한 후보 유닛의 멤버십 스코어가 변하지 않기 때문에 수렴이 발견될 것이다. 이 예가 아주 단순화되어 있음은 잘 알 것이며, 개념 네트워크는 도 8a 및 도 8b에 도시된 부분보다 상 당히 크고 복잡할 수 있고, 슈퍼유닛이 수렴하기 위해서는 수많은 반복이 필요할 수 있다.
프로세스(700)에 따른 슈퍼유닛 생성의 다른 예가 의약에 관련된 슈퍼유닛에 대하여 이제부터 기술한다. 이 예에 따르면, 개념 네트워크는 다수의 쿼리(예컨대, 야후! 등의 주요 인터넷 검색 제공자에 의해 수신되는 일주일 분량의 쿼리)로부터 생성되었다. 개념 네트워크로부터, 특정의 의약의 상표명{예컨대, "Vicodin(바이코딘)"}을 기본 유닛으로 사용하여 클리크가 형성되었다. 전술한 프로세스(600)에 따라 형성된 클리크는 특정의 의약의 이름{예컨대, "Oxycontin(옥시콘틴)", "Propecia(프로페시아)"}인 소수의 다른 유닛을 포함하였다.
이 클리크는 슈퍼유닛 집합 X를 생성하기 위해 슈퍼유닛 시드로서 사용되었다{단계 (702)}. 슈퍼유닛 시드의 각각의 멤버 유닛 xi는 상수값으로 초기화된 멤버십 웨이트
Figure 112006031694980-PCT00035
를 할당받았으며(예컨대, 모든 xi에 대해
Figure 112006031694980-PCT00036
), 다른 실시예들에 따르면, (예컨대, 전술한 클러스터링 알고리즘 중 임의의 것을 사용하는)클러스터링 웨이트 또는 (예컨대, 상기 수학식 6으로부터의) 클리크 멤버십 스코어가 초기 멤버십 웨이트로서 사용될 수 있다.
그리고 나서, 슈퍼유닛 시드에 대해 서명이 생성된다{단계 (704)}. "drug(의약)" 슈퍼유닛에 대해 사용된 종류의 서명 생성 프로세스의 예가 도 9에서 프로세스(900)로 도시되고 있다. 단계(902)에서, 예비적인 서명 집합 P가 형성되 고, 여기서 집합 P는 슈퍼유닛 집합 X의 멤버 유닛 xi 각각의 이웃의 집합
Figure 112006031694980-PCT00037
의 합집합이다. 일부 실시예들에 따르면, 집합
Figure 112006031694980-PCT00038
는 멤버 유닛 xi의 모든 이웃보다 적은 이웃을 포함할 수 있으며, 예를 들어, 최소 에지 웨이트 또는 특정 유형의 관계가 필요할 수 있거나, 집합이 중복적인 유닛을 제거하도록 선별(cull)될 수 있다{예컨대, "map of spain(스페인의 지도)" 또는 "spain map(스페인 지도)" 중 하나만이 유지될 수 있음}.
단계(904)에서, 예비적인 서명 집합 P에서의 각각의 유닛 pj에 대해 제1 스코어가 계산된다. 유닛 pj에 대한 제1 스코어는 유리하게도 슈퍼유닛 집합 X의 멤버 xi가 유닛 pj의 이웃일 가능성을 반영한다. "drug" 슈퍼유닛의 예에 따르면, 유닛 pj에 대한 제1 스코어는 유닛 pj의 이웃인 유닛 xi의 멤버십 웨이트
Figure 112006031694980-PCT00039
에 기초한 "관련된 비율(related proportion)"(RP) 스코어였다. 예를 들어, 유닛 xi가 유닛 pj의 이웃이면
Figure 112006031694980-PCT00040
가 1인 것으로 정의되고 그렇지 않으면 0인 것으로 정의되는 경우, RP 스코어는 이하의 수학식 7로서 계산될 수 있다.
Figure 112006031694980-PCT00041
여기서,
Figure 112006031694980-PCT00042
는 슈퍼유닛 집합 X에서의 멤버 유닛의 총 수를 나타낸다.
단계(906)에서, 예비적인 서명 집합 P에서의 각각의 유닛 pj에 대해 제2 스코어가 계산된다. 유닛 pj에 대한 제2 스코어는 유리하게도 잠재적인 서명 유닛 pj의 이웃 유닛(즉, 이웃 집합
Figure 112006031694980-PCT00043
의 멤버)이 또한 슈퍼유닛 집합 X의 멤버이기도 할 가능성을 반영한다. "drug" 슈퍼유닛의 예에 따르면, 제2 스코어는 이하의 수학식 8에 의해 주어지는 관련된 빈도수 비(related frequency ratio, RFR)이다.
Figure 112006031694980-PCT00044
여기서,
Figure 112006031694980-PCT00045
는 이웃 집합
Figure 112006031694980-PCT00046
의 멤버와 집합 X의 멤버 유닛 간의 관계의 빈도수(또는 에지 웨이트)의 합을 나타내고,
Figure 112006031694980-PCT00047
는 이웃 집합
Figure 112006031694980-PCT00048
의 모든 멤버의 총 빈도수를 나타낸다.
단계(908)에서, 제1 스코어와 제2 스코어를 조합함으로써 예비적인 집합 P에서의 각각의 유닛 pj에 대해 최종 스코어
Figure 112006031694980-PCT00049
가 계산된다. "drug" 슈퍼유닛의 예에 따르면, 상기 수학식 7 및 수학식 8에서 각각 정의된 RP 및 RFR을 사용하여, 최종 스코어는 이하의 수학식 9에 의해 주어진다.
Figure 112006031694980-PCT00050
다른 실시예들에 따르면, 최종 스코어
Figure 112006031694980-PCT00051
는 RP 및 RFR 스코어의 상이한 조합일 수 있다.
단계(910)에서, 역치(threshold) 값이 최종 스코어
Figure 112006031694980-PCT00052
에 적용되고, 역치를 넘는 스코어를 갖는 유닛 pj는 슈퍼유닛 X에 대한 서명 집합 Y의 서명 유닛 yj가 되었다. "drug" 슈퍼유닛의 예에 따르면, 역치는 임의의 유닛 pj에 대한
Figure 112006031694980-PCT00053
의 최대값을 상수값으로 나눔으로써 결정되었고, 이 경우에 상수값 6이 사용되었지만, 다른 값들도 역시 선택될 수 있다. 서명 집합 Y에 포함된 각각의 유닛 yj에 대해, 최종 스코어
Figure 112006031694980-PCT00054
가 멤버십 웨이트
Figure 112006031694980-PCT00055
로서 저장되었다.
서명이 생성된 후에, 슈퍼유닛 집합 X에 대한 가능한 추가에 대하여 후보 유닛 ck가 테스트되었으며{프로세스(700)의 단계(708)}, 그에 따라 수정된 슈퍼유닛 X'을 생성하였다. 이러한 후보 유닛 ck는 적어도 하나의 서명 유닛 yj(yj는 집합 Y의 멤버임)의 이웃이고 아직 집합 X 또는 집합 Y의 멤버가 아닌 유닛들로부터 선택되었다. 각각의 후보 유닛 ck에 대해, 멤버십 스코어가 후보 유닛 ck의 이웃 유닛
Figure 112006031694980-PCT00056
및 서명 집합 Y 내의 서명 유닛 yj에 부분적으로 기초하여 계산되었다. 슈퍼유닛 멤버에 대한 멤버십 스코어의 계산은 일반적으로 서명에 대해 전술한 프로세스(900)와 유사하며, 스코어 자체도 유사하게 정의되었다.
보다 구체적으로, 한 스코어는 상기 수학식 7과 유사하게 정의되는 관련된 비율 스코어였다. 즉, 유닛 yj가 유닛 ck의 이웃이면
Figure 112006031694980-PCT00057
가 1로 정의되고 그 렇지 않으면 0으로 정의되는 경우, 후보 유닛 ck에 대한 RP 스코어는 이하의 수학식 10으로서 정의된다.
Figure 112006031694980-PCT00058
여기서,
Figure 112006031694980-PCT00059
는 서명 집합 Y 내의 유닛 yj의 총 수이고,
Figure 112006031694980-PCT00060
는 유닛 yj에 대한 멤버십 스코어(이상의 수학식 9의 결과)이다. 제2 스코어는 이상의 수학식 8과 유사하게 정의된 관련된 빈도수 비 스코어이었다. 즉,
Figure 112006031694980-PCT00061
가 후보 유닛 ck의 모든 이웃 유닛들의 집합을 나타내고,
Figure 112006031694980-PCT00062
가 이웃 집합
Figure 112006031694980-PCT00063
의 멤버와 서명 집합 Y 내의 서명 유닛 간의 관계의 빈도수 또는 에지 웨이트의 합을 나타내며,
Figure 112006031694980-PCT00064
가 이웃 집합
Figure 112006031694980-PCT00065
의 모든 멤버의 총 빈도수를 나타내는 경우, 이하의 수학식 11이 된다.
Figure 112006031694980-PCT00066
최종 스코어
Figure 112006031694980-PCT00067
는 RP 및 RFR 스코어를 조합함으로써 결정되었다. 즉,
Figure 112006031694980-PCT00068
이는 상기 수학식 9와 유사하다. 후보 ck가 슈퍼유닛 집합 X'에 추가되어야하는지를 결정하기 위해 최종 스코어
Figure 112006031694980-PCT00069
에 역치가 적용되었다. 이 역치는 모든 후보 유닛 ck에 걸친
Figure 112006031694980-PCT00070
의 최대값을 상수값으로 나눔으로써 결정되었는데, 이 경우에, 상수값 6이 사용되었지만, 다른 값들도 역시 선택될 수 있다. 유닛 xi로서 추가된 각각의 후보 ck에 대해, 멤버십 웨이트
Figure 112006031694980-PCT00071
는 자신의 최종 스코어와 같게 설정되었다. 이 멤버십 웨이트는 프로세스(700)의 서명 갱신 단계(710)의 그 다음 반복에서 사용되었다.
모든 후보들이 처리된 후에, 슈퍼유닛 생성 프로세스가 단계(710)로 계속되어, 서명 집합 Y가 갱신된 슈퍼유닛 집합 X'의 멤버십에 기초하여 새로운 집합 Y'으로 갱신되었다. 이는 슈퍼유닛 집합 X'의 현재 멤버십을 사용하여 프로세스(900)를 재실행함으로써 행해졌다. 그리고 나서, 단계(712)에서, 슈퍼유닛 집합 X'의 멤버 유닛은 이들이 제거되어야 하는지 여부를 결정하기 위해 평가되었으며, 이 프로세스는 단계(708)에서와 동일한 스코어 계산 및 멤버십 기준을 사용하였다.
단계(714)에서, 수렴 또는 비수렴은 집합 X' 및 Y'을 집합 X 및 Y와 각각 비교함으로써 결정되었다. 집합의 각각의 쌍 사이의 무변화 또는 충분히 작은 변화의 결과 수렴이 얻어진다.
도 10은 "drug(의약)" 슈퍼유닛에 대한 결과를 도시하고 있다. 전술한 바와 같이, 시드는 단일의 상표명(VICODIN)에 기초한 클리크이었으며, 서명 웨이트는 이 상의 수학식 7, 수학식 8 및 수학식 9에 의해 결정되었고, 슈퍼유닛 멤버십 웨이트는 이상의 수학식 10, 수학식 11 및 수학식 12에 의해 결정되었다. 도 10a는 8번의 반복 후의 서명 유닛 및 각각의 멤버십 웨이트를 나타낸 것이고, 도 10b도 역시 8번의 반복 후의 슈퍼유닛 멤버 중 일부와 각각의 웨이트를 나타낸 것이다. 이 결과는 다수의 실제 사용자 쿼리로부터 생성되었고, 전체 슈퍼유닛은 100개 이상의 멤버를 포함하며, 그 중 대표적인 것들이 도시되어 있다.
이 예의 경우, 서명 집합은 도 10a에 열거된 6개의 유닛으로 구성되었다. 유의할 점은 이들이 사람이 의약에 관한 정보를 검색할 때 포함할 것이고 의약과 관계가 없는 검색에서는 포함하지 않을 것으로 기대할 수 있는 유닛들이라는 점이다. 일부가 도 10b에 도시되고 있는 슈퍼유닛 멤버는 다양한 의약의 다수의 상표명을 포함하고 있다. {주변에 슈퍼유닛 시드가 형성된 기본 유닛인 "Vicodin(비코딘)"은 별도로 하고, 이들 상표명은 도 10b에서 <상표 A> 등으로 열거되어 있는데, 이는 특정의 상표 및 이들의 순서가 본 발명과 관련이 없기 때문이다.} 또한, 슈퍼유닛 멤버는 의약{예컨대, "ibuprofen(이부프로펜)", "drug(의약)", "caffeine(카페인)"}, 불법 의약품{예컨대, "heroin(헤로인)"}, 식품 첨가제{예컨대, "aspartame(아스파탐)"과 몇몇의 다른 비타민(열거하지 않음)}에 대한 일반적인 이름, 및 기타 다른 의약 관련 용어{예컨대, "화학 요법"}를 포함한다.
이 예가 예시적인 것이고 변경 및 수정이 가능하며, 예컨대 상이한 개념 네트워크가 입력으로서 사용되는 경우, 슈퍼유닛 멤버, 서명 유닛 및/또는 스코어가 이 예에서 언급된 것들과 일반적으로 다를 수 있음을 잘 알 것이다. 또한, 서명 및 슈퍼유닛 멤버십 스코어에 대해 기술한 식들은 예시적인 것이며 원하는 바에 따라 변경될 수 있다.
예를 들어, 일부 실시예들에 따르면, 잠재적인 서명 유닛에 대한 스코어는 슈퍼유닛 멤버의 멤버십 웨이트
Figure 112006031694980-PCT00072
를 참조하지 않고 계산될 수 있다. 그러한 일 실시예에 따르면,
Figure 112006031694980-PCT00073
가 유닛 pj의 이웃 집합
Figure 112006031694980-PCT00074
의 멤버이기도 한 슈퍼유닛 집합 X의 멤버의 수를 나타내고,
Figure 112006031694980-PCT00075
가 슈퍼유닛 집합 X의 멤버의 총 수를 나타내는 경우, 슈퍼유닛 집합 X의 멤버가 유닛 pj의 이웃일 가능성을 반영하는 유닛 pj에 대한 제1 스코어
Figure 112006031694980-PCT00076
은 이하의 수학식 13로서 계산될 수 있다.
Figure 112006031694980-PCT00077
마찬가지로, 유닛 pj의 이웃 유닛이 슈퍼유닛 집합 X의 멤버일 가능성을 반영하는 유닛 pj에 대한 제2 스코어는 이하의 수학식 14로서 계산될 수 있다.
Figure 112006031694980-PCT00078
여기서,
Figure 112006031694980-PCT00079
Figure 112006031694980-PCT00080
는 전술한 바와 같이 정의된다. 다른 예로서, 유닛 pj에 대한 제2 스코어는 이하의 수학식 15로서 계산될 수 있다.
Figure 112006031694980-PCT00081
여기서,
Figure 112006031694980-PCT00082
는 유닛 pj의 이웃 유닛의 집합을 나타내고,
Figure 112006031694980-PCT00083
는 X의 멤버이기도 한 유닛 pj에 대한 이웃 집합
Figure 112006031694980-PCT00084
내의 유닛의 수를 나타내며,
Figure 112006031694980-PCT00085
는 이웃 집합
Figure 112006031694980-PCT00086
내의 이웃 유닛의 총 수를 나타낸다.
제1 및 제2 스코어는 서명 집합 Y에 포함되기 위해 역치를 적용할 목적으로 최종 스코어를 결정하기 위해 원하는 임의의 방식으로 조합될 수 있다. 대안적으로, 각각의 스코어에 대해 개별적으로 별도의 컷오프(cutoff)가 적용될 수 있다. 예를 들어, 어떤 역치 t1, t2에 대해
Figure 112006031694980-PCT00087
이고
Figure 112006031694980-PCT00088
인 경우, 유닛 pj는 서명 집합 Y의 멤버 유닛 yj이다. 2개의 스코어에 관해 별도의 컷오프가 사용되는 경우, 두 스코어 모두 멤버십 웨이트로서 저장될 수 있다.
슈퍼유닛 X에 포함되기 위해 고려된 후보 유닛 ck에 대한 유사한 스코어가 이와 유사하게 계산될 수 있음을 잘 알 것이다. 예를 들어,
Figure 112006031694980-PCT00089
가 집합 Y 내의 서명 유닛인 후보 ck의 이웃 유닛의 수를 나타내고,
Figure 112006031694980-PCT00090
가 후보 유닛 ck의 이웃 유닛의 총 수를 나타내며,
Figure 112006031694980-PCT00091
가 서명 유닛 Y의 총 수를 나타내는 경우, 2개의 멤버십 스코어 S1 및 S2는 상기 수학식 13 및 수학식 15와 유사하게 이하의 수학식 16 및 수학식 17로서 정의될 수 있다.
Figure 112006031694980-PCT00092
Figure 112006031694980-PCT00093
빈도수와 관련한 정의도 역시 양쪽 스코어 중 어느 하나 또는 둘 다에 대해 사용될 수 있다. 후보 유닛 ck를 추가할지 여부는 개별적인 스코어 중 어느 하나 또는 둘 다 또는 이들의 조합에 기초하여 결정될 수 있다.
전술한 바와 같이, 슈퍼유닛 또는 서명 중 어느 하나에 대한 후보 유닛의 모든 이웃이 고려될 필요는 없다. 후보 유닛은 예컨대 특정의 관계(예컨대, 확장만), 최소 에지 웨이트, 또는 기타 기준에 기초하여 제한될 수 있다. 일 실시예에 따르면, 사용된 이웃 유닛은 후보 유닛에 대한 "제안"이며, 이 경우 제안은 상기 인용한 미국 특허 출원 제10/713,576호에 상세히 설명된 기술들을 사용하여 식별된다.
본 명세서에서 기술되는 슈퍼유닛 작성 프로세스가 예시적인 것이며, 변경 및 수정이 가능함을 잘 알 것이다. 순차적인 것으로 기술된 단계들이 병렬로 실행될 수 있고, 단계들의 순서가 변경될 수 있으며, 단계들은 수정 또는 조합될 수 있다. 다수의 슈퍼유닛이 다수의 시드로부터 병렬적으로(또는 순차적으로) 작성될 수 있다. 또한, 동일한 개념 네트워크로부터(선택적으로는 동일한 시드로부터) 슈 퍼유닛 및/또는 서명에서의 멤버십에 대한 서로 다른 기준을 사용함으로써 슈퍼유닛의 다양한 집합이 구성될 수 있으며, 그에 따라 서로 다른 내용을 갖는 슈퍼유닛을 생성할 수 있다. 또한, 전술한 예들이 연관 관계를 참조하고 있지만, 슈퍼유닛 멤버와 서명 유닛 간의 다른 유형의 관계가 고려될 수 있다. 또한, 이상의 예들은 멤버 유닛의 직접적인 이웃인 서명 유닛만을 고려하였으며, 다른 실시예들은 간접적 관계, 쿼리 내의 2개 이상의 유닛의 동시 출현 등에 기초하여 서명 유닛을 선택할 수 있다.
일부 특징들에 따르면, 슈퍼유닛 작성 프로세스는 전술한 클러스터 생성 프로세스(500){도 5}의 확장이다. 본 명세서에서 "클러스터"는 이웃들(즉, 관련된 유닛들)의 유사성에 기초하여 관련되는 일군의 유닛을 말하며, 그 의미에서, 클러스터는 슈퍼유닛의 한 유형으로서 간주될 수 있고, 서명은 공통의 이웃들에 기초하여 정의된다. 슈퍼유닛의 멤버들 간의 직접적인 관계를 포함하는 다른 유형의 관계를 포착하기 위해 다른 유형의 슈퍼유닛도 역시 생성될 수 있음을 잘 알 것이다. 예를 들어, 유닛 "britney spears" 및 "brittany spears"(통상적인 철자 오류)는 공통의 이웃들을 가질 가능성이 있고, 또 명백하게 다른 가수들을 말하는 "barbra streisand" 및 "celine dion"과 같은 유닛들과 함께 클러스터 유형의 슈퍼유닛에 포함될 가능성이 있다. 정확한 철자 "britney spears" 및 다양한 틀린 철자 간의 특수한 관계를 포착하기 위해, 대안들의 슈퍼유닛이 생성될 수 있다. 이러한 유형의 슈퍼유닛의 서명은 공통의 이웃들 뿐만 아니라(또는 그 대신에) 얼마간의 다른 멤버들(또는 단일의 "선호되는" 멤버)을 갖는 "대안" 관계의 존재를 포함할 수 있 다.
다시 도 4를 참조하면, 쿼리 엔진{query engine}(404)은 유리하게도 그의 쿼리 처리 동작을 반복적으로(예컨대, 주간별, 일간별, 시간별, 쿼리가 수신될 때 실시간으로 등) 수행하도록 구성되어 있다. 일부 실시예에 따르면, 기존의 유닛 사전은 새로운 일련의 쿼리 로그 파일에서 수신되는 쿼리에 기초하여 갱신되고, 다른 실시예들에 따르면, 새로운 일련의 쿼리 로그 파일로부터의 스크래치(scratch)로부터 새로운 유닛 사전이 생성될 수 있다. 어느 경우든지, 개념 네트워크 및 슈퍼유닛이 변화하는 사용자 거동에 응답하여 자연적으로 진화할 수 있음을 잘 알 것이다. 예를 들어, 새로운 가수가 인기를 얻게 되면, 그 가수는 도 8의 슈퍼유닛 X의 일부가 될 가능성이 있는데, 이는 사용자가 슈퍼유닛 X의 서명 유닛과 관련하여 새로운 가수의 이름을 검색하기 시작할 수 있기 때문이다.
바람직한 실시예에 따르면, 쿼리 처리 엔진(404)에 유닛 또는 쿼리에 관한 실세계 지식 또는 의미론적 정보가 제공될 필요가 없지만, 슈퍼유닛은 개념(예컨대, 가수 또는 도시와 같은 카테고리에 속하는 유닛)의 실세계 관계를 반영하는 경향이 있다. 예를 들어, 한 슈퍼유닛은 "New York City(뉴욕시)", "San Francisco(샌프란시스코)", 및 "Chicago(시카고)"를 포함할 수 있으며, 그 슈퍼유닛에 대한 서명은 "hotel(호텔)", "restaurant(레스토랑)", "night club(나이트 클럽)"을 포함할 수 있다. 그러한 슈퍼유닛은 뉴욕시, 샌프란시스코, 및 시카고가 모두 여행 목적지(또는 도시)임을 반영하지만, 쿼리 엔진(404){도 4}은 개념 "destination(목적지)"{또는 "city(도시)"}에 대한 어떤 사전 지식도 가지고 있을 필요가 없다. 이러한 개념적인 지식은 쿼리의 패턴 분석을 통하여 자동적으로 늘어날 수 있다. 본 명세서에서 인간에게 의미론적 의미를 전달하는 용어로 슈퍼유닛을 라벨링한 경우, 이것이 본 개시 내용의 이해를 용이하게 해주는 데 편리하다는 것을 잘 알 것이다. 실제로, 쿼리 엔진(404) 또는 유닛 사전(406)에 의해 사용되는 임의의 슈퍼유닛 라벨링 방식은 이 속성을 가질 필요가 없으며, 예컨대 슈퍼유닛 라벨은 단지 숫자, 슈퍼유닛의 서명 또는 웨이트 벡터에 대한 참조 등일 수 있다.
일부 실시예들에 따르면, 슈퍼유닛은 의미론적으로 의미있는 라벨을 슈퍼유닛의 일부 또는 전부에 할당함으로써 추가로 늘어날 수 있다. 예를 들어, 라벨{예컨대, "artist(예능인)"}을 하나 이상의 키워드{예컨대, "lyrics(가사)", "mp3" 등}와 연관시키는 분류된 키워드 데이터베이스가 라벨을 할당하는데 사용하기 위해 제공될 수 있다. 라벨을 적용할지 여부를 결정하기 위해 슈퍼유닛의 서명 유닛은 키워드와 비교될 수 있다. 사람 인덱스 편집자는, 예컨대 키워드 데이터베이스를 작성하거나 슈퍼유닛에의 라벨의 할당을 확인함으로써 이 프로세스에 참여할 수 있다.
유닛은 다수의 슈퍼유닛에 속할 수 있다. 예를 들어, "java(자바)"와 같은 모호한 유닛은 "computer programming(컴퓨터 프로그래밍)" 슈퍼유닛, "food and drink(식품 및 음료)" 슈퍼유닛, 및 "travel(여행)" 또는 "places(장소)" 슈퍼유닛으로 귀결될 수 있다. 일부 실시예들에 따르면, 어떠한 슈퍼유닛에도 속하지 않는 유닛들이 있을 수 있다. 생성될 슈퍼유닛의 수는 (특정의 수 또는 수의 범위로서) 미리 설정될 수 있으며, 예컨대 100, 500, 1500 또는 5000일 수 있다. 다른 실시예들에 따르면, 슈퍼유닛의 수는 미리 정해져 있지 않다.
본 명세서에 기술된 시스템 및 프로세스가 예시적인 것이며 변경 및 수정이 가능함을 잘 알 것이다. 순차적인 것으로 기술된 프로세스 단계들은 병렬적으로 실행될 수 있으며, 단계들은 결합될 수 있고, 단계들의 순서는 수정될 수 있다. 예를 들어, 슈퍼유닛에서 멤버십에 대한 후보로서 고려되는 유닛들의 집합은 다양한 방식으로(예컨대, 후보들을 비교적 빈번하게 출현하는 유닛으로 제한함으로써) 제한될 수 있으며, 서명 유닛의 집합도 역시 제한될 수 있다. 일 실시예에 따르면, 서명 유닛은 슈퍼유닛의 적어도 하나의 멤버와 관련되는 "제안"을 포함하거나, 그 제안으로 제한될 수 있다. 이와 관련하여, 제안은 특정의 쿼리(또는 유닛)를 타이핑 입력한 사용자가 관심있어 할 수 있는 가능한 것들로서 식별된 유닛이며, 유닛 및 빈도수 정보의 분석에 기초한다. 제안을 생성하는 기술들은 상기 인용한 미국 특허 출원 제10/713,576호에 상세히 기술되어 있다.
Ⅲ. 쿼리 응답에서의 슈퍼유닛의 적용
슈퍼유닛 정보는 쿼리에 대한 응답을 향상시키기 위해 다양한 방식으로 사용될 수 있다. 도 11은 쿼리에 응답하기 위해 도 2의 시스템(110)에 의해 사용될 수 있는 방법을 도시하고 있다. 클라이언트(120)는 검색 서버 시스템(160)으로 쿼리를 전송한다. 검색 서버 시스템(160)은 쿼리 및/또는 그의 구성 유닛을 개념 서버{concept server}(180)로 전송하며, 이 개념 서버(180)는 유닛 사전(406)에 액세스한다. 개념 서버(180)는 다양한 유닛에 대한 통계 및 슈퍼유닛 정보와 함께 쿼 리로부터 식별되는 하나 이상의 유닛과 같은 쿼리에 관계된 개념적 데이터를 반환한다. 이 정보는, 예컨대 쿼리 안에 포함된 유닛들을 식별하기 위해 쿼리를 해싱(hashing)하고 각각의 식별된 유닛에 대한 엔트리를 검색하기 위해 유닛 사전(406)에 액세스함으로써 도출될 수 있다. 이 실시예에 따르면, 유닛 사전(406)은 쿼리 처리 동안에 이용가능하게 될 유닛에 관한 임의의 정보를 포함하고, 개념 네트워크의 표현을 전체적으로 또는 부분적으로 포함할 수 있다. 일 실시예에 따르면, 반환된 정보는 쿼리 또는 개별적인 유닛에 관련된 슈퍼유닛(들)에 관한 정보를 포함한다.
검색 서버 시스템(160)은 유리하게도 쿼리에 응답함에 있어서 개념 서버(180)로부터 수신된 개념적 데이터를 사용한다. 검색 서버 시스템(160)에 의해 반환된 결과는 유리하게도 슈퍼유닛들을 비롯하여 유닛들 및 유닛들의 관계에서 포착된 사용자 요구를 이해하는 것에 기초하여 사용자가 그 다음에 탐색하고자 할 수 있는 것에 관한 힌트(hint) 또는 팁(tip)과 같은 다른 관련된 정보와 함께 사용자의 쿼리에 응답하는 결과를 포함한다. 쿼리에 응답하는데 슈퍼유닛 정보가 사용될 수 있는 방법들의 몇가지 예가 이제부터 기술된다. 이 예들은 예시적인 것이며 제한적인 것이 아님을 잘 알 것이다.
A. 모호성 해결
일부 실시예들에 따르면, 검색 서버 시스템(160)은 다중 유닛 쿼리(multi-unit query)의 구성 유닛들을 사용하여 구성 유닛들 중 하나에서의 모호성을 해결할 수 있다. 예를 들어, 쿼리가 2개 이상의 문맥으로 사용될 수 있는 "Java(자 바)"와 같은 모호한 용어를 포함하고 있는 것으로 가정한다. 그러한 용어는 다수의 슈퍼유닛, 예컨대 "food and drink(식품 및 음료)" 슈퍼유닛, "computer(컴퓨터)" 슈퍼유닛 및 "location(장소)" 슈퍼유닛에 속할 수 있다. 쿼리를 유닛으로 분석하고(parse) 유닛 "java"에서의 모호성을 검출한 후에, 검색 서버(160)는 쿼리의 다른 구성 유닛을 각각의 그러한 슈퍼유닛의 서명과 비교할 수 있다. 따라서, 쿼리가 "shop(가게)" 또는 "coffee(커피)"와 같은 용어도 포함하는 경우, 검색 서버 시스템(160)은 사용자가 "food and drink" 슈퍼유닛에 가장 관심이 있을 수 있음을 추론할 수 있고, "program(프로그램)" 또는 "script(스크립트)"와 같은 용어는 "computer" 슈퍼유닛을 가리킬 것이다. 결과(예컨대, 쿼리에 응답하는 페이지로의 링크)는 서로 다른 슈퍼유닛에 대응하는 그룹으로 나타날 수 있으며, 가장 가능성있는 슈퍼유닛이 첫번째로 나타날 수 있다. 다른 실시예에 따르면, 상이한 슈퍼유닛(또는 컨텍스트)으로부터의 결과는 결과 페이지의 상이한 "탭" 상에 정렬될 수 있으며, 그에 따라 사용자가 원하는 탭을 클릭함으로써 컨텍스트를 선택할 수 있게 한다. 가장 가능성 있는 컨텍스트가 디폴트로 디스플레이될 수 있다.
또한, 슈퍼유닛은 다른 방식으로, 예컨대 사용자가 동일한 세션에서 만들 수 있는 다른 쿼리들을 검사함으로써 모호성을 해결하는데 사용될 수 있다. 예를 들어, 유닛 "jaguar(재규어)"는 동물 또는 자동차를 말할 수 있다. "jaguar" 이전의 사용자의 쿼리가 자동차에는 관계가 있으나 동물에는 관계가 없는 경우{예컨대, "kelly blue book(켈리 블루 북)" 또는 "porsche(포르쉐)"}, 사용자가 동물보다는 자동차에 더 관심이 있을 것으로 추론될 수 있다. 그러한 추론은 동일한 사용자에 의해 입력된 서로 다른 쿼리에서의 유닛들의 슈퍼유닛 멤버십을 검사함으로써 자동화될 수 있고, 멤버로서 양쪽 유닛을 모두 가지고 있는 슈퍼유닛은 그렇지 않은 것보다 더 가능성이 있는 것으로 식별될 수 있다. 다수의 사용자의 이전의 쿼리가 고려될 수 있으며, 예컨대 가장 최근의 쿼리가 더 큰 웨이트를 부여받는다.
검색 서버 시스템(160)은 결과를 어떻게 그룹화할지를 결정하기 위해 다양한 기술을 사용할 수 있다. 예를 들어, 페이지 인덱스{예컨대, 도 2의 페이지 인덱스(170)}를 생성하는 검색 관련 알고리즘은, 인덱스 내의 각각의 페이지 또는 사이트(또는 콘텐츠의 다른 유닛)를 하나 이상의 슈퍼유닛에 할당하기 위해 유닛 사전(406)으로부터의 기존의 슈퍼유닛 데이터를 사용하도록 구성될 수 있고, 슈퍼유닛 할당은 특정의 용어 또는 유닛의 출현에 관계된 다른 데이터와 함께 인덱스에 {예컨대, 컨텍스트 식별자(172)로서} 저장될 수 있다.
B. 관련된 검색의 제안
일부 실시예들에 따르면, 검색 서버 시스템(160)은 슈퍼유닛 정보에 기초하여 관련된 검색을 제안할 수 있다. 예를 들어, 쿼리가 "New York City(뉴욕시)"를 포함하고 있고 또 이 유닛이 "destination(목적지)" 슈퍼유닛에 속한 것으로 알려져 있는 것으로 가정한다. 검색 서버 시스템(160)은 "New York City"와 관련하여 "restaurant(레스토랑)" 또는 "hotel(호텔)"에 대한 검색과 같은 부가적인 검색을 제안하기 위해 슈퍼유닛과 관련된 서명을 사용할 수 있다. 그러한 제안은, 예컨대 슈퍼유닛의 서명 유닛에 기초할 수 있다.
C. "측면(sideways)" 검색의 제안
일부 실시예들에 따르면, 검색 서버 시스템(160)은 유사하거나 관련된 사이트의 "측면" 검색을 제안하기 위해 슈퍼유닛 정보를 사용할 수 있다. 예를 들어, 사용자가 날짜 W에 지점 A로부터 지점 B로 비행기를 타고 가는 데 관심이 있는 것으로 가정한다. 사용자는 항공사 사이트, 예컨대 아메리칸 항공(American Airlines) 사이트에 직접 액세스하여 그 사이트 내에서 검색을 수행하거나, 또는 "airlines(항공사)" 또는 "air travel(항공 여행)" 또는 "American airlines(아메리칸 항공)" 등에 대한 검색을 요청하고, 디스플레이된 검색 결과 내의 링크로부터 특정의 사이트(예컨대, 아메리칸 항공 사이트)에 액세스하고 액세스된 사이트 내에서 날짜 W에 지점 A로부터 지점 B로의 항공편 또는 항공편들에 관한 정보를 요청할 수 있다. 사용자는 이제 아마도 이용가능한 다양한 항공편에 관련된 가격 정보를 포함하는, 요청된 정보에 관하여 아메리칸 항공의 사이트로부터 정보를 보게 된다. "측면" 검색은 새로운 사이트에 수동으로 액세스하고 원하는 정보를 재입력할 필요없이 유사한 결과를 획득하기 위해 사용자로 하여금 동일한 정보, 예컨대 지점 A 및 B와 날짜 W를 사용하여 다른 사이트를 검색할 수 있게 해준다.
본 발명의 일 실시예에 따르면, 검색 서버 시스템(160)은 제안된 "관련된" 사이트 상에서 관련된 사이트를 식별하기 위해 슈퍼유닛 정보를 사용하여 측면 검색을 수행하도록 사용자에게 촉구(prompt)할 수 있다. 예를 들어, 유닛 "American airlines(아메리칸 항공)"는 "airlines(항공사)" 또는 "transportation(운송)" 슈퍼유닛에 속할 수 있고, 검색 서버 시스템(160)은 그 슈퍼유닛{예컨대, "United Airlines(유나이티드 항공)"}에서 다른 유닛들을 식별할 수 있고, 그 유닛과 관련 된 사이트 상에서 검색을 실행하는 것을 제안할 수 있다. 사용자가 측면 검색을 선택하는 경우, 본 시스템은 식별된 사이트와 인터페이스로 연결하여 원하는 검색 결과, 예컨대 날짜 W에 지점 A로부터 지점 B로의 항공편에 대한 가격 정보를 열거하는 식별된 사이트에서의 페이지를 제공한다. 사용자가 사이트에 직접 액세스하고 검색 정보를 액세스된 사이트에 관련된 폼(form)으로 입력한 경우, 검색 모듈(126)은 이 입력 정보를 저장하고 측면 검색이 요청될 때 관련된 사이트에서 폼을 채우는데 필요한 경우 이러한 정보를 사용한다. 물론 사용자는 선택된 사이트의 요구사항에 따라 새로운 사이트에서 부가의 정보를 입력할 필요가 있을 수 있다. 이러한 방식으로, 유사한 정보를 얻기 위한 서로 다른 웹 사이트에 걸친 유사한 검색을 간소화할 수 있는 기능이 사용자에게 제공된다.
D. 철자 오류의 해결
일부 실시예들에 따르면, 슈퍼유닛 및 서명은 쿼리 처리 동안에 개선된 철자 검사를 제공하기 위해 사용될 수 있다. 예를 들어, 사용자가 "basset(바셋견)"을 포함하는 쿼리를 입력하는 경우, 종래의 검색 서버 시스템은 "basset" 또는 "basket(바스켓)"을 가능한 대안인 것으로 인식할 수 있으며 사용자에게 둘 중 어느 하나 또는 둘 다를 제안할 수 있다. 슈퍼유닛 데이터에 액세스하는 검색 서버(106)는 어느 대안의 철자가 사용자에 의해 가장 의도된 것일 수 있는지를 결정하기 위해 개념 네트워크를 이용할 수 있다.
예를 들어, "basset"을 포함하는 이전의 쿼리가 "basket"보다 "basset"에 더 가까운 서명을 갖는 것으로 가정한다{예컨대, "basset"이 "weaving(직조)"과 함께 보다는 "hound(사냥개)"와 함께 훨씬 더 빈번히 나타나기 때문임}. 이러한 경우, 검색 서버는 최상의 대안 형태로서 "basset"을 제안할 수 있다. 다른 구현에 따르면, 완전한 쿼리는 "basket"을 포함하는 한 슈퍼유닛 및 "basset"을 포함하는 다른 슈퍼유닛과 관련된 각각의 서명에 대해 비교될 수 있으며, 어느 서명이 쿼리와 더욱 밀접하게 매치하고 있는지에 기초하여 제안이 행해진다. 따라서, 검색 서버(160)는 쿼리 "basset hound"에 대해 "basset hound"를 검색하라는 제안으로 응답할 수 있고 쿼리 "basset weaving"에 대해 "basket weaving"을 검색하라는 제안으로 응답할 수 있다.
E. 디렉토리 기반 검색의 지원
다른 실시예들에 따르면, 슈퍼유닛 정보는 유닛의 계층적 분류를 작성하는 데 사용될 수 있다. 일 실시예에 따르면, 슈퍼유닛 구성의 다수의 단계들이 수행된다. 첫번째 단계에서, 비교적 엄격한 멤버십 기준이 사용될 수 있고, 그에 따라 계층 구조의 하위 레벨을 나타내는 슈퍼유닛을 생성할 수 있다. 예를 들어, "cities(도시들)" 슈퍼유닛, "states(주들)" 슈퍼유닛, 및 "nations(국가들)" 슈퍼유닛은 이 단계에서 작성될 수 있다. 나중의 단계에서, 슈퍼유닛은 초기의 일련의 슈퍼유닛에서부터 시작하여 (선택에 따라 덜 엄격한 기준으로) 다시 작성될 수 있으며, 그에 따라 더 높은 레벨의 슈퍼유닛{도시들, 주들 및 국가들을 포함하는 "places(장소)" 슈퍼유닛 등}을 생성할 수 있다. 대안으로서, 반복적인 슈퍼유닛 작성 프로세스{예컨대, 도 7의 프로세스(700)}에서의 서로 다른 단계들이 계층 구조의 서로 다른 레벨을 식별하는 데 사용될 수 있다.
야후! 및 다른 검색 서비스 제공자에 의해 현재 제공되는 것과 유사한 디렉토리 기반 검색 기능을 제공하는데 슈퍼유닛에 기초한 계층적 분류가 사용될 수 있다. 종래의 디렉토리 기반 검색 시스템은 디렉토리를 작성하기 위해 전적으로 인간 편집 팀에 의존하나, 슈퍼유닛으로부터 디렉토리를 작성하는 것은 프로세스를 자동화하고, 그 결과 변화하는 사용자 관심 및 거동에 보다 신속하게 적응하는 디렉토리가 얻어질 수 있다.
F. 다른 응용
또한, 슈퍼유닛은 다른 방식으로도 사용될 수 있다. 예를 들어, 일부 실시예들에 따르면, 웹 사이트 운영자 또는 다른 개체는, 쿼리가 후원된 슈퍼유닛에 관련된 유닛을 포함하는 경우 후원자에 의해 제공되는 광고(또는 단지 후원자의 사이트로의 링크)가 눈에 띄게 디스플레이되도록 슈퍼유닛을 "후원"할 수 있다. 다른 실시예들에 따르면, 쿼리 내의 용어는 슈퍼유닛 이름과 비교될 수 있으며, 슈퍼유닛의 다른 멤버들에 대한 관련된 검색이 제안될 수 있다. 또 다른 실시예들에 따르면, 쿼리 용어가 슈퍼유닛 이름과 일치하는 경우, 다른 쿼리 용어에 관련된 페이지들은 컨텍스트가 슈퍼유닛에 대응하는지 여부에 기초하여 순위가 정해질 수 있다.
Ⅳ. 기타 실시예들
본 발명이 특정의 실시예들과 관련하여 기술되어 있지만, 당업자라면 수많은 수정이 가능함을 잘 알 것이다. 예를 들어, 슈퍼유닛의 수 및 특이성이 변할 수 있으며, 한 유닛은 2개 이상의 슈퍼유닛에 속할 수 있다. 구현에 따라, 모든 유닛 이 적어도 하나의 슈퍼유닛에 속할 필요가 있을 수도 있고 그렇지 않을 수도 있다. 슈퍼유닛 및 서명은 동적으로 정의될 수 있으며, 사용자 거동의 변화에 대한 응답으로 유닛, 슈퍼유닛 및/또는 서명 데이터를 갱신하기 위해 수시로(예컨대, 일간별로 또는 주간별로) 개념 발견 및/또는 개념 분석이 수행될 수 있다. 전술한 바와 같이, 슈퍼유닛을 생성하기 위하여 유닛들을 식별하고 관련시키는 다양한 기술이 사용될 수 있다. 슈퍼유닛이 개념의 실세계 관계를 반영하는 경향이 있을 수 있지만, 모든 슈퍼유닛(또는 임의의 슈퍼유닛)이 임의의 특정 정도로 그렇게 할 필요는 없다. 또한, 슈퍼유닛은 야후! 디렉토리와 같은 실세계 지식으로부터 구축된 계층적 디렉토리 구조 또는 기타 분류를 반영할 필요가 없다. 본 명세서에 기술된 자동화된 시스템 및 방법은 그 결과 얻어지는 특정의 인덱싱된 페이지 또는 사이트 등의 유닛 디렉토리, 슈퍼유닛, 서명, 슈퍼유닛 할당의 전부 또는 일부에 대한 사람의 검토로 확장 또는 보충될 수 있다.
본 명세서에 기술된 실시예들이 월드 와이드 웹(또는 그의 서브셋)이 검색 코퍼스로서 기능하는 경우들에 특유한 웹 사이트, 링크 및 다른 기술 용어를 참조할 수 있다. 본 명세서에 기술된 시스템 및 프로세스가 다른 검색 코퍼스와 함께 사용하기에 적합하게 될 수 있으며, 결과가 콘텐츠가 발견될 수 있는 장소에 대한 참조 또는 링크 뿐만 아니라 콘텐츠를 포함할 수 있음을 잘 알 것이다.
따라서, 본 발명이 특정의 실시예와 관련하여 기술되어 있지만, 본 발명은 이하의 청구항들의 범위 내의 모든 수정 및 등가물을 포함하는 것으로 보아야 할 것이다.

Claims (46)

  1. 개념 네트워크(concept network)로부터 슈퍼유닛들을 생성하는 컴퓨터 구현 방법으로서,
    상기 개념 네트워크는 복수의 유닛들 및 상기 복수의 유닛들의 쌍들 간에 정의된 복수의 관계들을 포함하고, 각각의 관계는 관련된 에지 웨이트(edge weight)를 가지며,
    상기 방법은,
    적어도 하나의 멤버 유닛(member unit)을 포함하는 슈퍼유닛 시드(superunit seed)를 식별하는 단계 - 각각의 멤버 유닛은 상기 개념 네트워크의 상기 복수의 유닛들 중 하나임 -;
    상기 슈퍼유닛 시드에 대한 서명(signature)을 정의하는 단계 - 상기 서명은 하나 이상의 서명 유닛들을 포함하고, 각각의 서명 유닛은 상기 개념 네트워크에서 적어도 최소 수의 상기 멤버 유닛들과 관계가 있음 -;
    상기 개념 네트워크로부터 하나 이상의 새로운 멤버 유닛들을 추가함으로써 상기 슈퍼유닛 시드를 확장하는 단계 - 각각의 새로운 멤버 유닛은 상기 서명에 기초한 매치 기준(match criterion)을 만족시킴 -;
    상기 확장된 슈퍼유닛 시드에 기초하여 상기 서명을 수정하는 단계;
    수렴 기준(convergence criterion)이 만족될 때까지 상기 확장하는 단계 및 상기 수정하는 단계를 반복하는 단계 - 상기 수렴 기준이 만족되면 최종 슈퍼유닛 및 최종 서명이 형성됨 -; 및
    상기 최종 슈퍼유닛의 각각의 멤버 유닛에 대한 슈퍼유닛 멤버십 정보를 저장하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 개념 네트워크는 일련의 이전의 검색 쿼리들(search queries)로부터 생성되는 방법.
  3. 제1항에 있어서,
    상기 슈퍼유닛 멤버십 정보를 저장하는 단계는,
    상기 최종 슈퍼유닛의 각각의 멤버 유닛에 대한 멤버십 웨이트를 계산하는 단계를 포함하고,
    상기 멤버십 웨이트는 상기 개념 네트워크에서 상기 최종 서명의 상기 서명 유닛들과 상기 멤버 유닛 간의 관계에 기초하며, 상기 저장된 슈퍼유닛 멤버십 정보는 상기 멤버십 웨이트를 포함하는 방법.
  4. 제1항에 있어서,
    상기 이전의 쿼리로들부터 상기 개념 네트워크를 생성하는 단계를 더 포함하는 방법.
  5. 제1항에 있어서,
    상기 서명을 수정하는 단계 이후 및 상기 반복하는 단계 이전에, 상기 수정된 서명에 기초한 상기 매치 기준을 만족시키지 않는 멤버 유닛을 제거함으로써 상기 슈퍼유닛 시드를 정화(purge)시키는 단계를 더 포함하며,
    상기 정화하는 단계는 상기 수정하는 단계를 반복한 이후에 반복되는 방법.
  6. 제1항에 있어서,
    상기 수렴 기준은, 상기 반복하는 단계의 결과로서 상기 슈퍼유닛 시드의 멤버십이 최대 수 이하의 유닛들만큼 변하는 경우 만족되는 방법.
  7. 제1항에 있어서,
    상기 수렴 기준은, 상기 반복하는 단계의 결과로서 상기 서명의 멤버십이 최대 수 이하의 유닛들만큼 변하는 경우 만족되는 방법.
  8. 제1항에 있어서,
    상기 슈퍼유닛 시드를 식별하는 단계는 2개 이상의 유닛들의 클러스터(cluster)를 상기 슈퍼유닛 시드로서 형성하는 단계를 포함하고,
    상기 클러스터 내의 각각의 유닛은 상기 클러스터의 기본 유닛(base unit)과 공통으로 적어도 하나의 이웃 유닛(neighbor unit)을 가지는 방법.
  9. 제8항에 있어서,
    상기 클러스터를 형성하는 단계는,
    상기 개념 네트워크로부터 기본 유닛 및 후보 유닛(candidate unit)을 선택하는 단계;
    상기 기본 유닛의 복수의 이웃 유닛들을 식별하는 단계 - 각각의 이웃 유닛은 상기 개념 네트워크에서 상기 기본 유닛과 관계가 있음 -;
    적어도 하나의 상기 이웃 유닛들을 매치된 유닛(matched unit)으로서 식별하는 단계 - 각각의 매치된 유닛은 상기 개념 네트워크에서 상기 후보 유닛과 관계가 있음 -;
    상기 적어도 하나의 매치된 유닛을 포함하는 상기 복수의 이웃 유닛들에 기초하여 상기 후보 유닛에 대한 클러스터링 웨이트(clustering weight)를 계산하는 단계; 및
    상기 클러스터링 웨이트에 기초하여, 상기 기본 유닛을 가지는 클러스터 내에 상기 후보 유닛을 포함할지 여부를 결정하는 단계
    를 포함하는 방법.
  10. 제1항에 있어서,
    상기 슈퍼유닛 시드를 식별하는 단계는 2개 이상의 밀접하게 관련된 유닛들의 클리크(clique)를 형성하는 단계를 포함하는 방법.
  11. 제1항에 있어서,
    상기 슈퍼유닛 시드를 식별하는 단계는 외부 소스(external source)로부터 유닛들의 리스트를 수신하는 단계를 포함하고,
    상기 유닛들의 리스트는 슈퍼유닛 시드로서 사용가능한 방법.
  12. 제11항에 있어서,
    상기 외부 소스는 웹 페이지를 포함하는 방법.
  13. 제11항에 있어서,
    상기 슈퍼유닛 시드를 식별하는 단계는 상기 개념 네트워크에 있지 않은 유닛을 제거하기 위해 상기 유닛들의 리스트를 프루닝(pruning)하는 단계를 더 포함하는 방법.
  14. 제1항에 있어서,
    상기 슈퍼유닛 시드를 식별하는 단계는,
    상기 이전의 쿼리들에 관련된 사용자 거동 데이터를 수신하는 단계; 및
    다양한 유닛들을 포함하는 이전의 쿼리들에 관련된 상기 사용자 거동 데이터에서 유사성을 검출하는 단계
    를 포함하는 방법.
  15. 제14항에 있어서,
    상기 사용자 거동 데이터는 상기 이전의 쿼리들에 대한 클릭 쓰루 정보(click through information)를 포함하는 방법.
  16. 제1항에 있어서,
    상기 슈퍼유닛 시드를 식별하는 단계는,
    소스 문서에 상기 개념 네트워크의 유닛들의 출현을 검출하는 단계; 및
    상기 검출된 출현에 기초하여 슈퍼유닛 시드를 생성하는 단계
    를 포함하는 방법.
  17. 제1항에 있어서,
    상기 개념 네트워크의 상기 유닛들 간의 상기 관계들은 연관 관계(association relationship), 확장 관계(extension relationship) 및 대안 관계(alternative relationship) 중 하나 이상을 포함하는 방법.
  18. 제1항에 있어서,
    상기 서명을 정의하는 단계는,
    상기 관련된 슈퍼유닛 시드의 적어도 최소 수의 상기 멤버 유닛들과 지정된 관계를 가지는 상기 개념 네트워크 내의 복수의 유닛들을 상기 서명 유닛들로서 식 별하는 단계; 및
    역치 수(threshold number)를 설정하는 단계
    를 포함하고,
    상기 슈퍼유닛 시드를 확장하는 단계는,
    상기 개념 네트워크로부터 후보 유닛을 선택하는 단계; 및
    상기 후보 유닛이 적어도 상기 역치 수의 상기 서명 유닛들과 상기 지정된 관계가 있는 경우 상기 후보 유닛을 상기 슈퍼유닛 시드에 추가하는 단계
    를 포함하는 방법.
  19. 제18항에 있어서,
    상기 역치 수는 미리 정해진 비율을 참조하여 서명 유닛들의 총수와 관련하여 설정되는 방법.
  20. 제1항에 있어서,
    상기 서명을 정의하는 단계는,
    상기 관련된 슈퍼유닛 시드의 적어도 최소 수의 상기 멤버 유닛들과 지정된 관계가 있는 상기 개념 네트워크 내의 복수의 유닛들을 상기 서명 유닛들로서 식별하는 단계;
    각각의 서명 유닛에 대한 에지 웨이트 범위를 설정하는 단계; 및
    역치 수를 설정하는 단계
    를 포함하고,
    상기 슈퍼유닛 시드를 확장하는 단계는,
    상기 개념 네트워크로부터 후보 유닛을 선택하는 단계;
    상기 후보 유닛과 상기 지정된 관계가 있고 해당 서명 유닛에 대한 상기 에지 웨이트 범위 내에 에지 웨이트를 가지는 상기 서명 유닛들의 수와 같은 제1 수를 결정하는 단계; 및
    상기 제1 수가 상기 역치 수보다 크거나 같은 경우 상기 후보 유닛을 상기 슈퍼유닛 시드에 추가하는 단계
    를 포함하는 방법.
  21. 제1항에 있어서,
    상기 저장하는 단계 후에,
    현재 쿼리를 수신하는 단계;
    상기 현재 쿼리를 하나 이상의 구성 유닛들로 분석하는(parse) 단계;
    하나 이상의 상기 구성 유닛들에 대한 상기 저장된 슈퍼유닛 멤버십 정보를 검색하는 단계; 및
    상기 검색된 슈퍼유닛 멤버십 정보에 적어도 부분적으로 기초하여 상기 현재 쿼리에 대한 응답을 작성하는 단계
    를 더 포함하는 방법.
  22. 제21항에 있어서,
    상기 응답을 작성하는 단계는 관련된 검색 쿼리를 제안하기 위하여 상기 슈퍼유닛 멤버십 정보를 사용하는 단계를 포함하는 방법.
  23. 제22항에 있어서,
    상기 관련된 검색 쿼리는 상기 슈퍼유닛의 상기 멤버 유닛들 중 하나인 제1 유닛을 포함하고,
    상기 제1 유닛은 상기 현재 쿼리의 구성 유닛이 아닌 방법.
  24. 제22항에 있어서,
    상기 관련된 검색 쿼리는 상기 슈퍼유닛의 상기 서명 유닛들 중 하나인 제1 유닛을 포함하고,
    상기 제1 유닛은 상기 현재 쿼리의 구성 유닛이 아닌 방법.
  25. 제21항에 있어서,
    상기 응답을 작성하는 단계는 측면 검색(sideways search)을 위한 웹 사이트를 제안하기 위하여 상기 슈퍼유닛 멤버십 정보를 사용하는 단계를 포함하는 방법.
  26. 제21항에 있어서,
    상기 구성 유닛들 중 하나는 2개 이상의 슈퍼유닛들의 멤버이고,
    상기 응답을 작성하는 단계는 상기 구성 유닛들 중 상기 하나가 속하는 상기 슈퍼유닛들에 따라 응답 데이터를 그룹화하기 위하여 상기 슈퍼유닛 멤버십 정보를 사용하는 단계를 포함하는 방법.
  27. 제21항에 있어서,
    상기 응답을 작성하는 단계는, 상기 구성 유닛들 중 제1 구성 유닛을 멤버로 가지는 하나 이상의 슈퍼유닛들에 대한 서명 유닛들과 상기 구성 유닛들 중 다른 하나를 비교한 것에 기초하여 상기 제1 구성 유닛의 모호성을 해결하기 위하여 상기 슈퍼유닛 정보를 사용하는 단계를 포함하는 방법.
  28. 제21항에 있어서,
    상기 응답을 작성하는 단계는 디스플레이될 후원받은 콘텐츠(sponsored conent)를 선택하기 위하여 상기 슈퍼유닛 정보를 사용하는 단계를 포함하는 방법.
  29. 사용자 검색 쿼리들로부터 슈퍼유닛들을 생성하는 시스템으로서,
    복수의 이전의 쿼리들로부터 개념 네트워크를 생성하도록 구성되는 개념 네트워크 빌더 모듈(concept network builder module) - 상기 개념 네트워크는 복수의 유닛들 및 상기 복수의 유닛들의 쌍들 간에 정의된 복수의 관계들을 포함하고, 각각의 관계는 관련된 에지 웨이트를 가짐 -;
    적어도 하나의 멤버 유닛을 포함하는 슈퍼유닛 시드를 식별하도록 구성되는 슈퍼유닛 시드 모듈 - 각각의 멤버 유닛은 상기 개념 네트워크의 상기 복수의 유닛들 중 하나임 -;
    상기 슈퍼유닛 시드들로 시작하는 서명들 및 슈퍼유닛들을 작성하도록 구성되는 슈퍼유닛 빌더 모듈 - 각각의 슈퍼유닛은 복수의 멤버 유닛들을 포함하고, 각각의 서명은 상기 슈퍼유닛들 중 하나와 관련되고, 각각의 서명은 하나 이상의 서명 유닛들을 포함하고, 각각의 서명 유닛은 상기 개념 네트워크에서 상기 관련된 슈퍼유닛의 적어도 최소 수의 상기 멤버 유닛들과 관계가 있음 -; 및
    상기 멤버 유닛들에 대한 슈퍼유닛 멤버십 정보를 저장하도록 구성되는 저장 모듈 - 상기 슈퍼유닛 멤버십 정보는 상기 슈퍼유닛 빌더 모듈에 의해 제공됨 -
    을 포함하는 시스템.
  30. 제29항에 있어서,
    상기 슈퍼유닛 빌더 모듈은 또한 각각의 슈퍼유닛 시드에 대한 서명을 정의하고, 상기 개념 네트워크로부터의 하나 이상의 새로운 멤버 유닛들을 추가함으로써 상기 슈퍼유닛 시드를 확장하고 - 각각의 새로운 멤버 유닛은 상기 서명에 기초한 매치 기준을 만족시킴 -, 상기 확장된 슈퍼유닛 시드에 기초하여 상기 서명을 수정하고, 수렴 기준이 만족될 때까지 상기 확장하는 단계 및 상기 수정하는 단계를 반복하도록 구성되며,
    상기 수렴 기준이 만족되면 최종 슈퍼유닛 및 최종 서명이 형성되는 시스템.
  31. 제30항에 있어서,
    상기 슈퍼유닛 빌더 모듈은 또한, 상기 최종 슈퍼유닛의 각각의 멤버 유닛에 대한 멤버십 웨이트를 계산하고 -상기 멤버십 웨이트는 상기 개념 네트워크에서 상기 최종 서명의 상기 서명 유닛들과 상기 멤버 유닛 간의 관계에 기초함 -, 상기 멤버십 웨이트를 상기 저장 모듈에 저장하도록 구성되는 시스템.
  32. 제30항에 있어서,
    상기 수렴 기준은 상기 반복하는 동안에 상기 슈퍼유닛 시드의 멤버십이 최대 수 미만의 유닛들만큼 변하는 경우 만족되는 시스템.
  33. 제30항에 있어서,
    상기 수렴 기준은 상기 반복하는 동안에 상기 서명의 멤버십이 최대 수 미만의 유닛들만큼 변하는 경우 만족되는 시스템.
  34. 제29항에 있어서,
    상기 슈퍼유닛 시드 모듈은 또한 2개 이상의 유닛들의 클러스터를 상기 슈퍼유닛 시드로서 식별하도록 구성되고, 상기 클러스터 내의 각각의 유닛은 공통으로 적어도 하나의 이웃 유닛을 가지는 시스템.
  35. 제34항에 있어서,
    상기 슈퍼유닛 시드 모듈은 또한,
    상기 개념 네트워크로부터 적어도 2개의 후보 유닛들을 선택하고,
    상기 후보 유닛들의 복수의 이웃 유닛들을 식별하고 - 각각의 이웃 유닛은 상기 개념 네트워크에서 하나 이상의 상기 후보 유닛들과 관계가 있음 -,
    상기 복수의 이웃 유닛들에 기초하여 상기 후보 유닛들에 대한 클러스터링 웨이트를 계산하고,
    상기 클러스터링 웨이트에 기초하여, 상기 후보 유닛들로부터 클러스터를 형성할지 여부를 결정하도록 구성되는 시스템.
  36. 제34항에 있어서,
    상기 슈퍼유닛 시드 모듈은 또한 외부 소스로부터 유닛들의 리스트를 수신하도록 구성되고, 상기 유닛들의 리스트는 슈퍼유닛 시드로서 사용가능한 시스템.
  37. 제34항에 있어서,
    상기 슈퍼유닛 시드 모듈은 또한, 상기 이전의 쿼리들에 관련된 사용자 거동 데이터를 수신하고, 다양한 유닛들을 포함하는 이전의 쿼리들에 관련된 상기 사용자 거동 데이터에서 유사성을 검출하도록 구성되는 시스템.
  38. 제34항에 있어서,
    상기 슈퍼유닛 시드 모듈은 또한, 소스 문서에 상기 개념 네트워크의 유닛들 의 출현을 검출하고, 상기 검출된 출현에 기초하여 슈퍼유닛 시드를 생성하도록 구성되는 시스템.
  39. 제29항에 있어서,
    현재 쿼리를 수신하고, 상기 현재 쿼리를 하나 이상의 구성 유닛들로 분석하고, 하나 이상의 상기 구성 유닛에 대한 상기 슈퍼유닛 멤버십 정보를 상기 저장 모듈로부터 검색하고, 상기 검색된 슈퍼유닛 멤버십 정보에 적어도 부분적으로 기초하여 상기 현재 쿼리에 대한 응답을 작성하도록 구성되며, 상기 저장 모듈에 연결되는 쿼리 응답 모듈(query response module)을 더 포함하는 시스템.
  40. 프로그램 코드로 인코딩된 컴퓨터 판독가능 매체를 포함하는 컴퓨터 프로그램 제품으로서,
    상기 프로그램 코드는,
    적어도 하나의 멤버 유닛을 포함하는 슈퍼유닛 시드를 식별하는 프로그램 코드 - 각각의 멤버 유닛은 개념 네트워크의 복수의 유닛들 중 하나이고, 상기 개념 네트워크는 복수의 유닛들 및 상기 복수의 유닛들의 쌍들 간에 정의된 복수의 관계들을 포함하며, 각각의 관계는 관련된 에지 웨이트를 가짐 -;
    상기 슈퍼유닛 시드에 대한 서명을 정의하는 프로그램 코드 - 상기 서명은 하나 이상의 서명 유닛들을 포함하고, 각각의 서명 유닛은 상기 개념 네트워크에서 적어도 최소 수의 상기 멤버 유닛들과 관계가 있음 -;
    상기 개념 네트워크로부터 하나 이상의 새로운 멤버 유닛들을 추가함으로써 상기 슈퍼유닛 시드를 확장하는 프로그램 코드 - 각각의 새로운 멤버 유닛은 상기 서명에 기초한 매치 기준을 만족시킴 -;
    상기 확장된 슈퍼유닛 시드에 기초하여 상기 서명을 수정하는 프로그램 코드;
    수렴 기준이 만족될 때까지 상기 확장하는 단계 및 상기 수정하는 단계를 반복하는 프로그램 코드 - 상기 수렴 기준이 만족되면 최종 슈퍼유닛 및 최종 서명이 형성됨 -; 및
    상기 최종 슈퍼유닛의 각각의 멤버 유닛에 대한 슈퍼유닛 멤버십 정보를 저장하는 프로그램 코드
    를 포함하는 컴퓨터 프로그램 제품.
  41. 제40항에 있어서,
    상기 프로그램 코드는,
    현재 쿼리를 수신하는 프로그램 코드;
    상기 현재 쿼리를 하나 이상의 구성 유닛들로 분석하는 프로그램 코드;
    하나 이상의 상기 구성 유닛들에 대한 상기 저장된 슈퍼유닛 멤버십 정보를 검색하는 프로그램 코드; 및
    상기 검색된 슈퍼유닛 멤버십 정보에 적어도 부분적으로 기초하여 상기 현재 쿼리에 대한 응답을 작성하는 프로그램 코드
    를 더 포함하는 컴퓨터 프로그램 제품.
  42. 개념 네트워크로부터 클러스터를 형성하는 컴퓨터 구현 방법으로서,
    상기 개념 네트워크는 복수의 유닛들 및 상기 유닛들 간에 정의된 복수의 관계들을 포함하며, 각각의 관계는 관련된 에지 웨이트를 가지고,
    상기 방법은,
    상기 개념 네트워크로부터 기본 유닛 및 후보 유닛을 선택하는 단계;
    상기 기본 유닛의 복수의 이웃 유닛들을 식별하는 단계 - 각각의 이웃 유닛은 상기 개념 네트워크에서 상기 기본 유닛과 관계가 있음 -;
    적어도 하나의 상기 이웃 유닛들을 매치된 유닛으로서 식별하는 단계 - 상기 매치된 유닛은 상기 개념 네트워크에서 상기 후보 유닛과 관계가 있음 -;
    상기 적어도 하나의 매치된 유닛을 포함하는 상기 복수의 이웃 유닛들에 기초하여 상기 후보 유닛에 대한 클러스터링 웨이트를 계산하는 단계; 및
    상기 클러스터링 웨이트에 기초하여, 상기 기본 유닛을 가지는 클러스터 내에 상기 후보 유닛을 포함할지 여부를 결정하는 단계
    를 포함하는 방법.
  43. 제42항에 있어서,
    제2 후보 유닛을 선택하는 단계; 및
    상기 제2 후보 유닛을 사용하여, 적어도 하나의 상기 이웃 유닛들을 매치된 유닛으로서 식별하는 단계, 클러스터링 웨이트를 계산하는 단계, 및 결정하는 단계를 반복하고, 그에 따라 상기 클러스터 내에 상기 제2 후보 유닛을 포함할지 여부를 결정하는 단계
    를 더 포함하는 방법.
  44. 개념 네트워크로부터 클리크를 형성하는 컴퓨터 구현 방법으로서,
    상기 개념 네트워크는 복수의 유닛들 및 상기 유닛들 간에 정의된 복수의 관계들을 포함하고, 각각의 관계는 관련된 에지 웨이트를 가지고,
    상기 방법은,
    복수의 클러스터들을 형성하는 단계 - 각각의 클러스터는 적어도 기본 유닛을 포함함 -;
    상기 복수의 클러스터들 중 하나를 시작 클러스터로서 선택하는 단계;
    상기 시작 클러스터의 상기 기본 유닛만을 포함하도록 클리크를 초기화하는 단계; 및
    상기 시작 클러스터의 각각의 멤버 유닛 u에 대해,
    (a) 상기 기본 유닛으로서 멤버 유닛 u를 가지는 상기 클러스터들 중 상기 하나의 멤버이기도 한 상기 클리크의 현재 멤버의 비율이 제1 역치보다 크거나 같은 경우, 및
    (b) 멤버 유닛 u도 포함하는 기본 유닛으로서 현재의 클리크 멤버들을 가지는 클러스터들의 비율이 제2 역치보다 크거나 같은 경우에,
    상기 멤버 유닛 u를 상기 클리크에 추가하는 단계
    를 포함하는 방법.
  45. 제44항에 있어서,
    상기 제1 역치 및 상기 제2 역치는 각각 100%인 방법.
  46. 제44항에 있어서,
    상기 제1 역치 및 상기 제2 역치는 각각 약 70%인 방법.
KR1020067008727A 2003-10-09 2004-10-07 슈퍼유닛을 사용하는 검색 처리 시스템 및 방법 KR100851706B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US51022003P 2003-10-09 2003-10-09
US60/510,220 2003-10-09
US10/797,614 US7346629B2 (en) 2003-10-09 2004-03-09 Systems and methods for search processing using superunits
US10/797,614 2004-03-09

Publications (2)

Publication Number Publication Date
KR20060131746A true KR20060131746A (ko) 2006-12-20
KR100851706B1 KR100851706B1 (ko) 2008-08-11

Family

ID=34426184

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067008727A KR100851706B1 (ko) 2003-10-09 2004-10-07 슈퍼유닛을 사용하는 검색 처리 시스템 및 방법

Country Status (7)

Country Link
US (1) US7346629B2 (ko)
EP (1) EP1678639B1 (ko)
JP (2) JP5197959B2 (ko)
KR (1) KR100851706B1 (ko)
CN (1) CN1882943B (ko)
TW (1) TWI366766B (ko)
WO (1) WO2005036351A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008095034A1 (en) * 2007-01-30 2008-08-07 Google Inc. Content identification expansion

Families Citing this family (141)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7130819B2 (en) * 2003-09-30 2006-10-31 Yahoo! Inc. Method and computer readable medium for search scoring
US7844589B2 (en) * 2003-11-18 2010-11-30 Yahoo! Inc. Method and apparatus for performing a search
US8914383B1 (en) 2004-04-06 2014-12-16 Monster Worldwide, Inc. System and method for providing job recommendations
US7777125B2 (en) * 2004-11-19 2010-08-17 Microsoft Corporation Constructing a table of music similarity vectors from a music similarity graph
US9286387B1 (en) 2005-01-14 2016-03-15 Wal-Mart Stores, Inc. Double iterative flavored rank
US8375067B2 (en) * 2005-05-23 2013-02-12 Monster Worldwide, Inc. Intelligent job matching system and method including negative filtration
US7720791B2 (en) * 2005-05-23 2010-05-18 Yahoo! Inc. Intelligent job matching system and method including preference ranking
US20060265270A1 (en) * 2005-05-23 2006-11-23 Adam Hyder Intelligent job matching system and method
US8527510B2 (en) 2005-05-23 2013-09-03 Monster Worldwide, Inc. Intelligent job matching system and method
US8433713B2 (en) * 2005-05-23 2013-04-30 Monster Worldwide, Inc. Intelligent job matching system and method
US20070005588A1 (en) * 2005-07-01 2007-01-04 Microsoft Corporation Determining relevance using queries as surrogate content
US20070038608A1 (en) * 2005-08-10 2007-02-15 Anjun Chen Computer search system for improved web page ranking and presentation
US7555472B2 (en) * 2005-09-02 2009-06-30 The Board Of Trustees Of The University Of Illinois Identifying conceptual gaps in a knowledge base
US9477658B2 (en) 2005-10-26 2016-10-25 Cortica, Ltd. Systems and method for speech to speech translation using cores of a natural liquid architecture system
US10691642B2 (en) 2005-10-26 2020-06-23 Cortica Ltd System and method for enriching a concept database with homogenous concepts
US8326775B2 (en) 2005-10-26 2012-12-04 Cortica Ltd. Signature generation for multimedia deep-content-classification by a large-scale matching system and method thereof
US11216498B2 (en) 2005-10-26 2022-01-04 Cortica, Ltd. System and method for generating signatures to three-dimensional multimedia data elements
US9747420B2 (en) 2005-10-26 2017-08-29 Cortica, Ltd. System and method for diagnosing a patient based on an analysis of multimedia content
US11032017B2 (en) 2005-10-26 2021-06-08 Cortica, Ltd. System and method for identifying the context of multimedia content elements
US10848590B2 (en) 2005-10-26 2020-11-24 Cortica Ltd System and method for determining a contextual insight and providing recommendations based thereon
US9466068B2 (en) 2005-10-26 2016-10-11 Cortica, Ltd. System and method for determining a pupillary response to a multimedia data element
US11620327B2 (en) 2005-10-26 2023-04-04 Cortica Ltd System and method for determining a contextual insight and generating an interface with recommendations based thereon
US11604847B2 (en) 2005-10-26 2023-03-14 Cortica Ltd. System and method for overlaying content on a multimedia content element based on user interest
US10535192B2 (en) 2005-10-26 2020-01-14 Cortica Ltd. System and method for generating a customized augmented reality environment to a user
US10380623B2 (en) 2005-10-26 2019-08-13 Cortica, Ltd. System and method for generating an advertisement effectiveness performance score
US10193990B2 (en) 2005-10-26 2019-01-29 Cortica Ltd. System and method for creating user profiles based on multimedia content
US10191976B2 (en) 2005-10-26 2019-01-29 Cortica, Ltd. System and method of detecting common patterns within unstructured data elements retrieved from big data sources
US8312031B2 (en) 2005-10-26 2012-11-13 Cortica Ltd. System and method for generation of complex signatures for multimedia data content
US8266185B2 (en) 2005-10-26 2012-09-11 Cortica Ltd. System and methods thereof for generation of searchable structures respective of multimedia data content
US10585934B2 (en) 2005-10-26 2020-03-10 Cortica Ltd. Method and system for populating a concept database with respect to user identifiers
US10380267B2 (en) 2005-10-26 2019-08-13 Cortica, Ltd. System and method for tagging multimedia content elements
US10635640B2 (en) 2005-10-26 2020-04-28 Cortica, Ltd. System and method for enriching a concept database
US10360253B2 (en) 2005-10-26 2019-07-23 Cortica, Ltd. Systems and methods for generation of searchable structures respective of multimedia data content
US11361014B2 (en) 2005-10-26 2022-06-14 Cortica Ltd. System and method for completing a user profile
US11003706B2 (en) 2005-10-26 2021-05-11 Cortica Ltd System and methods for determining access permissions on personalized clusters of multimedia content elements
US10180942B2 (en) 2005-10-26 2019-01-15 Cortica Ltd. System and method for generation of concept structures based on sub-concepts
US9396435B2 (en) 2005-10-26 2016-07-19 Cortica, Ltd. System and method for identification of deviations from periodic behavior patterns in multimedia content
US9767143B2 (en) 2005-10-26 2017-09-19 Cortica, Ltd. System and method for caching of concept structures
US9529984B2 (en) 2005-10-26 2016-12-27 Cortica, Ltd. System and method for verification of user identification based on multimedia content elements
US9256668B2 (en) 2005-10-26 2016-02-09 Cortica, Ltd. System and method of detecting common patterns within unstructured data elements retrieved from big data sources
US10698939B2 (en) 2005-10-26 2020-06-30 Cortica Ltd System and method for customizing images
US9031999B2 (en) 2005-10-26 2015-05-12 Cortica, Ltd. System and methods for generation of a concept based database
US11403336B2 (en) 2005-10-26 2022-08-02 Cortica Ltd. System and method for removing contextually identical multimedia content elements
US10614626B2 (en) 2005-10-26 2020-04-07 Cortica Ltd. System and method for providing augmented reality challenges
US9953032B2 (en) 2005-10-26 2018-04-24 Cortica, Ltd. System and method for characterization of multimedia content signals using cores of a natural liquid architecture system
US10621988B2 (en) 2005-10-26 2020-04-14 Cortica Ltd System and method for speech to text translation using cores of a natural liquid architecture system
US8818916B2 (en) 2005-10-26 2014-08-26 Cortica, Ltd. System and method for linking multimedia data elements to web pages
US9372940B2 (en) 2005-10-26 2016-06-21 Cortica, Ltd. Apparatus and method for determining user attention using a deep-content-classification (DCC) system
US20170185690A1 (en) * 2005-10-26 2017-06-29 Cortica, Ltd. System and method for providing content recommendations based on personalized multimedia content element clusters
US9558449B2 (en) 2005-10-26 2017-01-31 Cortica, Ltd. System and method for identifying a target area in a multimedia content element
US7676463B2 (en) * 2005-11-15 2010-03-09 Kroll Ontrack, Inc. Information exploration systems and method
US8195657B1 (en) 2006-01-09 2012-06-05 Monster Worldwide, Inc. Apparatuses, systems and methods for data entry correlation
US8122013B1 (en) * 2006-01-27 2012-02-21 Google Inc. Title based local search ranking
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
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
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
US7640234B2 (en) * 2006-02-09 2009-12-29 Ebay Inc. Methods and systems to communicate information
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
US9443333B2 (en) * 2006-02-09 2016-09-13 Ebay Inc. Methods and systems to communicate information
US7689554B2 (en) * 2006-02-28 2010-03-30 Yahoo! Inc. System and method for identifying related queries for languages with multiple writing systems
US7814097B2 (en) * 2006-03-07 2010-10-12 Yahoo! Inc. Discovering alternative spellings through co-occurrence
US7716229B1 (en) * 2006-03-31 2010-05-11 Microsoft Corporation Generating misspells from query log context usage
US8600931B1 (en) 2006-03-31 2013-12-03 Monster Worldwide, Inc. Apparatuses, methods and systems for automated online data submission
US20070248026A1 (en) * 2006-04-19 2007-10-25 Electronic Data Systems Corporation System, Method, and Computer Program Product for Concept Network Based Collaboration
CA2652150A1 (en) * 2006-06-13 2007-12-21 Microsoft Corporation Search engine dash-board
US7529740B2 (en) * 2006-08-14 2009-05-05 International Business Machines Corporation Method and apparatus for organizing data sources
US10733326B2 (en) 2006-10-26 2020-08-04 Cortica Ltd. System and method for identification of inappropriate multimedia content
US8195734B1 (en) 2006-11-27 2012-06-05 The Research Foundation Of State University Of New York Combining multiple clusterings by soft correspondence
US7822734B2 (en) * 2006-12-12 2010-10-26 Yahoo! Inc. Selecting and presenting user search results based on an environment taxonomy
US8024280B2 (en) * 2006-12-21 2011-09-20 Yahoo! Inc. Academic filter
US8112402B2 (en) * 2007-02-26 2012-02-07 Microsoft Corporation Automatic disambiguation based on a reference resource
US8583419B2 (en) * 2007-04-02 2013-11-12 Syed Yasin Latent metonymical analysis and indexing (LMAI)
US7672937B2 (en) * 2007-04-11 2010-03-02 Yahoo, Inc. Temporal targeting of advertisements
US8949214B1 (en) 2007-04-24 2015-02-03 Wal-Mart Stores, Inc. Mashup platform
KR20080096005A (ko) * 2007-04-26 2008-10-30 엔에이치엔(주) 키워드 제공 범위에 따라 키워드 제공 방법 및 그 시스템
US8051056B2 (en) * 2007-05-29 2011-11-01 Microsoft Corporation Acquiring ontological knowledge from query logs
US8392446B2 (en) * 2007-05-31 2013-03-05 Yahoo! Inc. System and method for providing vector terms related to a search query
US20090006311A1 (en) * 2007-06-28 2009-01-01 Yahoo! Inc. Automated system to improve search engine optimization on web pages
US8862608B2 (en) * 2007-11-13 2014-10-14 Wal-Mart Stores, Inc. Information retrieval using category as a consideration
US7870132B2 (en) * 2008-01-28 2011-01-11 Microsoft Corporation Constructing web query hierarchies from click-through data
US8589395B2 (en) * 2008-04-15 2013-11-19 Yahoo! Inc. System and method for trail identification with search results
US10387837B1 (en) 2008-04-21 2019-08-20 Monster Worldwide, Inc. Apparatuses, methods and systems for career path advancement structuring
US9798807B2 (en) * 2008-05-06 2017-10-24 Excalibur Ip, Llc Algorithmically generated topic pages
US8065310B2 (en) * 2008-06-25 2011-11-22 Microsoft Corporation Topics in relevance ranking model for web search
US10025855B2 (en) * 2008-07-28 2018-07-17 Excalibur Ip, Llc Federated community search
GB2463669A (en) * 2008-09-19 2010-03-24 Motorola Inc Using a semantic graph to expand characterising terms of a content item and achieve targeted selection of associated content items
US20100094855A1 (en) * 2008-10-14 2010-04-15 Omid Rouhani-Kalleh System for transforming queries using object identification
US20100094826A1 (en) * 2008-10-14 2010-04-15 Omid Rouhani-Kalleh System for resolving entities in text into real world objects using context
US20100094846A1 (en) * 2008-10-14 2010-04-15 Omid Rouhani-Kalleh Leveraging an Informational Resource for Doing Disambiguation
US8041733B2 (en) * 2008-10-14 2011-10-18 Yahoo! Inc. System for automatically categorizing queries
US20100185651A1 (en) * 2009-01-16 2010-07-22 Google Inc. Retrieving and displaying information from an unstructured electronic document collection
US8615707B2 (en) * 2009-01-16 2013-12-24 Google Inc. Adding new attributes to a structured presentation
US8452791B2 (en) 2009-01-16 2013-05-28 Google Inc. Adding new instances to a structured presentation
US8412749B2 (en) 2009-01-16 2013-04-02 Google Inc. Populating a structured presentation with new values
US8977645B2 (en) * 2009-01-16 2015-03-10 Google Inc. Accessing a search interface in a structured presentation
CN101477542B (zh) * 2009-01-22 2013-02-13 阿里巴巴集团控股有限公司 一种抽样分析方法、系统和设备
US20110106819A1 (en) * 2009-10-29 2011-05-05 Google Inc. Identifying a group of related instances
TWI601024B (zh) * 2009-07-06 2017-10-01 Alibaba Group Holding Ltd Sampling methods, systems and equipment
US8285716B1 (en) * 2009-12-21 2012-10-09 Google Inc. Identifying and ranking digital resources relating to places
US8375061B2 (en) * 2010-06-08 2013-02-12 International Business Machines Corporation Graphical models for representing text documents for computer analysis
JP5921570B2 (ja) * 2010-12-30 2016-05-24 プライマル フュージョン インコーポレイテッド 環境入力に基づいて情報を提供するために、知識表現を使用するシステム及び方法
US8983995B2 (en) 2011-04-15 2015-03-17 Microsoft Corporation Interactive semantic query suggestion for content search
DE112012006412T5 (de) * 2012-05-24 2015-02-12 Hitachi, Ltd. System zur verteilten Datensuche, Verfahren zur verteilten Datensuche und Managementcomputer
US9524520B2 (en) 2013-04-30 2016-12-20 Wal-Mart Stores, Inc. Training a classification model to predict categories
US9524319B2 (en) 2013-04-30 2016-12-20 Wal-Mart Stores, Inc. Search relevance
US10229201B2 (en) * 2014-07-31 2019-03-12 International Business Machines Corporation Interface for simultaneous display of selected items from search engine results
US20160092595A1 (en) * 2014-09-30 2016-03-31 Alcatel-Lucent Usa Inc. Systems And Methods For Processing Graphs
US10552994B2 (en) * 2014-12-22 2020-02-04 Palantir Technologies Inc. Systems and interactive user interfaces for dynamic retrieval, analysis, and triage of data items
US9495614B1 (en) * 2015-02-27 2016-11-15 Google Inc. Verifying labels for images using image recognition
US10268732B2 (en) * 2015-06-29 2019-04-23 Google Llc Ranking native applications and native application deep links
US11301502B1 (en) * 2015-09-15 2022-04-12 Google Llc Parsing natural language queries without retraining
CN106682012B (zh) * 2015-11-06 2020-12-01 阿里巴巴集团控股有限公司 商品对象信息搜索方法及装置
US10552427B2 (en) 2016-04-29 2020-02-04 Nutanix, Inc. Searching for information relating to virtualization environments
US20180349447A1 (en) * 2017-06-02 2018-12-06 Apple Inc. Methods and systems for customizing suggestions using user-specific information
US11760387B2 (en) 2017-07-05 2023-09-19 AutoBrains Technologies Ltd. Driving policies determination
WO2019012527A1 (en) 2017-07-09 2019-01-17 Cortica Ltd. ORGANIZATION OF DEPTH LEARNING NETWORKS
US20190026295A1 (en) * 2017-07-19 2019-01-24 Nutanix, Inc. System and method for obtaining application insights through search
US11023472B2 (en) 2018-02-27 2021-06-01 Nutanix, Inc. System and method for troubleshooting in a virtual computing system
US20200110996A1 (en) * 2018-10-05 2020-04-09 International Business Machines Corporation Machine learning of keywords
US11126870B2 (en) 2018-10-18 2021-09-21 Cartica Ai Ltd. Method and system for obstacle detection
US20200133308A1 (en) 2018-10-18 2020-04-30 Cartica Ai Ltd Vehicle to vehicle (v2v) communication less truck platooning
US10839694B2 (en) 2018-10-18 2020-11-17 Cartica Ai Ltd Blind spot alert
US11181911B2 (en) 2018-10-18 2021-11-23 Cartica Ai Ltd Control transfer of a vehicle
US10748038B1 (en) 2019-03-31 2020-08-18 Cortica Ltd. Efficient calculation of a robust signature of a media unit
US11700356B2 (en) 2018-10-26 2023-07-11 AutoBrains Technologies Ltd. Control transfer of a vehicle
US10789535B2 (en) 2018-11-26 2020-09-29 Cartica Ai Ltd Detection of road elements
US11643005B2 (en) 2019-02-27 2023-05-09 Autobrains Technologies Ltd Adjusting adjustable headlights of a vehicle
US11285963B2 (en) 2019-03-10 2022-03-29 Cartica Ai Ltd. Driver-based prediction of dangerous events
US11694088B2 (en) 2019-03-13 2023-07-04 Cortica Ltd. Method for object detection using knowledge distillation
US11132548B2 (en) 2019-03-20 2021-09-28 Cortica Ltd. Determining object information that does not explicitly appear in a media unit signature
US11222069B2 (en) 2019-03-31 2022-01-11 Cortica Ltd. Low-power calculation of a signature of a media unit
US10796444B1 (en) 2019-03-31 2020-10-06 Cortica Ltd Configuring spanning elements of a signature generator
US10776669B1 (en) 2019-03-31 2020-09-15 Cortica Ltd. Signature generation and object detection that refer to rare scenes
US10789527B1 (en) 2019-03-31 2020-09-29 Cortica Ltd. Method for object detection using shallow neural networks
US10748022B1 (en) 2019-12-12 2020-08-18 Cartica Ai Ltd Crowd separation
US11593662B2 (en) 2019-12-12 2023-02-28 Autobrains Technologies Ltd Unsupervised cluster generation
US11590988B2 (en) 2020-03-19 2023-02-28 Autobrains Technologies Ltd Predictive turning assistant
US11827215B2 (en) 2020-03-31 2023-11-28 AutoBrains Technologies Ltd. Method for training a driving related object detector
US11816112B1 (en) * 2020-04-03 2023-11-14 Soroco India Private Limited Systems and methods for automated process discovery
US11756424B2 (en) 2020-07-24 2023-09-12 AutoBrains Technologies Ltd. Parking assist

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07248948A (ja) * 1994-03-10 1995-09-26 Fujitsu Ltd データベースの動的構成方式
US5675819A (en) * 1994-06-16 1997-10-07 Xerox Corporation Document information retrieval using global word co-occurrence patterns
JPH08137898A (ja) * 1994-11-08 1996-05-31 Nippon Telegr & Teleph Corp <Ntt> 文書検索装置
US5758257A (en) * 1994-11-29 1998-05-26 Herz; Frederick System and method for scheduling broadcast of and access to video programs and other data using customer profiles
US6006221A (en) 1995-08-16 1999-12-21 Syracuse University Multilingual document retrieval system and method using semantic vector matching
US6076088A (en) 1996-02-09 2000-06-13 Paik; Woojin Information extraction system and method using concept relation concept (CRC) triples
US5819258A (en) * 1997-03-07 1998-10-06 Digital Equipment Corporation Method and apparatus for automatically generating hierarchical categories from large document collections
AU5581599A (en) 1998-08-24 2000-03-14 Virtual Research Associates, Inc. Natural language sentence parser
US6363373B1 (en) 1998-10-01 2002-03-26 Microsoft Corporation Method and apparatus for concept searching using a Boolean or keyword search engine
JP3335602B2 (ja) * 1999-11-26 2002-10-21 株式会社クリエイティブ・ブレインズ 思考系の解析方法および解析装置
US6772150B1 (en) 1999-12-10 2004-08-03 Amazon.Com, Inc. Search query refinement using related search phrases
SG93868A1 (en) * 2000-06-07 2003-01-21 Kent Ridge Digital Labs Method and system for user-configurable clustering of information
US6675159B1 (en) 2000-07-27 2004-01-06 Science Applic Int Corp Concept-based search and retrieval system
US6684205B1 (en) * 2000-10-18 2004-01-27 International Business Machines Corporation Clustering hypertext with applications to web searching
US7031980B2 (en) * 2000-11-02 2006-04-18 Hewlett-Packard Development Company, L.P. Music similarity function based on signal analysis
US7571177B2 (en) * 2001-02-08 2009-08-04 2028, Inc. Methods and systems for automated semantic knowledge leveraging graph theoretic analysis and the inherent structure of communication
US7403938B2 (en) 2001-09-24 2008-07-22 Iac Search & Media, Inc. Natural language query processing
WO2003067497A1 (en) * 2002-02-04 2003-08-14 Cataphora, Inc A method and apparatus to visually present discussions for data mining purposes
US7085771B2 (en) * 2002-05-17 2006-08-01 Verity, Inc System and method for automatically discovering a hierarchy of concepts from a corpus of documents
US7051023B2 (en) 2003-04-04 2006-05-23 Yahoo! Inc. Systems and methods for generating concept units from search queries

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008095034A1 (en) * 2007-01-30 2008-08-07 Google Inc. Content identification expansion
US7657514B2 (en) 2007-01-30 2010-02-02 Google Inc. Content identification expansion
US8171011B2 (en) 2007-01-30 2012-05-01 Google Inc. Content identification expansion

Also Published As

Publication number Publication date
TWI366766B (en) 2012-06-21
KR100851706B1 (ko) 2008-08-11
US20050080795A1 (en) 2005-04-14
WO2005036351A2 (en) 2005-04-21
CN1882943A (zh) 2006-12-20
JP5197959B2 (ja) 2013-05-15
EP1678639B1 (en) 2014-06-25
TW200529009A (en) 2005-09-01
EP1678639A4 (en) 2008-02-06
CN1882943B (zh) 2010-05-12
WO2005036351A3 (en) 2006-01-26
JP2011014167A (ja) 2011-01-20
JP2007519069A (ja) 2007-07-12
EP1678639A2 (en) 2006-07-12
US7346629B2 (en) 2008-03-18
JP5461360B2 (ja) 2014-04-02

Similar Documents

Publication Publication Date Title
KR100851706B1 (ko) 슈퍼유닛을 사용하는 검색 처리 시스템 및 방법
US7707201B2 (en) Systems and methods for managing and using multiple concept networks for assisted search processing
US7562076B2 (en) Systems and methods for search query processing using trend analysis
JP4994243B2 (ja) クエリの自動的カテゴリ化による検索処理
US9195942B2 (en) Method and system for mining information based on relationships
US7340460B1 (en) Vector analysis of histograms for units of a concept network in search query processing
US6792414B2 (en) Generalized keyword matching for keyword based searching over relational databases
US7827181B2 (en) Click distance determination
US7571177B2 (en) Methods and systems for automated semantic knowledge leveraging graph theoretic analysis and the inherent structure of communication
US6704729B1 (en) Retrieval of relevant information categories
US8108405B2 (en) Refining a search space in response to user input
US8332439B2 (en) Automatically generating a hierarchy of terms
US20020073079A1 (en) Method and apparatus for searching a database and providing relevance feedback
US20060047649A1 (en) Internet and computer information retrieval and mining with intelligent conceptual filtering, visualization and automation
Cohen et al. Learning to understand the web
Li et al. Text document topical recursive clustering and automatic labeling of a hierarchy of document clusters
Chen et al. A personalised query suggestion agent based on query-concept bipartite graphs and Concept Relation Trees
KR20240015280A (ko) 트렌드 분석을 이용한 검색 쿼리 처리 시스템 및 방법
Amalia Analyzing Characteristics and Implementing Machine Learning Algorithms for Internet Search
Nandi et al. HAMSTER: Human Assisted Mapping of Schema & Taxonomies to Enhance Relevance

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120827

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20130722

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140722

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150626

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160630

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20170719

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20180718

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20190718

Year of fee payment: 12