KR20160129097A - 방문 가능성에 기초한 부근의 목적지들의 정렬 및 위치 히스토리로부터의 장소들에 대한 미래의 방문들의 예측 - Google Patents
방문 가능성에 기초한 부근의 목적지들의 정렬 및 위치 히스토리로부터의 장소들에 대한 미래의 방문들의 예측 Download PDFInfo
- Publication number
- KR20160129097A KR20160129097A KR1020167030009A KR20167030009A KR20160129097A KR 20160129097 A KR20160129097 A KR 20160129097A KR 1020167030009 A KR1020167030009 A KR 1020167030009A KR 20167030009 A KR20167030009 A KR 20167030009A KR 20160129097 A KR20160129097 A KR 20160129097A
- Authority
- KR
- South Korea
- Prior art keywords
- visit
- location
- destination
- user
- destinations
- Prior art date
Links
- 238000000034 method Methods 0.000 claims abstract description 107
- 238000009826 distribution Methods 0.000 claims description 57
- 230000008569 process Effects 0.000 abstract description 15
- 239000013598 vector Substances 0.000 description 128
- 230000006870 function Effects 0.000 description 38
- 230000003247 decreasing effect Effects 0.000 description 12
- 238000004891 communication Methods 0.000 description 10
- 238000010801 machine learning Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 8
- 238000003860 storage Methods 0.000 description 8
- 230000002441 reversible effect Effects 0.000 description 7
- 230000006399 behavior Effects 0.000 description 6
- 235000013305 food Nutrition 0.000 description 4
- 238000007637 random forest analysis Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- BYGHZDSINXXOSM-UHFFFAOYSA-N 2-(9h-fluoren-2-yl)-5-[5-(9h-fluoren-2-yl)thiophen-2-yl]thiophene Chemical compound C1=C2CC3=CC=CC=C3C2=CC=C1C(S1)=CC=C1C(S1)=CC=C1C1=CC=C2C3=CC=CC=C3CC2=C1 BYGHZDSINXXOSM-UHFFFAOYSA-N 0.000 description 2
- 230000004308 accommodation Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000011273 social behavior Effects 0.000 description 2
- 230000003442 weekly effect Effects 0.000 description 2
- 241000288113 Gallirallus australis Species 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000008094 contradictory effect Effects 0.000 description 1
- 230000002354 daily effect Effects 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 235000012054 meals Nutrition 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N7/00—Computing arrangements based on specific mathematical models
- G06N7/01—Probabilistic graphical models, e.g. probabilistic networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/20—Ensemble learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
- G06F16/24578—Query processing with adaptation to user needs using ranking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/951—Indexing; Web crawling techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9537—Spatial or temporal dependent retrieval, e.g. spatiotemporal queries
-
- G06F17/30241—
-
- G06F17/3053—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/02—Knowledge representation; Symbolic representation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- G06N7/005—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/02—Services making use of location information
- H04W4/021—Services related to particular areas, e.g. point of interest [POI] services, venue services or geofences
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/02—Services making use of location information
- H04W4/029—Location-based management or tracking services
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Medical Informatics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Remote Sensing (AREA)
- Computational Mathematics (AREA)
- Algebra (AREA)
- Probability & Statistics with Applications (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Optimization (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Telephonic Communication Services (AREA)
- Navigation (AREA)
- Mobile Radio Communication Systems (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
일부 실시예들에 따르면, 본 발명의 시스템들 및 기법들은 사용자의 위치에 기초하여 사용자에게 관련 연락처 정보를 제공할 수 있다. 일부 실시예들에서, 사용자의 위치가 서버에 제공되며, 서버는 사용자의 연락처들 및 사용자와 관련된 다른 정보를 프로세싱하여, 사용자의 연락처들 중 어떤 것이 사용자의 현재 위치와 관련있는지를 판별할 수 있다. 관련 연락처들은 사용자에게 제공될 수 있다. 다른 일례들에서, 시스템들 및 기법들은 사용자가 가까운 미래에 방문할 것 같은 장소들을 예측할 수 있으며 그리고 이러한 장소들에 관한 정보를 사용자에게 자동으로 제공할 수 있다. 예측 서버는 사용자의 위치 히스토리를 검색할 수 있으며 그리고 위치 히스토리에 기초하여, 다양한 모델들 중 임의의 모델을 이용하여 사용자가 미래에 방문할 것 같은 장소들을 예측할 수 있으며, 그리고 사용자가 그 장소를 방문하기 전에, 상기 장소에 관한 정보가 사용자에게 제공될 수 있다.
Description
본 발명은 사용자의 위치에 기초하는 관련된 콘택 정보를 사용자에게 제공할 수 있는 시스템 및 기법에 관한 발명이다.
스마트폰 및 테블릿 등과 같은 모바일 디바이스는 사용자들에게 끊임없이 제공될 수 있는 다양한 새로운 서비스들을 가능케 하였다. 모바일 디바이스의 지리적 위치는, 셀룰러 네트워크 타워들, 와이-파이 위치들 혹은 GPS를 참조하는 등의 모바일 디바이스의 위치를 판별하기 위한 여러 기술들 중 임의의 것을 이용하여 결정될 수 있다. 사용자의 지리적 위치를 서비스들이 이용하는 것을 사용자가 동의하는 경우, 위치-기반 서비스들이 로컬 디바이스를 통해 제공될 수 있다.
위치-기반 서비스는 정보 혹은 엔터테인먼트 서비스인데, 이는 모바일 네트워크를 통해 모바일 디바이스 상에서 액세스가능하며, 그리고 모바일 디바이스의 지리적 위치에 관한 정보를 이용한다. 1 세대 위치-기반 서비스들은 가령, 가장 가까운 현금 인출기를 찾는 것 혹은 친구의 행방을 찾는 것 등의 사람 혹은 물체의 위치를 식별하는 서비스들을 포함할 수 있다. 또한, 이러한 서비스들은 예컨대, 고객들의 현재 위치에 기초하여 쿠폰들을 제공하거나 혹은 고객들에게 광고하는 등의 모바일 커머스(mobile commerce)를 포함할 수 있다. 또한, 이들 서비스들은 개인화된 날씨 서비스들 및 심지어는 위치-기반의 게임들을 포함할 수 있다.
사용자의 위치 정보에 대한 보다 상세한 이해(예컨대, 개인화된 그리고 히스토리 인식 위치 정보)는, 보다 복잡한 서비스가 제공될 수 있게 한다. 예를 들어, 사용자가 심부름(errands)을 하는 경우, 사용자의 모바일 디바이스는 위도, 경도 등의 데이터 포인트들과 방문한 위치들 각각에 대한 타임스탬프를 포함하는 위치 히스토리(location history)를 생성할 수 있다. 하지만, 보다 가치있는 것은, 사용자가 방문한 사업장들(businesses) 혹은 다른 목적지들의 목록(이하, '목록' 혹은 '리스트'라 함)이 될 것이다. 이러한 정보를 갖는다는 것은, 체크 인하기 위해 사용자가 선택할 때, 방문하고 있는 사업장의 이름을 사용자에게 제시함으로써, 사용자들이 소셜 어플리케이션을 보다 용이하게 이용하여 "체크 인(check in)"할 수 있게 한다. e-커머스 어플리케이션들은 사용자가 실제로 방문한 사업장들에 대한 배달 쿠폰 혹은 광고를 포함할 수도 있다. 모바일 디바이스는, 특정한 날 혹은 날들에 사용자가 갔었던 곳에 대한 저널(journal)을 사용자에게 제공하는 어플리케이션을 가질 수도 있다. 다른 많은 개선된 위치-기반 서비스들에는 이러한 정보가 제공될 수 있다.
일반적으로, 사용자가 방문한 곳을 결정하는 것은, 로컬 검색 엔진들을 이용하여 수행될 수 있다. 로컬 검색 엔진들은, 사용자들이 지리적으로 제한된 검색들을 로컬 사업장 목록들의 구조화된 데이터베이스에 대하여 제출하는 것을 허용하는 검색 엔진들이다. 하지만, 결과들이 항상 정확한 것은 아니다. 모바일 디바이스들로부터 유도된 위치 정보가 항상 정확한 것은 아니다. GPS는 양호한 결과들을 제공할 수는 있지만, 실내(가령, 쇼핑 몰 등의 장소들) 혹은 가령, 어번 캐니언(urban canyon) 등과 같은 다른 장소들에서는 GPS 신호가 수신되기 어렵다. 또한, 사업장들 역시도 매우 가깝게 구획될 수 있는데, 이러한 경우로는 하나의 빌딩이 많은 사업장들을 포함하거나 혹은 하나의 사업장이 다른 하나의 사업장 위에 혹은 밑에 있는 경우를 포함한다. 또한, 사업장들은 지리적으로 구별되지 않을 수도 있다. 이러한 일례들 중 하나는 식당을 또한 갖고 있는 호텔이 될 수 있다. 이 경우, 방문자가 그 장소에서 식사를 했는지 혹은 체류했는지를 아는 것이 유용할 것이다. 또한, 로컬 검색 데이터베이스들은, 부근의 사업장들의 좌표들을 구분하기 위한 완벽하게 정밀한 정보를 갖지 못할 수도 있다. 이러한 모든 것들은, 이들 환경들 하에서 로컬 검색 엔진들이 부정확한 결과들을 제공하는데 일조를 한다.
일례에서, 본 발명은 컴퓨터 프로세서를 이용하여, 사용자의 위치 히스토리로부터의 지리적 위치에 기초하여, 사용자에 의해 방문된 잠재 목적지들을 방문 가능성이 낮아지는 순서대로 정렬하는 방법을 제공한다. 본 일례에 따르면, 상기 방법은, 사용자의 위치 히스토리로부터의 지리적 위치에 대하여, 상기 지리적 위치 인근의(proximate) 목적지들에 대한 로컬 검색을 상기 컴퓨터 프로세서에 의해서 수행하는 단계를 포함하고, 상기 지리적 위치는 상기 지리적 위치에 관련된 시간을 가지며, 상기 로컬 검색은 적어도 상기 목적지에 대한 명칭과 상기 지리적 위치로부터의 거리를 제공한다. 또한, 상기 방법은, 상기 로컬 검색에 의해서 반환되는 각각의 목적지에 대해서, 방문 가능성(visit likelihood)을 상기 컴퓨터 프로세서에 의해서 계산하는 단계를 포함할 수 있으며, 상기 방문 가능성은, 상기 목적지와 상기 지리적 위치 사이의 거리 및 상기 지리적 위치에 관련된 시간과 시간에 대한 방문 가능성 분포 사이의 비교의 함수로서 계산된다. 또한, 상기 방법은, 상기 지리적 위치에 대해서 방문 가능성이 가장 높은 목적지를 선택하도록, 상기 로컬 검색에 의해서 반환되는 목적지들 중 적어도 일부를 방문 가능성이 낮아지는 순서대로 상기 컴퓨터 프로세서에 의해서 정렬하는 단계를 포함할 수 있다.
다른 일례에서, 본 발명은 컴퓨터 프로세서에 의해서, 사용자의 위치 히스토리로부터의 지리적 위치에 기초하여, 사용자에 의해 방문된 잠재 목적지들을 방문 가능성이 낮아지는 순서대로 정렬하는 방법을 개시한다. 본 일례에 따르면, 상기 방법은, 사용자의 위치 히스토리로부터의 지리적 위치에 대하여, 상기 지리적 위치 인근의(proximate) 목적지들에 대한 로컬 검색을 상기 컴퓨터 프로세서에 의해서 수행하는 단계를 포함하며, 상기 지리적 위치는 상기 지리적 위치에 관련된 시간 벡터를 가지며, 상기 시간 벡터는 복수의 방문들에 대한 시작 시간과 종료 시간을 포함하며, 상기 로컬 검색은 적어도 상기 목적지에 대한 명칭과 상기 지리적 위치로부터의 거리를 제공한다. 상기 방법은 또한, 상기 로컬 검색에 의해서 반환되는 각각의 목적지에 대해서, 방문 가능성(visit likelihood)을 상기 컴퓨터 프로세서에 의해서 계산하는 단계를 포함할 수 있으며, 상기 방문 가능성은, 상기 목적지와 상기 지리적 위치 사이의 거리 및 상기 지리적 위치에 관련된 시간 벡터와 시간에 대한 방문 가능성 분포 사이의 비교의 함수로서 계산된다. 또한, 상기 방법은 상기 지리적 위치에 대해서 방문 가능성이 가장 높은 목적지를 선택하도록, 상기 로컬 검색에 의해서 반환되는 목적지들 중 적어도 일부를 방문 가능성이 낮아지는 순서대로 정렬하는 단계를 포함할 수 있다.
추가적인 일례에서, 본 발명은 사용자의 위치 히스토리로부터의 지리적 위치에 기초하여, 사용자에 의해 방문된 잠재 목적지들을 방문 가능성이 낮아지는 순서대로 정렬하는 시스템을 개시한다. 본 일례에 따르면, 상기 시스템은, 컴퓨터 프로세서와 상기 컴퓨터 프로세서에 연결되며 그리고 명령들을 저장하는 컴퓨터 메모리를 포함하며, 상기 명령들은 상기 컴퓨터 프로세서로 하여금, 사용자의 위치 히스토리로부터의 지리적 위치에 대하여, 상기 지리적 위치 인근의(proximate) 목적지들에 대한 로컬 검색을 수행하게 하고, 상기 지리적 위치는 상기 지리적 위치에 관련된 시간을 가지며, 상기 로컬 검색은 적어도 상기 목적지에 대한 명칭과 상기 지리적 위치로부터의 거리를 제공한다. 또한, 상기 컴퓨터 메모리는 상기 프로서세로 하여금 상기 로컬 검색에 의해서 반환되는 각각의 목적지에 대해서, 방문 가능성(visit likelihood)을 계산하게 하는 명령들을 저장하며, 상기 방문 가능성은, 상기 목적지와 상기 지리적 위치 사이의 거리 및 상기 지리적 위치에 관련된 시간과 시간에 대한 방문 가능성 분포 사이의 비교의 함수로서 계산된다. 또한, 상기 컴퓨터 메모리는 상기 프로서세로 하여금 상기 지리적 위치에 대해서 방문 가능성이 가장 높은 목적지를 선택하도록, 상기 로컬 검색에 의해서 반환되는 목적지들 중 적어도 일부를 방문 가능성이 낮아지는 순서대로 정렬하게 하는 명령들을 포함한다.
다른 일례에서, 본 발명은 사용자가 방문할 것 같은 장소에 관한 정보를 사용자에게 자동으로 제공하는 방법을 개시한다. 본 일례에 따르면, 상기 방법은, 사용자의 위치 히스토리를 수신하고 그리고 상기 위치 히스토리를 메모리에 저장하는 단계, 그리고 상기 메모리에 연결된 프로세서를 이용하여, 타임슬롯의 복수의 과거 인스턴스들 중 임의의 인스턴스 동안에 사용자가 상기 장소를 방문했는지를 나타내는 방문 히스토리 데이터 및 사용자가 과거에 방문했던 장소를 상기 위치 히스토리로부터 추출하는 단계를 포함한다. 또한, 상기 방법은, 상기 프로세서를 이용하여, 상기 방문 히스토리 데이터에 기초하여 타임슬롯의 미래 인스턴스 동안 상기 장소를 사용자가 방문할 것 같은지를 판별하는 단계, 및 타임슬롯의 미래 인스턴스 동안 상기 장소를 사용자가 방문할 것 같다라고 판별된다면, 상기 프로세서를 이용하여, 타임슬롯의 상기 미래 인스턴스가 시작되기 전에 상기 장소에 관한 정보를 출력하는 단계를 포함할 수 있다.
다른 일례에서, 본 발명은 사용자가 방문할 것 같은 장소에 관한 정보를 사용자에게 자동으로 제공하는 시스템을 개시한다. 본 일례에 따르면, 상기 시스템은, 프로세서와 상기 프로세서에 의한 실행을 위해 명령들을 저장하고 있는 메모리를 포함한다. 상기 명령들은, 사용자의 위치 히스토리를 수신하고 그리고 위치 히스토리를 메모리에 저장하는 위치 히스토리 모듈, 사용자가 과거에 방문한 장소 및 타임슬롯의 복수의 과거 인스턴스들 중 임의의 인스턴스 동안 사용자가 상기 장소를 방문했는지를 나타내는 방문 히스토리 데이터를 상기 위치 히스토리로부터 추출하고, 그리고 상기 방문 히스토리 데이터에 기초하여 타임슬롯의 미래의 인스턴스 동안 사용자가 상기 장소를 방문할 것 같은지의 여부를 판별하는 방문 예측 모듈, 및 타임슬롯의 미래의 인스턴스 동안 사용자가 상기 장소를 방문할 것 같다라고 판별된다면, 상기 장소에 관한 정보를 타임슬롯의 상기 미래 인스턴스가 시작하기 전에 출력하는 출력 모듈을 포함한다.
추가적인 일례에서, 본 발명은 사용자가 방문할 것 같은 장소에 관한 정보를 사용자에게 자동으로 제공하는 모바일 디바이스를 개시한다. 상기 모바일 디바이스는 프로세서와 상기 프로세서에 의한 실행을 위해 명령들을 저장하고 있는 메모리를 포함한다. 상기 명령들은 사용자의 위치 히스토리를 수신하고 그리고 위치 히스토리를 메모리에 저장하는 위치 히스토리 모듈, 사용자가 과거에 방문한 장소 및 타임슬롯의 복수의 과거 인스턴스들 중 임의의 인스턴스 동안 사용자가 상기 장소를 방문했는지를 나타내는 방문 히스토리 데이터를 상기 위치 히스토리로부터 추출하고, 그리고 상기 방문 히스토리 데이터에 기초하여 타임슬롯의 미래의 인스턴스 동안 사용자가 상기 장소를 방문할 것 같은지의 여부를 판별하는 방문 예측 모듈, 및 타임슬롯의 미래의 인스턴스 동안 사용자가 상기 장소를 방문할 것 같다라고 판별된다면, 상기 장소에 관한 정보를 타임슬롯의 상기 미래 인스턴스가 시작하기 전에 출력하는 출력 모듈을 포함한다.
도 1은 본 발명의 양상에 따른 모바일 네트워크의 일례를 예시한다.
도 2는 사용자에 의해서 방문된 가능 목적지들을 방문 가능성에 따라 정렬(sorting)하기 위한 예시적인 기법의 순서도이다.
도 3a, 도 3b, 및 도 3c는 본 발명에서 유용하게 이용될 수 있는 시간에 대한 방문 가능성 분포들을 예시한다.
도 4는 사용자 "체크 인" 프로세스에 대한 본 발명의 어플리케이션을 예시한다.
도 5는 컴퓨터 시스템의 일례에 대한 도식화된 도면이다.
도 6은 예측 서버의 일례에 대한 도식화된 도면이다.
도 7은 위치 히스토리에 기초하여 미래의 방문을 예측하기 위한 예시적인 기법을 보여주는 순서도이다.
도 8은 사용자가 방문할 것으로 예상되는 장소들에 대한 정보를 출력하는 예시적인 기법을 보여주는 순서도이다.
도 9는 모바일 디바이스의 일례를 도시한다.
도 2는 사용자에 의해서 방문된 가능 목적지들을 방문 가능성에 따라 정렬(sorting)하기 위한 예시적인 기법의 순서도이다.
도 3a, 도 3b, 및 도 3c는 본 발명에서 유용하게 이용될 수 있는 시간에 대한 방문 가능성 분포들을 예시한다.
도 4는 사용자 "체크 인" 프로세스에 대한 본 발명의 어플리케이션을 예시한다.
도 5는 컴퓨터 시스템의 일례에 대한 도식화된 도면이다.
도 6은 예측 서버의 일례에 대한 도식화된 도면이다.
도 7은 위치 히스토리에 기초하여 미래의 방문을 예측하기 위한 예시적인 기법을 보여주는 순서도이다.
도 8은 사용자가 방문할 것으로 예상되는 장소들에 대한 정보를 출력하는 예시적인 기법을 보여주는 순서도이다.
도 9는 모바일 디바이스의 일례를 도시한다.
본 명세서에 개시된 시스템들 및 기법들은 지리적 영역 내에 존재하는 동안 사용자가 실제로 그 목적지를 방문할 가능성에 기초하여 목적지들을 순위정렬(rank)할 수 있는 능력을 제공한다. 일부 실시예들에서, 사용자의 위치 히스토리로부터의 지리적 위치는, 사용자의 지리적 위치에 가까운 사업장들 혹은 다른 목적지들을 찾아내도록 로컬 검색을 수행하는데 이용될 수 있다. 시간-기반의 방문 가능성 분포(time-based visit likelihood distribution)를 포함하는 기법이 적용되어 인근의 목적지들을 사용자가 실제로 방문할 가능성을 계산할 수 있으며, 그리고 목적지들은 이러한 가능성에 기초하여 순위정렬될 수 있는바, 따라서 가장 가능성이 높은 목적지들이 후속 어플리케이션들에서 이용될 수 있다.
이제, 본 명세서에 개시된 시스템들 및 기법들의 구조, 기능, 생산 및 사용에 관한 원리들의 전체적인 이해를 제공하도록 특정 일례들이 설명될 것이다. 이러한 일례들 중 하나 이상의 일례들이 도면에 예시된다. 해당 기술분야의 당업자라면, 본 명세서에 구체적으로 서술되고 첨부된 도면들에 예시된 시스템들 및 기법들이 비제한적인 일례들이라는 점을 능히 이해할 것이며, 본 발명의 범위는 오직 특허청구범위에 의해서 정의된다는 점을 이해할 것이다. 하나의 일례와 관련하여 예시 혹은 서술된 피처들은, 다른 일례들의 피처들과 결합될 수도 있다. 이러한 변형들 및 변경들은 본 발명의 범위 내에 포함되는 것으로 의도된다.
사용자의 위치는 사용자의 모바일 디바이스의 위치에 근거하여 추정될 수 있다. 모바일 디바이스 및 사용자의 위치 히스토리를 제공하도록, 위치 정보는 다양한 시간 간격들로 저장될 수 있다. 이러한 위치 히스토리는 모바일 디바이스 상의 캐시 혹은 다른 메모리에 저장될 수 있으며, 및/또는 모바일 네트워크를 통해 서버로 전송될 수 있으며, 원격 데이터저장소에 저장될 수 있다. 프로그램들 혹은 피처들이 사용자 정보를 수집할 수 있는지 및/또는 수집된 정보에 기초하여 사용자의 모바일 디바이스가 컨텐트 서버로부터 컨텐트를 수신할지 혹은 어떻게 수신할지를 제어할 수 있는 기회가 사용자에게 제공될 수 있다. 또한, 특정 데이터는 저장되거나 사용되기 전에 하나 이상의 방식으로 처리될 수 있고, 이에 따라, 그 사용자에 대해서 개인적으로 식별가능한 정보는 제거된다. 또한, 사용자의 지리적 위치는 위치 정보가 어디서 획득되는지에 관하여 일반화될 수 있고(예를 들어, 도시(city), ZIP 코드, 혹은 주(state) 레벨로) 일반화될 수 있고), 따라서 사용자의 특정 위치는 결정될 수 없다. 이러한 방식으로, 사용자는 컨텐트 서버에 의해서 정보가 어떻게 수집되고 사용되는지에 관한 제어권을 가질 수 있다.
도1은 위치-기반 서비스들을 제공하기 위한 모바일 네트워크(100)의 일례를 예시한다. 예시된 일례에서, 모바일 네트워크(100)는 통신 네트워크(110)와 모바일 디바이스(120)를 포함한다. 모바일 디바이스(120)는 다양한 액세스 포인트들(130)을 통하여 통신 네트워크(110)에 연결될 수 있다. 비록, 하나의 모바일 디바이스(120)와 하나의 액세스 포인트(130)가 일례로서 예시되어 있지만, 모바일 네트워크는 임의 개수의 모바일 디바이스들 및 액세스 포인트들을 포함할 수 있다.
모바일 디바이스(120)는 가령, 모바일 폰, 테블릿 컴퓨터, 랩탑 컴퓨터, 기타 등등과 같이 모바일 네트워크를 통해 데이터를 교환할 수 있는 임의의 디바이스가 될 수 있다. 또한, 모바일 디바이스(120)는 반드시 "모바일"일 필요는 없는 디바이스들(가령, 데스크탑 컴퓨터)이 될 수 있거나 혹은 이를 포함할 수 있다. 예를 들어, 통신 네트워크(110)는 GSM, TDMA, 혹은 CDMA 기술이 가능한 네트워크일 수 있으며 혹은 임의의 다른 형태의 무선 네트워크, 예컨대, IEEE 802.11, 블루투스, 혹은 다른 와이-파이 네트워크, 혹은 유선과 무선 네트워크의 조합이 될 수 있다. 액세스 포인트들(130)은 모바일 디바이스(120)와 통신 네트워크(110) 사이에 게이트웨이를 제공하는 무선 수신기 혹은 송신기 형태가 될 수 있다. 예를 들어, 액세스 포인트들은 무선 라우터들 혹은 셀룰러 네트워크 타워가 될 수 있다. 일부 실시예들에서, 모바일 디바이스(120)는 또한 GPS 위성들(140)로부터 송신된 GPS 신호를 수신할 수 있다.
예시된 일례에서, 모바일 네트워크(100)는 또한, 통신 네트워크(110)를 통해 모바일 디바이스(120)와 데이터를 교환할 수 있는 위치 서버(150)를 포함할 수 있다. 위치 서버(150)는 예를 들어, 디지털 데이터저장소(170)와 통신하는 디지털 데이터 프로세서(160)를 포함할 수 있다.
위치 서버(150)는 하나 이상의 컴퓨팅 디바이스 상에 구현될 수 있다. 이러한 컴퓨팅 디바이스는 예컨대, 하나 이상의 퍼스널 컴퓨터, 워크스테이션, 미니-컴퓨터, 클러스터화된 컴퓨터 시스템, 및/또는 임베디드 시스템을 포함할 수 있지만, 이에 한정되는 것은 아니다. 또한, 위치 서버(150) 기능의 전부 또는 일부는 모바일 디바이스(120) 그 자체에 구현될 수도 있다. 이러한 컴퓨팅 디바이스들은 또한, 명령들을 실행 및 저장하기 위한 하나 이상의 프로세서들과 메모리를 갖는 디바이스를 포함할 수 있지만, 이에 한정되는 것은 아니다. 이러한 컴퓨팅 디바이스들은 소프트웨어, 펌웨어, 및 하드웨어를 포함할 수 있다. 소프트웨어는 하나 이상의 어플리케이션들 및 운영 시스템을 포함할 수 있다. 하드웨어는 프로세서, 메모리, 및 그래픽 사용자 인터페이스 디스플레이를 포함할 수 있지만, 이에 한정되는 것은 아니다. 위치 서버(150)는 하드웨어, 소프트웨어 혹은 이들의 조합을 이용하여 구현될 수 있으며, 그리고 컴퓨터 시스템 혹은 다른 프로세싱 시스템에 구현될 수 있다.
사용자에 의해서 방문된 가능(possible) 목적지들을 방문 가능성(visit likelihood)이 감소하는 순서대로 정렬하기 위한 예시적인 기법이 도2에 예시된다. 상기 기법은 지리적 위치 데이터를 획득하는 단계를 포함할 수 있으며 혹은 이것은 기존의(pre-existing) 위치 히스토리 데이터 상에서 작동할 수 있다. 도2에 도시된 바와 같이, 상기 기법(200)은 지리적 위치 데이터가 획득되는 단계 210에서 시작한다. 예를 들어, 지리적 위치 데이터는 모바일 디바이스(가령, 도1의 모바일 디바이스 120)에 의해서 생성되는 위치 히스토리 데이터로부터 획득될 수 있으며, 그리고 액세스 포인트(130) 및 통신 네트워크(110)를 경유하여 모바일 네트워크(100)를 통해 위치 서버(150)로 통신될 수 있다. 가령, 체크-인들을 제공하는 임의 개수의 소셜 어플리케이션을 이용하여 사용자가 소정 위치에 "체크 인" 하는 경우, 위치 데이터는 위치 서버(150)에 의해서도 획득될 수 있다.
위치 데이터는, 위치를 결정하는 여러 기법들 중 임의의 것을 이용하여 모바일 디바이스에 의해서 획득될 수 있다. 예를 들어, 위치 데이터는 GPS 수신기를 이용하여 모바일 디바이스에 의해서 획득될 수 있다. 글로벌 포지셔닝 시스템(GPS)은 4개 이상의 GPS 위성들이 가로막히지 않고 보이는 지구 상의 혹은 지구 근방의 임의의 지점에서의 위치 및 시간 정보를 제공하는 우주-기반의 위성 네비게이션 시스템이다. GPS 수신기를 구비한 누구나 상기 시스템에 자유롭게 액세스할 수 있으며, 많은 스마트폰들 및 다른 모바일 디바이스들은 GPS 수신기를 포함한다. 또한, 위치 데이터는 다른 기법들 가령, 위치가 알려진 셀 타워들(cell towers)(혹은 다른 모바일 네트워크 액세스 포인트들)에 대한 근접성 혹은 모바일 디바이스와 복수의 셀 타워들 간의 삼각측량법을 이용하여 결정될 수 있다.
일부 일례들에서, 위치 데이터는 모바일 디바이스에 의해서 획득될 수 있으며 그리고 모바일 디바이스 상의 메모리에 로컬적으로(locally) 저장될 수 있다. 일부 일례들에서, 위치 데이터는 모바일 디바이스의 프로세서를 이용하여 모바일 디바이스 상에서 프로세싱될 수 있다. 다른 일례들에서, 위치 데이터는 프로세싱을 위해 위치 서버로 통신될 수 있다. 예를 들어, 위치 데이터는 획득될 수 있고 그리고 곧바로 위치 서버로 전송될 수 있다. 일부 일례들에서, 위치 데이터는 모바일 디바이스 상에 저장될 수 있으며 그리고 기결정된 간격으로 위치 서버로 전송될 수 있다. 예를 들어, 시간 기간(예컨대, 하루, 일주일, 한달 등등) 동안 획득된 위치 데이터는 모바일 디바이스 상에 저장될 수 있으며, 그리고 상기 시간 기간의 만료시에 위치 서버로 전송될 수 있다. 일부 일례들에서, 위치 데이터는 획득될 수 있고 소정 조건들(예컨대, 무선 네트워크로의 액세스)이 충족될 때까지 모바일 디바이스 상에 저장될 수 있으며, 이후 위치 서버로 통신될 수 있다. 일부 일례들에서, 위치 데이터는, 여러 날들을 커버하는 데이터가 수신될 때까지 위치 서버(예컨대, 도1의 디지털 데이터저장소 170)에 저장될 수 있다. 위치 데이터는 위치 히스토리 데이터 뿐만 아니라 현재의 위치 데이터 둘다를 포함할 수 있다.
위치 데이터는 모바일 디바이스에 의해서 다양한 간격들로 획득될 수 있다. 일실시예에서, 위치 데이터는 모바일 디바이스에 의해서 매일 동안 정기적인 간격으로 획득될 수 있다. 예를 들어, 위치 데이터는 분당 여러 번, 분당 한번, 한 시간당 한번, 2시간 마다 한번, 혹은 임의의 다른 시간 간격에서 획득될 수 있다. 본 명세서에서 설명된 기법들에서 보다 유용한 위치 히스토리를 생성하는 경우, 빈번한 위치 샘플링은, 위치 데이터 획득들 사이에서의 간격이 긴 경우보다 더 우수할 수 있다.
위치 데이터는 위도, 경도, 날짜, 시각의 형태를 취할 수 있다. 위치 데이터는 또한, 그 위치 데이터 포인트의 정확도에 대한 추정치를 나타내는 정확도 반경(accuracy radius)을 포함할 수 있다. 정확도 반경은 위치 데이터의 타입에 따라 수 미터에서 수 킬로미터인 범위를 가질 수 있다. 예를 들어, GPS 위치 데이터는 수 미터인 정확도 반경을 가질 수 있는 반면에, 셀 네트워크 타워 위치 데이터는 수 킬로미터인 정확도 반경을 가질 수 있다.
위치 데이터는 또한, 위치 서버(150)에 의해서 다양한 방식으로 프로세싱될 수 있다. 특히, 미가공(raw) 지리적 위치 데이터는 "방문된 장소(visited place)" 지리적 데이터를 생성하도록 프로세싱될 수 있다. 예를 들면, 인근의 위치 데이터 포인트들의 클러스터에 대한 중심(centroid)을 계산함으로써, 위치 데이터는 미가공 데이터를 장소(place)에 관련시키도록 프로세싱될 수 있다. 위치 데이터 포인트들의 클러스터는 물리적으로 서로 가까운 위치 데이터 포인트들의 집합으로서 정의될 수 있으며, 상기 중심은 데이터 포인트들의 클러스터의 지리적 중심으로 정의될 수 있다. 이러한 것은, 거리-기반 클러스터링이라고 지칭될 수 있다. 예를 들면, 사용자가 집에 있을 것이라고 예상되는 기간 동안 수집된 복수의 데이터 포인트들의 경우, 예컨대, 밤 동안에는, 사용자의 집 내부의 서로 다른 위치들, 예컨대, 부억, 침실, 거실, 등에 대응하는 데이터 포인트들이 존재할 수 있다. 이 기간 동안의 위치 데이터는 위도 및 경도에 있어서 작은 변동들을 보여줄 것이지만, 하나의 장소(즉, 집)에 관련될 것이다. 결과적으로, 시간이 경과해도 지리적으로 가까운 이러한 포인트들은 하나의 장소를 나타내는 클러스터로 취급될 수 있다. 또한, 위치 데이터의 부정확성에 의해 야기되는 위치 데이터에서의 변동(variability)이 존재할 수도 있으나, 이는 전술한 클러스터링에 의해서 완화될 수 있다.
또한, 다른 프로세싱은 가령, 주소 혹은 사업장 이름 등과 같은 위치에 관한 정보를 획득하기 위한 리버스 지역코드 색인들(reverse geocode lookups)을 포함할 수 있다. 예를 들면, 지오코딩(geocoding) 및 리버스 지오코딩(reverse geocoding)이라고 알려진 프로세스들이 이용되어, 지리적 좌표로부터 인간이 읽을 수 있는 주소로 위치 데이터를 변환할 수 있다. 지오코딩이라고 지칭되는 프로세스는, 인간이 읽을 수 있는 주소 예컨대, 캘리포니아 마운틴 뷰 앰피씨어터 파크웨이 1600 라는 주소를 위도 37.423021 및 경도 -122.083739 라는 지리적 좌표인 위치 데이터로 변환할 수 있는 프로세스를 지칭한다. 리버스 지오코딩은 리버스 프로세스를 지칭하는바, 즉, 지리적 좌표를 주소로 변환하는 프로세스를 지칭한다. 이러한 정보는 위치 데이터와 함께 저장될 수 있으며 혹은 클러스터를 형성하는데 이용될 수 있다(예컨대, 하나의 주소에 관련된 위치 데이터를 클러스터링함으로써). 이러한 것은 주소-기반 클러스터링이라고 지칭될 수 있다.
이러한 클러스터링에 의해서 표현되는 데이터는 위도, 경도, 시작 시간 및 종료 시간의 형태를 취할 수 있는데, 여기서 위도 및 경도는 중심에 대한 것이며, 시작 시간 및 종료 시간은 사용자가 특정 장소에 존재하였던 시간 간격을 나타낸다. 클러스터된 위치 데이터는 또한, 반경을 포함할 수도 있는데, 상기 반경은, 위치 측정의 부정확함, 클러스터 내에서의 사람의 이동, 혹은 이들 둘다를 반영할 수 있다. 또한, 상기 데이터는 사용자의 위치 히스토리 데이터 내에서 동일한 장소에 대한 다수회 방문들을 반영할 수 있다. 이러한 일례에서, 상기 데이터는 방문 시간들의 벡터를 포함할 수 있는바, 각각의 방문 시간은 (시작 시간, 종료 시간) 쌍을 포함한다.
도2에 도시된 바와 같이, 상기 기법(200)은 단계 220으로 진행하는바, 단계 220에서는 사용자의 위치 히스토리로부터의 지리적 위치에 대한 로컬 검색이 수행된다. 지리적 위치는 위치와 시간을 적어도 포함한다. 일부 일례들에서, 지리적 위치는 또한 반경, 혹은 상기 위치로부터의 거리를 포함한다. 이러한 반경은 지리적 위치를 획득하는 방법에 관한 정확도 정보로부터 유도될 수 있으며 혹은 이것은 클러스터 내에서의 위치의 변동에 기초할 수도 있다. 대안적으로는, 미리선택된 값이 이용될 수도 있다. 로컬 검색을 수행하는 목적은, 지리적 위치에 가까운 목적지들을 반환(return)하기 위한 것이다. 일반적으로, 목적지는 사업장, 주소, 혹은 사용자가 방문했었을 수도 있는 장소를 나타낼 수 있는 다른 맵핑가능한 피처들이다. 일부 실시예들에서, 상기 목적지는 사업장이다.
로컬 검색은 로컬 검색 엔진 상에서 수행될 수 있다. 로컬 검색 엔진은 특정한 지리적 영역 내의 사업장 목록들 및/또는 관련 웹 페이지들을 반환하기를 시도하는 검색 엔진이다. 로컬 검색의 경우, 사용자는 검색 질의를 입력하고 그리고 검색 질의가 수행될 부근의 지리적 영역을 특정할 수 있다. 로컬 검색 엔진은 관련 결과들, 가령, 상기 지리적 영역 내의 사업장들의 목록들 및/또는 지리적 영역에 관한 관련 웹 페이지들 등을 사용자에게 반환한다.
일부 일례들에서는, 사용자의 히스토리로부터의 지리적 위치 및 검색이 수행될 예정인 반경으로 로컬 검색 엔진을 호출함으로써 로컬 검색이 수행된다. 예를 들어, 반경(가령, 200 미터)과 함께 위도 및 경도에 대하여 로컬 검색이 수행될 수 있다. 위도 및 경도는 일반적으로 포인트이며 혹은 사용자의 위치 히스토리로부터의 클러스터의 중심이다. 전술한 바와 같이 반경이 계산될 수 있거나, 혹은 가령, 200 미터와 같이 미리 선택될 수도 있다. 위치 데이터에서의 예상되는 정확도가 100 미터인 경우, 200 미터 반경은 매우 도움이 될 수 있다. 이러한 방식으로, 로컬 검색의 일부로서 검색된 영역 내에 사용자의 실제 목적지가 존재함을 확신할 수 있다. 또한, 반환되는, 상기 영역 내의 사업장들의 개수에 대한 제한 N이 로컬 검색에 포함될 수 있다. 예를 들어, N = 10으로 특정하면, 200 미터 반경 내로부터의 결과들의 개수는 10개로 제한될 것이다.
일반적으로, 로컬 검색은 상기 반경 내의 사업장들의 이름들을 반환할 수 있다. 또한, 로컬 검색은 사업장과 지리적 위치 사이의 거리를 반환할 수도 있다(혹은 지리적 위치에 대한 그것의 상대적인 위치를 특정할 수도 있다). 또한, 로컬 검색은, 각각의 사업장이 소속된 카테고리를 반환할 수도 있다. 예를 들어, 식당은 "음식(food)" 이라는 카테고리를 반환할 수도 있는 반면에, 호텔은 "숙박(accomodation)"이라는 카테고리를 반환할 수 있다.
로컬 검색은 또한, "저명도 점수(prominence score)"를 반환할 수도 있다. 저명도 점수는, 반경 내에서 보다 저명한 혹은 보다 널리 알려진 사업장을 덜 알려진 사업장 앞에 순위정렬하는데 이용될 수 있는데, 왜냐하면, 지리적 위치 측정치에 지리적으로 가장 가까운 사업장 보다는, 더 널리 알려진 사업장을 사용자가 방문할 가능성이 높기 때문이다. 위치 저명도 점수는 사용자가 검색하고 있는 지리적 영역과는 관련없는 팩터들의 세트에 기초할 수도 있다. 일부 구현예들에서, 팩터들의 상기 세트는, 다음의 팩터들 중 하나 이상을 포함할 수 있다. (1) 권위있는 문서(authoritative document)(가령, 그 사업장에 대한 웹 페이지)와 관련된 점수, (2) 사업장을 참조한 문서들의 총 개수, (3) 사업장을 참조한 문서들의 최고 점수, (4) 사업장에 대한 리뷰들을 구비한 문서들의 개수 및 (5) 그 사업장을 언급한 정보 문서들의 개수. 다른 구현예들에서, 팩터들의 세트는 추가적인 혹은 다른 팩터들을 포함할 수 있다. 저명도 점수에 관한 추가 정보는, 발명자가 O'Clair 등이고 2010년 10월 26일자로 발부되었으며 구글회사에 양도된 "Scoring Local Search Results Based on Location Prominence" 라는 명칭의 미국등록특허(US 7,822,751)에서 찾아볼 수 있다.
다시 도2를 참조하면, 예시적인 기법(200)은 단계 230으로 진행하며, 단계 230에서는, 로컬 검색 엔진에 의해서 반환된 각각의 목적지에 대해서, 지리적 위치에 관련된 시간이, 시간에 대한 방문 가능성 분포와 비교된다. 전술한 바와 같이, 지리적 위치에 관련된 시간은, 단일 시간 및 단일 위치 리딩(single location reading)에 대한 날짜 스탬프가 될 수도 있으며, 혹은 시작 시간 및 종료 시간(예를 들어, 상기 지리적 위치가 시간에 대한 위치들의 클러스터를 나타내는 경우)이 될 수도 있으며, 혹은 사용자에 의한 동일한 장소의 복수회 방문들에 대한 시작 및 종료 시간들을 나타내는 시간 벡터가 될 수도 있다.
시간에 대한 예시적인 방문 가능성 분포들이 도3a, 도3b, 및 도3c에 예시된다. 도3a는 카테고리 "음식"에 대한 가능성 분포(310)를 제공한다. 이러한 분포에서, 7개의 로우들(rows)이 존재하며, 각각의 로우는 24개의 엔트리들을 갖는다. 상기 일례에서, 로우는 일주일의 요일들을 나타내는바, 제 1 로우는 일요일, 제 2 로우는 월요일, 기타 등등을 나타낸다. 각각의 로우는 24개의 자리수들로 구성되며, 이는 각 요일의 24 시간을 나타낸다(예컨대, 0시에서 23시까지). 숫자들 그 자체는, 일주일 중 특정한 시간 동안의, 식별된 유형의 사업장에 대한 방문 가능성을 나타낸다. 상기 숫자들은 [1, 9]의 범위에 있는데, 여기서 1은 사용자가 그 시간에 방문할 가능성 가장 적은 것을 나타내고 9는 사용자가 그 시간에 방문할 가능성이 가장 높은 것을 나타낸다. 이것들은 실제 확률들이 아니며, 따라서, 전부 합해서 1이 될 필요가 없으며 혹은 전부 합해서 다른 임의의 특정 값이 되어야할 필요도 없다.
3개의 분포들이 도면들에 제공되는데, 도3a는 카테고리 "음식(food)"에 대한 분포(310)를 예시하고, 도3b는 카테고리 "숙박"에 대한 분포(320)를 예시하고, 그리고 도3c는 카테고리 "관공서 영역(administrative_area)"에 대한 분포(330)를 예시한다. 예상되는 바와 같이, 음식 사업장에 방문할 가능성이 가장 높은 시간대들은 식사 시간들에 대응하며, 가장 높은 값들은 정오, 오후 1시, 오후 6시 및 오후 7시에 발생한다. 숙박시설에 방문할 가능성은 수면 시간들에서 가장 높다. 이러한 방식으로, 예를 들어, 사용자가 식당과 호텔 둘다를 구비한 장소를 방문하는 경우, 만일 오전 3시라면, 사용자는 호텔을 방문하고 있을 가능성이 더 높은 반면에, 만일 오후 1시라면, 사용자는 식당을 방문하고 있을 가능성이 더 높다. 이와 유사하게, 관공서 영역의 경우, 업무 시간이 아닌 시간대들에서는 방문 가능성이 매우 낮다.
시간-가능성 분포들은 임의의 특정한 형식을 갖춰야할 필요는 없다. 예를 들어, 상기 분포들은 정적일 수도 있으며, 또는 상기 분포들은 사용자들로부터의 피드백에 기초하여 변동될 수도 있다(가령, 사용자들이 모바일 및/또는 소셜 어플리케이션을 이용하여 특정 사업장에 "체크 인" 하는 경우). 또한, 상기 분포들은 예컨대, 스페인 바르셀로나에서의 현지의 식사 시간대들(locale-dinner times)에 따라 변동될 수도 있는데, 이는 아이오와주 디모인(Des Moines)과 다를 수도 있다. 또한, 상기 분포들은 테이블이 아니라 방정식(equation)으로 서술될 수도 있으며, 그리고 가능성의 변화들 사이에서 더 크거나 더 적은 간격들을 가질 수도 있다.
사업장에 대한 시작 시간 및 종료 시간들을 이용하여 상기 일례에 시간이 또한 적용될 수 있는데, 이러한 시작 시간 및 종료 시간은 로컬 검색 엔진 혹은 다른 종류의 검색 엔진에 의해서 제공될 수 있다. 예를 들어, 로컬 검색은 사업장이 오픈하는 시간들을 포함할 수 있는데, 따라서, 이들 시간들은 방문 시간들과 비교되어, 사용자가 그 사업장을 방문할 가능성을 결정하는데 도움을 줄 수 있다.
다시 도2를 참조하면, 로컬 검색(240)에 의해서 반환된 각각의 잠재적인(potential) 목적지에 대하여, 방문 가능성이 계산된다. 이러한 계산은 지리적 위치로부터 상기 목적지까지의 거리를 고려하며, 그리고 시간 경과에 대한 방문 가능성을 또한 고려하지만, 다른 팩터들을 또한 포함할 수도 있다. 일부 실시예들에서는, 가능성(likelihood)(혹은 로그(가능성))을 생성하기 위하여, 로컬 검색에 의해서 반환된 각각의 목적지를 취하고(taking) 그리고 그 각각에 대하여 다음의 단계들을 수행함으로써, 상기 계산이 수행된다.
먼저, 그 장소가 방문되었던 각각의 시간에 대하여 가능성의 시간 분포로부터 가능성을 찾아낸다. 만일, 분포를 갖는 2 이상의 카테고리에 상기 사업장이 속한다면, 가장 높은 가능성 카테고리가 이용될 수 있다. 2 이상의 방문이 존재한다면 평균 가능성이 획득될 수 있으며 그리고 사용자가 그 목적지를 방문할 전체 가능성의 일부분으로서 상기 가능성의 로그(log)가 이용될 수 있다. 지리적 위치로부터 목적지까지의 거리에 대한 로그(log)는, 인근의 장소들이 멀리 떨어진 장소들 보다 높은 점수를 획득하게 하는 방식으로, 상기 가능성과 결합될 수 있다. 또한, 저명도 점수의 로그(log)가 상기 가능성에 합산될 수 있는바 따라서, 더 유명한 목적지들은 덜 유명한 목적지들보다 높은 점수를 획득할 수 있다. 이들 점수들을 모두 합하면, 본 발명과 함께 이용될 수 있는 로그(가능성) 총계(total)가 얻어질 수 있다.
다음의 일례에서, 로그(가능성)를 계산하는데 아래의 공식이 이용될 수 있다.
로그 가능성 =
a * log (저명도 점수)
- b * log (거리)
+ c * log (사업장이 오픈했을 때의 방문들의 개수)
- d * log (사업장이 클로징했을 때의 방문들의 개수)
+ e * log (방문들에 대한 그 사업장 카테고리의 평균 가능성)
이러한 일례에서, 승수(multiplier)들 a, b, c, d, 및 e 는, 전체 가능성 점수에 대하여 각각의 요소가 미칠 수 있는 영향력의 크기를 변경시키기 위해 이용된다. 상기 일례는 또한, 시간에 대한 사업장 카테고리 가능성 분포 이외에도, 그 사업장에 대한 오픈 시간 및 클로징 시간들을 고려한다. 다른 공식들이 또한 이용되어 이들 팩터들 및 다른 팩터들을 점수로 결합하는데 이용될 수 있는바, 상기 점수는 로컬 검색에 의해서 반환되는 하나 이상의 목적지들을 사용자가 방문할 가능성을 반영한다.
*다시 도2를 참조하면, 단계 250에서, 방문 가능성이 낮아지는 순서대로 적어도 일부의 목적지들이 정렬된다. 이러한 방식으로, 사용자가 이들 목적지들을 실제로 방문한 가능성에 관하여 순위정렬된 사용자의 잠재적인 목적지들을 갖는다라는 부가된 통찰력과 함께 후속 프로세싱이 수행될 수 있다.
일부 일례들에서, 상기 정보는 사용자에게 좀더 관련성 있는 광고물들을 제공하는데 이용될 수 있거나 혹은 좀더 관련성 있는 정보와 사용자를 매칭시키는데 이용될 수 있다. 즉, 사용자의 위치 히스토리에 기초하여, 사용자가 소정 목적지들을 방문할 가능성이 있다라고 말할 수 있다면, 그 목적지에 관련된 광고물들 혹은 다른 정보는 사용자와 좀더 관련성이 있을 것이다. 전술한 가능성 순위정렬 때문에, 사용자는 더 우수한 정보를 수신할 것이다.
다른 일례에서, 임의 개수의 소셜 네트워킹 어플리케이션들을 이용하여 체크 인을 시도하는 경우, 사용자는 더 우수한 정보를 제공받을 수 있다. 이제 도4를 참조하면, 스마트폰 등과 같은 모바일 디바이스 상에서 구동되는 소셜 어플리케이션을 위한 전형적인 체크 인 스크린(400)이 예시된다. 상기 일례에서, 사용자는 캘리포니아 마운틴 뷰에 있는 목적지들에 체크 인을 시도하고 있다. 상기 일례에서 모바일 디바이스 상에서 구동되는 어플리케이션은 모바일 디바이스 상에서 측정된 사용자의 지리적 위치에 기초하여, 사용자에게 목적지들의 리스트를 제공한다. 가장 가까운 목적지(410)가 리스트의 맨 위에 있으며, 다음으로 가까운 목적지들의 리스트(420)가 그 아래에 제공된다. 체크 인하기 위하여, 사용자는 이들 목적지들 중 하나를 선택할 수 있다. 전술한 바와 같은 시스템들 및 기법들을 이용하면, 가장 가까운 목적지들(위치 결정이 항상 정확한 것이 아님을 유의해야 한다) 뿐만 아니라 사용자가 방문할 가능성이 가장 높은 목적지를 보여줄 수 있도록, 상기 리스트가 개선될 수 있다. 즉, 사용자가 방문할 가능성이 있는 목적지들이 상기 리스트의 꼭대기에 있게될 것이며, 이는 사용자가 더욱 용이하게 체크 인할 수 있게 한다. 또한, 사용자가 목적지에 정말 체크 인하는 경우, 이러한 사실은 가능성 계산에 다시 인자화될 수 있다. 예를 들어, 사용자가 동일한 지리적 위치를 미래에 방문하는 경우, 위의 공식은 "+ f * log(그 목적지에 체크 인 한 횟수)" 라는 항목을 포함할 수 있다. 이러한 방식으로, 알고리즘은 이미 방문한 장소에 사용자가 되돌아올 가능성을 인자화할 수 있다.
도5는 도1의 모바일 디바이스(120) 혹은 예측 서버(150)를 구현하는데 이용될 수 있는 컴퓨터 시스템(500)의 아키텍처의 일례를 예시한다. 비록, 예시적인 컴퓨터 시스템(500)이 도시 및 서술되었지만, 이는 일반화 및 설명의 편리함을 위한 것임을 유의해야 한다. 다른 일례들에서는, 컴퓨터 시스템(500)이 구성 및 동작 면에서 본 명세서에 도시 및 서술된 것과 다를 수도 있다.
예시된 컴퓨터 시스템(500)은 프로세서(502)를 포함하며, 프로세서(502)는 예를 들어 운영 시스템(OS), 디바이스 드라이버들, 어플리케이션 프로그램들 기타 등등을 실행함으로써 컴퓨터 시스템(500)의 동작을 제어한다. 프로세서(502)는 프로그램가능한 범용 혹은 전용 마이크로프로세서들 및/또는 다양한 독점적인 혹은 상업적으로-이용가능한 단일 혹은 멀티-프로세서 시스템들 중 임의의 것을 포함하는, 임의 유형의 마이크로프로세서 혹은 중앙처리유닛(CPU)을 포함할 수 있다. 컴퓨터 시스템(500)은 또한, 메모리(504)를 포함하는바, 메모리(504)는 프로세서(502)에 의해서 실행되는 코드 혹은 프로세서(502)에 의해서 프로세싱되는 데이터를 위한 일시적인 혹은 영구적인 저장소를 제공한다. 메모리(504)는 판독-전용 메모리(ROM), 플래시 메모리, 하나 이상의 다양한 랜덤 액세스 메모리(RAM), 및/또는 메모리 기술들의 조합을 포함할 수 있다. 컴퓨터 시스템(500)의 다양한 구성요소들은 버스 시스템(506)에 접속된다. 예시된 버스 시스템(506)은 개략적인 것으로, 이는 적절한 브리지들, 어댑터들 및/또는 제어기들에 의해서 연결된 하나 이상의 별도의 물리적 버스들, 통신 라인들/인터페이스들, 및/또는 멀티-드롭 혹은 포인트-투-포인트 연결들 중 임의의 것을 나타낸다.
컴퓨터 시스템(500)은 또한, 네트워크 인터페이스(508), 입력/출력(I/O) 인터페이스(510), 저장 디바이스(512) 및 디스플레이 제어기(514)를 포함한다. 네트워크 인터페이스(508)는 컴퓨터 시스템(500)이 네트워크를 통하여 원격 디바이스들(예컨대, 다른 컴퓨터 시스템들)과 통신할 수 있게 한다. I/O 인터페이스(510)는 하나 이상의 입력 디바이스들, 하나 이상의 출력 디바이스들, 그리고 컴퓨터 시스템(500)의 다양한 다른 구성요소들 간의 통신을 용이하게 한다. 저장 디바이스(512)는 비-휘발성 및/또는 비-일시적인 방식으로 데이터를 저장하기 위한 임의의 통상적인 매체를 포함할 수 있다. 따라서, 저장 디바이스(512)는 데이터 및/또는 명령들을 영속적인 상태로 보유할 수 있다(즉, 컴퓨터 시스템 500으로의 전원이 중단됨에도 불구하고 그 값이 보존된다). 저장 디바이스(512)는 하나 이상의 하드 디스크 드라이브들, 플래시 드라이브들, USB 드라이브들, 광학 드라이브들, 다양한 매체 디스크, 혹은 카드들, 및/또는 이들의 임의의 조합을 포함할 수 있으며 그리고 컴퓨터 시스템(500)의 다른 구성요소들에 직접 연결되거나 혹은 가령 네트워크를 통하여 원격으로 연결될 수 있다. 디스플레이 제어기(514)는 비디오 프로세서와 비디오 메모리를 포함하며, 그리고 프로세서(502)로부터 수신된 명령들에 따라 하나 이상의 디스플레이 기기 상에 디스플레이될 이미지를 생성한다.
예측 서버(150) 혹은 모바일 디바이스(120)에 의해서 수행되는 다양한 기능들은 하나 이상의 모듈들에 의해서 수행되는 것으로 논리적으로 설명될 수 있다. 이러한 모듈들은 하드웨어, 소프트웨어, 혹은 이들의 조합으로 구현될 수 있다. 또한, 소프트웨어로 구현되는 경우, 모듈들은 단일 프로그램 혹은 하나 이상의 개별 프로그램들의 일부가 될 수 있으며 그리고 다양한 콘텍스트들로 구현될 수 있다(예컨대, 운영 시스템, 디바이스 드라이버, 독립형 어플리케이션, 및/또는 이들의 조합의 일부로서). 또한, 하나 이상의 모듈들을 구현하는 소프트웨어는 실행가능한 프로그램으로서 하나 이상의 비-일시적인 컴퓨터-판독가능한 저장 매체에 저장될 수 있다. 특정 모듈에 의해서 수행되는 것으로 본 명세서에 서술된 기능들은 또한, 임의의 다른 모듈 혹은 모듈들의 조합에 의해서 수행될 수 있으며, 그리고 예측 서버(150) 혹은 모바일 디바이스(120)는 본 명세서에 도시 및 서술된 것보다 더 많거나 더 적은 모듈들을 포함할 수 있다. 도6은 예측 서버(150)의 일례에 대한 모듈들의 다이어그램이다.
도6에 도시된 바와 같이, 예측 서버(150)는 예측 서버(150)의 각각의 사용자에 대해서 위치 히스토리를 수신 및/또는 보유하도록 구성된 위치 히스토리 모듈(600)을 포함할 수 있다.
몇몇 일례들에서, 사용자의 현재 위치는 모바일 디바이스의 현재 위치 혹은 사용자가 소유한 다른 물체의 현재 위치로부터 추론될 수 있다. 도1에 도시된 일례에서, 모바일 디바이스(120)는, 동의한(opt in) 사용자들에 대해서 그리고 공개된 프라이버시 정책들에 따라, 자신의 현재 위치를 모바일 네트워크(100)를 이용하여 위치 히스토리 모듈(600)로 주기적으로 통신하도록 구성될 수 있다. 이러한 것은 분당 여러 번, 1분에 한번, 1시간에 한번, 또는 임의의 다른 정기적인 혹은 산발적인 시간 간격으로 수행될 수 있다. 모바일 디바이스(120)는 가령, GPS 신호를 프로세싱하는 것, 셀 타워, 와이-파이 핫 스팟, 혹은 위치가 알려진 다른 모바일 액세스 포인트(130)와의 근접성을 검출하는 것, 또는 모바일 디바이스(120)와 복수의 액세스 포인트들(130) 사이를 삼각측량하는 것 기타 등등과 같은 공지된 여러 기술들 중 임의의 것을 이용하여 자신의 현재 위치를 판단 혹은 추정할 수 있다.
가령 이러한 체크 인들을 제공하는 여러 소셜 어플리케이션들 중 임의의 것을 이용하여 소정 위치에 사용자가 "체크 인"하는 경우, 특정 위치에 핀(pin)을 드롭함으로써 혹은 이와 동등한 선택을 맵핑 소프트웨어를 이용하여 수행함으로써 사용자가 자신의 현재 위치를 표시하는 경우, 혹은 사용자가 자신의 현재 위치에 대한 프롬프트(prompt)에 응답하는 경우 등과 같이, 위치 히스토리 모듈(600)은 또한 다른 소스들로부터 사용자의 현재 위치를 수신할 수도 있다.
위치 히스토리 모듈(600)은 사용자에 대한 위치 데이터를 위치 히스토리(location history)에 저장하도록 구성될 수 있다. 위치 히스토리는, 사용자의 위치 데이터가 이용가능한 타임스탬프들의 테이블 및 각각의 타임스탬프에 대응하는 위치들을 포함할 수 있다. 또한, 위치 히스토리는 사용자가 특정 위치에 있었던 시간 기간을 포함할 수도 있는데, 이는 시작 시간과 종료 시간으로 특정될 수 있다. 위치들은 위도, 경도, 및 정확도 반경(accuracy radius)을 포함하는 형식으로 특정될 수 있다. 정확도 반경은 위치 데이터의 정확도에 대한 추정치를 나타낼 수 있다. 정확도 반경은 위치 데이터의 소스에 따라 수 미터에서 수 킬로미터의 범위를 가질 수 있다. 예를 들어, GPS 신호로부터 유도된 위치 데이터는 수 미터의 정확도 반경을 가질 수 있는 반면에 셀 타워들의 삼각측량으로부터 유도된 위치 데이터는 수 킬로미터의 정확도 반경을 가질 수 있다. 위치 히스토리 모듈(600)은 또한 모바일 디바이스(120)로부터 미가공 근접도(raw proximity) 혹은 다른 데이터를 수신할 수 있으며, 그리고 필요한 임의의 삼각측량 혹은 위치 계산들을 서버 상에서 수행할 수 있다.
몇몇 일례들에서, 위치 히스토리 모듈(600)은 사용자의 위치 히스토리 혹은 그 일부를, 순간 데이터 포인트들(instantaneous data points) 대신에 여러 묶음으로(in batches) 수신하도록 구성될 수 있다. 예를 들어, 사용자의 모바일 디바이스는 디바이스 및 사용자의 위치 히스토리를 만들기 위하여, 다양한 시간 간격들에서 위치 데이터를 저장하도록 구성될 수 있다. 프로그램들 혹은 피처들, 예컨대, 사용자와 관련이 있거나 혹은 사용자에 의해서 이용되는 컴퓨팅 디바이스에 의해서 실행되는 프로그램들 혹은 피처들이 사용자 정보(예컨대, 사용자의 위치에 관한 정보, 혹은 사용자의 전화번호들, 소셜 네트워크 연결들, 소셜 행위들, 혹은 행동들, 선호 사항들, 기타 등등과 같은 다른 정보)를 수집할 수 있는지를 제어할 기회 및/또는 수집된 정보에 기초하여 컨텐트 서버로부터 컨텐트를 수신할지 혹은 어떻게 수신할지를 제어할 수 있는 기회가 사용자에게 제공될 수 있다. 또한, 어떤 데이터는 저장되거나 사용되기 전에 하나 이상의 방식으로 처리될 수 있고, 이에 따라, 개인을 식별할 수 있는 그 어떤 정보도 그 사용자에 대해서 판별되지 않으며 또는, 사용자의 지리적 위치는 위치 정보가 어디서 획득되는지에 관하여 일반화될 수 있는바(예를 들어, 도시(city), ZIP 코드, 혹은 주(state) 레벨로) 일반화될 수 있고), 따라서 사용자의 특정 위치는 결정될 수 없다. 이러한 방식으로, 사용자는 컨텐트 서버에 의해서 정보가 어떻게 수집되고 사용되는지에 관한 제어권을 가질 수 있다.
위치 히스토리는 모바일 디바이스 상의 캐시 혹은 다른 메모리에 저장될 수 있으며, 그리고 기결정된 간격들에서 통신 네트워크(110)를 통해 예측 서버(150)로 전송될 수 있다. 예를 들어, 시간 기간(하루, 일주일, 한달, 등등) 동안 획득된 위치 데이터는 모바일 디바이스 상에 저장될 수 있으며, 그리고 그 시간 기간의 만료시에 예측 서버(150)로 전송될 수 있다. 일부 실시예들에서는, 소정 조건들(예컨대, 무선 네트워크로의 액세스가 이용가능해짐)이 충족될 때까지, 위치 데이터가 획득되고 그리고 모바일 디바이스 상에 저장될 수 있으며, 그리고 예측 서버(150)로 전송될 수 있다.
사용자의 위치 히스토리 내의 위치 데이터는 모바일 디바이스(120) 및/또는 예측 서버(150)에 의해서 다양한 방식으로 프로세싱될 수 있다. 예를 들어, 인근의 위치 데이터 포인트들의 클러스터에 대한 중심(centroid)을 계산함으로써, 미가공 위치 데이터와 방문한 장소를 연관시키도록 위치 데이터가 프로세싱될 수 있다. 위치 데이터 포인트들의 클러스터는 물리적으로 서로 가까운 위치 데이터 포인트들의 집합으로서 정의될 수 있으며, 상기 중심은 데이터 포인트들의 클러스터의 지리적 중심으로 정의될 수 있다. 이러한 것은, 거리-기반 클러스터링이라고 지칭될 수 있다. 예를 들면, 사용자가 집에 있는 기간 동안 수집된 복수의 데이터 포인트들의 경우, 사용자의 집 내부의 서로 다른 위치들, 예컨대, 부억, 침실, 거실, 등에 대응하는 데이터 포인트들이 존재할 수 있다. 이 기간 동안의 위치 데이터는 위도 및 경도에 있어서 작은 변동들을 보여줄 것이지만, 하나의 장소(즉, 사용자의 집)에 관련될 것이다. 결과적으로, 시간이 경과해도 지리적으로 가까운 이러한 포인트들은 하나의 장소를 나타내는 클러스터로 취급될 수 있다. 또한, 위치 데이터의 부정확성에 의해 야기되는 위치 데이터에서의 변동(variability)이 존재할 수도 있으나, 이러한 효과는 전술한 클러스터링에 의해서 제한되거나 혹은 제거될 수 있다. 이러한 클러스터링에 의해서 표시되는 데이터는, 그 각각이 위치(예컨대, 상기 중심의 위도 및 경도)에 대응하는 일련의 타임스탬프들로 특정될 수 있거나 또는, 시작 시간, 종료 시간 및 해당 위치로 특정될 수도 있다.
또한, 위치 데이터에 대한 프로세싱은, 지리적 위치에 대응하는 추가 정보(가령, 그 지리적 위치에 관련된 주소 혹은 사업장 이름 등)를 획득하는 것을 포함할 수 있다. 예를 들면, 지오코딩(geocoding) 및 리버스 지오코딩(reverse geocoding)이라고 알려진 프로세스들이 이용되어, 지리적 좌표를 인간이 읽을 수 있는 주소로(또는 인간이 읽을 수 있는 주소를 지리적 좌표로) 변환할 수 있다. 지오코딩이라고 지칭되는 프로세스에서는, 질의(query)(예컨대, 캘리포니아 마운틴 뷰 앰피씨어터 파크웨이 1600 과 같은 인간이 읽을 수 있는 주소)가 지리적 좌표인 위치 데이터로 변환될 수 있다(예컨대, 위도 37.423021 및 경도 -122.083739). 리버스 지오코딩은 리버스 프로세스를 지칭하는바, 즉, 지리적 좌표를 주소, 장소 등으로 변환하는 프로세스를 지칭한다. 이러한 정보는 사용자의 위치 히스토리 내에 위치 데이터와 함께 저장될 수 있으며 혹은 클러스터를 형성하는데 이용될 수 있다(예컨대, 하나의 주소에 관련된 위치 데이터를 클러스터링함으로써). 이러한 것은 주소-기반 클러스터링이라고 지칭될 수 있다.
따라서, 위치 히스토리 모듈(600)은 그 사용자가 과거에 방문했었던 복수의 장소들을 나타내는, 예측 서버(150)의 각각의 사용자에 대한 위치 히스토리를 수신 및/또는 유지할 수 있다.
예측 서버(150)는 또한 방문 예측 모듈(602)을 포함할 수 있는데, 방문 예측 모듈(602)은 위치 히스토리 모듈(600)에 의해서 수신 혹은 유지되는 위치 히스토리를 프로세싱하고 그리고 사용자가 미래에 방문할 것 같은 장소들을 예측하도록 구성된다. 방문 예측 모듈(602)는 이러한 예측들을 수행하기 위한 다양한 확률 모델들 및 다른 모델들을 사용할 수 있다.
일부 실시예들에서, 방문 예측 모듈(602)은 준-정기적으로(semi-regular basis)로 사용자가 과거에 방문했던 장소들에 대한 미래의 방문들을 예측하도록, 마르코프 체인(Markov chain) 모델을 채용할 수 있다. 이러한 모델은, 구분적인-정지 거동(piecewise-stationary behavior)(즉, 사용자가 오랜 시간 동안 무언가를 거의 정기적으로 수행하다가 새로운 패턴으로 거동을 갑작스럽게 변경하는 경우)에 기초한 예측들을 수행하는데 특히 효과적일 수 있는데, 왜냐하면 이 모델은 거동 변화에 후속하는 새로운 패턴들을 빠르게 알아차릴 수 있기 때문이다.
도7은 이러한 일례들에서 방문 예측 모듈(602)에 의해서 수행될 수 있는 예시적인 예측 기법을 도시한다. 본 명세서에 개시된 다양한 기법들은 순서도와 관련하여 도시될 수도 있지만, 이러한 순서도에 암시된 기술 단계들의 임의의 순서 혹은 그에 대한 설명은, 상기 기법이 상기 단계들을 그 순서대로 수행하는 것만으로 한정하는 의미로 이해되지 않아야 한다. 이와 달리, 본 명세서에 개시된 각각의 기법들의 다양한 단계들은 임의의 다양한 시퀀스들로 수행될 수 있다. 또한, 단지 일례들로서 순서도에 예시된 바와 같이, 추가 단계들을 포함하거나 혹은 예시된 것보다 더 적은 단계들을 포함하는 다양한 다른 기법들 역시도 본 발명의 범위에 속한다.
예시된 기법은 단계 700에서 시작하며, 단계 700에서 방문 예측 모듈(602)은 사용자의 위치 히스토리로부터 방문된 장소들의 리스트를 추출한다. 전술한 바와 같이, 약간 다르지만 동일한 일반 장소에 해당하는 위치 데이터 포인트들이 2개의 별개의 장소들로 간주되는 것을 방지하기 위하여, 거리-기반, 주소-기반, 혹은 다른 클러스터링 기법들이 이용될 수 있으며, 따라서 방문 장소들의 리스트에서 중복적으로 리스트화되는 것을 방지할 수 있다. 또한, 프로그램들 혹은 피처들(예컨대, 사용자와 관련이 있거나 혹은 사용자에 의해서 이용되는 컴퓨팅 디바이스에 의해서 실행되는 프로그램들 혹은 피처들)이 사용자 정보(예컨대, 사용자의 위치에 관한 정보, 혹은 사용자의 전화번호들, 소셜 네트워크 연결들, 소셜 행위들, 혹은 행동들, 선호 사항들, 기타 등등과 같은 다른 정보)를 수집할 수 있는지를 제어할 수 있는 기회 및/또는 수집된 정보에 기초하여 컨텐트 서버로부터 컨텐트를 수신할지 혹은 어떻게 수신할지를 제어할 수 있는 기회가 사용자에게 제공될 수 있다. 또한, 특정 데이터는 그것이 저장되거나 사용되기 전에 하나 이상의 방식으로 처리될 수 있고, 따라서 사용자에 대한 개인적으로 식별가능한 그 어떤 정보도 판별될 수 없으며, 혹은 사용자의 지리적 위치는 위치 정보가 어디서 획득되는지에 관하여 일반화될 수 있는바(예를 들어, 도시(city), ZIP 코드, 혹은 주(state) 레벨로) 일반화될 수 있고), 따라서 사용자의 특정 위치는 판별될 수 없다. 이러한 방식으로, 사용자는 컨텐트 서버에 의해서 정보가 어떻게 수집되고 사용되는지에 관한 제어권을 가질 수 있다.
단계 702에서, 방문 예측 모듈(602)은 단계 700에서 생성된 방문 장소들의 리스트에 있는 각각의 장소에 대하여, 복수의 방문 벡터들을 생성하며, 각각의 벡터는 특정한 타임슬롯에 대응한다. 따라서, 각각의 방문 벡터는 방문된 장소 및 타임슬롯에 대응한다. 방문 벡터는 불린(Boolean) 값들의 스트림(예컨대, 0 혹은 1, F 혹은 T, 등등)을 포함할 수 있다. 스트림 내의 각각의 요소는 벡터에 해당하는 타임슬롯의 인스턴스(instance)에 대응하며, 그리고 각각의 요소의 값은 그 요소에 의해서 표시되는 타임슬롯 인스턴스 동안 상기 벡터에 해당하는 장소에 사용자가 방문했는지의 여부를 나타낸다. 예를 들어, 방문 벡터는 "장소 A" 라는 방문된 장소 및 "화요일 오후 4시" 라는 타임슬롯에 대응하는 것으로 정의될 수 있다.
이 경우, 벡터 내의 각각의 요소는 화요일 오후 4시 타임슬롯(예컨대, 첫번째 주의 화요일 오후 4시, 두번째 주의 화요일 오후 4시, 등등)의 고유 인스턴스에 대응한다."T" 값을 갖는 요소는 그 요소에 의해서 표시되는 그 주(week)의 화요일 오후 4시에 장소 A를 사용자가 방문했음을 나타내며, 반면에 "F" 값을 갖는 요소는 그 요소에 의해서 표시되는 그 주(week)의 화요일 오후 4시에 장소 A를 사용자가 방문하지 않았음을 나타낸다.
벡터들이 생성되는 타임슬롯들의 개수는 사례들에 따라 변할 수 있다. 예를 들면, 일부 사례들에서, 방문 예측 모듈(602)은 방문된 장소들의 리스트에 있는 각각의 위치에 대하여 48개의 벡터들을 생성할 수 있으며, 각각의 벡터는 사용자의 현재 시간으로부터 다음 48시간을 나타내는 48개의 타임슬롯들 중 하나에 대응한다. 다른 일례에서, 방문 예측 모듈(602)은 방문된 장소들의 리스트에 있는 각각의 위치에 대하여 7개의 벡터들을 생성할 수 있으며, 각각의 벡터는 사용자의 현재 시간으로부터 다음 7일을 나타내는 7개의 타임슬롯들 중 하나에 대응한다.
타임슬롯들이 정의되는 방식은 일례들에 따라 다를 수 있다. 또한, 하나의 타임슬롯 정의가 이용될 수 있으며, 또는 방문 예측 모듈(602)은 복수의 서로 다른 타임슬롯 정의 체계들을 이용하여 방문 벡터들을 생성할 수 있으며 그리고 이러한 체계들 중 하나 이상에 기초하여 예측들을 수행할 수 있다. 예시적인 타임슬롯 정의 체계들은 다음을 포함한다.
제 1 타임슬롯 정의 체계에서, 타임슬롯들은 한 주의 요일 중 특정 요일 및 하루의 시간 중 특정 시간에 기초하여 정의될 수 있다(가령, 화요일 오후 4시, 토요일 아침 9시 등등). 이러한 정의에서, 각 타임슬롯의 인스턴스들은 한 주를 주기로 발생한다. 따라서, 길이 4인 예시적인 방문 벡터(즉, 타임슬롯의 4개의 인스턴스들에 대응하는 4개의 요소들을 갖는 벡터)는 다음과 같이 특정될 수 있는바, 1주차 화요일 오후 4시, 2주차 화요일 오후 4시, 3주차 화요일 오후 4시, 4주차 화요일 오후 4시로 특정될 수 있으며, 여기서 1주, 2주, 3주, 및 4주는 연속적인 주이다. 만일, 사용자가 상기 벡터에 대응하는 장소를 2주 간격으로 화요일 오후 4시에 방문했다면, 전술한 방문 벡터는 TFTF 가 될 것이다. 만일, 사용자가 화요일 오후 4시에 상기 장소를 방문한 적이 없다면, 전술한 방문 벡터는 FFFF 가 될 것이다. 만일, 사용자가 매주 화요일 오후 4시에 상기 장소를 방문했다면, 전술한 방문 벡터는 TTTT 가 될 것이다.
제 2 타임슬롯 정의 체계에서, 타임슬롯들은 하루의 특정 시간(예컨대, 오후 12시, 오후 3시 등등)에만 기초하여 정의될 수 있다. 이러한 정의에서, 각각의 타임슬롯의 인스턴스들은 매일 주기로 발생한다. 따라서, 길이 4인 예시적인 방문 벡터는 다음과 같이 특정될 수 있는바, 첫째 날(day 1) 오후 12시, 둘째 날(day 2) 오후 12시, 세째 날(day 3) 오후 12시, 네째 날(day 4) 오후 12시로 특정될 수 있으며, 여기서 첫째 날, 둘째 날, 세째 날, 네째 날은 연속적인 날들이다. 만일, 사용자가 상기 벡터에 대응하는 장소를 둘째 날 및 세째 날 오후 12시에만 방문했다면, 상기 방문 벡터는 FTTF 가 될 것이다.
제 3 타임슬롯 정의 체계에서, 타임슬롯들은 특정 평일(weekday) 및 그 평일의 특정 시간에 기초하여 정의될 수 있다. 이러한 정의에서, 각각의 타임슬롯의 인스턴스들은 평일을 주기로 발생한다. 따라서, 길이 4인 예시적인 방문 벡터는 다음과 같이 특정될 수 있는바, 평일 1의 오후 3시, 평일 2의 오후 3시, 평일 3의 오후 3시, 평일 4의 오후 3시로 특정될 수 있으며, 여기서 평일 1, 2, 3, 4 는 연속적인 평일들이다(예컨대, 월요일-화요일-수요일-목요일 또는 목요일-금요일-월요일-화요일).
제 4 타임슬롯 정의 체계에서, 하나의 타임슬롯은 이틀의 주말 중 하루 혹은 이틀 모두로 정의될 수 있다. 이러한 정의에서, 타임슬롯의 인스턴스들은 1주를 주기로 발생한다. 따라서, 길이 4인 예시적인 방문 벡터는 다음과 같이 특정될 수 있는바, 1 주(Week 1), 2 주(Week 2), 3 주(Week 3), 4 주(Week 4)로 특정될 수 있으며, 여기서 1 주, 2 주, 3 주, 4 주는 연속적인 주이다. 이러한 체계에서, 일주일은 월요일에서 시작하여 일요일에 종료하는 것으로 정의될 수 있다(특정 주의 토요일과 특정 주의 일요일이 연속적인 날들에서 발생하도록). 만일, 사용자가 상기 벡터에 대응하는 장소를 1 주(Week 1)의 토요일과 4 주(Week 4)의 일요일에 방문했지만, 2 주(Week 2) 및 3 주(Week 3)의 주말에는 방문하지 않았다면, 상기 방문 벡터는 TFFT 가 될 것이다. 이와 유사하게, 만일 사용자가 상기 장소를 1 주 내지 4 주 동안의 매주 토요일마다 방문했다면, 방문 벡터는 TTTT 가 될 것이다.
제 5 타임슬롯 정의 체계에서, 하나의 타임슬롯은 2주 주기의 4개의 주말들 중 적어도 하나로 정의될 수 있다. 이러한 정의에서, 타임슬롯의 인스턴스들은 매 2주 주기로 발생한다. 따라서, 길이 4인 예시적인 방문 벡터는 다음과 같이 특정될 수 있는바, 1 및 2 주, 3 및 4 주, 5 및 6 주, 7 및 8주로 특정될 수 있으며, 여기서 1주 내지 8주는 연속적인 주들이다. 이러한 체계에서, 일주일은 월요일에서 시작하여 일요일에 종료하는 것으로 정의될 수 있다(특정 주의 토요일과 특정 주의 일요일이 연속적인 날들에서 발생하도록). 만일, 사용자가 상기 벡터에 대응하는 장소를 1 주의 토요일과 6 주의 월요일에 방문했지만, 다른 주말들에는 방문하지 않았다면, 방문 벡터는 TFTF가 될 것이다.
다음을 유의해야 하는 바, 본 발명의 범위를 벗어남이 없이도, 임의 개수의 다른 타임슬롯 정의들이 다양한 실시예에서 이용될 수 있다.
일부 실시예들에서, 방문 예측 모듈(602)은 사용자의 위치 히스토리에 나타나는 각각의 위치에 대하여 48개의 방문 벡터들을 생성할 수 있다. 48개의 방문 벡터들은 사용자의 현재 시간에 즉시 후속하는 48시간 길이의 타임슬롯들에 해당하며, 그리고 전술한 제 1 타임슬롯 체계에 따라 정의된다. 따라서, 도7의 기법이 화요일 오후 10시에 실행된다면, 각각의 위치에 대한 방문 벡터들은 화요일 오후 11시, 수요일 오전 12시, 수요일 오전 1시, ... 목요일 오후 9시 및 목요일 오후 10시에 대해서 생성될 것이다.
단계 704에서 시작하여, 단계 702에서 생성된 방문 벡터들은 방문 예측들을 수행하도록 프로세싱될 수 있다. 다음의 설명에서, 방문 벡터 내의 연속적인 요소들의 세트는 "서브-스트림(sub-stream)"으로 지칭될 수 있다. 속성 X가 서브-스트림에 대해서 정의될 수 있는바, 그 서브-스트림 내의 포지티브(positive) 요소들의 개수로서 정의될 수 있다. 속성 Y가 서브-스트림에 대해서 정의될 수 있는바, 그 서브-스트림 내의 요소들의 전체 개수로서 정의될 수 있다. 따라서, 서브-스트림은 (X, Y) 쌍에 따라 분류될 수 있다. 동일한 의미로서, 서브-스트림은 "(X, Y) 유형이다" 혹은 "(X, Y) 서브-스트림이다" 라고 지칭될 수 있다.
방문 예측 모듈(602)은 특정 방문 벡터 상에 기능 TotalExamples(X, Y) 혹은 "T(X, Y)" 를 실행하여, (X, Y) 유형의 서브-스트림들이 그 방문 벡터 내에서 발생하는 전체 횟수를 리턴(혹은, 반환)할 수 있다. 예측을 고지하는데 이용될 수 있는 다음(subsequent) 요소에 의해서 방문 벡터 내에서 후속되는 서브-스트림들만이 TotalExamples 기능에 의해서 카운트된다. 상기 TotalExamples 기능은 3개의 입력들, 즉, 프로세싱될 방문 벡터, 카운트될 서브-스트림 유형 내의 포지티브 값들의 갯수를 나타내는 X 값, 및 카운트될 서브-스트림 유형의 길이를 나타내는 Y 값을 갖는다. 따라서, 방문 벡터 V 상에 기능 T(2, 3)을 실행하면, 3이라는 길이를 가지며, 정확히 2개의 포지티브 요소들을 포함하며, 그리고 다음 요소에 의해서 후속되는, V 내의 서브-스트림들의 전체 갯수가 리턴될 것이다.
예시적인 방문 벡터 V = TFTF를 고려하자. 이러한 방문 벡터에서, T(2, 3)은 "1" 이라는 값을 리턴할 것인바, 왜냐하면 정확히 2개의 포지티브 값들을 가지며, 길이는 3이며, 그리고 다음 요소에 의해서 후속되는 서브-스트림은 상기 벡터 내에 오직 하나(TFT 로 구성된 서브-스트림)만이 존재하기 때문이다. 이러한 서브-스트림은 상기 벡터 내에서 다음 요소 F에 의해서 후속된다.
방문 예측 모듈(602)는 상기 TotalExamples 기능에 의하여 리턴된 숫자에 의해서 나뉘어지는, 벡터 내의 가장 최근의 서브-스트림의 역사적인 발생들이 포지티브 요소에 의해서 후속되는 횟수로서 확률 몫(probability quotient)을 계산할 수 있다. 이러한 확률 몫은, 벡터에 의해서 표시되는 타임슬롯의 다음 인스턴스에서 벡터에 의해서 표시되는 장소를 사용자가 방문할 퍼센트 가능성으로 해석될 수 있다. 전술한 예시적인 벡터 V에서, 유형 (2, 3)의 서브-스트림이 포지티브 요소에 의해서 후속되는 횟수는 0 이다. 결과적으로, 유형 (2, 3)의 서브-스트림이 방문 벡터 내의 가장 최근의 서브-스트림으로서 미래에 나타나게 된다면, 방문 예측 모듈(602)은 상기 벡터에 대응하는 타임슬롯의 다음 인스턴스에서 사용자가 그 장소를 방문할 가능성이 0 퍼센트(0/1 = 0)라는 것을 알 수 있다.
동일한 방문 벡터 V에서, T(1, 2)는 "2" 라는 값을 리턴할 것인바, 왜냐하면 정확히 1개의 포지티브 값을 가지며, 길이는 2 이고, 그리고 다음 요소에 의해서 후속되는, 2개의 서브-스트림들(TF 로 구성된 첫번째 서브-스트림과 FT 로 구성된 서브-스트림)이 벡터에 존재하기 때문이다. TF 로 구성된 두번째 서브-스트림은 카운트에 포함되지 않는데, 왜냐하면, 이것은 다음 요소에 의해서 후속되지 않기 때문이다(즉, 이것은 상기 벡터 내에서 가장-최근의 서브-스트림이다). 첫번째 서브-스트림 TF 는 다음 요소 T에 의해서 후속된다. 서브-스트림 FT 는 다음 요소 F에 의해서 후속된다. 따라서, 만일, 유형 (1, 2)의 서브-스트림이 상기 방문 벡터 내에서 가장 최근의 서브-스트림으로서 미래에 나타나게 된다면, 방문 예측 모듈(602)은, 상기 벡터에 대응하는 타임슬롯의 다음 인스턴스에서 사용자가 그 장소를 방문할 가능성이 50 퍼센트(1/2 = 50)라는 것을 알 수 있다.
동일한 방문 벡터 V에서, T(1, 1)는 "2" 라는 값을 리턴할 것인바, 왜냐하면 정확히 1개의 포지티브 값을 가지며, 길이는 1 이고, 그리고 다음 요소에 의해서 후속되는, 2개의 서브-스트림들(T 로 구성된 첫번째 서브-스트림과 T 로 구성된 두번째 서브-스트림)이 벡터에 존재하기 때문이다. 2가지 경우 모두들에서, 서브-스트림 T는 다음 요소 F에 의해서 후속된다. 따라서, 만일, 유형 (1, 1)의 서브-스트림이 상기 방문 벡터 내에서 가장 최근의 서브-스트림으로서 미래에 나타나게 된다면, 방문 예측 모듈(602)은, 상기 벡터에 대응하는 타임슬롯의 다음 인스턴스에서 사용자가 그 장소를 방문할 가능성이 0 퍼센트(0/2 = 0)라는 것을 알 수 있다.
동일한 방문 벡터 V에서, T(0, 1)는 "1" 라는 값을 리턴할 것인바, 왜냐하면 정확히 0개의 포지티브 값을 가지며, 길이는 1 이고, 그리고 다음 요소에 의해서 후속되는, 오직 1개의 서브-스트림(F 로 구성된 첫번째 서브-스트림)만이 벡터에 존재하기 때문이다. F 로 구성된 두번째 서브-스트림은 카운트에 포함되지 않는데, 왜냐하면 이것은 다음 요소에 의해서 후속되지 않기 때문이다(즉, 이것은 상기 벡터 내에서 가장-최근의 서브-스트림이다). 첫번째 서브-스트림 F 는 다음 요소 T 에 의해서 후속된다. 따라서, 만일, 유형 (0, 1)의 서브-스트림이 상기 방문 벡터 내에서 가장 최근의 서브-스트림으로서 미래에 나타나게 된다면, 방문 예측 모듈(602)은, 상기 벡터에 대응하는 타임슬롯의 다음 인스턴스에서 사용자가 그 장소를 방문할 가능성이 100 퍼센트(1/1 = 1000)라는 것을 알 수 있다.
이러한 다수의 케이스들이 소정의 방문 벡터에 적용될 수 있기 때문에, 시스템은, 가장 많은 증거와 가장 많은 세목(detail)을 갖는 것에 기초하여 그것의 예측을 토대로 하기 위한 모델 혹은 모델들을 선택할 수 있다. 달리 말하면, 더 많은 증거(관심있는 서브-스트림의 더 많은 발생들)와 더 많은 세목(관심있는 서브-스트림의 더 많은 요소들) 사이에서 균형을 잡도록, 마르코프 모델의 오더(order)(Y 값)가 선택될 수 있다. 이러한 것은, Y에 대한 서로 다른 값들(즉, 서로 다른 오더의 마르코프 체인 모델들)을 이용하여 방문 벡터를 반복적으로 분석함으로써, 혹은 다른 방식으로 수행될 수 있다.
예시된 기법에서, 단계 704에서의 프로세싱을 위해 제 1 방문 벡터가 선택된다. 이후, 단계 706에서, 방문 예측 모듈(602)은 Y에 대한 상한 Y_MAX(예컨대, Y = 4)으로 시작하며 그리고 방문 벡터의 마지막 Y개의 요소들을 관심있는 서브-스트림으로서 선택한다(예컨대, Y = 4인 경우 4개의 가장 최근의 요소들). 결정 블록 708에서, Y가 0 보다 큰지가 결정된다. Y가 0 보다 크다면, 실행은 단계 710으로 진행한다. 그렇지 않다면, 0 이라는 확률이 단계 712에서 리턴되며, 그리고 실행은 결정 블록 720으로 진행한다.
단계 710에서, 방문 예측 모듈(602)은 관심있는 서브-스트림 내의 포지티브 요소들의 개수를 카운트하여, X에 대한 값을 획득한다. 따라서, 만일 Y에 대한 초기 값이 4 라면, 방문 벡터의 마지막 4개의 요소들은 FTTF 이며, X는 2 라고 결정되는바, 왜냐하면 방문 벡터의 상기 부분에는 2개의 포지티브 요소들이 존재하기 때문이다. 상기 일례에서, 관심있는 서브-스트림은 유형 (2, 4)라고 결정된다. 이후, 방문 예측 모듈(602)은 이러한 X 및 Y 값들을 이용하여 방문 벡터 상에 TotalExamples 기능을 실행하여, 유형 (X, Y)의 서브-스트림이 전체 방문 벡터 내에서 발생하는 횟수를 카운트한다. 만일, TotalExamples 기능이 0 값 혹은 매우 작은 값(예컨대, 5 미만, 3 미만, 혹은 2 미만)을 반환한다면, 방문 예측 모듈(602)은 Y에 대한 초기 값이 너무 커서, 예측의 토대가 될 수 있는 의미있는 히스토리컬한 정보를 획득할 수 없다라고 결정할 수 있다. 달리 말하면, 상기 모델은 너무나 많은 세목 및 충분치 못한 증거를 갖는다. 따라서, 결정 블록 714에서, T(X, Y)에 의해서 반환되는 값이 임계값과 비교된다. 만일, T(X, Y)가 임계값 보다 크다면, 실행은 단계 716으로 진행한다. 그렇지 않다면, Y가 단계 718에서 감소되며(예컨대, 1 이 감소한다) 그리고 실행은 결정 블록 708로 되돌아가서, 전술한 프로세스가 새로운 Y 값에 대하여 반복되게 한다.
이러한 프로세스는 결정 블록 714에서 TotalExamples 기능에 의해서 리턴되는 값이 기결정된 임계 숫자를 초과할 때까지 반복될 수 있다. 일부 실시예들에서, 임계 숫자는 3이 될 수 있다. 일단 임계 숫자가 획득되거나 혹은 초과되면, 방문 벡터에 의해서 표시되는 타임슬롯의 다음 인스턴스에서, 방문 벡터에 의해서 표시되는 장소를 사용자가 방문할 확률이 계산될 수 있다(단계 716). 방문 예측 모듈(602)은, 유형 (X, Y)의 서브-스트림들이 방문 벡터 내에서 포지티브 요소에 의해서 얼마나 여러 번 후속되었는지를 카운트함으로써, 그리고 T(X, Y)의 결과로 상기 카운트를 나눔으로써, 이러한 것을 완수할 수 있다. 이러한 비율은 관심있는 서브-스트림을 후속하는 포지티브 요소의 추정된 확률을 나타낼 수 있다. 각각의 벡터에 대하여 추정된 상기 확률은 방문 예측 모듈(602)에 의해서 메모리에 저장될 수 있다.
이후, 실행은 결정 블록 720으로 진행하며, 결정 블록 720에서는 프로세싱되지 않은 방문 벡터들이 남아있는지가 결정된다. 만일, 프로세싱되지 않은 방문 벡터들이 남아있다면, 실행은 단계 704로 되돌아가며, 단계 704에서 프로세싱되지 않은 다음 방문 벡터가 선택되며 그리고 전술한 바와 같이 프로세싱된다. 그렇지 않다면, 실행은 단계 722에서 종료한다.
다음에 후술되는 보다 상세한 일례에서는, 6개월 동안의 가치있는 위치 데이터가 사용자의 위치 히스토리에 저장된다라고 가정된다. 위치 히스토리에서는, "식당 A"(사용자가 선호하는 식당들 중 하나)라는 장소가 여러 번 등장한다. 따라서, 시스템은 식당 A에 대하여 복수의 방문 벡터들을 생성하며, 각각의 방문 벡터는 서로 다른 타임슬롯에 대응한다. 수요일 저녁 6시 타임슬롯에 대한 방문 벡터는 다음과 같다고 가정하자.
T F F F T T F T F T F T T F F F T F T F T F T F T T
위치 히스토리는 6달(혹은 26 주) 동안의 위치 데이터로 구성되기 때문에, 수요일 오후 6시 타임슬롯에 대한 26개의 인스턴스들이 존재하며 그리고 수요일 오후 6시 타임슬롯에 대한 방문 벡터는 26 이라는 길이를 갖는다. 상기 벡터 내의 포지티브 요소는 벡터 내의 그 요소의 위치에 의해서 표시되는 주(week)의 수요일 저녁 6시에 사용자가 식당 A를 방문했음을 나타낸다. 이러한 일례에서, 벡터 내의 마지막 3개의 요소들은 FTT 이다. 이는 사용자가 마지막 2개의 수요일들에는 저녁 6시에 식당 A를 방문했음을 나타내며, 3주전 수요일 저녁 6시에는 식당 A를 방문하지 않았음을 나타낸다.
초기 값 Y = 4 로 시작하여, X = 3 값이 획득된다(상기 벡터의 마지막 4개의 요소들에는 3개의 포지티브 요소가 존재한다). T(3, 4)는 "2" 라는 값을 반환하는바, 이는 다음 요소에 의해서 후속되는 오직 2개의 (3, 4) 서브-스트림들만이 상기 벡터에 존재하기 때문이다. 이러한 2개의 (3, 4) 서브-스트림들은,
TTFT (이것 다음에는 F가 후속된다), 그리고
TFTT (이것 다음에는 F가 후속된다) 이다.
T(3, 4) = 2 는, 임계값(본 일례에서는 3) 보다 작기 때문에, Y는 1 만큼 증가하여 그리고 프로세스가 반복된다.
Y = 3 이라는 새로운 값을 이용하여, X = 2 가 획득된다(상기 벡터의 마지막 3개의 요소들에는 2개의 포지티브 요소들이 존재한다). T(2, 3)는 "11" 이라는 값을 반환하는바, 이는 다음 요소에 의해서 후속되는 유형 (2, 3) 서브-스트림들이 상기 벡터에 11개 존재하기 때문이다. 이러한 11개의 (2, 3) 서브-스트림들은,
FTT (이것 다음에는 F가 후속된다),
TTF (이것 다음에는 T가 후속된다),
TFT (이것 다음에는 F가 후속된다),
TFT (이것 다음에는 F가 후속된다),
TFT (이것 다음에는 T가 후속된다),
FTT (이것 다음에는 F가 후속된다),
TTF (이것 다음에는 F가 후속된다),
TFT (이것 다음에는 F가 후속된다),
TFT (이것 다음에는 F가 후속된다),
TFT (이것 다음에는 F가 후속된다), 및
TFT (이것 다음에는 T가 후속된다) 이다.
T(2, 3) = 11 는, 임계값(상기 일례에서는 3) 보다 크기 때문에, 반환된 데이터는 예측을 형성하는데 이용될 수 있다. 도시된 바와 같이, 포지티브 요소가 후속되는 (2, 3) 서브-스트림은 3개이며, 그리고 모두 11개의 (2, 3) 서브-스트림들이 존재한다. 따라서, 방문 예측 모듈(602)은, 사용자가 다음 화요일 저녁 6시에 식당 A를 방문할 가능성은 3/11 또는 27 퍼센트라고 판별할 수 있다. 이러한 확률은 상기 방문 벡터와 관련되어 저장될 수 있다. 출력 모듈(604)에 관하여 다음에 설명되는 바와 같이, 이러한 확률 판별은 식당 A에 관한 정보(예컨대, 식당 A가 위치한 도시 혹은 타운의 날씨, 사용자의 현재 위치와 식당 A의 위치 사이의 루트에 대한 교통 상황, 기타 등등)를 사용자에게 자동적으로 제공할지를 결정하는데 이용될 수 있다.
도7의 기법에서는, 사용자가 미래에 특정 장소를 방문할지의 여부에 관한 신뢰성 있는 예측을 수행하기엔 불충분한 위치 히스토리 데이터(상기 특정 장소에 대한)가 존재하는 경우(예컨대, 그 어떤 Y 값도 서브-스트림 인스턴스들의 임계값 보다 큰 값을 반환하지 못하는 경우), 0 이라는 확률이 반환된다. 하지만, 일부 실시예들에서, 방문 예측 모듈(602)은 다른 소스들의 정보를 이용하여, 대안적으로 예측을 형성할 수 있다. 예를 들어, 특정 장소에 대한 사용자의 위치 히스토리 데이터만으로 분석을 한정하는 대신에, 방문 예측 모듈(602)은 상기 특정 장소와 유사한 유형을 갖는 모든 장소들에 대한 위치 히스토리 데이터를 이용할 수 있다. 예를 들어, 식당 A에 대한 예측을 수행하기에는 불충분한 위치 히스토리 데이터가 존재하는 경우, 방문 예측 모듈(602)은 임의의 식당들에 대한 사용자의 과거의 방문들에 기초하여 예측을 수행할 수도 있다. 혹은, 식당 A가 이탈리안 식당이라면, 방문 예측 모듈(602)은 사용자가 과거에 방문한 임의의 이탈리안 식당들에 기초하여 예측을 수행할 수 있다.
신뢰성 있는 예측을 수행하기엔 불충분한 정보가 여전히 존재하는 경우, 방문 예측 모듈(602)은 예측 서버(150)의 다른 사용자들에 대한 위치 히스토리 데이터에 기초하여 예측을 수행할 수 있다. 예를 들어, 방문 예측 모듈(602)은 특정 장소에 대한 다른 모든 사용자들에 의한 방문들에 의존할 수도 있다. 또한, 방문 예측 모듈(602)은, 현재의 사용자와 인구통계학적(demographic)으로 유사한 다른 사용자들(예컨대, 자녀가 있는 다른 사용자들, 혹은 동일한 연령의 다른 사용자들)에 의한 특정 장소의 방문들에 의존할 수도 있다. 또한, 방문 예측 모듈(602)은 동일한 유형을 갖는 장소들에 대한 다른 사용자들에 의한 방문들(예컨대, 논의가 되고 있는 특정 식당과는 일반적으로 상반되는 이탈리안 식당에 대한 방문들)에 의존할 수도 있다.
비록, 마르코프 체인 모델이 앞서 서술되었지만, 다른 기법들이, 사용자가 소정 장소를 미래에 방문할 것인지에 관한 예측을 수행하는데 이용될 수도 있다. 예를 들어, 적절한 혹은 임계 숫자의 서브-스트림 인스턴스들이 발견될 때까지 Y 를 반복적으로 결정하는 대신에, 방문 예측 모듈(602)은 베타-우선 기법(beta-prior technique)을 이용할 수도 있다.
베타 우선 기법에서, 방문 예측 모듈(602)은 Y = 1 과 Y = Y_MAX 사이의 모든 Y 값들에 기초하여 확률을 계산한다. 다음으로, 각각의 Y 값에 대하여 계산된 확률들은, 신뢰성 인자에 기초하여 조절되어 예측을 형성할 수 있다.
전술한 기법들은, 상당히 자주 방문되는(예컨대, 준-정기적으로) 장소들에 관한 예측들을 수행하는데 특히 유용할 수 있다. 덜-자주 방문되는 장소들의 경우, 방문 예측 모듈(602)은 다른 기법들을 이용할 수 있다.
예를 들어, 덜-자주 방문되는 장소들에 관한 예측들을 수행하도록, 랜덤 포레스트 모델이 방문 예측 모듈(602)에 의해서 이용될 수 있다. 특정 타임슬롯의 인스턴스들에 기초하여 방문 벡터들을 형성하는 대신에, 그 장소에 대한 각각의 방문 사이에서 경과된 시간 분량에 기초하여, 방문된 장소들에 대한 방문 벡터들이 생성될 수 있다. 달리 말하면, 방문 벡터 내의 각각의 요소는 방문을 나타내며 그리고 각 요소의 값은 방문이 발생한 이후에 경과된 시간 분량(예컨대, 수일, 수주, 수개월, 등등)을 나타낸다. 따라서, 2주 간격으로 토요일에 방문되는 장소는, (14, 28, 42, 56, 70)라는 방문 벡터를 가질 것이다. 또한, 이러한 방문 벡터는 각 요소의 값들이 연속적인 방문들 사이에서 경과된 날들을 나타내도록 특정될 수 있다. 따라서, 2주 간격으로 토요일에 방문되는 장소는 (14, 14, 14, 14, 14) 라는 방문 벡터를 가질 수 있다. 필요한 방문 횟수보다 더 적은 방문들이 존재하는 경우, 특정 길이를 갖는 방문 벡터를 획득하기 위하여, 벡터는 0들이 덧대어질 수 있다. 일례로서, 길이 5인 방문 벡터가 요구되지만 오직 2개의 방문들만이 존재하는 경우, 상기 벡터는 (0, 0, 0, 14, 28)로 특정될 수 있다.
각각의 위치에 대하여 방문 벡터를 획득한 이후에, 머신 학습 시스템이 이용되어, 특정한 시간 윈도우(예컨대, 다음 주에, 다음 10일 내에, 다음 달 내에, 등등) 내에서 사용자가 그 장소를 다시 한번 방문할지를 예측할 수 있다. 가령, WEKA 오픈 소스 머신 학습 툴킷 등과 같은, 해당 기술분야에 알려진 다양한 머신 학습 시스템들이 이러한 목적을 위해 이용될 수 있다.
첫번째로, 예스(yes) 혹은 노(no)가 후속되는 다양한 벡터들의 트레이닝 세트가 머신 학습 시스템에 제공된다. 트레이닝 벡터들은 다양한 소스들(예컨대, 사용자의 현재 위치 히스토리, 모든 사용자들에 대한 위치 히스토리, 특정 인구통계학적인 모든 사용자들에 대한 위치 히스토리, 특정 장소에 대한 위치 히스토리, 특정 유형의 장소들에 대한 위치 히스토리, 기타 등등)로부터 선택된 방문 벡터들일 수 있다.
두번째로, 질의 벡터가 머신 학습 시스템에 제공된다. 질의 벡터는 문제가 되는 장소에 대한 현재 사용자의 과거 방문들의 벡터가 될 수 있다.
머신 학습 시스템은 트레이닝 세트에서 이러한 벡터의 과거 출현들을 살펴보며 그리고 이러한 벡터가 나타난 이후에 어떤 일이 일어났는지를 살펴본다(예컨대, 다음 방문이 발생했는지, 언제 발생했는지). 머신 학습 시스템은 확률을 단순히 계산하는 것과는 달리, 일련의 결정 트리들을 뒤따르며, 그리고 사용자가 다음 주에, 다음 2주 내에, 한달 등등에 그 장소를 방문할 가능성이 있는지의 여부에 대한 예측을 출력한다.
몇몇 일례들에서는, 다른 학습 모델들이 이용될 수 있는바, 가령, 연속적인, 느리게 변화하는 거동 가정들(slowly-changing behavior assumption)에 기초하여 방문들을 모델링하는 것 등과 같은 것이 이용될 수 있다. 이러한 모델들은 증거로서 하지만 이들이 얼마나 오래 전에 발생했는지에 기초하는 감량 방문들로서, 더 긴 벡터들을 이용할 수 있다.
예측 서버(150)는 또한, 출력 모듈(604)을 포함할 수 있는바, 출력 모듈(604)은 사용자가 방문할 것이라고 예측된 장소들에 관한 정보를 출력하도록 구성될 수 있다. 예를 들어, 출력 모듈(604)은 이러한 정보를 포함하는 텍스트 메시지, 이메일, 푸시 통지(push notification)를 사용자의 모바일 디바이스로 전송할 수 있다. 또 다른 예시로서, 출력 모듈(604)은 정보를 디스플레이하도록 혹은 정보를 포함하고 있는 웹사이트로 모바일 디바이스의 웹 브라우저를 향하게 하도록 사용자의 모바일 디바이스에게 지시하는 명령을 출력할 수 있다. 출력 모듈(604)에 의해서 생성된 출력들은, 모바일 네트워크(100)를 통한 데이터 전송들로서 모바일 디바이스(120)로 전송될 수 있으며, 모바일 디바이스(120)는 상기 출력을 사용자에게 디스플레이하도록 혹은 상기 출력을 사용자에게 달리 제공하도록 구성될 수 있다. 사용자에 대한 제공은, 스탠드얼론 어플리케이션, 디바이스 홈 스크린, 네이티브 어플리케이션, 혹은 모바일 디바이스 상에서 실행되는 임의의 다른 프로그램에서 수행될 수 있다.
일부 실시예들에서, 출력 모듈(604)은, 기결정된 임계 확률과 방문 예측 모듈(602)에 의해서 각각의 방문 벡터에 대해 생성된 확률들을 비교함으로써, 정보를 출력할지를 결정할 수 있다. 예시적인 임계 확률들은, 10%, 20%, 30%, 40%, 50%, 60%, 70%, 80%, 90%, 혹은 통상적인 실험을 통해 유용하다고 판별된 임의의 다른 값을 포함할 수 있다. 벡터와 관련되어 저장된 확률이 임계값을 초과하는 경우, 그 벡터에 대응하는 장소에 관한 정보가 출력될 수 있다. 따라서, 만일 임계 확률이 20% 이고, 그리고 방문 예측 모듈(602)이 사용자가 수요일 오후 6시에 식당 A를 방문할 확률이 60% 이다 라고 판별한다면, 출력 모듈(604)은 식당 A에 관한 정보를 출력할 수 있다. 출력 타이밍은 실시예별로 달라질 수도 있지만, 일부 실시예들에서는, 관련된 타임슬롯 바로 전에 출력이 수행될 수 있다. 따라서, 전술한 일례에서는, 수요일 오후 5시에 즉, 관련된 오후 6시 타임슬롯 보다 1시간 전에 출력이 생성될 수 있다.
관련된 장소 및/또는 관련된 타임슬롯에 대한, 인터넷으로부터 이용가능한 혹은 사용자의 모바일 디바이스로부터 이용가능한 임의 유형들의 정보들이 출력 모듈(604)에 의해서 출력될 수 있다. 예를 들어, 출력 모듈(604)은 관련된 장소로 향하는 사용자 루트에 대한 교통상황(traffic) 업데이트, 관련된 장소에 대한 날씨 예보, 관련된 장소 근처에 살거나 근무하는 사용자의 지인들의 연락정보, 관련된 장소에 관한 뉴스 스토리들, 기타 등등을 출력할 수 있다.
사용자가 방문할 것이라고 예측된 장소에 관한 정보를 출력하는 예시적인 기법이 도8에 도시된다. 도8의 기법은 주기적으로 수행될 수도 있으며 또는 임의의 다양한 타이밍들에서 산발적으로 수행될 수도 있다. 일부 실시예들에서, 상기 기법은 예측 서버(150)에 의해서 밤에 실행된다.
상기 기법은 단계 800에서 시작하며, 단계 800에서 사용자의 위치 히스토리는 위치 히스토리 모듈(600)에 의해서 수신되거나 혹은 검색된다. 다음을 유의해야 하는 바, 위치 히스토리 모듈(600)은 자체적으로 사용자의 위치 히스토리를 보유할 수 있으며, 이 경우, 위치 히스토리 모듈(600)은 사용자의 위치 히스토리를 능동적으로 수신 혹은 검색할 필요가 없을 수도 있다. 다음으로, 단계 802에서, 방문 예측 모듈(602)은, 하나 이상의 타임슬롯들 각각에 대하여 사용자의 위치 히스토리 내의 방문된 각각의 장소에 대해서 향후의 방문 예측들을 수행한다. 방문 예측 모듈(602)은 각각의 장소/타임슬롯 조합에 대한 예측을 생성할 수 있는바, 예컨대, 도7의 기법과 관련하여 전술한 바와 같이, 타임슬롯 동안 사용자가 그 장소를 방문할 퍼센트 가능성의 형태로 예측을 생성할 수 있다.
단계 804에서, 상기 예측들 중 첫번째 것이 분석을 위해 선택된다. 확률 혹은 다른 정량적인 예측 값이 결정 블록(806)에서 임계값과 비교된다. 만일, 확률이 임계값을 초과한다면, 장소 및/또는 타임슬롯에 관한 정보가 출력되어 사용자에게 제시된다(단계 808). 만일, 확률이 임계값을 초과하지 않는다면, 임의의 프로세싱되지 않은 예측들이 존재하는지가 결정 블록 810에서 판별된다. 만일 그렇다면, 단계 804로 실행이 되돌아가며, 프로세싱되지 않은 다음 예측이 단계 804에서 전술한 바와 같이, 선택 및 프로세싱된다. 프로세싱되지 않은 예측들이 남아있지 않다면, 실행은 단계 812에서 종료한다.
따라서, 예시된 기법을 이용하면, 사용자가 능동적으로 혹은 수동으로(manually) 정보를 찾아낼 것을 요구하지 않고서도, 사용자가 가까운 미래에 방문할 가능성이 있는 장소에 관한 정보가 사용자에게 자동으로 제공될 수 있다.
일부 실시예들에서, 예측 서버(150)에 의해서 수행되는 것으로 예시된 기능들의 전부 또는 일부는, 모바일 디바이스(120)에 의해서 대신 수행될 수도 있다. 도9는 이러한 일례에서 이용되는 모바일 디바이스의 모듈들을 도시한 도면이다. 도9에 예시된 모바일 디바이스의 구조 및 기능은, 본 명세서에서 언급한 것들 및 해당 기술분야의 당업자에게 자명한 사항들을 제외하면, 도6의 예측 서버의 그것과 실질적으로 유사하다. 따라서, 이에 관한 세부 설명들은 간략함을 위해서 본 명세서에서 생략될 것이다.
도9에 도시된 바와 같이, 모바일 디바이스는 위치 히스토리 모듈(900)과 방문 예측 모듈(902)을 포함할 수 있는데, 이들 모듈들은, 원격 서버에 의해서 저장 혹은 생성되는 데이터가 예를 들어, 모바일 네트워크(100)를 이용한 원격 서버로의 하나 이상의 콜들(calls)을 이용하여 이들 모듈들에 의해서 액세스가능하다는 점을 제외하면, 예측 서버(150)에 관하여 전술한 것과 동일한 방식으로 기능한다. 또한, 모바일 디바이스는 전술한 출력 모듈(604)과 동일한 방식으로 동작하는 디스플레이 모듈(904)을 포함할 수 있으며, 디스플레이 모듈(904)은 사용자가 방문할 것이라 예측되는 장소들에 관한 정보를 예컨대, 모바일 디바이스의 디스플레이 스크린 상에 디스플레이하도록 구성된다.
본 발명의 일 양상에서는, 사용자에 의해서 방문된 잠재 목적지들을, 사용자의 위치 히스토리로부터의 지리적 위치에 기초하여 방문 가능성이 감소하는 순서대로 정렬시키는 기법이 제공된다. 사용자의 위치 히스토리로부터의 지리적 위치에 대해, 프로세서는 그 지리적 위치에 가까운 목적지들에 대한 로컬 검색을 수행하며 여기서, 상기 지리적 위치는 그와 관련된 시간을 가지며, 그리고 상기 검색은 적어도 상기 목적지에 대한 이름 및 지리적 위치로부터의 거리를 제공한다. 로컬 검색에 의해서 반환된 각각의 목적지에 대해서, 프로세서는 방문 가능성을 계산하는데, 여기서 방문 가능성은 적어도 목적지와 지리적 위치 사이의 거리 및 지리적 위치에 관련된 시간과 시간에 대한 방문 가능성 분포 간의 비교의 함수로서 계산된다. 또한, 프로세서는 그 지리적 위치에 대해서 가장 가능성 높은 방문 목적지를 선택하도록, 로컬 검색에 의해 반환된 목적지들 중 적어도 일부를 방문 가능성이 낮아지는 순서대로 정렬한다.
본 발명의 추가 양상에서는, 사용자에 의해서 방문된 잠재 목적지들을, 사용자의 위치 히스토리로부터의 지리적 위치에 기초하여 방문 가능성이 감소하는 순서대로 정렬시키는 기법이 제공된다. 사용자의 위치 히스토리로부터의 지리적 위치에 대해, 프로세서는 그 지리적 위치에 가까운 목적지들에 대한 로컬 검색을 수행하며 여기서, 상기 지리적 위치는 그와 관련된 시간 벡터를 가지며(시간 벡터는 복수의 방문들에 대한 시작 시간 및 종료 시간을 포함한다), 그리고 상기 검색은 적어도 상기 목적지에 대한 이름 및 지리적 위치로부터의 거리를 제공한다. 로컬 검색에 의해서 반환된 각각의 목적지에 대해서, 프로세서는 방문 가능성을 계산하는데, 여기서 방문 가능성은 적어도 목적지와 지리적 위치 사이의 거리 및 지리적 위치에 관련된 시간 벡터와 시간에 대한 방문 가능성 분포 간의 비교의 함수로서 계산된다. 또한, 프로세서는 그 지리적 위치에 대해서 가장 가능성 높은 방문 목적지를 선택하도록, 로컬 검색에 의해 반환된 목적지들 중 적어도 일부를 방문 가능성이 낮아지는 순서대로 정렬한다.
본 발명의 또 다른 양상에서는, 사용자에 의해서 방문된 잠재 목적지들을, 사용자의 위치 히스토리로부터의 지리적 위치에 기초하여 방문 가능성이 감소하는 순서대로 정렬시키는 시스템이 제공된다. 상기 시스템은 컴퓨터 프로세서 및 상기 프로세서에 연결된 메모리를 포함하며, 메모리는 상기 프로세서로 하여금 복수의 기능들을 수행하게 하는 명령들을 저장한다. 명령들은 프로세서로 하여금 그 지리적 위치에 가까운 목적지들에 대한 로컬 검색을 수행하게 하며, 여기서, 상기 지리적 위치는 그와 관련된 시간을 가지며, 그리고 상기 검색은 적어도 상기 목적지에 대한 이름 및 지리적 위치로부터의 거리를 제공한다. 또한, 명령들은 프로세서로 하여금 로컬 검색에 의해서 반환된 각각의 목적지에 대해서, 방문 가능성을 계산하게 하는데, 여기서 방문 가능성은 적어도 목적지와 지리적 위치 사이의 거리 및 지리적 위치에 관련된 시간과 시간에 대한 방문 가능성 분포 간의 비교의 함수로서 계산된다. 또한, 상기 명령들은 프로세서로 하여금 로컬 검색에 의해 반환된 목적지들 중 적어도 일부를 방문 가능성이 낮아지는 순서대로 정렬하게 하여, 그 지리적 위치에 대해서 가장 가능성 높은 방문 목적지가 선택될 수 있게 한다.
전술한 양상들의 일례에서, 지리적 위치는, 방문 위치, 방문 시작 시간, 및 방문 종료 시간을 갖는 방문(a visit)을 나타내는, 인근의 지리적 위치 데이터 포인트들의 클러스터를 나타낼 수 있다. 또한, 지리적 위치는, 그 각각의 방문이 방문 시작 시간 및 방문 종료 시간을 갖는 복수의 방문들을 나타낼 수 있으며 그리고 특정 방문에 대한 방문 가능성을 계산하는 것은, 각각의 방문 시작 시간과 방문 종료 시간을 비교하는 것을 포함한다.
다른 일례들에서, 방문된 목적지의 선택을 위해, 목적지들의 정렬된 리스트가 사용자에게 제공될 수 있다.
다른 일례들에서, 로컬 검색은 각각의 목적지에 대한 저명도 점수를 반환할 수도 있으며, 방문 가능성을 계산하는 것은 또한, 저명도 점수의 함수로서 계산될 수 있다. 로컬 검색은 또한 영업 시간 데이터를 반환할 수 있으며 따라서, 방문 가능성을 계산하는 것은 또한, 지리적 위치에 관련된 시간에서 목적지가 열었는지 혹은 닫았는지에 대한 함수로서 계산될 수 있다. 지리적 위치가 복수의 방문 시간들을 포함하는 경우, 방문 가능성은 또한, 각각의 방문 시간에서 목적지가 열었는지 혹은 닫았는지에 대한 함수로서 계산될 수 있다.
다른 일례에서, 목적지들은 복수의 목적지 카테고리들 중에서 선택된 적어도 하나의 카테고리에 관련될 수 있는바, 각각의 목적지 카테고리는 그 목적지 카데고리에 관련된 목적지들에 적용되는, 시간에 대한 방문 가능성 분포를 갖는다. 시간에 대한 방문 가능성 분포들은 또한, 시각(time of day)에 기초하여 방문 가능성을 나타낼 수 있다. 또한, 시간에 대한 방문 가능성 분포들은 요일(day of week)에 기초하여 방문 가능성을 나타낼 수도 있다.
다른 양상에서, 사용자가 방문할 것 같은 장소에 관한 정보를 사용자에게 자동으로 제공하는 기법이 제공된다. 상기 기법은 사용자의 위치 히스토리를 수신하고 그리고 위치 히스토리를 메모리에 저장하는 것을 포함한다. 상기 기법은 또한, 메모리에 접속된 프로세서를 이용하여, 타임슬롯의 복수의 과거 인스턴스들 중 임의의 인스턴스 동안에 사용자가 상기 장소를 방문했는지를 나타내는 방문 히스토리 데이터 및 사용자가 과거에 방문했던 장소를 위치 히스토리로부터 추출하는 것을 포함한다. 상기 기법은 또한, 프로세서를 이용하여, 방문 히스토리 데이터에 기초하여 타임슬롯의 미래 인스턴스 동안 상기 장소를 사용자가 방문할지를 판별하는 것을 포함하며, 그리고 타임슬롯의 미래 인스턴스 동안 상기 장소를 사용자가 방문할 것 같다고 판별된다면, 프로세서를 이용하여, 타임슬롯의 상기 미래 인스턴스가 시작되기 전에 상기 장소에 관한 정보를 출력하는 것을 포함한다.
타임슬롯은 특정한 평일 및 그 날의 특정 시간에 대응할 수 있다. 상기 기법은 복수의 타임슬롯들 각각의 미래 인스턴스들 동안 사용자가 상기 장소를 방문할 것 같은지를 판별하는 것을 포함할 수 있으며, 상기 미래 인스턴스들은 사용자의 현재 시간에 즉시 후속되는 시간-길이(hour-long) 타임슬롯들에 대응한다. 타임슬롯은 특정 시각에만 대응할 수도 있다. 타임슬롯은 특정 주말 및 주말의 특정 시간에 대응할 수도 있다. 타임슬롯은 1주 주기로 2일의 주말에 대응할 수도 있다. 타임슬롯은 2주 주기로 4일의 주말에 대응할 수도 있다.
상기 기법은 복수의 요소들을 포함하는 방문 벡터를 메모리에 저장하는 것을 포함할 수 있는바, 각각의 요소는 타임슬롯의 과거 인스턴스에 대응하며 그리고 각각의 요소는 타임슬롯의 과거 인스턴스 동안에 사용자가 그 장소를 방문했음을 나타내는 값 혹은 타임슬롯의 과거 인스턴스 동안에 사용자가 그 장소를 방문하지 않았음을 나타내는 값 중 어느 하나를 갖는다. 방문 벡터는 불린(Boolean) 값들의 스트림을 포함할 수 있다. 상기 기법은 방문 벡터 내의 Y개의 가장-최근의 요소들을 관심있는 서브-스트림으로서 선택하고, 그리고 관심있는 서브-스트림에 있는 포지티브 요소들 개수 X를 카운트하는 것을 포함할 수 있다.
상기 기법은 함수 T(X, Y)를 실행하는 것을 포함할 수 있는 바, 함수 T(X, Y)는 방문 벡터, Y 값, 및 X 값을 입력으로 수신하고 그리고 길이 Y와 정확히 X 개의 포지티브 요소들을 가지며 그리고 다음 요소에 의해서 후속되는, 방문 벡터 내의 서브-스트림들의 개수를 반환한다. 상기 기법은, 만일, 함수 T(X, Y)에 의해서 반환되는 상기 개수가 기결정된 발생 임계값보다 작다면, Y가 0이 되거나 혹은 함수 T(X, Y)가 상기 기결정된 발생 임계값 이상인 개수를 반환하게 하는 Y 값이 얻어질 때까지, Y를 1 만큼 감소시키고 그리고 상기 선택, 카운팅, 및 함수 실행을 반복하는 것을 포함한다. 상기 기법은, 방문 벡터 내의 포지티브 요소가 후속되는 유형 (X, Y)의 서브-스트림들의 개수를 함수 T(X, Y)에 의해 반환된 값으로 나눈 값을 미래 방문 확률로서 계산하는 것을 포함할 수 있다. 상기 미래 방문 확률이 기결정된 확률 임계값을 초과한다면, 타임슬롯의 미래 인스턴스 동안 사용자가 그 장소를 방문할 것 같다라고 판별될 수 있다.
상기 기법은, 프로세서를 이용하여, 타임슬롯의 미래 인스턴스 동안 사용자가 그 장소를 방문할 것 같은지의 여부를, 그 장소와 동일한 유형인 다른 장소들에 대한 사용자의 과거 방문들, 그 장소에 대한 사용자와 공통인 인구통계학적 특성(demographic)을 갖는 다른 사용자들에 의한 방문들, 그 장소에 대한 다른 모든 사용자들의 방문들, 그 장소와 동일한 유형인 다른 장소들에 대한 다른 모든 사용자들의 방문들, 및 그 장소와 동일한 유형인 다른 장소들에 대한 사용자와 공통인 인구통계학적 특성을 갖는 다른 사용자들에 의한 방문들 중 적어도 하나에 기초하여, 판별하는 단계를 포함할 수 있다. 상기 기법은 마르코프 체인 모델을 이용하여, 타임슬롯의 미래 인스턴스 동안 사용자가 그 장소를 방문할 것 같은지의 여부를 방문 히스토리 데이터에 기초하여 판별하는 단계를 포함할 수 있다. 상기 기법은 베타-우선 기법(beta-prior technique)을 이용하여, 타임슬롯의 미래 인스턴스 동안 사용자가 그 장소를 방문할 것 같은지의 여부를 방문 히스토리 데이터에 기초하여 판별하는 단계를 포함할 수 있다. 상기 기법은 랜덤 포레스트 모델(random forest model)을 이용하여, 타임슬롯의 미래 인스턴스 동안 사용자가 그 장소를 방문할 것 같은지의 여부를 방문 히스토리 데이터에 기초하여 판별하는 단계를 포함할 수 있다. 랜덤 포레스트 모델은 머신 학습 시스템을 이용하여 실행될 수 있다. 상기 기법은 복수의 요소들을 포함하는 방문 벡터를 머신 학습 시스템에 대한 입력으로서 제공하는 단계를 포함할 수 있는바, 각각의 요소는 그 장소에 대한 과거 방문에 대응하고 그리고 그 과거 방문 이후에 경과된 날짜를 나타내는 값을 갖는다. 상기 기법은 복수의 요소들을 포함하는 방문 벡터를 머신 학습 시스템에 대한 입력으로서 제공하는 단계를 포함할 수 있는바, 각각의 요소는 그 장소에 대한 과거 방문에 대응하고 그리고 그 장소에 대한 직전의 과거 방문(immediately-preceding past visit) 이후에 경과된 날짜를 나타내는 값을 갖는다.
상기 기법은, 상기 정보를 포함하는 텍스트 메시지를 모바일 디바이스의 사용자에게 전송하는 것, 상기 정보를 포함하는 푸시 통지를 모바일 디바이스의 사용자에게 전송하는 것, 상기 정보를 포함하는 이메일을 모바일 디바이스의 사용자에게 전송하는 것, 상기 정보를 포함하는 데이터 트랜스미션을 모바일 디바이스의 사용자에게 전송하는 것, 디스플레이 스크린 상에 상기 정보를 디스플레이하라는 명령을 모바일 디바이스의 사용자에게 전송하는 것, 및 상기 정보를 포함하는 웹 사이트로 웹 브라우저를 네비게이팅하라는 명령을 모바일 디바이스의 사용자에게 전송하는 것 중 적어도 하나를 포함할 수 있다. 상기 정보는 그 장소에 관련된 날씨 예보, 그 장소에 관련된 교통상황 업데이트, 그 장소에 관련된 뉴스 스토리, 그 장소로의 경로안내, 및 그 장소 부근에서 살고 있거나 일하고 있는 지인들의 연락처들 중 적어도 하나를 포함할 수 있다.
다른 양상에서는, 사용자가 방문할 것 같은 장소에 관한 정보를 사용자에게 자동으로 제공하는 시스템이 제공된다. 상기 시스템은 프로세서와 상기 프로세서에 의한 실행을 위해 명령들을 저장하고 있는 메모리를 포함한다. 명령들은 사용자의 위치 히스토리를 수신하고 그리고 위치 히스토리를 메모리에 저장하는 위치 히스토리 모듈을 포함한다. 명령들은 또한 방문 예측 모듈을 포함하는바, 방문 예측 모듈은, 사용자가 과거에 방문한 장소 및 타임슬롯의 복수의 과거 인스턴스들 중 임의의 인스턴스 동안 사용자가 상기 장소를 방문했는지를 나타내는 방문 히스토리 데이터를 위치 히스토리로부터 추출하고, 그리고 방문 히스토리 데이터에 기초하여 타임슬롯의 미래의 인스턴스 동안 사용자가 상기 장소를 방문할 것 같은지의 여부를 판별한다. 상기 명령은 또한, 출력 모듈을 포함하는바, 출력 모듈은 타임슬롯의 미래의 인스턴스 동안 사용자가 상기 장소를 방문할 것 같다라고 판별된다면, 상기 장소에 관한 정보를 타임슬롯의 상기 미래 인스턴스가 시작하기 전에 출력한다.
다른 양상에서, 사용자가 방문할 것 같은 장소에 관한 정보를 사용자에게 자동으로 제공하는 모바일 디바이스가 제공된다. 모바일 디바이스는 프로세서와 상기 프로세서에 의한 실행을 위해 명령들을 저장하고 있는 메모리를 포함한다. 명령들은 사용자의 위치 히스토리를 수신하고 그리고 위치 히스토리를 메모리에 저장하는 위치 히스토리 모듈을 포함한다. 명령들은 또한 방문 예측 모듈을 포함하는바, 방문 예측 모듈은, 사용자가 과거에 방문한 장소 및 타임슬롯의 복수의 과거 인스턴스들 중 임의의 인스턴스 동안 사용자가 상기 장소를 방문했는지를 나타내는 방문 히스토리 데이터를 위치 히스토리로부터 추출하고, 그리고 방문 히스토리 데이터에 기초하여 타임슬롯의 미래의 인스턴스 동안 사용자가 상기 장소를 방문할 것 같은지의 여부를 판별한다. 상기 명령은 또한, 출력 모듈을 포함하는바, 출력 모듈은 타임슬롯의 미래의 인스턴스 동안 사용자가 상기 장소를 방문할 것 같다라고 판별된다면, 상기 장소에 관한 정보를 타임슬롯의 상기 미래 인스턴스가 시작하기 전에 출력한다.
일부 실시예들에서, 본 개시 내용은, 도1을 참조하여 설명된 하나 이상의 디바이스들 예컨대, 모바일 디바이스(120) 및/또는 위치 서버(150)에 의해서 구현될 수 있는 기법들을 서술한다. 전술한 바와 같이, 일부 실시예들에서, 위치 서버(150)의 기능은 모바일 디바이스(120)에 의해서 구현될 수 있다. 모바일 디바이스(120)와 위치 서버(150)는 통상적으로 컴퓨팅 디바이스로 지칭될 수 있다.
일실시예에서, 본 발명의 기법은 사용자와 관련된 위치 히스토리로부터의 지리적 위치에 가까운 복수의 목적지들에 관련된 정보를 컴퓨팅 디바이스(예컨대, 위치 서버 150 및/또는 모바일 디바이스 120)에 의해서 판별하는 단계를 포함하며, 상기 지리적 위치는 시간에 관련되며, 복수의 목적지들에 관련된 정보는, 상기 복수의 목적지들 중 각각의 목적지에 대해서, 각 목적지의 명칭과 각각의 목적지와 상기 지리적 위치 사이의 각각의 거리를 적어도 포함한다. 또한, 상기 기법은, 상기 복수의 목적지들 중 각각의 목적지에 대해서, 컴퓨팅 시스템(예컨대, 위치 서버 150 및/또는 모바일 디바이스)에 의해서, 1) 각각의 목적지와 지리적 위치 사이의 각각의 거리 및 2) 상기 지리적 위치에 관련된 시간과 시간에 대한 방문 가능성 분포 사이의 비교에 적어도 일부 기초하여, 각각의 목적지에 관련된 방문 가능성을 판별하는 단계를 포함한다. 또한, 상기 기법은, 컴퓨팅 시스템(예컨대, 위치 서버 150 및/또는 모바일 디바이스)에 의해서 그리고 각각의 목적지에 관련된 방문 가능성에 적어도 일부 기초하여, 복수의 목적지들 중 일부를 정렬시키는 단계 및 컴퓨팅 시스템(예컨대, 위치 서버 150 및/또는 모바일 디바이스)에 의해서 상기 복수의 목적지들 중 상기 일부에 대한 표시를 출력하는 단계를 포함한다.
일부 실시예들에서, 상기 컴퓨팅 시스템(예컨대, 위치 서버 150 및/또는 모바일 디바이스)에 의해서 상기 복수의 목적지들 중 상기 일부에 대한 표시를 출력하는 단계는, 상기 컴퓨팅 시스템에 의해서, 모바일 컴퓨팅 디바이스로, 상기 복수의 목적지들 중 상기 일부에 대한 표시를 출력하는 단계를 포함하는바, 이는 상기 모바일 컴퓨팅 디바이스에 의한 디스플레이를 위해 상기 표시가 출력되기 위함이다.
일부 실시예들에서, 지리적 위치는 상기 지리적 위치에 대한 방문을 나타내는, 인근의 지리적 위치 데이터 포인트들의 클러스터를 나타내며, 이러한 방문은 방문 시작 시간과 방문 종료 시간을 갖는다.
일부 실시예들에서, 지리적 위치는 상기 지리적 위치에 대한 복수의 방문들을 나타내며, 복수의 방문들의 각각의 방문은 각각의 방문 시작 시간 및 각각의 방문 종료 시간을 가지며, 그리고 각각의 목적지에 대한 방문 가능성을 판별하는 단계는, 각각의 방문 시작 시간과 각각의 방문 종료 시간을 시간에 대한 방문 가능성 분포와 비교하는 단계를 포함한다.
일부 실시예들에서, 지리적 위치에 가까운 복수의 목적지들과 관련된 정보는, 복수의 목적지들 중 각각의 목적지에 대한 각각의 저명도 점수를 포함하며 그리고 각각의 목적지에 대한 방문 가능성을 판별하는 단계는, 각각의 목적지와 지리적 위치 사이의 각각의 거리, 시간에 대한 방문 가능성 분포와 지리적 위치에 관련된 각각의 시간과의 비교, 및 각각의 저명도 점수에 적어도 일부 기초하여, 각각의 목적지에 대한 방문 가능성을 판별하는 단계를 포함한다.
일부 실시예들에서, 지리적 위치에 가까운 복수의 목적지들과 관련된 정보는, 복수의 목적지들 중 각각의 목적지에 대한 영업 시간 데이터를 포함하며 그리고 각각의 목적지에 대한 방문 가능성을 판별하는 단계는, 각각의 목적지와 지리적 위치 사이의 각각의 거리, 시간에 대한 방문 가능성 분포와 지리적 위치에 관련된 각각의 시간과의 비교, 및 지리적 위치에 관련된 시간에서 상기 목적지가 열었는지 혹은 닫았는지의 여부에 적어도 일부 기초하여, 각각의 목적지에 대한 방문 가능성을 판별하는 단계를 포함한다.
일부 실시예들에서, 복수의 목적지들 중 각각의 목적지는 복수의 목적지 카테고리들 중에서 선택된 적어도 하나의 카테고리에 관련되며, 각각의 목적지 카테고리는 시간에 대한 방문 가능성 분포를 가지며, 상기 시간에 대한 방문 가능성 분포는 각각의 목적지 카데고리에 관련된 각각의 목적지들에 적용된다.
일부 실시예들에서, 시간에 대한 방문 가능성 분포는 하루 중 시각(time of day)에 기초하는 방문 가능성을 나타낸다.
일부 실시예들에서, 명령들을 저장하는 컴퓨터 판독가능한 저장 디바이스가 개시되며, 상기 명령들은, 실행되는 때에, 컴퓨팅 디바이스(예컨대, 위치 서버 150 및/또는 모바일 디바이스)의 적어도 하나의 프로세서로 하여금: 사용자와 관련된 위치 히스토리로부터의 복수의 인근의 지리적 위치 데이터 포인트들에 적어도 일부 기초하여, 방문에 대한 지리적 위치를 판별하게 하는바, 상기 방문은 방문 시작 시간과 방문 종료 시간을 갖는다. 또한, 상기 명령들은, 실행되는 때에, 적어도 하나의 프로세서로 하여금 상기 지리적 위치에 가까운 복수의 목적지들에 관련된 정보를 판별하게 할 수 있으며, 상기 복수의 목적지들에 관련된 정보는, 복수의 목적지들의 각각의 목적지에 대해서, 목적지의 명칭 및 각각의 목적지와 지리적 위치 사이의 거리를 적어도 포함할 수 있다. 또한, 상기 명령들은, 실행되는 때에, 적어도 하나의 프로세서로 하여금, 복수의 목적지들의 각각의 목적지에 대해서, 1) 각각의 목적지와 지리적 위치 사이의 거리, 2) 시간에 대한 방문 가능성 분포와 방문 시작 시간 사이의 비교, 및 3) 시간에 대한 방문 가능성 분포와 방문 종료 시간 사이의 비교에 적어도 일부 기초하여, 각각의 목적지에 대한 각각의 방문 가능성을 판별하게 할 수 있다. 또한, 상기 명령들은, 실행되는 때에, 적어도 하나의 프로세서로 하여금, 각각의 목적지에 관련된 각각의 방문 가능성에 적어도 일부 기초하여, 복수의 목적지들 중 일부를 정렬시키게 할 수 있으며 그리고 복수의 목적지들 중 상기 일부에 대한 표시를 출력하게 할 수 있다.
일부 실시예들에서, 실행되는 때에 컴퓨팅 디바이스의 적어도 하나의 프로세서로 하여금 복수의 목적지들 중 상기 일부에 대한 표시를 출력하게 하는 명령들은, 실행되는 때에 컴퓨팅 디바이스의 적어도 하나의 프로세서로 하여금 복수의 목적지들 중 상기 일부에 대한 표시를 모바일 컴퓨팅 디바이스로 출력하게 하는 명령들을 포함한다(상기 표시가 출력되어 모바일 컴퓨팅 디바이스에 의해 디스플레이되도록).
일부 실시예들에서, 지리적 위치는, 상기 지리적 위치에 대한 복수의 방문들을 나타내고, 복수의 방문들 중 각각의 방문은 각각의 방문 시작 시간 및 각각의 방문 종료 시간을 가지며, 상기 명령들은 실행되는 때에, 컴퓨팅 디바이스의 적어도 하나의 프로세서로 하여금, 각각의 방문 시작 시간 및 각각의 방문 종료 시간을 시간에 대한 방문 가능성 분포와 비교하게 함으로써, 복수의 목적지들의 각각의 목적지에 대한 방문 가능성을 판별하게 한다.
일부 실시예들에서, 지리적 위치에 가까운 복수의 목적지들과 관련된 정보는, 복수의 목적지들 중 각각의 목적지에 대한 저명도 점수를 포함하며 그리고 상기 명령들은 실행되는 때에 컴퓨팅 디바이스의 적어도 하나의 프로세서로 하여금, 각각의 목적지와 지리적 위치 사이의 각각의 거리, 시간에 대한 방문 가능성 분포와 방문 시작 시간과의 비교, 시간에 대한 방문 가능성 분포와 방문 종료 시간과의 비교, 및 각각의 저명도 점수에 적어도 일부 기초하여, 각각의 목적지에 대한 방문 가능성을 판별하게 한다.
일부 실시예들에서, 지리적 위치에 가까운 복수의 목적지들과 관련된 정보는, 복수의 목적지들 중 각각의 목적지에 대한 영업 시간 데이터를 포함하며 그리고 상기 명령들은 실행되는 때에 컴퓨팅 디바이스의 적어도 하나의 프로세서로 하여금, 각각의 목적지와 지리적 위치 사이의 각각의 거리, 시간에 대한 방문 가능성 분포와 방문 시작 시간과의 비교, 시간에 대한 방문 가능성 분포와 방문 종료 시간과의 비교, 및 지리적 위치에 관련된 시간에서 상기 목적지가 열었는지 혹은 닫혔는지의 여부에 적어도 일부 기초하여, 각각의 목적지에 대한 방문 가능성을 판별하게 한다.
일부 실시예들에서, 복수의 목적지들의 각각의 목적지는 복수의 목적지 카테고리들 중에서 선택된 적어도 하나의 목적지 카테고리에 관련되며, 각각의 목적지 카테고리는 시간에 대한 방문 가능성 분포를 갖고, 이는 각각의 목적지 카테고리에 관련된 각각의 목적지들에 적용된다.
일부 실시예들에서, 시간에 대한 방문 가능성 분포는 하루 중 시각(time of day)에 기초하는 방문 가능성을 나타낸다.
일부 실시예들에서, 본 발명의 기법은 사용자와 관련된 위치 히스토리를 컴퓨팅 디바이스(예컨대, 위치 서버 150 및/또는 모바일 디바이스)에 의해서 수신하는 단계를 포함한다. 또한, 상기 기법은 컴퓨팅 디바이스(예컨대, 위치 서버 150 및/또는 모바일 디바이스)에 의해서, 위치 히스토리에 적어도 일부 기초하여, 사용자가 과거에 방문한 장소 및 타임슬롯의 복수의 과거 인스턴스들 중 임의의 인스턴스 동안 사용자가 상기 장소를 방문했는지의 여부를 나타내는 방문 히스토리 데이터를 판별하는 단계를 포함한다. 또한, 상기 기법은, 컴퓨팅 디바이스(예컨대, 위치 서버 150 및/또는 모바일 디바이스)에 의해서, 방문 히스토리 데이터에 적어도 일부 기초하여, 타임슬롯의 미래 인스턴스 동안 사용자가 상기 장소를 방문할 것 같은지를 판별하는 단계를 포함할 수 있다. 또한, 상기 기법은, 타임슬롯의 미래 인스턴스 동안 사용자가 상기 장소를 방문할 것 같다라고 판별하는 것에 응답하여, 컴퓨팅 디바이스(예컨대, 위치 서버 150 및/또는 모바일 디바이스)에 의해서, 타임슬롯의 미래 인스턴스가 시작하기 전에 상기 장소에 관한 정보를 출력하는 단계를 포함할 수 있다.
일부 실시예들에서, 타임슬롯의 미래 인스턴스 동안 사용자가 상기 장소를 방문할 것 같다라고 판별하는 단계는, 타임슬롯의 복수의 미래 인스턴스들의 각각의 타임슬롯 동안 사용자가 상기 장소를 방문할 것 같다라고 판별하는 단계를 포함한다.
일부 실시예들에서, 사용자가 과거에 방문한 장소 및 타임슬롯의 복수의 과거 인스턴스들 중 임의의 인스턴스 동안 사용자가 상기 장소를 방문했는지의 여부를 나타내는 방문 히스토리 데이터를 판별하는 단계는, 복수의 벡터 요소들을 포함하는 방문 벡터를 판별하는 단계를 포함하며, 각각의 벡터 요소는 타임슬롯의 각각의 과거 인스턴스에 대응하고 그리고 타임슬롯의 각각의 과거 인스턴스 동안 사용자가 상기 장소를 방문했음을 나타내는 값 혹은 타임슬롯의 각각의 과거 인스턴스 동안 사용자가 상기 장소를 방문하지 않았음을 나타내는 값을 갖는다.
일부 실시예들에서, 사용자가 과거에 방문한 장소 및 타임슬롯의 복수의 과거 인스턴스들 중 임의의 인스턴스 동안 사용자가 상기 장소를 방문했는지의 여부를 나타내는 방문 히스토리 데이터를 판별하는 단계는, 방문 벡터, Y 값, 및 X 값을 입력들로 수신하는 함수 T(X, Y)를 실행하는 단계를 포함하며, 여기서 Y는 서브-스트림 내의 요소들의 개수로 측정되는 관심있는 서브-스트림의 길이이며, X는 관심있는 서브-스트림 내에 있는 포지티브 요소들의 개수이며, 그리고 함수 T(X, Y)는 길이가 Y 이고, 정확히 X 개의 포지티브 요소들을 가지며 그리고 방문 벡터 내에서 다음 요소에 의해서 후속되는, 방문 벡터 내의 서브-스트림들의 개수를 반환한다.
일부 실시예들에서, 사용자가 과거에 방문한 장소 및 타임슬롯의 복수의 과거 인스턴스들 중 임의의 인스턴스 동안 사용자가 상기 장소를 방문했는지의 여부를 나타내는 방문 히스토리 데이터를 판별하는 단계는, 함수 T(X, Y)에 의해서 반환된 상기 개수가 기결정된 임계값보다 작은 인스턴스들에서, Y를 1 만큼 감소시키고, 그리고 상기 Y 값 및 X 값에 대해서 함수 T(X, Y)를 실행하는 단계를 포함한다.
일부 실시예들에서, 사용자가 과거에 방문한 장소 및 타임슬롯의 복수의 과거 인스턴스들 중 임의의 인스턴스 동안 사용자가 상기 장소를 방문했는지의 여부를 나타내는 방문 히스토리 데이터를 판별하는 단계는, 방문 벡터 내에서 포지티브 요소가 후속되는 유형 (X, Y)의 서브-스트림들의 개수를 함수 T(X, Y)에 의해 반환된 개수로 나눈 값으로서 미래 방문 확률을 계산하는 단계를 포함한다.
일부 실시예들에서, 타임슬롯의 미래 인스턴스 동안 사용자가 상기 장소를 방문할 것 같다라고 판별하는 단계는, 미래 방문 확률이 기결정된 확률 임계값을 초과하는 경우, 타임슬롯의 미래 인스턴스 동안 사용자가 상기 장소를 방문할 것 같다라고 판별하는 단계를 포함한다.
일부 실시예들에서, 타임슬롯의 미래 인스턴스 동안 사용자가 상기 장소를 방문할 것 같다라고 판별하는 단계는, 마르코프 체인 모델, 베타-우선 모델, 및 랜덤 포레스트 모델 중 적어도 하나를 이용하여 타임슬롯의 미래 인스턴스 동안 사용자가 상기 장소를 방문할 것 같은지의 여부를 판별하는 단계를 포함한다.
추가적인 일례에서, 본 개시 내용은 명령들을 저장하는 컴퓨터-판독가능한 저장 디바이스를 서술하며, 상기 명령들은 실행되는 때에, 컴퓨팅 디바이스(예컨대, 위치 서버 150 및/또는 모바일 디바이스)의 하나 이상의 프로세서로 하여금 사용자에 관련된 위치 히스토리를 수신하게 한다. 또한, 상기 명령들은 실행되는 때에, 하나 이상의 프로세서로 하여금 위치 히스토리에 적어도 일부 기초하여, 복수의 벡터 요소들을 포함하는 방문 벡터를 판별하게 하며, 각각의 벡터 요소는 타임슬롯의 각각의 과거 인스턴스에 대응하고, 그리고 타임슬롯의 각각의 과거 인스턴스 동안 사용자가 상기 장소를 방문했음을 나타내는 값 또는 타임슬롯의 각각의 과거 인스턴스 동안 사용자가 상기 장소를 방문하지 않았음을 나타내는 값을 갖는다.
또한, 상기 명령들은 실행되는 때에, 하나 이상의 프로세서로 하여금 함수 T(X, Y)를 실행하게 하는바, 함수 T(X, Y)는 방문 벡터, Y 값, 및 X 값을 입력들로 수신하며, 여기서 Y는 서브-스트림 내의 요소들의 개수로 측정되는 관심있는 서브-스트림의 길이이며, X는 관심있는 서브-스트림 내에 있는 포지티브 요소들의 개수이며, 그리고 함수 T(X, Y)는 길이가 Y 이고, 정확히 X 개의 포지티브 요소들을 가지며 그리고 방문 벡터 내에서 다음 요소에 의해서 후속되는, 방문 벡터 내의 서브-스트림들의 개수를 반환한다. 추가적으로, 상기 명령들은 또한, 실행되는 때에, 하나 이상의 프로세서로 하여금, 함수 T(X, Y)에 의해서 반환되는 개수에 적어도 일부 기초하여 타임슬롯의 미래 인스턴스 동안 사용자가 상기 장소를 방문할 것 같다라고 판별하게 하며, 그리고 타임슬롯의 미래 인스턴스 동안 사용자가 상기 장소를 방문할 것 같다라고 판별하는 것에 응답하여, 타임슬롯의 상기 미래 인스턴스가 시작하기 전에 상기 장소에 관한 정보를 출력하게 한다.
일부 실시예들에서, 상기 명령들은 실행되는 때에, 컴퓨팅 디바이스의 하나 이상의 프로세서로 하여금, 함수 T(X, Y)에 의해서 반환된 상기 개수가 기결정된 임계값보다 작은 인스턴스들에서, Y를 1 만큼 감소시키게 하고, 그리고 상기 Y 값 및 X 값에 대해서 함수 T(X, Y)를 실행하게 한다.
일부 실시예들에서, 상기 명령들은 실행되는 때에, 컴퓨팅 디바이스의 하나 이상의 프로세서로 하여금, 방문 벡터 내에서 포지티브 요소가 후속되는 유형 (X, Y)의 서브-스트림들의 개수를 함수 T(X, Y)에 의해 반환된 개수로 나눈 값으로서 미래 방문 확률을 계산하게 한다.
일부 실시예들에서, 상기 명령들은 실행되는 때에, 컴퓨팅 디바이스의 하나 이상의 프로세서로 하여금, 미래 방문 확률이 기결정된 확률 임계값을 초과하는 경우, 타임슬롯의 미래 인스턴스 동안 사용자가 상기 장소를 방문할 것 같다라고 판별하게 한다.
일부 실시예들에서, 타임슬롯은 일주일의 특정 요일 및 그 날의 특정 시간에 대응할 수 있다.
일부 실시예들에서, 타임슬롯은 하루 중 특정 시간에만 대응할 수도 있다.
일부 실시예들에서, 타임슬롯은 1주일 주기로 2일의 주말에 대응할 수 있다.
비록, 몇몇 일례들이 전술한 바와 같이 상세히 서술되었지만, 다른 수정예들도 가능하다. 또한, 본 명세서에 서술된 시스템들 및 기법들을 수행하기 위해 다른 매커니즘들도 이용될 수 있다. 또한, 도면들에 도시된 논리 흐름들은 원하는 결과를 획득하기 위해, 도시된 특정 순서 혹은 시퀀셜 순서를 요구하지 않는다. 다른 단계들이 제공될 수도 있으며 혹은 서술된 흐름들에서 단계들이 제거될 수도 있다. 그리고 다른 구성요소들이 추가될 수도 있으며, 또는 설명된 시스템들로부터 제거될 수도 있다. 따라서, 다른 구현예들 역시 후술될 특허청구범위의 범위에 속한다.
Claims (13)
- 방법으로서,
컴퓨팅 시스템에 의해서, 사용자와 관련된 위치 히스토리로부터의 지리적 위치에 근접한(proximate) 복수의 목적지들에 관련된 정보를 판별(determine)하는 단계와, 상기 지리적 위치는 시간에 관련되며, 상기 복수의 목적지들에 관련된 정보는 상기 복수의 목적지들 중 각각의 목적지에 대한 각각의 목적지의 명칭 및 각각의 목적지와 상기 지리적 위치 사이의 각각의 거리를 적어도 포함하고;
상기 복수의 목적지들 중 각각의 목적지에 대해서, 상기 컴퓨팅 시스템에 의해서, 1) 상기 각각의 목적지와 상기 지리적 위치 사이의 각각의 거리 및 2) 시간에 대한 방문 가능성 분포와 상기 지리적 위치에 관련된 시간 사이의 비교에 적어도 부분적으로 기초하여, 상기 각각의 목적지에 관련된 방문 가능성(visit likelihood)을 판별하는 단계 - 상기 시간에 대한 방문 가능성 분포는 복수의 방문 가능성 값들을 포함하며, 상기 복수의 방문 가능성 값들 각각은 사용자가 각각의 일자의 각각의 시간에 상기 각각의 목적지를 방문할 것이라는 각각의 가능성을 각각 나타낸다 - 와;
상기 컴퓨팅 시스템에 의해서, 상기 각각의 목적지에 관련된 방문 가능성에 적어도 부분적으로 기초하여, 복수의 목적지들 중 일부를 정렬(sorting)하는 단계와; 그리고
상기 컴퓨팅 시스템에 의해서, 상기 복수의 목적지들 중 상기 일부에 대한 표시(indication)를 출력하는 단계를 포함하는 것을 특징으로 하는 방법. - 제1항에 있어서,
상기 컴퓨팅 시스템에 의해서, 상기 복수의 목적지들 중 상기 일부에 대한 표시를 출력하는 단계는,
모바일 컴퓨팅 디바이스에 의한 디스플레이를 위해 상기 표시가 출력되도록, 상기 컴퓨팅 시스템에 의해서, 상기 복수의 목적지들 중 상기 일부에 대한 표시를 상기 모바일 컴퓨팅 디바이스에 출력하는 것을 포함하는 것을 특징으로 하는 방법. - 제1항에 있어서,
상기 지리적 위치는, 상기 지리적 위치에 대한 방문을 나타내는 근접한 지리적 위치 데이터 포인트들의 클러스터를 나타내며, 상기 방문은 방문 시작 시간 및 방문 종료 시간을 갖는 것을 특징으로 하는 방법. - 제3항에 있어서,
상기 지리적 위치는, 상기 지리적 위치에 대한 복수의 방문들을 나타내고, 상기 복수의 방문들 중 각각의 방문은 각각의 방문 시작 시간 및 각각의 방문 종료 시간을 가지며, 그리고,
각각의 목적지에 대해서 방문 가능성을 판별하는 단계는, 각각의 방문 시작 시간 및 각각의 방문 종료 시간을 시간에 대한 방문 가능성 분포와 비교하는 것을 포함하는 것을 특징으로 하는 방법. - 제1항에 있어서,
상기 지리적 위치에 근접한 복수의 목적지들에 관련된 정보는, 상기 복수의 목적지들 중 각각의 목적지에 대한 각각의 저명도 점수(prominence score)를 포함하며, 그리고
각각의 목적지에 대한 방문 가능성을 판별하는 단계는 각각의 목적지와 상기 지리적 위치 사이의 각각의 거리, 상기 지리적 위치와 관련된 각각의 시간과 시간에 대한 방문 가능성 분포 사이의 비교 및 각각의 저명도 점수에 적어도 부분적으로 기초하여, 각각의 목적지에 대한 방문 가능성을 판별하는 것을 포함하는 것을 특징으로 하는 방법. - 제1항에 있어서,
상기 지리적 위치에 근접한 복수의 목적지들에 관련된 정보는, 상기 복수의 목적지들 중 각각의 목적지에 대한 영업 시간 데이터(business hours data)를 포함하며, 그리고
각각의 목적지에 대한 방문 가능성을 판별하는 단계는 각각의 목적지와 상기 지리적 위치 사이의 각각의 거리, 상기 지리적 위치와 관련된 각각의 시간과 시간에 대한 방문 가능성 분포 사이의 비교 및 상기 지리적 위치에 관련된 상기 시간에서 상기 목적지가 영업을 하였는지 아니면 하지 않았는지(opened or closed)의 여부에 적어도 부분적으로 기초하여 각각의 목적지에 대한 방문 가능성을 판별하는 것을 포함하는 것을 특징으로 하는 방법. - 제1항에 있어서,
상기 복수의 목적지들 중 각각의 목적지는 복수의 목적지 카테고리들 중에서 선택된 적어도 하나의 목적지 카테고리에 관련되며, 각각의 목적지 카테고리는, 상기 각각의 목적지 카테고리에 관련된 각각의 목적지들에 적용되는 시간에 대한 방문 가능성 분포를 갖는 것을 특징으로 하는 방법. - 명령어들이 수록된 비-일시적인 컴퓨터 판독가능 기록 매체로서, 상기 명령어들은 실행시 컴퓨팅 디바이스의 하나 이상의 프로세서로 하여금:
사용자와 관련된 위치 히스토리로부터의 복수의 근접한 지리적 위치 데이터 포인트들에 적어도 부분적으로 기초하여, 방문 시작 시간 및 방문 종료 시간을 갖는 방문에 대한 지리적 위치를 판별하고;
상기 지리적 위치에 근접한 복수의 목적지들에 관련된 정보를 판별하고, 상기 복수의 목적지들에 관련된 정보는 상기 복수의 목적지들 중 각각의 목적지에 대한 각각의 목적지의 명칭 및 각각의 목적지와 상기 지리적 위치 사이의 각각의 거리를 적어도 포함하며;
상기 복수의 목적지들 중 각각의 목적지에 대해서, 1) 상기 각각의 목적지와 상기 지리적 위치 사이의 각각의 거리, 2) 시간에 대한 방문 가능성 분포와 상기 방문 시작 시간과의 비교, 및 3) 상기 시간에 대한 방문 가능성 분포와 상기 방문 종료 시간과의 비교에 적어도 부분적으로 기초하여, 각각의 목적지에 대한 각각의 방문 가능성을 판별 - 상기 시간에 대한 방문 가능성 분포는 복수의 방문 가능성 값들을 포함하며, 상기 복수의 방문 가능성 값들 각각은 사용자가 각각의 일자의 각각의 시간에 상기 각각의 목적지를 방문할 것이라는 각각의 가능성을 각각 나타낸다 - 하고;
상기 각각의 목적지에 관련된 각각의 방문 가능성에 적어도 부분적으로 기초하여, 상기 복수의 목적지들 중 일부를 정렬(sorting)하며; 그리고
상기 복수의 목적지들 중 상기 일부에 대한 표시를 출력하도록 하는 것을 특징으로 하는 비-일시적인 컴퓨터 판독가능 기록 매체. - 제8항에 있어서,
실행시 상기 컴퓨팅 디바이스의 하나 이상의 프로세서로 하여금 상기 복수의 목적지들 중 상기 일부에 대한 표시를 출력하게 하는 상기 명령어들은,
실행시 상기 컴퓨팅 디바이스의 하나 이상의 프로세서로 하여금 모바일 컴퓨팅 디바이스에 의한 디스플레이를 위해 상기 표시가 출력되도록, 상기 복수의 목적지들 중 상기 일부에 대한 표시를 상기 모바일 컴퓨팅 디바이스에 출력하도록 하는 명령어들을 포함하는 것을 특징으로 하는 비-일시적인 컴퓨터 판독가능 기록 매체. - 제8항에 있어서,
상기 지리적 위치는, 상기 지리적 위치에 대한 복수의 방문들을 나타내고, 상기 복수의 방문들 중 각각의 방문은 각각의 방문 시작 시간 및 각각의 방문 종료 시간을 가지며,
실행시 상기 컴퓨팅 디바이스의 하나 이상의 프로세서로 하여금 각각의 방문 시작 시간 및 각각의 방문 종료 시간을 시간에 대한 방문 가능성 분포와 비교함으로써 상기 복수의 목적지들 중 각각의 목적지에 대한 방문 가능성을 판별하게 하는 명령어들이 더 수록된 것을 특징으로 하는 비-일시적인 컴퓨터 판독가능 기록 매체. - 제8항에 있어서,
상기 지리적 위치에 근접한 복수의 목적지들에 관련된 정보는, 상기 복수의 목적지들 중 각각의 목적지에 대한 각각의 저명도 점수(prominence score)를 포함하며, 그리고
실행시 상기 컴퓨팅 디바이스의 하나 이상의 프로세서로 하여금 상기 각각의 목적지와 상기 지리적 위치 사이의 각각의 거리, 상기 시간에 대한 방문 가능성 분포와 상기 방문 시작 시간과의 비교, 상기 시간에 대한 방문 가능성 분포와 상기 방문 종료 시간과의 비교 및 상기 각각의 저명도 점수에 적어도 부분적으로 기초하여, 각각의 목적지에 대한 방문 가능성을 판별하게 하는 명령어들이 더 수록된 것을 특징으로 하는 비-일시적인 컴퓨터 판독가능 기록 매체. - 제8항에 있어서,
상기 지리적 위치에 근접한 복수의 목적지들에 관련된 정보는, 상기 복수의 목적지들 중 각각의 목적지에 대한 영업 시간 데이터를 포함하며, 그리고
실행시 상기 컴퓨팅 디바이스의 하나 이상의 프로세서로 하여금 각각의 목적지와 상기 지리적 위치 사이의 각각의 거리, 시간에 대한 방문 가능성 분포와 상기 방문 시작 시간과의 비교, 시간에 대한 방문 가능성 분포와 상기 방문 종료 시간과의 비교 및 상기 지리적 위치에 관련된 시간에서 상기 목적지가 영업을 하였는지 아니면 하지 않았는지의 여부에 적어도 부분적으로 기초하여 각각의 목적지에 대한 방문 가능성을 판별하게 하는 명령어들이 더 수록된 것을 특징으로 하는 비-일시적인 컴퓨터 판독가능 기록 매체. - 제8항에 있어서,
상기 복수의 목적지들 중 각각의 목적지는 복수의 목적지 카테고리들 중에서 선택된 적어도 하나의 목적지 카테고리에 관련되며, 각각의 목적지 카테고리는, 상기 각각의 목적지 카테고리에 관련된 각각의 목적지들에 적용되는 시간에 대한 방문 가능성 분포를 갖는 것을 특징으로 하는 비-일시적인 컴퓨터 판독가능 기록 매체.
Applications Claiming Priority (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261662964P | 2012-06-22 | 2012-06-22 | |
US201261663058P | 2012-06-22 | 2012-06-22 | |
US61/662,964 | 2012-06-22 | ||
US61/663,058 | 2012-06-22 | ||
US201261663798P | 2012-06-25 | 2012-06-25 | |
US201261663773P | 2012-06-25 | 2012-06-25 | |
US61/663,773 | 2012-06-25 | ||
US61/663,798 | 2012-06-25 | ||
PCT/US2013/047186 WO2013192591A2 (en) | 2012-06-22 | 2013-06-21 | Ranking nearby destinations based on visit likelihoods and predicting future visits to places from location history |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020157001678A Division KR101699918B1 (ko) | 2012-06-22 | 2013-06-21 | 방문 가능성에 기초한 부근의 목적지들의 정렬 및 위치 히스토리로부터의 장소들에 대한 미래의 방문들의 예측 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20160129097A true KR20160129097A (ko) | 2016-11-08 |
KR101979401B1 KR101979401B1 (ko) | 2019-05-16 |
Family
ID=49769734
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020167030009A KR101979401B1 (ko) | 2012-06-22 | 2013-06-21 | 방문 가능성에 기초한 부근의 목적지들의 정렬 및 위치 히스토리로부터의 장소들에 대한 미래의 방문들의 예측 |
KR1020157001678A KR101699918B1 (ko) | 2012-06-22 | 2013-06-21 | 방문 가능성에 기초한 부근의 목적지들의 정렬 및 위치 히스토리로부터의 장소들에 대한 미래의 방문들의 예측 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020157001678A KR101699918B1 (ko) | 2012-06-22 | 2013-06-21 | 방문 가능성에 기초한 부근의 목적지들의 정렬 및 위치 히스토리로부터의 장소들에 대한 미래의 방문들의 예측 |
Country Status (6)
Country | Link |
---|---|
US (3) | US8949013B2 (ko) |
EP (3) | EP3629195A1 (ko) |
KR (2) | KR101979401B1 (ko) |
CN (2) | CN104520881B (ko) |
IN (1) | IN2014KN03045A (ko) |
WO (1) | WO2013192591A2 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200130760A (ko) * | 2019-04-25 | 2020-11-20 | (주)밸류파인더스 | 이중 dnn을 이용한 가맹점 추천방법 |
Families Citing this family (95)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9576295B2 (en) * | 2011-06-27 | 2017-02-21 | Service Management Group, Inc. | Adjusting a process for visit detection based on location data |
CN104520881B (zh) | 2012-06-22 | 2017-12-19 | 谷歌公司 | 基于访问可能性对附近目的地排名以及从位置历史来预测对地点的未来访问 |
WO2013192538A2 (en) | 2012-06-22 | 2013-12-27 | Jiwire, Inc. | Location graph based derivation of attributes |
US9098106B2 (en) | 2012-08-10 | 2015-08-04 | Comsol Ab | Systems and methods for creating application interfaces for forming and solving problems in a modeling system |
US20140122229A1 (en) * | 2012-10-31 | 2014-05-01 | Ncr Corporation | Techniques for recommending a retailer, retail product, or retail services |
US20140162687A1 (en) * | 2012-12-10 | 2014-06-12 | Qualcomm Incorporated | Techniques for determining a state of proximity between mobile devices |
US10650177B2 (en) | 2012-12-20 | 2020-05-12 | Comsol Ab | System and method for creating application interfaces for multiphysics modeling |
CN104937375B (zh) * | 2013-01-21 | 2017-05-10 | 三菱电机株式会社 | 目的地预测装置 |
US20150073700A1 (en) * | 2013-09-12 | 2015-03-12 | PopWorld Inc. | Data processing system and method for generating guiding information |
US20150134244A1 (en) * | 2013-11-12 | 2015-05-14 | Mitsubishi Electric Research Laboratories, Inc. | Method for Predicting Travel Destinations Based on Historical Data |
US9305306B2 (en) * | 2013-09-24 | 2016-04-05 | Mitsubishi Electric Research Laboratories, Inc. | Method and system for autonomously delivering information to drivers |
US9170119B2 (en) * | 2013-09-24 | 2015-10-27 | Mitsubishi Electric Research Laboratories, Inc. | Method and system for dynamically adapting user interfaces in vehicle navigation systems to minimize interaction complexity |
CN106062731B (zh) | 2013-10-09 | 2019-07-02 | 莫柏尔技术有限公司 | 使用空间和时间分析以将数据源和移动设备关联的***和方法 |
US11392987B2 (en) | 2013-10-09 | 2022-07-19 | Mobile Technology Corporation | Systems and methods for using spatial and temporal analysis to associate data sources with mobile devices |
US8792909B1 (en) * | 2013-12-04 | 2014-07-29 | 4 Info, Inc. | Systems and methods for statistically associating mobile devices to households |
US9704205B2 (en) | 2014-02-28 | 2017-07-11 | Christine E. Akutagawa | Device for implementing body fluid analysis and social networking event planning |
US11030708B2 (en) | 2014-02-28 | 2021-06-08 | Christine E. Akutagawa | Method of and device for implementing contagious illness analysis and tracking |
US20150248436A1 (en) * | 2014-03-03 | 2015-09-03 | Placer Labs Inc. | Methods, Circuits, Devices, Systems and Associated Computer Executable Code for Assessing a Presence Likelihood of a Subject at One or More Venues |
US20170358015A1 (en) * | 2014-04-07 | 2017-12-14 | Google Inc. | User Location History Implies Diminished Review |
KR102216049B1 (ko) * | 2014-04-21 | 2021-02-15 | 삼성전자주식회사 | 시맨틱 라벨링 시스템 및 방법 |
WO2015178540A1 (ko) * | 2014-05-20 | 2015-11-26 | 삼성에스디에스 주식회사 | 카메라간 핸드오버를 이용한 목표물 추적 장치 및 방법 |
US9857195B2 (en) | 2014-05-30 | 2018-01-02 | Google Inc. | Selection and presentation of geographic content in an automotive environment |
US9752883B1 (en) | 2014-06-04 | 2017-09-05 | Google Inc. | Using current user context to determine mapping characteristics |
US9594808B2 (en) | 2014-06-04 | 2017-03-14 | Google Inc. | Determining relevance of points of interest to a user |
US9146116B1 (en) | 2014-06-04 | 2015-09-29 | Google Inc. | Automatic continued search |
US20160048859A1 (en) * | 2014-08-14 | 2016-02-18 | Microsoft Corporation | Venue boundary evaluation for inferring user intent |
JP6223597B2 (ja) * | 2014-08-20 | 2017-11-01 | 三菱電機株式会社 | 車両の運転者の現在の要求を満たすための情報を送達する方法 |
US10586240B2 (en) | 2014-10-22 | 2020-03-10 | Mastercard International Incorporated | Methods and systems for estimating visitor traffic at a real property location |
KR20160051231A (ko) * | 2014-11-03 | 2016-05-11 | 삼성전자주식회사 | 약속 장소 위치 예측 방법 및 이를 제공하는 전자 장치 |
CN104580379B (zh) * | 2014-12-15 | 2021-03-19 | 深圳市腾讯计算机***有限公司 | 一种发送展示信息的方法和装置 |
US10187343B2 (en) * | 2014-12-18 | 2019-01-22 | Facebook, Inc. | Location data for defining places and traffic |
US9307360B1 (en) | 2015-01-09 | 2016-04-05 | NinthDecimal, Inc. | Systems and methods to identify a predefined geographical region in which a mobile device is located |
US10327094B2 (en) | 2016-06-07 | 2019-06-18 | NinthDecimal, Inc. | Systems and methods to track locations visited by mobile devices and determine neighbors of and distances among locations |
US9291700B1 (en) | 2015-01-09 | 2016-03-22 | NinthDecimal, Inc. | Systems and methods to identify home addresses of mobile devices |
JP6637054B2 (ja) | 2015-01-27 | 2020-01-29 | ベイジン ディディ インフィニティ テクノロジー アンド ディベロップメント カンパニー リミティッド | オン・デマンドサービスの情報を提供する方法及びシステム |
CN106919993A (zh) * | 2015-12-25 | 2017-07-04 | 滴滴(中国)科技有限公司 | 一种基于历史数据的高准确性默认目的地预测方法及装置 |
US9787557B2 (en) * | 2015-04-28 | 2017-10-10 | Google Inc. | Determining semantic place names from location reports |
US10909464B2 (en) | 2015-04-29 | 2021-02-02 | Microsoft Technology Licensing, Llc | Semantic locations prediction |
EP3292518A4 (en) * | 2015-05-05 | 2019-01-16 | RetailMeNot, Inc. | EVOLUTIVE COMPLEX EVENT TREATMENT COMPRISING PROBABILISED AUTOMATIC LEARNING MODELS FOR PREDICTING SUBSEQUENT GEOGRAPHIC LOCATIONS |
US9940362B2 (en) * | 2015-05-26 | 2018-04-10 | Google Llc | Predicting user needs for a particular context |
US20200404464A1 (en) * | 2015-06-22 | 2020-12-24 | YouMap, Inc. | Location-based quest request and performance system |
US11356817B2 (en) | 2015-06-22 | 2022-06-07 | YouMap, Inc. | System and method for location-based content delivery and visualization |
CN107402931A (zh) * | 2016-05-19 | 2017-11-28 | 滴滴(中国)科技有限公司 | 一种出行目的地推荐方法和装置 |
US20170116540A1 (en) | 2015-10-22 | 2017-04-27 | Snips | Method for triggering an action on a mobile device of a user |
CN105357637B (zh) * | 2015-10-28 | 2019-06-11 | 同济大学 | 一种位置和行为信息预测***及方法 |
KR102453911B1 (ko) * | 2015-10-29 | 2022-10-12 | 에스케이플래닛 주식회사 | 빅데이터 분석 및 기상패턴을 이용한 피드백 정보 제공장치 및 피드백 정보 제공방법. |
CN105357638B (zh) * | 2015-11-06 | 2019-10-22 | 百度在线网络技术(北京)有限公司 | 预测预定时刻的用户位置的方法和装置 |
US10602315B2 (en) * | 2015-12-09 | 2020-03-24 | Arun Vijayvergiya | System and method for providing a platform for creating, browsing and searching a journal of activities of a user |
EP3182738B1 (en) * | 2015-12-16 | 2018-12-05 | Snips | Method and means for triggering at least one action based on geolocation and user information, places and user habits |
CN105488597B (zh) * | 2015-12-28 | 2020-01-07 | 中国民航信息网络股份有限公司 | 旅客目的地预测方法及*** |
US9679426B1 (en) | 2016-01-04 | 2017-06-13 | Bank Of America Corporation | Malfeasance detection based on identification of device signature |
US10373131B2 (en) | 2016-01-04 | 2019-08-06 | Bank Of America Corporation | Recurring event analyses and data push |
US20170236223A1 (en) * | 2016-02-11 | 2017-08-17 | International Business Machines Corporation | Personalized travel planner that identifies surprising events and points of interest |
CN108885723A (zh) * | 2016-03-04 | 2018-11-23 | 阿克森维伯股份公司 | 用于基于位置数据预测用户行为的***和方法 |
KR20170111810A (ko) * | 2016-03-29 | 2017-10-12 | 삼성전자주식회사 | 전자 장치의 위치 정보 기반 메신저 운영 방법 및 장치 |
WO2017180563A1 (en) * | 2016-04-11 | 2017-10-19 | Carrier Corporation | Capturing user intent when interacting with multiple access controls |
CN106055607B (zh) * | 2016-05-25 | 2020-05-19 | 百度在线网络技术(北京)有限公司 | 用户到访预测模型建立、用户到访预测方法和装置 |
CN106227834B (zh) * | 2016-07-26 | 2020-03-27 | 合一网络技术(北京)有限公司 | 多媒体资源的推荐方法及装置 |
DK3497403T3 (da) | 2016-08-11 | 2021-10-04 | Axon Vibe AG | Geolokalisering af personer baseret på et afledt socialt netværk |
US9984339B2 (en) * | 2016-08-23 | 2018-05-29 | X Development Llc | Autonomous shuffling of pallets of items in a warehouse |
CN106446157B (zh) * | 2016-09-22 | 2020-01-21 | 北京百度网讯科技有限公司 | 行程目的地推荐方法和装置 |
US10650071B2 (en) | 2016-11-28 | 2020-05-12 | Google Llc | Search and retrieval of keyed data maintained using a keyed database |
KR102552013B1 (ko) * | 2016-12-20 | 2023-07-05 | 현대자동차 주식회사 | 목적지 예측 기반 차량 제어 방법 및 시스템 |
CN106949901B (zh) * | 2017-01-24 | 2022-05-03 | 斑马信息科技有限公司 | 目的地推荐***和方法 |
US10740794B2 (en) | 2017-02-15 | 2020-08-11 | Microsoft Technology Licensing, Llc | Personalized identification of visit start |
KR101891181B1 (ko) * | 2017-02-16 | 2018-08-23 | 서울대학교산학협력단 | 웨어러블 센서 기반 일정 자동 관리 장치 및 방법 |
US10929818B2 (en) | 2017-02-16 | 2021-02-23 | Seoul National University R&Db Foundation | Wearable sensor-based automatic scheduling device and method |
CN106991159B (zh) * | 2017-03-30 | 2018-07-24 | 百度在线网络技术(北京)有限公司 | 用于生成信息的方法和装置 |
US11915159B1 (en) * | 2017-05-01 | 2024-02-27 | Pivotal Software, Inc. | Parallelized and distributed Bayesian regression analysis |
CN109947871B (zh) * | 2017-07-26 | 2021-07-06 | 北京嘀嘀无限科技发展有限公司 | 个性化线路信息推送方法及装置 |
CN109584705B (zh) * | 2017-09-29 | 2021-09-17 | 北京搜狗科技发展有限公司 | 一种地图展现方法及设备 |
EP3483557A1 (en) * | 2017-11-10 | 2019-05-15 | Bayerische Motoren Werke Aktiengesellschaft | Methods and apparatuses for predicting a destination of a user's current travel path |
JP6616860B2 (ja) * | 2018-04-06 | 2019-12-04 | ソフトバンク株式会社 | 情報生成装置、プログラム及び情報生成方法 |
CN110379154A (zh) * | 2018-04-12 | 2019-10-25 | 阿里巴巴集团控股有限公司 | 交通诱导方法及装置 |
CN110400377B (zh) * | 2018-04-24 | 2022-05-20 | 腾讯科技(深圳)有限公司 | 凭证数据查重方法及相关设备 |
CN112088390A (zh) * | 2018-05-07 | 2020-12-15 | 谷歌有限责任公司 | 对于地点的个性化匹配得分 |
KR102529190B1 (ko) | 2018-05-25 | 2023-05-04 | 삼성전자주식회사 | 위치를 결정하기 위한 전자 장치 및 그의 동작 방법 |
WO2019237229A1 (en) | 2018-06-11 | 2019-12-19 | Beijing Didi Infinity Technology And Development Co., Ltd. | Systems and methods for providing information for online to offline service |
WO2020021626A1 (ja) * | 2018-07-24 | 2020-01-30 | 三菱電機ビルテクノサービス株式会社 | 訪問管理機能を備えたコンテンツ配信装置 |
US20200065694A1 (en) * | 2018-08-21 | 2020-02-27 | Facebook, Inc. | Method and system for analyzing and predicting geographic habits |
CN111131999B (zh) * | 2018-10-15 | 2021-05-25 | ***通信集团有限公司 | 一种基于位置轨迹预测目的地的方法及装置 |
FR3088113B1 (fr) | 2018-11-05 | 2021-05-14 | Roofstreet | Procede de prediction du prochain trajet d’une personne |
TWI698825B (zh) * | 2019-01-25 | 2020-07-11 | 中華電信股份有限公司 | 藉由預測顧客到訪率提供行銷服務之方法及系統 |
US20210006650A1 (en) * | 2019-07-02 | 2021-01-07 | Microsoft Technology Licensing, Llc | Computing system that generates a predicted routine of a user |
CN110472192B (zh) * | 2019-07-23 | 2022-04-15 | 平安科技(深圳)有限公司 | 评价指标提取方法、装置、存储介质和服务器 |
US10687174B1 (en) | 2019-09-25 | 2020-06-16 | Mobile Technology, LLC | Systems and methods for using spatial and temporal analysis to associate data sources with mobile devices |
KR102254400B1 (ko) | 2019-10-22 | 2021-05-24 | 오지연 | 사용자의 주요 활동지역에 기반한 장소추천 서버 및 방문장소예측 방법 |
WO2021173899A1 (en) * | 2020-02-28 | 2021-09-02 | Match Group, Llc | System and method for matching using location information |
US11556953B2 (en) | 2020-03-10 | 2023-01-17 | Google Llc | Methods, systems, and media for timing presentation of content |
CN111417067B (zh) * | 2020-03-13 | 2021-05-07 | 智慧足迹数据科技有限公司 | 定位用户到访位置的方法和装置 |
US11297466B1 (en) | 2020-04-24 | 2022-04-05 | Allstate Insurance Company | Systems for predicting and classifying location data based on machine learning |
WO2021221563A1 (en) | 2020-04-30 | 2021-11-04 | Grabtaxi Holdings Pte. Ltd. | Method for predicting the destination location of a vehicle |
US11624624B2 (en) * | 2020-07-28 | 2023-04-11 | Bayerische Motoren Werke Aktiengesellschaft | Methods and apparatuses for predicting user destinations |
US11816603B2 (en) | 2020-09-22 | 2023-11-14 | Uber Technolgies, Inc. | Active notification using transportation service prediction |
CN117433557A (zh) * | 2023-12-21 | 2024-01-23 | 青岛智简尚达信息科技有限公司 | 一种客户拜访路线规划及导航方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002140362A (ja) * | 2000-10-31 | 2002-05-17 | Toshiba Corp | 移動体向け情報提供システムおよび情報提供方法 |
JP2003196284A (ja) * | 2001-12-25 | 2003-07-11 | Mitsubishi Electric Corp | 移動体ナビゲーション装置 |
KR20110103421A (ko) * | 2008-12-15 | 2011-09-20 | 퀄컴 인코포레이티드 | 위치 로깅, 그리고 위치 및 시간 기반 필터링 |
Family Cites Families (55)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6181945B1 (en) | 1997-01-27 | 2001-01-30 | Nortel Networks Limited | Optimization of paging cost in mobile switching system using a genetic optimization method |
US7082365B2 (en) * | 2001-08-16 | 2006-07-25 | Networks In Motion, Inc. | Point of interest spatial rating search method and system |
US20050228553A1 (en) * | 2004-03-30 | 2005-10-13 | Williams International Co., L.L.C. | Hybrid Electric Vehicle Energy Management System |
US7720652B2 (en) * | 2004-10-19 | 2010-05-18 | Microsoft Corporation | Modeling location histories |
US7822751B2 (en) | 2005-05-27 | 2010-10-26 | Google Inc. | Scoring local search results based on location prominence |
US8024112B2 (en) * | 2005-09-29 | 2011-09-20 | Microsoft Corporation | Methods for predicting destinations from partial trajectories employing open-and closed-world modeling methods |
JP4088336B2 (ja) * | 2006-04-14 | 2008-05-21 | 松下電器産業株式会社 | 移動先予測装置および移動先予測方法 |
US7739040B2 (en) * | 2006-06-30 | 2010-06-15 | Microsoft Corporation | Computation of travel routes, durations, and plans over multiple contexts |
US8068977B2 (en) * | 2006-09-28 | 2011-11-29 | Panasonic Corporation | Destination prediction apparatus and method thereof |
KR20080045331A (ko) | 2006-11-20 | 2008-05-23 | 삼성전자주식회사 | 이동통신 시스템에서 선호도 기반의 위치 정보 제공을 위한장치 및 방법 |
US8229458B2 (en) * | 2007-04-08 | 2012-07-24 | Enhanced Geographic Llc | Systems and methods to determine the name of a location visited by a user of a wireless device |
WO2008134595A1 (en) | 2007-04-27 | 2008-11-06 | Pelago, Inc. | Determining locations of interest based on user visits |
US20090005964A1 (en) * | 2007-06-28 | 2009-01-01 | Apple Inc. | Intelligent Route Guidance |
US7720844B2 (en) | 2007-07-03 | 2010-05-18 | Vulcan, Inc. | Method and system for continuous, dynamic, adaptive searching based on a continuously evolving personal region of interest |
CN101159730B (zh) * | 2007-09-19 | 2011-08-10 | 华为技术有限公司 | 多媒体联络中心处理信息的方法、***及装置 |
EP2225858A1 (en) * | 2007-11-14 | 2010-09-08 | QUALCOMM Incorporated | Methods and systems for determining a geographic user profile to determine suitability of targeted content messages based on the profile |
US7983963B2 (en) * | 2007-12-28 | 2011-07-19 | Overstock.Com, Inc. | System, program product, and method of electronic communication network guided navigation |
US9646025B2 (en) * | 2008-05-27 | 2017-05-09 | Qualcomm Incorporated | Method and apparatus for aggregating and presenting data associated with geographic locations |
US8078974B2 (en) | 2008-06-27 | 2011-12-13 | Microsoft Corporation | Relating web page change with revisitation patterns |
JP2010020490A (ja) * | 2008-07-09 | 2010-01-28 | Oki Electric Ind Co Ltd | 未訪問地の情報提供装置及び未訪問地の情報提供方法 |
JP2010019641A (ja) | 2008-07-09 | 2010-01-28 | Fujifilm Corp | 情報提供装置、方法およびプログラムならびにアルバム作成装置、方法およびプログラム |
US20100070334A1 (en) * | 2008-09-08 | 2010-03-18 | Dante Monteverde | Method and system for location-based mobile device predictive services |
US20100153292A1 (en) * | 2008-12-11 | 2010-06-17 | Microsoft Corporation | Making Friend and Location Recommendations Based on Location Similarities |
US9043148B2 (en) * | 2008-12-29 | 2015-05-26 | Google Technology Holdings LLC | Navigation system and methods for generating enhanced search results |
US8825074B2 (en) * | 2009-02-02 | 2014-09-02 | Waldeck Technology, Llc | Modifying a user'S contribution to an aggregate profile based on time between location updates and external events |
EP2224757B1 (en) | 2009-02-27 | 2013-08-21 | Research In Motion Limited | Communications system providing mobile device advertisements based upon activity history and related methods |
US20120047087A1 (en) * | 2009-03-25 | 2012-02-23 | Waldeck Technology Llc | Smart encounters |
US10042032B2 (en) | 2009-04-29 | 2018-08-07 | Amazon Technologies, Inc. | System and method for generating recommendations based on similarities between location information of multiple users |
KR101067326B1 (ko) | 2009-05-14 | 2011-09-23 | 이원석 | 이동통신 시스템에서 위치 기반 서비스 제공 방법 및 장치 |
US20100331016A1 (en) | 2009-05-27 | 2010-12-30 | Geodelic, Inc. | Location-based promotion for a mobile communication network |
US8290132B2 (en) * | 2009-08-21 | 2012-10-16 | Avaya Inc. | Communications history log system |
US8321527B2 (en) * | 2009-09-10 | 2012-11-27 | Tribal Brands | System and method for tracking user location and associated activity and responsively providing mobile device updates |
JP5440080B2 (ja) * | 2009-10-02 | 2014-03-12 | ソニー株式会社 | 行動パターン解析システム、携帯端末、行動パターン解析方法、及びプログラム |
GB2541307A (en) * | 2009-10-23 | 2017-02-15 | Cadio Inc | Analyzing consumer behavior using electronically-captured consumer location data |
US20110184945A1 (en) * | 2010-01-22 | 2011-07-28 | Qualcomm Incorporated | Location aware recommendation engine |
US8838586B2 (en) * | 2010-03-05 | 2014-09-16 | Apple Inc. | Relevancy ranking for map-related search |
US20110270517A1 (en) * | 2010-04-29 | 2011-11-03 | Nokia Corporation | Method and apparatus for providing personalized presentations based on navigation information |
US8645061B2 (en) * | 2010-06-16 | 2014-02-04 | Microsoft Corporation | Probabilistic map matching from a plurality of observational and contextual factors |
US9275154B2 (en) * | 2010-06-18 | 2016-03-01 | Google Inc. | Context-sensitive point of interest retrieval |
JP2012008771A (ja) * | 2010-06-24 | 2012-01-12 | Sony Corp | 情報処理装置、情報処理システム、情報処理方法およびプログラム |
US8958822B2 (en) * | 2010-10-25 | 2015-02-17 | Alohar Mobile Inc. | Determining points of interest of a mobile user |
US9152726B2 (en) | 2010-12-01 | 2015-10-06 | Microsoft Technology Licensing, Llc | Real-time personalized recommendation of location-related entities |
US9134137B2 (en) * | 2010-12-17 | 2015-09-15 | Microsoft Technology Licensing, Llc | Mobile search based on predicted location |
US20120161986A1 (en) * | 2010-12-27 | 2012-06-28 | Eyal Amir | Providing guidance for locating street parking |
US9154826B2 (en) * | 2011-04-06 | 2015-10-06 | Headwater Partners Ii Llc | Distributing content and service launch objects to mobile devices |
US9163952B2 (en) * | 2011-04-15 | 2015-10-20 | Microsoft Technology Licensing, Llc | Suggestive mapping |
US9176485B2 (en) * | 2011-06-02 | 2015-11-03 | Microsoft Technology Licensing, Llc | Occupancy prediction using historical occupancy patterns |
JP2012251954A (ja) * | 2011-06-06 | 2012-12-20 | Denso It Laboratory Inc | 目的地推定装置及びそれを含むナビゲーションシステム、目的地推定方法、及び目的地推定プログラム |
US8650139B2 (en) * | 2011-07-01 | 2014-02-11 | Google Inc. | Predicting user navigation events |
US20130262479A1 (en) * | 2011-10-08 | 2013-10-03 | Alohar Mobile Inc. | Points of interest (poi) ranking based on mobile user related data |
CN102385636A (zh) | 2011-12-22 | 2012-03-21 | 陈伟 | 一种智能搜索方法和装置 |
US8954571B2 (en) | 2012-01-13 | 2015-02-10 | Wavemarket, Inc. | System and method for implementing histogram controlled mobile devices |
EP2875655B1 (en) | 2012-06-22 | 2021-04-28 | Google LLC | Inferring user interests |
CN104520881B (zh) | 2012-06-22 | 2017-12-19 | 谷歌公司 | 基于访问可能性对附近目的地排名以及从位置历史来预测对地点的未来访问 |
EP2929296B1 (en) * | 2012-12-04 | 2019-02-20 | Nokia Technologies Oy | Method and apparatus for validating potential points of interest using user and device characteristics |
-
2013
- 2013-06-21 CN CN201380041446.2A patent/CN104520881B/zh active Active
- 2013-06-21 WO PCT/US2013/047186 patent/WO2013192591A2/en active Application Filing
- 2013-06-21 KR KR1020167030009A patent/KR101979401B1/ko active IP Right Grant
- 2013-06-21 EP EP19210186.3A patent/EP3629195A1/en not_active Withdrawn
- 2013-06-21 KR KR1020157001678A patent/KR101699918B1/ko active IP Right Grant
- 2013-06-21 CN CN201710372382.4A patent/CN107273437B/zh active Active
- 2013-06-21 EP EP16174945.2A patent/EP3101561A1/en not_active Ceased
- 2013-06-21 EP EP13737023.5A patent/EP2864939A4/en not_active Ceased
- 2013-06-21 IN IN3045KON2014 patent/IN2014KN03045A/en unknown
- 2013-07-31 US US13/955,874 patent/US8949013B2/en active Active
-
2014
- 2014-11-18 US US14/546,511 patent/US9449053B2/en active Active
-
2016
- 2016-07-11 US US15/206,913 patent/US10332019B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002140362A (ja) * | 2000-10-31 | 2002-05-17 | Toshiba Corp | 移動体向け情報提供システムおよび情報提供方法 |
JP2003196284A (ja) * | 2001-12-25 | 2003-07-11 | Mitsubishi Electric Corp | 移動体ナビゲーション装置 |
KR20110103421A (ko) * | 2008-12-15 | 2011-09-20 | 퀄컴 인코포레이티드 | 위치 로깅, 그리고 위치 및 시간 기반 필터링 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20200130760A (ko) * | 2019-04-25 | 2020-11-20 | (주)밸류파인더스 | 이중 dnn을 이용한 가맹점 추천방법 |
Also Published As
Publication number | Publication date |
---|---|
WO2013192591A2 (en) | 2013-12-27 |
KR101979401B1 (ko) | 2019-05-16 |
US20160321555A1 (en) | 2016-11-03 |
US9449053B2 (en) | 2016-09-20 |
EP3629195A1 (en) | 2020-04-01 |
KR20150024419A (ko) | 2015-03-06 |
US20150073693A1 (en) | 2015-03-12 |
CN107273437A (zh) | 2017-10-20 |
US8949013B2 (en) | 2015-02-03 |
US10332019B2 (en) | 2019-06-25 |
IN2014KN03045A (ko) | 2015-05-08 |
EP3101561A1 (en) | 2016-12-07 |
CN104520881A (zh) | 2015-04-15 |
US20130345957A1 (en) | 2013-12-26 |
EP2864939A4 (en) | 2016-12-07 |
CN107273437B (zh) | 2020-09-29 |
KR101699918B1 (ko) | 2017-01-25 |
CN104520881B (zh) | 2017-12-19 |
EP2864939A2 (en) | 2015-04-29 |
WO2013192591A3 (en) | 2015-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101699918B1 (ko) | 방문 가능성에 기초한 부근의 목적지들의 정렬 및 위치 히스토리로부터의 장소들에 대한 미래의 방문들의 예측 | |
CN108875007B (zh) | 兴趣点的确定方法和装置、存储介质、电子装置 | |
EP2875655B1 (en) | Inferring user interests | |
US9204254B2 (en) | Determining attractions based on location history data | |
US8838586B2 (en) | Relevancy ranking for map-related search | |
EP2883368B1 (en) | Labeling visited locations based on contact information | |
WO2016196999A1 (en) | Personally impactful changes to events of users | |
US20160321616A1 (en) | Unusualness of Events Based On User Routine Models | |
US10560797B2 (en) | Information processing device and method | |
JP5798983B2 (ja) | 場所評価システム、装置、方法及びプログラム | |
Gao et al. | Analyzing LBSN Data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A107 | Divisional application of patent | ||
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
AMND | Amendment | ||
X701 | Decision to grant (after re-examination) |