KR20150057987A - 추천 엔진에 기초하는 일반화된 그래프, 규칙 및 공간 구조 - Google Patents

추천 엔진에 기초하는 일반화된 그래프, 규칙 및 공간 구조 Download PDF

Info

Publication number
KR20150057987A
KR20150057987A KR1020140153875A KR20140153875A KR20150057987A KR 20150057987 A KR20150057987 A KR 20150057987A KR 1020140153875 A KR1020140153875 A KR 1020140153875A KR 20140153875 A KR20140153875 A KR 20140153875A KR 20150057987 A KR20150057987 A KR 20150057987A
Authority
KR
South Korea
Prior art keywords
user
items
item
model
vector
Prior art date
Application number
KR1020140153875A
Other languages
English (en)
Other versions
KR102139029B1 (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 KR20150057987A publication Critical patent/KR20150057987A/ko
Application granted granted Critical
Publication of KR102139029B1 publication Critical patent/KR102139029B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • G06F16/2264Multidimensional index structures
    • 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/2457Query processing with adaptation to user needs
    • G06F16/24575Query processing with adaptation to user needs using context
    • 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/2457Query processing with adaptation to user needs
    • G06F16/24578Query processing with adaptation to user needs using ranking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3347Query execution using vector based model
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/335Filtering based on additional data, e.g. user or group profiles
    • G06F16/337Profile generation, learning or modification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/35Clustering; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Economics (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Marketing (AREA)
  • Development Economics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명의 일 실시예는 추천 시스템을 제공한다. 동작하는 동안, 시스템은 사용자와 연관되는 컨텍스트 정보를 수신하고, 복수의 사용자 모델을 상기 수신된 컨텍스트 정보에 기초하여 갱신하고, 그리고 복수의 아이템을 저장하는 적어도 하나의 공간 데이터 구조를 식별한다. 각 아이템은 상기 아이템과 연관되는 벡터값에 기초하여 상기 공간 데이터 구조 내에 저장된다. 시스템은 다음으로 공간 데이터 구조를 퀴리하여 미리 결정된 범위 내의 벡터값을 갖는 추천가능한 아이템의 제1 세트를 획득하고, 상기 복수의 사용자 모델 및 각 아이템과 연관되는 특성화(characterization) 벡터에 기초하여 상기 추천가능한 아이템들의 세트 내의 각 아이템에 대한 점수를 계산하고, 상기 계산된 점수들에 기초하여 상기 추천가능한 아이템들의 세트 내의 아이템들의 순위를 부여하고, 그리고 상기 사용자에게 하나 이상의 상위 아이템을 추천한다.

Description

추천 엔진에 기초하는 일반화된 그래프, 규칙 및 공간 구조{GENERALIZED GRAPH, RULE, AND SPATIAL STRUCTURE BASED RECOMMENDATION ENGINE}
본 발명은 추천 엔진에 기초하는 일반화된 그래프, 규칙 및 공간 구조에 관한 것이다.
물리적 환경과 같은, 사용자 컨텍스트를 탐지하는 기술이 갖추어진 모바일 장치가 우리의 일상 생활에 좀 더 만연해짐에 따라, 물리적 환경을 탐지하고 활용하는 컨텍스트-인식 추천 어플리케이션은 모바일 장치 사용자들의 라이프 스타일의 개선에 점점 더 많이 공헌할 수 있다. 이러한 소프트웨어는, 물리적 환경을 포함하는, 컴퓨팅 환경에 적응할 수 있는 컨텍스트-인식 시스템을 포함하고, 물리적 환경에 기초하여 추천한다. 모바일 장치상의 컨텍스트-인식 시스템은 컴퓨팅 환경을 탐지하고, 모바일 장치의 위치나 이동, 근처의 장치들, 그리고 다른 환경 조건 같은, 환경으로부터 탐지한 변화하는 조건에 적응한다. 추가적인 사용자 컨텍스트도, 사용자가 보는 웹 페이지나 문서, 사용자의 과거 액티비티, 사용자에 의해 표현되는 인터레스트 등과 같은, 다양한 사용자 이벤트로부터 추출될 수 있다.
이와 같은 컨텍스트-인식 시스템은 다양한 사용자 컨텍스트에 기초하여 다양한 사용자 모델을 수립할 수 있다. 사용자 모델은 사용자 행위와 인터레스트를 서술하기 위하여 사용될 수 있다. 컨텍스트-기반의 추천 시스템은, 사용자 모델에 기초하여, 레저 액티비티와 같은, 액티비티를 추천할 수 있다. 그러나, 많은 수의 잠재적으로 추천 가능한 아이템을 포함하고 많은 수의 동시 사용자를 지원할 수 있는 컨텍스트-기반의 추천 시스템을 제공하는 것은 컴퓨팅 연산에 있어서 어려운 일이다. 무엇보다도, 종래의 추천 시스템은 때로는 상이한 사용자 모듈을 통합하지 못한다.
본 발명의 일 실시예는 추천 시스템을 제공한다. 동작하는 동안, 시스템은 사용자와 연관되는 컨텍스트 정보를 수신하고, 복수의 사용자 모델을 상기 수신된 컨텍스트 정보에 기초하여 갱신하고, 그리고 복수의 아이템을 저장하는 적어도 하나의 공간 데이터 구조를 식별한다. 각 아이템은 상기 아이템과 연관되는 벡터값에 기초하여 상기 공간 데이터 구조 내에 저장된다. 시스템은 다음으로 공간 데이터 구조를 퀴리하여 미리 결정된 범위 내의 벡터값을 갖는 추천가능한 아이템의 제1 세트를 획득하고, 상기 복수의 사용자 모델 및 각 아이템과 연관되는 특성화(characterization) 벡터에 기초하여 상기 추천가능한 아이템들의 세트 내의 각 아이템에 대한 점수를 계산하고, 상기 계산된 점수들에 기초하여 상기 추천가능한 아이템들의 세트 내의 아이템들의 순위를 부여하고, 그리고 상기 사용자에게 하나 이상의 상위 아이템을 추천한다.
본 실시예에 대한 일 변형에서, 상기 점수를 계산하는 것은, 각 사용자 모델에 대한 모델-특유의 출력을 계산하는 것과, 그리고 상기 복수의 사용자 모델에 대하여 모델-특유의 출력들의 가중 합계를 계산하는 것을 포함한다.
다른 변형에서, 상기 모델-특유의 출력을 계산하는 것은, 상기 사용자 모델의 파라미터들에 대응하는 특성화 벡터 내의 구성요소들을 식별하는 것과, 그리고 상기 식별된 구성요소들 및 상기 대응하는 사용자 모델의 파라미터들의 함수로서 상기 모델-특유의 출력을 계산하는 것을 포함한다.
본 실시예에 대한 일 변형에서, 시스템은 상이한 벡터 스페이스에 대응하는 추가적인 공간 데이터 구조를 판별하고, 상기 추가적인 공간 데이터 구조를 쿼리하여 추천 가능한 아이템들의 제2 세트를 획득하고, 그리고 추천 가능한 아이템들의 상기 제1 및 제2 세트를 사용하여 추천 가능한 아이템들의 결합 세트를 생성한다.
본 실시예에 대한 일 변형에서, 상기 복수의 아이템은 웹 페이지, 소비자 아이템, 액티비티, 장소(venue) 및 위치 중의 하나 이상을 포함한다.
본 실시예에 대한 일 변형에서, 시스템은 상기 수신된 컨텍스트 정보에 기초하여 사용자와 연관되는 컨텍스트 그래프를 갱신한다.
본 실시예에 대한 일 변형에서, 상기 공간 데이터 구조는 셀들로 분할되고, 각 셀은 상기 셀의 경계 내에 벡터값을 갖는 아이템들을 저장한다.
도 1은 본 발명의 일 실시예에 따른, 컨텍스트-기반의 추천 시스템의 아키텍처를 보여주는 다이어그램을 표현한다.
도 2a는 본 발명의 일 실시예에 따른, 공간 데이터 구조를 보여주는 다이어그램을 표현한다.
도 2b는 본 발명의 일 실시예에 따른, 공간 데이터 구조를 보여주는 다이어그램을 표현한다.
도 3은 본 발명의 일 실시예에 따른, 컨텍스트 그래프를 표현한다.
도 4는 본 발명의 일 실시예에 따른, 아이템에 대한 특성화 벡터를 생성하는 프로세스를 보여주는 흐름도를 표현한다.
도 5는 본 발명의 일 실시예에 따른, 공간 데이터 구조를 생성하는 프로세스를 보여주는 흐름도를 표현한다.
도 6은 본 발명의 일 실시예에 따른, 사용자에게 추천하는 프로세스를 보여주는 흐름도를 표현한다.
도 7은 본 발명의 일 실시예에 따른, 사용자에게 추천을 제공하는 컴퓨터 시스템을 보여준다.
도면에서, 유사한 참조 번호는 동일한 도면 구성요소를 참조한다.
다음의 상세한 설명은 본 발명이 속하는 기술 분야에서 통상의 지식을 갖는 자가 실시예들을 구현하고 사용하는 것이 가능하도록 표현되며, 특정 응용이나 그 요구사항의 맥락에서 제공된다. 개시된 실시예들에 대한 다양한 수정이 당 기술분야에서 통상의 지식을 가진 자에게 명백할 것이며, 여기 정의되는 일반적인 원칙은 본 발명에 개시된 정신과 영역으로부터 벗어나지 않고 다른 실시예와 응용에 적용될 수 있다. 따라서, 본 발명은 여기 개시되는 실시예에 한정되지 않지만, 그러나 여기 개시된 원칙과 특징과 조화되는 가장 넓은 영역에 일치할 것이다.
본 발명의 실시예는 많은 상이한 도메인에 컨텍스트-기반의 추천을 제공하는 방법과 시스템을 제공한다. 좀 더 상세하게는, 본 시스템은, 특정 콘텐츠 타입에 대하여, 각각 상이한 많은 특성화 시스템을 포함한다. 특성화 시스템은 잠재적으로 추천 가능한 아이템들에 대한 특성화 벡터를 생성하도록 사용될 수 있으며, 특성화 벡터의 구성요소들은 대응하는 추천 아이템과 연관되는 정규화된 점수를 수신한다. 특성화 벡터는 시스템이 추천할 때 쿼리될 수 있는 아이템 데이터베이스에 저장된다. 추천 계산을 가속화하기 위하여, 시스템은 특성화 벡터 요소의 범위로 아이템들의 스페이스를 세분화한다. 추천할 때, 추천 가능한 아이템으로 고려되는 아이템들만이 (사용자 컨텍스트에 의해서 결정되는) 특정 범위 내의 특성화 벡터를 갖는다. 시스템은 또한 다양한 사용자 모델을 결합하는 혼성 모델 함수를 불러내서 추천 가능한 아이템들의 점수를 매기고 순위를 부여한다.
도 1은 본 발명의 일 실시예에 따른, 컨텍스트-기반의 추천 시스템의 아키텍처를 보여주는 다이어그램을 표현한다. 도 1에서, 추천 시스템(100)은 아이템 특성화 모듈(102), 액티비티-탐지 모듈(112), 아이템 데이터베이스(120), 컨텍스트 그래프 생성자(122), 공간 구조 생성자(124) 및 혼성 모델 추천자(126)를 포함한다.
아이템 특성화 모듈(102)은 잠재적으로 추천 가능한 다양한 아이템의 특성화를 담당한다. 특성화 프로세스는 오프라인으로 수행될 수 있다. 도 1에 도시된 것처럼, 아이템 특성화 모듈(102)은 특성화기(104, 106, 108 및 110)와 같은 복수의 특성화기를 포함한다. 각 특성화기는 상이한 콘텐츠 타입에 대하여 사용될 수 있다는 것을 주목하라, 예를 들면, 특성화기(104)는 웹 페이지나 웹 문서를 특성화하도록 사용될 수 있을 것이다. 일 실시예에서, 웹-페이지 특성화기는, OpenCalaisTM ( 뉴욕의 Thomson Reuters Corporation of New York의 상표) 같은, 엔티티-추출 서비스에 기반한 시스템을 포함할 수 있다. 좀더 상세하게는, 웹-페이지 특성화기는 엔티티 리스트를 추출하거나 기본 용어(canonical terms)를 추출하는, OpenCalaisTM 에 웹 콘텐츠를 제공할 수 있다. 특성화기는 다음으로 이들 추출된 용어들에 대한 점수를 특성화 벡터에 삽입할 수 있다. 특성화 벡터는 임의의 수의 구성요소나 차원을 갖는 벡터이며, 각 구성요소는 아이템들의 양상을 표현한다는 것을 주목하라. 레스토랑에 대한 표본 특성화 벡터는 많은 지역적인 구성요소(예를 들면, 아시아, 유럽, 남부, 등), 민족적 구성요소(예를 들면, 중국, 타이, 이탈리아, 등), 가격 범위 구성요소(예를 들면, 비싼, 양호한, 싼, 등), 등을 포함할 수 있다. 일 실시예에서, 특성화 벡터 내의 (위도와 경도를 포함하는, 위치 이외의) 모든 구성요소는 0.0과 1.0 사이의 범위를 갖는 정규화된 점수를 수신한다. 다른 실시예에서, 정규화된 점수가 특성화기들에 의해서 주어진다. 웹-페이지 특성화기의 예에서, 이는 웹 페이지로부터 기본 용어(canonical terms)를 추출하고, 다음으로 하나 이상의 상위의 용어에 1.0의 점수를 배정하고, 더 낮은 순위의 용어들에는 더 낮은 점수를 배정한다. 특성화기는 다음으로 (대응하는 기본 용어로 인덱싱된) 이들 정규화된 점수를 특성화 벡터에 삽입한다. 일부 최하위 용어는 0의 점수를 수신하고 특성화 백터에 포함되지 않을 수 있다는 것을 주목하라. 특성화 벡터는 구성요소 이름에 의해 인덱싱된 값의 해시맵 내에 저장될 수 있다. 예를 들면, 만일 웹 페이지의 콘텐츠가 레스토랑 리뷰를 포함하면, 특정 레스토랑에 대해 생성된 특성화 벡터는 {레스토랑 = 1, 위도 = 40°20', 경도 = 90°, 타이 = 1, 이탈리아 = 0, 아시아 = 1, 고급 식사 = 0.5, 가벼운 식사 = 0.5,...} 로 보일 수 있다. 해시 내에 존재하지 않는 구성요소는 0의 값을 갖는 것으로 가정될 수 있다는 것을 주목하라. 알다시피, 특성화 벡터는 아이템의 다양한 측면을 계량적으로 서술하는 방법이다. 본 예에서, 특성화 벡터는 타이 레스토랑을 표현하며, 이에 따라, "타이" 등급을 측정하는 벡터 구성요소는 1.0의 값이 주어진다. 반대로, "이탈리아" 등급을 측정하는 벡터 구성요소는 0.0의 값이 주어진다. 레스토랑의 타입(또는 가격 범위)은 고급 식사와 가벼운 식사 사이에 있을 것이며, 두 구성요소는 모두 0.5의 값이 주어진다. 유사하게, 만일 웹 페이지의 콘텐츠가 정치적인 코멘트를 포함한다면, 특성화 벡터는 {민주당 = 0.2, 공화당 = 0.3, 자유당 = 0.5,...}로 보일 수 있다. 일 실시예에서, 기본 용어를 추출하고 점수를 매길 때, 특성화기는 고유의 언어 파서(parser)와 용어 빈도-역 문서 빈도(term frequency-inverse document frequency, TF-IDF) 랭킹 알고리즘을 사용할 수 있다.
웹 페이지 특성화기에 추가하여, 다른 타입의 특성화기들도 상이한 타입의 아이템들을 특성화시키도록 포함될 수 있다. 예를 들면, 특성화기(106)는 여행-목적지 특성화기일 수 있으며, (리뷰 웹사이트 내의 엔트리, 개인 블로그, 광고 등을 포함할 수 있는) 목적지와 연관되는 웹사이트나 사용자 리뷰로부터 "오려낸" 데이터를 담당하는 많은 특정 파서를 포함한다. 다른 아이템 타입은 소비자 아이템(예를 들면, 책, 전자기기, 의복, 가정용 제품, 등), 액티비티(예를 들면, 스포츠 활동, 레저 활동, 특별한-관심 활동, 등), 장소(예를 들면, 상점, 운동 장소, 클럽, 영화관, 의료 시설, 등), 지정학적 위치 및 다른 타입을 포함할 수 있지만, 이에 한정되지 않는다. 각각의 특정 타입의 아이템에 대하여, 특유의 모듈(예를 들면, 특정화기나 특정화기의 특정 타입 내의 모듈)이 특성화 벡터를 생성하도록 채택될 수 있다. 일 실시예에서, 특정 아이템이 복수의 특성화기에 의해서 특성화될 수 있는데, 이는 특정 아이템과 연관된 다양한 포맷의 정보가 있을 수 있기 때문이다. 예를 들면, 추천가능한 아이템이 장소 B에 있는 액티비티 A에 소속되면, 액티비티 특성화기와 장소 특성화기가 모두 이 특정 아이템에 대한 특성화 벡터를 생성하도록 채용될 것이다. 특정 머신-학습 기술이 아이템을 특성화할 때 사용될 수 있다는 것을 주목하라. 예를 들면, 훈련된 분류기가 대규모 온라인 및 오프라인 데이터를 마이닝하여 특성화 벡터를 생성하도록 사용될 수 있다.
아이템 데이터베이스(120)는 아이템 특성화 모듈(102)로부터 출력을 수신하고 저장한다. 일 실시예에서, 아이템 데이터베이스(120)는 많은 아이템과 그들의 연관된 특성화 벡터를 저장한다. 일 실시예에서, 각 아이템은 대규모 벡터일 수 있는 특성화 벡터와 연관된다. 특성화 프로세스 및 특성화 벡터를 저장하는 프로세스는 오프라인으로 발생할 수 있다는 것을 주목하라. 일 실시예에서 특성화 시스템(100)은 방대한 양의 온라인 및 오프라인 데이터를 수집하고 분석함으로써 아이템 데이터베이스(120)를 지속적으로 형성할 수 있다. 다른 실시예에서, 아이템 데이터베이스(120)는 수작업으로 생성되는 특성화 벡터를 포함할 수 있다. 예를 들면, 인간 작업자는 레스토랑 리뷰를 읽거나 레스토랑을 이용하고, 레스토랑의 다양한 측면에 정규화된 점수를 부여하여, 레스토랑에 대한 특성화 벡터를 생성할 수 있다. 다른 실시예에서, 특성화기는 분류기를 사용할 수 있는데, 이는 레스토랑 리뷰를 읽는 사람 같은, 인간 작업자에 의해서 초기에 훈련될 수 있다. 일단 분류기가 훈련되면, 수집된 데이터에 기초하여 자동으로 레스토랑을 분류(또는 특성화)하도록 사용될 수 있다.
추천 시스템(100)이 지식을 축적함에 따라, 아이템 데이터베이스(120) 내의 잠재적으로 추천가능한 아이템의 수가 증가한다. 종래의 접근방법에서, 방대한 아이템들은 시스템이 추천할 때 필요한 방대한 많은 계산으로 이어질 수 있는데, 이는 모든 아이템에 대한 철저한 검색을 필요로 하기 때문이다. 이는 만일 추천 시스템(100)이 많은 수의 사용자를 지원하고 또한 복수의 사용자에게 동시에 추천해야 한다면, 문제가 될 수 있다. 이러한 문제를 해결하기 위하여, 본 발명의 실시예에서, 아이템 데이터베이스(120) 내의 아이템들이 공간 구조 생성자(124)에게 제공되어, 아이템의 스페이스를 임의의 특성화 벡터 스페이스 내의 범위로 세분화함으로써 이들 아이템에 대한 공간 구조를 생성한다. 아이템 스페이스의 분할은 추천 계산을 가속화하는데, 이는 시스템이 더 이상 모든 가능한 아이템을 검색할 필요가 없기 때문이다. 대신에, 시스템은 (특정 범위 내의 구성요소 값을 갖는) 아이템의 작은 세트를 고려하고, 이들 아이템만을 위한 추천 계산을 수행할 필요가 있으며, 이에 따라 필요한 계산 수를 감소시킬 수 있다. 모델링 요구에 따라서, 공간 구조는 상이한 차원을 가질 수 있다. 각 공간 구조는 아이템 스페이스 차원의 서브셋을 표현할 수 있다. 예를 들면, 사용자 모델이 음식과 관련된다면, 아이템에 대한 특성화 벡터 내의 오직 음식-관련된 벡터 구성요소들(예를 들면, 중국 음식, 타이 음식, 이탈리아 음식, 등)만이 사용자 모델에 대한 입력으로 요구된다. 이에 따라, 공간 데이터 구조는 상기 음식-관련된 벡터 구성요소에 기초하여 구성될 수 있다.
도 2a는 본 발명의 일 실시예에 따른, 공간 데이터 구조를 보여주는 다이어그램을 표현한다. 도 2a에서, 공간 데이터 구조(200)는 많은 수의 2-차원 벡터를 포함하는 2-차원 벡터 스페이스이고, 각 벡터는 아이템 데이터베이스 내의 아이템에 대응한다. 2-차원 벡터의 수평 컴포넌트와 수직 컴포넌트는 특성화 내에 선택된 구성요소의 값에 대응한다. 도 2a에 도시된 예에서, 공간 데이터 구조(200)는 음식-관련된 공간 데이터 구조이며, "중국 음식"인 수평 컴포넌트와 "이탈리아 음식"인 수직 컴포넌트를 갖는다. 레스토랑일 수 있는 아이템이, 특성화 벡터의 "중국" 컴포넌트와 "이탈리아" 컴포넌트에 기초하여, 공간 데이터 구조(200)에 배치되어 있다. 예를 들면, 레스토랑(202)은, 중국 영향이 거의 없는 이탈리아 레스토랑에 가까우며 벡터값 (0.1, 0.8)을 가지며, 레스토랑(204)은, 이탈리아 영향이 거의 없는 중국 레스토랑에 가까우며 벡터값 (0.9, 0.1)을 갖고, 그리고 중국-이탈리아 퓨전 레스토랑인, 레스토랑(206)의 벡터값은 (0.5, 0.5)로 표현된다. 도 2b는 본 발명의 일 실시예에 따른, 공간 데이터 구조를 보여주는 다이어그램을 표현한다. 도 2b에 도시된 예에서, 공간 데이터 구조(210)는 지정학적인 위치에 관련되고, 공간 데이터 구조(210) 내의 수평 컴포넌트와 수직 컴포넌트는 각각 아이템의 위도와 경도이다. 레스토랑(202, 204, 206)은 공간 데이터 구조(210) 내에 상이한 벡터로 표현된다.
공간 데이터 구조 내에 아이템을 배치하는 이점은, 시스템은 이제, 도 2a의 케이지(212)와 도 2b의 케이지(214) 같이, 공간 구조 내에 "케이지(cages)"를 배치함으로써 추천 계산을 가속시킬 수 있다는 것이다. 케이지의 형태는, 사용자에 의해서 또는 추천 시스템에 의해서, 임의로 정의될 수 있다. 오직 케이지 경계 내의 아이템들만이 추천 계산에서 고려될 것이다. 도 2a에 도시된 예에서, 시스템은 사용자의 선호도가 (케이지(212)로 표시된) 특정 범위 내의 중국-이탈리아 퓨전을 포함한다고 (특정 사용자 선호도 모델에 기초하여) 결정하고, 상기 범위에 속하는 중국-이탈리아 벡터를 갖는 레스토랑에 대한 추천 계산만을 수행할 수 있다. 다른 타입의 레스토랑은 추천 계산에서 고려될 필요가 없다. 유사하게, 시스템은 사용자가 (케이지(214)로 표시된) 특정 지역 경계 내의 레스토랑에만 관심이 있다고 (사용자의 현재 위치와 다른 제약조건에 기초하여) 결정할 수 있고, 이와 같은 지역적인 경계 내의 레스토랑에 대한 추천 계산을 수행할 수 있다.
벡터값을 사용하여 각 아이템 벡터를 인덱싱하는 것에 추가하여, 공간 데이터 구조를, 각 세그먼트가 하나 이상의 아이템 벡터를 갖는 많은 세그먼테이션으로 분할하는 것도 가능하다. 아이템은 다음으로 대응하는 세그먼테이션의 인덱스를 사용하여 인덱싱될 수 있다. 도 2a 및 2b에 도시된 예에서, 일련의 그리드 라인이 사용되어 공간 데이터 구조를, 셀(216) 및 셀(218) 같은, 많은 셀로 분할할 수 있다. 각 셀은 셀 경계 내에 속하는 벡터값을 갖는 아이템을 포함한다. 추가적인 실시예에서, 각 셀은 수평 인덱스와 수직 인덱스를 가질 수 있다. 예를 들면, 셀(216)은 수평 인덱스 3과 수직 인덱스 3을 가질 수 있다. 공간 데이터 구조는 반드시 그리드 구조의 셀을 가질 필요는 없지만, 그러나 그래픽 구조의 셀을 좀더 일반적으로 포함한다는 것을 주목하라. 특정 세그멘테이션 방법과 상관없이, 세그멘테이션의 일 목적은 공간적으로 가까운 아이템의 효율적인 검색을 가능하게 하는 것이다. 예를 들면, 도 2a나 2b에 도시된 것처럼, 그리드-같은 공간 데이터 구조에서, 관심 받는 특정 셀 근처의 셀들은 관심 셀의 인덱스로부터 1을 더하거나 감함으로써 쉽게 검색될 수 있다. 이러한 연산은 좀더 멀리 있는 셀에 연관된 아이템을 조사하지 않고도 완성될 수 있다.
도해의 단순화를 위하여, 우리는 도 2a의 2-차원 예를 사용한다는 것을 주목하라. 실제로, 공간 데이터 구조는 더 많거나(예를 들면, 3, 4, 5) 더 적은 차원을 가질 수 있다.
도 1로 돌아가면, 아이템의 특성화 및 아이템과 연관된 공간 구조의 생성을 포함하는 오프라인 프로세서에 추가하여, 추천 시스템(100)은 실시간 정보 흐름을 포함한다. 좀더 상세하게는, 액티비티-탐지 모듈(112)은 사용자의 액티비티, 인터레스트(interest), 또는 사용자의 현재 및/또는 미래 액티비티에 관련된 인터레스트의 다른 상태를 탐지하고, 그리고 들어오는 이벤트 스트림을 실시간으로 처리하여 사용자의 행위와 인터레스트에 대한 상위-레벨의 주장을 생성한다. 일 실시예에서, 액티비티-탐지 모듈(112)은, 액티비티 탐지기(114, 116, 118) 같은, 복수의 액티비티 탐지기를 포함한다. 액티비티 탐지기는 사용자와 연관된 모바일 장치에 위치하는 다양한 센서로부터, GPS 추적, 가속도계 출력, 어플리케이션에서 버튼-선택, 스크린 캡처, 등과 같은, 하위-레벨의 사용자 액티비티 추적의 수신을 담당한다. 액티비티 탐지기는 또한 사용자의 행위에 대한 상위-레벨의 이벤트나 주장 및 탐지된 사용자 컨텍스트에 기초한 인터레스트를 생성할 수 있다. 더 상위-레벨 이벤트는, 예를 들면, 사용자가 읽는 이메일일 수 있다. 더 상위-레벨 주장은, 예를 들면, 출근 기차를 타고 이메일을 읽는 것을 선호하는 사용자일 수 있다.
사용자 행위 및 인터레스트의 상위-레벨 이벤트나 주장은 컨텍스트-그래프 생성자(122)로 송신되어, 컨텍스트 그래프를 생성하고 수정하게 된다. 컨텍스트 그래프는 사용자 행위와 인터레스트에 대한 사실과 주장을 저장하는 인-메모리 모델이다. 도 3은 본 발명의 일 실시예에 따른, 컨텍스트 그래프를 표현한다. 도 3에 도시된 예에서, 컨텍스트 그래프(300)는 아시아, 미국, 유럽 같은, 다양한 스타일의 음식에 대한 사용자의 선호도를 기술한다. 에지 근처의 숫자는 사용자의 선호도 가중치이다. 그래프는 아시아 음식 중에서 사용자가 중국, 베트남 또는 타이 음식에 대한 상이한 선호도를 갖는다는 것을 보여준다. 일 실시예에서, 클라이언트-서버 시스템은 컨텍스트 그래프를 생성하도록 사용될 수 있다. 예를 들면, (사용자의 모바일 장치에 위치하는) 클라이언트는 사용자 행위와 인터레스트에 대한 상위-레벨의 이벤트나 주장을 원격 서버로 송신하고, 이는 이벤트 정보를 분석하여 컨텍스트 그래프를 생성하거나 수정한다.
컨텍스트 그래프는 다음으로, 사용자 모델(128, 130, 132) 같은, 많은 사용자 모델을 포함하는, 혼성 모델 추천자(126)로 송신된다, 컨텍스트 그래프 내에 포함된 파라미터는 복수의 사용자 모델을 갱신하도록 혼성 모델 추천자(126)에 의해 사용될 수 있다. 예를 들면, 사용자에 의해 기록된 레스토랑 리뷰에 기초하여, 사용자의 음식 선호도와 연관된 컨텍스트 그래프가 갱신되고, 이어서 사용자의 음식 선호도를 서술하는 사용자 모델이 갱신된다. 또는, 사용자의 현재 시간과 위치에 기초하여, 컨텍스트 그래프와 사용자 모델이 모두 갱신될 수 있다. 예를 들면, 외국으로 여행하는 사용자는, 비록 이전에 지역 음식에 강한 선호도를 표시하지 않았더라도, 그러한 음식을 탐구하기를 원할 수 있다. 컨텍스트 그래프에 추가하여, 데이터베이스나 인-메모리 저장소 같은, 다른 타입의 구조도 사용자 컨텍스트 파라미터를 저장하도록 사용될 수 있다.
혼성 모델 추천자(126)는 복수의 사용자 모델에 기초하여 추천 계산을 수행하는 것을 담당한다. 일 실시예에서, 혼성 모델 추천자(126)는 공간 구조 생성자(124)로부터 공간 구조를 수신하고, 모델 파라미터에 기초하여 어떤 공간 구조가 모델의 긍정적인 표현을 유발할 수 있는 추천가능한 아이템을 포함하는지를 결정한다. 예를 들면, 사용자 음식 선호도에 관한 사용자 모델에 대하여, 특성화 벡터 내의 음식-관련된 구성요소를 포함하는 공간 데이터 구조가 선택될 수 있다. 아이템에 대한 특성화 벡터 내의 구성요소들은 (그룹간에 오버랩될 가능성을 갖고) 복수의 그룹으로 그룹화될 수 있다는 것을 주목하라. 각 구성요소 그룹은 사용자 모델 및 하나 이상의 데이터 구조에 대응할 수 있다.
동작 동안, 사용자와 관련된 아이템의 효용이 사용자 모델의 파라미터와 아이템의 특성화 벡터에 기초하여 계산된다. 일 실시예에서, 효용은 모든 모델 출력의 가중된 합계로서 계산될 수 있다. 각 모델 출력은 모델 안에 포함된 모든 벡터 구성요소에 대한 모델링 함수의 합계일 수 있다. 예를 들면, 레스토랑을 추천할 때, 사용자의 음식 선호도 모델은 특성화 벡터 내의 음식-관련 구성요소를 음식-관련된 모델의 입력으로서 사용할 수 있다. 위치 모델이나 경제 모델 같은, 다른 모델들은 입력으로서 특성화 벡터 내의 상이한 구성요소를 사용할 수 있다. 일 실시예에서, 사용자 모델의 출력은 수치 값을 포함할 수 있다. 다음으로 상이한 사용자 모델로부터의 상이한 출력이 결합되어 사용자와 관련된 아이템에 대한 모델-결합 점수를 생성한다. 다음으로 아이템은 수치 점수에 기초하여 순위가 부여되고, 상위 아이템들이 사용자에게 추천으로서 표현된다.
수신된 공간 데이터 구조 내의 모든 아이템에 대한 효용(또는 모델-결합 점수)을 계산하는 대신에, 일 실시예에서, 시스템은 먼저 사용자 모델 내의 파라미터에 기초하여 특성화 벡터 내의 구성요소들에 대한 대략적인 경계(bound)를 계산함으로써 각 공간 데이터 구조 내의 추천가능한 아이템 세트를 조합한다는 것을 주목하라. 예를 들면, 만일 사용자 모델로 입력되는 공간 데이터 구조가 지리적 위치와 관련되면, 시스템은 사용자의 현재 및 미래 위치에 기초하여 대략적인 경계를 그릴 수 있다. 만일 공간 데이터 구조가 음식과 관련된다면, 경계는, 0.5의 최소 "중국" 벡터 구성요소와 0.7의 최소 "아시아 퓨전" 벡터를 갖는, 중국-아시아 벡터 스페이스 내의 영역으로서 정의될 수 있다. 다음으로 시스템은 이러한 경계 내의 아이템들에 대한 공간 데이터 구조를 쿼리한다. 세그먼트화된 공간 데이터 구조에 대하여, 쿼리는 훨씬 더 빨리 수행될 수 있다는 것을 주목하라. 또한, 추천 가능한 아이템 세트 내의 아이템들만이 효용 함수 계산에 포함될 수 있다. 효용 계산으로부터, 시간-소모적일 수 있는, 모든 다른 아이템을 제거함으로써, 본 발명의 실시예는 가속된 추천 프로세스를 가능하게 한다.
추천 가능한 아이템 세트를 조합할 때, 시스템은 모든 관련된 공간 데이터 구조를 동시에 쿼리하고 그 결과를 결합할 수 있다. 일 실시예에서, 쿼리 결과를 결합하는 것은 모든 추천가능한 아이템 세트들 중에서 교차점을 발견하는 것을 포함할 수 있다. 예를 들면, 레스토랑을 추천할 때, 시스템은 (음식-관련 벡터 구성요소의 상이한 세트를 포함할 수 있는) 많은 음식-관련된 공간 데이터 구조, 위치-기반의 공간 데이터 구조, 그리고 경제-가치 기반의 공간 데이터 구조를 쿼리할 수 있다. 도 2a 및 2b에 도시된 예에서, (도 2a에 도시된) 케이지(212)에 의해 정의되는 경계는 4개의 아이템을 포함하고, 한편 (도 2b에 도시된) 케이지(214)에 의해 정의되는 경계는 2개의 아이템을 포함한다. 쿼리에 대한 결합된 결과는, 아이템(206) 같이, 두 경계 세트 내의 두 아이템 세트 사이의 교차점이어야 한다. 실제로, 경계는 클 수 있고, 결합된 쿼리는 역시 추천가능한 아이템의 상대적으로 큰 세트를 유발할 수 있다.
도 4는 본 발명의 일 실시예에 따른, 아이템에 대한 특성화 벡터를 생성하는 프로세스를 보여주는 흐름도를 표현한다. 동작 동안, 시스템은 아이템과 연관된 정보를 수집한다(동작 402). 아이템과 연관된 온라인 및 오프라인 정보를 포함하는, 다양한 타입의 정보가 수집될 수 있다는 것을 주목하라. 예를 들면, 만일 아이템이 레스토랑이라면, 자신의 웹 사이트상의 콘텐츠와 다양한 리뷰 웹사이트상의 고객 리뷰가 수집될 수 있다. 일 실시예에서, 웹-크롤러(web-crawler)가 정보를 수집하도록 사용될 수 있다. 시스템은 수집된 정보를 분석한다(동작 404). 정보의 타입에 기초하여, 상이한 분석기가 사용될 수 있다. 예를 들면, 수집된 정보가 웹 문서를 포함하면, 엔티티-추출 메커니즘이 사용되어 문서로부터 기본 용어를 추출할 수 있다. 상기 분석에 기초하여, 시스템은 특성화 벡터 내의 구성요소에 대한 값을 할당할 수 있다(동작 406). 일 실시예에서, 값은 0과 1.0 사이의 범위에서 정규화된 점수일 수 있다. 추가적인 실시예에서, 이러한 값은 수작업으로 할당될 수 있다. 특성화 벡터는 임의의 수의 구성요소를 갖는 대규모 벡터일 수 있고 아이템을 서술하도록 사용될 수 있다는 것을 주목하라. 특성화 벡터 내의 각 구성요소는 아이템의 속성을 측정하도록 사용될 수 있다. 비록 대부분의 아이템에 대해서, 그들의 특성화 벡터 내에 상당히 많은 수의 구성요소에 0 값이 할당되지만, 특성화 벡터가 얼마나 많은 벡터를 갖는지에 대해서는 제한이 없다는 것을 주목하라.
도 5는 본 발명의 일 실시예에 따른, 공간 데이터 구조를 생성하는 프로세스를 보여주는 흐름도를 표현한다. 동작 동안, 시스템은 많은 아이템에 대한 특성화 벡터를 수신하고(동작 502), 특성화 벡터로부터 하나 이상의 구성요소를 선택한다(동작 504). 시스템은 특성화 벡터로부터 선택된 벡터 구성요소를 추출함으로써 새로운 아이템 벡터 세트를 생성한다(동작 506). 각 아이템은 선택된 하나 이상의 벡터 구성요소를 포함하는 아이템 벡터에 의해 표현된다. 예를 들면, 레스토랑에 대해서 일반화된 특성화 벡터는 수백의 구성요소를 가질 수 있다. 그러나, 중국-아시아 벡터 스페이스 내의 벡터들은 오직 "중국" 구성요소와 "아시아" 구성요소를 갖는다. 아이템 벡터들은 다음으로 그들의 벡터값에 기초하여 상이한 셀들로 그룹화된다(동작 508). 각 셀은 경계를 정의하고, 셀 경계 내에 속하는 아이템 벡터들은 셀 내에 배치된다. 아이템을 상이한 셀에 배치하는 것은 고속 쿼리를 가능하게 한다.
도 6은 본 발명의 일 실시예에 따른, 사용자에게 추천하는 프로세스를 보여주는 흐름도를 표현한다. 동작 동안, 시스템은 사용자 컨텍스트를 수신한다(동작 602). 사용자 컨텍스트 정보는 사용자와 연관된 모바일 장치에 위치하는 많은 센서에 의해 탐지되는 더 하위-레벨의 사용자 액티비티 추적을 포함할 수 있다는 것을 주목하라. 센서는 시계, GPS, 가속도계, 온도 센서, 광센서, 소리 센서, 스크린 캡처 등을 포함할 수 있지만, 이에 한정되지 않는다. 사용자 컨텍스트 정보는 사용자의 행위의 더 상위-레벨의 주장이나 더 하위-레벨의 액티비티 추적으로부터 추론된 인터레스트를 더 포함할 수 있다.
연속적으로, 시스템은 수신된 사용자 컨텍스트에 기초하여 사용자와 연관된 컨텍스트 그래프를 갱신한다(동작 604). 갱신된 컨텍스트 그래프에 포함된 파라미터는 복수의 사용자 모델 중에 채워져서 사용자 모델을 갱신한다(동작 606). 사용자 컨텍스트 내의 변화를 반영하는 컨텍스트 그래프의 사용에 추가하여, 규칙-기반의 시스템 같은, 다른 시스템도 사용자 모델을 갱신하도록 여기서 사용될 수 있다는 것을 주목하라. 사용자 모델을 갱신한 다음에, 시스템은 사용자 모델에 대응하는 많은 공간 데이터 구조를 선택하고 사용자 모델의 파라미터에 기초하여 공간 데이터 구조에 대한 경계를 결정한다(동작 608). 시스템 수요에 따라서, 공간 데이터 구조는 다양한 차원을 가질 수 있다는 것을 주목하라. 각 사용자 모델은 하나 이상의 공간 데이터 모델에 대응할 수 있다. 경계는 대응하는 벡터 구성요소의 허용가능한 값의 범위를 정의한다. 경계에 기초하여, 시스템은 추천가능한 아이템들의 세트를 조합한다(동작 610). 일 실시예에서, 추천가능한 아이템들의 세트를 조합하기 위하여, 시스템은 결정된 경계 내에 아이템에 대한 복수의 선택된 공간 데이터 구조를 동시에 쿼리하고, 쿼리 출력을 결합한다.
추천가능한 아이템들의 세트 내의 각 아이템과 각 사용자 모델에 대하여, 시스템은 (사용자 모델에 대한 입력으로 사용될 수 있는 벡터 구성요소를 포함하는)대응하는 아이템 벡터 및 사용자 모델 파라미터에 기초하여 모델-특유의 점수를 계산한다(동작 612). 일 실시예에서, 모델-특유의 점수가 (사용자 모델에 의해 정의되는) 모델링 함수를 (사용자 모델 파라미터에 기초하여) 아이템 벡터와 사용자-선호도 벡터에 적용함으로써 계산될 수 있다. 예를 들면, 만일 사용자 모델이 상이한 민족의 음식에 대한 사용자의 선호도에 관한 것이라면, 레스토랑의 아이템 벡터는 레스토랑의 민족성을 서술하도록 사용되는 구성요소를 포함할 수 있다. 모델링 함수의 계산은 추출된 벡터 구성요소(예를 들면 레스토랑의 민족성) 및 대응하는 사용자 모델 파라미터(예를 들면, 다양한 민족의 음식에 대한 사용자의 선호도)를 포함한다. 일 실시예에서, 모델링 함수는 벡터의 내적(dot product)으로, 특성화 벡터 내의 구성요소와 모든 추출된 벡터 구성요소들에 대한 사용자 선호도의 곱들의 합일 수 있다. 예를 들면, 만일 레스토랑이 0.5 값을 갖는 "중국" 벡터 구성요소와 0.7 값을 갖는 "아시아 퓨전" 구성요소를 가지며, 또한 중국 음식과 아시아 음식에 대한 사용자의 선호도 레벨이 각각 0.3과 0.1이라면, 중국-아시아 퓨전 음식 모델(모델은 오직 두 개의 인자, 중국 인자와 아시아 퓨전 인자만을 고려한다)의 출력은, 0.5×0.3 + 0.7×0.1 = 0.22로서 계산될 수 있다. 사용자 모델의 출력은 사용자와 관련된 아이템에 대한 모델-특유의 점수이다. 일 실시예에서, 사용자 모델의 출력은 단일한 수치 값을 포함한다.
계속해서, 각 아이템에 대하여, 시스템은 모든 사용자 모델에 대한 모델-특유의 점수를 결합한다(동작 614). 이 결합된 점수는 혼성-모델 출력이다. 일 실시예에서, 이 결합된 점수는 모든 모델-특유의 점수의 가중 합계이다. 예를 들면, 레스토랑을 추천할 때, 시스템은 음식-민족성 모델, 위치 모델, 및 경제 모델을 결합하여 혼성-모델 출력을 생성할 수 있다. 각 모델은 가중치가 할당될 수 있는데, 이는 사용자에 의해 수작업으로 입력되거나, 관찰된 사용자 행위에 기초하여 시스템에 의해 자동으로 할당될 수 있다. 예를 들면, 만일 사용자가 음식의 타입보다 레스토랑에 빠르게 도달하는 것에 관해 좀 더 관심을 갖는다면, 위치 모델이 음식-민족성 모델보다 더 높은 가중치를 수신할 수 있다. 유사하게, 만일 사용자가 예산이 빠듯하다면, 경제 모델이 가장 높은 가중치를 수신할 수 있다. 추천가능한 아이템의 세트 내의 모든 아이템에 대한 혼성-모델 출력을 계산한 다음에, 시스템은 그들의 모델-결합된 점수에 기초하여 이들 아이템의 순위를 부여하고(동작 616), 사용자에게 하나 이상의 상위 아이템을 추천한다(동작 618).
일반적으로, 본 발명의 실시예는 일반적인, 고속-응답 추천 시스템을 제공한다. 좀더 상세하게는, 추천 계산은, 모든 가용한 아이템의 서브셋인, 추천가능한 아이템의 세트를 미리 선택함으로써 가속화될 수 있다. 또한, 아이템은 많은 공간 데이터 구조에 배치되며, 각 공간 데이터 구조는 데이터베이스에 저장된 정보의 상이한 양상을 캡처한다. 추천가능한 아이템의 세트를 미리 선택할 때, 복수의 공간 데이터 구조가 결합된 결과를 생성하도록 사용될 수 있다. 프로세스를 더 가속하기 위하여, 공간 데이터 구조는 또한 상이한 셀로 세그멘트화될 수 있고, 여기서 아이템 벡터들은 그들의 벡터값에 기초하여 이들 셀로 저장되어, 공간 데이터 구조로 더 빠른 쿼리를 가능하게 한다.
도 7은 본 발명의 일 실시예에 따른, 사용자에게 추천을 제공하는 컴퓨터 시스템을 보여준다. 일 실시예에서, 컴퓨터와 컴퓨터 시스템(700)은 프로세서(702), 메모리(704), 저장 장치(706)를 포함할 수 있다. 저장장치(706)는 추천 어플리케이션(708)과 어플리케이션(710, 712) 같은, 다른 어플리케이션을 포함할 수 있다. 동작 동안, 추천 어플리케이션(708)은 저장 장치(706)로부터 메모리(704)로 로딩되어, 프로세서(702)에 의해서 실행될 수 있다. 프로그램을 실행하는 동안, 프로세서(702)는 앞에서 언급한 기능을 수행한다. 컴퓨터와 컴퓨터 시스템(700)은 선택적인 디스플레이(714), 키보드(716), 그리고 포인팅 장치(718)에 연결된다.
본 상세한 설명에 기술되는 데이터 구조와 코드는 전형적으로 컴퓨터-판독가능한 저장 매체에 저장되며, 이는 컴퓨터 시스템에 의한 사용을 위하여 코드 및/또는 데이터를 저장할 수 있는 장치나 매체일 수 있다. 컴퓨터-판독 가능한 저장 매체는 휘발성 메모리, 비-휘발성 메모리, 디스크 드라이브 같은 자성 및 광 저장 장치, 자성 테입, CD(컴팩트 디스크), DVD(디지털 다기능 디스크 또는 디지털 비디오 디스크), 또는 현재 알려져 있거나 나중에 개발될 컴퓨터-판독가능한 미디어를 저장할 수 있는 기타 미디어를 포함할 수 있지만, 이에 한정되지 않는다.
본 상세한 설명 섹션에 기술되는 방법과 프로세스는 코드 및/또는 데이터로서 구현되어, 상술한 것처럼, 컴퓨터-판독 가능한 저장 매체에 저장될 수 있다. 컴퓨터 시스템이 컴퓨터-판독 가능한 저장 매체에 저장된 코드 및/또는 데이터를 읽고 실행할 때, 컴퓨터 시스템은 데이터 구조와 코드로서 구현되어 컴퓨터-판독 가능한 저장 매체 내에 저장된 방법과 프로세스를 수행한다.
또한, 상술한 방법과 프로세스는 하드웨어 모듈에 포함될 수 있다. 예를 들면, 하드웨어 모듈은 어플리케이션-특정 집적 회로(ASIC) 칩, 필드-프로그래머블 게이트 어레이(FPGA), 그리고 현재 알려지거나 추후에 개발될 기타 프로그래머블-로직 장치를 포함하지만, 이에 한정되지는 않는다. 하드웨어 모듈이 활성화되면, 하드웨어 모듈은 하드웨어 모듈 내에 포함된 방법과 프로세스를 수행한다.

Claims (8)

  1. 사용자에게 추천을 제공하는 추천 시스템에 있어서,
    상기 사용자와 연관되는 컨텍스트 정보에 기초하여 사용자 액티비티들 및/또는 인터레스트들을 탐지하도록 구성되는 액티비티-탐지 모듈;
    상기 액티비티-탐지 모듈의 출력에 기초하여 복수의 사용자 모델들을 갱신하도록 구성되는 모듈-갱신 메커니즘;
    복수의 아이템들을 저장하도록 구성되는 공간(spatial) 데이터 구조로서, 상기 공간 데이터 구조는 벡터 스페이스에 대응하고, 각 아이템은 상기 아이템과 연관되는 벡터값에 기초하여 상기 공간 데이터 구조 내에 저장되는, 상기 공간 데이터 구조;
    상기 공간 데이터 구조를 쿼리하여 미리 결정된 범위 내의 벡터값들을 갖는 추천가능한 아이템들의 제1 세트를 획득하도록 구성되는 쿼리 메커니즘; 및
    상기 복수의 사용자 모델들 및 각 아이템에 연관되는 특성화(characterization) 벡터에 기초하여 추천가능한 아이템들의 세트 내의 각 아이템에 대한 점수를 계산하고,
    계산된 점수들에 기초하여 상기 추천가능한 아이템들의 세트 내의 아이템들의 순위를 부여하고,
    상기 사용자에게 하나 이상의 상위 아이템을 추천하도록 구성되는 혼성-모델(mixed-model) 추천자
    를 포함하는, 추천 시스템.
  2. 제 1항에 있어서,
    상기 점수를 계산하는 동안, 상기 혼성-모델 추천자는,
    각 사용자 모델에 대한 모델-특유의 출력을 계산하고,
    상기 복수의 사용자 모델들에 대하여 모델-특유의 출력들의 가중 합계를 계산하도록 더 구성되는, 추천 시스템.
  3. 제 2항에 있어서,
    상기 모델-특유의 출력을 계산하는 동안, 상기 혼성-모델 추천자는,
    상기 사용자 모델의 파라미터들에 대응하는 특성화 벡터 내의 구성요소들을 식별하고,
    상기 식별된 구성요소들 및 상기 사용자 모델의 상기 대응하는 파라미터들의 함수로서 상기 모델-특유의 출력을 계산하도록 더 구성되는, 추천 시스템.
  4. 제 1항에 있어서,
    상이한 벡터 스페이스에 대응하는 추가적인 공간 데이터 구조를 더 포함하고,
    상기 쿼리 메커니즘은,
    상기 추가적인 공간 데이터 구조를 쿼리하여 추천가능한 아이템들의 제2 세트를 획득하고, 그리고
    추천가능한 아이템들의 상기 제1 및 제2 세트들을 사용하여 추천가능한 아이템들의 결합 세트를 생성하도록 더 구성되는, 추천 시스템.
  5. 제 1항에 있어서,
    상기 복수의 아이템은
    웹 페이지;
    소비자 아이템;
    액티비티;
    장소(venue); 및
    위치 중의 하나 이상을 포함하는, 추천 시스템.
  6. 제 1항에 있어서,
    상기 액티비티-탐지 모듈의 출력에 기초하여 컨텍스트 그래프를 갱신하도록 구성되는 컨텍스트 그래프 갱신 메커니즘을 더 포함하는, 추천 시스템.
  7. 제 1항에 있어서,
    상기 공간 데이터 구조는 셀들로 세그먼트화 되고, 각 셀은 상기 셀의 경계 내에 벡터값들을 갖는 아이템들을 저장하는, 추천 시스템.
  8. 제 1항에 있어서,
    아이템에 대한 특성화 벡터를 생성하도록 구성되는 아이템-특성화 모듈을 더 포함하는, 추천 시스템.
KR1020140153875A 2013-11-18 2014-11-06 추천 엔진에 기초하는 일반화된 그래프, 규칙 및 공간 구조 KR102139029B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/083,285 US9582547B2 (en) 2013-11-18 2013-11-18 Generalized graph, rule, and spatial structure based recommendation engine
US14/083,285 2013-11-18

Publications (2)

Publication Number Publication Date
KR20150057987A true KR20150057987A (ko) 2015-05-28
KR102139029B1 KR102139029B1 (ko) 2020-07-29

Family

ID=52002661

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140153875A KR102139029B1 (ko) 2013-11-18 2014-11-06 추천 엔진에 기초하는 일반화된 그래프, 규칙 및 공간 구조

Country Status (4)

Country Link
US (1) US9582547B2 (ko)
EP (1) EP2874076A1 (ko)
JP (1) JP6293642B2 (ko)
KR (1) KR102139029B1 (ko)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11238056B2 (en) 2013-10-28 2022-02-01 Microsoft Technology Licensing, Llc Enhancing search results with social labels
US10521824B1 (en) * 2014-01-02 2019-12-31 Outbrain Inc. System and method for personalized content recommendations
US11645289B2 (en) * 2014-02-04 2023-05-09 Microsoft Technology Licensing, Llc Ranking enterprise graph queries
US9870432B2 (en) 2014-02-24 2018-01-16 Microsoft Technology Licensing, Llc Persisted enterprise graph queries
US11657060B2 (en) 2014-02-27 2023-05-23 Microsoft Technology Licensing, Llc Utilizing interactivity signals to generate relationships and promote content
US10757201B2 (en) 2014-03-01 2020-08-25 Microsoft Technology Licensing, Llc Document and content feed
US10255563B2 (en) 2014-03-03 2019-04-09 Microsoft Technology Licensing, Llc Aggregating enterprise graph content around user-generated topics
US10394827B2 (en) 2014-03-03 2019-08-27 Microsoft Technology Licensing, Llc Discovering enterprise content based on implicit and explicit signals
US10061826B2 (en) 2014-09-05 2018-08-28 Microsoft Technology Licensing, Llc. Distant content discovery
WO2017095371A1 (en) * 2015-11-30 2017-06-08 Hewlett Packard Enterprise Development Lp Product recommendations based on selected user and product attributes
US10832304B2 (en) 2016-01-15 2020-11-10 Target Brands, Inc. Resorting product suggestions for a user interface
US20170267251A1 (en) 2016-03-15 2017-09-21 Palo Alto Research Center Incorporated System And Method For Providing Context-Specific Vehicular Driver Interactions
US10452652B2 (en) 2016-09-15 2019-10-22 At&T Intellectual Property I, L.P. Recommendation platform for structured queries
US10223359B2 (en) * 2016-10-10 2019-03-05 The Directv Group, Inc. Determining recommended media programming from sparse consumption data
US11169660B2 (en) * 2016-12-14 2021-11-09 Microsoft Technology Licensing, Llc Personalized adaptive task framework for user life events
US10331480B2 (en) * 2017-02-22 2019-06-25 Microsoft Technology Licensing, Llc Contextual application organizer framework for user life events
US11935024B1 (en) 2017-10-20 2024-03-19 Block, Inc. Account-based data and marketplace generation
CN108132717A (zh) * 2017-12-21 2018-06-08 广东欧珀移动通信有限公司 候选词的推荐方法、装置、存储介质及移动终端
US11210721B1 (en) 2018-10-15 2021-12-28 Square, Inc. Converting items into vectors to determine optimized locations
CN111782927B (zh) * 2019-05-15 2024-05-17 北京京东尚科信息技术有限公司 物品推荐方法及其装置、计算机可存储介质
CN114467106A (zh) * 2019-10-01 2022-05-10 维萨国际服务协会 图形学习和自动行为协调平台
CN112330405B (zh) * 2020-11-10 2023-11-24 深圳大学 一种面向物品集显式反馈的推荐方法、终端及存储介质
CN114036398B (zh) 2021-11-30 2024-02-13 北京百度网讯科技有限公司 内容推荐和排序模型训练方法、装置、设备以及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5277307B2 (ja) * 2009-02-18 2013-08-28 株式会社日立製作所 情報推薦方法、そのシステム、及びサーバ

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004287934A (ja) * 2003-03-24 2004-10-14 Alpha Systems:Kk 情報提供システムおよびコンテキスト情報抽出方法
US7424488B2 (en) * 2006-06-27 2008-09-09 International Business Machines Corporation Context-aware, adaptive approach to information selection for interactive information analysis
US8494978B2 (en) * 2007-11-02 2013-07-23 Ebay Inc. Inferring user preferences from an internet based social interactive construct
US8412796B2 (en) * 2009-07-31 2013-04-02 University College Dublin—National University of Ireland, Dublin Real time information feed processing
EP2312515A1 (en) * 2009-10-16 2011-04-20 Alcatel Lucent Device for determining potential future interests to be introduced into profile(s) of user(s) of communication equipment(s)
US20120278268A1 (en) * 2011-04-28 2012-11-01 Nokia Corporation Method and apparatus for extracting explicit profile representation through adaptive recommender system
WO2013010024A1 (en) * 2011-07-12 2013-01-17 Thomas Pinckney Recommendations in a computing advice facility
US9836545B2 (en) * 2012-04-27 2017-12-05 Yahoo Holdings, Inc. Systems and methods for personalized generalized content recommendations
US9208439B2 (en) * 2013-04-29 2015-12-08 Palo Alto Research Center Incorporated Generalized contextual intelligence platform

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5277307B2 (ja) * 2009-02-18 2013-08-28 株式会社日立製作所 情報推薦方法、そのシステム、及びサーバ
US8635241B2 (en) * 2009-02-18 2014-01-21 Hitachi, Ltd. Method of recommending information, system thereof, and server

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
DONALD KOSSMANN et al, "Shooting Stars in the Sky: An Online Algorithm for Skyline Queries", VLDB '02: Proceedings of the 28th International Conference on Very Large Databases, 2002.08.20 *

Also Published As

Publication number Publication date
US9582547B2 (en) 2017-02-28
JP2015099593A (ja) 2015-05-28
JP6293642B2 (ja) 2018-03-14
EP2874076A1 (en) 2015-05-20
KR102139029B1 (ko) 2020-07-29
US20150142785A1 (en) 2015-05-21

Similar Documents

Publication Publication Date Title
KR102139029B1 (ko) 추천 엔진에 기초하는 일반화된 그래프, 규칙 및 공간 구조
US20230306052A1 (en) Method and system for entity extraction and disambiguation
US20200226133A1 (en) Knowledge map building system and method
Zualkernan et al. Emotion recognition using mobile phones
US20170097984A1 (en) Method and system for generating a knowledge representation
CN108027888A (zh) 使用上下文信号的局部异常检测
JP6404106B2 (ja) コンテント及び関係距離に基づいて人々をつなげるコンピューティング装置及び方法
US20170097966A1 (en) Method and system for updating an intent space and estimating intent based on an intent space
US9767417B1 (en) Category predictions for user behavior
US10387432B2 (en) Methods, systems and techniques for ranking blended content retrieved from multiple disparate content sources
US11232522B2 (en) Methods, systems and techniques for blending online content from multiple disparate content sources including a personal content source or a semi-personal content source
US9767204B1 (en) Category predictions identifying a search frequency
WO2018195691A1 (en) New connection recommendations based on data attributes
US20130246432A1 (en) Providing content based on online topical trends
US11295087B2 (en) Shape library suggestions based on document content
US10474670B1 (en) Category predictions with browse node probabilities
US9996529B2 (en) Method and system for generating dynamic themes for social data
KR102338381B1 (ko) 빅데이터 기반의 감성정보 분석평가 시스템 및 그 구동방법
KR20180000166A (ko) 관심사 및 콘텐츠를 제공하는 방법 및 시스템
KR101621735B1 (ko) 추천 검색어 제공 방법 및 시스템
US10387934B1 (en) Method medium and system for category prediction for a changed shopping mission
US11392851B2 (en) Social network navigation based on content relationships
KR20180015491A (ko) 키워드를 기초로 접속 기록을 저장하는 방법 및 장치
US10296624B2 (en) Document curation
JP2017161963A (ja) 動画検索装置およびプログラム

Legal Events

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