KR101644667B1 - 확장가능한 클러스터링 - Google Patents

확장가능한 클러스터링 Download PDF

Info

Publication number
KR101644667B1
KR101644667B1 KR1020117023622A KR20117023622A KR101644667B1 KR 101644667 B1 KR101644667 B1 KR 101644667B1 KR 1020117023622 A KR1020117023622 A KR 1020117023622A KR 20117023622 A KR20117023622 A KR 20117023622A KR 101644667 B1 KR101644667 B1 KR 101644667B1
Authority
KR
South Korea
Prior art keywords
cluster
data structure
items
keyword
model
Prior art date
Application number
KR1020117023622A
Other languages
English (en)
Other versions
KR20110138229A (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 KR20110138229A publication Critical patent/KR20110138229A/ko
Application granted granted Critical
Publication of KR101644667B1 publication Critical patent/KR101644667B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2465Query processing support for facilitating data mining operations in structured databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/26Visual data mining; Browsing structured data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • G06F18/232Non-hierarchical techniques
    • G06F18/2321Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B40/00ICT specially adapted for biostatistics; ICT specially adapted for bioinformatics-related machine learning or data mining, e.g. knowledge discovery or pattern finding
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16CCOMPUTATIONAL CHEMISTRY; CHEMOINFORMATICS; COMPUTATIONAL MATERIALS SCIENCE
    • G16C20/00Chemoinformatics, i.e. ICT specially adapted for the handling of physicochemical or structural data of chemical particles, elements, compounds or mixtures
    • G16C20/70Machine learning, data mining or chemometrics
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16HHEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
    • G16H50/00ICT specially adapted for medical diagnosis, medical simulation or medical data mining; ICT specially adapted for detecting, monitoring or modelling epidemics or pandemics
    • G16H50/70ICT specially adapted for medical diagnosis, medical simulation or medical data mining; ICT specially adapted for detecting, monitoring or modelling epidemics or pandemics for mining of medical data, e.g. analysing previous cases of other patients
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2216/00Indexing scheme relating to additional aspects of information retrieval not explicitly covered by G06F16/00 and subgroups
    • G06F2216/03Data mining

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Probability & Statistics with Applications (AREA)
  • Evolutionary Biology (AREA)
  • Public Health (AREA)
  • Computational Linguistics (AREA)
  • Epidemiology (AREA)
  • Fuzzy Systems (AREA)
  • Crystallography & Structural Chemistry (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Biomedical Technology (AREA)
  • Bioethics (AREA)
  • Chemical & Material Sciences (AREA)
  • Pathology (AREA)
  • Computer Hardware Design (AREA)
  • Primary Health Care (AREA)
  • Biophysics (AREA)
  • Biotechnology (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Image Analysis (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

확장가능한 클러스터링 시스템이 설명된다. 일 실시형태에서, 클러스터링 시스템은 수천만의 특징을 갖는 수백만의 아이템이 클러스터링되는 극히 큰 스케일 애플리케이션에 대해 동작할 수 있다. 일 실시형태에서, 클러스터링 시스템은 데이터 세트에서의 불확실성을 모델링하는 확률적 클러스터 모델을 이용하는데, 여기서 데이터 세트는 예를 들어 키워드에 가입한 광고, 텍스트 키워드를 포함하는 텍스트 문서, 연관 특성를 갖는 이미지 또는 기타 아이템일 수 있다. 일 실시형태에서, 클러스터링 시스템은 주어진 아이템과 연관시키기 위한 추가의 특성을 생성하는데 사용된다. 예를 들어, 광고주가 가입하고 싶어할 수 있는 추가의 키워드가 제안된다. 생성되는 추가의 특성은 일부 실시형태에서 이들 특성을 랭킹하는데 사용될 수 있는 연관 확률 값을 갖는다. 일부 예에서 생성된 특성에 대한 사용자 피드백이 수신되고 특성 생성 프로세스를 개정하는데 사용된다.

Description

확장가능한 클러스터링{SCALABLE CLUSTERING}
어떤 유사성의 개념에 기초하여 아이템을 클러스터링하는 것은 많은 애플리케이션에서 자주 일어나는 문제이다. 예를 들어, 문서를 관련된 문서의 그룹으로 클러스터링하는 것은 정보 불러오기 애플리케이션, 문서 분석 애플리케이션 및 기타 태스크에 대해 요구된다. 클러스터링될 아이템은 문서, 이메일, 웹 페이지, 광고, 이미지, 비디오 또는 여하한 다른 유형의 아이템일 수 있다. 클러스터링은 카테고리화 또는 분류(classifying)라고도 할 수 있다.
몇몇의 이전 방안에서는 감독 분류 방식(supervised classification scheme)이 관여된다. 이들 방식에서, 머신 학습 시스템이 분류를 자동적으로 수행하도록 트레이닝하기 위해, 분류될 아이템의 중요한 부분의 수동 라벨링이 요구된다. 그러나, 이 방안은, 웹 스케일 애플리케이션에서와 같은 매우 큰 집합의 아이템에 대해서는 실용적이지 않다. 이러한 상황에서, 아이템의 중요 부분의 수동 라벨링을 제공하는 것은 실용적이지 않다.
무감독 클러스터링(unsupervised clustering) 방식도 알려져 있는데, 이에 의해 클러스터링 시스템이 데이터에 가장 잘 맞는 어떤 카테고리든지 자유롭게 생성할 수 있다. 그러한 방식의 예는 k-평균(k-means) 클러스터링 및 병합식(agglomerative) 클러스터링을 포함한다. 그러나, 이들 방식 중 많은 것은, 요구되는 트레이닝 시간이 매우 길고 및/또는 결과의 질이 낮다는 점에서 거대한 데이터 세트(수백의 클러스터로 크러스터링될 수십만의 아이템)에 대해 잘 확장(scaling up)되지 않는다.
다른 유형의 비감독 클러스트링 방식에는, 베르누이 프로파일의 혼합을 이용하여 클러스터링 모델을 형성하는 것과 최대 확률(maximum likelihood) 방법을 이용하여 모델 파라미터의 최적 값을 학습하는 것이 관여되었다. 이러한 최대 확률 방법은 직접 그레디언트 상승(direct gradient ascent) 및 기대값 최대화(expectation maximization; EM)를 포함한다. 그러나, 이러한 최대 확률 방법은, 수렴(converge)을 위해 트레이닝 동안 데이터를 수회 지나갈(pass over) 것을 요구하며, 그래서 이들 방식은 극단적으로 거대한 데이터 세트에 대해서는 적합하지 않다. 이들 방식에서, 확률의 여러가지 모드 때문에 초기화가 중요하지만, 이는 고차(high dimensional) 데이터가 관여되는 애플리케이션에는 달성하기가 매우 어렵다.
여기에 설명된 실시형태는 알려진 클러스터링 시스템의 어떠한 또는 모든 단점을 해결하는 구현으로 제한되지 않는다.
이하는 독자의 기본적인 이해를 제공하기 위해 개시의 단순화된 개요를 제시한다. 이 개요는 개시내용의 완전한 개요는 아니며, 본 발명의 핵심/중요 요소를 식별하거나 발명의 범위를 경계 짓는 것은 아니다. 유일한 목적은, 이후에 제시되는 더 상세한 설명 전에 여기에 개시된 일부 개념을 단순화된 형태로 제시하는 것이다.
확장가능한(scalable) 클러스터링 시스템이 설명된다. 일 실시형태에서, 클러스터링 시스템은 수천만의 특징을 갖는 수백만의 아이템이 클러스터링되는 극히 큰 스케일 애플리케이션에 대해 동작할 수 있다. 일 실시형태에서, 클러스터링 시스템은 데이터 세트에서의 불확실성을 모델링하는 확률적 클러스터 모델을 이용하는데, 여기서 데이터 세트는 예를 들어 키워드에 가입한 광고, 텍스트 키워드를 포함하는 텍스트 문서, 연관 특성를 갖는 이미지 또는 기타 아이템일 수 있다. 일 실시형태에서, 클러스터링 시스템은 주어진 아이템과 연관시키기 위한 추가의 특성을 생성하는데 사용된다. 예를 들어, 광고주가 가입하고 싶어할 수 있는 추가의 키워드가 제안된다. 생성되는 추가의 특성은 일부 실시형태에서 이들 특성을 랭킹하는데 사용될 수 있는 연관 확률 값을 갖는다. 일부 예에서 생성된 특성에 대한 사용자 피드백이 수신되고 특성 생성 프로세스를 개정하는데 사용된다.
수반되는 특징 중 많은 것이 첨부된 도면과 함께 고려되는 아래의 상세한 설명을 참조하여 더 잘 이해될 것이므로, 이들은 더 쉽게 인식될 것이다.
첨부된 도면을 참고하여 읽을 때 아래의 상세한 설명으로부터 본 설명이 더 잘 이해될 것이다.
도 1은 클러스터링 시스템의 개략도이다.
도 2는 데이터 구조에서 유지되는 모델 파라미터의 개략도이다.
도 3은 클러스터링 모델의 트레이닝 방법의 개략도이다.
도 4는 키워드 가입을 갖고 2개의 클러스터를 보여주는 광고의 개략도이다.
도 5는 추가된 광고를 도시하는 도 4의 개략도이다.
도 6은 클러스터링 모델을 트레이닝하는 방법의 흐름도이다.
도 7은 클러스터링 시스템에서 사용하기 위한 예시적인 통제(directed) 그래픽 모델이다.
도 8은 클러스터링 시스템에서 사용하기 위한 예시적인 인자 그래프이다.
도 9는 클러터(clutter) 클러스터 엔진 및 가비지 컬렉션 엔진의 개략적인 도면이다.
도 10은 가비지 컬렉션 엔진에서의 방법의 흐름도이다.
도 11은 가비지 컬렉션 엔진에서의 다른 방법의 흐름도이다.
도 12는 가비지 컬렉션 엔진에서의 다른 방법의 흐름도이다.
도 13은 병렬 프로세싱을 이용하여 클러스터링 시스템을 트레이닝하는 방법의 흐름도이다.
도 14는 광고주에게 키워드를 제안하는 방법의 흐름도이다.
도 15는 2개의 상이한 클러스터에서의 가장 현저한 특징의 표이다.
도 16은 클러스터링 시스템의 실시형태가 구현될 수 있는 예시적인 컴퓨터 기반 장치를 도시한다.
첨부된 도면에서 유사한 참조 부호는 유사한 부분을 지시하는데 사용된다.
첨부된 도면과 관련하여 아래에 제공되는 상세한 설명은 본 예의 설명으로 의도된 것이고 본 예가 구성 또는 이용될 수 있는 유일한 형태를 제시하려는 것은 아니다. 본 설명은 예를 구성하고 동작시키기 위한 단계의 시퀀스 및 예의 구성을 제시한다. 그러나, 동일한 또는 균등한 기능 및 시퀀스가 다른 예에 의해서 이루어질 수 있다.
본 예는 여기서 광고가 가입한 키워드를 클러스터링하기 위한 클러스터링 시스템에서 구현되는 것으로 설명되고 도시되지만, 설명된 시스템은 제한이 아니라 예시로서 제공된다. 당업자가 인식하는 바와 같이, 본 예는 클러스터링 시스템의 다양한 다른 유형에서 애플리케이션에 대해 적합하다.
도 1은 특징을 갖는 아이템(100)에 대한 정보를 입력으로 취하는 클러스터링 시스템(101)의 개략도이다. 예를 들어, 아이템은 광고일 수 있고 특징은 광고가 가입된 키워드일 수 있다. 그러나, 이것은 필수적인 것은 아니고, 아이템은 텍스트 문서일 수 있고 특성은 그들 문서의 텍스트 단어일 수 있다. 다른 예에서, 아이템은 이미지 또는 비디오 클립일 수 있고 특성은 시각적 단어, 텍스톤(texton) 또는 다른 특성일 수 있다. 즉, 아이템은 문서, 파일, 이메일, 웹 페이지, 광고, 오디오 파일, 음성 메시지, 텍스트 스니펫(snippet), 이미지, 이름 또는 기타 아이템과 같은 여하한 적당한 유형일 수 있다. 특성은 아이템과 관련된 여하한 특징이다. 여기 설명된 실시형태에서, 주어진 아이템에 대해 가능한 특성이 매우 많아서(예를 들어, 수백에서 수백만의 가능한 특성), 클러스터링 시스템으로의 입력에는 높은 차원(dimensionality)이 있다.
클러스터링 시스템으로의 입력이 여기서 설명된 실시형태에서 2진 벡터의 형태로 제공된다. 예를 들어, 아이템이 문서이고 특성이 텍스트 단어인 경우, 주어진 문서에 대한 입력은 1과 0의 벡터인데, 1은 문서에 존재하는 텍스트 단어를 나타낸다. 0은 문서에 존재하지 않는 텍스트 단어를 나타낸다. 다른 예에서, 아이템은 재고이고 특성은 특정 시간 간격 동안 재고가 팔린 가격일 수 있다. 가격 값의 범위 또는 “빈(bin)”은 2진 벡터가 각각의 재고에 대해 형성되고 클러스터링 시스템으로의 입력으로서 제공될 수 있도록 특정될 수 있다. 다른 예에서, 아이템은 광고이고 특성은 광고가 가입한 키워드이다. 이 경우, 광고에 대한 2진 벡터는 광고가 가입한 각각의 키워드에 대한 1과 광고의 가입이 없는 각 키워드에 대한 0을 포함한다.
클러스터링 시스템(101)은 데이터 구조(102)를 유지하는 메모리를 갖는 클러스터링 엔진을 포함한다. 데이터 구조는 디폴트 상태에서 시작하는 클러스터 모델을 유지하고 큰 세트의 트레이닝 데이터를 이용하여 트레이닝된다. 트레이닝 데이터는 상술한 바와 같이 2진 벡터를 포함한다. 트레이닝 프로세스는 아래에서 상세히 설명하는 것과 같이 베이즈(Bayesian) 업데이트 프로세스를 이용하는 업데이트 엔진(103)에 의해 수행된다. 학습 프로세스 동안, 모델의 파라미터 및 이들 모델 파라미터에 관한 불확실성이 학습된다. 클러스터링 시스템(101)은 학습된 클러스터와 모델의 파라미터에 대한 세부사항과 같은 클러스터 정보(104)를 출력으로 제공한다. 모델은 모델 파라미터에 대한 불확실성을 고려하고 트레이닝 또는 업데이트 프로세스 동안 이 불확실성을 효과적으로 학습하도록 구성된다. 이전의 방식은 이런 방법으로 불확실성을 고려할 수 없었다.
도 2는 개략적인 방식으로 클러스터 모델(102)의 상세를 도시한다. 모델은 복수의 클러스터(201)를 포함한다. 명확성을 위해 3개의 클러스터만 도시되지만 실제로는 수백 또는 수천(또는 그 이상)의 클러스터가 사용될 수 있다. 사용되는 클러스터의 수는 사용가능한 구체적인 애플리케이션과 프로세싱 자원에 의존한다. 모델은 각 클러스터에 대한 클러스터 프라이어(prior)(200)도 포함한다. 이는 아이템 중 어떠한 것이 그 클러스터의 멤버임에 대한 확신을 나타내는 프라이어 확률 분포(prior probability distribution)이다. 이들 클러스터 프라이어는 프라이어 클러스터 확률 분포를 설명하는 통계(또는 파라미터)를 이용하여 저장된다. 여하한 적당한 유형의 확률 분포가 클러스터 프라이어를 나타내는데 사용될 수 있고, 여기서 설명된 실시형태에서 디리클레(Dirichlet) 분포가 사용된다. 그러나, 이는 필수적인 것이 아니며, 다른 유형의 분포가 사용될 수 있다. 이러한 방식으로 클러스터 프라이어를 사용함으로써, 모델은 클러스터의 “소프트(soft)” 표현을 갖는데, 이는 어떤 아이템이 클러스터의 멤버인지가 확률적인(probabilistic) 방식으로 정의되기 때문이다. 모델이 초기화될 때, 어떠한 아이템이 어떤 클러스터의 멤버인지에 대한 큰 불확실성이 존재하고 트레이닝이 진행함에 따라 이 불확실성은 감소할 수 있다. 클러스터 프라이어는 모델의 파라미터이므로 이 불확실성에 대한 지식을 포착할 수 있다.
모델은 각각의 클러스터(201) 및 특성(202) 조합에 대한 특성 프라이어 확률 분포(203)를 포함할 수도 있다. 예를 들어, 도 2에서, 클러스터 1, 특성 A에 대한 특성 프라이어 확률 분포는 t1A이다. 특성 프라이어 확률 분포 t1A는 클러스터 1내의 아이템이 특성 A를 갖는다는 확신을 나타낸다. 특성 프라이어는 프라이어 특성 분포를 설명하는 통계 또는 파라미터로서 저장된다. 특성 프라이어를 나타내기 위해 여하한 적당한 유형의 확률 분포가 사용될 수 있고, 여기서 설명된 실시형태에서는 베타 분포가 사용된다. 베타 분포는 파라미터 α와 β에 의해 설명될 수 있으며, 이들은 특성 프라이어의 각각에 대해 모델에 의해 저장될 수 있다. 대강의(sparse) 표현을 제공하기 위해, 특성 프라이어 확률 분포는 클러스터 및 특성 조합 중 많은 것에 대해 디폴트로 설정될 수 있다. 이는 아래에서 더 상세히 설명된다.
상기한 바와 같이, 모델은 디폴트 값으로 설정된 파라미터로 초기 상태에서 시작할 수 있다. 그 후 큰 데이터 세트에 대해 모델을 트레이닝하기 위해 학습 또는 트레이닝 프로세스가 일어날 수 있다. 예를 들어, 데이터 세트는 수십만 이상의 아이템을 포함할 수 있다. 모델의 파라미터는 확률 변수(random variable)로서 다루어진다. 추정(inference)은 파라미터의 사후(posterior) 분포를 계산하는 것을 포함하고, 이는 그의 진정한 값에 대한 불확실성을 포착한다. 이는 많은 불확실성이 남아있는 파라미터 값의 해석에서 주의를 할 수 있게 한다. 이는 또한, 모델이 어떤 파라미터 값에 대해 가장 불확실한지를 선언하므로, 실험적 설계가 가능하게 한다. 또한, 트레이닝 프로세스가 각 데이터 지점 (또는 아이템)에 한번만 액세스하면 충분하다. 이는 프로세스가 웹 애플리케이션에서 그런 것처럼 많은 단어(corpora)로 성공적으로 확장할 수 있도록 한다.
도 3은 클러스터 모델(102)을 트레이닝하는 방법의 흐름도이다. 클러스터링 시스템은 클러스터 모델을 유지하는 데이터 구조를 저장한다(300). 클러스터 모델은 그 최적 값에 대한 불확실성을 포착하는 상술한 바와 같은 파라미터를 갖는다. 파라미터는 초기화되고(301), 클러스터링 시스템은 트레이닝을 위해 사용되는 아이템의 저장소로부터 특징을 갖는 아이템을 포함하는 제 1 데이터 지점을 수신한다(301). 모델 파라미터에 노이즈가 선택적으로 도입되고(303), 사후 확률 분포를 획득하기 위해 관측에 기초하여 프라이어 확률 분포를 업데이트하는데 베이즈 업데이트 프로세스가 사용된다. 하나의 데이터 지점을 처리한 후에 얻어진 사후 분포는 다음 데이터 지점을 처리하기 위해 프라이어 분포로서 전달된다. 이는 데이터 구조(304)를 업데이트하고 저장된 관측(305)을 선택적으로 삭제함으로써 이루어진다. 도 3에 표시된 바와 같이 다음 데이터 지점에 대해 프로세스가 진행되고 각 데이터 지점은 한 번만 처리되면 된다. 즉, 트레이닝 프로세스는 필요하면 각 데이터 지점을 한 번 이상 액세스하는데 사용될 수 있지만, 이는 필수적인 것이 아니다.
도 4는 키워드 가입(401)을 갖고 클러스터 모델에서 표시되는 2개의 클러스터(403)를 도시하는 광고(400)의 개략도이다. 각 클러스터에 대해, 특성 프라이어(405)는 각 특성(404)에 대해 도시되고, 이는 이 예에서 키워드이다. 각 클러스터는 클러스터 프라이어(미도시)를 갖는다. 이 예에서, 클러스터 1, 사무실에 대한 키워드 가입 프라이어 베타 분포는 클러스터 1에서 여하한 광고가 키워드 “오피스”에 가입한다는 상대적으로 강한 확신을 나타내는 0.8의 평균을 갖는다. 이 예에서, 베타 확률 분포의 평균만이 도시되지만 방법은 이들 평균값에 대한 확신에 있어서의 불확실성을 고려할 수 있다. 다른 클러스터 및 특성 조합에 대한 키워드 가입 프라이어도 주어진다.
다음 데이터 지점이 트레이닝 아이템으로부터 획득되고 트레이닝 동안 모델을 업데이트하는데 사용된다고 가정하자. 이는 도 5에 도시되는데, 이는 도 4와 동일하지만 또 다른 광고(500)를 도시한다. 이 추가적인 광고(500)는 키워드 “사무실,” “TV 쇼” 및 “코메디”를 갖는다. 이 예에서, 키워드 “코메디”는 이전에 모델에 의해 관측되지 않았고 그래서 이 키워드는 디폴트 키워드 가입 프라이어(예에서 0.5로 도시됨)로 각 클러스터에 부가된다. 그 후 업데이트 프로세스가 일어난다. 이 업데이트 프로세스 동안, 각 클러스터에 대해 책임(responsibility)(402)이 계산된다. 클러스터의 책임은 그 클러스터가 특정 아이템(이 경우 광고(500))을 생성하는 확률로서 생각될 수 있다. 책임(402)의 합은 1이다. 업데이트 프로세스는 특성 프라이어(이 경우에서 키워드 가입 프라이어)에 대한 변화를 초래하고, 이는 도 5에서 화살표(502)에 의해 표시된다. 상향 화살표는 특성 프라이어 확률이 화살표의 크기에 의해 표시되는 양만큼 증가됨을 나타낸다. 하향 화살표는 특성 프라이어 확률이 화살표의 크기에 의해 표시되는 양만큼 감소됨을 나타낸다.
특성 프라이어에 대한 업데이트의 양은 책임에 관련되고 또한 그 피처 프라이어에 대한 불확실성의 양에도 관련된다. 예를 들어, 상대적으로 높은 확실성으로 알려진 특성 프라이어는, 매우 불확실한 특성 프라이어보다, 업데이트 프로세스에 의해 많이 변화될 가능성이 낮다. 또한, 책임이 높다면 특성 프라이어에 대한 변화의 크기가 낮은 책임에 대한 것보다 크다. 단일 데이터 지점(광고(500))에 대한 업데이트 프로세스 후에, 책임 값은 폐기될 수 있고 프로세는 다음 데이터 지점으로 이동한다.
클러스터 모델은 인자 그래프(factor graph)로서 데이터 구조에 저장될 수 있다. 도 6을 참조하면, 인자 그래프가 생성되고(600) 인자 그래프의 노드는 모델의 디폴트 파라미터 값으로 인스턴트화된다(601). 트레이닝 동안, 제 1 아이템이 트레이닝 아이템 세트로부터 취해지고 이 “관측된” 아이템(603)에 대한 정보가 인자 그래프에 입력된다. 베이즈 추정을 이용하여 파라미터를 업데이트하기 위해 인자 그래프에 대해 메시지 전달이 수행될 수 있다(602). 그 후 프로세스는 트레이닝 세트에서 다음 아이템으로 이동하고 트레이닝 세트로부터의 각 아이템이 한 번씩 처리될 때까지 반복된다.
클러스터 모델에서 사용하기 위한 예시적인 인자 그래프의 일부가 도 8에 도시되고 이 문서에서 이후에 더 자세히 설명된다.
클러스터링 시스템의 상세한 예가 이제 설명되는데, 여기서 아이템은 광고이고 특성은 광고가 가입한 키워드이다. 그러나, 이 예는 다른 유형의 아이템 및 특성에도 적용가능함을 유의하라.
N개의 오브젝트의 세트를 고려하는데, 여기서 i번째 객체는 2진 변수의 D-차원 벡터
Figure 112011078355789-pct00001
Figure 112011078355789-pct00002
에 의해 설명된다. 구체적인 애플리케이션에서, 이들 오브젝트는 지불된 검색(paid searach)에서, 이들이 가입한 키워드의 세트에 의해 설명되는 온라인 광고이다. 총 D개의 특유한 키워드가 있고, 벡터
Figure 112011078355789-pct00003
는 i번째 광고가 가입한 키워드에 대해 1을 포함한다: i번째 광고가 d번째 키워드에 가입한 경우, xid = 1, 그렇지 않으면 xid = 0.
광고의 키워드 벡터는 K개 클러스터 중 하나 또는 혼합 구성요소에 의해 생성된다. 각각의 광고
Figure 112011078355789-pct00004
는 광고가 속하는 클러스터의 인덱스를 나타내는 그와 관련된 변수
Figure 112011078355789-pct00005
를 갖는다. i 번째 광고가 클러스터 j에 속하면, ci = j. 클러스터 내에서, 광고는 독립 베르누이 확률 분포에 따라 키워드에 가입한다. i번째 광고가 클러스터 j에 속하면, 그가 d번째 키워드에 가입할 확률은
Figure 112011078355789-pct00006
로 주어진다. 그 결과, i번째 광고가 클러스터 j에 속할 확률은 클러스터-독립 베르누이 프로파일에 의해 주어진다:
Figure 112011078355789-pct00007
광고가 어떤 클러스터에 속하는지는 미리 알려지지 않으며, 그 불확성은 i 번째 광고(또는 실제로는 여하한 다른 광고)가 클라스터 j에 속하는 프라이어 확률에 의해 포착된다:
Figure 112011078355789-pct00008
. 클러스터 프라이어
Figure 112011078355789-pct00009
및 키워드
Figure 112011078355789-pct00010
에 가입할 확률이 알려지면, 모델의 샘플링 분포는 베르누이 프로파일의 혼합에 의해 주어진다:
Figure 112011078355789-pct00011
이 모델로부터 광고를 샘플링하는 데에는, 파라미터 벡터
Figure 112011078355789-pct00012
를 이용하여 이산 분포로부터 그를 도출함으로써 K개 클러스터 중 첫 번째 것을 선택하는 것이 관여된다. 두 번째 단계에서, 광고가 가입한 키워드가 선택된 클러스터의 베르누이 프로파일로부터 도출된다.
여기에 제시된 베르누이 프로파일의 혼합에 대해, 키워드 가입의 베르누이 확률은 공액 프라이어 베타 분포
Figure 112011078355789-pct00013
가 주어진다. 파라미터 α와 β는 유사 카운트로 해석될 수 있다: α는 키워드가 스위치 온된 횟수로서 해석될 수 있고, β는 키워드가 오프인 횟수를 갖는다. 키워드 가입 확률 t의 확률 밀도 함수(probability density function)(PDF) 는
Figure 112011078355789-pct00014
이다.
유사 카운트의 합이 클수록, t의 값에 대한 불확실성이 작다.
다른 미지의 관심 변수는 프라이어 클러스터 확률
Figure 112011078355789-pct00015
이고, 이들은 파라미터 벡터
Figure 112011078355789-pct00016
를 갖는 디리클레 프라이어 분포
Figure 112011078355789-pct00017
가 주어진다. 베타 분포에 유사하게,
Figure 112011078355789-pct00018
는 클러스터 j에 속하는 광고의 수의 유사 카운트로서 해석될 수 있다.
도 7은, 베타 및 디리클레 분포의 파라미터를 포함하는, 풀(full) 베이즈 모델에 대응하는 통제(directed) 그래픽 모델을 도시한다. 플레이트(700, 701)에 포함된 그래프 부분은 플레이트 내 인텍스에 따라 복제된다. 예를 들어, 외곽 플레이트의 i의 고정 값에 대해, 내부 플레이트는 키워드 인덱스 d의 각 값에 대해 1회씩, D회 복제된다. 화살표는 변수간의 의존성을 나타낸다.
그래프 표현은 변수간의 조건적인 독립성을 명확하게 드러내는 이점을 갖는데, 이는 주변 사후 분포(marginal posterior distributions)를 효과적으로 계산하기 위해 중요하다. 도 8은 i로 인덱스된 단일 데이터지점에 대해 도 7의 통제 그래프의 슬라이스(slice)의 인자 그래프 표시를 도시한다. 인자 그래프는 인자 노드(음영 정사각형)(800, 802)에 연결된 변수 노드(원)(810, 802)를 이용하여 동시 확률 분포(joint probability distributions)를 나타내는 2부분의 그래프이다. 인자 노드는 그들에 접속된 변수들 사이의 기능적 관계를 표시하고, 모든 인자의 곱(product)은 동시 확률 분포에 대응한다. 마지널 분포는 인자 노드로부터 변수 노드로의 메시지를 계산함으로써 얻어진다: 여하한 주어진 변수 노드의 마지널 분포는 그의 인입 메시지의 곱이다. 그러므로 인자 그래프에서의 추정은 메시지 전달(passing)로 알려져 있는데, 이는 Bishop, C. M. 의 "Pattern Recognition and Machine Learning" Springer 2006에 자세히 설명되며, 이는 그 전체가 여기에 참조로 포함된다. 도 8의 표현은 관측된 변수
Figure 112011078355789-pct00019
를 인자
Figure 112011078355789-pct00020
로 흡수한다. 그러므로 메시지 전달에 의해 획득되는 키워드 가입 확률 및 클러스터 할당 확률
Figure 112011078355789-pct00022
의 마지널(marginal)은 희망하는 사후 분포이다.
도 8의 인자 그래프는 단일의 광고만을 제시하지만, D x K 단위의 변수를 이미 포함하는데, 키워드의 수 D는 잠재적으로 백만 단위이고, 클러스터의 수 K는 백 단위이다. 대부분의 키워드는 실제로는 통상의 검색 엔진 질의(queries)에 유사한 키(key) 문구이고, 이는 D가 그렇게 크게 될 수 있는 이유이다. 전체 그래프는 수천만의 TV로 이 슬라이스를 N회(데이터 트레이닝의 수) 더 복제한다. 그 크기의 그래프를 메모리에 저장하거나 필요한 메시지를 연산하고 저장하는 것은 실용적이지 않다.
추정을 실용적으로 만들기 위해서, ADF(Assumed Density Filtering)로 근사 추정에 기초하여 온라인 학습 방식이 사용된다. 데이터 지점(광고)은 한 번에 하나씩 처리되고, 하나의 데이터 지점을 처리한 후에 획득한
Figure 112011078355789-pct00023
Figure 112011078355789-pct00024
의 사후 분포는 다음 데이터 지점의 처리를 위한 프라이어 분포로서 전달된다.
이 온라인 학습 시나리오에서 인자 그래프는 트리이기 때문에, 메시지는 루트 노드로부터 리프(leaf)까지 갔다가 돌아올 때 한번만 연산되면 된다. i 번째 데이터 지점을 처리하기 위한 실제적 스케줄은 다음과 같다:
■ 프라이어 분포
Figure 112011078355789-pct00025
Figure 112011078355789-pct00026
을 이전 데이터지점 처리로부터 얻은
Figure 112011078355789-pct00027
Figure 112011078355789-pct00028
Figure 112011078355789-pct00029
에 대한 사후 마지널로 설정한다.
■ 키워드 인자
Figure 112011078355789-pct00030
로부터 클러스터 할당 변수
Figure 112011078355789-pct00031
까지 메시지
Figure 112011078355789-pct00032
를 계산한다.
■ 클러스터 할당 인자
Figure 112011078355789-pct00033
로부터 클러스터 할당 확률 변수
Figure 112011078355789-pct00034
까지 메시지
Figure 112011078355789-pct00035
를 계산한다.
■ 메시지
Figure 112011078355789-pct00036
를 계산한다.
■ 각각의 키워드 인자
Figure 112011078355789-pct00037
에 대해 인출(outgoing) 메시지
Figure 112011078355789-pct00038
를 계산한다.
■ 새로운 마지널
Figure 112011078355789-pct00039
Figure 112011078355789-pct00040
을 계산한다.
ADF 단계들 사이에서 메시지가 저장될 필요는 없지만, D x K 마지널 분포의 단위에서만임을 유의하라.
Figure 112011078355789-pct00041
에서
Figure 112011078355789-pct00042
로의 메시지는
Figure 112011078355789-pct00043
로 주어지는데, 여기서
Figure 112011078355789-pct00044
Figure 112011078355789-pct00045
의 평균이고
Figure 112011078355789-pct00046
는 논증이 참이면 1이고 거짓이면 0인 표시자 함수이다.
Figure 112011078355789-pct00047
로부터 인자
Figure 112011078355789-pct00048
로의 메시지는
Figure 112011078355789-pct00049
이고, 그러므로 인자
Figure 112011078355789-pct00050
로부터
Figure 112011078355789-pct00051
로의 메시지는
Figure 112011078355789-pct00052
이다.
Figure 112011078355789-pct00053
로부터
Figure 112011078355789-pct00054
로의 메시지는 디리클레 프라이어
Figure 112011078355789-pct00055
하의 (스케일된) 평균 클러스터 할당 확률
Figure 112011078355789-pct00056
을 보낸다.
일부 실시형태에서 책임이라고 지칭된 파라미터는 선택적으로는 중간 단계로서 연산된다. 이는 클러스터 인덱스의 마지널 분포이다. 이 책임은, 도 5를 참조하여 상술한 바와 같이 주어진 클러스터가 특정 광고를 생성할 확률로 생각될 수 있다. 그 인입 메시지의 정규화된 곱으로 주어진
Figure 112011078355789-pct00057
의 마지널 분포는:
Figure 112011078355789-pct00058
이고, 여기서 광고 i에 대한 클러스터 l의 책임이라고 지칭되며,
Figure 112011078355789-pct00059
이고
Figure 112011078355789-pct00060
이다.
Figure 112011078355789-pct00061
에서
Figure 112011078355789-pct00062
로의 메시지는
Figure 112011078355789-pct00063
와 상수의 베르누이 분포의 선형 결합으로 쓰여질 수 있다.
Figure 112011078355789-pct00064
Figure 112011078355789-pct00065
에서
Figure 112011078355789-pct00066
노드로의 메시지 (4)가 혼합 베타 분포에 상수를 더한 것일 때,
Figure 112011078355789-pct00067
의 마지널 분포는 그러므로 베타 분포도 아니고
Figure 112011078355789-pct00068
이다.
대신, 현재의 광고가 클러스터 l에 속한다는 가정 하에서의
Figure 112011078355789-pct00069
에 대한 프라이어 및 사후 베타 분포의 볼록 결합(convex combination)이다. 사후는 클러스터 l의 책임이 클 수록 큰 가중치를 갖는다.
메시지
Figure 112011078355789-pct00070
를 베타 패밀리에 유지하기 위해, 마지널
Figure 112011078355789-pct00071
자체는 모멘트 매칭에 의해 메타 분포에 투사될 수 있다. 마지널의 1차 모멘트에 대해,
Figure 112011078355789-pct00072
이고,
2차 비중심(non-central) 모멘트에 대해,
Figure 112011078355789-pct00073
이다.
1차 모멘트, 즉 마지널의 평균은 베타 분포의 완전한 업데이트 하에서(책임 항
Figure 112011078355789-pct00074
을 고려하지 않고) 프라이어 평균과 사후 평균의 볼록 결합이다. 그 모멘트에 있어서 베타 분포의 파라미터의 표현을 이용하여, 근사 베타의 파라미터는
Figure 112011078355789-pct00075
로 계산되는데, 여기서
Figure 112011078355789-pct00076
는 업데이트된 유사 카운트(프라이어로부터의 유사 카운트 포함)이고, 대강 관측된 광고의 총 수이다.
Figure 112011078355789-pct00077
의 정확한 마지널 분포 디리클레 분포의 혼합
Figure 112011078355789-pct00078
이고, 여기서
Figure 112011078355789-pct00079
는 길이 K의 i 번째 단위 벡터이다. 클러스터 당 하나의 디리클레 혼합이 있고, 그 값은 해당 클러스터가 방문된(viisited) 광고에 대해 완전히 책임을 진다는 것을 가정한 결과이다. 혼합 계수는 클러스터가 광고에 대해 갖는 실제의 책임이다. 디리클레 분포의 패밀리에 머무르기 위해 근사가 이루어진다. 예를 들어, 평균은 유지되고
Figure 112011078355789-pct00080
의 합은 1만큼 증가되는 것이 보장된다. 이는 디리클레 분포의 해당 파라미터에 클러스터 책임을 더함으로써 이루어질 수 있다,
Figure 112011078355789-pct00081
상술한 바와 같이, 한번에 하나의 데이터 지점을 처리하기 위해 ADF를 이용하는 것은 연산 시간과 메모리 사용에 있어 많은 절약을 가져온다. 이 온라인 학습 프레임워크 내에서도, 큰 데이터 세트를 클러스터링하는 것은 연산적으로 까다롭다. 통상의 데이터 세트는 수백만의 고유한 키워드와 함께 수백만의 광고를 포함할 수 있다. 모든 클러스터가 모든 가능한 키워드에 대해 하나의 베타 분포를 포함한다면, 메모리 요구는 수백 기가바이트 정도일 것이다. 또한, 각각의 광고에 대한 책임의 계산은 수천만의 항이 관여될 것이고, 이는 트레이닝을 극히 느리게 할 것이다. 클러스터링 시스템이 합리적인 시간 양에서 실행되고 합리적인 메모리 양을 사용하도록 보장하기 위해 몇몇의 단계가 이루어질 수 있다.
데이터 세트에 잠재적으로 수백만의 고유 키워드가 존재하는 반면, 개개의 광고는 매우 듬성듬성해서, 각각이 보통 10개 정도의 키워드에 개입한다. 유사한 광고의 클러스터도 듬성듬성하여야 할 것이라고 가정한다면, 클러스터의 듬성듬성한 표현을 이용함으로써 그 특성이 사용될 수 있다. 이 특성은 다른 유형의 아이템 및 특성에 대한 다른 애플리케이션 도메인에도 적용된다. 그러나, 여기서의 예는 명확성을 위해 광고 및 키워드를 참조하여 논의된다. 이 표현에서, 클러스터에 “중요한” 키워드만이 명시적인 베타 분포에 의해 표현되고, 모든 다른 키워드는 그 클러스터에 대해 동일한 단일 “디폴트” 베타 분포에 의해 표현된다. 여기서 “중요하다"는 것은, 1) 클러스터 내에서 그 광고의 현저한 수에 포함되고, 2) 그 클러스터에 대해 충분히 구별되는(discriminative) 것의 결합이다. 모든 클러스터가 수백만이 아니라 수백의 고유한 분포를 포함한다면, 모델은 소량의 메모리를 사용할 것이고 식 (3)의 연산은 빠르게 이루어질 수 있다. 모델이 듬성듬성하게 유지되는 것을 보장하도록 몇몇의 단계가 이루어질 수 있다.
도 9는 모델(900)을 유지하는 데이터 구조가 복잡한(clutter) 클러스터(901) 및 가비지 컬렉션 엔진과 통신하는 클러스터링 시스템의 일부분의 예이다.
가비지 컬렉션 엔진(901)은 예를 들어 도 10 및 11의 방법 중 하나 또는 양자 모두를 수행하도록 배열될 수 있다. 이들 방법 (또는 다른 유사한 방법)은 모델로부터 (키워드와 같은) 특성을 모으기 위해 인터벌을 두고 수행될 수 있다. 예를 들어, 도 10에 도시된 바와 같이 모든 클러스터에 걸쳐 유사한 확률을 갖는 키워드가 식별된다(1000). 이들은 관련 베타 분포의 유사한 평균을 갖는 키워드일 수 있다. 식별된 키워드의 명시적 확률 분포는 디폴트 확률 분포에 의해 대체될 수 있다(1001).
도 11은 클러스터 내에서 수행되는 방법의 흐름도이다. 그 클러스터 내의 키워드 확률 분포는 디폴트 확률 분포에 의해 대체된다(1100)(이 단계에서는 실제 대체가 아니라 테스트 목적으로). 그 결과로서 책임에 대한 현저한 변화가 일어나면(1101), 키워드 확률 분포는 유지된다(1102). 그렇지 않으면 키워드 확률 분포는 삭제되고 디폴트에 의해 대체된다(1103).
일부 실시형태에서, 클러스터 모델은 클러터(clutter) 클러스터를 포함하지만 이는 필수적인 것은 아니다. 새로운 개념을 그 정보에 대해 적합하지 않은 클러스터로 밀어넣는 것을 피하기 위해, 클러터 클러스터가 클러스터 모델의 일부로 사용될 수 있다. 예를 들어, 2개의 클러스터가 있고 하나는 책에 관한 것이고 하나는 DVD에 관한 것이라고 하자. 새로운 광고는 유아 식품에 관한 것으로 관측된다. 2개의 클러스터 각각에 대해 유아 식품 광고에 관하여 상술한 바와 같이 책임 값이 계산된다. 전술한 바와 같이 책임 값의 합은 1이 되어야 하고, 그래서 새로운 광고에는 2개의 클러스터 각각에 대해 0.5의 책임이 주어진다. 클러터 클러스터가 제공되는 경우에, 클러터 클러스터는 유아 식품 광고에 대해 더 높은 책임 값을 가질 것이다. 클러터 클러스터는 특정 그룹의 특성에 특화되지 않도록 배열된다. 이 방법으로 유아 식품 광고는 실효적으로 “사라질” 것이다.
도 12는 가비지 컬렉션 동안 수행되는 예시적인 방법의 흐름도이다. 적은 수의 아이템을 포함할 확률이 높은 클러스터가 식별되고(1200), 다른 (더 클 수 있는) 클러스터와 병합된다. 예를 들어, 10개의 서로 다른 특화된 클러스터의 경우에, 클러터 클러스터가 다른 10개의 클러스터 중 하나에 맞지 않는 여하한 예를 포섭하도록 추가될 수 있다. 이 클러터 클러스터에는, 특정 그룹의 특성에 특화되지 않도록, 단일의 베타 분포가 주어진다. 일 예에서, 하나는 사무 가구에 관한 것이고 하는 사무 공간에 관한 것인 2개의 큰 클러스터를 고려하자. 사무실 케이터링(catering)에 대한 작은 클러스터도 존재한다. 작은 클러스터에 대한 가비지 컬렉션 프로세스 동안, 가비지 컬렉션 엔진은 그 작은 클러스터를 사무 가구 클러스터와 병합하도록 결정할 수 있다. 다른 경우에, 가비지 컬렉션은 작은 클러스터를 클러터 클러스터와 병합하도록 결정할 수 있다. 클러스터 모델 및/또는 특정 애플리케이션의 현재 상태에 관한 수, 유형, 크기 및 기타 인자에 따라 상이한 상황에서 어떤 방식을 취할지에 대한 결정을 위해 규칙 기반 시스템이 가비지 컬렉션 엔진에 제공될 수 있다.
일부 실시형태에서, 클러스터링 시스템은 클러스터 모델 트레이닝의 프로세스를 조력하도록 배열된 복수의 프로세서를 포함한다. 프로세서는 멀티 코어 컴퓨터에서 제공될 수 있거나, 분산 컴퓨팅 환경에서 별개의 엔티티일 수 있다. 도 13은 그러한 클러스터링 시스템에서의 예시적인 방법의 흐름도이다. 초기 상태(트레이닝 전)의 모델은 도 3을 참조하여 상술한 바와 같이 먼저 직렬로(serially) 트레이닝된다(1300). 이 단계에서, 이 모델은 용이한 참조를 위해 “프라이어 모델(prior model)”이라고 지칭한다. 직렬 트레이닝은 사용가능한 트레이닝 데이터의 부분집합을 이용하여 수행된다. 나머지 (아직 사용되지 않은) 트레이닝 데이터는 배치(batch)로 분할되고(1301), 프라이어 모델의 복수의 차일드(child) 사본이 형성된다(1303). 트레이닝 데이터는 모델의 차일드 사본이 존재하는 것보다 많은 배치로 분할된다. 차일드 사본은, 각각의 차일드 사본에 대한 트레이닝 데이터의 상이한 배치를 이용하여, 그리고 도 3을 참조하여 상술한 트레이닝 방법을 이용하여 병렬로 트레이닝된다. 각각의 트레이닝된 차일드 사본에 대해, 그 후 프라이어 모델과 그 트레이닝된 차일드 사본 사이에서 차이가 계산된다(1305). 이 차이는 차일드의 사후 분포를 프라이어 분포에 의해 나눔으로써 연산된다. 이 델타(delta)는 프라이어에게 차일드의 사후(posterior)와 동일하게 되기 위해 자신을 어떻게 업데이트할지를 말해주는 메시지이다. 모든 차일드에 의해 학습된 정보를 수집하기 위해 차일드 각각으로부터 획득된 차이는 프라이어에 적용된다. 그 차이는 프라이어 모델에 적용되어 사후 분포를 얻는다(1306). 사후 분포는 프라이어 모델 대신에 사용된다. 새로운 차일드 사본은 업데이트된 프라이어 모델을 이용하여 생성되고 트레이닝 프로세스는 아직 사용된바 없는 트레이닝 데이터의 배치를 이용하여 반복된다. 이 프로세스는 모든 배치가 사용될 때까지 계속된다. 차일드 모델보다 많은 배치가 사용되므로, 차일드가 구축하는 모델은 너무 멀리 움직이지는(drift) 않으며 정규의 인터벌로 고정된다.
모델의 병렬적 사본이 상이한 모드에 정착하면, 하나의 사본에서 주어진 클러스터가 다른 사본에서의 대응 클러스터와 동일한 자연(natural) 클러스터를 설명할 확률이 낮다. 이를 다루기 위해, 클러스터 모델이 적어도 부분적으로 형성될 때까지 트레이닝은 초기에 단 하나의 프로세스로 시작된다. 이는 “차별화(differentiation) 단계”라고 지칭될 수 있고, 모델의 병렬 사본의 상이한 모드로 정착하는 자유도(이것이 모델이 멀티 모드(multi-modal)가 될 때의 심각한 문제이다)를 낮춘다. 차별화 단계는 맨 처음 병렬 단계 전에만 필요하고 이후의 병렬 단계에서는 필요하지 않다. 또한, 병렬 트레이닝이 한 번에 한 배치에 대해 수행되고, 각 배치 후에는 단계 1306에서 산출된 사후가 프라이어로서 사용되기 때문에, 그러면 단일 클러스터의 다수의 사본은 병렬 트레이닝 페이즈 동안 너무 멀리 이동(drift)할 수 없다.
일부 실시형태에서, 특성 제안 장치가 특정 아이템과 관련시키기 위한 특성을 제안하기 위해 제공된다. 예를 들어, 아이템은 문서, 비디오, 이미지 파일 등일 수 있고 특성은, 키워드 검색을 이용하여 저장소로부터 이들 아이템을 나중에 불러오는 것을 조력하기 위해 이들 아이템과 관련된 (또는 태그된) 키워드일 수 있다. 이 경우, 도 1의 클러스터링 시스템은 주어진 아이템과 관련시키기 위한 특성을 생성하기 위해 생성(generative) 방식으로 사용될 수 있다.
일 예에서, 아이템은 광고이고 특성은 광고가 가입한 키워드이다. 이 경우, 목표는, 광고의 도달을 증가시키기 위해, 광고주에게 이미 가입한 키워드와 관련된 복수의 키워드를 제안하는 것일 수 있다. 도 14는 도 1의 클러스터링 시스템을 이용하여 이를 달성하는 컴퓨터 구현 방법의 흐름도이다. 이 방법은 광고와 키워드에 대해 설명되지만, 이는 다른 유형의 아이템 및 특성에도 적용이 가능하다.
온라인 광고(예를 들어, 지불된 검색)에서, 광고는 종종 광고가 가입한 키워드에 기초하여 표시된다. 예를 들어, 표시될 것으로 고려되는 광고는 사용자에 의해 발행된 질의에 포함된 키워드에 가입한 광고일 수 있다. 그러나, 광고가 특정 질의와 관련이 있는 경우에도, 광고가 질의에 존재하는 키워드에 가입하지 않으면 표시될 자격이 없다. 광고주에 대해, 이는 가입할 알맞는 키워드를 선택하는 문제를 발생시킨다. 또한, 가입된 키워드는 소위 입찰 밀도(bidder density)에 강한 영향을 준다. 사용가능한 광고 슬롯의 수는 제한되는데, 페이지의 위쪽의 슬롯은 페이지의 아래쪽의 슬롯에 비해 훨씬 매력적이다. 슬롯은 일반화된 차가 입잘 경매(generalized Second Price Auction)(Vickrey-Clarke-Groves)를 이용하여 경매될 수 있는데, 여기서 광고에 과금되는 가격은 인접의 열등한(immediately inferior) 슬롯에서의 광고주의 입찰 및 이들 연속적인 슬롯들에서 광고의 클릭률(click-though rate)에 의해 결정된다. 그 결과, 높은 입찰 밀도가 있으면, 즉 더 많은 광고주가 경매에 참여하면, 일반적으로 가격은 더 높다.
광고 수익을 증가시키기 위해, 커버리지 및 입찰 밀도를 높일 필요가 있다. 이는 두 가지 메커니즘에 의해 이루어질 수 있다: 광고주가 가입한 관련 키워드의 수를 증가시키는 것 및 광고주의 수가 적은 토픽의 식별을 가능하게 하는 도구를 제공하는 것.
주어진 광고에 대해 광고주가 가입한 키워드에 대한 정보를 포함하는 새로운 광고 캠페인이 수신된다(1400). 주어진 광고에 기초하여, 실제로 가입한 키워드에 기초하여 클러스터 책임이 계산된다(1401). 키워드 확률 분포는 책임 값(1402)에 의해 연산되고 가중된다. 이들 연산된 확률 분포는 그 후 광고주(1403)에게 제안될 키워드를 도출하는데 사용된다. 이들 키워드는 명확한 랭킹 기준(clear ranking criteria)을 이용하여 제안되고(1404), 광고주가 제안된 키워드를 요구하는지 여부를 나타내는 사용자 선택 정보가 수신된다(1405). 그 피드백 정보는 클러스터 책임을 다시 계산하는데 사용되고(1401) 필요하면 방법이 반복된다.
이 방법에 대한 더 자세한 사항을 이제 설명한다. 여기에 설명된 클러스터링 시스템은 도 7에 도시된 그 모델과 같은 통제 그래픽을 따라서 생성(generative) 형태로 사용될 수 있다. 키워드 제안에 있어, 특정한 광고는 부분적으로 관측된 데이터를 나타낸다: 광고주는 어떤 키워드에 가입할지에 대해 조금 고민을 했을 수 있지만, 여전히 일부 중요한 키워드를 놓쳤을 수 있다. 가입된 키워드는 그러므로 광고주의 의도의 표시자로 행동하지만, (거대한) 비가입 키워드의 세트가 “비관측”된 것으로 다루어진다.
이 부분적으로 관측된 데이터로, 가입된 키워드가 주어지면 비관측 키워드의 확률을 계산하기 위해 메시지 전달이 수행된다. 이는 다음과 같이 작동한다:
Figure 112011078355789-pct00082
이 i 번째 광고에서 가입된 모든 키워드의 세트라고 하자. 모든 인자
Figure 112011078355789-pct00083
는 노드
Figure 112011078355789-pct00084
로 식 2의 형태의 메시지를 보내는데, 이는 인자
Figure 112011078355789-pct00085
로부터의 인입 메시지와 결합된다. 식 3의 업데이트 시나리오에서와 같이, 광고에 대한 클러스터의 책임이 계산되지만, 이 정보는 실제로 가입된 키워드에만 기초한다:
Figure 112011078355789-pct00086
도 8의 인자
Figure 112011078355789-pct00087
에 암시적으로 부착된 데이터 (키워드) 노드의 기대값이 연산되어 비관측 키워드
Figure 112011078355789-pct00088
에 대해 획득된다.
Figure 112011078355789-pct00089
,
비관측 키워드에 대한 베르누이 프로파일의 선형 결합으로, 가중치는 관측된 키워드로부터 연산된 책임에 기초한다. 이 방법을 이용하여, 명확한 랭킹 기준(위의 확률 또는 기타 관련된 보수적 확률 추정)으로 사용자에게 키워드가 제안될 수 있다. 예를 들어, 평균 확률
Figure 112011078355789-pct00090
이 이용될 수 있다. 키워드 분포의 가중합을 계산하는 것도 가능하고, 그로부터 키워드를 보는것/제안하는 것에 대한 평균 또는 보수적 추정(평균 빼기 표준 편차 등(mean minus standard deviation)) 중 하나를 계산하는 것도 가능하다.
여기 설명된 클러스터링 시스템이 사용될 수 있는 많은 애플리케이션 도메인에서, 데이터 내 노이즈에 의해 유발되는 문제가 존재한다. 즉, 아이템이 주어진 클러스트의 메인 주제 특성인 몇몇의 연관 특성과 적어도 하나의 완전히 무관한 연관 특성을 갖는 경우, 노이즈가 있는 아이템이 발생할 수 있다. 여기에 설명된 클러스터링 시스템은 아이템-특성 연관에 대한 불확실성을 고려하여 배열되므로, 노이즈 있는 데이터는 다른 클러스터링 기술을 이용하는 경우와 같이 문제적이지는 않다. 이는 이제 아이템이 광고이고 특성이 키워드인 예를 참조하여 설명된다.
일 예에서, 클러스터의 토픽은 가입할 확률이 가장 큰 키워드를 조사함으로써 결정된다. 데이터의 노이즈가 있는(noisy) 성질 때문에, 어떤 무관한 키워드가 부당하게 높은 평균 가입 확률을 갖는 것이 가능하다. 이들 키워드는 몇몇의 클러스터 메인 주제 키워드에도 동시에 가입한 노이즈 있는 광고에 의해 가입되었을 수 있다. 제안된 베이즈 처리는, 가입 확률에 대한 불확실성의 척도를 제공함으로써 이 문제를 다룰 수 있게 한다. 도 15는 높은 평균 가입 확률
Figure 112011078355789-pct00091
를 갖는 키워드-”pest control(페스트 제어)”-가 맞지 않는, 매우 동질적인 클러스터의 예를 도시한다. 그러나 이 키워드는 이 클러스터에 귀의(attribute)되는 더 적은 광고에서 활성인 것으로 보였다. 베타 분포의 총 유사 카운트 α는 이 클러스터에 귀의되고 문제의 키워드에 가입한 광고의 실효 개수를 나타낸다. 동일한 평균
Figure 112011078355789-pct00092
을 갖지만 값이 상이한 2개의 키워드가 주어지면, 모델은 가장 높은 α를 갖는 키워드에 대해 더 확실하다. 그러므로
Figure 112011078355789-pct00093
대신 α로 정렬하는 것은 불확실성을 고려하고, 도 15에서 이점은 명백하다: 부당한 키워드는 더 낮은 위치로 밀려난다.
여기에 설명된 클러스터링 시스템은 이전의 클러스터링 시스템에 비해 적은 트레이닝 시간을 제공하고, 또한, (사람 평가자에 의해 평가되는 것과 같이) 토픽의 혼합을 포함하는 몇몇이 있을 뿐 산출되는 거의 모든 클러스터가 일관적인 우수한 품질의 결과를 제공한다. 여기서 설명된 클러스터링 시스템과 몇몇의 다른 클러스터링 방법: K-평균, 병합식 클러스터링 및 기대값-최대화(EM)에 기반한 베르누이 프로파일의 혼합에 대한 추정의 최대 확률 버전과의 비교가 이루어진다.
상이한 방법들의 트레이닝 시간이 산정되고 가장 현저한 키워드의 의미의 일관성에 대한 결과 클러스터의 시각적(visual) 조사가 수행된다. 정량적으로, k-평균 및 병합식 클러스터링은 광고의 대부분을 하나의 클러스터로 매몰시키는 문제를 겪는다. 이는 비일관적인 키워드 세트에 가입한 광고에 의해 도입된 클러스터 사이의 부당한 연결에 의해 유발될 수 있다. 여기에 설명된 방법은 k-평균 및 병합식 클러스터에 비해 정량적으로 우수한 결과를 얻어, 더욱 많은 의미있는 클러스터를 식별하고 광고를 이들에 걸쳐 더 균일하게 확산시키게 된다. 전체 데이터 세트를 다수 방문할 것을 요구하므로, EM 알고리즘을 이용한 ML 추정은 연산적으로 매우 혹독하다. 방법 중 연산적으로 가장 효율적인 것은 여기에 설명되는 것인데, 트레이닝 시간은 단지 1시간이며, 이는 EM에서 요구되는 40시간에 비교하면 짧다.
여기에 설명된 실시형태는 데이터로부터 클러스터링 모델을 연산적으로 효율적으로 학습하고 특성 제안을 위해 클러스터링 모델을 이용하는 방법을 제공한다. 사용되는 클러스터링 모델은 혼합 모델일 수 있는데, 특성에 가입할 클러스터-특정적인 확률에 대한 곱-베르누이 분포(product-of-Bernoulli distributions)를 갖는다. 이전의 클러스터링 기술은 데이터로부터 클러스터링 모델을 구축하기 위해 연산적으로 까다로운 기술(예를 들어, 기대값-최대화 EM 알고리즘)을 요구한다.
상술한 바와 같이, 예를 들어, 클러스터링 멤버십 확률을 디리클레 프라이어 분포 및 클러스터-특정 키워드 확률에 대한 베타 프라이어로 함으로써, 베이즈 방식이 사용된다. 이는 모든 확률에 대한 불확실성을 완전히 유지할수 있게 한다.
데이터로부터 모델을 학습하기 위해, 예들은 ADF(Assumed Density Filtering), 온라인 방식으로 클러스터링 모델을 학습하는 기술에 기초하여 근사 베이즈 추정을 이용한다. 아이템은 하나씩 처리된다: 한 아이템이 처리될 때, 모델 파라미터는 (보통 적은) 업데이트를 수신하고, 그 이후에 아이템은 다시 논의(re-visit)할 필요가 없다. 이러한 방식으로, 클러스터링 모델의 완전한 학습은 각 아이템을 한 번만 방문할 것을 요구한다. 이는 과거에 제안되었던 모델 학습을 위한 반복적(iterative) 방법에 비해 엄청난 속도 증가를 가져온다. 새로운 아이템이 사용가능하게 되면, 대부분의 기존 방법은 전체의 증강된 아이템의 코퍼스(corpus)로부터 다시 트레이닝할 것을 요구하는 반면, 제안된 방법은 클러스터링 시스템의 증분적인(incrementally) 업데이트를 가능하게 한다. 또한, 인자 그래프 및 메시지 전달을 갖는 근사 베이즈 추정의 관점에서 모델을 표시하는 것은 클러스터 모델의 학습을 병렬화할 수 있게 한다. 모델로부터 거의 관측되지 않는 특성을 제거하는 “가비지 컬렉션” 전략에 의해 속도가 더 개선된다.
도 16은, 연산 및/또는 전자 장치의 여하한 형태로서 구현될 수 있고 클러스터링 시스템의 실시형태가 구현될 수 있는 예시적인 연산-기반 장치(1600)의 다양한 구성요소를 도시한다.
연산 기반 장치(1600)는, 미디어 컨텐츠, IP(Internet Protocol) 입력, 클러스터링될 아이템, 클러스터링될 아이템에 대한 특성 정보, 사용자 입력 또는 기타 유형의 입력을 수신하기 위한 적당한 유형인 하나 이상의 입력(1606)을 포함한다. 장치는 여하한 적당한 유형의 통신 네트워크 상에서 다른 엔티티와 통신하기 위한 통신 인터페이스(1607)도 포함한다. 예를 들어, 이들 다른 엔티티는 다른 클러스터링 시스템일 수 있다.
연산 기반 장치(1600)는, 마이크로프로세서, 제어기 또는 기타 아이템을 클러스터링하기 위해 장치의 동작을 제어하는 컴퓨터 실행가능한 명령을 처리하기 위한 여하한 적당한 유형의 프로세서일 수 있는 하나 이상의 프로세서(1601)도 포함한다. 운영 체제(1604)를 포함하는 플랫폼 소프트웨어 또는 여하한 기타 적당한 플랫폼 소프트웨어는, 애플리케이션 소프트웨어(1603)가 장치 상에서 실행될 수 있도록 하기 위해 연산-기반 장치에서 제공될 수 있다.
컴퓨터 실행가능 명령은 메모리(1602)와 같은 여하한 컴퓨터 판독가능 매체를 이용하여 제공될 수 있다. 메모리는 RAM(random access memory), 자기 또는 광 저장 장치와 같은 여하한 유형의 디스크 저장 장치, 하드 디스크 드라이브 또는 CD, DVD 또는 기타 디스크 드라이브와 같은 여하한 적당한 유형의 것이다. 플래시 메모리, EPROM 또는 EEPROM 도 사용될 수 있다.
오디오 및/또는 비디오 출력과 같은 출력도 연산-기반 장치와 통합된 또는 이와 통신하는 디스플레이 시스템에 제공된다. 디스플레이 시스템은 그래픽 사용자 인터페이스 또는 기타 여하한 적당한 유형의 사용자 인터페이스를 제공할 수 있지만 이는 필수적인 것은 아니다. 디스플레이 인터페이스(1605)가 디스플레이 시스템을 제어하기 위해 제공될 수 있다.
“컴퓨터”라는 용어는 여기서 명령을 실행할 수 있도록 처리 기능을 갖는 여하한 장치를 지칭하는 것으로 사용된다. 당업자는 이러한 처리 기능이 많은 상이한 장치로 통합되고 그러므로 “컴퓨터”라는 용어는 PC, 서버, 이동 전화, 개인 디지털 어시스턴스(personal digital assistants) 및 여러 다른 장치를 포함함을 인식할 것이다.
여기에 설명된 방법은 유형의(tangible) 저장 매체 상에 기계 판독 가능 형태로 소프트웨어에 의해 수행될 수 있다. 소프트웨어는 방법 단계가 여하한 적당한 순서로 또는 실질적으로 동시에 수행될 수 있도록 병렬 프로세서 또는 직렬 프로세서에서 실행되기에 적합할 수 있다.
이는 소프트웨어가 가치있는, 별도로 거래가능한 재화일 수 있음을 인정한다. 이는, 희망 기능을 수행하기 위해 “바보같은(dumb)” 또는 표준의 하드웨어 상에서 실행되거나 하드웨어를 제어하는 소프트웨어를 포함하는 의도이다. 이는 또한, 희망 기능을 수행하도록 실리콘 칩을 설계하기 위해 또는 유니버설 프로그램가능 칩을 구성하기 위해 사용되는 것과 같은 HDL(hardware description language) 소프트웨어와 같은, 하드웨어의 구성을 “설명” 또는 정의하는 소프트웨어를 포함하는 의도이다.
당업자는 프로그램 명령을 저장하기 위해 사용되는 저장 장치는 네트워크에 걸쳐 분산될 수 있음을 인식할 것이다. 예를 들어, 원격 컴퓨터는 소프트웨어로서 설명된 프로세스의 예를 저장할 수 있다. 로컬 또는 단말 컴퓨터는 원격 컴퓨터에 액세스하고 프로그램을 실행하기 위한 소프트웨어의 전부 또는 일부를 다운로드 할 수 있다. 다르게는, 로컬 컴퓨터는 필요에 따라 소프트웨어의 조각을 다운로드하거나 일부 소프트웨어 명령을 로컬 단말에서 실행하고 일부를 원격 컴퓨터(또는 컴퓨터 네트워크)에서 실행할 수 있다. 당업자는, 당업자에게 알려진 종래의 기술을 이용하여 소프트웨어 명령의 일부 또는 전부가 DSP, 프로그램가능 로직 어레이 등과 같은 전용 회로에 의해 수행될 수 있음을 또한 인식할 것이다.
당업자에게 명백한 바와 같이, 여기서 주어진 여하한 범위 또는 장치 값은 원하는 효과를 잃지 않고 확장 또는 변경될 수 있다.
상술한 이익 또는 장점은 하나의 실시형태에 관련될 수 있거나 수 개의 실시형태에 관련될 수 있음을 이해할 것이다. 실시형태는 서술한 문제의 일부 또는 전부를 해결하는 것 또는 서술한 이익과 장점의 일부 또는 전부를 갖는 것으로 제한되지 않는다. “일(an)” 아이템의 언급은 하나 이상의 그러한 아이템을 지칭함을 또한 이해할 것이다.
여기에 설명된 방법의 단계는 여하한 적당한 순서로 또는 적당한 경우 동시에 수행될 수 있다. 또한, 여기에 설명된 주제의 사상 및 범위를 벗어나지 않고 개별 블록은 여하한 방법으로부터 제거될 수 있다. 상술한 예 중 여하한 것의 태양은 희망 효과를 잃지 않고 다른 예를 형성하기 위해 설명된 다른 예 중 여하한 것의 태양과 결합될 수 있다.
여기서 “포함한다”는 용어는 식별된 방법 블록 또는 구성요소를 포함하는 것을 의미하는 것으로 사용되지만, 그러한 블록 또는 구성요소는 배타적인(exclusive) 목록을 포함하지 않고 방법 또는 장치는 추가적인 블록 또는 구성요소를 포함할 수 있다.
바람직한 실시형태에 대한 위의 설명은 예시의 방법으로만 제공된 것이고 당업자에 의해 다양한 변형이 이루어질 수 있음을 이해할 것이다. 위의 명세(specification), 예 및 데이터는 본 발명의 예시적인 실시형태의 구조 및 사용의 완전한 설명을 제공한다. 본 발명의 다양한 실시형태가 어느 정도의 구체성으로, 또는 하나 이상의 개별 실시형태를 참조하여, 위에서 설명되었지만, 당업자는 본 발명의 사상과 범위를 벗어남이 없이 개시된 실시형태에 많은 변형을 가할 수 있을 것이다.

Claims (19)

  1. 각각이 적어도 하나의 연관 특성을 갖는 아이템을 클러스터링하는 컴퓨터 구현 방법으로서,
    데이터 구조를 메모리에 저장하는 단계 - 상기 데이터 구조는
    복수의 클러스터와,
    각각의 아이템에 대해, 하나 이상의 연관 특성(associated features)과,
    각각의 클러스터에 대해, 아이템 중 어느 하나가 그 클러스터의 멤버인지 여부에 관한 확신(belief)을 나타내는 프라이어 확률 분포(prior probability distribution)와 관련된 적어도 하나의 클러스터 멤버십 파라미터와,
    각각의 클러스터 및 특성 조합에 대해, 그 클러스터 내의 아이템 중 어느 하나가 그 특성과 연관되는지 여부에 대한 확신을 나타내는 프라이어 확률 분포와 관련된 적어도 하나의 특성 파라미터
    를 유지함 - 와,
    관측된 연관 특성(observed associated features)을 갖는 관측된 아이템을 포함하는 입력을 수신하고 저장하는 단계와,
    상기 수신된 입력에 기초하고 베이즈(Bayesian) 업데이트 프로세스를 이용하여 상기 데이터 구조에서 파라미터를 업데이트하는 단계와,
    모든 클러스터에 걸쳐 유사한 특성 파라미터(similar feature parameter)를 갖는 특성을 식별하고 그러한 특성 파라미터에 대해 동일한 디폴트 값을 사용하는 단계와,
    복수의 상기 입력에 대해 상기 수신하고 저장하는 단계 및 상기 업데이트하는 단계를 반복하는 단계
    를 포함하는 아이템을 클러스터링하는 방법.
  2. 제 1 항에 있어서,
    상기 데이터 구조에서 상기 파라미터를 업데이트하는 단계 후에, 저장된 상기 입력을 삭제하는 단계 및 상기 삭제하는 단계를 상기 수신하고 저장하는 단계 및 상기 업데이트하는 단계와 함께 반복하는 단계를 더 포함하는
    아이템을 클러스터링하는 방법.
  3. 제 1 항에 있어서,
    상기 데이터 구조는, 상기 데이터 구조가 베르누이 분포(Bernoulli distributions)의 곱(product)인 베르누이 프로파일(Bernoulli profiles)의 혼합에 기초하여 클러스터 모델을 유지하도록 저장되는
    아이템을 클러스터링하는 방법.
  4. 제 1 항에 있어서,
    상기 데이터 구조는, 상기 데이터 구조가 인자 그래프(factor graph)를 이용하여 클러스터 모델을 유지하도록 저장되는
    아이템을 클러스터링하는 방법.
  5. 제 4 항에 있어서,
    상기 데이터 구조는, 상기 데이터 구조가 상기 인자 그래프를 트리 구조로서 유지하도록 저장되는
    아이템을 클러스터링하는 방법.
  6. 제 1 항에 있어서,
    상기 데이터 구조는, 각각의 클러스터 멤버십 파라미터가 디리클레 분포(Dirichlet distribution)와 관련되도록 저장되는
    아이템을 클러스터링하는 방법.
  7. 제 1 항에 있어서,
    상기 데이터 구조는 각각의 특성 파라미터가 베타 분포(Beta distribution)와 관련되도록 저장되는
    아이템을 클러스터링하는 방법.
  8. 제 1 항에 있어서,
    상기 업데이트하는 단계는 추정 밀도 필터링 프로세스(assumed density filtering process)를 이용하는 단계를 포함하는
    아이템을 클러스터링하는 방법.
  9. 제 1 항에 있어서,
    상기 특성 파라미터의 서브세트를 선택하는 단계와,
    상기 특성 파라미터를 동일한 디폴트 값으로 설정하는 단계
    를 더 포함하는 아이템을 클러스터링하는 방법.
  10. 삭제
  11. 제 1 항에 있어서,
    특정 임계치 미만의 아이템 수를 갖는 클러스터를 식별하는 단계와,
    상기 식별된 클러스터를 단일 클러스터에 흡수시키는 단계
    를 더 포함하는 아이템을 클러스터링하는 방법.
  12. 제 1 항에 있어서,
    트레이닝 데이터를 이용하여 상기 데이터 구조를 순차적으로(serially) 트레이닝하는 단계와,
    상기 데이터 구조의 복수의 차일드 사본(chld copy)을 생성하고 저장하는 단계와,
    추가의 트레이닝 데이터 세트에 액세스하고 그 트레이닝 데이터를 복수의 배치(batch)로 형성하는 단계와,
    상기 데이터 구조의 상기 차일드 사본을, 각각의 차일드 사본에 대해 다른 배치를 이용하여 병렬로 트레이닝하는 단계와,
    상기 트레이닝된 차일드 사본을 이용하여 상기 데이터 구조를 업데이트하는 단계와,
    상기 업데이트된 데이터 구조를 이용하여 새로운 차일드 사본을 생성하는 단계와,
    이전에 사용되지 않은 배치를 이용하여 상기 새로운 차일드 사본을 트레이닝하고 상기 데이터 구조를 업데이트하는 단계와,
    이들 단계를 반복하는 단계
    를 더 포함하는 아이템을 클러스터링하는 방법.
  13. 제 11 항에 있어서,
    상기 아이템은 광고이고,
    상기 특성은 상기 광고가 가입된 키워드인
    아이템을 클러스터링하는 방법.
  14. 제13항에 있어서,
    복수의 가입된 키워드를 갖는 광고를 수신하는 단계와,
    상기 데이터 구조를 이용하여 그 광고에 대해, 가입을 위한 추가 키워드를 생성하는 단계
    를 더 포함하는 아이템을 클러스터링하는 방법.
  15. 복수의 가입된 키워드를 갖는 광고에 기초하여 광고주에게 제안할 추가적인 키워드를 식별하는 컴퓨터 구현 방법으로서,
    상기 복수의 가입된 키워드를 갖는 광고를 수신하는 단계와,
    상기 가입된 키워드를 갖는 복수의 광고를 포함하는 데이터 세트에 대해 트레이닝된 확률적 클러스터 모델 - 상기 클러스터 모델은 상기 데이터 세트에서의 불확실성을 모델링하도록 구성됨 - 을 유지하는 데이터 구조를 포함하는 클러스터링 시스템에 액세스하는 단계와,
    상기 클러스터링 시스템을 이용하여 상기 수신된 광고에 기초하여 키워드 및 연관 확률을 생성하는 단계와,
    모든 클러스터에 걸쳐 유사한 특성 파라미터를 갖는 특성을 식별하고, 그러한 특성 파라미터에 대해 동일한 디폴트 값을 사용하는 단계와,
    상기 광고주에게 제안으로서 상기 생성된 키워드를 출력하는 단계
    를 포함하는 추가 키워드 식별 방법.
  16. 제 15 항에 있어서,
    상기 출력은 상기 연관 확률의 추정을 이용하여 랭킹되는 상기 생성된 키워드의 적어도 일부의 목록을 포함하는
    추가 키워드 식별 방법.
  17. 제 15 항에 있어서,
    상기 생성된 키워드의 적어도 일부에 대한 사용자 피드백을 수신하는 단계와,
    상기 사용자 피드백을 사용하여 상기 키워드 및 연관 확률을 생성하는 단계를 개정하는 단계
    를 더 포함하는 추가 키워드 식별 방법.
  18. 클러스터링 시스템으로서,
    관련 특성을 갖는 복수의 문서를 포함하는 데이터 세트에 대해 트레이닝된 확률적 클러스터 모델 - 상기 클러스터 모델은 상기 데이터 세트 내의 불확실성을 모델링하도록 구성됨 - 을 유지하는 데이터 구조를 저장하는 메모리와,
    문서의 특성을 포함하는 정보를 클러스터링하기 위해 상기 문서에 관한 정보를 수신하도록 구성된 입력부와,
    모든 클러스터에 걸쳐 유사한 특성 파라미터를 갖는 특성을 식별하고, 그러한 특성 파라미터에 대해 동일한 디폴트 값을 사용하는 프로세서와,
    상기 문서의 클러스터에 관한 정보를 제공하도록 구성된 출력부
    를 포함하는 클러스터링 시스템.
  19. 제 18 항에 있어서,
    특정된 특성을 갖는 문서에 관한 정보를 수신하도록 구성된 입력부
    를 더 포함하되,
    상기 프로세서는 상기 데이터 구조를 사용하여 상기 문서와 연관될 적어도 하나의 추가 특성을 생성하는
    클러스터링 시스템.
KR1020117023622A 2009-04-10 2010-04-01 확장가능한 클러스터링 KR101644667B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/421,853 US8204838B2 (en) 2009-04-10 2009-04-10 Scalable clustering
US12/421,853 2009-04-10

Publications (2)

Publication Number Publication Date
KR20110138229A KR20110138229A (ko) 2011-12-26
KR101644667B1 true KR101644667B1 (ko) 2016-08-01

Family

ID=42935152

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117023622A KR101644667B1 (ko) 2009-04-10 2010-04-01 확장가능한 클러스터링

Country Status (7)

Country Link
US (1) US8204838B2 (ko)
EP (1) EP2417538A4 (ko)
JP (1) JP5442846B2 (ko)
KR (1) KR101644667B1 (ko)
CN (1) CN102388382B (ko)
CA (1) CA2757703C (ko)
WO (1) WO2010117889A2 (ko)

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9065727B1 (en) 2012-08-31 2015-06-23 Google Inc. Device identifier similarity models derived from online event signals
US8458154B2 (en) * 2009-08-14 2013-06-04 Buzzmetrics, Ltd. Methods and apparatus to classify text communications
US8990105B1 (en) * 2010-01-07 2015-03-24 Magnetic Media Online, Inc. Systems, methods, and media for targeting advertisements based on user search information
WO2012064893A2 (en) * 2010-11-10 2012-05-18 Google Inc. Automated product attribute selection
US8473437B2 (en) 2010-12-17 2013-06-25 Microsoft Corporation Information propagation probability for a social network
US9104765B2 (en) * 2011-06-17 2015-08-11 Robert Osann, Jr. Automatic webpage characterization and search results annotation
JP5153925B2 (ja) * 2011-07-12 2013-02-27 ヤフー株式会社 入札対象推薦装置、システム及び方法
US8909581B2 (en) 2011-10-28 2014-12-09 Blackberry Limited Factor-graph based matching systems and methods
EP2771806A4 (en) * 2011-10-28 2015-07-22 Blackberry Ltd MANAGEMENT OF ELECTRONIC EQUIPMENT WITH PROFILE-BASED INFERENCES BETWEEN DOMAINS
US20130116988A1 (en) 2011-11-08 2013-05-09 Fu Zhang Automatic solver selection
US9354846B2 (en) 2011-11-08 2016-05-31 The Mathworks, Inc. Bidomain simulator
US8914262B2 (en) 2011-11-08 2014-12-16 The Mathworks, Inc. Visualization of data dependency in graphical models
US9377998B2 (en) 2011-11-08 2016-06-28 The Mathworks, Inc. Code generation for control design
US20130116989A1 (en) 2011-11-08 2013-05-09 Fu Zhang Parameter tuning
US8935137B1 (en) * 2011-11-08 2015-01-13 The Mathworks, Inc. Graphic theoretic linearization of sensitivity analysis
US20130159254A1 (en) * 2011-12-14 2013-06-20 Yahoo! Inc. System and methods for providing content via the internet
JP5425941B2 (ja) * 2012-02-07 2014-02-26 ヤフー株式会社 広告評価装置、広告評価方法およびプログラム
JP5485311B2 (ja) * 2012-02-07 2014-05-07 ヤフー株式会社 広告評価装置、広告評価方法およびプログラム
US8880438B1 (en) 2012-02-15 2014-11-04 Google Inc. Determining content relevance
US9053185B1 (en) 2012-04-30 2015-06-09 Google Inc. Generating a representative model for a plurality of models identified by similar feature data
US20150242906A1 (en) * 2012-05-02 2015-08-27 Google Inc. Generating a set of recommended network user identifiers from a first set of network user identifiers and advertiser bid data
US8914500B1 (en) 2012-05-21 2014-12-16 Google Inc. Creating a classifier model to determine whether a network user should be added to a list
WO2014149536A2 (en) 2013-03-15 2014-09-25 Animas Corporation Insulin time-action model
US10319035B2 (en) 2013-10-11 2019-06-11 Ccc Information Services Image capturing and automatic labeling system
US9697475B1 (en) 2013-12-12 2017-07-04 Google Inc. Additive context model for entity resolution
US10540606B2 (en) 2014-06-30 2020-01-21 Amazon Technologies, Inc. Consistent filtering of machine learning data
US10169715B2 (en) * 2014-06-30 2019-01-01 Amazon Technologies, Inc. Feature processing tradeoff management
US10452992B2 (en) 2014-06-30 2019-10-22 Amazon Technologies, Inc. Interactive interfaces for machine learning model evaluations
US10102480B2 (en) 2014-06-30 2018-10-16 Amazon Technologies, Inc. Machine learning service
US9672474B2 (en) * 2014-06-30 2017-06-06 Amazon Technologies, Inc. Concurrent binning of machine learning data
US9886670B2 (en) 2014-06-30 2018-02-06 Amazon Technologies, Inc. Feature processing recipes for machine learning
US11100420B2 (en) 2014-06-30 2021-08-24 Amazon Technologies, Inc. Input processing for machine learning
US10339465B2 (en) 2014-06-30 2019-07-02 Amazon Technologies, Inc. Optimized decision tree based models
US10963810B2 (en) 2014-06-30 2021-03-30 Amazon Technologies, Inc. Efficient duplicate detection for machine learning data sets
US10318882B2 (en) 2014-09-11 2019-06-11 Amazon Technologies, Inc. Optimized training of linear machine learning models
US9984159B1 (en) 2014-08-12 2018-05-29 Google Llc Providing information about content distribution
US11182691B1 (en) 2014-08-14 2021-11-23 Amazon Technologies, Inc. Category-based sampling of machine learning data
US20160055495A1 (en) * 2014-08-22 2016-02-25 Wal-Mart Stores, Inc. Systems and methods for estimating demand
US9971683B1 (en) * 2014-10-20 2018-05-15 Sprint Communications Company L.P. Automatic computer memory management coordination across a group of servers
US10846589B2 (en) * 2015-03-12 2020-11-24 William Marsh Rice University Automated compilation of probabilistic task description into executable neural network specification
US10257275B1 (en) 2015-10-26 2019-04-09 Amazon Technologies, Inc. Tuning software execution environments using Bayesian models
WO2018093935A1 (en) * 2016-11-15 2018-05-24 Google Llc Training neural networks using a clustering loss
KR102005420B1 (ko) * 2018-01-11 2019-07-30 국방과학연구소 전자메일 저자 분류 방법 및 장치
US10929110B2 (en) 2019-06-15 2021-02-23 International Business Machines Corporation AI-assisted UX design evaluation
CN116028829B (zh) * 2021-01-20 2023-10-24 国义招标股份有限公司 基于传递步长调整的修正聚类处理方法、设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6345265B1 (en) 1997-12-04 2002-02-05 Bo Thiesson Clustering with mixtures of bayesian networks
US20020169730A1 (en) 2001-08-29 2002-11-14 Emmanuel Lazaridis Methods for classifying objects and identifying latent classes

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6581058B1 (en) * 1998-05-22 2003-06-17 Microsoft Corporation Scalable system for clustering of large databases having mixed data attributes
US6564197B2 (en) * 1999-05-03 2003-05-13 E.Piphany, Inc. Method and apparatus for scalable probabilistic clustering using decision trees
GB9922221D0 (en) * 1999-09-20 1999-11-17 Ncr Int Inc Classsifying data in a database
IL132663A (en) * 1999-10-31 2004-06-01 Insyt Ltd Protocol system for knowledge engineering
JP3615451B2 (ja) * 2000-03-16 2005-02-02 日本電信電話株式会社 文書分類方法、およびその分類方法を記述したプログラムを記録している記録媒体
US7047169B2 (en) * 2001-01-18 2006-05-16 The Board Of Trustees Of The University Of Illinois Method for optimizing a solution set
US6952700B2 (en) * 2001-03-22 2005-10-04 International Business Machines Corporation Feature weighting in κ-means clustering
US7246125B2 (en) * 2001-06-21 2007-07-17 Microsoft Corporation Clustering of databases having mixed data attributes
US7231393B1 (en) * 2003-09-30 2007-06-12 Google, Inc. Method and apparatus for learning a probabilistic generative model for text
WO2004038656A2 (en) * 2002-10-24 2004-05-06 Duke University Binary prediction tree modeling with many predictors
US7480640B1 (en) * 2003-12-16 2009-01-20 Quantum Leap Research, Inc. Automated method and system for generating models from data
US8117203B2 (en) * 2005-07-15 2012-02-14 Fetch Technologies, Inc. Method and system for automatically extracting data from web sites
US7739314B2 (en) * 2005-08-15 2010-06-15 Google Inc. Scalable user clustering based on set similarity
US8341158B2 (en) * 2005-11-21 2012-12-25 Sony Corporation User's preference prediction from collective rating data
US7647289B2 (en) * 2006-06-02 2010-01-12 Microsoft Corporation Learning belief distributions for game moves
US7788264B2 (en) * 2006-11-29 2010-08-31 Nec Laboratories America, Inc. Systems and methods for classifying content using matrix factorization
CN100578500C (zh) * 2006-12-20 2010-01-06 腾讯科技(深圳)有限公司 一种网页分类方法及装置
US20100034102A1 (en) * 2008-08-05 2010-02-11 At&T Intellectual Property I, Lp Measurement-Based Validation of a Simple Model for Panoramic Profiling of Subnet-Level Network Data Traffic

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6345265B1 (en) 1997-12-04 2002-02-05 Bo Thiesson Clustering with mixtures of bayesian networks
US20020169730A1 (en) 2001-08-29 2002-11-14 Emmanuel Lazaridis Methods for classifying objects and identifying latent classes

Also Published As

Publication number Publication date
CA2757703C (en) 2017-01-17
KR20110138229A (ko) 2011-12-26
CN102388382A (zh) 2012-03-21
WO2010117889A3 (en) 2011-01-20
JP5442846B2 (ja) 2014-03-12
WO2010117889A2 (en) 2010-10-14
CN102388382B (zh) 2015-11-25
EP2417538A4 (en) 2016-08-31
JP2012523621A (ja) 2012-10-04
EP2417538A2 (en) 2012-02-15
CA2757703A1 (en) 2010-10-14
US8204838B2 (en) 2012-06-19
US20100262568A1 (en) 2010-10-14

Similar Documents

Publication Publication Date Title
KR101644667B1 (ko) 확장가능한 클러스터링
US11216496B2 (en) Visual interactive search
Kleinberg et al. Bandits and experts in metric spaces
US10963941B2 (en) Method and system for combining user, item and review representations for recommender systems
US9087332B2 (en) Adaptive targeting for finding look-alike users
US8589317B2 (en) Human-assisted training of automated classifiers
Wei et al. A survey of recommendation systems in electronic commerce
US7885859B2 (en) Assigning into one set of categories information that has been assigned to other sets of categories
US8473500B2 (en) Inferring user interests
Agarwal et al. Statistical methods for recommender systems
US8572099B2 (en) Advertiser and user association
US20170039198A1 (en) Visual interactive search, scalable bandit-based visual interactive search and ranking for visual interactive search
WO2020043001A1 (zh) 广告投放方法、确定推广人群的方法、服务器和客户端
Brodén et al. Ensemble recommendations via thompson sampling: an experimental study within e-commerce
CN112989213B (zh) 内容推荐方法、装置、系统、电子设备及存储介质
CN110135463A (zh) 一种商品推送方法及装置
US20190243923A1 (en) Online diverse set generation from partial-click feedback
CN111815403A (zh) 商品推荐方法、装置及终端设备
Brodén et al. A bandit-based ensemble framework for exploration/exploitation of diverse recommendation components: An experimental study within e-commerce
Boutemedjet et al. Long-term relevance feedback and feature selection for adaptive content based image suggestion
JP6751803B1 (ja) 情報処理装置、情報処理方法および情報処理プログラム
WO2021077227A1 (en) Method and system for generating aspects associated with a future event for a subject
Valarmathi et al. Boosting a Hybrid Model Recommendation System for Sparse Data using Collaborative Filtering and Deep Learning
JP2022144958A (ja) 生成装置、生成方法及び生成プログラム
Razek et al. User Modeling to Build Mobile Advertising Algorithm

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E701 Decision to grant or registration of patent right
GRNT Written decision to grant