KR20170133466A - 위치 센서의 정밀도 향상을 위한 시스템 및 방법 - Google Patents

위치 센서의 정밀도 향상을 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20170133466A
KR20170133466A KR1020177031639A KR20177031639A KR20170133466A KR 20170133466 A KR20170133466 A KR 20170133466A KR 1020177031639 A KR1020177031639 A KR 1020177031639A KR 20177031639 A KR20177031639 A KR 20177031639A KR 20170133466 A KR20170133466 A KR 20170133466A
Authority
KR
South Korea
Prior art keywords
location
processing system
identifier
data processing
data
Prior art date
Application number
KR1020177031639A
Other languages
English (en)
Other versions
KR102040784B1 (ko
Inventor
마하르 살렉
필립 맥도넬
쇼빗 사제나
비노드 쿠마르 라마찬드란
데이비드 오웬 샤나한
아민 차라니야
Original Assignee
구글 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US14/808,634 external-priority patent/US9716697B2/en
Application filed by 구글 엘엘씨 filed Critical 구글 엘엘씨
Publication of KR20170133466A publication Critical patent/KR20170133466A/ko
Application granted granted Critical
Publication of KR102040784B1 publication Critical patent/KR102040784B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0872Generation of secret information including derivation or calculation of cryptographic keys or passwords using geo-location information, e.g. location data, time, relative position or proximity to other entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0478Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload applying multiple layers of encryption, e.g. nested tunnels or encrypting the content with a first key and then with at least a second key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/52Network services specially adapted for the location of the user terminal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0852Quantum cryptography
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/02Protecting privacy or anonymity, e.g. protecting personally identifiable information [PII]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/03Protecting confidentiality, e.g. by encryption
    • H04W12/033Protecting confidentiality, e.g. by encryption of the user plane, e.g. user's traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/08Access security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • H04W4/021Services related to particular areas, e.g. point of interest [POI] services, venue services or geofences
    • H04W4/022Services related to particular areas, e.g. point of interest [POI] services, venue services or geofences with dynamic range variability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/46Secure multiparty computation, e.g. millionaire problem

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Electromagnetism (AREA)
  • Theoretical Computer Science (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)
  • Telephonic Communication Services (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

위치 엔진을 튜닝하기 위해 네트워크를 통해 서버들 간에 전송된 위치 데이터를 암호화적으로 보호하는 시스템 및 방법이 여기에 개시된다. 제1암호화 모듈은 각 위치 결정에 대한 제1해시값을 결정하고, 제1암호화 프로토콜을 사용하여 각 위치 결정에 대한 제1해시값을 암호화하여 제1암호화 데이터 세트를 생성하고, 상기 제1암호화 데이터 세트를 서버로 전송한다. 제1암호화 모듈은 제2암호화 프로토콜을 사용하여 서버의 제2암호화 모듈에 의해 생성된 제2해시값을 갖는 제2암호화 데이터 세트를 서버로부터 수신한다. 제1암호화 모듈은 제2암호화 데이터 세트로부터 제1이중 암호화 데이터 세트를 생성한다. 튜너는 제1이중 암호화 데이터 세트를 서버로부터 수신된 제2이중 암호화 데이터 세트와 비교하여 위치 엔진을 조정한다.

Description

위치 센서의 정밀도 향상을 위한 시스템 및 방법
본 출원은 2015년 7월 24일자로 출원된 미국 특허 출원 번호 14/808,634호의 부분 계속 출원으로서 35 U.S.C.§120 하의 우선권의 이익을 주장하는, 2016년 2월 12일자로 출원된 미국 특허 출원 번호 15/043,394호에 대한 우선권의 이익을 주장하며, 그 전체가 본원에 참고로 인용되어 있다.
인터넷과 같은 컴퓨터 네트워크 환경에서 사람 또는 회사와 같은 엔티티는 웹 서버를 통해 온라인 콘텐츠에 공개적 디스플레이를 위한 정보를 제공할 수 있다. 클라이언트 디바이스가 엔티티의 다양한 웹 서버로 온라인 콘텐츠에 대한 요청을 보내고 엔티티의 각각의 웹 서버로부터 온라인 콘텐츠를 수신하면, 웹 서버는 다양한 형식에 따라 이러한 컴퓨팅 디바이스 네트워크 액티비티 및 인터랙션의 로그를 유지할 수 있다.
본 개시의 시스템 및 방법은 네트워크를 통해 엔티티들 또는 서버들간에 전송된 위치 데이터를 암호화적(cryptographically)으로 보호하고 하나 이상의 파라미터를 사용하여 위치 엔진을 튜닝하기 위해 위치 데이터를 평가하는 것에 관한 것이다.
적어도 하나의 양태는 위치 엔진을 튜닝하기 위해 컴퓨터 네트워크를 통해 복수의 서버사이에서 전송된 위치 데이터를 암호화적으로 보호하는 시스템에 관한 것이다. 시스템은 브리징 모듈, 제1암호화 모듈, 통신 인터페이스 및 튜너를 포함할 수 있다. 브리징 모듈, 제1암호화 모듈, 통신 인터페이스 및 튜너는 데이터 처리 시스템의 하나 이상의 프로세서에 의해 실행될 수 있다. 브리징 모듈은 메모리에 저장된 위치 데이터베이스로부터 데이터 처리 시스템의 위치 엔진에 의해 행해진 복수의 위치 결정을 검색할 수 있다. 각 위치 결정은 각각의 제1식별자와 연관될 수 있다. 브리징 모듈은 매핑 함수을 사용하여 각각의 제1식별자를 각각의 제2식별자에 매핑할 수 있다. 제1암호화 모듈은 제2식별자와 각 위치 결정의 타임스탬프로 형성된 튜플로 인가된 제1해시 함수를 이용하여 각 위치 결정에 대한 제1해시값을 결정할 수 있다. 제1암호화 모듈은 제1암호화 데이터 세트를 생성하기 위해 제1암호화 프로토콜을 사용하여 각 위치 결정에 대한 제1해시값을 암호화할 수 있다. 통신 인터페이스는 컴퓨터 네트워크를 통해 제1암호화 데이터 세트를 하나 이상의 서버로 전송할 수 있다. 서버는 전자 트랜젝션를 처리할 수 있다. 통신 인터페이스는 전자 트랜젝션들에 대한 제2암호화 모듈에 의해 생성된 제2해시값을 포함하는 제2암호화 데이터 세트를 하나 이상의 서버로부터 수신할 수 있다. 각각의 제2해시값은 제2해시 함수를 각 전자 트랜젝션의 식별자와 타임스탬프로 형성된 튜플(tuple)에 제2암호화 모듈에 의해 생성될 수 있다. 제2암호화 데이터 세트는 제2암호화 프로토콜로 제2암호화 모듈에 의해 암호화될 수 있다. 제1암호화 프로토콜과 제2암호화 프로토콜은 교환 가능(commutative)한 암호화 프로토콜이다. 제1암호화 모듈은 제1암호화 프로토콜을 사용하여 하나 이상의 서버로부터 수신된 제2암호화 데이터 세트를 암호화하여 제1이중 암호화 데이터 세트를 생성할 수 있다. 통신 인터페이스는 데이터 처리 시스템에 의해 하나 이상의 서버로 전송된 제1암호화 데이터 세트에 제2암호화 프로토콜을 적용하는 것을 통해 제2암호화 모듈에 의해 생성된 제2이중 암호화 데이터 세트를 하나 이상의 서버들로부터 수신할 수 있다. 튜너는 제1이중 암호화 데이터 세트와 제2이중 암호화 데이터 세트를 비교하여, 정확한 위치 결정의 총수, 위치 결정의 총수 및 실제 위치 이벤트의 총수에 기초하여 정밀도 메트릭 및 리콜 메트릭을 결정할 수 있다. 튜너는 정밀도 메트릭 또는 리콜 메트릭 중 적어도 하나에 기초하여 위치 엔진의 튜닝 파라미터를 조정할 수 있다.
적어도 하나의 양태는 위치 엔진을 튜닝하기 위해 컴퓨터 네트워크를 통해 복수의 서버들 사이에서 전송된 위치 데이터를 암호화적으로 보호하는 방법에 관한 것이다. 이 방법은 데이터 처리 시스템의 하나 이상의 프로세서에 의해 실행되는 브리징 모듈에 의해, 데이터 처리 시스템의 위치 엔진에 의해 수행된 복수의 위치 결정을 검색하는 단계를 포함할 수 있다. 각 위치 결정은 각각의 제1식별자와 관련될 수 있고, 브리징 모듈은 메모리에 저장된 위치 데이터베이스로부터 복수의 위치 결정을 수신할 수 있다. 방법은 매핑 함수를 사용하여 각각의 제1식별자를 각각의 제2식별자에 매핑하는 브리징 모듈을 포함할 수 있다. 이 방법은 각 위치 결정의 제2식별자와 타임스탬프로 형성된 튜플에 적용된 제1해시 함수를 사용하여 각 위치 결정에 대한 제1해시값을 결정하는 하나 이상의 프로세서에 의해 실행되는 제1암호화 모듈을 포함할 수 있다. 이 방법은 제1암호화된 데이터 세트를 생성하기 위해 제1암호화 프로토콜을 사용하여 각각의 위치 결정에 대한 제1해시값을 암호화하는 제1암호화 모듈을 포함할 수 있다. 이 방법은 컴퓨터 네트워크를 통해 전자 트랜잭션을 처리하도록 구성된 하나 이상의 서버에 제1암호화 데이터 세트를 전송하는 데이터 처리 시스템의 통신 인터페이스를 포함할 수 있다. 상기 방법은 상기 전자 트랜젝션에 대한 제2암호화 모듈에 의해 생성된 제2해시값을 포함하는 제2암호화 데이터 세트를 상기 통신 서버로부터 수신하는 통신 인터페이스를 포함할 수 있다. 제2해시값들의 각각은 각 전자 트랜젝션의 식별자와 타임스탬프로 형성된 튜플에 제2해쉬 함수를 적용하는 것을 통해 제2암호화 모듈에 의해 생성될 수 있으며, 상기 제2암호화 데이터 세트는 제2암호화 프로토콜로 제2암호화 모듈에 의해 암호화된다. 제1암호화 프로토콜 및 제2암호화 프로토콜은 교환 가능한 암호화 프로토콜 일 수 있다. 이 방법은 제1이중 암호화 데이터 세트를 생성하기 위해 하나 이상의 서버로부터 수신된 제2암호화 데이터 세트를 암호화하기 위해 제1암호화 프로토콜을 사용하는 제1암호화 모듈을 포함할 수 있다. 이 방법은 데이터 처리 시스템에 의해 하나 이상의 서버로 전송된 제1암호화 데이터 세트에 제2암호화 프로콜의 적용을 통해 제2암호화 모듈에 의해 생성된 제2이중 암호화 데이터 세트를 하나 이상의 서버로부터 수신하는 통신 인터페이스를 포함할 수 있다. 이 방법은 데이터 처리 시스템에 의해 실행되어 정확한 위치 결정의 총수, 위치 결정의 총수 및 실제 위치 이벤트의 총수에 기초하여 정밀도 메트릭(metric)과 리콜 메트릭을 결정하도록 제1이중 암호화 데이터 세트와 제2이중 암호화 데이터 세트를 비교하는 튜너를 포함할 수 있다. 이 방법은 정밀도 메트릭(metric) 또는 리콜 메트릭 중 적어도 하나에 기초하여 위치 엔진의 튜닝 파라미터를 조정하는 튜너를 포함할 수 있다.
적어도 하나의 양태는 다수의 데이터 세트들 사이에서 식별자를 매칭시키는 방법에 관한 것이다. 이 방법은 제1식별자 벡터를 제3자 서버에 전송하는 단계를 포함할 수 있다. 제1식별자 벡터는 제1식별자, 복수의 제1파라미터 및 복수의 제2파라미터를 포함할 수 있다. 이 방법은 제3자 서버와 관련된 제3자 암호화에 기초하여 암호화된 제1식별자 벡터를 수신하는 단계를 포함할 수 있다. 이 방법은 제3자 서버와 연관된 제3자 암호화에 기초하여 암호화된 제2식별자 벡터를 제3자 서버로부터 수신하는 단계를 포함할 수 있다. 제2식별자 벡터는 제2식별자, 복수의 제3파라미터 및 복수의 제4파라미터를 포함할 수 있다. 상기 방법은 복수의 제1파라미터 중 일부와 복수의 제3파라미터 중 일부 및 복수의 제2파라미터 중 일부와 복수의 제4파라미터 중 일부사이의 매칭에 기초하여 제1식별자 벡터와 제2식별자 벡터 간의 상관 카운트를 결정하는 단계를 포함할 수 있다. 이 방법은 제1식별자 벡터와 제2식별자 벡터 사이의 상관 카운트에 기초하여 제1식별자가 제2식별자에 대응한다고 결정하는 단계를 포함할 수 있다. 상기 방법은, 제1식별자가 제2식별자에 대응한다고 결정한 것에 응답하여, 제1식별자 및 제2식별자 모두에 대한 하나의 식별자 키를 생성하는 단계를 포함할 수 있다.
적어도 하나의 양태는 다수의 데이터 세트들 사이에서 식별자를 매칭시키는 시스템에 관한 것이다. 상기 시스템은 매핑 모듈을 포함하는 데이터 처리 시스템을 포함할 수 있다. 데이터 처리 시스템은 제1식별자 벡터를 제3자 서버로 전송할 수 있다. 제1식별자 벡터는 제1식별자, 복수의 제1파라미터 및 복수의 제2파라미터를 포함할 수 있다. 데이터 처리 시스템은 제3자 서버와 연관된 제3자 암호화에 기초하여 암호화된 제1식별자 벡터를 제3자 서버로부터 수신할 수 있다. 데이터 처리 시스템은 제3자 서버와 관련된 제3자 암호화에 기초하여 암호화된 제2식별자 벡터를 수신할 수 있다. 제2식별자 벡터는 제2식별자, 복수의 제3파라미터 및 복수의 제4파라미터를 포함할 수 있다. 데이터 처리 시스템은 복수의 제1파라미터 중 일부와 복수의 제3파라미터 중 일부사이와 복수의 제2파라미터 중 일부와 복수의 제4파라미터 중 일부 사이의 매칭에 기초하여 제1식별자 벡터와 제2식별자 벡터간의 상관 카운트를 결정할 수 있다. 데이터 처리 시스템은 제1식별자 벡터와 제2식별자 벡터 사이의 상관 카운트에 기초하여 제1식별자가 제2식별자에 대응한다고 결정할 수 있다. 데이터 처리 시스템은 제1식별자가 제2식별자에 대응한다고 결정한 것에 응답하여, 제1식별자 및 제2식별자 모두에 대한 하나의 식별자 키를 생성할 수 있다.
이들 및 다른 양상들 및 구현들은 아래에서 상세히 논의된다. 전술한 정보 및 다음의 상세한 설명은 다양한 양상 및 구현의 예시적인 실시예를 포함하고 청구된 양상 및 구현의 본질 및 특성을 이해하기 위한 개요 또는 프레임 워크를 제공한다. 도면은 다양한 측면들 및 구현들의 예시 및 추가 이해를 제공하며, 본 명세서에 통합되어 본 명세서의 일부를 구성한다.
본 개시의 데이터 처리 시스템 및 방법은 제3자에 의해 사용되는 암호화 프로토콜을 은닉하는 방식으로 암호화된 제3자 엔티티로부터의 정보를 사용하여 위치 엔진의 성능을 평가할 수 있다. 데이터 처리 시스템은 평가에 기초하여 위치 엔진을 자동으로 조정하여 위치 엔진에 의한 위치 결정의 정확성을 향상시킬 수 있다.
본 명세서에서 설명된 주제의 하나 이상의 구현의 세부 사항은 첨부 도면 및 이하의 설명에서 설명된다. 주제의 다른 특징, 양상 및 장점은 상세한 설명, 도면 및 청구 범위로부터 명백해질 것이다.
도 1은 구현에 따라 네트워크를 통해 위치 엔진을 튜닝하기 위해 위치 데이터를 암호화적으로 보호하기 위한 시스템의 기능 블록도를 도시한다.
도 2는 구현에 따라 네트워크를 통해 위치 엔진을 튜닝하기 위해 위치 데이터를 암호화적으로 보호하기 위한 시스템을 도시한다.
도 3은 구현에 따라 상이한 데이터 세트들 사이에서 식별자들을 매칭시키는 방법을 도시하는 흐름도이다.
도 4는 구현에 따라 네트워크를 통해 위치 엔진을 튜닝하기 위해 위치 데이터를 암호화적으로 보호하는 방법을 나타내는 흐름도이다.
도 5는 구현에 따라 도 1 및 도 2에 도시된 시스템의 다양한 엘리먼트와 도 3 및 도 4에 개시된 방법을 구현하기 위해 사용될 수 있는 컴퓨터 시스템에 대한 일반적인 아키텍처를 나타내는 블록도이다.
다양한 도면에서 동일한 참조 번호 및 명칭은 동일한 요소를 나타낸다.
본 개시의 시스템 및 방법은 네트워크를 통해 엔티티들 또는 서버들간에 전송된 위치 데이터를 암호화적(cryptographically)으로 보호하고 하나 이상의 파라미터를 사용하여 위치 엔진을 튜닝하기 위해 위치 데이터를 평가하는 것에 관한 것이다. 예를 들어, 본 개시의 데이터 처리 시스템은 제3자에 의해 사용되는 암호화 프로토콜을 은닉하는 방식으로 암호화된 제3자 엔티티로부터의 정보를 사용하여 위치 엔진의 성능을 평가할 수 있다. 데이터 처리 시스템은 평가에 기초하여 위치 엔진을 자동으로 조정하여 위치 엔진에 의한 위치 결정의 정확성을 향상시킬 수 있다.
GPS, 휴대 전화 삼각 측량, WIFI 삼각 측량과 같은 위치 기술은 제한된 해상도를 가질 수 있다. 예를 들어, 특정 위치 기술을 사용하여 모바일 디바이스가 인구 밀도가 높은 지역의 특정 판매점 내에 있는지를 정확하게 식별하는 것은 어려울 수 있다. 게다가, 각 엔티티는 자체 암호화 프로토콜을 사용하여 데이터를 암호화하거나 은닉하기 때문에 다양한 위치 엔진, 서버, 컴퓨팅 디바이스 또는 엔티티가 수집하거나 결정한 데이터를 상호 참조하는 것이 어려울 수 있다. 따라서, 위치 엔진이 위치를 정확하게 결정하고, 상기 위치 결정을 다른 소스와 비교하여 위치 결정을 검증하는 것은 기술적으로 어려울 수 있다. 현재의 기술 솔루션은 적어도 일부 데이터를 해독하지 않고 엔티티의 데이터를 암호화적으로 보호하는 방식으로 위치 엔진을 튜닝하는데 사용될 수 있는 리콜 메트릭(reca11 metric)과 정밀도 메트릭(precision metric)을 결정함으로써 이러한 기술적 과제를 해결하는 것이다.
위치 엔진의 성능을 결정하기 위해, 데이터 처리 시스템은 리콜 메트릭 및 정밀도 메트릭을 결정하기 위해 위치 결정과 관련된 지상 실측(ground truth) 데이터를 수신 또는 액세스할 수 있다. 지상 실측 데이터는 현실(physical) 세계에서 실제 위치 이벤트를 나타낸다. 예를 들어, 신용 카드 트랜젝션(transaction) 프로세서와 같은 제3자 서비스 제공자는 네트워크를 통해 전자 요청을 수신하여 판매점의 물리적 매장에 위치한 POS디바이스로부터 카드 트랜젝션를 처리할 수 있다. 전자 상트랜젝션와 연관된 데이터 패킷이 판매점의 식별자 또는 위치를 식별하기 때문에 판매점의 POS디바이스에 의해 개시된 카드 트랜젝션는 지상 실측 위치 이벤트를 나타낼 수 있다. 카드 트랜젝션 프로세서는 지상 실측 위치 이벤트를 저장할 수 있고 지상 실측 데이터 세트를 데이터 처리 시스템으로 제공할 수 있다.
리콜 메트릭은 데이터 처리 시스템의 위치 엔진에 의해 행해진 정확한 위치 결정을 카드 트랜젝션 프로세서와 같은 제3자로부터 수신된 실측 데이터에 근거한 총 위치 레코드(records)의 수로 나눈 수로로 정의될 수 있다. 정밀도 메트릭은 데이터 처리 시스템의 위치 엔진에 의해 행해진 위치 결정을 데이터 처리 시스템의 위치 엔진에 의해 행해진 위치 결정의 총수로 나눈 수로서 정의될 수 있다.
카드 트랜젝션 프로세서의 카드 트랜젝션 데이터뿐만 아니라 위치 엔진에 의해 행해진 위치 결정을 암호화적으로 보호하기 위해, 데이터 처리 시스템은 이중 암호화 기술을 사용하여 사용자의 익명성을 유지하고 데이터 암호화에 사용되는 암호화 기술을 은닉할 수 있다. 예를 들어, 데이터 처리 시스템은 다음과 같은 기법을 사용하여 리콜 메트릭 및 정밀도 메트릭을 결정할 수 있다.
● 데이터 처리 시스템은 데이터 처리 시스템의 위치 엔진에 의해 이루어진 복수의 위치 결정을 수신할 수 있으며, 각각의 위치 결정은 각각의 제1식별자와 관련된다;
● 데이터 처리 시스템은 카드 트랜젝션 프로세서와 같은 제3자 엔티티로부터 위치 트랜젝션 레코드를 수신할 수 있으며, 각 위치 트랜젝션 레코드는 각각의 제2식별자와 관련된다;
● 데이터 처리 시스템은 소정의 매핑, 브리징(bridging) 또는 매칭 함수를 사용하여 제1개별 식별자를 제2개별 식별자에 매핑, 브리지 또는 매칭할 수 있다.
● 데이터 처리 시스템은 교환을 위한 데이터를 준비하기 위해 각 레코드의 제2식별자와 타임스탬프로 형성된 2개의 튜플(tuple)에 적용된 제1해시 함수를 사용하여 각 레코드의 해시값을 결정할 수 있다.
● 제3자 엔티티는 유사하게 제2식별자와 타임스탬프로 형성된 2개의 튜플에 제2해시 함수를 적용하여 각 레코드의 제2해시값을 결정함으로써 교환을 위한 데이터를 준비할 수 있다.
● 데이터 처리 시스템은 제1해시값에 제1암호화 함수를 적용할 수 있고, 제3자 엔티티는 제2해시값에 제2암호화 함수를 적용할 수 있다. 여기서 제1 및 제2암호화 함수는 상이하지만 모두 교환 가능하다.
● 데이터 처리 시스템은 제3엔티티로부터 제2암호화 함수로 암호화된 제2해시값을 수신한 다음 제1암호화 함수를 적용하여 제1 이중 암호화 데이터 세트를 생성할 수 있다.
● 제3자 엔티티는 제1암호화 함수로 암호화된 제1해시값을 수신한 다음 제2암호화 함수를 적용하여 제2 이중 암호화 데이터 세트를 생성할 수 있다.
● 데이터 처리 시스템은 제2 이중 암호화 데이터 세트를 수신하고 이를 제1 이중 암호화 데이터 세트와 비교하여 1) 정확한 위치 결정의 총 횟수; 2) 총 위치 수 결정; 및 3) 실제 위치 이벤트의 총 수;
● 데이터 처리 시스템은 위의 1-3을 사용하여 정밀도 메트릭과 리콜 메트릭을 생성할 수 있다.
● 데이터 처리 시스템은 1) 위치 엔진의 성능을 향상시키기 위해 리콜 및 정밀도 메트릭에 기초하여 위치 엔진의 튜닝 파라미터를 조정할 수 있고. 또는 2) 리콜 및 정밀도 메트릭을 사용하여 실시간 콘텐츠 선택을 용이하게 할 수 있다.
도 1은 구현에 따라 네트워크를 통해 위치 엔진을 튜닝하기 위해 위치 데이터를 암호화적으로 보호하기 위한 시스템의 기능 블록도를 나타낸다. 환경(100)은 판매점(170A-N)과 같은 하나 이상의 판매점를 포함한다. 판매점는 소매점 위치, 벽돌 및 박격포 상점 위치, 레스토랑, 에이전시, 약국, 비즈니스 장소, 서비스 제공 업체, 세탁소, 쇼핑몰 또는 플라자의 소매점, 전자 키오스크 또는 자동 판매기를 지칭할 수 있다. 판매점(170A-N)은 지리적으로 분산되거나 조밀하게 밀집될 수 있다. 예를 들어, 도시 환경 또는 쇼핑몰에서, 판매점 170A-N은 서로 가깝게 또는 서로 인접할 수 있다.
판매점(170A)은 트랜젝션 카드(125)와 인터렉션하는 POS디바이스 (115)를 사용하여 전자 트랜젝션를 수행할 수 있다. POS디바이스(115)는 판매점, 약국, 소매 상점, 의료 공급 상점 또는 상품 또는 서비스를 제공하는 다른 엔티티와 같은 엔티티를 포함하는 사용자 인터페이스를 통해 입력을 수신하는 것에 응답하여 전자 트랜젝션를 개시할 수 있다. 트랜젝션는 POS 단말기 또는 디바이스(115)를 통해 이루어질 수 있다. POS디바이스(115)는 체크 아웃 디바이스, 전자 POS디바이스 또는 트랜젝션를 용이하게 하기 위한 하드웨어 및 소프트웨어를 포함하는 다른 디바이스를 포함할 수 있다. POS디바이스(115)는 사용자 인터페이스를 경우하여 트랜젝션 카드(125)를 통해 금융 트랜젝션 정보를 수신하도록 구성될 수 있다. 트랜젝션 카드(125)는 플라스틱 신용 카드 또는 전자 무선 결제 방법을 지칭하고 포함할 수 있다. 예를 들어, 사용자는 직불 카드, 핀 번호, 모바일 결제 디바이스, 근거리 통신 지원(communication-enabled) 디바이스, 블루투스, 스마트 폰, 스마트 워치, 웨어러블 통신 디바이스, RFID 또는 기타 모바일 통신 디바이스와 같은, 트랜젝션 카드(125)를 통해 식별된 금융 계정에 해당하는 정보를 수신하도록 구성될 수 있으며, 하나 이상의 서버(160) 또는 데이터베이스와 통신하여 금융 트랜젝션 정보를 인증하고, 고객의 해당 전자 계정을 식별하며, 고객 계정으로부터 판매점(170A)로의 자금 이체를 개시하거나 또는 용이하게 할 수 있다. 트랜젝션는 계정 ID, 타임스탬프, 판매점 ID, 판매점 위치 또는 트랜젝션 금액과 같은 정보와 연관될 수 있습니다. 이 정보는 카드 트랜젝션 프로세서(160)의 서버에 의해 유지되고 관리되는 트랜젝션 저장소(repository)로 실시간으로 제공될 수 있다.
카드 트랜젝션 처리기(160) 또는 카드 트랜젝션 서버(160)는 전자 트랜젝션 수행에 응답하여 POS디바이스(115)에 의해 생성된 데이터 패킷을 네트워크(105)를 통해 수신할 수 있다. 데이터 패킷은 헤더 정보와 페이로드 정보를 포함할 수 있다. 다수의 데이터 패킷을 순서대로 함께 연결될 수 있다. 헤더 정보는 소스 포트, 목적지 포트, 시퀀스 번호, 확인 번호(acknowledgment number) 또는 윈도우 사이즈와 같은 필드들이 포함된 된 TCP/IP 헤더를 지칭할 수 있다. 데이터 패킷의 페이로드 정보는 트랜젝션, 판매점 또는 고객과 관련된 정보를 포함할 수 있다. 서버(160)는 헤더 정보와 페이로드 정보를 갖는 데이터 패킷을 수신하여 추가 처리를 위한 정보를 얻기 위해 패킷을 처리할 수 있다. 페이로드는 판매점, 전자 계정, 타임스탬프, 판매점 위치 또는 전자 트랜젝션의 금액을 식별하는 데이터를 포함할 수 있다. 서버(160)는 위치 정보 또는 타임스탬프를 버킷화(bucketize) 또는 양자화할 수 있다. 서버(160)는 전자 트랜젝션의 계정 식별자를 계정 식별자를 익명화하는 제2식별자에 매핑할 수 있다. 서버(160)는 계정 식별자, 제2식별자 타임스탬프 또는 위치 정보 중 하나 이상으로 해시값을 생성하고 암호화 프로토콜을 사용하여 해시값을 암호화하는 제2암호화 모듈(165)을 포함할 수 있다. 서버(160)는 암호화된 트랜젝션 데이터를 서버(160)의 데이터 저장소에 저장할 수 있다.
모바일 디바이스와 같은 컴퓨팅 디바이스(110)는 네트워크(105)를 통해 데이터 처리 시스템(120)과 인터렉션할 수 있다. 데이터 처리 시스템(120)은 컴퓨팅 디바이스(110)에 핑(ping)하거나 또는 컴퓨팅 디바이스(110)가 데이터 처리 시스템(120)과 통신을 개시할 수 있다. 데이터 처리 시스템(120)은 인터렉션에 기초하여 컴퓨팅 디바이스(110)의 위치를 결정하거나 식별하는 위치 엔진(135)을 포함할 수 있다. 예를 들어, 컴퓨팅 디바이스(110)는 데이터 처리 시스템(120)으로 위치 정보(예를 들어, 주소, 지리적 좌표, 맵 타일 식별자)를 제공하거나, 데이터 처리 시스템(120)이 수신된 정보(예를 들어, 휴대 전화 타워 삼각 측량, IP 주소 또는 WIFI 삼각 측량)에 기초하여 위치를 결정할 수 있다. 데이터 처리 시스템(120)은 컴퓨팅 디바이스(110)와 관련된 타임스탬프 또는 컴퓨팅 디바이스 식별자를 결정할 수 있다. 데이터 처리 시스템(120)은 타임스탬프 또는 위치 정보를 버킷화 또는 양자화할 수 있다. 데이터 처리 시스템(120)은 컴퓨팅 디바이스 식별자를 컴퓨팅 디바이스 식별자를 익명화하는 제2식별자에 매핑할 수 있다. 데이터 처리 시스템(120)(예를 들어, 제1암호화 모듈(145)을 통해)은 위치 결정, 타임스탬프 또는 제2식별자 중 하나 이상을 사용하여 해시값을 생성하고, 암호화 프로토콜을 사용하여 해시값을 암호화할 수 있다. 데이터 처리 시스템(120)은 암호화된 위치 결정과 대응하는 정보를 데이터 저장소(155)에 저장할 수 있다.
데이터 처리 시스템(120)의 통신 인터페이스는 데이터 처리 시스템(120)의 위치 엔진(135)에 의해 결정된 암호화된 위치 결정을 포함하는 제1암호화 데이터 세트를 전송할 수 있다. 데이터 처리 시스템(120)은 데이터를 암호화하는데 사용된 암호화 프로토콜 또는 그의 파라미터의 식별을 제공하거나 제공하지 않을 수 있다.
데이터 처리 시스템(120)의 통신 인터페이스(10)는 네트워크(105)를 통해 서버(160)로부터 암호화된 데이터 세트를 수신한다. 통신 인터페이스(130)는 서버 (160)로부터 이중 암호화된 데이터 세트를 수신한다. 예를 들어, 제2암호화 모듈(165)은 데이터 처리 시스템(120)으로부터 수신된 데이터 세트를 암호화할 수 있다. 제2암호화 모듈(165) 및 제1암호화 모듈(145)에 의해 사용되는 암호화 프로토콜은 동일하거나 상이할 수 있다. 암호화 프로토콜은 교환 속성(commutative property)을 가질 수 있으며 교환 가능한 암호화 프로토콜 일 수 있다. 암호화는 암호화 순서를 변경해도 결과가 변경되지 않는 경우 교환 속성을 가질 수 있다. 예를 들어, 제1암호화 프로토콜 A()은 다음과 같이 해시 함수 h(location_data)에서 해시값을 암호화하는데 사용될 수 있다: A(h(location_data)). 제2암호화 프로토콜 B()는 다음과 같이 해시값을 암호화하는데 사용할 수 있다: B(h(location_data)). 제1 A() 및 제2 B() 암호화 프로토콜은 상이할 수 있지만, 이중 암호화된 데이터 세트가 다음과 같으면 교환 속성을 가질 수 있다: A(B(h(location_data))) = B(A(h(location_data ))).
교환형 암호화 프로토콜 또는 암호 시스템은 상수 대수 구조(commutative algebraic structures)에 의존하는 수 이론(number theory)에 기초한 암호화 프로토콜을 포함할 수 있다. 예를 들어, 교환형 암호화 프로토콜은 RSA 암호 시스템(예를 들어, 암호화 키는 공개키이고 은닉되거나 비밀로 유지되는 해독 키와는 다르고, 이러한 비대칭으로 인해 두 개의 큰 소수의 곱을 인수 분해하기가 어렵기 때문에 해독 키없이 해독하는 것이 기술적으로 어려운) 또는 타원 곡선 암호화(예를 들어, 타원 곡선의 대수 구조를 기반으로 하는 공개키 암호화)와 같은 공개키 암호 시스템을 포함할 수 있다.
데이터 처리 시스템(120)은 카드 트랜젝션 서버(160)로부터 제2암호화 모듈(165)에 의해 생성된 이중 암호화 데이터 세트를 수신할 수 있다. 이중 암호화 데이터 세트를 수신하면, 데이터 처리 시스템(120)은 수신된 이중 암호화 데이터 세트를 데이터 처리 시스템(120)의 제1암호화 모듈(145)에 의해 생성된 이중 암호화 데이터 세트와 비교한다. 두 개의 암호화 프로세스가 이중 암호화 데이터 세트를 생성하기 위하여 각 데이터 세트에 적용된다. 차이는 암호화가 데이터 세트에 적용되는 순서일 수 있다. 일부 경우, 두 개의 암호화 프로토콜은 동일한 암호화 프로토콜, 서로 다른 암호화 프로토콜 또는 동일한 암호화 체계 또는 다른 파라미터를 사용하는 기술일 수 있다.
데이터 처리 시스템(120)(예를 들어, 튜너(150)를 통해)은 두 개의 이중 암호화 데이터 세트를 비교하여 데이터 세트 중에서 매칭하는 엔트리(entries) 또는 레코드의 수를 식별할 수 있다. 매칭하는 엔트리 또는 레코드의 수는 정확한 데이터 처리 시스템(120)의 위치 엔진(135)에 의해 행해진 다수의 위치 결정을 나타낼 수 있다. 서버(160)에 의해 생성된 트랜젝션 데이터 세트내의 총 엔트리의 수는 실제 또는 방문의 수 또는 판매점 위치에서 발생한 트랜젝션에 기초하기 때문에 지상 실측 데이터를 나타낼 수 있다.
데이터 처리 시스템 (120)(예를 들어, 튜너(150)를 통해)은 정확한 데이터 처리 시스템의 위치 엔진에 의해 행해진 위치 결정을 카드 트랜젝션 프로세서와 같은 제3자로부터 수신된 실측 데이터에 기초한 총 위치 레코드의 수로 나눈 수로서 리콜 메트릭을 결정할 수 있다. 데이터 처리 시스템(120)(예를 들어, 튜너(150)를 통해)은 데이터 처리 시스템의 위치 엔진에 의해 행해된 위치 결정을 데이터 처리 시스템(120)의 위치 엔진(135)에 의해 수행된 위치 결정의 총 수로 나눈 수로서 정밀도 메트릭을 결정할 수 있다.
도 2는 구현에 따라 네트워크를 통해 위치 엔진을 튜닝하기 위해 위치 데이터를 암호화적으로 보호하기 위한 시스템을 도시한다. 시스템(200)은 콘텐츠 선택 인프라구조를 포함할 수 있다. 시스템(200)은 네트워크(105)를 통해 콘텐츠 제공자 (225), 콘텐츠 발행자(215) 또는 컴퓨팅 디바이스(110) 중 하나 이상과 통신하는 데이터 처리 시스템(120)을 포함할 수 있다. 네트워크(105)는 인터넷, 로컬, 광역, 메트로, 또는 다른 영역 네트워크, 인트라넷, 위성 네트워크 및 음성 또는 데이터 모바일 전화 네트워크와 같은 다른 통신 네트워크를 포함할 수 있다. 네트워크(105)는 랩탑, 데스크탑, 태블릿, 개인 휴대 정보 단말기, 스마트폰 또는 휴대용 컴퓨터과 같은 적어도 하나의 컴퓨팅디바이스(110) 상에 디스플레이될 수 있는 웹 페이지, 웹 사이트, 도메인 이름 또는 URL과 같은 정보 자원을 액세스하는데 사용될 수 있다. 예를 들어, 네트워크(105)를 통해 컴퓨팅 디바이스(110)의 사용자는 적어도 하나의 웹 사이트 운영자 또는 콘텐츠 발행자(215)에 의해 제공되는 웹 페이지에 액세스할 수 있다. 이 예에서, 컴퓨팅 디바이스(110)의 웹 브라우저는 웹 사이트 운영자 또는 콘텐츠 발행자(215)의 웹 서버를 액세스하여 컴퓨팅 디바이스 (110)의 모니터 상에 디스플레이하기 위한 웹 페이지를 검색할 수 있다. 웹 사이트 운영자 또는 콘텐츠 발행자(215)는 일반적으로 웹 페이지를 조작하는 엔티티를 포함한다. 일 구현 예에서, 웹 사이트 운영자 또는 콘텐츠 발행자(215)는 웹 페이지를 컴퓨팅 디바이스(110)가 이용 가능하게 하기 위해 네트워크(105)와 통신하는 적어도 하나의 웹 페이지 서버를 포함한다.
네트워크(105)는 임의 유형 또는 형태의 네트워크일 수 있으며, 점대점 (point-to-point) 네트워크, 브로드 캐스트 네트워크, 광역 네트워크, 로컬 영역 네트워크, 원격 통신(telecommuincations) 네트워크, 데이터 통신 네트워크, 컴퓨터 네트워크, ATM(Asynchronous Transfer Mode) 네트워크, SONET(Synchronous Optical Network) 네트워크, SDH(Synchronous Digital Hierarchy) 네트워크, 무선 네트워크 및 유선 네트워크를 포함할 수 있다. 네트워크(105)는 적외선 채널 또는 위성 대역과 같은 무선 링크를 포함할 수 있다. 네트워크(105)의 토폴로지는 버스, 스타(star) 또는 링 네트워크 토폴로지를 포함할 수 있다. 네트워크는 진보된 모바일 전화 프로토콜("AMPS"), 시분할 다중 접속("TDMA"), 코드 분할 다중 접속("CDMA"), 이동 통신용 범용 시스템("GSM"), 범용 패킷 무선 서비스 ("GPRS") 또는 범용 이동 통신 시스템("UMTS")을 포함하는, 모바일 디바이스들간의 통신에 사용된 임의의 프로토콜 또는 프로토콜들을 사용하는 모바일 전화 네트워크들을 포함할 수 있다. 상이한 유형의 데이터가 상이한 프로토콜을 통해 전송되거나 동일한 유형의 데이터가 상이한 프로토콜을 통해 전송될 수 있다.
시스템(200)은 적어도 하나의 데이터 처리 시스템(120)을 포함할 수 있다. 데이터 처리 시스템(120)은 예를 들어 컴퓨팅 디바이스(110), 웹 사이트 운영자 또는 콘텐츠 발행자 컴퓨팅 디바이스(215)(또는 콘텐츠 발행자(215)) 및 적어도 하나의 콘텐츠 제공자 컴퓨팅 디바이스(225)(또는 제공자 디바이스(225) 또는 콘텐츠 제공자(225))와 네트워크(105)를 통해 통신하기 위한 프로세서를 갖는 컴퓨팅 디바이스와 같은 적어도 하나의 논리 디바이스를 포함할 수 있다. 데이터 처리 시스템(120)은 적어도 하나의 서버를 포함할 수 있다. 예를 들어, 데이터 처리 시스템(120)은 적어도 하나의 데이터 센터에 위치한 복수의 서버를 포함할 수 있다. 데이터 처리 시스템(120)은 논리적으로 그룹화된 다수의 서버들을 포함할 수 있고 분산 컴퓨팅 기술을 용이하게 할 수 있다. 논리적 서버 그룹은 서버 팜(farm) 또는 기계 팜으로 지칭될 수 있다. 서버는 또한 지리적으로 분산될 수 있다. 기계 팜은 단일 엔티티로 관리될 수 있으나 기계 팜은 복수의 기계 팜을 포함할 수 있다. 각 시스템 팜 내의 서버들은 하나 이상의 서버 또는 시스템이 하나 이상의 운영 체제 플랫폼 유형에 따라 작동할 수 있는 이종 서버일 수 있다.
기계 팜에 있는 서버들은 관련 저장 시스템과 함께 고밀도 랙(rack) 시스템에 저장될 수 있으며 기업(enterprise) 데이터 센터에 위치할 수 있다. 예를 들어 이러한 방식으로 서버를 통합하면 지역화된 고성능 네트워크 상에 서버 및 고성능 저장 시스템을 위치시킴으로써 시스템 관리성(manageability), 데이터 보안, 시스템의 물리적 보안 및 시스템 성능을 향상시킬 수 있다. 서버 및 저장 시스템을 포함하는 데이터 처리 시스템(120) 컴포넌트의 전부 또는 일부를 집중화하고, 이들을 통합(advanced) 시스템 관리 툴과 결합시키는 것은 서버 자원의 보다 효율적인 사용을 가능케 하므로 전력 및 처리 요구 사항을 절약하고 대역폭 사용을 줄일 수 있게 한다.
데이터 처리 시스템(120)은 적어도 하나의 서버를 갖는 콘텐츠 배치 시스템을 포함할 수 있다. 데이터 처리 시스템(120)은 적어도 하나의 통신 인터페이스(130), 적어도 하나의 위치 엔진(135), 적어도 하나의 브리징(bridging) 모듈(140), 적어도 하나의 제1암호화 모듈(145), 적어도 하나의 튜너(150) 또는 적어도 하나의 데이터 저장소(repository)(155) 중의 하나 이상을 포함할 수 있다. 통신 인터페이스(130), 위치 엔진(135), 브리징 모듈(140), 제1암호화 모듈(145) 및 튜너(150)는 각각 프로그래머블 로직 어레이 엔진과 같은 적어도 하나의 프로세싱 유닛 또는 다른 로직 디바이스를 포함할 수 있거나, 데이터 저장소 또는 데이터베이스(155)와 통신하기 위한 모듈을 포함할 수 있다. 통신 인터페이스(130), 위치 엔진(135), 브리징 모듈(140), 제1암호화 모듈(145) 및 튜너(150)는 개별 컴포넌트, 단일 컴포넌트 또는 데이터 처리 시스템(120)의 일부일 수 있다. 데이터 치리 시스템과 같은 시스템(200) 및 그의 컴포넌트는 하나 이상의 프로세서, 논리 디바이스 또는 회로와 같은 하드웨어 엘리먼트를 포함할 수 있다. 데이터 저장소(155)는 위치 데이터 구조 또는 데이터베이스(230), 맵 데이터 구조 또는 데이터베이스 (235), 해시 데이터 구조 또는 데이터베이스(240), 파라미터 데이터 구조 또는 데이터베이스(245) 및 메트릭 데이터 구조 또는 데이터베이스(250)과 같은 메모리 또는 다른 저장 디바이스에 하나 이상의 데이터 구조 또는 데이터베이스를 저장할 수 있다. 일부 구현 예들에서, 데이터 처리 시스템(120)은 제2암호화 모듈(165)을 포함하는 카드 트랜젝션 프로세서의 서버와 같은 제3자 서버(160)에 액세스할 수 있다. 제3자 서버(160)는 판매점에서 하나 이상의 POS디바이스를 통해 수행되는 전자 트랜젝션를 처리할 수 있다.
데이터 처리 시스템(120)은 복수의 컴퓨팅 디바이스(110)와 관련된 익명의 컴퓨터 네트워크 액티비티 정보를 얻을 수 있다. 컴퓨팅 디바이스(110)의 사용자는 데이터 처리 시스템(120)을 긍정으로 인증하여 사용자의 컴퓨팅 디바이스(110)에 대응하는 네트워크 액티비티 정보를 획득할 수 있다. 예를 들어, 데이터 처리 시스템(120)은 컴퓨팅 디바이스(110)의 사용자에게 하나 이상의 유형의 네트워크 액티비티 정보를 얻는 것에 대한 동의를 촉구할 수 있다. 컴퓨팅 디바이스(110)의 사용자의 신원은 익명으로 유지될 수 있으며 컴퓨팅 디바이스(110)는 고유한 식별자(예를 들어, 데이터 처리 시스템 또는 컴퓨팅의 사용자에 의해 제공된 사용자 또는 컴퓨팅 디바이스에 대한 고유 식별자)와 관련될 수 있다. 데이터 처리 시스템은 각 관찰을 대응하는 고유 식별자와 연관시킬 수 있다.
여기에서 설명된 시스템이 사용자에 관한 개인 정보를 수집하거나 개인 정보를 사용할 수 있는 경우, 사용자는 개인 정보(예를 들어, 사용자의 소셜 네트워크에 대한 정보, 소셜 액션 또는 액티비티, 사용자의 선호도 또는 사용자의 현재에 대한 정보)를 수집할 수 있는 프로그램 또는 기능을 제어할지 또는 사용자에게 더 관련이 있을 수 콘텐츠를 콘텐츠 서버로부터 수신할지 또는 어떻게 수신할지를 제어할 수 있는 기회를 제공받을 수 있다. 게다가, 특정 데이터는 파라미터(예를 들어, 인구 통계 파라미터)를 생성할 때 사용자에 대한 특정 정보가 제거될 수 있도록 저장 또는 사용되기 전에 하나 이상의 방식으로 처리될 수 있다. 예를 들어, 사용자의 신원은 사용자에 대한 어떠한 식별 정보도 결정될 수 없도록 처리되거나 또는 사용자의 특정 위치가 결정될 수 없도록 사용자의 지리적 위치는 위치 정보가 획득되는 곳(도시, 우편 번호 또는 주 수준)으로 일반화될 수 있다. 따라서, 사용자는 사용자에 관한 정보 수집 방법 및 콘텐츠 서버에 의한 사용 방법을 제어할 수 있다.
일부 구현 예들에서, 데이터 처리 시스템(120)은 콘텐츠 선택기를 포함할 수 있다. 콘텐츠 선택기는 후보 콘텐츠 아이템의 주제(subject matter)가 웹 페이지에 대응하는지를 결정하기 위해 후보 콘텐츠 아이템의 주제를 분석, 파싱 또는 처리할 수 있다. 콘텐츠 선택자는 이미지 처리 기술, 문자 인식 기술 또는 데이터베이스 탐색(lookup)을 사용하여 후보 콘텐츠 아이템의 용어, 문자, 텍스트, 기호 또는 이미지를 식별, 분석 또는 인식할 수 있다. 후보 콘텐츠 아이템은 후보 콘텐츠 아이템의 주제가 웹 페이지 또는 검색 쿼리에 해당하는지를 결정하기 위해 콘텐츠 선택기가 메타 데이터를 처리할 수 있는 경우, 후보 콘텐츠 아이템의 주제를 나타내는 메타 데이터를 포함할 수 있다.
콘텐츠 제공자(225)는 콘텐츠 아이템을 포함하는 콘텐츠 캠페인(campaign)을 설정할 때 추가적인 인디케이터를 제공할 수 있다. 콘텐츠 제공자(225)는 콘텐츠 선택자가 후보 콘텐츠 아이템에 관한 정보를 사용하여 탐색을 수행함으로써 식별 할 수 있는 콘텐츠 캠페인 또는 콘텐츠 그룹 레벨에서 정보를 제공할 수 있다. 예를 들어, 후보 콘텐츠 아이템은 콘텐츠 그룹, 콘텐츠 캠페인 또는 콘텐츠 제공자에 매핑될 수 있는 고유 식별자를 포함할 수 있다. 콘텐츠 선택기는 콘텐츠 제공자에 관한 데이터 저장소(155)에 저장된 정보에 기초하여 결정할 수 있다.
데이터 처리 시스템(120)은 다양한 기술을 사용하여 콘텐츠를 선택할 수 있다. 예를 들어, 데이터 처리 시스템(120)은 파트너 콘텐츠 선택 네트워크로부터의 소개(referral) 또는 리드(lead)로부터 콘텐츠를 선택할 수 있다. 일부 구현 예에서, 콘텐츠는 키워드 또는 매칭 기법을 사용한 선택이 아니라 추천 또는 리드를 기반으로 선택될 수 있다.
예를 들어, 데이터 처리 시스템(120)은 콘텐츠에 대한 요청을 수신할 수 있다. 요청은 데이터 처리 시스템의 검색 엔진에 입력되는 검색 쿼리와 같은 키워드 또는 쿼리를 포함할 수 있다. 입력 쿼리는 예를 들어 텍스트, 문자 또는 기호를 포함할 수 있다. 데이터 처리 시스템(120)은 네트워크(105)를 통해 컴퓨팅 디바이스(110)로부터 입력 쿼리를 수신할 수 있다. 입력 쿼리는 컴퓨팅 디바이스(110)의 사용자가 말한 단어와 같은 오디오를 포함할 수 있고 네트워크를 통해 데이터 처리 시스템의 검색 엔진으로 입력될 수 있다. 요청은 요청에 응답하여 콘텐츠 선택을 용이하게 하는 정보를 포함하거나 연관될 수 있다. 정보는 예를 들어, 전자 문서, 웹 페이지, 전자 애플리케이션 또는 선택된 콘텐츠가 디스플레이될 유기적 비 광고 링크(organic, non-advertisement link)에 관한 문맥 정보를 포함할 수 있다. 데이터 처리 시스템(120)은 입력 텍스트 박스, 버튼, 드롭 다운 또는 위젯을 표시하는 인터페이스를 제공하여 클라이언트의 사용자가 검색 카테고리를 선택하거나 지시할 수 있다.
검색 쿼리 또는 콘텐츠(예를 들어, 전자 광고)에 대한 다른 요청에 응답하여, 데이터 처리 시스템(콘텐츠 선택기를 통해 예)은 요청하는 컴퓨팅 디바이스 (110) 또는 콘텐츠 요청과 관련된 일부 다른 컴퓨팅 디바이스(110)를 통해 제공 또는 제시될 수 있는 콘텐츠를 식별, 선택 또는 획득할 수 있다. 일부 구현예들에서, 데이터 처리 시스템(120)은 임의의 요청 수신에 응답하지 않는 콘텐츠를 식별, 선택 또는 획득할 수 있다. 콘텐츠는 예를 들어 텍스트, 문자, 심볼, 이미지, 비디오, 오디오 또는 멀티미디어 콘텐츠를 포함할 수 있다. 콘텐츠는 전화 번호, 가상 전화 번호 또는 추가 전화 번호(call extension)를 포함할 수 있다. 콘텐츠 아이템은 콘텐츠 제공자들이 제공하고 데이터 처리 시스템(예를 들어, 콘텐츠 선택기를 통해)이 검색 결과 페이지와 함께 디스플레이하기는 스폰서 링크 형태의 광고를 포함할 수 있다. 콘텐츠 아이템은 콘텐츠 제공자에게 리포팅 데이터를 제공하는 것을 용이하게 하는 전화 번호에 대한 링크 또는 버튼을 포함할 수 있다. 콘텐츠 아이템이 가상 전화 번호 또는 추가 전화 번호를 포함하는 경우, 콘텐츠 아이템은 통화 콘텐츠 아이템으로 지칭될 수 있다. 콘텐츠 요청은 온라인 광고, 기사, 판촉, 쿠폰 또는 제품 설명에 대한 요청을 포함할 수 있다. 데이터 처리 시스템(120)은 예를 들어 컴퓨팅 디바이스(110)와 같은 컴퓨팅 디바이스로부터 요청을 수신할 수 있다. 예를 들어, 데이터 처리 시스템(120)은 모바일 디바이스(예를 들어, 스마트 폰 또는 태블릿)에서 실행하는 모바일 애플리케이션과 같은 컴퓨팅 디바이스(110) 상에서 실행되는 애플리케이션을 통해 요청을 수신할 수 있다. 일부 경우에, 데이터 처리 시스템(120)은 별도로 콘텐츠 요청을 수신하지 않을 수 있고, 대신에 검색 쿼리 또는 검색 결과에 응답하여 콘텐츠(예를 들어, 광고)를 선택 및 제공할 수 있다. 일부 예에서, 웹 페이지는 웹 페이지(예를 들어, 모바이 디바이스(110)을 통해)를 방문하는 모바일 장치(110)의 사용자 응답하여 데이터 처리 시스템(120)으로부터 콘텐츠를 요청할 수 있다.
콘텐츠 요청은 콘텐츠 선택을 용이하게 하는 정보를 포함할 수 있다. 예를 들어, 데이터 처리 시스템(120)은 콘텐츠 또는 콘텐츠 선택의 식별을 용이하게 하기 위해 컴퓨팅 디바이스(110)로부터 정보를 요청할 수 있다. 데이터 처리 시스템(120)은 컴퓨팅 디바이스(110)로부터 콘텐츠 요청을 수신하는 것에 응답하여 정보를 요청하거나 획득할 수 있다. 정보는 콘텐츠를 표시하거나 조작하기 위하여 컴퓨팅 장치(110)상의 콘텐츠(예를 들어,콘텐츠 슬롯 크기 또는 위치) 또는 컴퓨팅 장치 (110)의 이용 가능한 리소스를 디스플레이하는 것에 관한 정보를 포함할 수 있다.
데이터 처리 시스템(120)은 콘텐츠 요청에 응답하고, 또는 그렇지 않으면 온라인 문서(예를 들어,웹 페이지)에 디스플레이하기 위한 후보인 다수의 콘텐츠 아이템 (예를 들어,제1후보 콘텐츠 아이템 및 제2후보 콘텐츠 아이템)을 식별할 수 있다. 데이터 처리 시스템은 온라인 경매 프로세스를 개시 또는 이용하여 온라인 문서에 디스플레이하기 위한 하나 이상의 다수의 콘텐츠 아이템을 선택할 수 있다. 경매 시스템은 온라인 문서에 디스플레이될 콘텐츠 아이템에 대한 2개 이상의 입찰가를 결정할 수 있다. 경매 시스템은 하나 이상의 최상위 입찰가 또는 낙찰가를 결정하기 위해 경매 프로세스를 통해 입찰가를 실행할 수 있다. 가장 높은 순위 또는 낙찰된 입찰에 해당하는 콘텐츠 아이템은 온라인 문서에서 또는 온라인 문서와 함께 표시되기 위해 선택될 수 있다.
데이터 처리 시스템(120)은 컴퓨팅 디바이스(110)의 위치를 수신, 식별 또는 결정하도록 설계되고 구성된 위치 엔진(135)을 포함할 수 있다. 위치 엔진(135)은 컴퓨팅 디바이스(110)와 관련된 지리적 위치 데이터 포인트를 수신할 수 있고, 컴퓨팅 디바이스(110)의 위치를 결정하는데 사용될 수 있는 하나 이상의 파라미터 또는 튜닝 파라미터들로 구성될 수 있다. 데이터 처리 시스템(120)은 TCP/IP 프로토콜, 셀룰러 폰 데이터 네트워크 또는 컴퓨터 네트워크(105)의 다른 통신 프로토콜을 통한 컴퓨터 네트워크(105)를 통하여 데이터 포인트를 수신할 수 있다. 데이터 포인트가 위치 정보 및 시간 정보를 포함할 수 있거나, 데이터 처리 시스템(120)이 컴퓨팅 디바이스(110)로부터 데이터 포인트를 수신할 때 수신된 데이터 포인트와 관련된 위치 또는 시간 정보를 결정할 수 있다. 데이터 처리 시스템(120)은 또한 고유 컴퓨팅 디바이스 식별자 또는 컴퓨팅 디바이스(110)상에서 실행되는 애플리케이션과 관련된 사용자 명과 같은 데이터 포인트와 관련된 제1식별자를 수신할 수 있다.
컴퓨팅 디바이스(110)상에서 실행되는 애플리케이션(예를 들어, 모바일 애플리케이션, 모바일 운영 시스템, 웹 브라우저 또는 맵 애플리케이션)은 위치 정보를 포함하는 지리적 위치 데이터 포인트를 전송할 수 있다. 모바일 컴퓨팅 디바이스(110)는 주기적으로 데이터 처리 시스템(120) 또는 다른 중간 시스템에 핑(ping)하여 위치 또는 시간 정보를 제공할 수 있다. 일부 경우에, 스마트폰 또는 다른 셀룰러 기반 컴퓨팅 디바이스(110)는 휴대 전화 타워 시스템을 핑할 수 있으며, 휴대 전화 타워 시스템은 위치 또는 시간 정보를 데이터 처리 시스템(120)으로 제공할 수 있다.
데이터 처리 시스템(120)은 지리적 위치 데이터 포인트 또는 핑을 실시간으로 또는 주기적으로(예를 들어,10분, 5분, 1분, 30초 또는 여기에 기술된 시스템 및 방법을 용이하게 할 수 있는 다른 주기)과 같은 소정의 시간 간격으로 수신할 수 있다. 위치 엔진(135)의 튜닝 파라미터는 소정의 시간 간격을 포함할 수 있다. 데이터 처리 시스템(120)은 컴퓨팅 디바이스(110) 또는 다수의 컴퓨팅 디바이스(110)와 관련된 다수의 지리적 위치 데이터 포인트가 단일 업로드 프로세스로 데이터 처리 시스템(120)으로 제공될 수 있는 주기적으로 실행되는 배치 프로세스에서 데이터 포인트를 수신할 수 있다. 일부 경우, 컴퓨팅 디바이스(110)는 데이터 포인트를 실시간, 주기적으로 또는 배치 프로세스로 데이터 처리 시스템(120)으로 푸싱(push)할 수 있다.
데이터 포인트는 예를 들어 GPS, Wi-Fi, IP 어드레스, 블루투스, 비콘 기술, 무선 주파수 식별(RFID), 근거리 통신 기술 또는 셀 타워 삼각 측량 기술에 기초하여 지리적 위치 데이터 포인트의 지리적 위치 정보를 포함하거나 데이터 프로세싱 시스템(120)이 결정할 수 있다. 일부 구현 예들에서, 데이터 처리 시스템(120)은 위도 및 경도 좌표를 결정할 수 있고 위도 및 경도 좌표를 포함하는 더 큰 지리적 영역 또는 셀을 식별할 수 있다. 지리적 위치는 위도 또는 경도 좌표에 해당되거나 예를 들어 더 크거나 더 작은 영역에 해당될 수 있다. 일부 구현 예들에서, 수신된 데이터 포인트는 예를 들어, 위도 및 경도 좌표, 지리 정보 시스템( "GIS") 정보, 국가, 주,시, 군, 도시 또는 구역을 포함하는 지리적 위치 정보를 포함하거나 데이터 처리 시스템(120)이 결정할 수 있다. 데이터 처리 시스템(120)은 컴퓨팅 디바이스(110)와 관련된 지리적 위치 정보에 대한 스크립트(scripted) 액세스를 제공할 수 있는 애플리케이션 프로그래밍 인터페이스( "API")를 통해 컴퓨팅 장치 (110)와 관련된 지리적 위치 정보를 수신하거나 식별할 수 있다. 예를 들어, 지리 API 규격은 월드 와이드 웹 컨소시엄("W3C")과 관련된 규격을 포함할 수 있다. 일 실시 예에서, 컴퓨팅 디바이스(110)의 사용자는 위치에 체크 인하거나 또는 그렇지 않으면 컴퓨팅 디바이스(110)에서 실행중인 애플리케이션 또는 사용자가 위치에 있는 데이터 처리 시스템에 선언함으로써 위치를 주도적으로 선언한다
일부 구현 예들에서, 컴퓨팅 디바이스(110)의 지리적 위치는 GPS(global positioning system), 셀 타워 삼각 측량 또는 Wi-Fi 핫 스폿 중 적어도 하나를 통해 결정될 수 있다. 일부 구현 예에서, 데이터 처리 시스템(120)은 결정된 지리적 데이터 포인트(예를 들어,GPS 기반 위치 정보는 IP 기반 위치 정보보다 더 정확할 수 있다)의 정확도를 결정하기 위해 지리적 위치를 결정하는데 사용된 기술을 식별하거나 결정할 수 있다. 데이터 처리 시스템(120)은 또한 정보 자원과의 사용자 인터렉션에 기초하여 지리적 위치 정보를 결정할 수 있다. 일부 구현 예들에서, 컴퓨팅 디바이스(110)는 GPS를 포함할 수 있다. 일부 구현 예들에서, 데이터 처리 시스템(120)은 인터넷 프로토콜 ("IP") 어드레스에 기초하여 지리적 위치를 결정할 수 있다. 예를 들어, 컴퓨팅 디바이스(110)는 GPS센서 또는 안테나를 포함할 수 있고 컴퓨팅 디바이스(110)의 GPS 위치를 결정하도록 구성될 수 있다. 데이터 처리 시스템(120)은 또한 컴퓨팅 디바이스의 위치를 삼각 측량하기 위해 하나 이상의 셀 타워로부터 획득된 정보를 이용하여 지리적 위치를 결정할 수 있다. 예를 들어, 하나의 셀 타워, 2개의 셀 타워 또는 3개의 셀 타워로부터 수신된 하나의 정보에 기초하여 결정된 지리적 위치가 콘텐츠 선택에 충분할 수 있다. 일부 구현 예들에서, Wi-Fi 핫스팟은 고정적이고 랜드 마크로서 사용될 수 있기 때문에 Wi-Fi 핫스팟은 지리적 위치 결정을 용이하게 할 수 있다. 예를 들어, Wi-Fi 핫스팟에 대한 컴퓨팅 디바이스(110)의 관계는 컴퓨팅 디바이스(110)의 지리적 위치를 결정하는 것을 용이하게 할 수 있다.
일부 경우에, 위치 엔진(135)은 컴퓨팅 디바이스(110)의 위치를 결정하기 위해 컴퓨팅 디바이스(110)로부터 수신되거나 또는 이와 연관된 위치 핑 또는 위치 데이터 포인트를 클러스터링할 수 있다. 위치 엔진(135)은 시간 간격, 거리 임계값, 또는 시간 간격 및 거리 임계값 모두를 포함할 수 있다.
예를 들어, 위치 엔진(135)은 제1 데이터 포인트(또는 초기 데이터 포인트) 및 후속 데이터 포인트를 포함하는 위치 클러스터를 생성할 수 있다. 데이터 포인트는 위도 및 경도 좌표, 타임스탬프 또는 컴퓨팅 디바이스 식별자를 포함하거나 나타낼 수 있다. 제1데이터 포인트는 데이터 처리 시스템(120)이 위치 클러스터를 생성하기 위해 후속 데이터 포인트 중 어느 것이 거리 임계값을 만족시키는지를 식별하는데 사용할 수 있는 중심 데이터 포인트(centroid data point)를 지칭할 수 있다. 후속 데이터 포인트로 지칭되는 동안, 후속 데이터 포인트는 데이터 처리 시스템(120)에 의해 제1데이터 포인트와 관련하여 시간상 나중에 수신될 수 있지만 반드시 수신될 필요는 없다. 데이터 처리 시스템(120)은 시간 계수, 위치 계수 또는 다른 로직에 기초하여 제1데이터 포인트를 식별할 수 있다. 데이터 처리 시스템(120)은 반경(예를 들어,10마일, 20마일, 50마일) 내에서 가장 먼저 수신된 데이터 포인트로서 제1데이터 포인트를 식별할 수 있다. 다른 구현 예에서, 데이터 처리 시스템(120)은 소정의 시간 간격(예를 들어,5분, 10분, 15분, 30분 또는 1시간의 스팬에서 수신된 모든 데이터 포인트) 내에 수신된 복수의 데이터 포인트를 식별하고 다음 복수의 데이터 포인트의 중심 데이터 포인트를 식별하는 것에 기초하여 제1데이터 포인트를 식별할 수 있다.
일 구현에서, 제1데이터 포인트가 시간에 기초한 제1데이터 포인트인 경우, 후속 데이터 포인트는 제1데이터 포인트 이후에 수신된(또는 타임스탬프를 포함하는) 데이터 포인트를 나타낸다. 후속 데이터 포인트는 제1데이터 포인트 이후 바로 타임스탬프를 갖는 하나 이상의 데이터 포인트를 나타낼 수 있다. 제1데이터 포인트를 식별하면, 데이터 처리 시스템(120)은 각각의 후속 데이터 포인트가 거리 임계 값을 만족하는지 결정함으로써 후속 데이터 포인트를 갖는 클러스터를 생성할 수 있다. 데이터 처리 시스템(120)은 제1데이터 포인트를 식별하고 제1데이터 포인트의 위치를 제2데이터 포인트의 위치와 비교할 수 있다. 만약 제2데이터 포인트가 제1데이터 포인트의 거리 임계값 내에 있으면, 데이터 처리 시스템(120)은 제1데이터 포인트와 제2데이터 포인트를 포함하는 위치 클러스터를 생성한다. 데이터 처리 시스템(120)은 제2데이터 포인트에 후속하는 제3데이터 포인트를 식별하여 제3데이터 포인트를 제1데이터 포인트와 비교할 수 있다. 이 예에서, 데이터 처리 시스템(120)은 각각의 후속 데이터 포인트의 거리를 제1데이터 포인트와 비교한다. 만약 제1데이터 포인트와 제3데이터 포인트 사이의 거리가 임계 거리를 만족하면, 데이터 처리 시스템(120)은 제3데이터 포인트를 갖는 클러스터를 생성하거나 제3데이터 포인트를 생성중인 클러스터에 추가할 수 있다. 만약 제3데이터 포인트가 임계 거리를 만족하지 않으면(예를 들어, 임계 거리를 초과하는 경우), 데이터 처리 시스템(120)은 위치 클러스터에 데이터 포인트를 포함하지 않을 수 있다. 일부 경우에서, 데이터 처리 시스템(120)은 제3포인트를 제2위치 클러스터의 새로운 초기 또는 새로운 제1데이터 포인트로 식별하여 상기와 유사한 방식으로 제3데이터 포인트에 후속하는 데이터 포인트를 처리하도록 진행할 수 있다.
위치 엔진(135)은 상이한 거리(예를 들어, 10미터, 20미터, 30미터, 50미터 또는 컴퓨팅 디바이스(110)의 위치 결정을 용이하게 하는 다른 거리 임계값)에 해당하는 하나 이상의 거리 임계값(예를 들어, 제1, 제2, 제3, 제4거리 임계값)로 구성될 수 있다. 다양한 거리 임계값를 사용하여, 시스템은 상이한 크기의 복수의 위치 클러스터를 생성할 수 있다. 이것은 시골 및 도시 환경과 같은 상이한 환경 또는 백화점, 경기장, 컨벤션 센터 또는 부티크와 같은 상이한 크기의 상업적 엔티티와 관련하여 유효한 클러스터를 생성하는 것을 용이하게 할 수 있다. 위치 엔진 (135)은 거리 임계값에 해당하는 튜닝 파라미터를 사용하여 튜닝될 수 있다. 예를 들어, 튜닝 파라미터는 거리 임계값일 수 있고, 튜너(150)는 컴퓨팅 디바이스의 위치를 결정하기 위해 위치 엔진(135)에 의해 사용된 거리 임계 튜닝 파라미터를 조정함으로써 위치 엔진(135)을 튜닝할 수 있다.
거리 임계 값은 정적 또는 동적일 수 있다. 임계 거리는 정적 값(예를 들어, 50미터, 100미터 또는 200미터)일 수 있다. 다른 구현 예들에서, 임계 거리는 메트릭, 피드백 또는 최적화 기술에 기초하여 튜너(150)에 의해 미세 튜닝될 수 있다. 예를 들어, 데이터 처리 시스템(120)은 클러스터가 매장을 방문하는 사용자를 나타내는 지표가 아니고, 만족스럽지 않은 리콜 메트릭 또는 정밀도 메트릭과 연관되어 있어, 임계 거리값을 낮추기 때문에 클러스터 크기가 너무 크다고 결정할 수 있다. 다른 구현 예에서, 너무 많은 클러스터가 상업적 엔티티를 위해 생성되었기 때문에, 데이터 처리 시스템(120)(예를 들어, 튜너(150)를 통해)은 임계 거리가 상업적 엔티티의 크기에 비해 너무 작다고 결정할 수 있다. 데이터 처리 시스템(120)은 리콜 메트릭, 정밀도 메트릭 또는 이용 가능한 위치 정보의 미세 입도(granularity)에 기초하여 임계 거리를 변경할 수 있다. 예를 들어, WiFi, 셀 삼각 측량 및 GPS는 다양한 정확도 또는 해상도를 갖는 위치 정보를 제공한다. 데이터 포인트가 사용되는 위치 측정 기술에 관한 정보를 포함하거나, 데이터 처리 시스템(120)이 데이터 포인트에 포함된 데이터 유형에 기초하여 사용되는 위치 측정 기술을 결정할 수 있다. 만약 위치 정보가 100미터 이내로 정확한 경우 임계 거리는 100미터가 될 수 있다. 만약 위치 정보가 50미터 이내로 정확한 경우 임계 거리는 50미터가 될 수 있다.
일 실시 예에서, 데이터 처리 시스템(120)(예를 들어, 튜너(150)를 통해)은 클러스터에 대한 데이터 포인트의 최소 또는 최대 수에 대응하는 튜닝 파라미터를 조정할 수 있다. 최소 및 최대값은 정적 또는 동적일 수 있다(예를 들어, 소정 개수 또는 최적화 프로세스에 따라 변화되는 개수, 지리적 위치에 따라 달라지는 개수(예를 들어, 시골 지역 대 도시 지역)). 일부 경우, 데이터 처리 시스템(120)은 위치 클러스터가 데이터 포인트의 최소 개수(예를 들어, 3, 4, 5 또는 유효한 클러스터의 생성을 용이하게 하는 다른 값)를 포함하지 않으면 클러스터를 위치 클러스터로 식별하지 않을 수 있다. 데이터 처리 시스템(120)은 또한 제2클러스터를 생성하기 전에 클러스터에 대한 데이터 포인트의 최대 개수를 설정할 수 있다. 최대 개수는 정적값(예를 들어, 3, 4, 5, 10, 20 또는 유효한 클러스터 생성을 용이하게 하는 다른 값) 또는 동적(예를 들어, 지리적 위치에 기초하여)을 기반으로 설정될 수 있다.
따라서, 위치 엔진의 파라미터 또는 튜닝 파라미터는 예를 들어, 컴퓨팅 디바이스로부터 위치 핑을 수신하기 위한 시간 간격, 컴퓨팅 디바이스의 위치를 결정하기 위해 사용하는 위치 핑의 시간 간격 또는 주파수, 사용할 위치 정보의 소스(예를 들어, GPS, WIFI, 휴대 전화 삼각 측량 또는 비콘), 사용할 하나 이상의 소스 조합, 클러스터 거리 임계값, 클러스터 시간 임계값, 클러스터를 형성하기 위한 최소 데이터 포인트의 개수 또는 클러스터를 형성하기 위한 최대 데이터 포인트의 개수를 포함할 수 있다.
데이터 처리 시스템(120)은 메모리에 저장된 위치 데이터베이스로부터 데이터 처리 시스템의 위치 엔진에 의해 행해진 복수의 위치 결정을 검색하도록 설계 및 구성된 브리징 모듈(140)을 포함할 수 있다. 각 위치 결정은 각각의 제1식별자와 연관될 수 있다. 제1식별자는 컴퓨팅 디바이스(110)를 식별하기 위해 데이터 처리 시스템(120) 또는 위치 엔진(135)에 의해 사용된 식별자에 대응할 수 있다. 제1식별자는 데이터 처리 시스템(120)에 은닉되거나 고유할 수 있다. 상이한 엔티티는 상이한 식별자 또는 상이한 유형의 식별자를 사용하여 컴퓨팅 장치(110) 또는 트랜젝션를 식별할 수 있다. 예를 들어, 데이터 처리 시스템(120)은 컴퓨팅 디바이스(110)와 판매점(170A)에서 컴퓨팅 디바이스(110)의 위치를 식별하기 위해 제1식별자를 사용할 수 있다. 그러나, 트랜젝션 프로세서(160)의 제3자 서버(160)는 제3자 식별자를 사용하여 트랜젝션 카드(125)와 연관된 트랜젝션를 식별할 수 있다. 트랜젝션 카드(125)의 사용자는 컴퓨팅 디바이스(110)와 동일한 사용자일 수 있다. 일부 경우, 트랜잭션 카드(125)의 사용자는 컴퓨팅 디바이스(110)와 다를 수 있다. 데이터 처리 시스템(120)은 제1식별자를 암호화하거나 숨길 수 있다. 카드 트랜젝션 프로세서(160)는 제3자 식별자를 암호화하거나 숨길 수 있다. 데이터 처리 시스템(120)은 대응하는 제1식별자를 갖는 위치 결정을 제1데이터 세트에 저장할 수 있고, 카드 트랜젝션 프로세서(160)는 제3자 식별자와의 트랜젝션로 행해진 위치 결정을 저장할 수 있다. 제3자 서버는 제3자 식별자를 익명의 제2식별자에 매핑할 수 있다. 이 익명의 제2식별자는 제3자 서버(160) 또는 카드 트랜젝션 프로세서에 의해 사용된 영구적인 제3자 식별자에 매핑될 수 있다.
브리징 모듈(140)은 데이터 처리 시스템(120)에 알려진 제1식별자의 세트와 제3자 엔티티(160)에 알려진 제2식별자 세트 간의 매핑을 결정할 수 있으며, 이들 모두는 제1식별자 및 제2식별자와 연관된 동일한 컴퓨팅 디바이스(110) 또는 사용자를 지칭하거나 이들과 관련된다. 브리징 모듈(140)은 암호화된 위치 및 시간 정보를 사용하여 데이터 처리 시스템(120)과 제3자(160) 사이에 다이렉트 브리지 링크를 설정할 수 있다. 데이터 처리 시스템(120)은 2개의 데이터에 걸쳐 동일한 장소 및 동일한 시간에 여러 번 컴퓨팅 디바이스(110)를 관찰함으로써 제1식별자로부터 제2식별자로의 매핑 함수를 생성할 수 있다.
제1식별자는 브리징 모듈(140)에 의해 생성된 제1브리징 식별자를 나타낼 수 있다. 제1식별자는 컴퓨팅 디바이스(110)의 실제 식별자에 대응하는 익명 식별자를 나타낼 수 있다. 브리징 모듈(140)은 컴퓨팅 디바이스(110)와 관련된 실제 식별자 (예를 들어, 사용자 명, 전화번호, 스크린 이름, 로그인 식별자 또는 프로파일 이름)를 포함할 수 있다.
제2식별자는 제3자 서버(160) 또는 카드 트랜젝션 프로세서에 의해 생성된 제2브리징 식별자를 나타낼 수 있다. 제2식별자는 컴퓨팅 디바이스(110) 또는 컴퓨팅 디바이스(110)의 사용자와 관련된 실제 식별자에 대응하는 익명 식별자를 나타낼 수 있다. 제3자 서버(160)는 컴퓨팅 디바이스(110)와 관련된 실제 식별자(예를 들어, 계정 식별자, 사용자 명, 전화번호, 스크린 이름, 로그인 식별자 또는 프로파일 이름)를 암호화함으로써 제2식별자를 생성할 수 있다. 제1식별자 및 제2식별자는 데이터 처리 시스템(120)과 제3자 서버(160)가 상이한 암호화 기술을 사용할 수 있기 때문에 상이한 식별자일 수 있다.
따라서, 데이터 처리 시스템(120)은 카드 트랜젝션 프로세서(160)가 카드 트랜젝션와 관련된 컴퓨팅 디바이스(110) 또는 사용자를 어떻게 식별하는지에 관한 정보를 가질 수 없다. 데이터 처리 시스템(120), 카드 트랜젝션 프로세서(160) 또는 그들의 관리자는 독점적 또는 기밀의 정보를 전송하지 않을 수 있다.
예를 들어, 컴퓨팅 디바이스(110)는 데이터 처리 시스템(120)을 통해 제공된 온라인 자원 또는 문서(예를 들어, 웹 페이지, 콘텐츠 아이템 또는 광고)에 액세스 할 수 있다. 데이터 처리 시스템(120)은 컴퓨팅 디바이스(110)를 위한 제1식별자를 할당할 수 있다. 데이터 처리 시스템(120)은 컴퓨팅 디바이스(110)가 데이터 처리 시스템 (120)을 통해 자원 또는 문서에 액세스하는 것에 응답하여 컴퓨팅 디바이스(110)를 위한 제1식별자를 할당할 수 있다. 데이터 처리 시스템(120)은 컴퓨팅 디바이스의 식별자를 암호화하거나 은닉하여 제1식별자를 생성할 수 있다. 제1식별자는 컴퓨팅 디바이스(110)의 실제 식별자에 대응하는 암호화된 식별자일 수 있다.
컴퓨팅 디바이스(110)의 사용자는 판매점 A에 있는 POS디바이스(115)로 카드 트랜젝션를 수행할 수 있다. 카드 트랜젝션 프로세서(160)는 트랜젝션와 관련된 제3자 식별자를 결정할 수 있다. 카드 트랜젝션 프로세서(160)는 익명의 제2식별자를 사용하여 제3자 식별자를 암호화하거나 은닉하는 제2식별자를 생성할 수 있다. 제2식별자는 카드 트랜젝션 또는 사용자와 관련된 실제 제3자 식별자에 대응하는 암호화된 식별자일 수 있다.
데이터 처리 시스템(120)은 블라인드(blind) 암호화 기술을 사용하여 다양한 파티(party)가 암호화 기술(예를 들어, 제1식별자 및 제2식별자)을 사용하여 암호화된 각각의 식별자 사이의 상관을 결정할 수 있도록 한다. 데이터 처리 시스템(120)와 제3자 서버(160)(예를 들어, 하나 이상의 프로세서를 갖는 컴퓨팅 시스템)는 컴퓨팅 디바이스 인터렉션의 로그 데이터를 포함하는 수신된 식별자 벡터들을 암호화하여 암호화된 식별자 벡터들을 교환할 수 있다. 일부 경우, 판매점 위치에 대한 데이터를 교환하기 전에, 데이터 처리 시스템(120)은 상점별 프라이버시 임계값을 적용할 수 있다. 예를 들어, 데이터 처리 시스템(120)은 데이터 세트 내의 식별자 또는 엔트리의 수를 임계값(예를 들어, 100, 500 또는 1000) 또는 시간 간격(예를 들어, 24시간, 48시간, 72시간, 1주, 30일 또는 60일) 동안의 임계값과 비교하여, 엔트리의 수가 임계값보다 작거나 동일한 경우 교환을 차단한다. 컴퓨팅 디바이스 인터렉션은 예를 들어, 서버로부터 온라인 콘텐츠에 대한 요청, 웹 사이트 방문 및 컴퓨팅 디바이스 식별자 인증 또는 컴퓨팅 디바이스와 서버간의 임의의 다른 액티비티를 포함할 수 있다. 교환되고 암호화된 식별자 벡터를 사용하여, 브리징 모듈(140) 또는 제3자 서버(160)는 매핑 함수을 사용하여 자신의 식별자에 대응하는 다른 식별자를 결정하고 각각의 식별자 각각에 대한 식별자 키를 생성할 수 있다.
예를 들어, 데이터 처리 시스템(120)은 제1식별자 벡터를 제3자 서버(160)로 전송할 수 있다. 제1식별자 벡터는 하나 이상의 제1식별자(예를 들어, 암호화 기술을 사용하여 암호화된 실제 식별자 또는 사용자 명), 제1파라미터 세트 및 제2파라미터 세트를 포함할 수 있다. 하나 이상의 제1식별자는 하나 이상의 컴퓨팅 디바이스(110)에 대응할 수 있다. 제1식별자 벡터는 또한 제1식별자의 암호화 및 각각의 제1파라미터 및 각각의 제2파라미터의 조합에 기초한 키의 세트를 포함할 수 있다. 제1식별자는 특정 컴퓨팅 디바이스와 연관된 디바이스 식별자 또는 예를 들어 프로파일, 주소 또는 계정과 연관된 계정 식별자를 포함하거나 대응할 수 있다. 키는 각각의 제1파라미터와 각각의 제2파라미터의 조합에 기초할 수 있다. 데이터 처리 시스템(120)은 제1파라미터 및 제2파라미터에 적용되는 해시 함수를 사용하여 키를 생성할 수 있다. 제1파라미터 및 제2파라미터 각각은, 예를 들어 대응하는 로깅(logged) 컴퓨팅 장치 인터렉션의 위치 및 시간을 지정하는 로그 행(row) 엔트리의 일부일 수 있다.
데이터 처리 시스템(120)은 네트워크(105)를 통해 제1식별자 벡터를 제3자 서버(160)로 전송할 수 있다. 제3자 서버(160)는 암호화 알고리즘을 사용하여 제1식별자 벡터를 암호화할 수 있다. 제3자 서버(160)는 암호화된 제1식별자 벡터를 데이터 처리 시스템(120)으로 다시 전송할 수 있다. 데이터 처리 시스템(120)은 암호화된 제1식별자 벡터를 제3자 서버(160)로부터 수신할 수 있다.
또한, 데이터 처리 시스템(120)은 제3자 서버(160)의 로그 데이터에 기초하여 제3자 서버로부터 제2식별자 벡터를 수신할 수 있다. 제2식별자 벡터는 하나 이상의 제2식별자, 제3파라미터 세트 및 제4파라미터 세트를 포함할 수 있다. 하나 이상의 제2식별자는 하나 이상의 트랜젝션 카드(125) 또는 제3자 서버 (160)에 의해 수집되거나 결정된 지상 실측 데이터와 관련된 다른 식별자에 대응하는 암호화된 제3자 식별자에 대응할 수 있다. 제2식별자 벡터는 또한 각각의 제3파라미터와 각각의 제4파라미터의 조합에 기초하여 제2식별자(예를 들어, 실제 제3자 식별자의 암호화) 및 키의 세트를 포함할 수 있다. 제3자 서버(160)에 의해 사용된 제2식별자는 데이터 처리 시스템(120)에 의해 사용된 제1식별자와 다를 수 있다. 제3자 서버(160)에 의해 적용된 암호화는 데이터 처리 시스템(120)에 의해 적용된 암호화와 다를 수 있다. 제3자 서버(160)에 의해 적용된 암호화는 데이터 처리 시스템(120)에 의해 적용된 암호화와 동일하거나 유사할 수 있다. 제3자 서버(160) 또는 데이터 처리 시스템(120)은 사용되는 암호화 유형을 은닉할 수 있다. 제3파라미터는 제1파라미터와 동일한 유형의 로그 정보에 대응할 수 있다. 제4파라미터는 제3파라미터와 동일한 유형의 로그 정보에 해당할 수 있다. 제3파라미터 및 제4파라미터 각각은 예를 들어 대응하는 로깅 컴퓨팅 장치 인터렉션의 위치 및 시간을 지정하는 로그 행 엔트리를 포함할 수 있다. 위치 및 시간 정보는 미세 입도 및 해상도에 따라 버킷화되거나 양자화될 수 있다. 예를 들어, 예를 들어, 시간은 가장 가까운 1 분, 30초, 10초, 5초, 1초 또는 1밀리 초로 반올림될 수 있다. 위치는 50미터 반경, 100미터 반경, 10미터 반경 또는 5미터 반경과 같은 치수를 갖는 타일 또는 지리적 영역(예를 들어, 직사각형, 정사각형 또는 사각형)에 매핑될 수 있다.
데이터 처리 시스템(120)은 제3자 서버(160)로부터 수신된 제2식별자 벡터에 암호화 알고리즘을 적용할 수 있다. 데이터 처리 시스템(120)은 제1파라미터와 제3 파라미터 사이 및 제2파라미터와 제4파라미터 사이의 매칭에 기초하여 제1식별자 벡터와 제2식별자 벡터간의 상관 또는 매핑을 결정할 수 있다. 예를 들어, 제1파라미터 및 제3파라미터는 사용자 인터렉션에 관한 위치 정보를 포함하고, 제4파라미터는 사용자 인터렉션에 관한 시간 정보를 포함한다. 이 예에서, 데이터 처리 시스템(120)은 그들이 정의된 임계 거리 및 시간 프레임 내에 있을 때 각각의 파라미터 사이에 매칭이 존재한다고 결정할 수 있다. 그런 다음 데이터 처리 시스템(120)은 이러한 매칭의 수가 정의된 임계값 이상일 때 제1식별자와 제2식별자가 서로 일치한다고 결정할 수 있다. 이러한 일치를 사용하여, 데이터 처리 시스템(120)은 브리지 또는 매치 식별자 키를 생성하여 키를 데이터 저장소(155)의 맵데이터 구조 (235)에 저장할 수 있다.
또한, 브리징 모듈(140)을 참조하면, 데이터 처리 시스템(120)은 제1식별자 벡터를 제3자 서버(160)로 전송할 수 있다. 제1식별자 벡터는 하나 이상의 컴퓨팅 디바이스(110), 복수의 제1파라미터 및 복수의 제2파라미터에 대응하는 하나 이상의 제1식별자를 포함할 수 있다. 제1식별자, 복수의 제1파라미터 및 복수의 제2파라미터는 하나 이상의 데이터베이스(155)에 저장되어 하나 이상의 데이터베이스 (155)로부터 획득될 수 있다
제1식별자 벡터는, 예를 들어, 인덱싱된 튜플, 하나 또는 다수 차원의 어레이, 컨테이너, 링크된 리스트, 트리 또는 로깅된 사용자 인터렉션을 저장하거나 또는 인덱싱하기에 적합한 임의의 데이터 구조 또는 제1식별자, 복수의 제1파라미터 및 복수의 제2파라미터와 같은 인덱스 로깅된 사용자 인터렉션의 형태일 수 있다. 제1식별자는 예를 들어, 암호화된 계정 식별자, 암호화된 디바이스 식별자, 암호화된 전화 번호, 또는 이들의 조합, 또는 컴퓨팅 디바이스(110)와 관련된 임의의 다른 암호화된 식별자를 포함할 수 있다. 제1식별자는 예를 들어 영숫자 (alphanumerical) 문자열, 랜덤 또는 의사 랜덤 생성 번호 또는 문자 스트링의 형태일 수 있다. 복수의 제1파라미터와 복수의 제2파라미터 각각은 네트워크(105)를 통해 데이터터 처리 시스템(120), 콘텐츠 제공자 컴퓨팅 디바이스(225) 또는 콘텐츠 발행자 컴퓨팅 디바이스(215)와의 하나 이상의 컴퓨팅 디바이스(110)에 의한 인터렉션의 로그 데이터를 카탈로그화하거나 인덱스할 수 있다. 하나 이상의 클라이언트 디바이스(125)에 의한 인터렉션의 로그 데이터는 하나 이상의 데이터베이스(155)에 저장될 수 있고, 하나 이상의 데이터베이스(155)로부터 획득될 수 있다. 복수의 제1파라미터는 관련되어 기록된 인터렉션의 위치 식별자를 포함할 수 있다.
복수의 제2파라미터는 관련되어 기록된 인터렉션의 타임스탬프를 포함할 수 있다. 복수의 제1파라미터와 복수의 제2파라미터는 하나 이상의 클라이언트 디바이스(125)에 의한 인터렉션의 로그 데이터를 카탈로그화하거나 기록하는데 사용되는 다른 파라미터 또는 데이터를 포함할 수 있다. 수학적으로 표현하면, 제1식별자 벡터는 예를 들어 다음과 같은 형식일 수 있다.
Figure pct00001
여기서, X는 제1식별자 벡터,
Figure pct00002
는 제1식별자,
Figure pct00003
은 n번째 기록된 인터렉션에 대한 제1파라미터,
Figure pct00004
은 n번째 기록된 인터렉션에 대한 제2파라미터이다. 예를 들어, 제1파라미터는 기록된 인터렉션의 위치 식별자일 수 있고, 제2 파라미터는 기록된 인터렉션의 타임스탬프일 수 있다. 더욱이, 디바이스 식별자가 "x345q$"인 컴퓨팅 디바이스(110)는 2015년 7월 14일 캘리포니아 주 산호세에서 15시 34분 11초에 웹 페이지에 대한 요청을 전송한 다음, 2015년 7월 15일 캘리포니아 주 풀섬에서 9시 12분 34초에 다른 웹 페이지에 대한 요청을 전송할 수 있는데, 두 요청은 하나 이상의 데이터베이스(155)에서 데이터 처리 시스템(120)에 의해 기록(record)된다. 이 예에서,
Figure pct00005
는 "x345q$"이고,
Figure pct00006
은 캘리포니아 주 산호세이고,
Figure pct00007
은 2015년 7월 14일 15시 34분 11초이며,
Figure pct00008
는 캘리포니아 주 풀섬이고 및
Figure pct00009
는 2015년 7월 15일 9시 12분 34초가 된다.
브리징 모듈(140)은 복수의 제1파라미터의 각각의 값 또는 복수의 제2파라미터의 각각의 값에 기초하여 복수의 제1파라미터와 복수의 제2 파라미터를 복수의 제1 카테고리로 분류할 수 있다. 브리징 모듈(140)은 복수의 제1파라미터와 복수의 제2파라미터를 복수의 제1파라미터의 제1양자화에 기초하여 복수의 제1카테고리로 분류할 수 있다. 브리징 모듈(140)은 복수의 제2파라미터의 제2양자화에 기초하여 복수의 제1파라미터와 복수의 제2파라미터를 복수의 제2카테고리로 분류할 수 있다. 제1양자화는 복수의 제1파라미터 중 어느 것이 각각의 제1카테고리로 분류되는지를 정의하거나 규정할 수 있다. 제2양자화는 복수의 제2파라미터 중 어느 것이 각각의 제2카테고리로 분류되는지를 정의하거나 규정할 수 있다. 제1양자화와 제2양자화는 제1파라미터와 제2파라미터 각각을 더 일반화된 카테고리에 할당, 분류 또는 구분(classify)하는데 사용될 수 있다. 브리징 모듈(140)은 복수의 제1카테고리 값 및 복수의 제2카테고리 값을 생성할 수 있다.
복수의 제1카테고리 각각 및 복수의 제2카테고리 각각은 예를 들어, 랜덤하게 생성된 영숫자 값과 같은 카테고리 값 또는 인덱스와 관련될 수 있다. 이전 예에서, 제1양자화가 도시이고 제2양자화가 날짜인 경우, 브리징 모듈(140)은 각각의 카테고리에 대한 양자화에 기초하여 2015년 7월 15일 캘리포니아 주 풀섬에서 9시 12분 34초에 다른 웹페이지에 대한 요청과 다른 카테고리로, 2015년 7월 14일 캘리포니아 주 산호세에서 15시 34분 11초에 웹페이지에 대한 요청을 분류할 수 있다. 또한, 이들 각 범주에는 다른 임의의 영숫자 값이 할당될 수 있다. 수학적으로 표현하면 제1식별자 벡터는 예를 들어 다음과 같은 형식일 수 있다.
Figure pct00010
여기서 X는 제1식별자 벡터,
Figure pct00011
는 제1식별자,
Figure pct00012
은 n번째 기록된 인터렉션에 대한 제1파라미터,
Figure pct00013
은 n번째 기록된 인터렉션에 대한 제2파라미터,
Figure pct00014
는 제1파라미터(
Figure pct00015
)와 제2파라미터(
Figure pct00016
)가 제1파라미터 값 또는 제2파라미터 값 또는 그들의 조합에 기초하여 분류된 i번째 카테고리 값이다. 데이터 처리 시스템(120)은 제1식별자 및 복수의 제1카테고리 값 또는 복수의 제2카테고리 값을 포함하는 제1식별자 벡터를 제3자 서버(160)로 전송할 수 있다. 데이터 처리 시스템(120)은 제1식별자 및 복수의 제1카테고리 또는 복수의 제2카테고리를 포함하는 제1식별자 벡터를 제3자 서버(160)로 전송할 수 있다.
브리징 모듈(140)은 복수의 제1파라미터와 복수의 제2파라미터의 복수의 제1 조합을 생성할 수 있다. 복수의 제1조합 각각은, 예를 들어, 복수의 제1파라미터 각각 및 복수의 제2파라미터 각각의 해시 함수 또는 암호 함수에 기초하여 생성될 수 있다. 제1파라미터로서 위치 식별자의 해시 함수를 사용하고 제2파라미터로서 타임스탬프를 사용하여 수학적으로 표현하면, 제1식별자 벡터는 예를 들면 다음과 같은 형태일 수 있다.
Figure pct00017
여기서 X는 제1식별자 벡터,
Figure pct00018
는 제1식별자,
Figure pct00019
은 n번째 기록된 인터렉션에 대한 위치 식별자,
Figure pct00020
은 n번째 기록된 인터렉션에 대한 타임스탬프,
Figure pct00021
는 위치 식별자(
Figure pct00022
)와 타임스탬프(
Figure pct00023
)가 위치 식별자 또는 타임스탬프에 기초하여 분류된 i번째 각 카테고리 값이고,
Figure pct00024
는 해시 함수이다. 데이터 처리 시스템(120)은 제1식별자와 복수의 제1조합을 포함하는 제1식별자 벡터를 제3자 서버(160)로 전송할 수 있다. 브리징 모듈(140)은 제1암호화에 기초하여 제1식별자, 복수의 제1파라미터 및 복수의 제2파라미터를 암호화할 수 있다. 브리징 모듈(140)은 제1식별자, 복수의 제1파라미터 및 복수의 제1조합을 암호화할 수 있다. 일부 경우, 브리징 모듈(140)은 제1암호화에 기초하여 제1식별자, 복수의 제1파라미터 및 복수의 제2파라미터를 암호화하도록 제1암호화 모듈(145)을 호출할 수 있다. 브리징 모듈(140)은 암호화를 위해 제1식별자, 복수의 제1파라미터 및 복수의 제2파라미터를 제1암호화 모듈(145)로 제공하거나 전송할 수 있다. 일부 경우에, 브리징 모듈(140)은 제1암호화 모듈(145)이 제1암호화에 기초하여 제1식별자, 복수의 제1파라미터 및 복수의 제2파라미터를 암호화하도록 착수시키거나 야기할 수 있다.
데이터 처리 시스템(120)은 제1암호화 또는 하나 이상의 암호화 알고리즘을 사용하여 데이터를 암호화하도록 설계되고 구성된 제1암호화 모듈(140)을 포함할 수 있다. 예를 들어, 제1암호화는 비대칭 암호화 알고리즘, 암호 해시 함수, 지문 또는 교환 가능할 수 있는 다른 암호화 알고리즘을 포함할 수 있다. 제1암호화 모듈(145)은 RSA 암호시스템 기술을 사용할 수 있는데, 이 기술에서, 암호화 키는 모든 컴퓨팅 디바이스에 알려질 수 있고 비밀로 유지될 수있는 해독키와 다를 수 있다. 이 예에서, 비대칭은 2개의 큰 소수의 곱을 인수 분해하는 어려움에 기초할 수 있다. 제1파라미터로서 위치 식별자의 해시 함수를 사용하고 제2파라미터로서 타임스탬프를 사용하여 수학적으로 표현하면, 제1암호화에 기초하여 암호화된 제1식별자 벡터는 예를 들면 다음과 같은 형태일 수 있다.
Figure pct00025
여기서
Figure pct00026
는 암호화된 제1식별자 벡터, X는 제1식별자 벡터, A는 제1암호화 메트릭스,
Figure pct00027
는 제1식별자,
Figure pct00028
은 n번째 기록된 인터렉션에 대한 위치 식별자,
Figure pct00029
은 n번째 기록된 인터렉션에 대한 타임스탬프,
Figure pct00030
는 위치 식별자(
Figure pct00031
)와 타임스탬프(
Figure pct00032
)가 분류된 i번째 각 카테고리 값이고,
Figure pct00033
는 해시 함수이다. 이 예에서, 제1암호화 메트릭스(A)를 사용하여, 제1암호화 모듈(145)은 제1식별자의 각각 또는 일부 및 복수의 제1카테고리의 각 카테고리값 및 복수의 제2카테고리의 각 카테고리 값에 대한 동일한 또는 상이한 암호화 알고리즘을 적용할 수 있다. 데이터 처리 시스템(120)은 제1암호화에 기초하여 제1식별자, 복수의 제1파라미터 및 복수의 제2파라미터를 암호화한 것에 후속하여 또는 그에 응답하여 제1암호화에 기초하여 암호화된 제1식별자 벡터를 제3서버(160)에 전송할 수 있다 .
데이터 처리 시스템(120)은 제3자 서버(160)와 관련된 제3자 암호화에 기초하여 암호화된 제1식별자 벡터를 제3자 서버(160)로부터 수신할 수 있다. 제3자 서버(160)는 데이터 처리 시스템(120)으로부터 제1식별자 벡터를 수신하는 것에 응답하여 제1식별자 벡터를 암호화할 수 있다.
예를 들어, 제3자 서버(160)에 의한 제1식별자 벡터의 수신은 제3자 암호화에 기초하여 상기 수신된 제1식별자 벡터를 암호화하도록 제3자 서버 (160) 또는 제3자 서버(160)와 연관된 하나 이상의 엔티티 또는 디바이스를 유발하거나 트리거할 수 있다. 제1식별자 벡터를 제3자 서버(160)로 전송한 후 또는 동시에 데이터 처리 시스템(120)은 또한 제1식별자 벡터를 암호화하기 위한 요청을 제3자 서버(160)로 전송할 수 있다. 제1식별자 벡터를 암호화하기 위한 요청은 또한 제3자 암호화에 기초하여 제1식별자 벡터를 암호화하도록 제3자 서버(160) 또는 제3자 서버(160)와 관련된 하나 이상의 엔티티를 유발하거나 트리거할 수 있다. 제3자 암호화의 예는 비대칭 암호화 알고리즘, 암호 해시 함수, 지문 또는 교환 가능할 수 있는 임의의 다른 암호화 알고리즘을 포함할 수 있다. 제1파라미터로서 위치 식별자의 해시 함수를 사용하고 제2파라미터로서 타임스탬프를 사용하여 수학적으로 표현하면, 제3자 암호화에 기초하여 추가로 암호화된 제1식별자 벡터는 예를 들면 다음과 같은 형태일 수 있다.
Figure pct00034
여기서
Figure pct00035
는 제1암호화와 제3자 암호화에 의해 이중으로 암호화된 제1식별자 벡터,
Figure pct00036
는 제1암호화에 의해 암호화된 제1식별자 벡터, X는 제1식별자 벡터, B는 3자 암호화 메트릭스, A는 제1암호화 메트릭스,
Figure pct00037
는 제1식별자,
Figure pct00038
은 n번째 기록된 인터렉션에 대한 위치 식별자,
Figure pct00039
은 n번째 기록된 인터렉션에 대한 타임스탬프,
Figure pct00040
는 위치 식별자(
Figure pct00041
)와 타임스탬프(
Figure pct00042
)가 분류된 i번째 각 카테고리 값을 나타내며,
Figure pct00043
는 해시 함수이다.
데이터 처리 시스템(120)은 제3자 서버(160)와 연관된 제3자 암호화에 기초하여 암호화된 제2식별자 벡터를 제3자 서버(160)로부터 수신할 수 있다. 제2식별자 벡터는 제2식별자, 복수의 제3파라미터 및 복수의 제4파라미터를 포함할 수 있다. 제2식별자, 복수의 제3파라미터 및 복수의 제4파라미터는 제3자 서버에 있는 또는 제3자 서버(160)와 관련된 하나 이상의 데이터베이스에 저장되고 이로부터 획득될 수 있다. 복수의 제3파라미터 및 복수의 제1파라미터는 제1유형의 파라미터일 수 있다. 복수의 제4파라미터 및 복수의 제2 파라미터는 제2유형의 파라미터 일 수 있다.
예를 들어, 복수의 제1파라미터와 복수의 제2파라미터가 각각 하나 이상의 데이터베이스(155)에 의해 기록된 인터렉션의 위치 및 시간을 식별하는 위치 식별자 및 타임스탬프인 경우, 복수의 제3파라미터와 복수의 제4파라미터는 각각 또한 제3자 서버(160)에 의해 기록된 인터렉션의 위치 식별자 및 타임스탬프일 수 있다. 제2식별자 벡터는 제2식별자, 복수의 제3파라미터, 및 복수의 제4파라미터와 같은 로깅된 사용자 인터렉션을 저장하거나 인덱싱하도록 예를 들어, 인덱싱된 튜플, 하나 또는 다수 차원 어레이, 컨테이너, 링크된 리스트, 트리 또는 저장에 적합한 임의의 데이터 구조의 형태일 수 있다. 제2식별자는 예를 들어, 계정 식별자, 사용자 명, 카드 식별자, 디바이스 식별자, 전화 번호, 또는 이들의 조합, 또는 특정 사용자 또는 컴퓨팅 디바이스(110)를 식별하는 임의의 다른 식별자를 포함할 수 있다. 일부 경우에, 제2식별자는 특정 사용자 또는 컴퓨팅 디바이스(110)를 식별하도록 예를 들어, 암호화된 계정 식별자, 암호화된 사용자 명, 암호화된 카드 식별자, 암호화된 디바이스 식별자, 암호화된 전화 번호, 또는 이들의 조합, 또는 임의의 다른 식별자를 포함할 수 있다.
복수의 제3파라미터와 복수의 제4파라미터 각각은 네트워크(105)를 통해 제3자 서버(160), 콘텐츠 제공자 컴퓨팅 디바이스(225) 또는 콘텐츠 발행자 컴퓨팅 디바이스(215)와의 하나 이상의 컴퓨팅 디바이스(110)에 의한 인터렉션의 로그 데이터를 카탈로그화하거나 다른 방식으로 인덱스할 수 있다. 하나 이상의 컴퓨팅 디바이스(110)에 의한 인터렉션의 로그 데이터는 제3자 서버(160)에 있는 또는 제3자 서버(160)와 관련된 하나 이상의 데이터베이스에 저장되거나 이들로부터 획득될 수 있다. 복수의 제3파라미터는 연관 기록된(associated recorded) 인터렉션의 위치 식별자를 포함할 수 있다. 복수의 제4 파라미터는 연관된 인터렉션의 타임스탬프를 포함할 수 있다. 복수의 제3파라미터 및 복수의 제4파라미터는 하나 이상의 컴퓨팅 디바이스(110)에 의한 인터렉션의 로그 데이터를 카탈로그하거나 기록하는데 사용되는 다른 파라미터 또는 데이터를 포함할 수 있다.
데이터 처리 시스템(120)은 제2식별자 벡터에 대한 요청을 제3자 서버(160)로 전송할 수 있다. 제3자 서버(160)로의 제2식별자 벡터에 대한 요청의 수신은 제 2식별자 벡터를 암호화하여 암호화된 제2식별자 벡터를 데이터 처리 시스템(120)으로 전송하도록 제3자 서버(160)를 유발하거나 트리거할 수 있다. 제3자 서버(160)에 의한 제1식별자 벡터의 수신은 또한 제2식별자 벡터를 암호화하여 암호화된 제2식별자 벡터를 데이터 처리 시스템(120)으로 전송하도록 제3자 서버(160)를 유발하거나 트리거할 수 있다. 데이터 처리 시스템(120)은 또한 제2식별자 벡터 또는 제1식별자 벡터에 대한 요청을 제3자 서버(160)로 전송하기 전에 제3자 서버(160)와 관련된 제3자 암호화에 기초하여 암호화된 제2식별자 벡터를 제3자 서버(160)로부터 수신할 수 있다. 제3자 암호화의 예는 비대칭 암호화 알고리즘, 암호 해시 함수, 지문 또는 교환 가능할 수 있는 임의의 다른 암호화 알고리즘을 포함할 수 있다. 수학적으로 표현하면, 제3자 암호화에 기초하여 암호화된 제2식별자 벡터는, 예를 들면, 다음과 같은 형태일 수 있다.
Figure pct00044
여기서
Figure pct00045
는 암호화된 제2식별자 벡터, Y는 제2식별자 벡터, B는 3자 암호화 메트릭스,
Figure pct00046
는 제2식별자,
Figure pct00047
은 m번째 기록된 인터렉션에 대한 제3파라미터,
Figure pct00048
은 m번째 기록된 인터렉션에 대한 제4파라미터이다. 제3자 암호화 메트릭스 B를 사용하여, 상이한 암호화 알고리즘이 제2식별자, 복수의 제3파라미터 및 복수의 제4파라미터 각각 또는 일부를 암호화하도록 적용될 수 있다. 예를 들어, 제3파라미터는 기록된 인터렉션의 위치 식별자일 수 있고, 제4파라미터는 기록된 인터렉션의 시간 스탬프일 수 있다. 게다가 계정 식별자 "cr3alq@example_mail.com"과 관련된 하나 이상의 컴퓨팅 디바이스(110)는 2015년 7월 15일 8시 50분 02초에 캘리포니아 주 산호세에 위치한 물리적 상점(예를 들어, 판매점(170A)에서 구매한 다음 2015년 7월 15일 9시 19분 59초에 캘리포니아 주 풀섬에서의 웹 페이지에서 사용자의 컴퓨팅 디바이스(110) 상에서 또 다른 구매 주문을 하였으며, 두 구매 주문은 제3자 서버(160)의 하나 이상의 데이터베이스에 기록된다. 이 예에서,
Figure pct00049
는 "cr3alq@example_mail.com",
Figure pct00050
은 "San Jose, CA",
Figure pct00051
은 "2015년 7월 15일 8시 50분 02초,
Figure pct00052
는 "캘리포니아 주 풀섬",
Figure pct00053
는 2015년 7월 15일 9시 19분 59초이다.
데이터 처리 시스템(120)은 제2식별자 및 복수의 제3카테고리 값 또는 복수의 제4카테고리 값을 포함하는 제2식별자 벡터를 제3자 서버(160)로부터 수신할 수 있다. 복수의 제3카테고리 값 또는 복수의 제4카테고리 값은 복수의 제3카테고리 및 복수의 제4카테고리에 기초할 수 있다. 복수의 제3파라미터와 복수의 제4파라미터는 복수의 제3파라미터의 각각의 값 또는 복수의 제4파라미터의 각각의 값 또는 이들의 조합에 기초하여 복수의 제 3 카테고리로 할당, 분류 또는 구분될 수 있다. 복수의 제3파라미터와 복수의 제4파라미터는 복수의 제3파라미터의 제3양자화에 기초하여 복수의 제3카테고리로 할당, 분류 또는 구분될 수 있다. 복수의 제3파라미터와 복수의 제4파라미터는 복수의 제4파라미터의 제4양자화에 기초하여 복수의 제4카테고리로 할당, 분류 또는 구분될 수 있다. 제3양자화는 복수의 제3파라미터 중 어느 것이 각각의 제3카테고리로 분류되는지를 정의하거나 규정할 수 있다. 제4양자화는 복수의 제4파라미터 중 어느 것이 각각의 제4카테고리로 분류되는지를 정의하거나 규정할 수 있다. 복수의 제3카테고리 각각과 복수의 제4카테고리 각각은 예를 들어, 랜덤하게 생성된 영숫자 값과 같은 카테고리 값 또는 인덱스와 연관될 수 있다.
앞의 예제를 사용하여, 제4양자화가 7월 15일 12:00:00 이전에 이루어진 모든 구매 주문이 단일 카테고리로 분류된 경우, 2015년 7월 15일 8:50:02에 행해진 구매 주문과 2015년 7월 15일 9시 19분 59초에 행해진 구매 주문은 동일한 카테고리로 분류될 수 있으며 동일한 카테고리 인덱스와 관련될 수 있다. 제3파라미터로서 위치 식별자 및 제4파라미터로서의 타임스탬프로를 사용하여 수학적으로 표현하면, 제2식별자 벡터는 예를 들어면, 다음과 같은 형태일 수 있다.
Figure pct00054
여기서
Figure pct00055
는 암호화된 제2식별자 벡터, Y는 제2식별자 벡터, B는 3자 암호화 메트릭스,
Figure pct00056
는 제2식별자,
Figure pct00057
은 m번째 기록된 인터렉션에 대한 제3파라미터,
Figure pct00058
은 m번째 기록된 인터렉션에 대한 제4파라미터이고,
Figure pct00059
는 제3파라미터(
Figure pct00060
)와 제4파라미터(
Figure pct00061
)가 제3파라미터 또는 제4파라미터의 값 또는 이들의 조합에 기초하여 카테고리화된 j번째의 각 카테고리 값을 나타낸다.
데이터 처리 시스템(120)은 제2식별자를 포함하는 제2식별자 벡터 및 복수의 제3파라미터와 복수의 제4파라미터의 복수의 제2조합을 제3자 서버(160)로부터 수신할 수 있다. 복수의 제2조합 각각은, 예를 들어, 복수의 제1파라미터 각각 및 복수의 제2파라미터 각각의 해시 함수 또는 암호 함수에 기초하여 생성될 수 있다. 제3파라미터인 위치 식별자의 해시 함수를 사용하고 제4파라미터인 타임스탬프를 사용하여 수학적으로 표현하면, 제2식별자 벡터는 예를 들어, 다음과 같은 형태 일 수 있다.
Figure pct00062
여기서
Figure pct00063
는 암호화된 제2식별자 벡터, Y는 제2식별자 벡터, B는 3자 암호화 메트릭스,
Figure pct00064
는 제2식별자, B는 제3자 암호화 메트릭스,
Figure pct00065
는 m번째 기록된 인터렉션에 대한 위치 식별자,
Figure pct00066
은 m번째 기록된 인터렉션에 대한 타임스탬프,
Figure pct00067
는 제3파라미터(
Figure pct00068
)와 타임스탬프(
Figure pct00069
)가 위치 식별자 또는 타임스탬프 또는 그들의 조합에 기초하여 카테고리화된 j번째 각 카테고리 값을 나타내고,
Figure pct00070
는 해시 함수이다. 제3자 서버(160)에 의해 적용되는 해시 함수(
Figure pct00071
)는 암호화 모듈(140)에 의해 적용되는 해시 함수(
Figure pct00072
)와 동일하거나 상이할 수 있다. 데이터 처리 시스템 (120)은 제2식별자와 복수의 제2조합을 포함하는 제2식별자 벡터를 제3자 서버 (160)로부터 수신할 수 있다. 제1암호화 모듈(145)은 제3자 서버(160)로부터 제2식별자 벡터를 수신하는 것에 응답하여 제1암호화에 기초하여 제2식별자 벡터를 암호화할 수 있다. 제1암호화 모듈(145)은 제1암호화에 기초하여 제2식별자, 복수의 제3파라미터 및 복수의 제4파라미터를 암호화할 수 있다. 제1암호화 모듈(145)은 제1암호화 모듈(145)이 제1식별자, 복수의 제1파라미터 및 복수의 제2파라미터를 암호화하기 위해 사용했던 동일한 암호화 기술에 기초하여 제2식별자, 복수의 제3파라미터 및 복수의 제4파라미터를 암호화할 수 있다. 제3파라미터로서 위치 식별자의 해시 함수 및 제4파라미터로서 타임스탬프를 사용하여 수학적으로 표현하면, 제1암호화에 기초하여 추가로 암호화된 제2식별자 벡터는 예를들어, 다음과 같은 형태 일 수 있다.
Figure pct00073
여기서
Figure pct00074
는 제1암호화와 제3암호화에 의해 이중으로 암호화된 제2식별자 벡터,
Figure pct00075
는 제1암호화에 의해 암호화된 제2식별자 벡터, Y는 제2식별자 벡터, B는 제3자 암호화 메트릭스, A는 제1암호화 메트릭스,
Figure pct00076
는 제2식별자,
Figure pct00077
는 m번째 기록된 인터렉션에 대한 위치 식별자,
Figure pct00078
은 m번째 기록된 인터렉션에 대한 타임스탬프,
Figure pct00079
는 제3파라미터(
Figure pct00080
)와 타임스탬프(
Figure pct00081
)가 위치 식별자 또는 타임스탬프 또는 그들의 조합에 기초하여 카테고리화된 j번째 각 카테고리 값을 나타내고,
Figure pct00082
는 해시 함수이다.
브리징 모듈(140)은 복수의 제1파라미터의 일부와 복수의 제3파라미터의 일부 및 복수의 제2파라미터의 일부와 복수의 제4파라미터의 일부 사이의 매칭에 기초하여 제1식별자 벡터와 제2식별자 벡터사이의 상관 카운트를 결정할 수 있다. 브리징 모듈(140)은 복수의 제1카테고리와 복수의 제2카테고리 대(versus) 복수의 제3카테고리와 복수의 제4카테고리 사이의 매칭에 기초하여 복수의 카테고리의 각 카테고리에 대한 상관 카운트를 결정할 수 있다. 매칭은 복수의 제1파라미터의 일부와 복수의 제3파라미터의 일부 사이 및 복수의 제2파라미터의 일부와 복수의 제4파라미터의 일부 사이의 동일성, 유사성, 상관관계 또는 다른 대응관계를 나타낼 수 있다. 예를 들어, 제1식별자 벡터는 2015년 7월 15일 14:00:00부터 16:00사이에 캘리포니아 주 산호세에서 발생하는 웹 사이트 요청의 카테고리로 분류된 제1파라미터인 위치 파라미터와 제2파라미터인 타임스탬프를 포함할 수 있다. 또한, 제2식별자 벡터는 2015년 7월 15일 14:00:00부터 16:00까지 캘리포니아 주 산호세에서 발생하는 구매 주문의 카테고리로 분류된 제3파라미터인 위치 파라미터와 제4파라미터인 타임스탬프를 포함할 수 있다. 이 예에서, 제1식별자 벡터와 제2식별자 벡터는 동일한 제1암호화 및 동일한 제3자 암호화에 기초하여 이중 암호화될 수 있다. 제1암호화와 제3자 암호화가 모두 교환 가능하기 때문에, 브리징 모듈(140)은 카테고리들로부터의 암호들의 동일한 매칭에 기초하여, 암호화된 제1파라미터와 암호화된 제3 파라미터 사이 및 암호화된 제2파라미터와 암호화된 제4파라미터 사이에 매칭이 존재한다는 것을 결정할 수 있다. 복수의 암호화된 제1파라미터와 복수의 암호화된 제3파라미터 사이 및 복수의 암호화된 제2파라미터와 복수의 암호화된 제4파라미터 사이에 매칭이 존재한다는 결정에 응답하여, 브리징 모듈(140)은 상관 카운트를 증가시킬 수 있다. 브리징 모듈(140)은 복수의 제3파라미터의 제1마진내에 있는 복수의 제1파라미터의 일부와 복수의 제4파라미터의 제2마진내에 있는 복수의 제2파라미터의 일부에 기초하여 상관 카운트를 결정할 수 있다. 브리징 모듈(140)은 복수의 제3카테고리 값의 카테고리 마진내에 있는 복수의 제1카테고리 값의 일부와 복수의 제4파라미터의 제2마진내에 있는 복수의 제2카테고리 값의 일부에 기초하여 상관 카운트를 결정할 수 있다. 브리징 모듈(140)은 복수의 제3파라미터 중 일부의 임계 거리내에 있는 복수의 제1파라미터의 일부와 시간 윈도우내에 있는 복수의 제2파라미터의 일부에 기초하여 상관 카운트를 결정할 수 있다. 예를 들어, 제1식별자 벡터는 2015년 7월 15일 14:00:00부터 16:00사이에 우편 번호 95630로부터 발생하는 웹 사이트 요청 카테고리로 분류된 제1파라미터인 위치 파라미터와 제2파라미터인 타임스탬프를 포함할 수 있다. 게다가, 제2식별자 벡터는 2015년 7월 15일 16:00:00부터 18:00사이에 우편 번호 95763에서 발생한 구매 주문 카테고리로 분류된 제3파라미터인 위치 파라미터와 제4 파라미터인 타임스탬프를 포함할 수 있다. 제1식별자 벡터와 제2식별자 벡터의 각각의 카테고리 인덱스들은 제1암호화 및 제3암호화에 의해 이중 암호화될 수 있다. 이 예에서 임계 거리는 인접한 우편 번호로 지정될 수 있으며 타임스탬프는 인접한 시간 프레임으로 지정될 수 있다. 브리징 모듈(140)은 하나 이상의 데이터베이스(155)로부터 우편 번호 목록에 액세스하여 우편 번호 95630와 우편 번호 95763이 서로 인접해 있다고 결정할 수 있다. 브리징 모듈(140)은 시간 프레임(14:00:00에서 16:00:00)이 16:00:00에서 18:00:00으로 연속적인지 결정할 수 있다. 이들 결정들에 응답하여, 매핑 모듈(135)은 제1 파라미터와 제3 파라미터 및 제2파라미터 및 제4 파라미터 사이의 매칭이 있음을 결정하고, 각 카테고리에 대한 상관 카운트를 증가시킬 수 있다.
브리징 모듈(140)은 상기 결정된 임계값 이상인 제1식별자 벡터와 제2식별자 벡터간의 상관 카운트에 기초하여 제1식별자가 제2식별자에 대응한다고 결정할 수 있다. 상기 결정된 임계값은 다른 것들 중에서 정수, 분수 또는 백분율을 기반으로 할 수 있다. 상기 결정된 임계값은 또한 다른 것들 중에서 일정하거나, 변경되거나, 무작위로 생성될 수 있다. 브리징 모듈(140)은 복수의 제1파라미터, 복수의 제2파라미터, 복수의 제3파라미터 및 복수의 제4 파라미터의 길이에 기초하여 상기 결정된 임계값을 결정할 수 있다. 예를 들어, 복수의 제1파라미터와 복수의 제2파라미터의 길이는 각각 15,000일 수 있다. 또한, 복수의 제3파라미터와 복수의 제4파라미터의 길이는 각각 3,000일 수 있다. 이 예에서, 브리징 모듈(140)은 복수의 제3파라미터와 복수의 제4파라미터에 대한 복수의 제1파라미터와 복수의 제2파라미터의 길이 사이의 비율을 계산할 수 있다. 브리징 모듈(140)은 길이들 간 비율의 분수 곱셈 계수(fractional multiplicative factor)에 기초하여 상관 카운트에 대해 결정된 임계값을 결정할 수 있다. 이 예에서, 브리징 모듈(140)은 결정된 임계값 이상인 상관 카운트에 기초하여 제1식별자(예를 들어, "x345q $")가 제2식별자(예를 들어, "cr3a1q@example_mail.com")에 대응하는 것을 결정할 수 있다.
브리지 모듈(140)은 제1식별자가 제2식별자에 대응한다고 결정한 것에 응답하여 제1식별자와 제2식별자 모두를 위한 하나의 식별자 키를 생성할 수 있다. 하나의 식별자 키는 예를 들어, 영숫자 문자열, 임의로 생성된 숫자 또는 문자 스트링의 형태일 수 있다. 하나의 식별자 키는 데이터 처리 시스템(120)의 데이터베이스 저장소(155)에 저장된 제1식별자를 포함할 수 있다. 예를 들어, 제1식별자가 이메일 어드레스와 같은 계정 식별자이면 브리징 모듈(140)은 이메일 어드레스를 하나의 식별자 키로 설정할 수 있다. 식별자 키는 데이터 저장소(155)의 맵 데이터 구조(235)에 저장될 수 있다.
따라서, 브리징 모듈(140)은 식별자 키에 기초한 매핑 함수를 이용하여 제1식별자를 제2식별자에 매핑할 수 있다. 데이터 처리 시스템(120)은 특정 제3자 서버(160) 또는 카드 트랜젝션 프로세서를 위한 매핑 기능 및 식별자 키를 데이터베이스(155)에 저장할 수 있다. 브리징 모듈(140)은 해당 카드 트랜잭션 프로세서(160)에 대한 매핑 함수과 식별자 키를 선택하고, 제1식별자를 카드 트랜젝션 프로세서(160)에 의해 사용된 제2식별자에 매핑할 수 있다
브리징 모듈(140)은 데이터 처리 시스템(120)에 의해 사용된 제1식별자를 카드 트랜젝션 프로세서(160)에 의해 사용된 제2식별자에 매핑하기 위해 매핑 함수을 사용할 수 있다. 브리징 모듈(140)은 표 1에 도시된 바와같이 제2식별자를 포함하는 위치 엔진(135)에 의해 수행된 위치 결정을 갖는 데이터 구조를 생성할 수 있다.
제1식별자 제2식별자 위치 타임스탬프
123 ABC 위치_A 시간_1
456 DEF 위치_B 시간_2
표 1 : 제2식별자에 매핑된 제1식별자를 갖는 예시적인 위치 결정
표 1에 도시된 바와 같이, 위치 엔진(135)은 위치 결정을 하고 상기 위치 결정을 제1식별자와 연련시킨다. 위치 결정은 위치(예를 들어, 위치_A)와 타임스탬프(예를 들어, 시간_l)를 포함할 수 있다. 위치는 버킷화되거나 양자화된 위치일 수 있다. 타임스탬프는 버킷 화되거나 양자화된 타임스탬프일 수 있다. 브리징 모듈(140)은 매핑 함수를 사용하여 제1식별자를 제2식별자에 매핑할 수 있다. 브리징 모듈(140)은 제2식별자에 매핑된 위치 결정을 생성하거나 데이터 저장소(155)에 저장할 수 있다. 일부 경우, 브리징 모듈(140)은 제2식별자를 포함하기 위하여 위치 데이터 구조를 업데이트한다. 일부 경우에, 브리징 모듈(140)은 제1식별자를 제2식별자로 대체한다. 제1암호화 모듈(145)은 매핑된 제2식별자를 갖는 하나 이상의 위치 결정을 검색할 수 있다. 제1암호화 모듈(145)은 위치에 근거한 탐색을 수행하여 위치 결정을 검색할 수 있다. 예를 들어, 제1암호화 모듈(145)은 지난 30일 또는 2015년 11월 1일부터 2015년 12월 31일에 해당하는 타임스탬프를 갖는 판매점(170A)에 대응하는 모든 위치 결정에 대해 데이터 저장소(155)에서 탐색을 수행할 수 있다. 다른 예에서, 제1암호화 모듈(145)은 지난 30일 또는 2015년 11월 1일로부터 2015년 12월 31일 사이의 타임스탬프를 갖는 판매점(170A-N)에 대응하는 모든 위치 결정에 대해 데이터 저장소(155)에서 탐색을 수행할 수 있다.
제1암호화 모듈(145)은 제2식별자로 형성된 튜플에 적용되는 제1해시 함수와 각 위치 결정의 타임스탬프를 사용하여 각 위치 결정에 대한 제1해시값을 결정할 수 있다. 일부 경우, 제1암호화 모듈(145)은 제2식별자, 타임스탬프 및 각 위치 결정의 위치로 형성되는 튜플에 적용된 제1해시 함수를 사용하여 각 위치 결정에 대한 제1해시값을 결정할 수 있다. 제1암호화 모듈(145)은 단일 해시값을 생성하기 위해 하나 이상의 필드에 제1해시 함수를 적용할 수 있다.
일부 경우에, 제1암호화 모듈(145)은 제1암호화 프로토콜을 사용하여 각 위치 결정에 대한 제1해시값을 암호화함으로써 제1암호화 데이터 세트를 생성할 수 있다.
제2_식별자 위치 타임스탬프 해시_값=
h(제2_식별자,위치, 타임스탬프)
ABC 위치_A 시간_1 AA1
DEF 위치_B 시간_2 DB2
표 2 : 각 위치 결정에 대해 생성된 해시값을 포함하는 데이터 구조의 예
표 2는 제2식별자, 타임스탬프 또는 위치로부터 형성된 튜플을 사용하여 각각의 위치 결정을 위한 해시값을 생성하는 제1암호화 모듈(145)을 나타낸다. 제1암호화 모듈(145)은 표 3에 도시된 바와같이 해시값을 암호화하여 암호화된 데이터 세트를 형성할 수 있다.
해시_값=h(제2_식별자, 위치, 타임스탬프 제1_암호화_데이터_세트=
암호화_해시_값=G(해시_값)=G(h(제2_식별자,위치,타임스탬프))
AA1 BB2
DB2 EC3
표 3 : 암호화된 해시값을 포함하는 데이터 구조의 예
표 3은 암호화된 해시값을 생성하기 위해 제1암호화 프로토콜(예를 들어, G (x))을 사용하여 해시값을 암호화하는 제1암호화 모듈(145)을 나타낸다. 제1암호화 프로토콜은 교환형 암호화 프로토콜을 포함할 수 있다. 제1암호화 모듈(145)은 표 3의 제2열에 도시된 암호화된 해시값을 갖는 제1암호화 데이터 세트를 형성할 수 있다. 제1암호화 모듈(145)은 제1암호화 데이터 세트를 저장 또는 전송할 수 있다. 제1암호화 모듈(145)은 나중에 처리 또는 사용하기 위해 데이터 저장소(155)에 제1암호화 데이터 세트를 저장할 수 있다. 데이터 처리 시스템(120)은 네트워크(105)를 통해 제1암호화 데이터 세트를 전송할 수 있다. 예를 들어, 데이터 처리 시스템(120)은 컴퓨터 네트워크(105)를 통해 제1암호화 데이터 세트를 제3자 서버(160)로 전송하도록 설계되고 구성된 통신 인터페이스(130)를 포함할 수 있다. 제3자 서버(160)는 판매점에서 하나 이상의 POS디바이스를 통해 수행된 전자 트랜젝션를 처리할 수 있고, 또는 그렇지 않으면 제3자 서버(160)는 POS디바이스의 포인트를 통해 수행되는 전자 트랜젝션을 처리하는 카드 프로세서와 관련될 수 있다.
통신 인터페이스(130)는 네트워크(105) 및 하나 이상의 콘텐츠 제공자(225), 콘텐츠 발행자(215), 컴퓨팅 디바이스(110) 또는 제3자 서버(160)와 통신하도록 구성된 하나 이상의 통신 포트, 네트워크 포트, 네트워크 인터페이스 또는 네트워크 카드를 포함할 수 있다. 통신 인터페이스(130)는 제3자 서버(160)와 네트워크(105)를 통해 보안 통신 채널을 설정할 수 있다. 통신 인터페이스(130)는 보안 TCP/IP 통신 채널을 설정할 수 있다. 통신 인터페이스(130)는 인증 크리덴셜을 사용하여 보안 통신 채널을 설정할 수 있다. 통신 인터페이스(130)는 제1암호화 데이터 세트를 제3자 서버로 푸시, 전송 또는 제공할 수 있다. 일부 경우, 데이터 처리 시스템(120)(예를 들어, 통신 인터페이스(130)를 통해)은 데이터 저장소(155)로부터 제1암호화 데이터 세트를 가져오도록 제3자 서버(160)에 지시할 수 있다.
제3자 서버(160)는 제2암호화 데이터 세트를 생성할 수 있다. 제3자 서버(160)(예를 들어, 제2암호화 모듈(165)을 통해)는 상기 제2암호화 데이터 세트를 생성할 수 있다. 제2암호화 데이터 세트는 데이터 처리 시스템(120)에 의해 생성된 제1암호화 데이터 세트와 유사한 하나 이상의 필드를 포함할 수 있다. 예를 들어, 제3자 서버(160)는 제3자 서버(160)의 데이터베이스로부터 제3자 서버(160) 또는 제3자 서버(160)와 연관된 서버에 의해 처리된 전자 트랜젝션에 관한 정보를 검색할 수 있다. 전자 트랜젝션는 표 4에 도시된 바와 같이 데이터 레코드에 저장될 수 있다. 각 데이터 레코드는 제2식별자, 위치 또는 타임스탬프를 가질 수 있다. 제3자 서버 (160)는 제2식별자, 위치 및 타임스탬프를 포함하는 튜플에 제2해시 함수를 적용하여 해시값을 생성할 수 있다.
제2해시 함수는 제1암호화 데이터 세트에 포함된 해시값을 생성하도록 데이터 처리 시스템(120)에 의해 사용된 제1해시 함수와 동일할 수 있다. 제3자 서버(160)는 제2암호화 프로토콜(예를 들어, T (x))을 사용하여 해시값을 암호화함으로써 제2암호화 데이터 세트를 생성할 수 있다. 제2암호화 프로토콜은 제1암호화 프로토콜과 다를 수 있다. 제2암호화 프로토콜은 교환적일 수 있다. 따라서, 데이터 처리 시스템 (120)과 제3자 서버(160)이 해시값을 생성하기 위해 사용한 해시 함수는 일치할 수 있는 반면, 데이터 처리 시스템(120)과 제3자 서버(160)가 해시값에 적용한 암호화 프로토콜은 상이할 수 있다.
제2_식별자 위치 타임스탬프 해시_값=
h(제2_식별자,
위치, 타임스탬프)
제2암호화 데이터 세트=제2암호화 해시 값=T(해시_값)=T(h(제2_식별자, 위치, 타임스탬프))
ABC 위치_A 시간_1 AA1 ZZ0
DEF 위치_B 시간_2 DC2 CB1
표 4 : 제3자 서버에 의해 유지된 데이터 레코드의 예
표 4는 제3자 서버(160)에 의해 유지되거나 관리된 전자 트랜젝션 데이터 레코드를 나타낸다. 전자 트랜젝션 레코드는 제2식별자 필드, 위치 필드 및 타임스탬프 필드를 포함할 수 있다. 제3자 서버(160)는 열(column)에 도시된 바와 같이, 각 레코드에 대한 이들 필드의 값으로부터 해시값을 생성할 수 있다. 제3자 서버(160)는 동일 또는 상이한 해시 함수를 사용하여 해시값을 생성할 수 있다. 제3자 서버(160)는 제2암호화 프로토콜을 사용하여 4열에서 해시값을 암호화함으로써 제2암호화 데이터 세트를 생성할 수 있다. 암호화된 해시값은 표 4의 5열에 도시되어있다. 제3자 서버(160)는 5열에 도시된 암호화된 해시값으로부터 제2암호화 데이터 세트를 생성할 수 있다.
통신 인터페이스(130)는 전자 트랜젝션에 대한 제2암호화 모듈에 의해 생성된 제2해시값을 포함하는 제2암호화 데이터 세트를 제3자 서버(160)로부터 수신할 수 있다. 통신 인터페이스(130)는 제2암호화 데이터 세트를 제1암호화 모듈(145)로 포워딩하거나 제공할 수 있다. 제1암호화 모듈(145)은 제2암호화 데이터 세트를 암호화하여 제1이중 암호화 데이터 세트를 발생하거나 생성할 수 있다. 이중 암호화는 제3자 서버(160)와 데이터 처리 시스템(120)과 같은 2개의 상이한 파티에 의해 암호화된 데이터 세트를 지칭할 수 있다. 제1암호화 모듈(145)은 또한 제1암호화 데이터 세트를 암호화하는데 사용된 제1암호화 프로토콜(예를 들어, G(x))을 사용하여 제2암호화 데이터 세트를 암호화할 수 있다. 따라서, 제1암호화 데이터 세트는 제1이중 암호화 데이터 세트 = G(제1함호화 데이터 세트) = G(T(h(해시_값)) = G(T(h (제2_식별자, 위치, 타임스탬프))일 수 있다.
제3자 서버(160)(제2암호화 모듈(165)을 통해)는 또한 이중 암호화 데이터 세트를 생성할 수 있다. 예를 들어, 제3자 서버(160)는 제2암호화 프로토콜(예를 들어, T(x))을 사용하여 데이터 처리 시스템(120)으로부터 수신된 제1암호화 데이터 세트를 암호화하여 다음과 같은 제2이중 암호화 데이터 세트를 생성할 수 있다제2이중 암호화 세트 = T(제1암호화 데이터 세트) = T(G(해시_값)) = T(G(h(제2_식별자, 위치, 타임스탬프))). 제3자 서버(160)는 제2이중 암호화 데이터 세트를 데이터 처리 시스템(120)으로 제공할 수 있다.
데이터 처리 시스템(120)(예를 들어, 통신 인터페이스(130)를 통해)은 네트워크(105)를 통해 제3자 서버(160)로부터 제2이중 암호화 데이터 세트를 수신할 수 있다. 데이터 처리 시스템(120)은 추가 처리를 위해 제2이중 암호화 데이터 세트를 데이터 저장소(155)에 저장할 수 있다. 표 5는 제1이중 암호화 데이터 세트와 제2 이중 암호화 데이터 세트를 나타낸다.
제1이중 암호화 데이터 세트=G(제2암호화 데이터 세트)=G(T(해시_값))=G(T(h(제2_식별자, 위치, 타임스탬프))) 제이중 암호화 데이터 세트=T(제1암호화 데이터 세트)=T(G(해시_값))=T(G(H(제2_식별자, 위치, 타임스탬프)))
AA1 AA1
DC2 DB2
표 5 : 제1이중 암호화 데이터 세트와 제2이중 암호화 데이터 세트의 예
데이터 처리 시스템(120)은 제1이중 암호화 데이터 세트를 제2이중 암호화 데이터 세트와 처리, 분석 또는 비교하도록 설계된 튜너(150)를 포함할 수 있다. 튜너(160)는 제1이중 암호화 데이터 세트와 제2이중 암호화 데이터 세트를 처리하여 정밀도 메트릭 및 리콜 메트릭과 같은 하나 이상의 메트릭을 결정할 수 있다. 튜너(160)는 정확한 위치 결정의 총 개수, 위치 결정의 총 개수 및 실제 위치 이벤트의 총 개수에 기초하여 메트릭을 결정할 수 있다. 메트릭을 사용하여, 튜너는 정밀도 메트릭 또는 리콜 메트릭 중 적어도 하나에 근거하여 위치 엔진의 튜닝 파라미터를 조정할 수 있다.
튜너(150)는 위치 엔진(135)에 의해 결정된 정확한 위치 결정의 총 개수를 결정할 수 있다. 제1이중 암호화 데이터 세트와 제2이중 암호화 데이터 세트는 모두 동일한 2개의 교환형 암호화 프로토콜(예를 들어, G(x) 및 T(x), 또는 제1암호화 프로토콜 및 제2암호화 프로토콜)에 의해 암호화된 제1이중 암호화 데이터 세트 및 제2이중 암호화 데이터 세트이므로, 제1암호화 데이터 세트와 제2암호화 데이터 세트 내의 엔트리는 그들이 해시 함수를 제2식별자와 타임스탬프(또는 제2식별자, 타임스탬프 및 위치)에 적용하여 생성된 동일한 해시값에 해당해는 경우 서로 매칭될 수 있다. 따라서, 튜너(160)는 제2이중 암호화 데이터 세트 내의 엔트리와 매칭하는 제1이중 암호화 데이터 세트 내의 엔트리의 수를 결정할 수 있다. 튜너(150)는 정확한 위치 결정을 나타내도록 매칭되는 엔트리(예를 들어, 정확한 또는 동일한 매칭)를 결정할 수 있다.
표 5에 도시된 바와 같이, 제1이중 암호화 데이터 세트 내의 제1레코드는 제2이중 암호화 데이터 세트 내의 제1레코드와 매칭된다(예를 들어, AA1 = AA1). 튜너(150)는 매칭된 레코드에 응답하여, 이 엔트리가 정확한 위치 결정에 해당한다고 결정할 수 있다. 튜너(150)는 추가로 제2레코드가 매칭되지 않는다고(예를 들어, DC2가 DB2와 매칭되지 않음) 결정할 수 있다. 튜너(150)는 매치되지 않는 레코드에 응답하여, 제2레코드가 부정확한 위치라고 결정할 수 있다. 튜너(150)는 제2이중 암호화 데이터 세트 내의 정확한 위치 결정의 총 수가 1이라고 결정할 수 있다.
튜너(150)는 제2이중 암호화 데이터 세트(예를 들어, 크기(제2이중 암호화 데이터 세트))의 엔트리 수를 결정함으로써 이 데이터 세트를 위하여 위치 엔진 (135)이 수행한 위치 결정의 총수를 결정할 수 있다. 엔트리의 수는 시간 간격 동안 특정 위치에 대해 행해진 다수의 위치 결정에 해당할 수 있다. 예를 들어, 위치 결정의 수는 2일 수 있다.
튜너(150)는 지상 실측 데이터를 사용하여 특정 위치에서 실제 위치 이벤트의 총 수를 결정할 수 있다. 제1이중 암호화 데이터 세트는 제3자 서버에 의해 처리된 전자 트랜젝션로부터 생성된 해시값에 대응하므로, 제1이중 암호화 데이터 세트(또는 제2암호화 데이터 세트)는 지상 실측 데이터로 지칭될 수 있다. 튜너(150)는 제1이중 암호화 데이터 세트의 크기를 결정함으로써 실제 위치 이벤트의 수를 결정할 수 있다. 예를 들어, 실제 이벤트의 수는 2일 수 있다.
정확한 위치 결정의 수, 전체 위치 결정의 수 및 실제 위치 이벤트의 수를 결정할 때, 튜너(150)는 다음과 같이 정밀도 메트릭 및 리콜 메트릭과 같은 하나 이상의 메트릭을 결정할 수 있다 :
정밀도 = 정확한 위치 결정의 수/총 위치 결정의 수
리콜 = 정확한 위치 결정의 수/총 실제 위치 이벤트의 수
예를 들어, 제1암호화 데이터 세트의 정밀도 메트릭은 = ½ = 50%일 수 있고, 리콜 메트릭은 ½ = 50%일 수 있다. 만약 제3자 서버(160)에 의해 관찰되거나 기록된 실제 위치 이벤트의 수는 증가했지만(예를 들어, 10) 정확한 위치 결정의 수가 동일하면, 정밀도 메트릭은 동일하게 유지될 수 있지만(예를 들어, 1/2), 리콜 메트릭은 1/10=10%로 감소할 수 있다. 다른 예에서, 만약 정확한 위치 결정의 수가 동일하게 유지되는 동안 위치 결정의 수가 증가한다면(예를 들어, 5), 리콜 메트릭은 동일하게 유지될 수 있지만(예를 들어, 1/2), 정밀도 메트릭은 1/5=20%로 감소할 수 있다.
일부 구현 예들에서, 정밀도 메트릭은 다음과 같이 정밀도 = 정확한 위치 결정의 수/(총 위치 결정의 수 * 전자 트랜젝션 레이트)로 결정될 수 있다. 전자 트랜젝션 레이트은 전자 트랜젝션로 이어지는 판매점으로의 방문 횟수를 나타낼 수 있다. 데이터 처리 시스템(120)은 제3자 서버(160)로부터 전자 트랜젝션 레이트를 수신할 수 있다. 데이터 처리 시스템(120)은 네트워크(105)를 통해 데이터베이스에 액세스하여 전자 트랜젝션 레이트을 검색할 수 있다. 제3자 서버(160)는 시간 간격 동안 판매점에서 발생한 전자 트랜젝션 수를 그 시간 간격 동안 판매점으로의 방문 횟수로 나누어 전자 트랜젝션 레이트 결정할 수 있다. 일부 경우, 판매점는 제3자 서버(160)로 판매점으로의 방문 횟수 또는 전자 트랜젝션 수를 제공할 수 있다.
튜너(150)는 정밀도 메트릭, 리콜 메트릭 또는 둘 모두에 기초하여 파라미터를 조정할 수 있다. 튜너(160)는 위치 엔진(135)의 성능, 정밀도 또는 리콜을 향상시키기 위해 파라미터를 조정할 수 있다. 튜너(150)는 온라인 콘텐츠 아이템 경매에서 정밀도 또는 리콜 메트릭을 사용하여 콘텐츠를 선택하도록 허용함으로써 콘텐츠 선택기의 파리미터를 조정할 수 있다. 예를 들어, 콘텐츠 제공자(225)는 위치 기반 콘텐츠 아이템으로 콘텐츠 아이템 캠페인을 설정하고, 데이터 처리 시스템 (120)에게 지리적 위치들과 관련된 컴퓨팅 디바이스에 디스플레이하기 위한 콘텐츠 캠페인의 콘텐츠 아이템들을 선택하도록 명령하여, 위치 엔진(135)이 정밀도 임계값보다 큰 정밀도 메트릭(또는 리콜 임계값보다 큰 리콜 메트릭)을 갖는 정확한 위치를 결정할 수 있도록한다.
튜너(150)는 컴퓨팅 디바이스로부터 위치 핑을 수신하기 위한 시간 간격, 컴퓨팅 디바이스의 위치를 결정할 때 사용할 위치 핑의 시간 간격 또는 빈도 (frequency), 사용할 위치 정보의 소스(예를 들어, GPS, WIFI, 휴대폰 삼각 측량 또는 비콘), 사용할 하나 이상의 소스들의 조합, 클러스터 거리 임계값, 클러스터 시간 임계값, 클러스터를 형성하기 위한 최소 데이터 포인트 수 또는 클러스터를 형성하기 위한 최대 데이터 포인트 수와 같은 위치 엔진(135)의 튜닝 마라미터를 조정할 수 있다.
예를 들어, 데이터 처리 시스템(120)은 튜닝 파라미터를 조정하여 정밀도 또는 리콜 메트릭을 향상시킬 수 있다. 데이터 처리 시스템(120)은 컴퓨팅 디바이스(110)의 자원 소비(예를 들어, 배터리 소모, 프로세서 이용, 저장 장치 사용 또는 네트워크 데이터 사용)를 감소시키기 위해 튜닝 파라미터를 조정할 수 있다. 데이터 처리 시스템(120)은 데이터 처리 시스템(120)의 자원 소비를 감소시키기 위해 (예를 들어, 프로세서 이용, 저장 장치 소비 또는 네트워크 데이터 사용을 감소시키기 위해) 튜닝 파라미터를 조정할 수 있다.
예를 들어, 튜너(150)는 정밀도 메트릭이 정밀도 임계값(예를 들어, 50%, 60%, 70%, 90% 또는 95%)보다 높거나 리콜 메트릭이 리콜 임계값(예를 들어, 50%, 60%, 70%, 90% 또는 95%)보다 높다고 결정할 수 있다. 튜너(150)는 메트릭이 임계값 이상이기 때문에, 데이터 처리 시스템(120)은 여전히 만족스러운 정밀도 및 리콜 메트릭을 달성하면서 컴퓨팅 장치(110)로부터 수신된 위치 핑의 빈도를 감소시킬 수 있다고 결정할 수 있다. 튜너(150)는 메트릭이 임계값 이상이기 때문에, 데이터 처리 시스템(120)가 여전히 만족스러운 정밀도 및 리콜 메트릭을 달성하면서 데이터 저장소(155)에 저장된 위치 엔트리의 수를 감소시킬 수 있다고 결정할 수 있다. 튜너 (150)는 메트릭들이 임계값 이상이기 때문에, 데이터 처리 시스템(120)이 여전히 만족스러운 정밀도 및 리콜 메트릭을 달성하면서, 위치를 결정하는데 사용된 또는 컴퓨팅 디바이스(110)로부터 수신된 위치 정보(예를 들어, GPS, WIFI, 셀 폰 삼각 측량 또는 비콘)의 소스의 수를 감소시킬 수 있다고 결정할 수 있다. 튜너(160)는 또한 클러스터 임계값을 조정하여 클러스터 처리 기술을 보다 효율적으로(예를 들어, 더 작은 클러스터를 필터링하기 위해 클러스터를 생성하기 위한 더 많은 데이터 포인트가 필요함) 만들 수 있다.
튜너(150)는 정밀도 메트릭이 정밀도 임계값(예를 들어, 30%, 40%, 50%, 60%, 70%, 90% 또는 95%) 이하인지 또는 리콜 메트릭이 리콜 임계값(예를 들어, 30%, 40%, 50%, 60%, 70%, 90% 또는 95%) 이하(below)인지 결정할 수 있다. 메트릭이 임계값이하라고 결정한 것에 응답하여 튜너(150)는 튜닝 파라미터를 조정하여 위치 엔진(135)의 성능을 향상시킬 수 있다. 예를 들어, 정밀도 메트릭이 임계값 이하이면, 튜너(150)는 위치 엔진(135)이 부정확한 위치 결정의 만족스럽지 않은 수(number)를 만들과 있다고 결정할 수 있다. 정밀도 메트릭은 정확한 위치 결정의 수를 위치 결정의 총수로 나눈 수이기 때문에 튜너(150)는 정확한 결정 수를 증가시키고, 행해진 위치 결정의 수를 감소시키거나 둘 모두를 용이하게 하도록 파라미터를 조정할 수 있다.
예를 들어, 튜너(150)는 클러스터를 형성하는데 사용된 클러스터 시간 임계값, 클러스터 거리 임계 값 또는 데이터 포인트의 최소 수를 증가시켜, 위치 엔진에 의해 행해진 위치 결정의 총수를 감소시킬 수 있다. 튜너(150)는 임계값를 반복적으로 증가시키거나 조정할 수 있다. 예를 들어, 튜너(150)는 하나의 파라미터를 조정하고, 갱신된 메트릭을 결정하기 위해 추가 데이터를 수집한 다음 파라미터를 재조정하거나 또는 갱신된 메트릭이 만족스럽지 않은 경우(예를 들어, 정밀도 메트릭이 여전히 정밀도 임계값이하로 떨어진) 새로운 파마미터를 조정한다. 클러스터 시간 임계값을 증가시키는 것은 위치 엔진(135)에 의해 생성된 유효 클러스터의 수를 감소시킬 수 있고, 이로 인해 행해진 위치 결정의 수를 감소시킬 수 있고 정밀도 메트릭을 증가시킬 수 있다.
일부 경우, 튜너(150)는 튜닝 파라미터를 조정하여 정확한 위치 결정의 수를 증가시킬 수 있다. 예를 들어, 튜너(150)는 위치 결정을 하기 위해 위치 엔진(135)에 의해 사용된 위치 소스의 수 또는 유형에 해당하는 튜닝 파라미터를 조정할 수 있다. 튜너(150)는 적어도 두 개의 위치 소스(또는 예를 들어 3 또는 4)를 사용하여 위치 결정을 하도록 위치 엔진(135)에 지시할 수 있다. 튜너(150)는 하나 이상의 GPS, wifi 삼각 측량, 셀룰러 타워 삼각 측량, 비콘 기술 또는 IP 어드레스와 같은, 위치 결정을 수행하기 위한 특정 유형의 위치 소스들을 사용하도록 위치 엔진(135)에 지시할 수 있다. 예를 들어, 튜너(150)는 적어도 2개의 위치 소스를 사용하도록 위치 엔진(135)에 지시할 수 있으며, 2개의 위치 소스 중 하나는 셀룰러 타워 삼각 측량을 포함한다.
튜너(150)는 리콜 메트릭이 임계값 이하인지 결정할 수 있다. 리콜 메트릭이 임계값 이하인 것에 응답하여, 튜너(150)는 복수의 위치 결정을 하기 위해 위치 엔진에 의해 사용된 위치 핑의 빈도를 증가시킬 수 있다. 위치 엔진에 의해 사용되는 위치 핑의 빈도를 증가시킴으로써, 튜너(150)는 위치 엔진(135)이 고품질 데이터 포인트 또는 증가된 수의 데이터 포인트 수에 액세스할 수 있기 때문에 정확한 위치 결정의 수를 증가시킬 수 있다.
일부 경우, 튜너는 리콜 메트릭을 증가시키기 위하여, 복수의 위치결정을 하기 위해 위치 엔진에 의해 사용된 클러스터 거리 임계값를 감소시킬 수 있다. 클러스터 거리를 감소시킴으로써 위치 엔진(135)은 더 많은 수의 위치 클러스터를 생성할 수 있다. 더 많은 위치 클러스터를 생성하는 것은 정확한 위치 클러스터의 수를 증가시키는 것에 해당할 수 있다. 예를 들어, 제1위치 클러스터는 판매점 A에 대응할 수 있고, 제2위치 클러스터는 판매점 A에 인접하거나 인접한 판매점 B에 대응할 수 있다. 클러스터 거리 임계값를 감소시킴으로써 위치 엔진(135)은 두 판매점을 구별할 수 있어, 따라서 위치 엔진(13)에 의해 행해진 정확한 위치 결정의 수를 향상시킬 수 있다.
도 3은 예시적인 구현에 따라 상이한 데이터 세트 사이에서 식별자를 매칭시키는 예시적인 방법(300)을 나타내는 흐름도이다. 방법(300)은 제1식별자를 제2식별자에 브리징하거나 매핑하도록 수행될 수 있다. 방법(300)은 제1식별자를 제2식별자에 매핑하는데 사용된 매핑 함수 또는 키를 결정하기 위해 수행될 수 있다. 제1식별자는 데이터 처리 시스템에 의해 생성된 식별자에 대응할 수 있고, 제2식별자는 제3자 서버에 의해 생성된 식별자에 대응할 수 있다. 방법(300)과 관련하여 본 명세서에 설명된 기능은 시스템(100), 시스템(200), 데이터 처리 시스템(120) 또는 도 1, 2 또는 5에 도시된 임의의 다른 모듈 또는 컴포넌트에 의해 수행되거나 또는 실행될 수 있다. 방법(300)은 몇 초 또는 몇 분마다 한 번에서부터 소정 일수에 한 번까지의 다양한 시간 간격으로 수행되거나 실행될 수 있다. 방법(300)은 소정 수의 복수의 제1파라미터 및 복수의 제2파라미터를 누적하는 것과 같은, 조건부, 예를들어 데이터 처리 시스템(120)에 의해 결정되거나 수신된 조건의 성취시에 수행되거나 실행될 수 있다. 방법(300)은 데이터 처리 시스템(120)으로부터의 요청에 응답하여 수행될 수 있다.
블록(305)에서, 데이터 처리 시스템은 제1식별자 벡터를 제3자 서버로 전송할 수 있다. 예를 들어, 데이터 처리 시스템은 제1식별자 벡터를 네트워크를 통해 제3자 서버로 전송할 수 있다. 데이터 처리 시스템은 제1암호화에 기초하여 암호화된 제1식별자 벡터를 전송할 수 있다. 제1식별자 벡터는 제1식별자, 복수의 제1파라미터 및 복수의 제2파라미터를 포함할 수 있다. 각 복수의 제1파라미터와 각 복수의 제2파라미터는 네트워크 액티비티의 로그 데이터 또는 제1식별자와 연관된 하나 이상의 컴퓨팅 디바이스에 의한 데이터 처리 시스템과의 인터렉션을 포함할 수 있다.
블록(310)에서, 데이터 처리 시스템은 제3자 서버에 의해 암호화된 제1식별자 벡터를 수신할 수 있다. 예를 들어, 데이터 처리 시스템은 네트워크를 통해 제3자 서버에 의해 암호화된 제1식별자 벡터를 수신할 수 있다. 제1식별자 벡터에 적용된 암호화 기술은 제3자 서버와 관련된 제3자 암호화일 수 있다.
블록(315)에서, 데이터 처리 시스템은 제3자 서버에 의해 암호화된 제2식별자 벡터를 수신할 수 있다. 예를 들어, 데이터 처리 시스템은 네트워크를 통해 제3자 서버로부터 제2식별자 벡터를 수신할 수 있다. 제2식별자 벡터는 제2식별자, 복수의 제3파라미터 및 복수의 제4파라미터를 포함할 수 있다. 각 복수의 제3파라미터와 각 복수의 제4파라미터는 네트워크 액티비티의 로그 데이터 또는 제2식별자와 연관된 하나 이상의 컴퓨팅 디바이스에 의한 제3자 서버와의 인터렉션을 포함할 수 있다. 제2식별자 벡터에 적용된 암호화 기술은 제3자 서버와 관련된 제3자 암호화 일 수 있다.
블록(320)에서, 데이터 처리 시스템은 제1식별자 벡터와 제2식별자 벡터 사이의 상관 카운트를 결정할 수 있다. 예를 들어, 데이터 처리 시스템은 복수의 제1파라미터 일부와 복수의 제3파라미터 일부 사이 및 복수의 제2파라미터 일부와 복수의 제4파라미터 일부 사이에 매칭이 존재하는지 결정하는 것에 기초하여 제1식별자 벡터와 제2식별자 벡터 사이의 상관 카운트를 결정할 수 있다. 데이터 처리 시스템은 예를 들어, 복수의 제1파라미터 중 하나가 복수의 제2파라미터 중 하나의 제1마진 내에 있고, 복수의 제3파라미터 중 하나가 복수의 제4파라미터 중 하나의 제2마진 내에 있을 때, 각 파라미터들 사이에 매칭이 있다고 결정할 수 있다.
블록(325)에서, 데이터 처리 시스템은 상관 카운트에 기초하여 제1식별자가 제2식별자와 대응한다고 결정할 수 있다. 예를 들어, 데이터 처리 시스템은 상관 카운트가 결정된 임계값 이상인 것에 기초하여 제1식별자가 제2식별자와 대응한다고 결정할 수 있다. 데이터 처리 시스템은 복수의 제1파라미터, 복수의 제2파라미터, 복수의 제3파라미터 및 복수의 제4파라미터의 길이에 기초하여 임계값을 결정할 수 있다.
블록(330)에서, 데이터 처리 시스템은 제1식별자 및 제2식별자 모두를 위해하나의 식별자 키를 생성할 수 있다. 예를 들어, 데이터 처리 시스템은 제1식별자가 제2식별자와 대응한다고 결정한 것에 응답하여 제1식별자와 제2식별자 모두를 위해 하나의 식별자 키를 생성할 수 있다. 데이터 처리 시스템은 하나의 식별자 키로서 제1식별자를 설정할 수 있다.
도 4는 구현에 따라 네트워크를 통해 위치 엔진을 튜닝하기 위해 위치 데이터를 암호화적으로 보호하는 방법을 나타내는 흐름도이다. 방법(400)은 예를 들어, 데이터 처리 시스템, 통신 인터페이스, 위치 엔진, 브리징 모듈, 제1암호화 모듈, 튜너 또는 데이터 저장소를 포함하는 도 1, 도 2 또는 도 5에 도시된 하나 이상의 시스템, 컴포넌트 또는 인터페이스를 통해 수행될 수 있다.
간략한 개요 및 일부 구현 예들에서, 방법(400)은 제1식별자와 각각 연관된 위치 결정을 검색하고 블록(410)에서 매핑 함수를 사용하여 제1식별자를 제2식별자에 매핑하는 데이터 처리 시스템을 포함할 수 있다. 415에서, 데이터 처리 시스템은 각 위치 결정에 대한 제1해시값을 결정한다. 420에서, 데이터 처리 시스템은 제1해시값을 암호화하여 제1암호화 데이터 세트를 생성하고, 제1암호화 데이터 세트를 제3자 서버로 송신한다. 425에서, 데이터 처리 시스템은 제3자 서버에 의해 생성된 제2해시값을 포함하는 제2암호화 데이터 세트를 제3자 서버로부터 수신한다. 430에서, 데이터 처리 시스템은 제2암호화 데이터 세트를 암호화하여 제1이중 암호화 데이터 세트를 생성한다. 435에서, 데이터 처리 시스템은 제3자 서버로부터 제2이중 암호화 데이터 세트를 수신한다. 440에서, 데이터 처리 시스템은 제1이중 암호화 데이터 세트를 제2이중 암호화 데이터 세트와 비교하여 메트릭을 결정한다. 데이터 처리 시스템은이 메트릭을 사용하여 콘텐츠 선택을 용이하게하거나 위치 엔진의 성능을 향상시킬 수 있다.
여전히 도 4를 참조하고, 더욱 상세하게는, 방법(400)은 410에서 제1식별자와 각각 연관된 위치 결정들을 검색하고, 매핑 함수을 이용하여 제1식별자를 제2식별자에 매핑한다. 예를 들어, 데이터 처리 시스템의 브리징 모듈은 메모리에 저장된 위치 데이터베이스로부터 데이터 처리 시스템의 위치 엔진에 의해 이루어진 위치 결정을 검색할 수 있다. 각 위치 결정은 각각의 제1식별자와 연관될 수 있다. 위치는 소매점, 식당, 서비스 제공자 또는 다른 엔티티와 같은 판매점에서 컴퓨팅 디바이스의 위치에 대응할 수 있다. 데이터 처리 시스템은 시간 간격 동안 하나 이상의 컴퓨팅 디바이스로부터 수신된 위치 정보를 사용하여 위치를 결정할 수 있다.
데이터 처리 시스템은 기준(criteria)을 만족하는 위치 결정을 검색하기 위해 데이터베이스에서 탐색을 수행할 수 있다. 예를 들어, 데이터 처리 시스템은 데이터베이스에서 탐색을 수행하여 특정 판매점, 지리적 영역, 도시, 주 또는 우편 번호에 대응하는 위치 결정을 검색할 수 있다. 데이터 처리 시스템은 탐색을 수행하여 시간 간격 내 또는 제1날짜 또는 타임스탬프와 제2날짜 또는 타임스탬프 사이에서 발생한 위치 결정을 검색할 수 있다.
예를 들어, 데이터 처리 시스템은 컴퓨팅 디바이스(예를 들어, 휴대용 컴퓨팅 디바이스)의 센서에 의해 결정된 지리적 좌표를 수신할 수 있다. 데이터 처리 시스템은 네트워크(105)를 통해 통신하도록 구성된 통신 인터페이스와 같은 휴대용 디바이스의 네트워크 인터페이스로부터 지리적 좌표를 수신할 수 있다. 데이터 처리 시스템은 지리적 좌표에 기초하여 휴대용 디바이스의 위치를 결정할 수 있다. 데이터 처리 시스템은 차후 처리를 위해 휴대용 디바이스의 위치를 데이터베이스에 저장할 수 있다.
일부 경우, 데이터 처리 시스템은 다수의 위치 소스를 사용하여 결정된 휴대용 디바이스에 대한 위치 정보를 수신할 수 있다. 예를 들어, 데이터 처리 시스템은 휴대용 디바이스의 GPS, 휴대용 디바이스의 무선 네트워크 인터페이스, 휴대 전화 타워 삼각 측량 또는 비콘 중 적어도 2개를 통해 휴대용 디바이스에 의해 결정된 위치 정보를 수신할 수 있다. 일부 경우, 휴대용 디바이스는 2개 이상의 소스에 의해 결정된 위치 정보를 분석 및 합성하여 위치 결정을 데이터 처리 시스템으로 제공할 수 있다. 일부 경우에, 데이터 처리 시스템은 휴대 장치에 지시하여 특정 수의 이용 가능한 위치 소스 또는 특정 유형의 위치 소스를 사용하도록 할 수 있다.
일부 경우, 휴대용 디바이스는 각 소스에 의해 결정된 개별 위치 정보를 제공할 수 있고, 데이터 처리 시스템은 위치 정보를 분석하여 위치 결정을 할 수 있다. 위치 엔진은 각 소스들로부터의 위치 정보에 기초하여 휴대용 디바이스의 위치를 결정할 수 있다. 예를 들어, 데이터 처리 시스템의 위치 엔진은 다수의 소스로부터 수신된 위치 데이터 포인트를 비교하여 위치 데이터 포인트를 가중하여 중심 위치를 결정할 수 있다. 예를 들어, 위치 엔진은 비콘 또는 휴대 전화 타워 삼각 측량 데이터 포인트보다 낮은 GPS 데이터 포인트를 가중(weight)하기로 결정할 수 있다. 보다 낮은 GPS 데이터 포인트를 가중함으로써 데이터 처리 시스템은 휴대 전화 타워 삼각 측량 데이터 포인트가 위치 결정을 수행하도록 할 수 있다.
데이터 처리 시스템(예를 들어, 브리징 모듈을 통해)은 매핑 함수을 이용하여 각각의 제1식별자를 각각의 제2식별자에 매핑할 수 있다. 예를 들어, 데이터 처리 시스템은 매핑 함수를 사용하여 제1식별자를 제2식별자에 매핑할 수 있다. 제2식별자는 제3자 서버에 의해 사용되고 또한 데이터 처리 시스템에 알려진 공통 식별자에 대응할 수 있다. 데이터 처리 시스템은 매핑 함수 또는 브리징 기술을 사용하여 제1식별자를 제2식별자로 변환, 해석 또는 매핑할 수 있다.
415에서, 데이터 처리 시스템은 각 위치 결정에 대한 제1해시값을 결정한다. 데이터 처리 시스템(예를 들어, 제1암호화 모듈을 통해)은 제2식별자로 형성된 튜플에 적용된 제1해시 함수 및 각 위치 결정의 타임스탬프를 사용하여 각 위치 결정에 대한 제1해시값을 결정할 수 있다. 일부 경우, 데이터 처리 시스템은 제2식별자, 타임스탬프 및 각 위치 결정의 위치로 형성된 튜플에 적용된 제1해시 함수를 사용하여 각 위치 결정에 대한 제1해시값을 결정할 수 있다. 타임스탬프 또는 위치는 버킷화되거나 양자화될 수 있다. 예를 들어, 타임스탬프는 버킷 화되거나 가장 가까운 10초, 30초, 60초 또는 2분으로 반올림될 수 있다. 위치는 버킷화되거나 위도와 경도 정밀도, 주소, 지도 타일(map tile), 지도 사분면(map quadrant), 반경, 25평방 미터, 50평방 미터 또는 100평방 미터로 반올림될 수 있다. 데이터 처리 시스템은 각 위치 결정에 대한 해시값을 결정하기 전에 각 위치 결정의 타임스탬프에 소정의 양자화를 적용할 수 있다.
420에서, 데이터 처리 시스템은 제1해시값을 암호화하여 제1암호화 데이터 세트를 생성하여, 제1암호화 데이터 세트를 제3자 서버로 송신한다. 데이터 처리 시스템(예를 들어, 제1암호화 모듈)은 제1암호화 데이터 세트를 생성하도록 제1암호화 프로토콜을 사용하여 각 위치 결정에 대한 제1해시값을 암호화할 수 있다. 데이터 처리 시스템은 각 해시값에 동일한 암호화 프로토콜을 적용하거나 일부 해시값에 상이한 암호화 프로토콜을 적용할 수 있다.
데이터 처리 시스템(예컨대, 통신 인터페이스)은 제1암호화 데이터 세트를 제3자 서버로 전송할 수 있다. 예를 들어, 제3자 서버는 판매점에서 하나 이상의 POS디바이스를 통해 수행된 전자 트랜젝션을 처리하는 하나 이상의 서버들을 포함하거나 그들와 연관될 수 있다. 제3자 서버는 데이터 처리 시스템이 성능 메트릭을 결정하는 데 사용할 수 있는 지상 실측 데이터를 제공할 수 있다.
425에서, 데이터 처리 시스템은 제3자 서버에 의해 생성된 제2해시값을 포함하는 제2암호화 데이터 세트를 제3자 서버로부터 수신한다. 제3자 서버는 해시 함수를 제2식별자와 타임스탬프에 적용하여 제2해시값을 생성할 수 있다. 제3자 서버는 제2식별자, 타임스탬프 및 위치에 해시 함수를 적용하여 제2해시값을 생성할 수 있다. 제3자 서버는 데이터 처리 시스템이 제1해시값을 생성하는 것과 동일한 방식으로 제2해시값을 생성할 수 있다. 예를 들어, 데이터 처리 시스템은 동일한 해시 함수를 사용하여 제3자 서버가 제2해시값을 생성하기 위해 사용하는 제1해시값을 생성할 수 있다. 데이터 처리 시스템과 제3자 서버는 또한 동일한 제2식별자를 사용할 수 있다. 데이터 처리 시스템과 제3자 서버는 타임스탬프 또는 위치에 대해 동일한 버킷 크기 또는 양자화를 사용할 수도 있다.
예를 들어, 제3자 서버는 제2해시값을 생성하기 전에 각 전자 트랜잭션의 타임스탬프에 소정의 양자화를 적용할 수 있다. 일부 경우, 데이터 처리 시스템은 소정의 양자화를 제3자 서버로 제공할 수 있다. 일부 경우, 데이터 처리 시스템은 제3자 서버로부터 소정의 양자화를 수신하고 소정의 양자화를 사용하여 제1해시값을 생성할 수 있다.
제3자 서버는 제2해시값에 제2암호화 프로토콜을 적용하여 제2암호화 데이터 세트를 생성할 수 있다. 제2암호화 프로토콜은 제1암호화 프로토콜과 상이할 수 있다. 예를 들어, 제2암호화 프로토콜 및 제1암호화 프로토콜은 상이한 알고리즘, 키 또는 파라미터를 사용할 수 있다. 데이터 처리 시스템과 제3자 서버는 암호화된 데이터 세트를 생성하기 위해 사용된 암호화 프로토콜의 은닉할 수 있다. 제1 및 제2암호화 프로토콜은 모두 교환형 암호화 프로토콜일 수 있다. 만약 암호화 프로토콜이 적용된 순서로 결과가 변경되지 않으면, 제1 및 제2암호화 프로토콜은 교환 속성을 가질 수 있다. 예를 들어, G(T(h)) = T(G(h)))이고, 여기서 G는 제1암호화 프로토콜이고 T는 제2암호화 프로토콜이다.
430에서, 데이터 처리 시스템은 제2암호화 데이터 세트를 암호화하여 제1이중 암호화 데이터 세트를 생성한다. 데이터 처리 시스템(예를 들어, 제1암호화 모듈을 통한)은 제1이중 암호화 데이터 세트를 생성하기 위해, 제1암호화 프로토콜을 사용하여 제3자 서버로부터 수신된 제2암호화 데이터 세트를 암호화할 수 있다. 제1이중 암호화 데이터 세트는 전자 트랜젝션에 해당하기 때문에 지상 실측 데이터에 해당할 수 있다.
435에서, 데이터 처리 시스템은 제3자 서버로부터 제2이중 암호화 데이터 세트를 수신한다. 데이터 처리 시스템(예를 들어, 통신 인터페이스를 통해)은 제2이중 암호화 데이터를 수신할 수 있다. 제3자 서버(예를 들어, 제2암호화 모듈을 통해)는 데이터 처리 시스템에 의해 제3자 서버로 전송된 제1암호화 데이터 세트에 제2암호화 프로토콜을 적용함으로써 제2이중 암호화 데이터 세트를 생성할 수 있다.
440에서, 데이터 처리 시스템은 제1이중 암호화 데이터 세트를 제2이중 암호화 데이터 세트와 비교하여 메트릭을 결정한다. 데이터 처리 시스템은 메트릭을 사용하여 콘텐츠 선택을 용이하게 하거나 위치 엔진의 성능을 향상시킬 수 있다. 데이터 처리 시스템(예를 들어, 튜너를 통해)은 정확한 위치 결정의 총수, 위치 결정의 총수 및 실제 위치 이벤트의 총수에 기초하여 정밀 메트릭 및 리콜 메트릭을 결정하기 위하여 제1이중 암호화 데이터 세트를 제2이중 암호화 데이터 세트와 비교할 수 있다. 튜너는 적어도 하나의 정밀도 메트릭 또는 리콜 메트릭에 기초하여 위치 엔진의 튜닝 파라미터를 조정할 수 있다.
정밀도 메트릭을 결정하기 위해, 데이터 처리 시스템은 제1이중 암호화 데이터 세트의 엔트리와 매칭하는 제2이중 암호화 데이터 세트의 엔트리의 수에 기초하여 정확한 위치 결정의 총수를 결정할 수 있다. 매칭은 엔트리가 동일하도록 정확한 매칭일 수 있다. 데이터 처리 시스템은 제2이중 암호화 데이터 세트의 엔트리 수에 기초하여 위치 결정의 총수를 결정할 수 있다. 데이터 처리 시스템은 정확한 위치 결정의 총수를 위치 결정의 총수로 나누어 정밀도 메트릭을 결정할 수 있다. 일부 경우에, 데이터 처리 시스템은 정확한 위치 결정의 총수를 위치 결정의 총수와 전자 트랜젝션 레이트의 곱으로 나눔으로써 정밀도 메트릭을 결정할 수 있다. 전자 트랜젝션 레이트은 판매점 방문 횟수에 따라 발생하는 트랜젝션의 수를 지칭할 수 있다(예를 들어, 20개 중 1개, 5% 또는 3/100).
리콜 메트릭을 결정하기 위해, 데이터 처리 시스템은 제1이중 암호화 데이터 세트의 엔트리 수에 기초하여 실제 위치 이벤트의 총수를 결정할 수 있다. 데이터 처리 시스템은 정확한 위치 결정의 총수를 실제 위치 이벤트의 총수로 나눔으로써 리콜 메트릭을 결정할 수 있다.
데이터 처리 시스템은 성능 메트릭을 사용하여 위치 엔진의 파라미터를 조정하거나 다른 목적으로 사용할 수 있다. 예를 들어, 데이터 처리 시스템은 하나 이상의 판매점 또는 지리적 영역에 대한 성능 메트릭을 포함하는 레포트(report)를 생성할 수 있다. 예를 들어, 데이터 처리 시스템은 서로 인접하여 위치하는 판매점의 수 때문에 인구 밀집 도시가 낮은 성능 메트릭을 갖는다고 판단할 수 있다. 다른 예에서, 데이터 처리 시스템은 위치 엔진이 여러 소매점이 있는 실내 쇼핑몰에서 위치 결정을 제대로 수행하지 못한다고 결정할 수 있다. 이는 GPS 액세스가 없거나 휴대 전화 수신이 불량하거나 위치 소스가 없거나 부정확한 위치 소스 (예 : GPS 신호가 잘못된 시간 판독 값을 발생시키는 물체로 튀는 경우) 때문일 수 있다. 성능 메트릭의 불확실성을 식별하는 데 도움이 되는 데이터 처리 시스템은 데이터 처리 시스템의 성능을 향상 시키거나 기능을 조정하는 기술을 결정할 수 있다.
예를 들어, 데이터 처리 시스템은 판매점에게 위치 정확성을 향상시키기 위해 판매점 위치에 WIFI 라우터를 제공하거나 구성하도록 판매점에게 지시함으로써 성능을 향상시킬 수 있다. 다른 예에서, 데이터 처리 시스템은 낮은 품질의 위치를 ??고려하여 콘텐츠 선택을 조정할 수 있다. 예를 들어, 데이터 처리 시스템은 위치 엔진이 컴퓨팅 디바이스가 커피 숍 또는 세무 제공자 사무실에 있는지에 대해 충분한 확신을 가지고 결정할 수 없다고 결정할 수 있다. 커피 숍 위치에 기초하여 선택된 광고는 납품업자 사무실에 기초하여 선택된 광고와 다를 수 있으므로, 데이터 처리 시스템은 위치 기준을 사용하지 않고 광고를 선택하도록 결정할 수 있다. 일부 경우, 데이터 처리 시스템은 두 위치 기준에 부합하는 광고를 선택하도록 결정할 수 있다.
따라서, 본 개시의 시스템 및 방법은 성능 메트릭을 결정하기 위해 데이터 처리 시스템과 제3자 서버간에 전송된 위치 데이터를 암호적으로 보호할 수 있고, 컴포넌트 또는 기능을 개선하기 위해 데이터 처리 시스템의 컴포넌트 또는 기능을 튜닝할 수 있다. 예를 들어, 데이터 처리 시스템은 성능 메트릭을 사용하여 위치 엔진의 정밀도 또는 리콜을 개선하고, 콘텐츠 선택을 향상시키며, 컴퓨팅 디바이스 또는 데이터 처리 시스템의 자원 소비를 감소시킬 수 있다.
예를 들어, 데이터 처리 시스템은 성능 메트릭을 사용하여, 위치 엔진의 정밀도 또는 리콜을 향상시키고, 컨텐트 선택을 향상시키며, 또는 컴퓨팅 디바이스 또는 데이터 처리 시스템의 자원 소비를 감소시킬 수 있다.
도 5는 예시적인 구현에 따른 컴퓨터 시스템(500)의 블록도이다. 컴퓨터 시스템 또는 컴퓨팅 디바이스(500)는 시스템(100), 시스템(200), 콘텐츠 제공자(225), 컴퓨팅 디바이스(110), 콘텐츠 발행자(215), 데이터 처리 시스템(120), 통신 인터페이스(130), 위치 엔진 (135), 브리징 모듈(140), 제1암호화 (145), 튜너(150), 데이터 저장소(155), 제3자 서버(160), 제2암호화 모듈(165), POS디바이스(115) 또는 트랜잭션 카드(125)를 구현하는데 사용될 수 있다. 컴퓨팅 시스템(500)은 정보를 전송하기 위한 버스(505) 또는 다른 통신 컴포넌트 및 정보를 처리하기 위해 버스(505)에 연결된 프로세서(510) 또는 처리 회로를 포함한다. 컴퓨팅 시스템(500)은 또한 정보를 처리하기 위해 버스에 결합된 하나 이상의 프로세서 (510) 또는 처리 회로를 포함할 수 있다. 컴퓨팅 시스템 (500)은 또한 정보를 저장하기 위해 버스(505)에 결합된 랜덤 액세스 메모리(RAM) 또는 다른 동적 저장 디바이스와 같은 메인 메모리(515) 및 프로세서(510)에 의해 실행될 명령을 포함한다. 메인 메모리(515)는 또한 프로세서(510)에 의한 명령 실행 동안 위치 정보, 임시 변수 또는 다른 중간 정보를 저장하는데 사용될 수 있다. 컴퓨팅 시스템(500)은 프로세서(510)에 대한 정적 정보 및 명령을 저장하기 위해 버스(505)에 결합된 판독 전용 메모리(ROM)(520) 또는 다른 정적 저장 디바이스를 더 포함할 수 있다. 고체 촬상 디바이스, 자기 디스크 또는 광 디스크와 같은 저장 디바이스(525)는 정보 및 명령을 지속적으로 저장하기 위해 버스(505)에 결된다. 컴퓨팅 시스템(500)은 사용자에게 정보를 디스플레이하기 위해 버스(505)를 통해 액정 디스플레이 또는 능동 메트릭스 디스플레이와 같은 디스플레이(535)에 연결될 수 있다. 영숫자 및 다른 키들을 포함하는 키보드와 같은 입력 디바이스(530)는 정보 및 명령 선택을 프로세서(510)로 전송하기 위해 버스(505)에 연결될 수 있다. 입력 디바이스(530)는 터치 스크린 디스플레이(535)를 포함할 수 있다. 입력 디바이스(530)는 방향 정보 및 명령 선택을 프로세서(510)로 전달하고, 디스플레이(535)상의 커서 움직임을 제어하기 위한 마우스, 트랙볼 또는 커서 방향 키와 같은 커서 컨트롤을 또한 포함할 수 있다.
본 명세서에 설명된 프로세스, 시스템 및 방법은 프로세서(510)가 메인 메모리(515)에 포함된 명령들의 배열을 실행하는 것에 응답하여 컴퓨팅 시스템 (500)에 의해 구현될 수 있다. 그러한 명령들은 저장 디바이스(525)와 같은 다른 컴퓨터 판독 가능 매체로부터 메인 메모리(515)로 판독될 수 있다. 메인 메모리(515)에 포함된 명령들의 배열을 실행하는 것은 컴퓨팅 시스템(500)으로 하여금 여기에 설명된 예시적인 프로세스들을 수행하도록 한다. 다중 처리 배열 내의 하나 이상의 프로세서는 또한 메인 메모리(515)에 포함된 명령을 실행하도록 사용될 수도 있다. 대안적인 구현 예들에서, 예시적인 구현을 수행하기 위해 소프트웨어 명령어 대신에 또는 소프트웨어 명령어와 조합하여 하드-와이어드(hard-wired) 회로가 사용될 수 있다. 따라서, 구현은 하드웨어 회로 및 소프트웨어의 특정 조합으로 제한되지 않는다.
예시적인 컴퓨팅 시스템이 도 5에 기술되어 있지만, 본 명세서에서 기술된 주제 및 기능적 동작의 구현들은 본 명세서 및 구조적 균등물에 개시된 구조 또는 이들 중 하나 이상의 조합을 포함하는 다른 유형의 디지털 전자 회로 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어로 구현될 수 있다. 본 명세서에서 기술된 주제 및 동작의 구현은 본 명세서에 개시된 구조 및 구조적 등가물, 또는 이들 중 하나 이상의 조합을 포함하는 디지털 전자 회로, 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어에서 구현될 수 있다. 본 명세서에 기술된 주제는 하나 이상의 컴퓨터 프로그램, 예를 들어, 데이터 처리 장치에 의해 실행되거나 또는 데이터 처리 장치의 동작을 제어하기 위해 하나 이상의 컴퓨터 저장 매체상에 인코딩된 컴퓨터 프로그램 명령들의 하나 이상의 회로로서 구현될 수 있다. 선택적으로 또는 부가적으로, 프로그램 명령은 인위적으로 생성된 전파 신호상에서, 예를 들면, 데이터 처리 장치에 의한 실행을 위하여 적절한 수신기 장치로 전송하기 위한 정보를 인코딩하기 위해 생성된 기계-생성의 전기, 광학 또는 전자기 신호 상에서 인코딩될 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독 가능 저장 디바이스, 컴퓨터 판독 가능 저장 기판, 랜덤 또는 직렬 액세스 메모리 어레이 또는 디바이스, 또는 이들 중 하나 이상의 조합일 수 있거나 포함될 수 있다. 게다가, 컴퓨터 저장 매체는 전파 신호가 아니지만, 컴퓨터 저장 매체는 인위적으로 생성된 전파신호로 인코딩된 컴퓨터 프로그램 명령의 소스 또는 목적지일 수 있다. 컴퓨터 저장 매체는 하나 이상의 개별 컴포넌트 또는 매체(예를 들어, 다수의 CD, 디스크 또는 다른 저장 디바이스)일 수 있거나 포함될 수 있다.
본 명세서에서 기술된 동작은 하나 이상의 컴퓨터 판독 가능 저장 디바이스에 저장되거나 다른 소스로부터 수신된 데이터에서 데이터 처리 장치에 의해 수행될 수 있다.
"데이터 처리 장치" 또는 "컴퓨팅 디바이스"라는 용어는 예를 들어 프로그램 가능 프로세서, 컴퓨터, 칩상의 시스템 또는 다수의 시스템 또는 이들의 조합을 포함하는 데이터를 처리하기 위한 다양한 장치, 디바이스 및 기계를 포함한다. 장치는 특수 목적 논리 회로, 예를 들어 FPGA(field programmable gate array) 또는 ASIC((application specific integrated circuit)을 포함할 수 있다. 또한, 장치는 하드웨어 이외에도 문제의 컴퓨터 프로그램, 예를 들어 프로세서 펌웨어를 구성하는 코드, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 크로스-플랫폼 런타임(cross-platform runtime), 가상 머신 또는 이들 중 하나 이상의 조합을 위한 실행 환경을 생성하는 코드를 또한 포함 할 수 있다. 장치 및 실행 환경은 웹 서비스, 분산 컴퓨팅 및 그리드 컴퓨팅 인프라와 같은 다양한 다른 컴퓨팅 모델 인프라구조를 실현할 수 있다.
컴퓨터 프로그램(또한 프로그램, 소프트웨어, 소프트웨어 애플리케이션, 스크립트 또는 코드로 알려진)은 컴파일된 또는 해석된 언어, 선언적 또는 절차적 언어를 포함하는 모든 형태의 프로그래밍 언어로 작성될 수 있으며, 독립 실행형 프로그램 또는 회로, 컴포넌트, 서브 루틴, 객체 또는 컴퓨팅 환경에서 사용하기에 적합한 다른 장치를 포함한 모든 형태로 배포될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 해당할 수 있지만 반드시 그런 것은 아니다. 프로그램은 다른 프로그램이나 데이터(예를 들어, 마크업 언어 문서에 저장된 하나 이상의 스크립트),를 보유하고 있는 파일의 일부분, 문제의 프로그램 전용 파일 또는 여러개의 조정 파일(예를 들어, 하나 이상의 회로, 서브 프로그램 또는 코드 부분을 저장하는 파일)에 저장될 수 있다. 컴퓨터 프로그램은 하나의 사이트에 위치하거나 다수의 사이트에 분산되어 있으며 통신 네트워크로 상호 연결된 하나의 컴퓨터 또는 여러 대의 컴퓨터에서 실행되도록 배포될 수 있다.
컴퓨터 프로그램의 실행에 적합한 프로세서는 예를 들어 범용 및 특수 목적 마이크로 프로세서 및 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서를 포함한다. 일반적으로, 프로세서는 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 둘 모두로부터 명령과 데이터를 수신할 것이다. 컴퓨터의 필수 구성 요소는 명령어 및 데이터를 저장하기 위한 명령과 하나 이상의 메모리 디바이스에 따라 액션을 수행하기 위한 프로세서이다. 일반적으로, 컴퓨터는 데이터 예를 들어, 자기, 광 자기 디스크 또는 광 디스크를 저장하기 위한 하나 이상의 대용량 저장 디바이스로부터 데이터를 수신하거나 전송하거나 둘 모두를 위해 동작 가능하게 결합 될 것이다. 게다가, 컴퓨터는 다른 장치, 예를 들어, 이동 전화기, 개인 휴대 정보 단말기(PDA), 모바일 오디오 또는 비디오 플레이어, 게임 콘솔, GPS 수신기 또는 휴대용 저장 디바이스(예를 들어, 범용 직렬 버스(USB) 플래시 드라이브)에 내장될 수 있다. 컴퓨터 프로그램 명령 및 데이터를 저장하기에 적합한 장치는 예를 들어 EPROM, EEPROM 및 플래시 메모리 기바이스와 같은 반도체 메모리 장치; 내부 하드 디스크 또는 이동식 디스크와 같은 자기 디스크; 광 자기 디스크; 및 CD ROM 및 DVD-ROM 디스크를 포함하는 모든 형태의 비 휘발성 메모리, 미디어 및 메모리 장치를 포함한다. 프로세서 및 메모리는 특수 목적 논리 회로에 의해 보충되거나 그 안에 포함될 수 있다
사용자와의 인터렉션을 제공하기 위해, 본 명세서에서 기술된 내용의 구현은 CR (cathode ray tube) 또는 LCD(liquid crystal display) 모니터와 같은 디스플레이 디바이스를 갖는 컴퓨터상에서 구현될 수 있으며, 사용자 및 키보드와, 사용자가 컴퓨터에 입력을 제공할 수 있는 마우스 또는 트랙볼과 같은 포인팅 장치를 포함할 수 있다. 다른 종류의 디바이스가 사용자와의 인터렉션을 제공하는데 사용될 수 있는데, 예를 들어, 사용자에게 제공되는 피드백은 임의의 형태의 감각 피드백, 예를 들어, 시각 피드백, 청각 피드백 또는 촉각 피드백일 수 있고, 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함하는 임의의 형태로 수신될 수 있다.
예시적인 컴퓨팅 시스템이 도 5에 기술되어 있지만, 본 명세서에서 기술된 대상 및 기능 동작의 구현은 다른 유형의 디지털 전자 회로, 또는 본 명세서 및 구조적 등가물에 개시된 구조를 포함하는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어로 구현될 수 있거나, 그들 중 하나 이상의 조합으로 구현될 수 있다.
본 명세서에서 기술된 주제 및 동작의 구현은 디지털 전자 회로, 또는 컴퓨터 소프트웨어, 펌웨어, 또는 하드웨어에서 구현될 수 있으며, 이 명세서 및 그 구조적 등가물에 개시된 구조를 포함하거나, 하나 이상의 그들 조합으로 구현될 수 있다. 본 명세서에 기술된 주제는 하나 이상의 컴퓨터 프로그램, 예를 들어, 데이터 처리 장치에 의해 실행되거나 또는 데이터 처리 장치의 동작을 제어하기 위해 하나 이상의 컴퓨터 저장 매체상에 인코딩된 컴퓨터 프로그램 명령들의 하나 이상의 회로로서 구현될 수 있다. 선택적으로 또는 부가적으로, 프로그램 명령은 인위적으로 생성된 전파 신호상에서, 예를 들면, 데이터 처리 장치에 의한 실행을 위하여 적절한 수신기 장치로 전송하기 위한 정보를 인코딩하기 위해 생성된 기계-생성의 전기, 광학 또는 전자기 신호 상에서 인코딩될 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독 가능 저장 디바이스, 컴퓨터 판독 가능 저장 기판, 랜덤 또는 직렬 액세스 메모리 어레이 또는 디바이스, 또는 이들 중 하나 이상의 조합일 수 있거나 포함될 수 있다. 게다가, 컴퓨터 저장 매체는 전파 신호가 아니지만, 컴퓨터 저장 매체는 인위적으로 생성된 전파신호로 인코딩된 컴퓨터 프로그램 명령의 소스 또는 목적지일 수 있다. 컴퓨터 저장 매체는 하나 이상의 개별 컴포넌트 또는 매체(예를 들어, 다수의 CD, 디스크 또는 다른 저장 디바이스)일 수 있거나 포함될 수 있다.
이 명세서는 많은 특정 구현 세부 사항을 포함하고 있지만, 이것들은 발명의 범위 또는 청구될 수 있는 범위에 대한 제한으로 해석되어서는 안되며, 오히려 특정 발명의 특정 구현에 특유한 특징의 설명으로 해석되어야 한다. 개별 구현의 컨텍스트(context)에서 본 명세서에 기술된 특정 특징은 또한 단일 구현에서 조합하여 구현될 수 있다. 반대로, 단일 구현의 컨텍스트에서 기술된 다양한 특징은 다수의 구현 예에서 개별적으로 또는 임의의 적절한 서브조합으로 구현될 수 있다. 게다가 특징들은 특정 조합으로 작용하고 상술한 바와 같이 초기에 청구된 것으로서 설명될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징은 일부 경우 조합으로부터 제거될 수 있고, 청구된 조합은 서브조합 또는 서브조합의 변형으로 유도될 수 있다.
주제의 특정 구현 예가 설명되었다. 다른 구현 예들은 다음의 청구항들의 범위 내에 있다. 동작은 도면에 특정 순서로 도시되어 있지만, 이는 이러한 동작이 도시된 특정 순서 또는 순차적 순서로 수행될 필요가 있거나 도시된 모든 동작이 수행될 필요가 있는 것으로 이해되어서는 안된다. 여기에서 기술된 액션은 다른 순서로 수행될 수 있다. 또한, 첨부된 도면에 도시된 프로세스는 바람직한 결과를 얻기 위해 도시된 특정 순서 또는 순차적 순서를 반드시 필요로 하지는 않는다. 특정 구현 예에서는, 멀티 태스킹 및 병렬 처리가 유리할 수 있다.
다양한 시스템 컴포넌트의 분리는 모든 구현에서 분리를 요구하지 않으며 설명된 프로그램 컴포넌트는 단일 하드웨어 또는 소프트웨어 제품에 포함될 수 있다. 예를 들어, 브리지 모듈(140)과 제1암호화 모듈(145)은 단일 모듈, 하나 이상의 처리 회로를 갖는 논리 장치, 또는 온라인 콘텐츠 아이템 배치 시스템의 일부일 수 있다.
이제 몇몇 예시적인 구현 예를 설명하였지만, 상기 예는 예시적이고 제한적인 것은 아니며, 예로서 제시되었다. 특히, 본 명세서에 제시된 많은 예들이 방법 동작들 또는 시스템 엘리먼트들의 특정 조합을 포함하지만, 이러한 동작들 및 엘리먼트들은 동일한 목적을 달성하기 위해 다른 방식으로 결합될 수 있다. 하나의 구현과 관련하여 논의된 동작(acts), 엘리먼트 및 특징은 다른 구현 또는 구현에서의 유사한 역할로부터 배제되지 않는다.
본 명세서에서 사용된 어구 및 전문 용어는 설명의 목적을 위한 것이며 제한적인 것으로 간주되어서는 안된다. 본 명세서에서 "포함하는(including)", "포함하는(comprising)", "가지는(having)", "포함하는(containing)", "포함하는 (involving)", "특징인(characterized by)", "특징이 있는(charactrized in that)" 및 그 변형은 이후에 열거된 아이템, 그 등가물, 및 추가 아이템 뿐만 아니라 그 이후에 열거된 아이템으로 이루어진 대체 구현을 포함하는 것을 의미한다.
본 명세서에서 단수로 언급된 시스템 및 방법의 구현 또는 엘리먼트 또는 동작(act)에 대한 임의의 참조는 복수의 이들 엘리먼트를 포함하는 구현을 포함할 수 있으며, 임의의 구현 또는 엘리먼트 또는 동작에 대한 복수의 참조는 또한 단일 엘리먼트을 포함하는 구현을 포함할 수 있다. 단수 또는 복수 형태의 참조는 현재 개시된 시스템 또는 방법, 컴포넌트, 동작 또는 엘리먼트를 단일 또는 복수 구성으로 제한하려는 것이 아니다. 정보, 동작 또는 엘리먼트에 기반한 동작 또는 엘리먼트에 대한 언급은 해당 동작 또는 엘리먼트가 적어도 부분적으로 정보, 동작 또는 엘리먼트에 기초한 구현을 포함할 수 있다.
본 명세서에 개시된 임의의 구현은 임의의 다른 구현 또는 실시예와 결합될 수 있으며, "구현", "일부 구현", "대체 구현", "다양한 구현", "하나의 구현" 등은 반드시 상호 배타적인 것은 아니며, 구현과 관련하여 기술된 특정 특징, 구조 또는 특성이 적어도 하나의 구현 예 또는 실시예에 포함될 수 있다는 것을 나타내도록 의도된다. 본 명세서에서 사용되는 용어는 반드시 모두 동일한 구현을 지칭하는 것은 아니다. 임의의 구현은 여기에 개시된 양상 및 구현 예와 일치하는 임의의 방식으로, 포괄적으로 또는 배타적으로 임의의 다른 구현과 결합될 수 있다.
"또는"에 대한 참조는 "또는"을 사용하여 기술된 용어가 기술된 용어 중 하나, 둘 이상 및 모두를 나타낼 수 있도록 포괄적인 것으로 해석될 수 있다.
도면, 상세한 설명 또는 청구 범위의 기술적 특징이 참조 부호 뒤에 있는 경우, 도면, 상세 설명 및 청구 범위의 명료성을 증가시키기 위해 참조 부호를 포함한다. 따라서, 참조 부호들 또는 그것들 부재는 어떠한 청구항 엘리먼트들의 범위에 대해 어떠한 제한 효과도 가지지 않는다.
본 명세서에 기술된 시스템 및 방법은 그 특성을 벗어나지 않으면서 다른 특정 형태로 구체화될 수 있다. 전술한 구현 예는 설명된 시스템 및 방법을 제한하기보다는 예시적인 것이다. 따라서, 본 명세서에 설명된 시스템 및 방법의 범위는 전술한 설명보다는 첨부된 청구 범위에 의해 표시되며, 청구 범위의 의미 및 범위 내에서의 변화가 포함된다.
본 명세서는 많은 특정 구현 세부 사항을 포함하고 있지만, 이들은 발명의 범위 또는 청구될 수 있는 범위에 대한 제한으로 해석되어서는 아니되며, 오히려 특정 발명의 특정 구현에 특정한 특징에 대한 설명으로 해석되어야 한다.
개별 구현의 컨텍스트에서 본 명세서에 기술된 특정 특징은 또한 단일 구현에서 조합하여 구현될 수 있다. 반대로, 단일 구현의 컨텍스트에서 기술된 다양한 특징은 다수의 구현 예에서 개별적으로 또는 임의의 적절한 서브조합으로 구현될 수 있다. 게다가, 특징들은 특정 조합으로 작용하고 상술한 바와 같이 초기에 청구된 것으로서 설명될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징은 일부 경우 조합으로부터 제거될 수 있고, 청구된 조합은 서브조합 또는 서브조합의 변형으로 유도될 수 있다.

Claims (20)

  1. 위치 엔진을 튜닝하기 위해 컴퓨터 네트워크를 통해 복수의 서버 사이에서 전송된 위치 데이터를 암호화적으로 보호하는 시스템에 있어서,
    데이터 처리 시스템의 하나 이상의 프로세서에 의해 실행되어, 메모리에 저장된 위치 데이터베이스로부터 데이터 처리 시스템의 위치 엔진에 의해 행해진 복수의 위치 결정을 검색하는 브리징 모듈, 각 위치 결정은 각 제1식별자와 관련되고;
    상기 브리징 모듈은 매핑 함수를 사용하여 각각의 제1식별자를 각각의 제2식별자에 매핑하고;
    하나 이상의 프로세서에 의해 실행되어, 각 위치 결정의 제2식별자와 타임스탬프로 형성된 튜플에 적용되는 제1해시 함수를 사용하여 각 위치 결정에 대한 제1해시값을 결정하는 제1암호화 모듈;
    상기 제1암호화 모듈은 제1암호화 프로토콜을 사용하여 각 위치 결정에 대한 제1해시값을 암호화하여 제1암호화 데이터 세트를 생성하고;
    상기 컴퓨터 네트워크를 통해 제1암호화 데이터 세트를 상기 전자 트랜젝션을 처리는 이상의 서버로 전송하는 데이터 처리 시스템의 통신 인터페이스;
    상기 통신 인터페이스는 전자 트랜젝션를 위해 제2암호화 모듈에 의해 생성된 제2해시값을 포함하는 제2암호화 데이터 세트를 하나 이상의 서버로부터 수신하며, 상기 제2해시값 각각은 각 전자 트랜젝션의 식별자와 타임스탬프로 형성된 튜플에 제2해시 함수의 적용을 통해 상기 제2암호화모듈에 의해 생성되고, 상기 제2암호화 데이터 세트는 제2암호화 모듈에 의해 제2암호화 프로토콜로 암호화되고, 상기 제1암호화 프로토콜과 제2암호화 프로토콜은 교환가능한(commutative) 암호화 프로토콜이며;
    상기 제1암호화 모듈은 제1이중 암호화 데이터 세트를 생성하기 위해 상기 하나 이상의 서버로부터 수신된 제2암호화 데이터 세트를 암호화하는 제1암호화 프로토콜을 사용하도록 구성되며;
    상기 통신 인터페이스는 데이터 처리 시스템에 의해 하나 이상의 서버로 전송된 제1암호화 데이터 세트에 제2암호화 프로토콜을 적용하는 것을 통해 상기 제2암호화 모듈에 의해 생성된 제2이중 암호화 데이터 세트를 상기 하나 이상의 서버로부터 수신하고,
    상기 하나 이상의 프로세서에 의해 실행되어, 정확한 위치 결정의 총수(total number), 위치 결정의 총수 및 실제 위치 이벤트의 총수에 기초하여 정밀도 메트릭(metric)과 리콜 메트릭을 결정하도록 상기 제1이중 암호화 데이터 세트와 제2이중 암호화 데이터 세트를 비교하는 튜너를 포함하고; 그리고
    상기 튜너는 정밀도 메트릭(metric) 또는 리콜 메트릭 중 적어도 하나에 기초하여 위치 엔진의 튜닝 파라미터를 조정하는, 시스템.
  2. 제1항에 있어서,
    상기 위치 엔진은,
    휴대용 디바이스의 센서에 의해 결정된 지리적 좌표를 상기 휴대용 디바이스의 네트워크 인터페이스를 통해 수신하고;
    상기 지리적 좌표에 기초하여 휴대용 디바이스의 위치를 결정하며; 그리고
    상기 위치 데이터베이스에 상기 휴대용 디바이스의 위치를 저장하는, 시스템.
  3. 제1항 또는 제2항에 있어서,
    상기 통신 인터페이스는 상기 휴대용 디바이스의 네트워크 인터페이스를 통해 휴대용 디바이스의 GPS 센서, 휴대용 디바이스의 무선 네트워크 인터페이스, 휴대 전화 타워 삼각 측량 또는 비콘 중 적어도 2개를 통해 결정된 위치 정보를 수신하도록 구성되고;
    상기 위치 엔진은 상기 위치 정보에 기초하여 상기 휴대용 디바이스의 위치를 결정하도록 구성되며; 그리고
    상기 위치 엔진은 상기 휴대용 디바이스의 위치를 위치 데이터베이스에 저장하는, 시스템.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 튜너는,
    상기 제1이중 암호화 데이터 세트의 엔트리들과 매칭하는 제2이중 암호화 데이터 세트의 엔트리들의 수에 기초하여 정확한 위치 결정의 총수를 결정하고;
    상기 제2이중 암호화 데이터 세트의 엔트리 수에 기초하여 위치 결정의 총수를 결정하며; 그리고
    상기 정확한 위치 결정의 총수를 위치 결정의 총수로 나누어 정밀도 메트릭을 결정하는, 시스템.
  5. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 튜너는,
    상기 제1이중 암호화 데이터 세트의 엔트리와 매칭하는 제2이중 암호화 데이터 세트의 엔트리 수에 기초하여 정확한 위치 결정의 총수를 결정하고;
    상기 제2이중 암호화 데이터 세트의 엔트리 수에 기초하여 위치 결정의 총수를 결정하며; 그리고
    상기 위치 결정의 총수와 전자 트랜젝션 레이트를 곱한 값으로 정확한 위치 결정의 총수를 나누어서 정밀도 메트릭을 결정하는, 시스템.
  6. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 튜너는,
    상기 제1이중 암호화 데이터 세트의 엔트리와 매칭하는 제2이중 암호화 데이터 세트의 엔트리의 수에 기초하여 정확한 위치 결정의 총수를 결정하고;
    상기 제1이중 암호화 데이터 세트의 엔트리의 수에 기초하여 실제 위치 이벤트들의 총수를 결정하고; 그리고
    상기 정확한 위치 결정의 총수를 실제 위치 이벤트의 총수로 나누어 리콜 메트릭을 결정하는, 시스템.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서,
    상기 제1암호화 모듈은,
    각 위치 결정에 대한 해시값을 결정하기 전에 각 위치 결정의 타임스탬프에 기결정된 양자화를 적용하는, 시스템.
  8. 제7항에 있어서,
    상기 제2해시값을 포함하는 제2암호화 데이터 세트는, 제2해시값의 생성 이전에 각 전자 트랜잭션의 타임스탬프에 기결정된 양자화를 적용하도록 구성된 상기 제2암호화 모듈에 의해 생성되는, 시스템.
  9. 제 7 항에 있어서,
    상기 제1암호화 모듈은,
    하나 이상의 서버로부터 상기 기결정된 양자화를 수신하도록 구성된, 시스템.
  10. 제1항 내지 제9항 중 어느 한 항에 있어서,
    상기 튜너는,
    상기 정밀도 메트릭이 임계값보다 작은지 결정하고; 그리고
    상기 임계값보다 작은 정밀도 메트릭에 응답하여, 상기 위치 엔진이 복수의 위치 결정을 수행하기 위해 위치 엔진에 의해 사용된 위치 정보 소스의 최소 수 또는 품질을 증가시키도록 상기 위치 엔진의 튜닝 파라미터를 조정하는, 시스템.
  11. 제1항 내지 제9항 중 어느 한 항에 있어서,
    상기 튜너는,
    정밀도 메트릭이 임계값보다 작은지 결정하고; 그리고
    상기 임계 값보다 작은 정밀도 메트릭에 응답하여, 상기 위치 엔진이 복수의 위치 결정을 수행하기 위해 위치 엔진에 의해 사용된 클러스터 시간 임계값을 증가시키도록 상기 위치 엔진의 튜닝 파라미터를 조정하는, 시스템.
  12. 제1항 내지 제11항 중 어느 한 항에 있어서,
    상기 튜너는,
    상기 리콜 메트릭이 문턱값보다 작은지 결정하고; 그리고
    상기 임계값보다 작은 리콜 메트릭에 응답하여, 상기 위치 엔진이 복수의 위치 결정을 수행하기 위해 위치 엔진에 의해 사용된 위치 핑의 빈도를 증가시키도록 상기 위치 엔진의 튜닝 파라미터를 조정하는, 시스템.
  13. 제1항 내지 제11항 중 어느 한 항에 있어서,
    상기 튜너는,
    상기 리콜 메트릭이 문턱값보다 작은지 결정하고; 그리고
    상기 임계값보다 작은 리콜 메트릭에 응답하여 상기 복수의 위치 결정을 수행하기 위해 위치 엔진에 의해 사용된 클러스터 거리 임계값를 감소시키도록 상기 위치 엔진의 튜닝 파라미터를 조정하는, 시스템.
  14. 위치 엔진을 튜닝하기 위해 컴퓨터 네트워크를 통해 복수의 서버 사이에 전송된 위치 데이터를 암호화적으로 보호하는 방법에 있어서,
    데이터 처리 시스템의 하나 이상의 프로세서에 의해 실행되는 브리징 모듈에 의해, 메모리에 저장된 위치 데이터베이스로부터 데이터 처리 시스템의 위치 엔진에 의해 행해진 복수의 위치 결정을 검색하는 단계, 각 위치 결정은 각각의 제1식별자와 연관되고;
    상기 브리징 모듈에 의해, 매핑 함수를 사용하여 각각의 제1식별자를 각각의 제2식별자에 매핑하는 단계;
    상기 하나 이상의 프로세서에 의해 실행되는 제1암호화 모듈에 의해, 각 위치 결정의 제2식별자와 타임스탬프로 형성된 튜플(tuple)에 적용되는 제1해시함수를 이용하여 각 위치 결정에 대한 제1해시값을 결정하는 단계;
    상기 제1암호화 모듈에 의해, 제1암호화 데이터 세트를 생성하도록 제1암호화 프로토콜을 사용하여 각 위치 결정에 대한 제1해시값을 암호화하는 단계;
    상기 데이터 처리 시스템의 통신 인터페이스에 의해, 컴퓨터 네트워크를 통해 상기 제1암호화 데이터 세트를 전자 트랜젝션를 처리하는 하나 이상의 서버로 전송하는 단계;
    상기 통신 인터페이스에 의해, 하나 이상의 서버로부터 전자 트랜젝션을 위해 제2암호화 모듈에 의해 생성된 제2해시값을 포함하는 제2암호화 데이터 세트를 수신하는 단계, 상기 제2해시값 각각은 각각의 전자 트랜젝션의 식별자와 타임스탬프로 구성된 튜플에 제2해시함수를 적용하여 상기 제2암호화모듈에 의해 생성되고, 상기 제2암호화 데이터 세트는 제2암호화 모듈에 의해 제2암호화 프로토콜로 암호화되고, 상기 제1암호와 프로토콜과 제2암호화 프로토콜은 교환가능한 암호화 프로토콜이며;
    상기 제1암호화 모듈에 의해, 제1이중 암호화 데이터 세트를 생성하도록 하나 이상의 서버로부터 수신된 제2암호화 데이터 세트를 암호화하는 제1암호화 프로토콜을 이용하는 단계;
    상기 통신 인터페이스에 의해 하나 이상의 서버로부터, 상기 데이터 처리 시스템에 의해 하나 이상의 서버로 전송된 제1암호화 데이터 세트에 제2암호화 프로토콜 적용함으로서 상기 제2암호화 모듈에 의해 생성된 제2이중 암호화 데이터 세트를 수신하는 단계;
    상기 하나 이상의 프로세서에 의해 실행되는 튜너에 의해, 정확한 위치 결정의 총수, 위치 결정의 총수 및 실제 위치 이벤트의 총수에 기초하여 정밀도 메트릭과 리콜 메트릭을 결정하도록 제1이중 암호화 데이터 세트와 제2이중 암호화 데이터 세트를 비교하는 단계; 및
    상기 튜너에 의해, 적어도 하나의 정밀도 메트릭 또는 리콜 메트릭에 기초하여 위치 엔진의 튜닝 파라미터를 조정하는 단계를 포함하는 방법.
  15. 제14항에 있어서,
    휴대용 디바이스의 네트워크 인터페이스를 통해 데이터 처리 시스템에 의해, 상기 휴대용 디바이스의 센서에 의해 결정된 지리적 좌표를 수신하는 단계;
    상기 데이터 처리 시스템에 의해, 상기 지리적 좌표에 기초하여, 상기 휴대용 디바이스의 위치를 결정하는 단계; 및
    상기 데이터 처리 시스템에 의해, 상기 휴대용 디바이스의 위치를 위치 데이터베이스에 저장하는 단계를 포함하는 방법.
  16. 제14항 또는 제15항에 있어서,
    상기 휴대용 디바이스의 네트워크 인터페이스를 통하여 상기 데이터 처리 시스템에 의해, 상기 휴대용 디바이스의 범용 위치측정 센서, 상기 휴대용 디바이스의 무선 네트워크 인터페이스, 휴대폰 타워 삼각 측량(cell phone tower triangulation) 또는 비콘 중 적어도 2개를 통해 결정된 위치 정보를 수신하는 단계; 및
    상기 데이터 처리 시스템에 의해 상기 위치 정보에 기초하여 상기 휴대용 디바이스의 위치를 저장하는 단계를 포함하는 방법.
  17. 제14항 내지 제16항 중 어느 한 항에 있어서,
    상기 데이터 처리 시스템에 의해, 상기 제1이중 암호화 데이터 세트의 엔트리에 매칭하는 제2이중 암호화 데이터 세트의 엔트리의 수에 기초하여 정확한 위치 결정의 총수를 결정하는 단계;
    상기 데이터 처리 시스템에 의해, 상기 제2이중 암호화 데이터 세트의 엔트리 수에 기초하여 위치 결정의 총수를 결정하는 단계; 및
    상기 정확한 위치 결정의 총수를 상기 위치 결정의 총수로 나누어 정밀도 메트릭을 결정하는 단계를 포함하는 방법.
  18. 제14항 내지 제16항 중 어느 한 항에 있어서,
    상기 데이터 처리 시스템에 의해, 상기 제1이중 암호화 데이터 세트의 엔트리에 매칭하는 제2이중 암호화 데이터 세트의 엔트리 수에 기초하여 정확한 위치 결정의 총수를 결정하는 단계;
    상기 데이터 처리 시스템에 의해, 상기 제2이중 암호화 데이터 세트의 엔트리 수에 기초하여 위치 결정의 총수를 결정하는 단계; 및
    상기 데이터 처리 시스템에 의해, 위치 결정의 총수와 전자 트랜잭션 레이트를 곱한 값으로 상기 정확한 위치 결정의 총수를 나누어 정밀도 메트릭을 결정하는 단계를 포함하는 방법.
  19. 제14 항 내지 제16 항 중 어느 한 항에 있어서,
    상기 데이터 처리 시스템에 의해, 상기 제1이중 암호화 데이터 세트의 엔트리에 매칭하는 제2이중 암호화 데이터 세트의 엔트리 수에 기초하여 정확한 위치 결정의 총수를 결정하는 단계;
    상기 데이터 처리 시스템에 의해, 상기 제1이중 암호화 데이터 세트의 엔트리 수에 기초하여 실제 위치 이벤트의 총수를 결정하는 단계; 및
    상기 데이터 처리 시스템에 의해, 상기 정확한 위치 결정의 총수를 실제 위치 이벤트의 총수로 나누어 리콜 메트릭을 결정하는 단계를 포함하는 방법.
  20. 제14항 내지 제19항 중 어느 한 항에 있어서,
    상기 데이터 처리 시스템에 의해, 각 위치 결정에 대한 해시값을 결정하기 전에 각 위치 결정의 타임스탬프에 기결정된 양자화를 적용하는 단계를 포함하는 방법.
KR1020177031639A 2015-07-24 2016-07-19 위치 센서의 정밀도 향상을 위한 시스템 및 방법 KR102040784B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US14/808,634 2015-07-24
US14/808,634 US9716697B2 (en) 2015-07-24 2015-07-24 Generating bridge match identifiers for linking identifiers from server logs
US15/043,394 US10142296B2 (en) 2015-07-24 2016-02-12 Systems and methods for improving precision of a location sensor
US15/043,394 2016-02-12
PCT/US2016/042925 WO2017019377A1 (en) 2015-07-24 2016-07-19 Systems and methods for improving precision of a location sensor

Publications (2)

Publication Number Publication Date
KR20170133466A true KR20170133466A (ko) 2017-12-05
KR102040784B1 KR102040784B1 (ko) 2019-11-06

Family

ID=56557913

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177031639A KR102040784B1 (ko) 2015-07-24 2016-07-19 위치 센서의 정밀도 향상을 위한 시스템 및 방법

Country Status (6)

Country Link
US (1) US10142296B2 (ko)
EP (1) EP3278537B1 (ko)
JP (1) JP6391853B1 (ko)
KR (1) KR102040784B1 (ko)
CN (1) CN107005599B (ko)
WO (1) WO2017019377A1 (ko)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108012581A (zh) * 2015-06-23 2018-05-08 飞利浦照明控股有限公司 用于保护位置信息的系统
TWI602166B (zh) * 2016-03-03 2017-10-11 金寶電子工業股份有限公司 電子地圖上顯示信標收訊狀態之電腦實施方法
US10805311B2 (en) * 2016-08-22 2020-10-13 Paubox Inc. Method for securely communicating email content between a sender and a recipient
US10764041B2 (en) 2017-03-03 2020-09-01 Google Llc Systems and methods for establishing a link between identifiers without disclosing specific identifying information
CN111226207A (zh) * 2017-08-18 2020-06-02 贝宝公司 自愈实时数据处理
CN110213216B (zh) * 2018-08-22 2024-02-09 腾讯科技(北京)有限公司 确定不同账号集合中相同账号的方法、装置及存储介质
KR102272699B1 (ko) * 2019-10-17 2021-07-06 숭실대학교산학협력단 복수개의 단말과 엣지 노드를 포함하는 네트워크에서 엣지 노드의 데이터 처리 방법
US11038683B1 (en) * 2020-01-24 2021-06-15 Via Science, Inc. Secure data processing
CN111723702B (zh) * 2020-06-08 2024-02-27 苏州工业职业技术学院 数据监控方法、装置以及支付系统
US11330472B2 (en) * 2020-08-17 2022-05-10 Verizon Patent And Licensing Inc. Systems and methods for dynamic pseudo-cooperative load balancing by independent nodes based on differentiated attributes and volume
US12009946B2 (en) * 2020-09-16 2024-06-11 Datakrew Pte. Ltd. Gateway and bridge devices for secure internet of things
US11494510B2 (en) 2021-03-04 2022-11-08 Inmarket Media, Llc Multi-touch attribution and control group creation using private commutative encrypted match service
CN113051599B (zh) * 2021-05-31 2021-10-29 杭州海康威视数字技术股份有限公司 一种异构密码卡并行计算方法、装置及设备
CN115022089A (zh) * 2022-07-23 2022-09-06 刘志伟 一种数据加密传输的电子商务交易系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070038674A1 (en) * 2005-08-12 2007-02-15 Arturo Bejar System and method for securely analyzing data and controlling its release
US8468119B2 (en) * 2010-07-14 2013-06-18 Business Objects Software Ltd. Matching data from disparate sources

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4868119A (en) 1986-12-11 1989-09-19 Genetics Institute, Inc. Hematopoietic growth factors
US6952769B1 (en) 2000-04-17 2005-10-04 International Business Machines Corporation Protocols for anonymous electronic communication and double-blind transactions
US7482973B2 (en) * 2004-07-20 2009-01-27 Global Precision Solutions, Llp. Precision GPS driven utility asset management and utility damage prevention system and method
US20090037492A1 (en) 2007-07-31 2009-02-05 Ahmad Baitalmal Framework for Synchronizing Applications
GB2469673A (en) 2009-04-23 2010-10-27 Sapior Ltd Encrypting data tags, metadata and labels in datasets to protect the identity of individuals when combining datasets or databases
US8634853B2 (en) 2009-05-04 2014-01-21 Nearverse, Inc. Method for enhancing location identity through incorporation of shorter-range communication and sensing (nearlocate)
US8510263B2 (en) 2009-06-15 2013-08-13 Verisign, Inc. Method and system for auditing transaction data from database operations
US20110141967A1 (en) * 2009-12-14 2011-06-16 Lane Sean L Methods and apparatus related to substantially real-time data transmission and analysis for sensors
EP2397868A1 (en) * 2010-06-15 2011-12-21 The European Union, represented by the European Commission Method of providing an authenticable time-and-location indication
US8429086B2 (en) 2011-01-20 2013-04-23 Csr Technology Inc. System for location based transaction security
WO2013003468A2 (en) 2011-06-27 2013-01-03 Cadio, Inc. Triggering collection of information based on location data
GB201112665D0 (en) 2011-07-22 2011-09-07 Vodafone Ip Licensing Ltd Data anonymisation
US8572379B2 (en) 2011-08-08 2013-10-29 Xerox Corporation Private access to hash tables
US9059840B2 (en) 2012-05-31 2015-06-16 Apple Inc. Recipient blind cryptographic access control for publicly hosted message and data streams
US9934511B2 (en) 2012-06-29 2018-04-03 Mastercard International Incorporated System and method for determining merchant location and availability using transaction data
JP6075017B2 (ja) * 2012-11-09 2017-02-08 富士通株式会社 情報分析システム及び情報分析方法
US9292707B1 (en) 2013-06-03 2016-03-22 Management Science Associates, Inc. System and method for cascading token generation and data de-identification
US8745390B1 (en) * 2013-11-13 2014-06-03 Google Inc. Mutual authentication and key exchange for inter-application communication
US9158925B2 (en) 2013-11-27 2015-10-13 Microsoft Technology Licensing, Llc Server-aided private set intersection (PSI) with data transfer

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070038674A1 (en) * 2005-08-12 2007-02-15 Arturo Bejar System and method for securely analyzing data and controlling its release
US8468119B2 (en) * 2010-07-14 2013-06-18 Business Objects Software Ltd. Matching data from disparate sources

Also Published As

Publication number Publication date
JP6391853B1 (ja) 2018-09-19
CN107005599B (zh) 2020-03-10
EP3278537A1 (en) 2018-02-07
WO2017019377A1 (en) 2017-02-02
KR102040784B1 (ko) 2019-11-06
CN107005599A (zh) 2017-08-01
US20170026345A1 (en) 2017-01-26
JP2018530172A (ja) 2018-10-11
US10142296B2 (en) 2018-11-27
EP3278537B1 (en) 2020-01-29

Similar Documents

Publication Publication Date Title
KR102040784B1 (ko) 위치 센서의 정밀도 향상을 위한 시스템 및 방법
US10986195B2 (en) Systems and methods of determining a geographic location based conversion
US11755674B2 (en) Dynamic radius threshold selection
US20170099133A1 (en) Method and system for privacy-friendly location-based advertising
US20150006279A1 (en) Systems and methods of generating a valid location cluster based on a location of a commercial entity
US20210004481A1 (en) Systems and methods for privacy preserving determination of intersections of sets of user identifiers
US20220311754A1 (en) Generating bridge match identifiers for linking identifers from server logs
US9218503B2 (en) Collection and analysis of customer data from application programming interface usage
KR20230003536A (ko) 프라이버시 보호형 교차 도메인 실험 그룹 분할 및 모니터링
CN115374456A (zh) 基于烟草零售店分析请求的多源数据融合方法、系统

Legal Events

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