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

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

Info

Publication number
KR20110138229A
KR20110138229A KR1020117023622A KR20117023622A KR20110138229A KR 20110138229 A KR20110138229 A KR 20110138229A KR 1020117023622 A KR1020117023622 A KR 1020117023622A KR 20117023622 A KR20117023622 A KR 20117023622A KR 20110138229 A KR20110138229 A KR 20110138229A
Authority
KR
South Korea
Prior art keywords
cluster
data structure
implemented method
model
computer implemented
Prior art date
Application number
KR1020117023622A
Other languages
English (en)
Other versions
KR101644667B1 (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)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Artificial Intelligence (AREA)
  • Medical Informatics (AREA)
  • Evolutionary Computation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computing Systems (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Evolutionary Biology (AREA)
  • Public Health (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computational Linguistics (AREA)
  • Epidemiology (AREA)
  • Biophysics (AREA)
  • Bioethics (AREA)
  • Pathology (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Biotechnology (AREA)
  • Primary Health Care (AREA)
  • Biomedical Technology (AREA)
  • Chemical & Material Sciences (AREA)
  • Crystallography & Structural Chemistry (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Fuzzy Systems (AREA)
  • Computer Hardware Design (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 pct00001
Figure pct00002
에 의해 설명된다. 구체적인 애플리케이션에서, 이들 오브젝트는 지불된 검색(paid searach)에서, 이들이 가입한 키워드의 세트에 의해 설명되는 온라인 광고이다. 총 D개의 특유한 키워드가 있고, 벡터
Figure pct00003
는 i번째 광고가 가입한 키워드에 대해 1을 포함한다: i번째 광고가 d번째 키워드에 가입한 경우, xid = 1, 그렇지 않으면 xid = 0.
광고의 키워드 벡터는 K개 클러스터 중 하나 또는 혼합 구성요소에 의해 생성된다. 각각의 광고
Figure pct00004
는 광고가 속하는 클러스터의 인덱스를 나타내는 그와 관련된 변수
Figure pct00005
를 갖는다. i 번째 광고가 클러스터 j에 속하면, ci = j. 클러스터 내에서, 광고는 독립 베르누이 확률 분포에 따라 키워드에 가입한다. i번째 광고가 클러스터 j에 속하면, 그가 d번째 키워드에 가입할 확률은
Figure pct00006
로 주어진다. 그 결과, i번째 광고가 클러스터 j에 속할 확률은 클러스터-독립 베르누이 프로파일에 의해 주어진다:
Figure pct00007
광고가 어떤 클러스터에 속하는지는 미리 알려지지 않으며, 그 불확성은 i 번째 광고(또는 실제로는 여하한 다른 광고)가 클라스터 j에 속하는 프라이어 확률에 의해 포착된다:
Figure pct00008
. 클러스터 프라이어
Figure pct00009
및 키워드
Figure pct00010
에 가입할 확률이 알려지면, 모델의 샘플링 분포는 베르누이 프로파일의 혼합에 의해 주어진다:
Figure pct00011
이 모델로부터 광고를 샘플링하는 데에는, 파라미터 벡터
Figure pct00012
를 이용하여 이산 분포로부터 그를 도출함으로써 K개 클러스터 중 첫 번째 것을 선택하는 것이 관여된다. 두 번째 단계에서, 광고가 가입한 키워드가 선택된 클러스터의 베르누이 프로파일로부터 도출된다.
여기에 제시된 베르누이 프로파일의 혼합에 대해, 키워드 가입의 베르누이 확률은 공액 프라이어 베타 분포
Figure pct00013
가 주어진다. 파라미터 α와 β는 유사 카운트로 해석될 수 있다: α는 키워드가 스위치 온된 횟수로서 해석될 수 있고, β는 키워드가 오프인 횟수를 갖는다. 키워드 가입 확률 t의 확률 밀도 함수(probability density function)(PDF) 는
Figure pct00014
이다.
유사 카운트의 합이 클수록, t의 값에 대한 불확실성이 작다.
다른 미지의 관심 변수는 프라이어 클러스터 확률
Figure pct00015
이고, 이들은 파라미터 벡터
Figure pct00016
를 갖는 디리클레 프라이어 분포
Figure pct00017
가 주어진다. 베타 분포에 유사하게,
Figure 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 pct00019
를 인자
Figure pct00020
로 흡수한다. 그러므로 메시지 전달에 의해 획득되는 키워드 가입 확률
Figure pct00021
및 클러스터 할당 확률
Figure pct00022
의 마지널(marginal)은 희망하는 사후 분포이다.
도 8의 인자 그래프는 단일의 광고만을 제시하지만, D x K 단위의 변수를 이미 포함하는데, 키워드의 수 D는 잠재적으로 백만 단위이고, 클러스터의 수 K는 백 단위이다. 대부분의 키워드는 실제로는 통상의 검색 엔진 질의(queries)에 유사한 키(key) 문구이고, 이는 D가 그렇게 크게 될 수 있는 이유이다. 전체 그래프는 수천만의 TV로 이 슬라이스를 N회(데이터 트레이닝의 수) 더 복제한다. 그 크기의 그래프를 메모리에 저장하거나 필요한 메시지를 연산하고 저장하는 것은 실용적이지 않다.
추정을 실용적으로 만들기 위해서, ADF(Assumed Density Filtering)로 근사 추정에 기초하여 온라인 학습 방식이 사용된다. 데이터 지점(광고)은 한 번에 하나씩 처리되고, 하나의 데이터 지점을 처리한 후에 획득한
Figure pct00023
Figure pct00024
의 사후 분포는 다음 데이터 지점의 처리를 위한 프라이어 분포로서 전달된다.
이 온라인 학습 시나리오에서 인자 그래프는 트리이기 때문에, 메시지는 루트 노드로부터 리프(leaf)까지 갔다가 돌아올 때 한번만 연산되면 된다. i 번째 데이터 지점을 처리하기 위한 실제적 스케줄은 다음과 같다:
■ 프라이어 분포
Figure pct00025
Figure pct00026
을 이전 데이터지점 처리로부터 얻은
Figure pct00027
Figure pct00028
Figure pct00029
에 대한 사후 마지널로 설정한다.
■ 키워드 인자
Figure pct00030
로부터 클러스터 할당 변수
Figure pct00031
까지 메시지
Figure pct00032
를 계산한다.
■ 클러스터 할당 인자
Figure pct00033
로부터 클러스터 할당 확률 변수
Figure pct00034
까지 메시지
Figure pct00035
를 계산한다.
■ 메시지
Figure pct00036
를 계산한다.
■ 각각의 키워드 인자
Figure pct00037
에 대해 인출(outgoing) 메시지
Figure pct00038
를 계산한다.
■ 새로운 마지널
Figure pct00039
Figure pct00040
을 계산한다.
ADF 단계들 사이에서 메시지가 저장될 필요는 없지만, D x K 마지널 분포의 단위에서만임을 유의하라.
Figure pct00041
에서
Figure pct00042
로의 메시지는
Figure pct00043
로 주어지는데, 여기서
Figure pct00044
Figure pct00045
의 평균이고
Figure pct00046
는 논증이 참이면 1이고 거짓이면 0인 표시자 함수이다.
Figure pct00047
로부터 인자
Figure pct00048
로의 메시지는
Figure pct00049
이고, 그러므로 인자
Figure pct00050
로부터
Figure pct00051
로의 메시지는
Figure pct00052
이다.
Figure pct00053
로부터
Figure pct00054
로의 메시지는 디리클레 프라이어
Figure pct00055
하의 (스케일된) 평균 클러스터 할당 확률
Figure pct00056
을 보낸다.
일부 실시형태에서 책임이라고 지칭된 파라미터는 선택적으로는 중간 단계로서 연산된다. 이는 클러스터 인덱스의 마지널 분포이다. 이 책임은, 도 5를 참조하여 상술한 바와 같이 주어진 클러스터가 특정 광고를 생성할 확률로 생각될 수 있다. 그 인입 메시지의 정규화된 곱으로 주어진
Figure pct00057
의 마지널 분포는:
Figure pct00058
이고, 여기서 광고 i에 대한 클러스터 l의 책임이라고 지칭되며,
Figure pct00059
이고
Figure pct00060
이다.
Figure pct00061
에서
Figure pct00062
로의 메시지는
Figure pct00063
와 상수의 베르누이 분포의 선형 결합으로 쓰여질 수 있다.
Figure pct00064
Figure pct00065
에서
Figure pct00066
노드로의 메시지 (4)가 혼합 베타 분포에 상수를 더한 것일 때,
Figure pct00067
의 마지널 분포는 그러므로 베타 분포도 아니고
Figure pct00068
이다.
대신, 현재의 광고가 클러스터 l에 속한다는 가정 하에서의
Figure pct00069
에 대한 프라이어 및 사후 베타 분포의 볼록 결합(convex combination)이다. 사후는 클러스터 l의 책임이 클 수록 큰 가중치를 갖는다.
메시지
Figure pct00070
를 베타 패밀리에 유지하기 위해, 마지널
Figure pct00071
자체는 모멘트 매칭에 의해 메타 분포에 투사될 수 있다. 마지널의 1차 모멘트에 대해,
Figure pct00072
이고,
2차 비중심(non-central) 모멘트에 대해,
Figure pct00073
이다.
1차 모멘트, 즉 마지널의 평균은 베타 분포의 완전한 업데이트 하에서(책임 항
Figure pct00074
을 고려하지 않고) 프라이어 평균과 사후 평균의 볼록 결합이다. 그 모멘트에 있어서 베타 분포의 파라미터의 표현을 이용하여, 근사 베타의 파라미터는
Figure pct00075
로 계산되는데, 여기서
Figure pct00076
는 업데이트된 유사 카운트(프라이어로부터의 유사 카운트 포함)이고, 대강 관측된 광고의 총 수이다.
Figure pct00077
의 정확한 마지널 분포 디리클레 분포의 혼합
Figure pct00078
이고, 여기서
Figure pct00079
는 길이 K의 i 번째 단위 벡터이다. 클러스터 당 하나의 디리클레 혼합이 있고, 그 값은 해당 클러스터가 방문된(viisited) 광고에 대해 완전히 책임을 진다는 것을 가정한 결과이다. 혼합 계수는 클러스터가 광고에 대해 갖는 실제의 책임이다. 디리클레 분포의 패밀리에 머무르기 위해 근사가 이루어진다. 예를 들어, 평균은 유지되고
Figure pct00080
의 합은 1만큼 증가되는 것이 보장된다. 이는 디리클레 분포의 해당 파라미터에 클러스터 책임을 더함으로써 이루어질 수 있다,
Figure 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 pct00082
이 i 번째 광고에서 가입된 모든 키워드의 세트라고 하자. 모든 인자
Figure pct00083
는 노드
Figure pct00084
로 식 2의 형태의 메시지를 보내는데, 이는 인자
Figure pct00085
로부터의 인입 메시지와 결합된다. 식 3의 업데이트 시나리오에서와 같이, 광고에 대한 클러스터의 책임이 계산되지만, 이 정보는 실제로 가입된 키워드에만 기초한다:
Figure pct00086
도 8의 인자
Figure pct00087
에 암시적으로 부착된 데이터 (키워드) 노드의 기대값이 연산되어 비관측 키워드
Figure pct00088
에 대해 획득된다.
Figure pct00089
,
비관측 키워드에 대한 베르누이 프로파일의 선형 결합으로, 가중치는 관측된 키워드로부터 연산된 책임에 기초한다. 이 방법을 이용하여, 명확한 랭킹 기준(위의 확률 또는 기타 관련된 보수적 확률 추정)으로 사용자에게 키워드가 제안될 수 있다. 예를 들어, 평균 확률
Figure pct00090
이 이용될 수 있다. 키워드 분포의 가중합을 계산하는 것도 가능하고, 그로부터 키워드를 보는것/제안하는 것에 대한 평균 또는 보수적 추정(평균 빼기 표준 편차 등(mean minus standard deviation)) 중 하나를 계산하는 것도 가능하다.
여기 설명된 클러스터링 시스템이 사용될 수 있는 많은 애플리케이션 도메인에서, 데이터 내 노이즈에 의해 유발되는 문제가 존재한다. 즉, 아이템이 주어진 클러스트의 메인 주제 특성인 몇몇의 연관 특성과 적어도 하나의 완전히 무관한 연관 특성을 갖는 경우, 노이즈가 있는 아이템이 발생할 수 있다. 여기에 설명된 클러스터링 시스템은 아이템-특성 연관에 대한 불확실성을 고려하여 배열되므로, 노이즈 있는 데이터는 다른 클러스터링 기술을 이용하는 경우와 같이 문제적이지는 않다. 이는 이제 아이템이 광고이고 특성이 키워드인 예를 참조하여 설명된다.
일 예에서, 클러스터의 토픽은 가입할 확률이 가장 큰 키워드를 조사함으로써 결정된다. 데이터의 노이즈가 있는(noisy) 성질 때문에, 어떤 무관한 키워드가 부당하게 높은 평균 가입 확률을 갖는 것이 가능하다. 이들 키워드는 몇몇의 클러스터 메인 주제 키워드에도 동시에 가입한 노이즈 있는 광고에 의해 가입되었을 수 있다. 제안된 베이즈 처리는, 가입 확률에 대한 불확실성의 척도를 제공함으로써 이 문제를 다룰 수 있게 한다. 도 15는 높은 평균 가입 확률
Figure pct00091
를 갖는 키워드-”pest control(페스트 제어)”-가 맞지 않는, 매우 동질적인 클러스터의 예를 도시한다. 그러나 이 키워드는 이 클러스터에 귀의(attribute)되는 더 적은 광고에서 활성인 것으로 보였다. 베타 분포의 총 유사 카운트 α는 이 클러스터에 귀의되고 문제의 키워드에 가입한 광고의 실효 개수를 나타낸다. 동일한 평균
Figure pct00092
을 갖지만 값이 상이한 2개의 키워드가 주어지면, 모델은 가장 높은 α를 갖는 키워드에 대해 더 확실하다. 그러므로
Figure 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 (15)

  1. 아이템-각각의 아이템은 적어도 하나의 연관 특성을 가짐-을 클러스터링하는 컴퓨터 구현 방법으로서,
    복수의 클러스터(201)와,
    각각의 아이템에 대한, 하나 이상의 연관 특성(202)과,
    각각의 클러스터에 대한, 아이템 중 어느 하나가 그 클러스터의 멤버인지 여부에 관한 믿음을 나타내는 프라이어 확률 분포와 관련된 적어도 하나의 클러스터 멤버십 파라미터(200)와,
    각각의 클러스터 및 특성 조합에 대한, 그 클러스터 내의 아이템 중 어느 하나가 그 특성과 연관되는지 여부에 대한 믿음을 나타내는 프라이어 확률 분포와 관련된 적어도 하나의 특성 파라미터(203)
    를 유지하는 데이터 구조를 메모리에 저장하는 단계와,
    연관 특성을 관측한 관측된 아이템을 포함하는 입력을 수신 및 저장하는 단계(302)와,
    상기 수신된 입력에 기초하고 베이즈(Bayesian) 업데이트 프로세스를 이용하여 데이터 구조에서 파라미터를 업데이트하는 단계(304)와,
    복수의 입력을 수신하는 상기 단계 및 업데이트하는 상기 단계를 반복하는 단계
    를 포함하는 컴퓨터 구현 방법.
  2. 제 1 항에 있어서,
    상기 데이터 구조에서 상기 파라미터를 업데이트하는 단계 후에, 저장된 입력을 삭제하는 단계 및 상기 삭제하는 단계를 상기 다른 반복되는 단계와 함께 반복하는 단계를 더 포함하는
    컴퓨터 구현 방법.
  3. 제 1 항 또는 제 2 항에 있어서,
    상기 데이터 구조는, 데이터 구조가, 베르누이 분포(Bernoulli distributions)의 곱(product)인 베르누이 프로파일(Bernoulli profiles)의 혼합에 기초하는 클러스터 모델(102)을 유지하도록 저장되는
    컴퓨터 구현 방법.
  4. 제 1 항 내지 제 3 항 중 어느 한에 있어서,
    상기 데이터 구조는, 데이터 구조가 인자(factor) 그래프를 이용하는 클러스터 모델(102)을 유지하도록 저장되는
    컴퓨터 구현 방법.
  5. 제 4 항에 있어서,
    상기 데이터 구조는, 데이터 구조가 트리 구조로서 상기 인자 그래프를 유지하도록 저장되는
    컴퓨터 구현 방법.
  6. 제 1 항 내지 제 5 항 중 어느 한 항에 있어서,
    상기 데이터 구조는, 각각의 클러스터 멤버십 파라미터가 디리클레 분포(Dirichlet distribution)에 관련되도록 저장되는
    컴퓨터 구현 방법.
  7. 제 1 항 내지 제 6 항 중 어느 한 항에 있어서,
    상기 데이터 구조는 각각의 특성 파라미터가 베타 분포(Beta distribution)에 관련되도록 저장되는
    컴퓨터 구현 방법.
  8. 제 1 항에 있어서,
    모든 클러스터에 걸쳐 유사한 특성 파라미터를 갖는 특성을 식별하는 단계(1000)와 이들 특성 파라미터에 대해 동일한 디폴트 값을 이용하는 단계(1001)를 더 포함하는
    컴퓨터 구현 방법.
  9. 제 1 항 내지 제 8 항 중 어느 한 항에 있어서,
    클러스터 내에서, 특성 파라미터를 디폴트 값으로 대체하는 것이 상기 클러스터링 방법의 결과를 현저하게 변화시키는지 여부를 확인하는 단계(1101) 및 현저한 변화가 없으면, 그 특성 파라미터에 대해 상기 디폴트 값을 사용하는 단계(1103)를 더 포함하는
    컴퓨터 구현 방법.
  10. 제 1 항 내지 제 9 항 중 어느 한 항에 있어서,
    특정 문턱 미만의 아이템 수를 갖는 클러스터를 식별하는 단계(1200) 및 상기 식별된 클러스터를 단일 클러스터로 흡수하는 단계(1201)를 더 포함하는
    컴퓨터 구현 방법.

  11. 제 1 항에 있어서,
    트레이닝 데이터를 이용하여 상기 데이터 구조를 직렬로 트레이닝하는 단계와,
    상기 데이터 구조의 복수의 차일드 사본(chld copy)을 생성하고 저장하는 단계(1303)와,
    추가의 트레이닝 데이터의 세트에 액세스하고 그 트레이닝 데이터를 복수의 배치(batch)로 형성하는 단계와,
    상기 데이터 구조의 상기 차일드 사본을, 각각의 차일드 사본에 대해 다른 배치를 이용하여 병렬로 트레이닝하는 단계와,
    상기 트레이닝된 차일드 사본을 이용하여 상기 데이터 구조를 업데이트하는 단계와,
    상기 업데이트된 데이터 구조를 이용하여 새로운 차일드 사본을 생성하는 단계와,
    이전에 사용되지 않은 배치를 이용하여 상기 새로운 차일드 사본을 트레이닝하고 상기 데이터 구조를 업데이트하는 단계와,
    상기 프로세스를 반복하는 단계를 더 포함하는
    컴퓨터 구현 방법.

  12. 복수의 가입된 키워드를 갖는 광고에 기초하여 광고주에게 제안할 추가적인 키워드를 식별하는 컴퓨터 구현 방법으로서,
    복수의 가입된 키워드를 갖는 광고를 수신하는 단계(1400)와,
    가입된 키워드를 갖는 복수의 광고를 포함하는 데이터 세트에 대해 트레이닝된 확률적 클러스터 모델(102)-클러스터 모델은 상기 데이터 세트에서의 불확실성을 모델링하도록 배열됨-을 유지하는 데이터 구조를 포함하는 클러스터링 시스템(101)에 액세스하는 단계와,
    상기 수신된 광고에 기초하여 키워드 및 연관 확률을 생성(1403)하기 위해 클러스터링 시스템을 이용하는 단계와,
    상기 광고주에게 제안으로서 상기 생성된 키워드를 출력하는 단계를 포함하는
    컴퓨터 구현 방법.
  13. 제 12 항에 있어서,
    상기 출력은 상기 연관 확률의 추정을 이용하여 랭킹된 상기 생성된 키워드의 적어도 일부의 목록을 포함하는
    컴퓨터 구현 방법.
  14. 제 12 항에 있어서,
    상기 생성된 키워드의 적어도 일부에 대한 사용자 피드백을 수신하는 단계와 상기 키워드 생성 프로세스를 개정하기 위해 이를 사용하는 단계를 더 포함하는
    컴퓨터 구현 방법.
  15. 클러스터링 시스템(101)에 있어서,
    관련 특성을 갖는 복수의 문서를 포함하는 데이터 세트에 대해 트레이닝된 확률적 클러스터 모델-클러스터 모델은 상기 데이터 세트 내의 불확실성을 모델링하도록 배열됨-을 유지하는 데이터 구조(120)를 저장하는 메모리(1602)와,
    상기 문서의 특성을 포함하는 정보를 클러스터링하기 위해 문서에 관한 상기 정보(100)를 수신하도록 배열된 입력과,
    상기 문서의 클러스터에 관한 정보(104)를 제공하기 위해 배열된 출력을 포함하는
    클러스터링 시스템.
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 true KR20110138229A (ko) 2011-12-26
KR101644667B1 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 (46)

* 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
US8898169B2 (en) * 2010-11-10 2014-11-25 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 ヤフー株式会社 入札対象推薦装置、システム及び方法
WO2013059904A1 (en) 2011-10-28 2013-05-02 Research In Motion Limited Factor-graph based matching systems and methods
CA2852727A1 (en) * 2011-10-28 2013-05-02 Blackberry Limited Electronic device management using interdomain profile-based inferences
US20130116989A1 (en) 2011-11-08 2013-05-09 Fu Zhang Parameter tuning
US8914262B2 (en) 2011-11-08 2014-12-16 The Mathworks, Inc. Visualization of data dependency in graphical models
US20130116988A1 (en) 2011-11-08 2013-05-09 Fu Zhang Automatic solver selection
US8935137B1 (en) * 2011-11-08 2015-01-13 The Mathworks, Inc. Graphic theoretic linearization of sensitivity analysis
US9377998B2 (en) 2011-11-08 2016-06-28 The Mathworks, Inc. Code generation for control design
US9354846B2 (en) 2011-11-08 2016-05-31 The Mathworks, Inc. Bidomain simulator
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
EP2973095B1 (en) 2013-03-15 2018-05-09 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
US9886670B2 (en) 2014-06-30 2018-02-06 Amazon Technologies, Inc. Feature processing recipes for machine learning
US10452992B2 (en) 2014-06-30 2019-10-22 Amazon Technologies, Inc. Interactive interfaces for machine learning model evaluations
US10169715B2 (en) * 2014-06-30 2019-01-01 Amazon Technologies, Inc. Feature processing tradeoff management
US10540606B2 (en) 2014-06-30 2020-01-21 Amazon Technologies, Inc. Consistent filtering of machine learning data
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
US10318882B2 (en) 2014-09-11 2019-06-11 Amazon Technologies, Inc. Optimized training of linear machine learning models
US10963810B2 (en) 2014-06-30 2021-03-30 Amazon Technologies, Inc. Efficient duplicate detection for machine learning data sets
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
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
WO2016145379A1 (en) * 2015-03-12 2016-09-15 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
EP3542319B1 (en) * 2016-11-15 2023-07-26 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
CN111813910B (zh) * 2020-06-24 2024-05-31 平安科技(深圳)有限公司 客服问题的更新方法、系统、终端设备及计算机存储介质
CN113836373B (zh) * 2021-01-20 2022-12-13 国义招标股份有限公司 一种基于密度聚类的投标信息处理方法、设备及存储介质

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
US20040083084A1 (en) * 2002-10-24 2004-04-29 Mike West 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
JP2012523621A (ja) 2012-10-04
EP2417538A4 (en) 2016-08-31
CA2757703C (en) 2017-01-17
CN102388382A (zh) 2012-03-21
WO2010117889A3 (en) 2011-01-20
KR101644667B1 (ko) 2016-08-01
US20100262568A1 (en) 2010-10-14
EP2417538A2 (en) 2012-02-15
US8204838B2 (en) 2012-06-19
CA2757703A1 (en) 2010-10-14
JP5442846B2 (ja) 2014-03-12
CN102388382B (zh) 2015-11-25
WO2010117889A2 (en) 2010-10-14

Similar Documents

Publication Publication Date Title
KR101644667B1 (ko) 확장가능한 클러스터링
US20200081906A1 (en) Visual Interactive Search
Gopalan et al. Scalable recommendation with poisson factorization
Tsoumakas et al. Random k-labelsets for multilabel classification
Agarwal et al. Statistical methods for recommender systems
EP2860672A2 (en) Scalable cross domain recommendation system
Koren et al. Automatically tagging email by leveraging other users' folders
CN112434151A (zh) 一种专利推荐方法、装置、计算机设备及存储介质
Cheplygina et al. On classification with bags, groups and sets
Liu et al. Conditional preference in recommender systems
CN112989213B (zh) 内容推荐方法、装置、系统、电子设备及存储介质
Loni et al. Top-N recommendation with multi-channel positive feedback using factorization machines
Deodhar et al. A framework for simultaneous co-clustering and learning from complex data
Zheng et al. A distributed frank–wolfe framework for learning low-rank matrices with the trace norm
Xiang et al. Collective inference for network data with copula latent markov networks
CN110135463A (zh) 一种商品推送方法及装置
Du et al. Privileged matrix factorization for collaborative filtering
CN111815403A (zh) 商品推荐方法、装置及终端设备
Cui et al. Learning to rank images for complex queries in concept-based search
Zhao et al. Multi-view multi-label active learning with conditional Bernoulli mixtures
Boutemedjet et al. Long-term relevance feedback and feature selection for adaptive content based image suggestion
Bertsimas et al. Holistic prescriptive analytics for continuous and constrained optimization problems
Cao et al. Adaptive data acquisition for personalized recommender systems with optimality guarantees on short-form video platforms
Sundaramurthy Recommender System for Gym Customers
Liu et al. A Joint Dynamic Ranking System with DNN and Vector-based Clustering Bandit

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