KR20160124087A - 사용자 디바이스의 활성 페르소나 결정 - Google Patents

사용자 디바이스의 활성 페르소나 결정 Download PDF

Info

Publication number
KR20160124087A
KR20160124087A KR1020167020673A KR20167020673A KR20160124087A KR 20160124087 A KR20160124087 A KR 20160124087A KR 1020167020673 A KR1020167020673 A KR 1020167020673A KR 20167020673 A KR20167020673 A KR 20167020673A KR 20160124087 A KR20160124087 A KR 20160124087A
Authority
KR
South Korea
Prior art keywords
user device
active
persona
cluster
user
Prior art date
Application number
KR1020167020673A
Other languages
English (en)
Other versions
KR101959368B1 (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 KR20160124087A publication Critical patent/KR20160124087A/ko
Application granted granted Critical
Publication of KR101959368B1 publication Critical patent/KR101959368B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04817Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance using icons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • G06F17/30867
    • 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/2477Temporal data queries
    • 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/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • G06F16/319Inverted lists
    • G06F17/30622
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • 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/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • G06Q30/0251Targeted advertisements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Business, Economics & Management (AREA)
  • Probability & Statistics with Applications (AREA)
  • Mathematical Physics (AREA)
  • Fuzzy Systems (AREA)
  • Strategic Management (AREA)
  • Finance (AREA)
  • Development Economics (AREA)
  • Accounting & Taxation (AREA)
  • Economics (AREA)
  • General Business, Economics & Management (AREA)
  • Game Theory and Decision Science (AREA)
  • Marketing (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

사용자 디바이스(300)의 활성 페르소나(100)를 결정하기 위한 방법이 사용자 디바이스의 제1 사용자 디바이스 상태(420a, 420b)를 결정하는 단계를 포함한다. 이러한 활성 페르소나는 사용자 디바이스의 사용자의 예측된 오브젝티브를 나타낸다. 제1 상태는 사용자 디바이스에서 현재 실행되는 액션 및 사용자 디바이스에 상응하는 관찰의 세트를 규정한다. 이러한 방법은 제1 사용자 디바이스 상태를 모델(400)에 입력하는 단계 및 상기 모델의 출력에 기초하여 사용자 디바이스의 활성 페르소나를 결정하는 단계를 포함한다. 이러한 모델은 사용자 디바이스 상태(420a, 420b)를 수신하도록 구성되어 있고 하나 이상의 클러스터(238, 410)와 연관된 확률 값을 출력하고, 각각의 클러스터는 사용자 디바이스에 상응하는 하나 이상의 관심 아이템을 나타낸다. 이러한 방법은 사용자 디바이스의 활성 페르소나를 사용하여 프로지셔를 실행하는 단계를 더 포함한다.

Description

사용자 디바이스의 활성 페르소나 결정{DETERMINING AN ACTIVE PERSONA OF A USER DEVICE}
본 발명은 사용자 디바이스의 활성 페르소나(active persona)를 결정하기 위한 방법 및 장치에 관한 것이다.
스마트폰, 태블릿 PC, 셀룰러 전화, 및 휴대형 디지털 어시스턴트와 같은 사용자 디바이스는 널리 퍼져 있고 소비자의 일상 생활에서 매우 중요해졌다. 또한, 사용자는 그들의 디바이스에 애플리케이션을 다운로드하거나 웹브라우저를 통해 애플리케이션에 접근함으로써 그들의 사용자 디바이스를 개인화한다. 각각의 사용자 디바이스는 다수의 사용자를 가질 수 있고, 각각의 사용자는 이러한 디바이스를 다수의 상이한 이유로 사용할 수 있다. 예를 들어, 사용자는 게임을 하고, 영화를 보고, 음악을 듣고, 금융 정보를 체크하고, 문서를 편집하고 친구들과 문자하기 위해 사용자 디바이스를 사용할 수 있다.
본 발명의 하나의 특징은 사용자 디바이스의 활성 페르소나를 결정하는 방법을 제공한다. 이러한 활성 페르소나는 사용자 디바이스의 사용자의 예측된 오브젝티브를 나타낸다. 이러한 방법은 사용자 디바이스의 제1 사용자 디바이스 상태를 결정하는 단계를 포함한다. 이러한 제1 상태는 사용자 디바이스에서 현재 실행되는 액션 및 사용자 디바이스에 상응하는 관찰의 세트를 규정한다. 이러한 방법은 상기 제1 사용자 디바이스 상태를 모델에 입력하는 단계 및 상기 모델의 출력에 기초하여 사용자 디바이스의 활성 페르소나를 결정하는 단계를 더 포함한다. 상기 모델은 사용자 디바이스 상태를 수신하도록 구성되어 있고, 하나 이상의 클러스터와 연관된 확률 값을 출력하고, 각각의 클러스터는 사용자 디바이스에 상응하는 하나 이상의 관심 아이템을 나타낸다. 상기 방법은 사용자 디바이스의 활성 페르소나를 사용하여 프로시져를 실행하는 단계를 더 포함한다. 상기 방법은 프로세싱 디바이스에 의해 실행될 수 있다.
본 발명의 다음의 옵션의 특징중 하나 이상을 포함할 수 있다. 일부 실시예에서, 상기 방법은 사용자 디바이스의 제2 사용자 디바이스 상태를 포착하는 단계 및 상기 제1 사용자 디바이스 상태 및 상기 제2 사용자 디바이스 상태에 기초하여 모델을 갱신하는 단계를 포함한다. 상기 제2 사용자 디바이스 상태는 상기 제1 사용자 디바이스 상태의 후속이고 상기 사용자 디바이스에서 실행되는 후속 액션 및 하나 이상의 후속 관찰을 규정한다. 일부 예에서, 상기 모델은 은닉 마르코프 모델(Hidden Markov Model)이다.
상기 제1 사용자 디바이스 상태는 사용자 디바이스의 활성 프로세스에 기초할 수 있다. 일부 실시예에서, 상기 활성 프로세스는 상기 사용자 디바이스에 의해 실행되는 활성 애플리케이션, 상기 사용자 디바이스에 의해 재생되는 활성 미디어 콘텐트, 또는 상기 사용자 디바이스에 의해 제공되는 활성 검색 질의중 하나이다. 상기 제1 사용자 디바이스 상태를 결정하는 단계는 상기 활성 프로세스가 상응하는 활성 클러스터를 결정하기 위해 역 인덱스를 사용하는 단계를 포함한다. 상기 클러스터는 상기 사용자 디바이스에 상응하는 활성 관심 아이템을 나타낸다.
일부 예에서, 상기 방법은 상기 사용자 디바이스의 복수의 관심 아이템을 결정하는 단계, 상기 복수의 관심 아이템을 페르소나 서버에 제공하는 단계, 및 상기 역 인덱스를 수신하는 단계를 더 포함한다.
상기 제1 사용자 디바이스 상태를 결정하는 단계는 상기 사용자 디바이스의 하나 이상의 주변 장치의 출력 값을 얻는 단계를 포함할 수 있다. 상기 활성 페르소나를 사용하여 프로시져를 실행하는 단계는 상기 활성 페르소나를 검색 질의의 일부로서 검색 엔진에 제공하는 단계, 상기 사용자 디바이스와 통신하여 상기 활성 페르소나를 애플리케이션 서버에 제공하는 단계, 또는 상기 활성 페르소나에 기초하여 상기 사용자 디바이스의 홈 스크린을 재배열하는 단계를 포함할 수 있다.
상기 활성 페르소나는 상기 모델에 의해 출력된 복수의 확률을 나타내는 벡터일 수 있다. 상기 벡터의 각각의 요소는 상기 사용자 디바이스가 현 관심 아이템으로부터 상기 확률 값과 연관된 클러스터로 전이될 확률을 나타낼 수 있다. 이러한 실시예에서, 상기 벡터의 각각의 요소는 상이한 상태에 상응한다. 상기 활성 페르소나를 얻는 단계는 상기 모델로부터 복수의 확률을 나타내는 벡터를 얻는 단계 및 하나 이상의 규칙에 기초하여 상기 벡터를 카테고리에 맵핑하는 단계를 포함할 수 있다.
본 발명의 다른 특징은 활성 페르소나를 결정하는 사용자 디바이스를 제공한다. 상기 사용자 디바이스는 사용자 디바이스 상태를 수신하는 모델을 저장하는 하나 이상의 컴퓨터 판독가능 매체를 포함하는 저장 장치를 포함하고 하나 이상의 클러스터와 연관된 확률 값을 출력한다. 각각의 클러스터는 상기 사용자 디바이스에 상응하는 하나 이상의 관심 아이템을 나타낸다. 상기 사용자 디바이스는 컴퓨터 판독가능 명령어를 실행하는 프로세싱 디바이스를 더 포함하고 있다. 상기 프로세싱 디바이스에 의해 실행될 때, 상기 컴퓨터 판독가능 명령어는 상기 사용자 디바이스가, 사용자 디바이스의 제1 사용자 디바이스 상태를 결정하고, 상기 제1 사용자 디바이스 상태를 모델에 제공하고, 상기 모델의 출력에 기초하여 상기 사용자 디바이스의 활성 페르소나를 얻고, 상기 활성 페르소나를 사용하여 프로시져를 실행하도록 한다. 상기 제1 사용자 디바이스 상태는 상기 사용자 디바이스에서 현재 실행되는 액션 및 상기 사용자 디바이스에 상응하는 관찰의 세트를 규정한다. 상기 활성 페르소나는 상기 사용자 디바이스의 사용자의 예측된 오브젝티브를 나타낸다. 이러한 특징은 다음의 하나 이상의 옵션의 특징을 포함할 수 있다.
본 발명의 일부 실시예에 따라, 상기 컴퓨터 판독가능 명령어는 또한 상기 프로세싱 디바이스가 상기 사용자 디바이스의 활성 페르소나를 결정한 후에 제2 사용자 디바이스 상태를 포착하고 상기 제1 사용자 디바이스 상태 및 제2 사용자 디바이스 상태에 기초하여 상기 모델을 갱신하도록 한다. 상기 제2 사용자 디바이스 상태는 상기 제1 사용자 디바이스의 후속이고 상기 사용자 디바이스에서 실행되는 후속 액션 및 하나 이상의 후속 관찰을 규정한다. 일부 예에서, 상기 모델은 은닉 마르코프 모델이다.
일부 실시예에서, 상기 사용자 디바이스에 의해 실행되는 액션은 상기 사용자 디바이스의 활성 프로세스에 기초한다. 상기 활성 프로세스는 상기 사용자 디바이스에 의해 실행되는 활성 애플리케이션, 상기 사용자 디바이스에 의해 재생되는 활성 미디어 콘텐트, 또는 상기 사용자 디바이스에 의해 제공된 활성 검색 질의중 하나이다.
일부 실시예에서, 상기 제1 사용자 디바이스 상태를 결정하는 단계는 상기 활성 프로세스가 상응하는 활성 클러스터를 역 인덱스를 사용하여 결정하는 단계를 포함한다. 상기 활성 클러스터는 상기 사용자 디바이스에 상응하는 활성 관심 아이템을 나타낸다. 이러한 실시예의 일부에서, 컴퓨터 판독가능 명령어는 또한 상기 프로세싱 디바이스가, 상기 사용자 디바이스의 복수의 관심 아이템을 결정하고, 상기 복수의 관심 아이템을 페르소나 서버에 제공하고, 상기 역 인덱스를 수신하도록 한다.
상기 제1 사용자 디바이스 상태를 결정하는 단계는 상기 사용자 디바이스의 하나 이상의 주변 장치의 출력 값을 얻는 단계를 포함할 수 있다. 상기 활성 페르소나를 사용하여 프로시져를 실행하는 단계는 상기 활성 페르소나를 검색 질의의 일부로서 탐색 엔진에 제공하는 단계, 상기 사용자 디바이스와 통신하여 상기 활성 페르소나를 애플리케이션 서버에 제공하는 단계, 또는 상기 활성 페르소나에 기초하여 상기 사용자 디바이스의 홈 스크린을 재배열하는 단계를 포함할 수 있다.
상기 활성 페르소나는 상기 모델에 의해 출력된 복수의 확률을 나타내는 벡터일 수 있다. 상기 벡터의 각각은 상기 사용자 디바이스가 현 관심 아이템으로부터, 제2 관심 아이템을 포함하는 확률 값과 연관된 클러스터로 전이될 확률을 나타낼 수 있다. 이러한 실시예에서, 상기 벡터의 각각의 요소는 상이한 상태에 상응할 수 있다. 상기 활성 페르소나를 얻는 단계는 상기 모델로부터 복수의 확률을 나타내는 벡터를 얻는 단계 및 하나 이상의 규칙에 기초하여 상기 벡터를 카테고리에 맵핑하는 단계를 포함할 수 있다.
본 발명의 하나 이상의 실시예의 세부사항을 첨부된 도면 및 아래의 설명에서 제시하였다. 다른 특징 및 장점은 상세한 설명 및 도면 및 청구범위로부터 이해될 것이다.
도 1은 사용자 디바이스의 활성 페르소나를 결정하고 사용하기 위한 디바이스의 시스템 예를 설명하는 도면이다.
도 2는 페르소나 서버의 컴포넌트 예를 개략적으로 설명하고 있다.
도 3은 사용자 디바이스의 컴포넌트 예를 개략적으로 설명하고 있다.
도 4는 은닉 마르코프 모델의 예를 설명하는 도면이다.
도 5는 사용자 디바이스의 활성 페르소나를 결정하기 위한 방법을 위한 동작 세트의 예를 설명하는 순서도이다.
다양한 도면에서 동일한 부재 번호는 동일한 부재를 나타낸다.
도 1 내지 도 3은 사용자 디바이스(300)의 활성 페르소나(100) 및 그 컴포넌트를 예측하기 위한 시스템(10)의 예를 설명하고 있다. 시스템(10)은 네트워크(110)와 통신하는 페르소나 서버(200, 도 2) 및 하나 이상의 사용자 디바이스(300, 도 3)를 포함할 수 있다. 일부 실시예에서, 페르소나 서버(200)는 사용자 디바이스(300)가 그 활성 페르소나(100)를 결정할 수 있도록 하는 데이터를 제공하도록 구성되어 있다. 사용자 디바이스(300)의 활성 페르소나(100)는 사용자가 사용자 디바이스(300)를 사용하고 있을 때 디바이스(300)의 사용자의 오브젝티브(objective)를 나타낼 수 있다. 사용자 디바이스(300)는 하나 이상의 사용자를 가질 수 있고 각각의 사용자는 사용자 디바이스(300)를 사용할 때 하나 이상의 오브젝티브를 가질 수 있다. 예를 들어, 엄마, 아빠, 및 아이를 갖는 가족은 모두 동일한 태블릿 컴퓨터(300a)를 사용할 수 있다. 아빠는 아침에 뉴스를 읽고(예를 들어, "뉴스 오브젝티브"), 저녁에 스포츠를 보고(예를 들어, "스포츠팬 오브젝티브"), 밤에 폭력적인 비디오 게임을 하기 위해(예를 들어, "성인 비디오 게임 오브젝티브") 태블릿 컴퓨터(300a)를 사용할 수 있다. 엄마는 아침에 업무 스케줄을 짜고(예를 들어, "플래닝 오브젝티브"), 저녁에 주식을 체크하기 위해(예를 들어, "금융 오브젝티브") 태블릿 컴퓨터(300a)를 사용할 수 있다. 마지막으로, 아이는 오후에 어린이 영화를 보고(예를 들어, "어린이 영화 관람 오브젝티브") 저녁에 교육 게임을 하기 위해(예를 들어, "교육 게임 오브젝티브") 태블릿 컴퓨터(300a)를 사용할 수 있다. 위에서 제시된 명확한 오브젝티브는 단지 예로서 제시되어 있다. 또한, 상기 예는 경향이고 반드시 사용자에 의해 항상 고정되어 있는 것은 아니다. 사용자 디바이스(300)는 사용자 디바이스(300)의 활성 페르소나(100)를 예측하기 위해 사용자 디바이스(300)의 사용자 디바이스 상태 및 데이터를 사용한다. 이러한 사용자 디바이스 상태는 사용자 디바이스(300)에서 현재 실행되는 액션(예를 들어, 사용자 디바이스(300)에서 현재 사용되는 활성 애플리케이션, 사용자 디바이스(300)에 의해 실행되는 활성 미디어 콘텐트(326), 또는 사용자 디바이스(300)에 의해 제공되는 활성 검색 질의(324)) 및 사용자 디바이스(300)에 상응하는 관찰 세트(예를 들어, 사용자 디바이스(300)의 위치, 사용자 디바이스(300)의 속도, 요일, 시간)을 포함할 수 있다. 사용자 디바이스(300)는 활성 페르소나(100)를 서비스 제공자에게 전송하거나 이러한 활성 페르소나(100)에 기초하여 사용자 홈 스크린을 재배열하는 것과 같은 프로시져를 수행하도록 활성 페르소나를 사용할 수 있다.
디바이스(300)의 활성 페르소나(100), 검색 엔진(12)과 같은 서비스 프로바이더, 애플리케이션 서버/프로바이더(130), 및 광고주를 앎으로써(또는 알 가능성이 있음으로 해서) 보다 관련된 콘텐트를 사용자에게 제공할 수 있다. 검색 엔진(120)은 검색 결과의 관련성을 증가시키기 위해 사용자의 활성 페르소나(100)를 사용할 수 있다. 예를 들어, 사용자 디바이스(300)가 "스케줄"의 검색 질의(234)를 제공한다면, 검색 엔진(120)은 사용자 디바이스(300)의 활성 페르소나(100)를 아는 경우에 보다 좋은 결과를 사용자 디바이스(300)에 제공할 수 있다. 특히, 검색 엔진(120)은 사용자가 용어 "스케줄"을 입력할 때 무엇을 의미하는지 해석할 수 없다. 사용자의 활성 페르소나(100)에 대한 예측을 가짐으로써, 검색 엔진(120)은 용어 "스케줄"을 입력할 때 사용자의 의도를 보다 더 잘 이해할 수 있다. 상기 예로부터, 검색 엔진(120)은 활성 페르소나(100)가 스포츠 팬의 것과 상응할 때 메이저 스포츠 리그(예를 들어, NFL, MBL, NHL, 및 NBA)의 스케줄을 제공하는 애플리케이션의 리스트를 돌려줄 수 있다. 마찬가지로, 디바이스(300)의 활성 페르소나(100)가 "플래너"의 것과 상응할 때, 검색 엔진(120)은 업무 및 약속의 스케줄을 정하도록 하는 애플리케이션의 리스트를 돌려줄 수 있다. 디바이스(300)의 활성 페르소나(100)는 또한 디바이스(300)에 어느 광고를 전송할 지를 서비스가 결정하도록 도울 수 있다. 예를 들어, 활성 페르소나(100)가 "폭력적인 비디오 게임 페르소나"이라면, 비디오 스트리밍 서비스가 새로운 일인칭 슈터 게임을 위한 광고를 내장할 수 있다. 마찬가지로, 활성 페르소나(100)가 "어린이 게임 페르소나"이라면, 애플리케이션 서버(130)는 새로운 블록버스터 만화 영화를 위한 광고를 전송할 수 있다. 상기 예는 디바이스(300)의 활성 페르소나(100)의 사용을 제한하기 위한 것은 아니다.
일부 실시예에서, 페르소나 서버(200) 및 사용자 디바이스(300)는 디바이스(300)의 활성 페르소나(100)를 결정하기 위해 함께 작동한다. 페르소나 서버(200)는 디바이스(300)의 잠재적인 활성 페르소나(100)를 식별하는데 사용되는 클러스터(238)를 식별할 수 있다. 클러스터(238)는 하나 이상의 유사한 특성을 갖는 데이터 레코드의 그룹을 가리킬 수 있다. 일부 실시예에서, 각각의 클러스터(238)는 동일한 타입의 데이터 레코드를 포함하고 있다. 데이터 레코드의 예는 애플리케이션 데이터 레코드, 질의 데이터 레코드 및 미디어 데이터 레코드를 포함할 수 있지만 이에 제한되는 것은 아니다.
일부 실시예에서, 페르소나 서버(200)는 유사한 애플리케이션(322), 검색 질의(324), 또는 미디어 콘텐츠(326)의 클러스터(238)를 식별한다. 클러스터(238)는 클러스터화된 데이터 레코드의 특성에 기초하여 클러스터화된다. 예를 들어, 페르소나 서버(200)는 애플리케이션 공개자, 애플리케이션 타입, 애플리케이션 하위유형, 애플리케이션의 순위, 및 애플리케이션의 인기에 따라 애플리케이션 레코드를 클러스터화할 수 있다. 마찬가지로, 페르소나 서버(200)는 실제 질의, 질의 위치, 및 질의 결과에 응하여 취해진 액션에 따라 질의 레코드를 클러스터화할 수 있다.
페르소나 서버(200)가 클러스터(238)를 식별할 때, 페르소나 서버(200)는 또한 식별된 클러스터(238)에 클러스터 식별자("클러스터 ID")를 할당할 수 있다. 각각의 클러스터 ID는 단일 클러스터(238)에 상응하고 각각의 클러스터(238)는 오직 하나의 클러스터 ID를 갖는다. 보다 많은 데이터 레코드가 클러스터(238)에 추가될 때, 클러스터(238)의 마크업은 변하지만, 클러스터(238)의 클러스터 ID는 동일한 상태로 남아야 한다.
일부 실시예에서, 페르소나 서버(200)는 또한 클러스터(238)에 상응하여 인덱스화(240)하도록 구성되어 있다. 일부 실시예에서, 인덱스(240)는 데이터 레코드가 속한 클러스터(238)의 클러스터 ID에 데이터 레코드를 연관시킨 역 인덱스이다. 일부 실시예에서, 특정 아이템의 역 인덱스는 <ITEM_ID -> [cluster_ID1, cluster_ID2,...cluster_ID_n]의 형태로 표현될 수 있는데, 여기에서 특정 아이템과 연관된 n 개의 클러스터가 존재한다. 예를 들어, 특정 애플리케이션(예를 들어, Rovio Games의 ANGRY BIRDS® 애플리케이션)이 2개의 상이한 클러스터(238)("Published By Rovio" 및 "Popular Games")에 속해 있다면, 2개의 상이한 클러스터(238)는 특정 애플리케이션의 데이터 레코드로 인덱스화될 수 있다. 일부 실시예에서, 역 인덱스의 각각의 클러스터는 연관된 가중치를 가질 수 있다. 예를 들어, 특정 아이템의 역 인덱스의 예는 <ITEM_ID -> [(cluster_ID1, weight1), (cluster_ID2, weight2)...(cluster_ID_n, weight_n)]의 형태로 표현될 수 있는데, 여기에서, 이러한 아이템과 연관된 n개의 클러스터가 존재한다. 각각의 가중치는 주어진 아이템에 대한 클러스터의 상대 중요도(예를 들어, 모든 다른 가능한 아이템-클러스터 투플에 상대적이다)를 나타내는 값일 수 있다.
일부 실시예에서, 페르소나 서버(200)는 인덱스(240)의 일부 또는 모두를 사용자 디바이스(300)에 제공한다. 일부 실시예에서, 페르소나 서버(200)는 각각의 사용자 디바이스(300)의 관심 아이템에 기초하여 사용자 디바이스(300)에 제공된 인덱스(240)를 선택한다. 관심 아이템의 예는 사용자 디바이스(300)의 애플리케이션, 사용자 디바이스(300)의 질의/로그, 및 사용자 디바이스(300)에서 실행되는 미디어 콘텐츠(326)의 히스토리를 포함할 수 있다. 사용자 디바이스(300)는 관심 아이템의 리스트(또는 관심 아이템을 나타내는 데이터)를 페르소나 서버(200)에 제공하고 페르소나 서버(200)는 관심 아이템과 관련된 인덱스(240)를 전송한다.
사용자 디바이스(300)는 사용자의 활성 페르소나(100)를 예측하기 위해 인덱스(240), 사용자 디바이스(300)의 사용자 디바이스 상태, 및 하나 이상의 기계 학습 모델(400)을 사용할 수 있다. 일부 실시예에서, 각각의 사용자 디바이스(300)는 자체 감시하고, 주어진 시간에 사용자 디바이스(300)의 관찰 및 사용자 디바이스에 의해 실행되는 액션에 기초하여 디바이스(300)의 활성 페르소나(100)를 예측하는 모델(400)을 생성/갱신한다. 일부 실시예에서, 기계 학습 모델(400)은 은닉 마르코프 모델(Hidden Markov Model)("HMM")이다. 다른 타입의 기계 학습 모델(400) 역시 구현될 수 있다. 예를 들어, 사용자 디바이스(300)는 각각의 상태의 확률을 예측하기 위해 베이시안 모델을 생성/갱신할 수 있다.
기계 학습 모델(400)은 입력으로서 사용자 디바이스 상태(예를 들어, 사용자 디바이스(300)에 실행되는 액션, 현재 시간, 요일, 가속도계 판독, 현 활성 애플리케이션, 사용자 디바이스(300)에 의해 전송된 최신 검색 질의(324))를 입력으로서 수신하고 하나 이상의 예측된 클러스터(238)를 출력한다. 일부 실시예에서, 각각의 예측된 클러스터(238)는 사용자 디바이스(300)가 예측 클러스터(238)에 있을 가능성을 나타내는 스코어(예를 들어, 확률)를 포함한다. 따라서, 일부 실시예에서, 활성 페르소나(100)가 확률의 벡터에 의해 표현될 수 있다. 예를 들어, 활성 페르소나는 AP(Cj) = [S0C0, S1C1, S2C2,..., SnCn]에 의해 정의될 수 있는데, 여기에서, AP는 활성 페르소나(100)이고 Si는 사용자 디바이스가 j번째 클러스터의 관심 아이템으로부터 i번째 클러스터, Ci 에 포함된 관심 아이템으로 전이될 확률이다. 추가로 또는 대안으로, 활성 페르소나(100)는 확률의 벡터가 맵핑하거나 매치하는 카테고리에 의해 표현될 수 있다.
사용자 디바이스(300)가 활성 페르소나(100)를 결정할 때, 사용자 디바이스(300)는 활성 페르소나(100)를 페르소나 서버(200) 또는 다른 서버(예를 들어, 검색 엔진(120) 또는 애플리케이션 서버(130))에 전송할 수 있다. 또한, 사용자 디바이스(300)는 예측된 활성 페르소나(100)에 기초하여 액션을 취할 수 있다. 예를 들어, 활성 페르소나(100)가 게임과 관련되어 있을 가능성이 높다고 사용자 디바이스(300)가 예측하는 경우에(예를 들어, 전이는 게임에 상응하는 클러스터로 이루어질 가능성이 가장 높다), 사용자 디바이스(300)는 게이밍 애플리케이션의 아이콘 및 위젯을 표시하도록 사용자 디바이스(300)의 홈 스크린을 구성할 수 있다. 마찬가지로, 활성 페르소나(100)가 업무와 관련되어 있을 가능성이 높다고 사용자 디바이스(300)가 예측하는 경우에, 사용자 디바이스(300)는 업무 관련된 애플리케이션의 아이콘 및 위젯을 표시하도록 홈 스크린을 구성할 수 있다.
페르소나 서버(200)가 활성 페르소나(100)를 결정하도록 구성되는 동안, 사용자 디바이스(300)는 활성 페르소나(100)를 결정하도록 사용될 수 있어 사용자 디바이스(300)는 모델(400)을 유지한다. 이러한 방식으로, 위치 및 습관과 같은 사용자의 정보는 사용자 디바이스(300)로부터 이출될 필요가 없어서, 사용자의 프라이버시를 유지한다. 또한, 사용자의 활성 페르소나(100)를 리모트 디바이스(예를 들어, 제3자 서버)로 전송할 때, 사용자 디바이스(300)는 사용자 및/또는 사용자 디바이스(300)의 아이덴티티를 숨긴 후에 활성 페르소나(100)를 전송할 수 있다.
도 2는 페르소나 서버(200)의 예를 설명하고 있다. 일부 실시예에서, 페르소나 서버(200)는 하나 이상의 컴퓨팅 디바이스의 시스템이다. 페르소나 서버(200)는 검색 엔진(120), 애플리케이션 서버(130), 또는 광고 서버와 같은 보다 큰 컴퓨팅 시스템에 통합될 수 있다. 실시예에서, 페르소나 서버(200)는 프로세싱 디바이스(210), 네트워크 인터페이스 디바이스(220), 및 저장 디바이스(230)를 포함하고 있다. 프로세싱 디바이스(210)는 클러스터링 모듈(212), 인덱서(214), 및 인덱스 실렉터(216)를 실행할 수 있고, 이들 모두는 컴퓨터 판독가능 명령어로서 구현될 수 있다.
프로세싱 디바이스(210)는 컴퓨터 판독가능 명령어를 저장하는 메모리 디바이스(예를 들어, 램 및/또는 롬)와 통신하여 컴퓨터 판독가능 명령어(예를 들어, 실행가능한 컴퓨터 코드)를 실행하는 하나 이상의 물리적 프로세서를 포함하고 있다. 프로세싱 디바이스(210)가 2개 이상의 프로세서를 포함하는 실시예에서, 2개 이상의 프로세서는 개별 방식 또는 분산 방식으로 작동할 수 있다. 일부 실시예에서, 실행되는 컴포넌트의 일부는 상이한 물리적 디바이스 또는 위치에서 구현된다. 예를 들어, 클러스터링 모듈(212)은 제1 위치/디바이스에서 실행되고 인덱서(214) 및 인덱스 실렉터(216)는 제2 위치/디바이스에서 실행될 수 있다.
네트워크 인터페이스 디바이스(220)는 유선 또는 무선(예를 들어, 와이파이 또는 셀룰러) 통신을 실행할 수 있는 하나 이상의 디바이스를 포함하고 있다. 네트워크 인터페이스 디바이스(220)의 예는 IEEE 802.11 무선 규격, 이더넷 포트, 무선 전송기, 및 유니버셜 시리얼 버스(USB) 포트를 사용하여 통신하도록 구성된 트랜시버를 포함하지만 이에 제한되는 것은 아니다. 저장 디바이스(230)는 하나 이상의 컴퓨터 판독가능 매체(예를 들어, 하드 디스크 드라이브 및/또는 플래시 메모리 드라이브)를 포함할 수 있다. 이러한 저장 매체는 동일한 물리적 위치 또는 디바이스에 또는 상이한 물리적 위치 또는 디바이스에 위치될 수 있다. 저장 디바이스(230)는 애플리케이션 레코드(232), 질의 레코드(236), 미디어 콘텐트 레코드(234), 클러스터(238), 및 인덱스(240)를 저장할 수 있다.
애플리케이션 데이터 레코드(232)는 공지된(예를 들어, 이전에 발견된) 애플리케이션에 상응한다. 애플리케이션은 컴퓨터 디바이스가 태스크를 실행하도록 하는 컴퓨터 판독가능 명령어를 가리킬 수 있다. 일부 예에서, 애플리케이션은 "앱"으로 부를 수 있다. 애플리케이션 예는 워드 프로세싱 애플리케이션, 스프레드시트 애플리케이션, 메시징 애플리케이션, 미디어 스트리밍 애플리케이션, 소셜 네트워킹 애플리케이션, 및 게임을 포함하지만 이에 제한되는 것은 아니다.
각각의 애플리케이션 데이터 레코드(232)는 애플리케이션의 속성을 규정하는 애플리케이션 메타데이터를 포함할 수 있다. 애플리케이션의 속성의 예는 애플리케이션의 명칭, 애플리케이션이 프로그램화된 운영 체제, 애플리케이션의 다운로드의 수, 애플리케이션의 인기, 애플리케이션의 타입, 애플리케이션의 하위유형, 애플리케이션의 순위, 애플리케이션의 공개자, 애플리케이션의 실행 사용량, 애플리케이션의 삭제의 수를 포함할 수 있지만 이에 제한되는 것은 아니다.
질의 데이터 레코드(236)는 이전에 수신된 검색 질의(324)에 상응한다. 검색 질의(324)는 페르소나 서버(200)와 연관된 검색 엔진(120)에 의해 또는 제3자 소스로부터 수신될 수 있다. 각각의 질의 데이터 레코드(236)는 검색 질의(324)의 속성을 규정하는 질의 메타데이터를 포함할 수 있다. 검색 질의(324)의 속성의 예는 질의 자체, 질의를 제공하는 사용자 디바이스(300)의 지리적 위치, 및 이러한 질의에 응하여 취해진 액션(예를 들어, 사용자가 선택한 것)을 포함할 수 있지만 이에 제한되는 것은 아니다.
미디어 콘텐트 레코드(234)는 공지된 미디어 콘텐츠(예를 들어, 영화, 노래, 앨범, TV 쇼)에 해당한다. 각각의 미디어 콘텐트 레코드(234)는 미디어 콘텐트의 속성을 규정하는 미디어 메타데이터를 포함할 수 있다. 미디어 콘텐트의 속성의 예는 미디어 콘텐트의 명칭, 미이더 콘텐트의 타입, 미디어 콘텐트의 장르, 미디어 콘텐트의 포맷, 미디어 콘텐트의 저자, 미디어 콘텐트의 공개자, 미디어 콘텐트의 인기, 미디어 콘텐트의 순위, 및 미디어 콘텐트의 길이를 포함할 수 있지만 이에 제한되는 것은 아니다.
클러스터링 모듈(212)은 데이터 레코드를 클러스터화한다. 클러스터링 모듈(212)은 클러스터화되는 데이터 레코드의 세트를 입력으로서 수신하고 이러한 데이터 레코드를 클러스터화하는 하나 이상의 속성의 리스트를 더 수신할 수 있다. 클러스터링 모듈(212)의 출력은 하나 이상의 클러스터(238)이다. 출력된 클러스터(238)는 클러스터(238)의 멤버(즉, 데이터 레코드)를 식별할 수 있다. 클러스터링 모듈(212)은 k 근접 이웃, k 평균 클러스터링, 바이클러스터(bi-cluster), 또는 텍스트 기반 클러스터링과 같은 임의의 클러스터링 알고리즘을 실행할 수 있다. 클러스터링 모듈(212)은 애플리케이션 레코드(232), 질의 레코드(236), 및 미디어 레코드(234)의 각각의 세트를 개별적으로 클러스터화할 수 있다. 즉, 클러스터링 모듈(212)은 애플리케이션 레코드(232)를 다른 애플리케이션 레코드(232)와, 질의 레코드(236)를 다른 질의 레코드(236)와, 그리고 미디어 레코드(234)를 다른 미디어 레코드(234)와 클러스터화한다. 데이터 레코드를 클러스터화하기 위해 클러스터링 모듈(212)이 사용하는 속성은 인간에 의해 수동으로 선택되거나 주성분 분석(principal component analysis, PCA)과 같은 통계 프로세스를 사용하여 학습될 수 있다.
클러스터링 모듈(212)은 임의의 적절한 방식으로 데이터 레코드를 클러스터화할 수 있다. 일부 실시예에서, 클러스터링 모듈(212)은 처음에 클러스터 데이터 레코드를 일반적인 "카테고리 클러스터"로 클러스터화할 수 있다. 이러한 타입의 클러스터링 동안, 클러스터링 모듈(212)은 모든 유용한 정보에 기초하여 다수의 고레벨 클러스터(238)를 생성할 수 있다. 클러스터링 모듈(212)이 데이터 레코드를 클러스터화하는 정보는 데이터 레코드(232, 236, 238)에 포함된 메타데이터(예를 들어, 제3자 소스로부터 수집되거나 레코드에 수동으로 추가된 속성)을 포함할 수 있다. 일부 실시예에서, 이러한 타입의 클러스터링은 감시 방식으로 실행되어 사용자는 속성, 또는 데이터 레코드가 클러스터화되는 대표적인 데이터 레코드를 수동으로 선택할 수 있다. 또한, 클러스터링 모듈(212)은 각각의 클러스터(238)를 하위 클러스터(238)로 클러스터화할 수 있다. 클러스터링 모듈(212)이 일반적인 클러스터(238)의 클러스터화를 완료할 때, 클러스터링 모듈(212)은 요구되는 많은 레벨을 식별하기 위해 각각의 클러스터(238)를 계속 클러스터화할 수 있다. 또한, 클러스터(238)는 인간 감각을 만들 필요가 없다. 달리 말하면, 하위 클러스터(238)내의 데이터 레코드 사이의 관계는 인간 관찰자에게 용이하게 이해될 필요가 없다.
일부 실시예에서, 클러스터링 모듈(212)은 사용자 활동을 레버리지함으로써 가능한 클러스터(238)를 식별할 수 있다. 예를 들어, 클러스터링 모듈(212)은 주어진 지리적 영역에 대해 관심 아이템에 집중할 수 있다. 이러한 클러스터링은 레벨에 의해 이루어질 수 있어서, 클러스터링 모듈(212)은 국가에 기초하여 클러스터링을 시작한 다음, 주/지방에 기초하여, 그다음, 도시, 그다음, 특정 우편번호(유용하다면)에 기초하여 클러스터링을 시작한다. 지리적 영역에 더해, 클러스터링 모듈(212)은 일반적인 공동 필터링에 기초하여 사용자의 그룹에 공통인 데이터 레코드의 클러스터(238)를 식별할 수 있다. 이러한 시나리오에서, 클러스터(238)는 익명 데이터(즉, 임의의 특정 사용자에게 부여될 수 없는 데이터)를 사용하여 식별될 수 있다.
일부 실시예에서, 클러스터링 모듈(212)은 주문형 클러스터(238)를 식별할 수 있다. 이러한 실시예에서, 클러스터링 모듈(212)은 애플리케이션 데이터 레코드(232)를 공통 공개자, 개발자, 또는 프래차이즈와 함께 그룹화할 수 있다(예를 들어, ANGRY BIRDS® 시리즈의 모든 애플리케이션). 또한, 클러스터링 모듈(212)은 (예를 들어, ANGRY BIRDS® 또는 ANGRY BIRDS® 월페이퍼 테마에 대한 치트 코드를 갖는 애플리케이션을 포함하는) 공통 프랜차이즈와 관련된 애플리케이션 데이터 레코드(232)를 그룹화할 수 있다.
일부 실시예에서, 상기 클러스터(238)는 다른 속성에 기초하여 하위세분화될 수 있다. 클러스터(238)는 예를 들어, 현 인기, 장기 인기, 또는 가격에 따라 나눌 수 있다. 클러스터링 모듈(212)은 많은 세트의 중첩 클러스터(238)를 생성할 수 있다. 예를 들어, "Rovio 애플리케이션"과 관련된 클러스터(238)는 ANGRY BIRDS® 프랜차이즈와 관련된 클러스터(238)와 많이 중첩될 수 있다.
클러스터링 모듈(212)은 각각의 새롭게 식별된 클러스터(238)에 클러스터 ID를 더 제공한다. 클러스터링 모듈(212)은 클러스터(238)가 새롭게 형성되거나 새로운 데이터 레코드로 단지 갱신될 지 여부를 결정하도록 구성될 수 있다. 클러스터(238)가 새롭게 형성되면, 클러스터링 모듈(212)은 새로운 클러스터 ID를 발생시킨다. 이러한 클러스터 ID는 영숫자 문자의 스트링과 같은 임의의 유일한 식별자일 수 있다. 클러스터(238)가 기존에 있고 단지 갱신된 것이라면, 클러스터링 모듈(212)은 새로운 클러스터 ID를 발생시키지 않는다. 이러한 클러스터 ID는 연관된 특성을 갖거나 갖지 않을 수도 있다. 예를 들어, "공개자=Rovio" 특성 또는 "인기 게임" 특성이 이러한 클러스터 ID와 연관될 수 있다. 또한, 클러스터링 모듈(212)은 각각의 클러스터(238)에 버전을 할당할 수 있다. 이러한 방식으로, 클러스터(238)가 갱신될 때, 클러스터링 모듈(212)은 클러스터(238)의 버전 수를 증가시킬 수 있다. 이러한 버전은 클러스터(238)가 시간이 지남에 따라 변하는 경우에 이제 구식이 된 클러스터(238)로부터 발생된 페르소나를 구별하는데 사용될 수 있다(예를 들어, 현재 인기있는 게임). 추가로, 또는 대안으로, 클러스터링 모듈(212)은 인덱스 크기를 줄이기 위해 매우 높은 중첩으로 (예를 들어, 80% 또는 85% 보다 많은 중첩) 클러스터(238)를 합칠 수 있다.
인덱서(214)는 식별된 클러스터(238)에 기초하여 인덱스(240)를 생성한다. 일부 실시예에서, 인덱스(240)는 역 인덱스이다. 각각의 데이터 레코드에 있어서, 인덱서(214)는 데이터 레코드가 속한 클러스터(238)를 식별하고 데이터 레코드의 식별자(예를 들어, 레코드 ID) 및 식별된 클러스터(238)의 클러스터 ID에 기초하여 인덱스 엔트리(242)를 생성한다. 예를 들어, 데이터 레코드 "XYZ"가 "cluster_A" 및 "cluster_B"의 멤버라면, 데이터 레코드 XYZ의 역 인덱스 엔트리(242)는 "XYZ: {cluster_A, cluster_B}"이다.
일부 실시예에서, 인덱스 실렉터(216)는 어느 인덱스 엔트리(242)를 디바이스(300)에 전송할 지를 결정한다. 인덱스 실렉터(216)는 임의의 적절한 방식으로 전송할 인덱스 엔트리(242)를 선택할 수 있다. 일부 실시예에서, 인덱스 실렉터(216)는 사용자 디바이스(300)로부터 사용자 디바이스(300)의 관심 아이템의 인디케이터를 수신할 수 있다. 관심 아이템은 디바이스에 의해 실행되는/접근되는 애플리케이션(322)의 리스트("애플리케이션의 리스트"로 부른다), 사용자 디바이스(300)에 의해 제공된 검색 질의(324)의 리스트("검색 질의의 리스트"로 부른다), 및/또는 사용자 디바이스(300)에 의해 실행되는 미디어 콘텐츠(326)의 리스트("미디어 콘텐츠(326)의 리스트"로 부른다)를 포함할 수 있다. 인덱스 실렉터(216)는 관심 아이템의 각각에 상응하는 인덱스 엔트리(242)를 검색할 수 있다. 또한, 일부 실시예에서, 인덱스 실렉터(216)는 인덱스(240)에서 사용자 디바이스(300)에 전송되는 인덱스 엔트리(242)의 수를 감소시키기 위해 다수의 인자에 기초하여 인덱스 엔트리(242)를 도태시킬 수 있다. 예를 들어, 인덱스 실렉터(216)는 적어도 최소의 수의 사용자 디바이스(300)에 매치하는 클러스터(238)를 포함하는 인덱스 엔트리(242)를 유지한다. 예를 들어, 특정 애플리케이션, 검색 질의, 또는 미디어 콘텐트가 극히 드물다면, 인덱스 실렉터(216)는 인덱스 실렉터(216)가 사용자 디바이스(300)에 전송하는 드문 애플리케이션, 검색 질의, 또는 인덱스(240) 내의 미디어 콘텐트에 상응하는 인덱스 엔트리(242)를 포함하지 않는다.
일부 실시예에서, 인덱스 실렉터(216)는 디바이스(300)로부터 값을 수신하여, 이러한 값은 2개 이상의 애플리케이션(322), 2개 이상의 검색 질의(324), 및/또는 2개 이상의 미디어 콘텐츠(326)를 나타낸다. 이러한 실시예에서, 전송 디바이스(300)의 실제 콘텐츠(즉, 디바이스(300)에 설치된 정확한 애플리케이션 또는 디바이스(300)로부터 전송된 최신 검색 질의(324))는 페르소나 서버(200)로부터 모호해진다. 전송 사용자 디바이스(300)는 예를 들어, 해시 테이블 또는 비트 마스크를 사용하여 이러한 값을 결정할 수 있다. 이러한 시나리오에서, 서버(200)는 수신된 값에 상응하는 가능한 애플리케이션(322), 검색 질의(324), 및/또는 미디어 콘텐트(326)를 결정하는 역전 룩업 테이블을 유지할 수 있다. 그다음, 서버(200)는 가능한 애플리케이션(322), 검색 질의(324), 및/또는 미디어 콘텐츠(326)의 인덱스 엔트리(242)를 검색할 수 있다. 일부 실시예에서, 인덱스 실렉터(216)는 사용자 디바이스(300)에 전송되는 인덱스 엔트리(242)를 도태시킬 수 있다.
도 3는 활성 페르소나(100)를 예측하도록 구성된 사용자 디바이스(300)의 예를 도시하고 있다. 사용자 디바이스(300)의 예는 저장 디바이스(320), 네트워크 인터페이스(330), 사용자 인터페이스(340), 및 하나 이상의 주변 디바이스(350)와 통신하는 프로세싱 디바이스(310)를 포함할 수 있다. 사용자 디바이스(300)는 본 발명의 범위로부터 벗어남 없이 도시되지 않은 다른 컴포넌트를 포함할 수 있다.
프로세싱 디바이스(310)는 컴퓨터 실행가능 명령어를 실행하는 하나 이상의 프로세서 및 이러한 컴퓨터 실행가능 명령어를 저장하는 연관 메모리(예를 들어, 램 및/또는 롬)를 포함할 수 있다. 프로세싱 디바이스(310)가 하나 보다 많은 프로세서를 포함하는 실시예에서, 프로세서는 분산 또는 개별 방식으로 실행될 수 있다. 프로세싱 디바이스(310)는 인덱스 요청기(312), 모델 빌더(314), 행동 모니터(316), 및 페르소나 예측기(318)를 실행할 수 있고, 이들 모두는 컴퓨터 판독가능 명령어로서 구현될 수 있다.
저장 디바이스(320)는 하나 이상의 컴퓨터 판독가능 매체(예를 들어, 하드 디스크 드라이브 또는 플래시 메모리 드라이브)를 포함할 수 있다. 저장 디바이스(320)는 프로세싱 디바이스(310)와 통신할 수 있어서, 프로세싱 디바이스(310)는 임의의 필요한 데이터를 그로부터 검색할 수 있다. 저장 디바이스(320)는 사용자 디바이스(300)가 페르소나 서버(200) 및 하나 이상의 모델(400)로부터 수신하는 인덱스(240)를 저장한다. 저장 디바이스(320)는 애플리케이션(322), 이전 검색 질의(324), 및 미디어 콘텐츠(326)를 더 저장할 수 있다.
네트워크 인터페이스(330)는 네트워크(110)와 통신하도록 구성된 하나 이상의 디바이스를 포함하고 있다. 네트워크 인터페이스(330)는 유선 또는 무선 통신을 위한 하나 이상의 트랜시버를 포함할 수 있다. 네트워크 인터페이스(330)의 예는 IEEE 802.11 무선 규격, 이더넷 포트, 무선 전송기, 및 유니버셜 시리얼 버스(USB) 포트를 사용하여 통신하도록 구성된 트랜시버를 포함하지만 이에 제한되는 것은 아니다.
사용자 인터페이스(340)는 사용자로부터 입력을 수신하고 및/또는 사용자에게 출력을 제공하는 하나 이상의 디바이스를 포함하고 있다. 사용자 인터페이스(340)는 터치스크린, 디스플레이, QWERTY 키보드, 숫자 키패드, 터치패드, 마이크로폰 및/또는 스피커를 포함하지만 이에 제한되는 것은 아니다.
주변 디바이스(350)는 특정 기능을 실행하기 위해 사용자 디바이스(300)에 포함된 하드웨어 컴포넌트이다. 사용자 디바이스(300)는 가속도계, 자이로스코프, 글로벌 포지셔닝 시스템(GPS) 모듈, 카메라, 비디오 카메라, 및/또는 온도계를 포함하는 임의의 수의 주변 디바이스(350)를 가질 수 있다.
인덱스 요청기(312)는 페르소나 서버(200)로부터 인덱스(240)를 요청한다. 일부 실시예에서, 인덱스 요청기(312)는 관심 아이템에 대해 사용자 디바이스(300)를 스캔한다. 관심 아이템은 사용자 디바이스(300)에 설치되거나(고유의 앱) 접근된 (웹 앱) 애플리케이션(322), 검색 엔진(120)에 디바이스(300)에 의해 전송된 검색 질의(324), 및 사용자 디바이스(300)에 저장되거나 즉시 접근가능한 미디어 콘텐츠(326)를 포함할 수 있다. 일부 실시예에서, 인덱스 요청기(312)는 사용자 디바이스(300)의 사용자의 프라이버시를 보호하기 위해 각각의 관심 아이템을 일부 모호하게 한다. 예를 들어, 인덱스 요청기(312)는 관심 아이템의 인디케이터에 손실 해시 함수를 적용할 수 있다. 추가로 또는 대안으로, 인덱스 요청기(312)는 이러한 인디케이터의 하나 이상의 비트에 비트 마스크를 적용할 수 있다. 인덱스 요청기(312)는 관심 아이템의 인디케이터를 페르소나 서버(200)에 전송한다. 일부 실시예에서, 인덱스 요청기(312)는 각각의 인디케이터와 함께 하나 이상의 타임스탬프를 포함할 수 있다. 예를 들어, 관심 아이템에 있어서, 타임스탬프는 관심 아이템이 디바이스(300)에 로딩된 때(예를 들어, 애플리케이션(322)이 설치되거나 미디어 콘텐트(326)가 다운로드된 때), 관심 아이템이 디바이스(300)로부터 나온 때(예를 들어, 검색 질의(324)가 디바이스(300)로부터 전송된 때), 및/또는 관심 아이템이 마지막으로 사용된 때(예를 들어, 애플리케이션(322)가 론칭되거나, 미디어 콘텐트(326)가 재생되거나, 검색 질의(324)가 검색 엔진(120)에 전송된 마지막 때)를 가리킬 수 있다. 이에 응답하여, 페르소나 서버(200)는 관심 아이템에 상응하는 인덱스(240)를 리턴한다. 달리 말하면, 페르소나 서버(200)는 사용자 디바이스(300)의 관심 아이템에 의해 입력되는 인덱스 엔트리(242)를 포함하는 인덱스(240)를 리턴할 수 있다. 인덱스 요청기(312)는 인덱스(240)를 수신하고, 이러한 수신된 인덱스(240)를 저장 디바이스(320)에 저장할 수 있다.
모델 빌더(314)는 디바이스(300)의 활성 페르소나(100)를 예측하는데 사용된 하나 이상의 기계 학습 모델(400)을 발생시키고 갱신한다. 일부 실시예에서, 기계 학습 모델(400)은 은닉 마르코프 모델(HMM) 또는 베이시안 모델이다. 모델 빌더(314)는 사용자 디바이스(300)가 하나 이상의 사용자에 의해 사용됨에 따라 처음에 사용자 디바이스(300)의 가능한 사용자 디바이스 상태에 기초하여 모델(400)을 생성하고 모델(400)을 갱신한다. 사용자 디바이스 상태는 사용자의 액션이 암시할 수 있는 다양한 클러스터(238)에 상응할 수 있다. 예를 들어, 사용자 디바이스(300)가 론칭하는 애플리케이션(322), 사용자 디바이스(300)가 재생하는 미디어 콘텐츠(326), 및 사용자 디바이스(300)가 출력하는 검색 질의(324)가 인덱스(240)에 식별되는 클러스터(238)의 다양한 클러스터 ID를 암시할 수 있다. 암시된 클러스터(238)는 사용자 디바이스(300)의 활성 페르소나(100)를 나타낼 수 있다.
모델(400)은 디바이스(300)의 현 사용자 디바이스 상태에 기초하여 사용자 디바이스(300)의 사용자 디바이스 상태에 의해 암시된 현 클러스터로부터의 전이를 예측한다. 모델(400)은 사용자 디바이스(300)가 어떻게 역사적으로 사용되었는지(즉, 모델(400)의 학습 요소)는 물론 현재 관찰을 고려할 수 있다. 예를 들어, 사용자 디바이스(300)의 사용자가 평일 아침에 이메일 애플리케이션을 보통 열어본 다음 그 직후에 신문 애플리케이션을 열어본다면, 모델(400)은 이러한 행위를 학습한다. 이러한 방식으로, 그것이 평일 아침이고 사용자가 이메일 애플리케이션을 열었다는 것을 나타내는 관찰 세트를 수신할 때, 모델(400)은 사용자 디바이스(300)가 그후에 곧 신문 애플리케이션(322)(또는 신문 애플리케이션과 동일한 클러스터(238)의 다른 애플리케이션)을 론칭할 가능성이 높다는 것을 예측할 수 있거나, 적어도 사용자가 게이밍 애플리케이션(322)과 반대로 신문 애플리케이션(322)을 론칭할 확률이 더 높다는 것을 예측할 수 있다. 모델(400)은 (현재 클러스터를 포함하는) 사용자 디바이스(300)가 전이할 수 있는 상이한 클러스터에 상응하는 하나 이상의 확률 값을 출력할 수 있다. 일부 실시에에서, 모델(400)의 출력은 벡터로 구조화되는데, 벡터의 각각 요소는 상이한 클러스터를 나타내고, 각 요소에서의 값은 사용자 디바이스(300)가 해당 클러스터로 전이할 확률이다.
도 4는 기계 학습 모델(400)의 예를 설명하고 있다. 도시된 예에서, 기계 학습 모델(400)은 HWM이다. 모델(400)은 n개의 상태(410)(S={1,...,n}(예를 들어, 클러스터)와 m개의 관찰 세트(420)(O=[o1,...,ot _max](예를 들어, 사용자 디바이스 상태)를 포함할 수 있다. 도시된 예에서, 3개의 클러스터(410a, 410b, 410c)와 사용자 디바이스 상태(420a, 420b)가 존재한다. 도시된 예에서, 상이한 클러스터(410) 사이의 화살표(440)는 상태 전이 확률을 나타내고, 클러스터(410)와 관찰(420) 사이의 라인(450)은 출력 확률을 나타낸다. 상태 전이 확률은 사용자 디바이스(300)가 현 클러스터(410)로부터 다음 클러스터(410)로 변할 가능성을 나타낸다. 이러한 출력 확률은 주어진 사용자 디바이스 상태(420)가 주어진 클러스터(410)에 상응할 가능성을 나타낸다. 현 클러스터(410)는 사용자 디바이스(300)의 현 클러스터(예를 들어, 사용자 디바이스(300)에 의해 현재 실행되는/재생되는 애플리케이션 또는 미디어 콘텐트의 클러스터)를 나타낼 수 있다. 사용자 디바이스 상태(420)는 사용자 디바이스(300)에 의해 론칭된 마지막 애플리케이션, 가속도계의 상태, 사용자 디바이스(300)의 위치, 현 날씨 상태, 디바이스(300)의 전력 상태, 한 시간 전의 사용자 디바이스의 상태, 30분 전의 사용자 디바이스(30)의 상태 또는 다른 적절한 관찰을 포함하는 임의의 수의 특징들을 포함할 수 있다. 모델(400)은 주어진 시간에서 현 사용자 디바이스 상태(420)에서 사용자의 가능성이 높은 다음 클러스터(410)를 예측한다. 예를 들어, t=0에서, 폰의 스크린이 오프되고, 이전에 예측된 클러스터(410)가 "폭력적인 비디오 게임"이었고, 토요일 아침 9시이다. 모델(400)은 토요일 아침에 페르소나(100)가 "어린이 영화를 시청"하도록 상관될 가능성이 높다고 학습하였다. 폰 스크린이 턴온 되자마자, 이전의 클러스터(410), 및 시간과 가능한 페르소나(100)에 기초하여, 모델(400)은 다음 클러스터(410)가 "어린이 영화 시청"과 상관될 가능성이 높다고 예측한다. 그러나, 이 때에, 폭력적인 게임을 하는 사람은 어린이가 아니고 아빠이고, 그가 하는 첫번째 일은 "폭력적인 비디오 게임 클러스터"의 특정 게임을 론칭하는 것이다. 이러한 시나리오에서, 모델(400)은 현 클러스터(410)를 갱신한 다음, 다음 클러스터(410)가 "폭력적인 비디오 게임"에 상응한다고 예측한다.
모델 빌더(314)는 모델(400)의 상태(410)로서 인덱스 엔트리(242)에서 식별된 클러스터 ID를 사용하여 기계 학습 모델(400)(예를 들어, HMM 또는 베이시안 모델)을 발생시킨다. 특히, 모델 빌더(314)는 모델(400)에 포함될 각각의 클러스터(238)에 대한 상태(410)를 생성한다. 일부 실시예에서, 모델 빌더(314)는 사용자 디바이스(300)에 대한 모든 가능한 클러스터(238)의 세트를 식별하기 위해 수신 인덱스(240)를 분석할 수 있고 각각의 식별된 클러스터(238)에 대한 상태(410)를 생성한다. 다른 실시예에서, 모델 빌더(314)는 모든 가능한 클러스터(238)의 세트(420)를 식별하고 클러스터(238)의 하위 세트를 선택하여, 선택된 클러스터(238)는 사용자 디바이스(300)의 관심 아이템의 모두 또는 거의 모두를 집합적으로 포함한다. 이러한 실시예에서, 모델 빌더(314)는 선택된 클러스터(238) 사이의 관심 아이템의 교차량을 최소화하도록 구성될 수 있다. 처음에, 모델 빌더(314)는 모델(400)을 임의의 데이터에 의해 훈련하지 않은 상태이다. 따라서, 모델(400)의 인터셉션에서, 모델 빌더(314)는 특정 클러스터(410)로부터 다른 가능한 클러스터(410)의 각각으로의 전이의 각각과 동일한 확률을 연관시킨다. 또한, 디바이스(300)가 동시에 다수의 클러스터(410)에 존재할 수 있기 때문에(예를 들어, 인기있는 애플리케이션에 대한 디바이스(238) 및 일인칭 슈터 게임에 대한 클러스터(238)), 특정 클러스터(410)로부터의 모든 가능한 전이의 확률의 합은 1 보다 클 수 있다. 일부 실시예에서, 모델 빌더(314)는 사용자 행동 또는 다른 활동 데이터를 모은다. 이러한 실시예에서, 모델 빌더(314)는 동일한 확률의 모든 클러스터(238)와 반대로, 모델(400)의 초기 확률의 씨가 생기도록, 모인 사용자 행동을 사용한다.
모델 빌더(314)는 디바이스(300)에 상응하는 관찰과 사용자 디바이스(300)에 상응하는 사용자의 액션으로 모델(400)을 훈련시킨다. 관찰의 예는 현재 시간, 요일, 활성 애플리케이션(즉, 사용자에 의해 현재 사용되는 애플리케이션), 활성 미디어 콘텐트, 활성 검색 질의, 가속도계의 출력, 카메라로부터의 비디오 신호, 사용자 디바이스(300)가 현재 사용하는 네트워크 접속의 타입, 및 디바이스(300)의 현 위치를 포함할 수 있지만 이에 제한되는 것은 아니다. 모델(400)을 훈련하는데 사용되는 관찰의 타입은 사용자 디바이스(300)의 타입에 기초하여 변할 수 있다. 시간, 요일, 및 활성 애플리케이션에 더하여, 모델(400)의 설계자(예를 들어, 개발자)는 어느 타입의 관찰을 훈련 데이터에 포함시킬 지 선택할 수 있다. 예를 들어, 사용자 디바이스(300)가 스마트폰이라면, 사용자 디바이스(300)의 주변 디바이스(350)는 카메라, 자이로스코프, 가속도계 및 글로벌 포지셔닝 시스템(GPS) 수신기를 포함할 수 있다. 이러한 시나리오에서, 모델 빌더(314)는 이러한 주변 디바이스(350)의 출력을 기록하도록 구성될 수 있다. 자이로스코프, 가속도계 및/또는 GPS 디바이스의 출력은 사용자 디바이스(300)가 이동중인지 여부를 추론하고, 그러하다면, 무슨 유형의 이동(예를 들어, 달리기, 걷기, 운전)인지를 추론하는데 사용될 수 있다. 마찬가지로, 카메라의 출력은 디바이스(300)의 사용자(예를 들어, 엄마, 아빠, 또는 어린이)의 아이덴티티를 추론하는데 사용될 수 있다.
사용자 디바이스(300)를 명령하는 사용자의 액션의 예는 디바이스(300)의 턴온하는 명령, 애플리케이션(322)를 론칭하는 명령, 미디어 콘텐트(326)를 실행하는 명령, 및/또는 검색 질의(324)를 리모트 서버에 제공하는 명령을 포함할 수 있다. 또한, 사용자로부터의 명령의 부재는 동일한 기능 또는 활동을 계속 실행하라는 명령어로서 해석될 수 있다. 모델 빌더(314)는 이러한 명령의 각각을 (예를 들어, 홈 스크린으로부터 애플리케이션으로, 애플리케이션으로부터 다른 애플리케이션으로, 그리고 미디어 플레이어 애플리케이션으로부터 미디어 파일을 재생하는) 클러스터(410) 사이의 전이로서 처리한다. 사용자 디바이스(300)의 현 클러스터(410)가 전이할 때마다(예를 들어, 사용자 디바이스(300)가 새로운 애플리케이션을 론칭하거나 검색 질의(324)를 전송할 때마다), 모델 빌더(314)는 관찰, 사용자 디바이스(300)가 전이한 클러스터(410), 및 사용자 디바이스(300)가 전이된 클러스터(410)로 모델(400)을 갱신한다. 모델 빌더가 새로운 데이터(예를 들어, 관찰된 컨디션 및 상태 전이)를 HMM(400)에 추가할 때, 모델 빌더(314)는 사용자 디바이스(300)의 이전의 클러스터(410)로부터 잠재적인 상태 전이의 모두 또는 일부에 대해 새로운 확률을 계산할 수 있다.
행동 모니터(316)가 사용자 디바이스(300) 및 사용자에 의해 내려진 명령을 감시한다. 행동 모니터(316)는 백그라운드 프로세스로서 실행할 수 있다. 행동 모니터(316)는 네트워크 인터페이스(330), 사용자 인터페이스(340), 주변 디바이스(350), 및/또는 프로세싱 디바이스(310)에 의해 실행되는 임의의 애플리케이션을 감시하도록 구성될 수 있다. 행동 모니터(316)는 감시에 기초하여 현재의 관찰의 세트를 유지할 수 있다. 예를 들어, 행동 모니터(316)는 사용자 디바이스(300)가 와이파이 또는 셀룰러 네트워크를 통해 통신하고 있는지, 최근 사용자 디바이스(300)의 가속도계의 출력, 사용자 디바이스(300)의 최신 GPS 좌표, 및/또는 사용자 디바이스(300)의 카메라에 의해 포착된 이미지를 감시할 수 있다.
행동 모니터(316)는 또한 디바이스(300)의 현 클러스터(410)를 감시한다. 사용자 디바이스(300)의 현 상태(410)는 사용자 디바이스(300)에 현재 실행되는 액션을 규정할 수 있다. 디바이스(300)의 현 클러스터(410)는 사용자 디바이스(300)에 의해 현재 암시되는 클러스터(238)에 상응하는 클러스터 ID를 사용하여 표현될 수 있다. 일부 시나리오에서, 현재 액션은 하나 보다 많은 클러스터를 암시할 수 있다(예를 들어, 애플리케이션이 "폭력적인 게임" 클러스터 및 "인기 게임" 클러스터에 속한다). 행동 모니터(316)는 활성 애플리케이션(322), 활성 미디어 콘텐트(326), 또는 활성 검색 질의(324)를 결정함으로써 그리고 역 인덱스(240)의 상응하는 인덱스 엔트리(242)를 참조함으로써 현 클러스터(410)를 식별할 수 있다. 역 인덱스(240)는 활성 애플리케이션(322), 활성 미디어 콘텐트(326), 또는 활성 검색 질의(324)가 속한 클러스터(238)의 ID 또는 클러스터 ID를 출력한다. 행동 모니터(316)는 이러한 관찰의 세트를 모델 빌더(314) 및 페르소나 예측기(318)에 제공할 수 있다.
페르소나 예측기(318)는 사용자 디바이스(300)의 현 사용자 디바이스 상태에 기초하여 사용자 디바이스(300)의 활성 페르소나(100)를 예측한다. 페르소나 예측기(318)는 사용자 디바이스(300)의 현 사용자 디바이스 상태를 기계 학습 모델(400)에 입력할 수 있고, 모델(400)은 확률의 세트를 출력한다. 각각의 확률은 상이한 클러스터(238)과 연관되어 있다. 실시예에서, 모델(400)은 <P(CJ->C0), P1(CJ->C1), P1(CJ->C2),... PN(CJ->CN -1))>의 형태로 벡터, AP를 출력할 수 있다. 여기에서, 현 클러스터에 남는 것(즉, CJ->CJ)은 포함하는 디바이스(300)의 현 클러스터, CJ에 대해 전이할 수 있는 N개의 가능한 클러스터가 존재한다. 일부 실시예에서, 활성 페르소나(100)는 출력 벡터와 동일하도록 설정된다. 달리 말하면, 활성 페르소나(100)는 현 클러스터로부터 각각의 가능한 클러스터로의 전이의 확률의 결합에 의해 표현될 수 있다. 일부 상황에서, 이러한 확률의 합은 사용자 디바이스(300)가 동시에 다수의 클러스터에 존재할 수 있기 때문에 1을 초과할 수 있다. 예를 들어, 사용자가 인기있는 새로운 공포 영화를 보고 있다면, 인기 공포 영화는 새롭게 해제된 영화에 상응하는 클러스터(238) 및 공포 영화에 상응하는 클러스터(238)를 암시할 수 있다.
추가적으로 또는 대안으로, 페르소나 예측기(318)는 모델(400)에 의해 출력된 벡터를 페르소나 카테고리에 일치시킬 수 있다. 페르소나 카테고리는 사전결정된 카테고리일 수 있다. 사전결정된 카테고리의 예는 "생산성 애플리케이션", "전자 판독기 애플리케이션", "좀비 슈터 게임 애플리케이션", "인기 게임", "미디어 플레이어 애플리케이션", "쇼핑", "구성 애플리케이션", "플레이 키즈 음악", "플레이 인기 TV 쇼", 및 "영화 검색"을 포함할 수 있다. 상기 카테고리의 리스트는 예시로만 제시되어 있고 임의의 카테고리가 사용될 수 있다. 페르소나 예측기(318)는 벡터를 카테고리에 임의의 적절한 방식으로 일시킬 수 있다. 일부 실시예에서, 페르소나 예측기(318)는 이러한 벡터를 카테고리에 일치시키기 위한 규칙의 세트를 참조할 수 있다. 예를 들어, 규칙은, 사용자 디바이스가 제1 클러스터(238)에서 관심 아이템으로의 전이할 확률이 .8 보다 크다면 출력 벡터는 카테고리 A와 일치한다가 될 수 있다. 또한, 일부 실시예에서, 이러한 카테고리는 "인간 인식가능"할 필요가 없다. 벡터를 카테고리에 일치시키기 위한 규칙은 시간이 지남에 따라 기계 학습기에 의해 학습되거나 하드 코딩될 수 있다.
표 1은 모델(400)(예를 들어, HMM)의 사용예를 설명하고 있다. 모델(400)은 현 사용자 디바이스 상태(즉, 사용자 디바이스(300)에 상응하는 사용자 및 특징의 현 클러스터)를 수신하고 이에 기초하여 활성 페르소나(100)를 결정한다.
표 1
Figure pct00001
Figure pct00002
표 1 계속됨
Figure pct00003
표 1 계속됨
Figure pct00004
표 1 계속됨
Figure pct00005
표 1 계속됨
Figure pct00006
표 1 계속됨
Figure pct00007
Figure pct00008
표 1의 예에서, 사용자 디바이스는 4개 이상의 클러스터(410)에서 작동할 수 있다(예를 들어, Cat1 = "뉴스와 날씨", Cat2 = "게임 모드", Cat3 = "엔터테인먼트", Cat4 = "생산성 앱"...). 클러스터(410)의 각각은 관심 아이템의 상이한 세트에 해당할 수 있다(예를 들어, 애플리케이션, 미디어 콘텐츠, 및/또는 질의). 또한, 표 1은 N 개 이상의 상이한 시간(t=0, t=1, t=2, t=3...t=N)에 대한 정보를 제공한다. 모델(400)은 입력으로서 사용자 디바이스(300)의 현 클러스터(예를 들어, 사용자에 의해 사용되는 현 카테고리)를 수신한다. 모델(400)은 또한 관찰 세트(420)(즉, 사용자 및/또는 사용자 디바이스(300)에 상응하는 특징)을 수신한다. 표 1의 예에서, 모델(400)은 사용자 디바이스(300)의 이전의 클러스터(예를 들어, 5분 전 및 30분 전의 사용자 디바이스의 클러스터), 디바이스(300)의 현 위치(예를 들어, 이전의 30분의 위치), 디바이스(300)가 현 위치에서 빠르게 이동하고 있는지 여부(예를 들어, 가속도계 신호가 임계 속도 보다 큰 속도를 나타내는지 여부), 스크린의 상태, 가속도계의 상태, 및 디바이스(300)의 상태(예를 들어, 아이들/사용중)를 수신한다.
설명된 예에 있어서, t = 0에서(즉, 자정과 오전 6시 사이의 월요일 아침), 디바이스(300)는 아이들(idle)이고 가속하지 않는다. 사용자는 "조용"하고 디바이스(300)의 카테고리에 대해 아무런 강한 예측이 존재하지 않는다. 따라서, 활성 페르소나(100)는 <.1,.1,.1,.1...>로서 표현될 수 있다. t=1에서(즉, 오전 6 월요일 아침), 사용자는 아이들이지만 모델(400)이 Cat1(예를 들어, "뉴스 및 날씨")에 있을 가능성이 가장 높지만, Cat2(예를 들어, "게임")에 있을 수 있다. 따라서, 활성 페르소나(100)는 <.8,.15,.0,.05...>로 표현될 수 있다. 상기 활성 페르소나(100)는 사용자 기상시 뉴스 및/또는 날씨를 보통 체크하지만, 때로 게임을 하는 경우에 모델(400)에 의해 학습될 수 있다. t=0에서(즉, 오전 7시 월요일 아침), 사용자는 활성이고 현재 게임을 하고 있다. 모델(400)의 출력이 변하여 사용자가 Cat2(예를 들어, "게임")에 있는 것으로 예측한다. 이러한 경우에, t = 1에서의 예측은 부정확하였다. 모델 빌더(314)는 이에 따라 모델(400)을 갱신할 수 있어서, 사용자 디바이스(300)가 동일하거나 유사한 관찰 세트(420)를 만나는 다음 번에, 사용자가 게임 모드에서 작동하고 있을 확률이 증가된다. t=3에서(즉, 월요일 아침 오전 8시), 사용자 디바이스(300)는 Loc1(위치 1, 예를 들어, 사용자의 집)에 있고 이동하지만, 빠르게 이동하지 않는다(즉, 가속도계 신호는 온이지만 임계값을 초과하지 않는다). t=3에서, 모델(400)은 사용자 디바이스(300)가 Cat2(예를 들어, 게임)에 있을 가능성이 높다는 예측을 출력한다. 활성 페르소나(100)는 <0, .95, 0, 0,...>일 수 있다. t=N에서(즉, 금요일 오후 5시), 사용자 디바이스(300)는 아이들이지만, 사용자는 빠르게 이동하고 있다. 이러한 시나리오에서, 사용자는 퇴근하여 집으로 운전하고 있을 수 있다(Loc2). t=5에서, 사용자는 3시간 전에 생산성 애플리케이션(예를 들어, 이메일 애플리케이션)을 사용하였다. 모델(400)은 사용자가 Cat3(예를 들어, "오락")으로 전환할 가능성이 높다고 예측하고, 게임을 하거나 생산성 애플리케이션을 할 가능성은 보다 낮다(각각 10% 확률). t=5에서, 활성 페르소나(100)는 <0, .1, .8, .1,...>일 수 있다. 표 1의 예는 본 발명의 범위를 제한하고자 하는 것이 아니다. 이러한 카테고리 리스트 및 특징은 예로서 제공되어 있고 추가 대안의 카테고리 및 특징이 모델(400)에서 구현될 수 있다.
사용자 디바이스(300)의 활성 페르소나(100)는 많은 상이한 기능을 위해 사용될 수 있다. 일부 실시예에서, 검색 애플리케이션은 검색 애플리케이션이 론칭되거나 활성화될 때 페르소나 예측기(318)로부터 활성 페르소나(100)를 요청할 수 있다. 페르소나 예측기(318)는 사용자 디바이스(300)의 활성 페르소나(100)를 검색 애플리케이션에 제공하고, 이러한 검색 애플리케이션은 검색 질의(324)의 메타데이터와 함께 활성 페르소나(100)를 포함한다. 이러한 방식으로, 검색 엔진(120)이 검색 질의(324)를 사용하여 검색을 실행할 때, 활성 페르소나(100)는 검색 질의(324)에 추가 콘텍스트를 제공할 수 있다. 예를 들어, 검색 질의(324)가 ("와치 라이온(watch lion)")이고 사용자가 어린이의 교육 콘텐트의 검색(.05) 보다 스포츠 관련된 콘텐트를 검색할 가능성이 보다 높다(예를 들어, .8 확률)고 활성 페르소나(100)가 나타낸다면, 검색 엔진(120)은 사용자가 동물 관련 비디오(예를 들어, 사자의 비디오 시청)를 갖는 애플리케이션 보다는 라이브 스포츠를 시청(예를 들어, 디트로이트 라이온즈 플레이 풋볼 시청)할 수 있도록 하는 애플리케이션을 나타내는 검색 결과를 내놓을 수 있다. 이러한 상황에서, 페르소나 예측기(318)는 활성 페르소나(100)가 변함에 따라 사용자 디바이스(300)의 활성 페르소나(100)를 계속 갱신할 수 있다.
다른 예에서, 사용자는 사용자에게 광고를 표시함으로써 수익을 내는 무료 애플리케이션(예를 들어, 음악 스트리밍 애플리케이션)을 사용할 수 있다. 이러한 예에서, 무료 애플리케이션의 애플리케이션 서버(130)는 페르소나 예측기(318)로부터 사용자의 활성 페르소나(100)를 요청할 수 있다. 페르소나 예측기(318)는 활성 페르소나(100)를 애플리케이션 서버(130)에 제공할 수 있다. 활성 페르소나(100)에 응답하여, 애플리케이션 서버(130)는 활성 페르소나(100)에 기초하여 사용자에게 제공할 광고를 선택할 수 있다. 예를 들어, 활성 페르소나(100)가 사용자가 음악을 들은 후에 인기 TV 쇼를 시청할 가능성이 높다고 나타내는 경우에, 무료 애플리케이션이 새로운 인기 TV 쇼에 대해 광고를 표시하거나 스트리밍할 수 있다. 대안으로, 활성 페르소나(100)가 사용자가 음악을 들은 후에 폭력적인 비디오 게임을 할 가능성이 높다고 나타낸 경우에, 애플리케이션 서버(130)는 새로운 일인칭 슈터 게임에 대한 광고를 제공할 수 있다.
또 다른 예에서, 사용자 디바이스(300)의 운영 체제는 사용자 디바이스(300)의 활성 페르소나(100)를 요청할 수 있다. 페르소나 예측기(318)는 사용자 인터페이스(340)에 의해 표시되는 홈 스크린을 재구성하기 위해 활성 페르소나(100)를 사용할 수 있는 운영 체제에 활성 페르소나(100)를 제공할 수 있다. 예를 들어, 활성 페르소나(100)가 사용자가 영화를 감상할 가능성이 높다고 나타낸 경우에, 운영 체제는 미디어 플레이어 애플리케이션 아이콘을 두드러지게 표시하도록 홈 스크린을 재구성할 수 있다. 대안으로, 활성 페르소나(100)가 사용자가 이메일을 열거나 다큐멘트 뷰어를 사용할 가능성이 높다고 나타낸 경우에, 운영 체제는 업무 관련 애플리케이션 아이콘을 두드러지게 표시하기 위해 홈 스크린을 재구성할 수 있다.
활성 페르소나(100)는 임의의 다른 수의 기능을 위해 사용될 수 있다. 이러한 방식으로, 활성 페르소나(100)의 사용은 사용자 디바이스(300)의 사용자 경험을 강화시킬 수 있다. 또한, 일부 실시예에서, 사용자는 그의 활성 페르소나(100)를 수동으로 선택할 수 있다. 이러한 실시예에서, 사용자는 그의 활성 페르소나(100)를 사용자 디바이스(300)의 그래피컬 유저 인터페이스를 통해 입력할 수 있다. 그다음, 사용자 디바이스(300)는 상술된 방식중 하나로 수동 입력된 활성 페르소나(100)를 사용할 수 있다.
이제 도 5를 살펴보면, 사용자 디바이스(300)의 활성 페르소나(100)를 예측하기 위한 방법(500) 예가 도시되어 있다. 이러한 방법(500)은 사용자 디바이스(300)의 컴포넌트를 참조하여 설명되어 있다. 임의의 다른 적절한 컴포넌트가 이러한 방법(500)을 실행할 수 있다는 것을 이해할 수 있다.
작동 510에서, 행동 모니터(316)는 사용자 디바이스(300)의 현 사용자 디바이스 상태를 포착한다. 사용자 디바이스(300)의 현 사용자 디바이스 상태를 결정하기 위해, 행동 모니터(316)는 현 상태(410)를 포착하기 위해 사용자 디바이스(300)의 활성 프로세스가 무엇인지를 결정한다. 즉, 행동 모니터(316)는 활성 애플리케이션(322), 활성 미디어 콘텐트(326), 또는 활성 검색 질의(324)를 식별할 수 있다. 행동 모니터(316)는 그다음 활성 프로세스에 의해 암시된 클러스터(238)의 ID 또는 클러스터 ID를 식별하기 위해 활성 프로세스의 역 인덱스 엔트리(242)를 참조한다. 이러한 클러스터 ID는 현재 사용자 디바이스 상태(410) 또는 사용자 디바이스(300)의 상태(410)를 표현한다. 설명된 바와 같이, 페르소나 서버(200)는 충돌을 최소화하도록 인덱스 엔트리(242)를 선택할 수 있지만, 하나 이상의 클러스터(238) 사이의 중첩이 존재할 수 있다.
활성 프로세스에 더해, 행동 모니터(316)는 사용자 디바이스(300)의 현 관찰을 포착한다. 행동 모니터(316)는 네트워크 인터페이스 디바이스(330), 사용자 인터페이스(340), 및/또는 주변 디바이스(350)의 상태를 포착할 수 있다. 예를 들어, 행동 모니터(316)는 사용자 디바이스(300)가 와이파이 네트워크 또는 셀룰러 네트워크에서 동작하고 있는지, 이전의 시간 양(예를 들어, 5분)에 대한 가속도계의 출력, GPS 시스템의 출력, 시간 및 요일을 결정할 수 있다. 디바이스(300)의 능력 및 다른 고려사항에 따라, 행동 모니터(316)는 현재 온도를 포함하여, 비디오 카메라의 출력 및 주변 광의 양은 물론 다른 현재 관찰을 포착할 수 있다. 행동 모니터(316)는 행동 모니터(316)이 포착하는 관찰의 세트를 규정하는 현 관찰 데이터 구조를 유지할 수 있다. 행동 모니터(316)가 새로운 관찰을 포착할 때마다, 행동 모니터(316)는 새로운 관찰에 의해 이러한 데이터 구조를 갱신할 수 있다.
동작 512에서, 페르소나 예측기(318)는 현 사용자 디바이스 상태를 모델(400)에 입력한다. 동작 514에서, 페르소나 예측기(318)는 활성 페르소나(100)를 모델(400)로부터 취득한다. 일부 실시예에서, 모델(400)은 하나 이상의 확률의 벡터를 출력한다. 이전에 나타낸 바와 같이, 각각의 확률은 상이한 클러스터와 연관되어 있고 사용자 디바이스(300)가 클러스터에 상응하는 관심의 아아템으로 전이할 가능성을 나타낸다. 일부 실시예에서, 활성 페르소나(100) 또는 페르소나(100)는 출력 벡터와 동일하도록 설정된다. 다른 실시예에서, 페르소나 예측기(318)는 사용자 디바이스(300)의 활성 페르소나(100) 또는 페르소나(100)를 취득하기 위해 이러한 벡터를 활성 페르소나 카테고리에 일치시킨다.
동작 516에서, 페르소나 예측기(318)는 활성 페르소나(100)를 사용하여 프로시져를 실행한다. 일부 실시에에서, 페르소나 예측기(318)는 사용자 디바이스(300)에 실행되는 프로세스(사용자 디바이스(300)의 운영 체제) 또는 리모트 디바이스(예를 들어, 애플리케이션 서버(130) 또는 광고 서버)에 활성 페르소나(100)를 제공할 수 있다. 일부 실시예에서, 페르소나 예측기(318)는 검색 엔진(120)에 젝오되는 검색 질의(324)에 활성 페르소나(100)를 포함하는 검색 애플리케이션에 활성 페르소나(100)를 제공할 수 있다. 일부 실시예에서, 사용자 디바이스(300)의 운영 체제는 활성 페르소나(100)에 따라 사용자 디바이스(300)의 홈 스크린을 재배열할 수 있다. 예를 들어, 사용자가 폭력적인 비디오 게임을 할 가능성이 높다고 활성 페르소나(100)가 나타내는 경우에, 운영 체제는 홈 스크린에 폭력적인 비디오 게임의 아이콘을 보여주기 위해 홈 스크린을 재배열할 수 있다. 이러한 방식으로, 활성 페르소나(100)는 사용자 디바이스(300)의 사용자의 전체 경험을 강화하는데 사용될 수 있다.
동작 518에서, 행동 모니터(316)는 사용자 디바이스(300)의 새로운 사용장 디바이스 상태를 포착한다. 행동 모니터(316)는 페르소나 예측기(318)가 활성 페르소나(100)를 예측한 후에 사용자 디바이스(300)의 사용자의 액션을 감시할 수 있다. 일부 실시예에서, 행동 모니터(316)는 새로운 사용자 디바이스 상태를 포착하기 위해 사용자 디바이스(300)가 현 활성 프로세스를 변경할 때까지(예를 들어, 사용자가 상이한 애플리케이션 또는 미디어 콘텐트(326)로 전이할 때까지) 대기한다. 사용자가 타임아웃 기간(예를 들어, 5분) 동안 활성 프로세스를 변경하지 않는다면, 행동 모니터(316)는 사용자 디바이스(300)가 동일한 사용자 디바이스 상태에 남았다고 결정한다. 다른 실시예에서, 행동 모니터(316)는 사전결정된 길이의 간격(예를 들어, 2분 마다)으로 사용자 디바이스(300)의 새로운 사용자 디바이스 상태를 포착한다. 이러한 실시예에서, 새로운 사용자 디바이스 상태는 사용자 디바이스(300)가 사전결정된 간격 동안 활성 프로세스를 변경하지 않는다면 현 사용자 디바이스 상태와 동일할 수 있다. 행동 모니터(316)는 새로운 활성 프로세스를 포착하는 것에 더해 다른 관찰을 포착할 수 있다.
동작 520에서, 모델 빌더(314)는 모델(400)을 갱신한다. 일부 실시에에서, 모델 빌더(314)는 모델(400)의 트레이닝 데이터를 현 사용자 디바이스 상태(동작 510에서 결정된다)로 그리고 행동 모니터(316)에 의해 포착되는 대로 새로운 사용자 디바이스 상태(동작 520에서 결정된다)에 의해 갱신한다. 이러한 방식으로, 모델 빌더(314)는 현 상태 및 후속 새로운 사용자 디바이스 상태에 주어진 경우에 공지된 전이를 규정한다.
방법(500)은 활성 페르소나(100)에 대한 요청을 수신할 때에 또는 사전결정된 간격(예를 들어, 사용자 디바이스(300)가 사용중일 때 5분 마다) 이러한 방식으로 실행할 수 있다. 방법(500)은 예로서만 제공되어 있고 방법(500)의 변경이 가능하다. 또한, 동작의 일부는 순서를 바꾸거나 동시에 실행될 수 있다.
여기에 기술된 시스템 및 기술의 다양한 실시예는 디지털 전자 및/또는 광학 회로, 집적 회로, 특별 주문된 ASIC(주문형 집적 회로), 컴퓨터 하드에어, 펌웨어, 소프트웨어 및/또는 그 조합으로 구현될 수 있다. 이러한 구현은 저장 시스템, 적어도 하나의 입력 장치, 및 적어도 하나의 출력 장치로 데이터 및 명령어를 쉰하고 전송하도록 결합된, 전용 또는 범용일 수 있는, 적어도 하나의 프로그래머블 프로세서를 포함하는 프로그래머블 시스템에 실행가능하고 및/또는 해석가능한 하나 이상의 컴퓨터 프로그램으로 구현되는 것을 포함한다.
이러한 컴퓨터 프로그램(역시 프로그램, 소프트웨어, 소프트웨어 애플리케이션 또는 코드로서 알려져 있다)은 프로그래머블 프로세서에 대한 기계 명령어를 포함하고, 고레벨 프로시져 및/또는 객체 지향 프로그래밍 언어, 및/또는 어셈블리/기계 언어로 구현될 수 있다. 여기에 사용된 바와 같이, 용어 "기계 판독가능 매체" 및 "컴퓨터 판독가능 매체"는 기계 판독가능 신호로서 기계 명령어를 수신하는 기계 판독가능 매체를 포함하는, 기계 명령어 및/또는 데이터를 프로그래머블 프로세서에 제공하는데 사용되는 임의의 컴퓨터 프로그램 제품, 비임시 컴퓨터 판독가능 매체, 장치 및/또는 디바이스(예를 들어, 자기 디스크, 광학 디스크, 메모리, 프로그래머블 로직 디바이스(PLD))를 가리킨다. 용어 "기계 판독가능 신호"는 기계 명령어 및/또는 데이터를 프로그래머블 프로세서에 제공하는데 사용되는 임의의 신호를 가리킨다.
본 명세서에 기술된 주제 및 기능적 동작의 구현은 본 명세서에 개시된 구조 및 이들의 구조적 등가물을 포함하는, 디지털 전자 회로, 또는 컴퓨터 소프트웨어, 펌웨어, 또는 하드웨어, 또는 이들중 하나 이상의 조합으로 구현될 수 있다. 또한, 본 명세서에 기술된 주제는 하나 이상의 컴퓨터 프로그램 제품, 즉, 데이터 처리 장치의 동작을 제어하기 위해 또는 이러한 장치에 의해 실행되기 위해 컴퓨터 판독가능 매체에 인코딩된 컴퓨터 프로그램 명령어의 하나 이상의 모듈로서 구현될 수 있다. 컴퓨터 판독가능 매체는 기계 판독가능 저장 디바이스, 기계 판독가능 저장 기재, 메모리 디바이스, 기계 판독가능 전파 신호에 영향을 주는 것의 조합, 또는 이들중 하나 이상의 조합일 수 있다. 용어 "데이터 처리 장치", "컴퓨팅 디바이스", 및 "컴퓨팅 프로세서"는 예를 들어, 프로그래머블 프로세서, 컴퓨터, 또는 다수의 프로세서 또는 컴퓨터를 포함하는, 데이터를 처리하기 위한 모든 장치, 디바이스, 및 기계를 포함한다. 이러한 장치는 하드웨어에 더해, 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 또는 이들중 하나 이상의 조합을 구성하는 코드와 같은, 문제의 컴퓨터 프로그램을 위한 실행 환경을 생성하는 코드를 포함할 수 있다. 전파 신호는 적절한 수신기 장치에 전송되기 위한 정보를 인코딩하기 위해 발생되는 기계 발생 전기, 광학 또는 전자기 신호와 같은 인공 발생 신호이다.
컴퓨터 프로그램(역시 애플리케이션, 프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트, 또는 코드로서 알려져 있다)은 컴파일되거나 해석된 언어를 포함하는 임의의 형태의 프로그래밍 언어로 기록될 수 있고, 독립형 프로그램으로서 또는 모듈, 컴포넌트, 서브루틴, 또는 컴퓨팅 환경에 사용하기에 적절한 다른 유닛과 같은 임의의 형태로 전개될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 반드시 상응하지는 않는다. 프로그램은 다른 프로그램 또는 데이터를 홀딩하는 파일의 일부에 저장되거나(예를 들어, 하나 이상의 스크립트는 마크업 언더 문서에 저장된다), 문제의 프로그램 전용의 단일 파일에, 또는 다수의 공동 파일(예를 들어, 하나 이상의 모듈, 서브 프로그램, 또는 코드의 일부를 저장하는 파일)에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터에서, 또는 하나의 사이트에 위치되거나 다수의 사이트에 분산되고 통신망에 의해 상호접속된 다수의 컴퓨터에서 실행되기 위해 전개될 수 있다.
본 명세서에 기술된 프로세스 및 로직 플로우는 입력 데이터에 작동하고 출력을 발생시킴으로써 기능을 실행하기 위해 하나 이상의 컴퓨터 프로그램을 실행하는 하나 이상의 프로그래머블 프로세서에 의해 실행될 수 있다. 이러한 프로세스 및 로직 플로우 역시 전용 로직 회로, 예를 들어, FPGA(필드 프로그래머블 게이트 어레이) 또는 ASIC(주문형 집적 회로)에 의해 실행되고, 장치 역시 전용 로직 회로, 예를 들어, FPGA(필드 프로그래머블 게이트 어레이) 또는 ASIC(주문형 집적 회로)으로서 구현될 수 있다.
컴퓨터 프로그램의 실행에 적절한 프로세서는 예를 들어, 범용 및 전용 마이크로프로세서 모두, 및 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서를 포함하고 있다. 일반적으로, 프로세서는 읽기 전용 메모리 또는 랜덤 액세스 메모리로부터 또는 이들 모두로부터 명령어 및 데이터를 수신할 것이다. 컴퓨터의 필수 요소는 명령어를 실행하기 위한 프로세서 및 명령어 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스이다. 일반적으로, 컴퓨터는 또한, 자기, 자기광학 디스크, 또는 광학 디스크와 같이, 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스를 포함하거나 이러한 디바이스에 데이터를 수신하거나 전송하기 위해 동작식 결합될 것이ㄷ. 그러나, 컴퓨터는 이러한 디바이스를 가질 필요가 없다. 또한, 컴퓨터는 다른 디바이스, 예를 들어, 이동 전화, 퍼스널 디지털 어시스턴트(PDA), 모바일 오디오 플레이어, 글로벌 포지셔닝 시스템(GPS) 수신기에 내장될 수 있다. 컴퓨터 프로그램 명령어 및 데이터를 저장하기에 적절한 컴퓨터 판독가능 매체는 예를 들어, 반도체 메모리 디바이스, 예를 들어, EPROM, EEPROM, 및 플래시 메모리 디바이스; 자기 디스크, 예를 들어, 내부 하드 디스크 또는 제거가능 디스크; 자기 광학 디스크; CD ROM 및 DVD-ROM 디스크를 포함하는 모든 형태의 비휘발성 메모리, 미디어 및 메모리를 포함하고 있다. 이러한 프로세서 및 메모리는 전용 로직 회로에 의해 보충되거나 통합될 수 있다.
사용자와의 인터랙션을 제공하기 위해, 본 발명의 하나 이상의 특징은 디스플레이, 예를 들어, CRT(음극관), LCD(액정 디스플레이) 모니터, 또는 사용자에게 정보를 표시하기 위한 터치 스크린 및 옵션으로 키보드 및 포인팅 디바이스, 예를 들어, 사용자가 컴퓨터에 입력을 제공할 수 있는 마우스 또는 트랙볼을 갖는 컴퓨터에서 구현될 수 있다. 다른 종류의 디바이스 역시 사용자와의 인터랙션을 제공하기 위해 사용될 수 있고; 예를 들어, 사용자에게 제공된 피드백은 임의의 형태의 감각 피드백, 예를 들어, 시각 피드백, 청각 피드백, 또는 접촉 피드백일 수 있고; 사용자로부터의 입력은 음향, 음성, 또는 접촉식 입력을 포함하는 임의의 형태로 수신될 수 있다. 또한, 컴퓨터는 사용자에 의해 사용되는 디바이스에 문서를 전송하고 수신함으로써; 예를 들어, 웹 브라우저로부터 수신된 요청에 응답하여 사용자의 클라이언트 디바이스 상의 웹 브라우저에 웹 페이지를 전송함으로써 사용자와 상호작용할 수 있다.
본 발명의 하나 이상의 특징은 예를 들어, 데이터 서버로서 백엔드 컴포넌트를 포함하거나, 미들웨어 컴포넌트, 예를 들어, 애플리케이션 서버를 포함하거나, 프론트엔드 컴포넌트, 예를 들어, 본 명세서에 기술된 주제의 구현과 사용자가 상호작용할 수 있는 웹 브라우저 또는 그래피컬 유저 인터페이스를 갖는 클라이언트 컴퓨터를 포함하거나, 이러한 백엔드, 미들웨어 또는 프론트엔드 컴포넌트의 하나 이상의 임의의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 이러한 시스템의 컴포넌트는 디지털 데이터 통신의 임의의 형태 또는 매체, 예를 들어, 통신망에 의해 상호접속될 수 있다. 통신망의 예는 근거리 통신망("LAN") 및 원거리 통신망("WAN"), 인터-네트워크(예를 들어, 인터넷), 및 P2P 네트워크(예를 들어, 임시 P2P 네트워크)를 포함한다. 통신망은 셀룰러 네트워크 및/또는 전화 통신망을 포함할 수 있다.
컴퓨팅 시스템은 클라이언트 및 서버를 포함할 수 있다. 클라이언트 및 서버는 일반적으로 서로 떨어져 있고 보통 통신망을 통해 상호작용한다. 클라이언트 및 서버의 관계는 각각의 컴퓨터에서 실행되고 서로 클라이언트-섭 관계를 갖는 컴퓨터 프로그램에 의해 발생된다. 일부 실시예에서, 서버는 데이터(예를 들어, HTML 페이지)를 클라이언트 디바이스에 (예를 들어, 클라이언트 디바이스와 상호작용하는 사용자에 데이터를 표시하고 이러한 사용자로부터 사용자 입력사용자 입력을 수신할 목적으로) 전송한다. 클라이언트 디바이스에서 발생된 데이터(예를 들어, 사용자 인터랙션의 결과)는 클라이언트 디바이스로부터 서버에서 수신될 수 있다.
본 명세서가 많은 실시예를 포함하고 있지만, 이것들은 청구범위 또는 본 발명의 범위를 제한하는 것이 아니고, 본 발명의 특정 실시예에 특정된 특징을 설명하기 위한 것이다. 본 별개의 실시예의 문맥에서 이러한 명세서에 기술된 특정 특징 역시 단일 실시예에서 함께 구현될 수 있다. 반대로, 단일 실시예로 기술된 다양한 특징 역시 다수의 실시예에서 별개로 또는 임의의 적절한 하위 조합으로 구현될 수 있다. 또한, 특징들이 특정 조합으로 상술될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징은 일부 경우에 조합으로부터 제거될 수 있고, 청구된 조합은 하위 조합 또는 하위 조합의 변형일 수 있다.
마찬가지로, 동작들이 도면에서 특정 순서로 도시되어 있지만, 이것은 이러한 동작들이 도시된 특정 순서로 또는 순차적으로 실행되거나, 모든 설명된 동작들이 희망의 결과를 얻기 위해 실행될 필요가 있는 것으로 이해해서는 안된다. 특정 환경에서, 멀티태스킹 및 병렬 프로세싱이 유리할 수 있다. 또한, 상술된 실시예의 다양한 시스템 컴포넌트의 분리는 모든 실시예에서 이러한 분리를 필요로 하는 것으로 이해해서는 안되고, 기술된 프로그램 컴포넌트 및 시스템은 일반적으로 단일 소프트웨어 제품에서 함께 통합되거나 다수의 소프트웨어 제품으로 패키지화될 수 있다는 것을 이해해야 한다.
다수의 실시예가 기술되었다. 그럼에도 불구하고, 다양한 수정이 본 발명의 정신 및 범위로부터 벗어남 없이 가능하다는 것을 이해할 것이다. 따라서, 다른 실시예 역시 다음의 청구범위 안에 있다. 예를 들어, 청구범위에 언급된 액션은 상이한 순서로 실행될 수 있고 여전히 희망의 결과를 달성할 수 있다.

Claims (26)

  1. 방법(500)에 있어서,
    프로세싱 디바이스(210, 310)에 의해, 사용자 디바이스(300)의 제1 사용자 디바이스 상태(420, 420a, 420b)를 결정하는 단계로서, 상기 제1 사용자 디바이스 상태(420a, 420b)는 상기 사용자 디바이스(300)에서 현재 실행되는 액션 및 상기 사용자 디바이스(300)에 상응하는 하나 이상의 관찰(420)을 규정하는 단계;
    상기 프로세싱 디바이스(210, 310)에 의해, 사용자 디바이스 상태(420a, 420b)를 수신하고 하나 이상의 클러스터(238, 410, 410a, 410b, 410c)와 연관된 확률 값을 출력하는 모델(400)에 상기 제1 사용자 디바이스 상태(420a, 420b)를 입력하는 단계로서, 각각의 클러스터(238, 410, 410a, 410b, 410c)는 상기 사용자 디바이스(300)에 상응하는 하나 이상의 관심 아이템을 나타내는 단계;
    상기 프로세싱 디바이스(210, 310)에 의해, 상기 모델(400)의 출력에 기초하여 상기 사용자 디바이스(300)의 활성 페르소나(100)를 결정하는 단계로서, 상기 활성 페르소나(100)는 상기 사용자 디바이스(300)의 사용자의 예측된 오브젝티브를 나타내는 단계; 및
    상기 프로세싱 디바이스(210, 310)에 의해, 상기 사용자 디바이스(300)의 활성 페르소나(100)를 사용하여 프로시져를 실행하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서,
    상기 프로세싱 디바이스(210, 310)에 의해, 상기 사용자 디바이스(300)의 활성 페르소나(100)를 결정한 후에 제2 사용자 디바이스 상태(420a, 420b)를 포착하는 단계로서, 상기 제2 사용자 디바이스 상태(420a, 420b)는 상기 제1 사용자 디바이스 상태(420a, 420b)의 후속이고 상기 사용자 디바이스(300)에서 실행되는 후속 액션 및 하나 이상의 후속 관찰(420)을 규정하는 단계; 및
    상기 프로세싱 디바이스(210, 310)에 의해, 상기 제2 사용자 디바이스 상태(420a, 420b) 및 제1 사용자 디바이스 상태(420a, 420b)에 기초하여 모델(400)을 갱신하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  3. 제1항에 있어서, 상기 모델(400)은 은닉 마르코프 모델인 것을 특징으로 하는 방법.
  4. 제1항에 있어서, 상기 사용자 디바이스(300)에 의해 실행되는 액션은 상기 사용자 디바이스(300)의 활성 프로세스에 기초하는 것을 특징으로 하는 방법.
  5. 제4항에 있어서, 상기 활성 프로세스는 상기 사용자 디바이스(300)에 의해 실행되는 활성 애플리케이션(322), 상기 사용자 디바이스(300)에 의해 재생되는 활성 미디어 콘텐트(326), 또는 상기 사용자 디바이스(300)에 의해 제공된 활성 검색 질의(324)중 하나인 것을 특징으로 하는 방법.
  6. 제4항에 있어서, 상기 제1 사용자 디바이스 상태(420a, 420b)를 결정하는 단계는 상기 활성 프로세스가 역 인덱스(240)를 사용하여 상응하는 활성 클러스터(238, 410, 410a, 410b, 410c)를 결정하는 단계를 포함하고, 상기 활성 클러스터(238, 410, 410a, 410b, 410c)는 상기 사용자 디바이스(300)에 상응하는 활성 관심 아이템을 나타내는 것을 특징으로 하는 방법.
  7. 제6항에 있어서,
    상기 프로세싱 디바이스(210, 310)에 의해, 상기 사용자 디바이스(300)의 복수의 관심 아이템을 결정하는 단계로서, 각각의 관심 아이템은 상기 사용자 디바이스(300)에 설치된 애플리케이션(322), 상기 사용자 디바이스(300)에서 이전에 재생된 미디어 콘텐트(326), 또는 상기 사용자 디바이스(300)로부터 이전에 제공된 검색 질의(324)중 하나를 나타내는 단계;
    상기 프로세싱 디바이스(210, 310)에 의해, 상기 복수의 관심 아이템을 페르소나 서버(200)에 제공하는 단계; 및
    상기 프로세싱 디바이스(210, 310)에 의해, 상기 페르소나 서버(200)로부터 상기 역 인덱스(240)를 수신하는 단계로서, 상기 역 인덱스(240)는 복수의 역 인덱스 엔트리(242)를 포함하고, 각각의 역 인덱스 엔트리(242)는 상기 관심 아이템중 하나에 상응하고, 상기 관심 아이템이 속한 하나 이상의 클러스터(238, 410, 410a, 410b, 410c)를 식별하는 단계를 더 포함하는 것을 특징으로 하는 방법.
  8. 제1항에 있어서, 상기 제1 사용자 디바이스 상태(420a, 420b)를 결정하는 단계는 상기 사용자 디바이스(300)의 하나 이상의 주변 장치(350)의 출력 값을 얻는 단계를 포함하는 것을 특징으로 하는 방법.
  9. 제1항에 있어서, 상기 활성 페르소나(100)를 사용하여 상기 프로시져를 실행하는 단계는 상기 활성 페르소나(100)를 검색 질의(324)의 일부로서 검색 엔진(120)에 통신하는 단계를 포함하는 것을 특징으로 하는 방법.
  10. 제1항에 있어서, 상기 활성 페르소나(100)를 사용하여 상기 프로시져를 실행하는 단계는 상기 사용자 디바이스(300)와 통신하여 상기 애플리케이션 서버(130)에 상기 활성 페르소나(100)를 통신하는 단계를 포함하는 것을 특징으로 하는 방법.
  11. 제1항에 있어서, 상기 활성 페르소나(100)를 사용하여 상기 프로시져를 실행하는 단계는 상기 활성 페르소나(100)에 기초하여 상기 사용자 디바이스(300)의 홈 스크린을 재배열하는 단계를 포함하는 것을 특징으로 하는 방법.
  12. 제1항에 있어서, 상기 활성 페르소나(100)는 상기 모델(400)에 의해 출력된 확률을 나타내는 벡터이고, 상기 벡터의 각각의 요소는 상기 사용자 디바이스(300)가 현 관심 아이템으로부터, 제2 관심 아이템을 포함하는 확률 값과 연관된 클러스터(238, 410, 410a, 410b, 410c)에 전이될 확률을 나타내는 것을 특징으로 하는 방법.
  13. 제1항에 있어서, 상기 활성 페르소나(100)를 얻는 단계는,
    상기 모델(400)에 의해 출력된 확률을 나타내는 벡터를 얻는 단계로서, 상기 벡터의 각각의 요소는 상기 사용자 디바이스(300)가 현 관심 아이템으로부터, 제2 관심 아이템을 포함하는 확률 값과 연관된 클러스터(238, 410, 410a, 410b, 410c)로 전이될 확률을 나타내는 단계; 및
    상기 벡터를 하나 이상의 규칙에 기초하여 카테고리에 맵핑하는 단계를 포함하는 것을 특징으로 하는 방법.
  14. 사용자 디바이스(300)로서,
    사용자 디바이스(300)의 사용자 디바이스 상태(420a, 420b)를 수신하고 하나 이상의 클러스터(238, 410, 410a, 410b, 410c)와 연관된 확률 값을 출력하는 모델(400)을 저장하는 하나 이상의 컴퓨터 판독가능 매체를 포함하는 저장 디바이스(230, 320)로서, 각각의 클러스터(238, 410, 410a, 410b, 410c)는 상기 사용자 디바이스(300)에 상응하는 하나 이상의 관심 아이템을 나타내는 저장 디바이스(230, 320); 및
    프로세싱 디바이스(210, 310)를 포함하고,
    상기 프로세싱 디바이스(210, 310)는 상기 프로세싱 디바이스(210, 310)에 의해 실행될 때, 상기 사용자 디바이스(300)가,
    사용자 디바이스(300)의 제1 사용자 디바이스 상태(420, 420a, 420b)를 결정하는 단계로서, 상기 제1 사용자 디바이스 상태(420a, 420b)는 상기 사용자 디바이스(300)에서 현재 실행되는 액션 및 상기 사용자 디바이스(300)에 상응하는 하나 이상의 관찰(420)을 규정하는 단계;
    상기 모델(400)에 상기 제1 사용자 디바이스 상태(420a, 420b)를 입력하는 단계;
    상기 모델(400)의 출력에 기초하여 상기 사용자 디바이스(300)의 활성 페르소나(100)를 결정하는 단계로서, 상기 활성 페르소나(100)는 상기 사용자 디바이스(300)의 사용자의 예측된 오브젝티브를 나타내는 단계; 및
    상기 사용자 디바이스(300)의 활성 페르소나(100)를 사용하여 프로시져를 실행하는 단계를 하도록 하는 컴퓨터 판독가능 명령어를 실행하는 것을 특징으로 하는 사용자 디바이스.
  15. 제14항에 있어서, 상기 컴퓨터 판독가능 명령어는 상기 프로세싱 디바이스(210, 310)가,
    상기 사용자 디바이스(300)의 활성 페르소나(100)를 결정한 후에 제2 사용자 디바이스 상태(420a, 420b)를 포착하는 단계로서, 상기 제2 사용자 디바이스 상태(420a, 420b)는 상기 제1 사용자 디바이스 상태(420a, 420b)의 후속이고 상기 사용자 디바이스(300)에서 실행되는 후속 액션 및 하나 이상의 후속 관찰(420)을 규정하는 단계; 및
    상기 제2 사용자 디바이스 상태(420a, 420b) 및 제1 사용자 디바이스 상태(420a, 420b)에 기초하여 모델(400)을 갱신하는 단계를 더 하도록 하는 것을 특징으로 하는 사용자 디바이스.
  16. 제14항에 있어서, 상기 모델(400)은 은닉 마르코프 모델인 것을 특징으로 하는 사용자 디바이스.
  17. 제14항에 있어서, 상기 사용자 디바이스(300)에 의해 실행되는 액션은 상기 사용자 디바이스(300)의 활성 프로세스에 기초하는 것을 특징으로 하는 사용자 디바이스.
  18. 제17항에 있어서, 상기 활성 프로세스는 상기 사용자 디바이스(300)에 의해 실행되는 활성 애플리케이션(322), 상기 사용자 디바이스(300)에 의해 재생되는 활성 미디어 콘텐트(326), 또는 상기 사용자 디바이스(300)에 의해 제공된 활성 검색 질의(324)중 하나인 것을 특징으로 하는 사용자 디바이스.
  19. 제18항에 있어서, 상기 제1 사용자 디바이스 상태(420a, 420b)를 결정하는 단계는 상기 활성 프로세스가 역 인덱스(240)를 사용하여 상응하는 활성 클러스터(238, 410, 410a, 410b, 410c)를 결정하는 단계를 포함하고, 상기 활성 클러스터(238, 410, 410a, 410b, 410c)는 상기 사용자 디바이스(300)에 상응하는 활성 관심 아이템을 나타내는 것을 특징으로 하는 사용자 디바이스.
  20. 제19항에 있어서, 상기 컴퓨터 판독가능 명령어는 상기 프로세싱 디바이스(210, 310)가,
    상기 사용자 디바이스(300)의 복수의 관심 아이템을 결정하는 단계로서, 각각의 관심 아이템은 상기 사용자 디바이스(300)에 설치된 애플리케이션(322), 상기 사용자 디바이스(300)에서 이전에 재생된 미디어 콘텐트(326), 또는 상기 사용자 디바이스(300)로부터 이전에 제공된 검색 질의(324)중 하나를 나타내는 단계;
    상기 복수의 관심 아이템을 페르소나 서버(200)에 제공하는 단계; 및
    상기 페르소나 서버(200)로부터 상기 역 인덱스(240)를 수신하는 단계로서, 상기 역 인덱스(240)는 복수의 역 인덱스 엔트리(242)를 포함하고, 각각의 역 인덱스 엔트리(242)는 상기 관심 아이템중 하나에 상응하고, 상기 관심 아이템이 속한 하나 이상의 클러스터(238, 410, 410a, 410b, 410c)를 식별하는 단계를 더 하도록 것을 특징으로 하는 사용자 디바이스.
  21. 제14항에 있어서, 상기 제1 사용자 디바이스 상태(420a, 420b)를 결정하는 단계는 상기 사용자 디바이스(300)의 하나 이상의 주변 장치(350)의 출력 값을 얻는 단계를 포함하는 것을 특징으로 하는 사용자 디바이스.
  22. 제14항에 있어서, 상기 활성 페르소나(100)를 사용하여 상기 프로시져를 실행하는 단계는 상기 활성 페르소나(100)를 검색 질의(324)의 일부로서 검색 엔진(120)에 통신하는 단계를 포함하는 것을 특징으로 하는 사용자 디바이스.
  23. 제14항에 있어서, 상기 활성 페르소나(100)를 사용하여 상기 프로시져를 실행하는 단계는 상기 사용자 디바이스(300)와 통신하여 상기 애플리케이션 서버(130)에 상기 활성 페르소나(100)를 통신하는 단계를 포함하는 것을 특징으로 하는 사용자 디바이스.
  24. 제14항에 있어서, 상기 활성 페르소나(100)를 사용하여 상기 프로시져를 실행하는 단계는 상기 활성 페르소나(100)에 기초하여 상기 사용자 디바이스(300)의 홈 스크린을 재배열하는 단계를 포함하는 것을 특징으로 하는 사용자 디바이스.
  25. 제14항에 있어서, 상기 활성 페르소나(100)는 상기 모델(400)에 의해 출력된 확률을 나타내는 벡터이고, 상기 벡터의 각각의 요소는 상기 사용자 디바이스(300)가 현 관심 아이템으로부터, 확률 값과 연관된 클러스터(238, 410, 410a, 410b, 410c)에 의해 나타난 제2 관심 아이템으로 전이될 확률을 나타내는 것을 특징으로 하는 사용자 디바이스.
  26. 제14항에 있어서, 상기 활성 페르소나(100)를 얻는 단계는,
    상기 모델(400)에 의해 출력된 확률을 나타내는 벡터를 얻는 단계로서, 상기 벡터의 각각의 요소는 상기 사용자 디바이스(300)가 현 관심 아이템으로부터, 확률 값과 연관된 클러스터(238, 410, 410a, 410b, 410c)에 의해 나타난 제2 관심 아이템으로 전이될 확률을 나타내는 단계; 및
    상기 벡터를 하나 이상의 규칙에 기초하여 카테고리에 맵핑하는 단계를 포함하는 것을 특징으로 하는 사용자 디바이스.
KR1020167020673A 2013-12-27 2014-11-12 사용자 디바이스의 활성 페르소나 결정 KR101959368B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361921245P 2013-12-27 2013-12-27
US61/921,245 2013-12-27
US14/446,991 US9405838B2 (en) 2013-12-27 2014-07-30 Determining an active persona of a user device
US14/446,991 2014-07-30
PCT/US2014/065184 WO2015099893A1 (en) 2013-12-27 2014-11-12 Determining an active persona of a user device

Publications (2)

Publication Number Publication Date
KR20160124087A true KR20160124087A (ko) 2016-10-26
KR101959368B1 KR101959368B1 (ko) 2019-03-18

Family

ID=53479489

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167020673A KR101959368B1 (ko) 2013-12-27 2014-11-12 사용자 디바이스의 활성 페르소나 결정

Country Status (5)

Country Link
US (2) US9405838B2 (ko)
EP (1) EP3087501A4 (ko)
KR (1) KR101959368B1 (ko)
CN (1) CN106104510A (ko)
WO (1) WO2015099893A1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190038439A (ko) * 2017-09-29 2019-04-08 이다커뮤니케이션즈(주) 맞춤형 페르소나 관리서버
KR20200036373A (ko) * 2018-09-28 2020-04-07 이다커뮤니케이션즈(주) 맞춤형 페르소나 관리서버 및 그 관리 방법
WO2023153622A1 (ko) * 2022-02-09 2023-08-17 삼성전자주식회사 기기 설정 동기화 방법 및 장치

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10300393B2 (en) * 2014-10-21 2019-05-28 Activision Publishing, Inc. Music based video game with components
US11363460B1 (en) * 2015-03-03 2022-06-14 Amazon Technologies, Inc. Device-based identification for automated user detection
US10198498B2 (en) * 2015-05-13 2019-02-05 Rovi Guides, Inc. Methods and systems for updating database tags for media content
US10726438B2 (en) * 2015-09-03 2020-07-28 Microsoft Technology Licensing, Llc Personalized contextual coupon engine
US20190026273A1 (en) * 2015-09-09 2019-01-24 Cell Buddy Network Ltd. Alias communication
US20170097827A1 (en) * 2015-10-06 2017-04-06 Microsoft Technology Licensing, Llc Role-specific device behavior
US10601953B2 (en) * 2016-09-22 2020-03-24 Adobe Inc. Decomposing media content accounts for persona-based experience individualization
US10757110B2 (en) 2016-12-21 2020-08-25 Microsoft Technology Licensing, Llc Generation of application allowed lists for machines
US10512846B2 (en) * 2017-03-07 2019-12-24 Sony Interactive Entertainment LLC Emulating player behavior after player departure
US10946280B2 (en) 2017-03-08 2021-03-16 Sony Interactive Entertainment LLC In-game reactions to interruptions
CN107463660B (zh) * 2017-07-31 2020-10-16 广州虎牙信息科技有限公司 产品活跃用户数据测算方法及计算机设备
US11222061B2 (en) * 2019-03-28 2022-01-11 Facebook, Inc. Generating digital media clusters corresponding to predicted distribution classes from a repository of digital media based on network distribution history
GB2583718A (en) * 2019-05-01 2020-11-11 Samsung Electronics Co Ltd Method, apparatus and computer program for updating a cluster probability model
US20210034945A1 (en) * 2019-07-31 2021-02-04 Walmart Apollo, Llc Personalized complimentary item recommendations using sequential and triplet neural architecture
US11321406B2 (en) 2019-07-31 2022-05-03 Walmart Apollo, Llc Personalized ranking using deep attribute extraction and attentive user interest embeddings
US11443112B2 (en) * 2019-09-06 2022-09-13 International Business Machines Corporation Outcome of a natural language interaction
US11861463B2 (en) * 2019-09-06 2024-01-02 International Business Machines Corporation Identifying related messages in a natural language interaction
US10803065B1 (en) * 2019-09-12 2020-10-13 Business Objects Software Ltd Microcubes
CN113449471B (zh) * 2021-06-25 2022-08-30 东北电力大学 利用ap聚类-跳转持续改进mc的风电出力模拟生成方法
US20230161890A1 (en) * 2021-11-24 2023-05-25 X Development Llc Persona prediction for access to resources

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120109956A1 (en) * 2010-10-29 2012-05-03 Yahoo! Inc. Profile prediction for shared computers

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030191753A1 (en) * 2002-04-08 2003-10-09 Michael Hoch Filtering contents using a learning mechanism
US7594121B2 (en) * 2004-01-22 2009-09-22 Sony Corporation Methods and apparatus for determining an identity of a user
US20060074883A1 (en) 2004-10-05 2006-04-06 Microsoft Corporation Systems, methods, and interfaces for providing personalized search and information access
RU2012127407A (ru) * 2009-12-15 2014-01-10 Интел Корпорейшн Система, устройство и способы использования вероятностных технологий при определении тенденции, составлении профиля и основанных на шаблонах предсказаний поведения пользователя с целью предложения рекомендаций
US10074094B2 (en) 2010-03-09 2018-09-11 Excalibur Ip, Llc Generating a user profile based on self disclosed public status information
CN101826114B (zh) * 2010-05-26 2012-05-09 南京大学 一种基于多马尔可夫链的内容推荐方法
WO2014028072A1 (en) * 2012-08-17 2014-02-20 Flextronics Ap, Llc Interactive channel navigation and switching

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120109956A1 (en) * 2010-10-29 2012-05-03 Yahoo! Inc. Profile prediction for shared computers

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190038439A (ko) * 2017-09-29 2019-04-08 이다커뮤니케이션즈(주) 맞춤형 페르소나 관리서버
KR20200036373A (ko) * 2018-09-28 2020-04-07 이다커뮤니케이션즈(주) 맞춤형 페르소나 관리서버 및 그 관리 방법
WO2023153622A1 (ko) * 2022-02-09 2023-08-17 삼성전자주식회사 기기 설정 동기화 방법 및 장치

Also Published As

Publication number Publication date
US20150186535A1 (en) 2015-07-02
CN106104510A (zh) 2016-11-09
US20160291840A1 (en) 2016-10-06
EP3087501A4 (en) 2017-08-30
KR101959368B1 (ko) 2019-03-18
US9405838B2 (en) 2016-08-02
WO2015099893A1 (en) 2015-07-02
EP3087501A1 (en) 2016-11-02

Similar Documents

Publication Publication Date Title
KR101959368B1 (ko) 사용자 디바이스의 활성 페르소나 결정
US20210020182A1 (en) Personalization of experiences with digital assistants in communal settings through voice and query processing
US20210168442A1 (en) Computerized system and method for automatically detecting and rendering highlights from streaming videos
US20240104126A1 (en) Methods, systems, and media for modifying the presentation of contextually relevant documents in browser windows of a browsing application
US20200089661A1 (en) System and method for providing augmented reality challenges
US10867221B2 (en) Computerized method and system for automated determination of high quality digital content
US10798043B2 (en) Indicating live videos for trending topics on online social networks
US10049149B2 (en) Computerized system and method for search query auto-completion
US11720640B2 (en) Searching social media content
US20120260214A1 (en) Recommending digital content based on implicit user identification
JP5870217B2 (ja) 適応システム
CN111708901A (zh) 多媒体资源推荐方法、装置、电子设备及存储介质
KR20160015319A (ko) 다수의 컨텐츠 소스로부터 토픽과 연관된 컨텐츠 아이템의 피드 생성
JP5890539B2 (ja) 予測に基づくサービスへのアクセス
WO2015169056A1 (zh) 信息呈现方法和设备
US11481558B2 (en) System and method for a scene builder
CN110347781B (zh) 文章倒排方法、文章推荐方法、装置、设备及存储介质
JP2022512271A (ja) 音声パケット記録機能のガイド方法、装置、デバイス、プログラム及びコンピュータ記憶媒体
CN111611369A (zh) 基于人工智能的交互方法和相关装置
US20170004656A1 (en) System and method for providing augmented reality challenges
CN113254503A (zh) 一种内容挖掘方法、装置及相关产品
CN116958638A (zh) 一种视频的处理方法、装置以及存储介质

Legal Events

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