KR102605598B1 - 타겟팅 및 기타 설정을 개선하기 위한 콘텐츠 제공자 추천 - Google Patents

타겟팅 및 기타 설정을 개선하기 위한 콘텐츠 제공자 추천 Download PDF

Info

Publication number
KR102605598B1
KR102605598B1 KR1020227010239A KR20227010239A KR102605598B1 KR 102605598 B1 KR102605598 B1 KR 102605598B1 KR 1020227010239 A KR1020227010239 A KR 1020227010239A KR 20227010239 A KR20227010239 A KR 20227010239A KR 102605598 B1 KR102605598 B1 KR 102605598B1
Authority
KR
South Korea
Prior art keywords
search
bit string
data processing
processing system
token
Prior art date
Application number
KR1020227010239A
Other languages
English (en)
Other versions
KR20220102133A (ko
Inventor
만주나타 마헤시 케랄라푸라
치우 와 소
Original Assignee
구글 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 구글 엘엘씨 filed Critical 구글 엘엘씨
Publication of KR20220102133A publication Critical patent/KR20220102133A/ko
Application granted granted Critical
Publication of KR102605598B1 publication Critical patent/KR102605598B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9032Query formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90344Query processing by using string matching techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/04Forecasting or optimisation specially adapted for administrative or management purposes, e.g. linear programming or "cutting stock problem"
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/11Identifying congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/215Flow control; Congestion control using token-bucket
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/29Flow control; Congestion control using a combination of thresholds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • 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/53Network services using third party service providers
    • 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/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Human Resources & Organizations (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Business, Economics & Management (AREA)
  • Development Economics (AREA)
  • Marketing (AREA)
  • Tourism & Hospitality (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Game Theory and Decision Science (AREA)
  • Multimedia (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Computational Linguistics (AREA)
  • Mathematical Physics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Biology (AREA)
  • Evolutionary Computation (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Information Transfer Between Computers (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Primary Health Care (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

본 개시의 적어도 하나의 양태는 기준에 기초하여 검색 토큰들의 세트로부터 검색 토큰들을 프루닝하는 시스템 및 방법에 관한 것이다. 시스템은 제2 검색 토큰을 포함하는 복수의 검색 토큰들을 수신할 수 있다. 시스템은 제1 토큰의 표시 및 복수의 요청들을 검색할 수 있다. 시스템은 예측된 요청들 및 제1 검색 토큰에 기초하여 제1 비트 스트링을 구성할 수 있다. 시스템은 제2 검색 토큰에 대응하는 제2 비트 스트링을 검색할 수 있다. 시스템은 유사성 값을 결정하기 위해 제1 비트 스트링과 제2 비트 스트링을 비교할 수 있다. 시스템은 유사성 값이 미리 결정된 임계치보다 크다고 결정할 수 있다. 시스템은 프루닝된 검색 토큰의 세트를 생성하기 위해 복수로부터 제1 및 제2 검색 토큰을 제거할 수 있다. 시스템은 프루닝된 세트를 콘텐츠 제공자에게 제공할 수 있다.

Description

타겟팅 및 기타 설정을 개선하기 위한 콘텐츠 제공자 추천{CONTENT PROVIDER RECOMMENDATIONS TO IMPROVE TARGETTING AND OTHER SETTINGS}
인터넷과 같은 컴퓨터 네트워크 환경에서 서드 파티 콘텐츠 제공자는 최종 사용자 컴퓨팅 디바이스에 디스플레이할 서드 파티 콘텐츠 아이템들을 제공한다. 이러한 서드 파티 콘텐츠 아이템들(예: 광고)은 각각의 퍼블리셔와 연관된 웹 페이지에 디스플레이될 수 있다. 이러한 서드 파티 콘텐츠 아이템들은 콘텐츠 아이템을 제공한 서드 파티 콘텐츠 제공자를 식별하는 콘텐츠를 포함할 수 있다.
일부 구현예에서, 서드 파티 콘텐츠 아이템들은 포지티브 및 네거티브 검색 토큰을 사용하여 선택될 수 있다. 포지티브 검색 토큰은 콘텐츠 선택 플랫폼에 검색 토큰과 연관된 콘텐츠 아이템이 포지티브 검색 토큰과 일치하는 속성을 갖는 정보 리소스에 삽입되어야 함을 표시할 수 있다. 반대로, 네거티브 검색 토큰은 콘텐츠 선택 플랫폼에 연관 콘텐츠가 네거티브 검색 토큰의 속성과 일치하는 속성을 가진 정보 리소스에 삽입되지 않아야 함을 표시할 수 있다. 이러한 방식으로, 콘텐츠 제공자는 검색 토큰의 리스트(포지티브 및 네거티브)를 사용하여, 콘텐츠 아이템을 포함할 수 있는 정보 리소스를 조정할 수 있다.
그러나, 검색 토큰의 조합 중 어느 것이 타겟팅 가능한 정보 리소스를 최대화하는지를 결정하는 것은 계산상 어려운 작업인데, 이는 콘텐츠 제공자에 의해 제공되는 검색 토큰의 각각의 가능한 순열의 영향을 추정하는 것을 포함하기 때문이다. 많은 콘텐츠 제공자가 수백에서 수천 개의 검색 토큰을 사용하므로, 각 순열에 대한 반복적인 추정은 계산이 불가능하고 인간의 능력을 훨씬 초월한다. 결과적으로, 본 명세서에서 논의된 시스템 및 방법을 사용하지 않는 콘텐츠 제공자의 구현은 어떤 검색 토큰의 조합이 어떤 영향을 미치는지에 대한 추측 또는 예측으로 제한된다. 이로 인해 잘못된 콘텐츠 선택과 원하지 않거나 최적화되지 않은 콘텐츠가 전송되어 대역폭과 전력 자원이 낭비될 수 있다.
본 명세서에서 논의된 시스템 및 방법은 데이터 프로세싱 시스템이 이력적 데이터에 기초한 추정 기법을 사용하여 네거티브 검색 토큰들의 세트 중 어느 네거티브 검색 토큰들이 정보 리소스에 삽입하기 위해 선택된 다수의 콘텐츠 아이템들에 가장 큰 영향을 미치는지를 식별함으로써 콘텐츠 선택 프로세스를 자동으로 개선할 수 있게 한다. 데이터 프로세싱 시스템은 유사한 정보 리소스의 세트와 연관된 콘텐츠 제공자에 의해 제공되는 다른 검색 토큰을 추가로 식별할 수 있다. 어떤 검색 토큰들이 콘텐츠 선택 프로세스에 가장 큰 영향을 미치는지 식별한 후, 데이터 프로세싱 시스템은 제공된 검색 토큰으로부터 이러한 검색 토큰을 제거하고, 추정 프로세스를 수행하여 이러한 콘텐츠 아이템들을 제공할 수 있는 정보 리소스들의 수가 개선되었는지 결정한다. 이것은 잘못된 콘텐츠 선택을 감소 또는 제거하게 하여, 데이터 프로세싱 시스템이 그러한 콘텐츠의 통신을 피할 수 있게 하여, 시스템의 대역폭 및 전력 소비를 감소시킬 수 있다.
본 개시의 적어도 하나의 양태는 문서 공간 연관에 기초하여 선택 기준의 세트로부터 선택 기준을 프루닝(pruning)하는 방법에 관한 것이다. 방법은 콘텐츠 제공자 컴퓨팅 시스템으로부터 하나 이상의 프로세서들 포함하는 데이터 프로세싱 시스템에 의해, 복수의 검색 토큰들을 수신하는 단계를 포함할 수 있다. 상기 복수의 검색 토큰들 각각은 제2 검색 토큰을 포함할 수 있다. 방법은 데이터 프로세싱 시스템에 의해, 상기 제1 검색 토큰의 표시를 검색하는 단계를 포함할 수 있다. 제1 검색 토큰은 상기 복수의 검색 토큰들에 포함될 수 있다. 방법은 데이터 프로세싱 시스템에 의해 복수의 검색 토큰들에 기초하여 복수의 예측된 요청들을 검색하는 단계를 포함할 수 있다. 방법은 데이터 프로세싱 시스템에 의해 복수의 검색 토큰들 중 제1 검색 토큰에 대한 연관된 예측된 요청을 표시하는 제1 데이터 구조를 구성하는 단계를 포함할 수 있다. 상기 데이터 구조는 제1 비트 스트링을 포함하며, 상기 제1 비트 스트링에서의 각 포지션은 상기 복수의 예측된 요청들 중 각각의 하나에 대응하고, 상기 각각의 예측된 요청이 상기 제1 검색 토큰에 대응하는지 여부를 표시하는 값을 갖는다. 이러한 일부 구현예에서, 방법은 데이터 프로세싱 시스템에 의해, 제2 비트 스트링을 검색하는 단계를 포함할 수 있고, 제2 비트 스트링은 복수의 검색 토큰들에서 제2 검색 토큰과 연관될 수 있다. 상기 제2 비트 스트링에서의 각 포지션은 상기 제1 복수의 예측된 요청들 중 각각의 하나에 대응하고, 상기 각각의 예측된 요청이 상기 제2 검색 토큰에 대응하는지 여부를 표시하는 값을 갖는다. 상기 방법은 상기 데이터 프로세싱 시스템에 의해, 유사성 값을 계산하기 위해 상기 제1 데이터 구조 또는 비트 스트링을 상기 복수의 검색 토큰들 중 제2 검색 토큰에 대한 연관된 예측된 요청들을 표시하는 제2 데이터 구조 또는 비트 스트링과 비교하는 단계를 포함할 수 있다. 방법은 상기 데이터 프로세싱 시스템에 의해, 상기 유사성 값이 미리 결정된 임계치보다 큰지 여부를 결정하는 단계를 포함할 수 있다. 방법은 상기 데이터 프로세싱 시스템에 의해, 상기 유사성 값이 미리 결정된 임계치보다 크다고 결정함에 응답하여, 프루닝된 복수의 검색 토큰들을 생성하기 위해 상기 복수의 검색 토큰들로부터 상기 제1 검색 토큰 및 상기 제2 검색 토큰을 제거하는 단계를 포함할 수 있다. 방법은 상기 데이터 프로세싱 시스템에 의해, 상기 프루닝된 복수의 검색 토큰들을 콘텐츠 제공자 컴퓨팅 디바이스에 제공하는 단계를 포함할 수 있다.
일부 구현예에서, 상기 제1 데이터 구조 및 제2 데이터 구조는 각각 비트 스트링을 포함하고, 각 비트 스트링의 각 포지션은 복수의 예측된 요청들 중 예측된 요청에 대응하고, 각각의 예측된 요청이 각각의 검색 토큰에 대응하는지 여부를 표시하는 값을 갖는다. 일부 추가 구현예에서, 방법은 비트 스트링 선택 기준을 사용하여, 제1 프루닝된 비트 스트링을 생성하기 위해 제1 비트 스트링의 포지션들을 선택하는 단계를 포함할 수 있다. 제1 프루닝된 비트 스트링은 제1 비트 스트링보다 작을 수 있다. 일부 구현예에서, 방법은 비트 스트링 선택 기준들을 사용하여, 제2 프루닝된 비트 스트링을 생성하기 위해, 제2 비트 스트링에서의 포지션들을 선택하는 단계를 포함할 수 있다. 제2 프루닝된 비트 스트링은 제2 비트 스트링보다 작을 수 있다. 일부 구현예에서, 상기 제1 비트 스트링과 제2 비트 스트링을 비교하는 것은 상기 제1 프루닝된 비트 스트링과 상기 제2 프루닝된 비트 스트링을 비교하는 것을 포함한다.
일부 구현예에서, 상기 제1 프루닝된 비트 스트링을 생성하기 위한 상기 선택 기준은 의사-랜덤 선택에 기초한다. 일부 구현예에서, 복수의 예측된 요청들을 검색하는 것은 복수의 가중치 값들을 검색하는 것을 더 포함한다. 복수의 가중치 값들 각각은 각각의 예측된 요청에 대한 추정된 트래픽 값에 대응할 수 있다. 일부 구현예에서, 상기 방법은 상기 데이터 프로세싱 시스템에 의해, 상기 복수의 가중치 값들 각각을 미리 결정된 트래픽 임계치와 비교하는 단계를 포함할 수 있다. 일부 구현예에서, 방법은 데이터 프로세싱 시스템에 의해 프루닝된 복수의 예측된 요청들을 선택하는 단계를 포함할 수 있다. 상기 프루닝된 복수의 예측된 요청들 각각은 상기 각각의 가중치 값이 상기 미리 결정된 트래픽 임계치보다 큰 것에 응답하여 상기 복수의 예측된 요청들로부터 선택된다. 일부 구현예에서, 방법은 데이터 프로세싱 시스템에 의해 제1 비트 스트링을 구성하는 단계를 포함할 수 있다. 상기 제1 비트 스트링에서의 각 포지션은 상기 프루닝된 복수의 예측된 요청들 중 각각의 하나에 대응하고, 상기 각각의 프루닝된 예측된 요청이 상기 제1 검색 토큰에 대응하는지 여부를 표시하는 값을 갖는다.
일부 구현예에서, 방법은 상기 데이터 프로세싱 시스템에 의해, 비교된 비트 스트링을 생성하기 위해 상기 제1 비트 스트링과 상기 제2 비트 스트링 사이에 논리 AND 연산을 수행하는 단계를 포함할 수 있다. 일부 구현예에서, 방법은 상기 데이터 프로세싱 시스템에 의해, 상기 유사성 값을 계산하기 위해 미리 결정된 정합 값과 동일한 상기 비교된 비트 스트링에서의 포지션들의 수를 카운팅하는 단계를 포함할 수 있다. 일부 구현예에서, 방법은 상기 데이터 프로세싱 시스템에 의해, 상기 유사성 값이 상기 미리 결정된 임계치보다 작은 것에 응답하여, 상기 프루닝된 복수의 검색 토큰들을 생성하기 위해 상기 복수의 검색 토큰들로부터 상기 제1 검색 토큰을 제거하는 단계를 포함할 수 있다. 일부 구현예에서, 상기 복수의 검색 토큰들 각각은 콘텐츠 등급 값과 연관된다. 일부 구현예에서, 방법은 상기 복수의 검색 토큰들 및 상기 제1 검색 토큰과 연관된 콘텐츠 등급 값에 기초하여 상기 복수의 예측된 요청들을 검색하는 단계를 포함할 수 있다. 일부 구현예에서, 방법은 제1 검색 토큰 및 제2 검색 토큰의 표시를 제공하는 단계를 포함할 수 있다. 일부 구현예에서, 방법은 상기 데이터 프로세싱 시스템에 의해, 상기 프루닝된 복수의 검색 토큰들에 기초하여 상기 프루닝된 복수의 검색 토큰들에 대한 관련성 값을 검색하는 단계를 포함할 수 있다. 일부 구현예에서, 방법은 상기 데이터 프로세싱 시스템에 의해, 상기 프루닝된 복수의 검색 토큰들에 기초하여 관련성 값을 상기 콘텐츠 제공자 컴퓨팅 디바이스에 제공하는 단계를 포함할 수 있다.
본 개시의 적어도 하나의 다른 양태는 하나 이상의 프로세서들을 포함하는 데이터 프로세싱 시스템을 포함하는 시스템에 관한 것이다. 데이터 프로세싱 시스템은 콘텐츠 제공자 컴퓨팅 시스템으로부터 복수의 검색 토큰들을 수신할 수 있다. 상기 복수의 검색 토큰들은 제2 검색 토큰을 포함한다. 데이터 프로세싱 시스템은 복수의 검색 토큰들에 포함된 제1 검색 토큰의 표시를 검색할 수 있다. 데이터 프로세싱 시스템은 복수의 검색 토큰들에 기초하여 복수의 예측된 요청들을 검색할 수 있다. 데이터 프로세싱 시스템은 복수의 검색 토큰들 중 제1 검색 토큰에 대한 연관된 예측된 요청들을 표시하는 제1 데이터 구조를 구성할 수 있다. 상기 데이터 구조는 제1 비트 스트링을 포함하며, 상기 제1 비트 스트링에서의 각 포지션은 상기 복수의 예측된 요청들 중 각각의 하나에 대응하고, 상기 각각의 예측된 요청이 상기 제1 검색 토큰에 대응하는지 여부를 표시하는 값을 갖는다. 이러한 일부 구현예에서, 데이터 프로세싱 시스템은 제2 비트 스트링을 검색할 수 있고, 제2 비트 스트링은 복수의 검색 토큰들에서 제2 검색 토큰과 연관된다. 상기 제2 비트 스트링에서의 각 포지션은 상기 제1 복수의 예측된 요청들 중 각각의 하나에 대응하고, 상기 각각의 예측된 요청이 상기 제2 검색 토큰에 대응하는지 여부를 표시하는 값을 갖는다. 데이터 프로세싱 시스템은 유사성 값을 계산하기 위해 상기 제1 데이터 구조 또는 비트 스트링을 상기 복수의 검색 토큰들 중 제2 검색 토큰에 대한 연관된 예측된 요청들을 표시하는 제2 데이터 구조 또는 비트 스트링과 비교할 수 있다. 데이터 프로세싱 시스템은 유사성 값이 미리 결정된 임계치보다 크다고 결정할 수 있다. 데이터 프로세싱 시스템은 상기 유사성 값이 미리 결정된 임계치보다 크다고 결정함에 응답하여, 프루닝된 복수의 검색 토큰들을 생성하기 위해 상기 복수의 검색 토큰들로부터 상기 제1 검색 토큰 및 상기 제2 검색 토큰을 제거할 수 있다. 데이터 프로세싱 시스템은 상기 프루닝된 복수의 검색 토큰들을 콘텐츠 제공자 컴퓨팅 디바이스에 제공할 수 있다.
일부 구현예에서, 상기 제1 데이터 구조 및 제2 데이터 구조는 각각 비트 스트링을 포함하고, 각 비트 스트링의 각 포지션은 복수의 예측된 요청들 중 예측된 요청에 대응하고, 각각의 예측된 요청이 각각의 검색 토큰에 대응하는지 여부를 표시하는 값을 갖는다. 일부 추가 구현예에서, 데이터 프로세싱 시스템은 비트 스트링 선택 기준을 사용하여, 제1 프루닝된 비트 스트링을 생성하기 위해 제1 비트 스트링에서의 포지션들을 선택하고, 상기 제1 프루닝된 비트 스트링은 상기 제1 비트 스트링보다 작다. 일부 구현예에서, 데이터 프로세싱 시스템은 비트 스트링 선택 기준을 사용하여, 제2 프루닝된 비트 스트링을 생성하기 위해 제2 비트 스트링에서의 포지션들을 선택하고, 상기 제2 프루닝된 비트 스트링은 상기 제2 비트 스트링보다 작다. 일부 구현예에서, 데이터 프로세싱 시스템은 상기 제1 프루닝된 비트 스트링과 상기 제2 프루닝된 비트 스트링을 비교함으로써 상기 제1 비트 스트링과 제2 비트 스트링을 비교할 수 있다. 일부 구현예에서, 상기 제1 프루닝된 비트 스트링을 생성하기 위한 상기 비트 스트링 선택 기준은 의사-랜덤 선택에 기초한다. 일부 구현예에서, 데이터 프로세싱 시스템은 복수의 가중치 값들을 검색할 수 있고, 상기 복수의 가중치 값들 각각은 각각의 예측된 요청에 대한 추정된 트래픽 값에 대응한다. 일부 구현예에서, 데이터 프로세싱 시스템은 복수의 가중치 값들 각각을 미리 결정된 트래픽 임계치와 비교할 수 있다.
일부 구현예에서, 데이터 프로세싱 시스템은 프루닝된 복수의 예측된 요청들을 선택할 수 있고, 상기 프루닝된 복수의 예측된 요청들 각각은 상기 각각의 가중치 값이 상기 미리 결정된 트래픽 임계치보다 큰 것에 응답하여 상기 복수의 예측된 요청들로부터 선택된다. 일부 구현예에서, 데이터 프로세싱 시스템은 제1 비트 스트링을 구성할 수 있고, 상기 제1 비트 스트링에서의 각 포지션은 상기 프루닝된 복수의 예측된 요청들 중 각각의 하나에 대응하고, 상기 각각의 프루닝된 예측된 요청이 상기 제1 검색 토큰에 대응하는지 여부를 표시하는 값을 갖는다. 일부 구현예에서, 데이터 프로세싱 시스템은 비교된 비트 스트링을 생성하기 위해 상기 제1 비트 스트링과 상기 제2 비트 스트링 사이에 논리 AND 연산을 수행할 수 있다. 일부 구현예에서, 데이터 프로세싱 시스템은 상기 유사성 값을 계산하기 위해 미리 결정된 정합 값과 동일한 상기 비교된 비트 스트링에서의 포지션들의 수를 카운팅할 수 있다.
일부 구현예에서, 데이터 프로세싱 시스템은 복수의 검색 토큰들로부터 제1 검색 토큰을 제거하여 유사성 값이 미리 결정된 임계 값보다 작은 것에 응답하여 프루닝된 복수의 검색 토큰을 생성할 수 있다. 일부 구현예에서, 복수의 검색 토큰들 각각은 콘텐츠 등급 값과 연관될 수 있다. 일부 구현예에서, 데이터 프로세싱 시스템은 상기 복수의 검색 토큰들 및 상기 제1 검색 토큰과 연관된 콘텐츠 등급 값에 기초하여 상기 복수의 예측된 요청들을 검색할 수 있다. 일부 구현예에서, 데이터 프로세싱 시스템은 제1 검색 토큰 및 제2 검색 토큰의 표시를 제공할 수 있다. 일부 구현예에서, 데이터 프로세싱 시스템은 상기 프루닝된 복수의 검색 토큰들에 기초하여 상기 프루닝된 복수의 검색 토큰들에 대한 관련성 값을 검색할 수 있다. 일부 구현예에서, 데이터 프로세싱 시스템은 관련성 값을 콘텐츠 제공자 컴퓨팅 디바이스에 제공할 수 있다.
이들 및 다른 양태들 및 구현예들은 아래에서 상세히 논의된다. 전술한 정보 및 다음의 상세한 설명은 다양한 양태들 및 구현예들의 예시적 실시예를 포함하고, 청구된 양태들 및 구현예들의 본질 및 특성을 이해하기 위한 개요 또는 프레임워크를 제공한다. 도면은 다양한 양태들 및 구현예들의 예시 및 추가 이해를 제공하며, 본 명세서에 통합되어 본 명세서의 일부를 구성한다. 양태들은 결합될 수 있고, 본 발명의 일 양태의 맥락에서 설명된 구성들은 다른 양태들과 결합될 수 있다는 것을 쉽게 이해할 것이다. 양태들은 임의의 편리한 형태로 구현될 수 있다. 예를 들면, 양태들은 유형적 캐리어 매체(예를 들어, 디스크들) 또는 무형적 캐리어 매체(예를 들어, 통신 신호)일 수 있는 적절한 캐리어 매체(컴퓨터 판독가능 매체)에서 수록될 수 있는 적절한 컴퓨터 프로그램들에 의해 구현될 수 있다. 또한, 양태들은 상기 양태를 구현하도록 준비된 컴퓨터 프로그램들을 실행하는 프로그래머블 컴퓨터들의 형태를 취할 수 있는 적절한 장치를 사용하여 구현될 수 있다.
첨부된 도면은 일정한 비율로 도시된 것이 아니다. 다양한 도면들에서 동일한 참조 번호 및 기호는 동일한 구성요소를 표시한다. 명확성을 위해 모든 도면에서 모든 컴포넌트가 라벨링된 것은 아니다. 도면에서:
도 1은 콘텐츠 제공자 플랫폼에 대한 검색 토큰을 프루닝하기 위한 예시적 시스템을 도시하는 블록도를 도시한다.
도 2는 예측된 요청에 기초하여 검색 토큰에 대한 비트 스트링을 구성하는 예시적 도면을 도시한다.
도 3은 2 비트 스트링으로부터 유사성 값을 결정하는 예시적 도면을 도시한다.
도 4는 예측된 요청에 기초하여 검색 토큰 세트로부터 검색 토큰을 프루닝하는 방법의 흐름도를 도시한다.
도 5는 예측된 요청에 기초하여 검색 토큰에 대한 비트 스트링을 구성하는 방법의 흐름도를 도시한다.
도 6은 검색 토큰 세트로부터 검색 토큰을 프루닝하는 방법의 흐름도를 도시한다.
도 7은 본 명세서에서 논의된 임의의 컴퓨터를 구현하기 위해 사용될 수 있는 예시적 컴퓨터 시스템의 일반적인 아키텍처를 도시한다.
다음은 사용자 식별자 세트의 교차의 프라이버시 보호 결정의 방법, 장치 및 시스템에 관한 다양한 개념 및 구현의 상세한 설명이다. 상기 소개되고 아래에서 더 자세히 논의되는 다양한 개념들은 기술된 개념들이 임의의 특정한 구현 방식에 제한되지 않기 때문에, 임의의 다수의 방식들로 구현될 수 있다.
콘텐츠 제공자는, 특히 웹 페이지, 비디오 세그먼트 또는 모바일 애플리케이션일 수 있는 정보 리소스에 삽입하기 위해 콘텐츠 선택 시스템에 콘텐츠 아이템을 제공할 수 있다. 콘텐츠 선택 시스템은 콘텐츠 제공자에 의해 제공되는 콘텐츠 아이템을 정보 리소스의 콘텐츠에 기초하여 정보 리소스에 삽입할 수 있다. 예를 들어, 특정 키워드가 정보 리소스와 연관되거나 특정 인구 통계 정보와 연관된 사용자 그룹이 정보 리소스를 보는 경우, 콘텐츠 선택 시스템은 유사한 속성과 연관된 콘텐츠 아이템을 선택할 수 있다. 따라서, 콘텐츠 제공자 시스템은 검색 토큰을 콘텐츠 아이템과 연관시킬 수 있으며, 이는 콘텐츠 선택 시스템이 콘텐츠 아이템을 타겟팅된 정보 리소스에 삽입하도록 할 수 있는 타겟팅 정보를 포함할 수 있다. 콘텐츠 제공자에 의해 제공되는 검색 토큰은 특히 언어 정보, 사용자 인구 통계 정보, 사용자 관심 분야 정보, 콘텐츠 등급 정보 및 키워드 정보를 포함할 수 있다.
검색 토큰은 또한 포지티브 또는 네거티브 품질과 같은 품질을 포함할 수 있다. 포지티브 검색 토큰은 콘텐츠 선택 플랫폼에 검색 토큰과 연관된 콘텐츠 아이템이 포지티브 검색 토큰과 일치하는 속성을 갖는 정보 리소스에 삽입되어야 함을 표시할 수 있다. 반대로, 네거티브 검색 토큰은 콘텐츠 선택 플랫폼에 연관 콘텐츠가 네거티브 검색 토큰의 속성과 일치하는 속성을 가진 정보 리소스에 삽입되지 않아야 함을 표시할 수 있다. 이러한 방식으로, 콘텐츠 제공자는 검색 토큰의 리스트(포지티브 및 네거티브)를 사용하여, 콘텐츠 아이템을 포함할 수 있는 정보 리소스를 조정할 수 있다. 또한, 특정 콘텐츠 선택 플랫폼은 정보 리소스의 수 및 품질을 추정하기 위한 인터페이스를 제공할 수 있으며, 이러한 콘텐츠 아이템과 연관된 검색 토큰에 기초하여 콘텐츠 제공자에 의해 제공되는 콘텐츠 아이템을 포함할 수 있다.
그러나, 검색 토큰의 조합 중 어느 것이 타겟팅 가능한 정보 리소스를 최대화하는지를 결정하는 것은 계산상 어려운 작업인데, 이는 콘텐츠 제공자에 의해 제공되는 검색 토큰의 각각의 가능한 순열의 영향을 추정하는 것을 포함하기 때문이다. 많은 콘텐츠 제공자가 수백에서 수천 개의 검색 토큰 리스트를 제공하므로 각 순열에 대한 반복적인 추정이 계산상 거의 불가능하다. 이러한 문제는 많은 콘텐츠 제공자가 단순히 포지티브 및 네거티브 검색 토큰의 준비된 서드 파티 리스트를 사용한다는 사실 때문에 발생하며, 이는 콘텐츠 제공자의 콘텐츠 아이템을 포함할 수 있는 정보 리소스의 수에 예상치 못한 그리고 의도치 않은 부정적인 영향을 줄 수 있다. 더욱이, 콘텐츠 제공자에 의해 추정된 피드백에 기초하여 검색 토큰의 수동 튜닝은 비현실적으로 시간 소모적일 수 있다.
전술한 기술적 문제를 해결하기 위해, 데이터 프로세싱 시스템은 네거티브 검색 토큰 중 어느 것이 이력적 데이터에 기초한 추정 기술을 사용하여 정보 리소스에 삽입되도록 선택된 콘텐츠 아이템의 수에 가장 큰 영향을 미치는지를 자동으로 식별할 수 있다. 데이터 프로세싱 시스템은 유사한 정보 리소스의 세트와 연관된 콘텐츠 제공자에 의해 제공되는 다른 검색 토큰을 추가로 식별할 수 있다. 어떤 검색 토큰들이 콘텐츠 선택 프로세스에 가장 큰 영향을 미치는지 식별한 후, 데이터 프로세싱 시스템은 제공된 검색 토큰으로부터 이러한 검색 토큰을 제거하고, 추정 프로세스를 수행하여 이러한 콘텐츠 아이템들을 제공할 수 있는 정보 리소스들의 수가 개선되었는지 결정한다.
예를 들어, 제목이 "Phone Unboxing Video"이고 "Go to my channel to see my other videos"이라는 설명이 포함된 정보 리소스를 고려해본다. 따라서, 정보 리소스은 영어와 연관될 수 있다. 콘텐츠 아이템을 가진 이 정보 리소스 및 다른 유사한 정보 리소스를 타겟팅하려는 콘텐츠 제공자를 고려한다. 그러나, 콘텐츠 제공자는 "비디오", "비디오들” 및 "TV"의 네거티브 타겟팅 기준(예를 들어, 네거티브 검색 토큰)을 의도하지 않게 추가했다. 네거티브 키워드 "비디오"가 타겟팅 가능한 정보 리소스의 수에 가장 큰 영향을 미친다고 가정한다. 일부 구현예에서, 데이터 프로세싱 시스템은 키워드 "비디오들” 및 "TV"가 유사한 정보 리소스들로부터 유사한 이력적 요청들과 관련되어 있기 때문에 콘텐츠 제공자에 의해 제공된 검색 토큰들의 리스트에서 제거되어야 한다고 결정할 수 있다. 따라서, 데이터 프로세싱 시스템은 유사한 이력적 패턴에 기초하여 유사한 검색 토큰을 모두 제거함으로써 각 조합 네거티브 키워드에 대해 예측된 요청 추정을 반복적으로 제거하고 수행할 필요성을 제거할 수 있다.
따라서, 본 명세서에 기술된 기술 솔루션은 콘텐츠 아이템의 도달에 부정적인 영향을 줄 수 있는 불필요하거나 의도하지 않은 검색 토큰을 제거하는 계산 복잡성을 상당히 감소시킬 수 있다. 또한, 통계 분석에 기초한 비트 압축 기법을 적용함으로써, 데이터 프로세싱 시스템은 각 검색 토큰에 대해 유사하게 연관된 정보 리소스를 결정하는 스토리지 요구 사항 및 계산 복잡성을 상당히 감소시킬 수 있으며, 이는 다른 구현예에 비한 개선점이다.
도 1은 콘텐츠 제공자 플랫폼에 대한 검색 토큰을 프루닝하기 위한 시스템(100)을 도시한다. 시스템(100)은 적어도 하나의 네트워크(110)를 포함할 수 있다. 시스템(100)은 적어도 하나의 콘텐츠 제공자(115)를 포함할 수 있다. 시스템(100)은 적어도 하나의 데이터 프로세싱 시스템(105)을 포함할 수 있다. 데이터 프로세싱 시스템(105)은 적어도 하나의 검색 토큰 수신기(125)를 포함할 수 있다. 데이터 프로세싱 시스템(105)은 적어도 하나의 예측된 요청 수신기(130)를 포함할 수 있다. 데이터 프로세싱 시스템(105)은 적어도 하나의 비트 스트링 구성자(135)를 포함할 수 있다. 데이터 프로세싱 시스템(105)은 적어도 하나의 비트 스트링 비교 모듈(140)을 포함할 수 있다. 데이터 프로세싱 시스템(105)은 적어도 하나의 검색 토큰 프루너(145)를 포함할 수 있다. 데이터 프로세싱 시스템(105)은 적어도 하나의 프루닝된 토큰 제공자(150)를 포함할 수 있다. 시스템(100)은 적어도 하나의 데이터베이스(120)를 포함할 수 있다. 일부 구현예에서, 데이터 프로세싱 시스템(110)은 콘텐츠 제공자(115)를 포함할 수 있다. 일부 구현예에서, 데이터 프로세싱 시스템(110)은 데이터베이스(120)를 포함할 수 있다.
시스템(100)의 컴포넌트들(예를 들어, 네트워크(110), 콘텐츠 제공자(115), 데이터 프로세싱 시스템(105), 검색 토큰 수신기(125), 예측 요청 검색기(130), 비트 스트링 구성기(135), 비트 스트링 비교 모듈(140), 검색 토큰 프루너(145), 프루닝된 토큰 제공자(150), 데이터베이스(120))는 도 7과 관련하여 본 명세서에 상세히 설명된 컴퓨팅 시스템(700)의 하드웨어 컴포넌트들 또는 하드웨어 컴포넌트들을 가진 소프트웨어의 조합을 사용하여 구현될 수 있다. 예를 들어, 데이터 프로세싱 시스템(105)은 서버 또는 다른 컴퓨팅 디바이스를 포함할 수 있다. 콘텐츠 제공자(115)는 또한 서버 또는 다른 컴퓨팅 디바이스를 포함할 수 있다. 데이터 프로세싱 시스템(105)의 각 컴포넌트들은 본 명세서에 상세히 설명된 기능을 수행할 수 있다.
네트워크(110)는 인터넷, 로컬, 와이드, 메트로 또는 다른 영역 네트워크, 인트라넷, 위성 네트워크, 음성 또는 데이터 모바일폰 통신 네트워크와 같은 다른 컴퓨터 네트워크들 및 이들의 조합과 같은 컴퓨터 네트워크를 포함할 수 있다. 시스템(100)의 데이터 프로세싱 시스템(105)은 예를 들어 적어도 하나의 콘텐츠 제공자(115) 및 적어도 하나의 데이터베이스(120)와 네트워크(110)를 통해 통신할 수 있다. 네트워크(110)는 콘텐츠 제공자(115), 데이터 프로세싱 시스템(105) 및 특히 웹 서버와 같은 하나 이상의 콘텐츠 소스들 간의 정보를 중계하는 임의의 형태의 컴퓨터 네트워크일 수 있다. 일부 구현예들에서, 네트워크(110)는 근거리 통신망(LAN), 광역 통신망(WAN), 셀룰러 네트워크, 위성 네트워크 또는 다른 유형의 데이터 네트워크와 같은 인터넷 및/또는 다른 유형의 데이터 네트워크를 포함할 수 있다. 네트워크(110)는 또한 네트워크(110) 내에서 데이터를 수신 및/또는 전송하도록 구성된 임의의 수의 컴퓨팅 디바이스(예를 들어, 컴퓨터, 서버, 라우터, 네트워크 스위치 등)를 포함할 수 있다. 네트워크(110)는 임의의 수의 고정 배선 및/또는 무선 연결을 더 포함할 수 있다. 콘텐츠 제공자(115)는(예를 들어, 광섬유 케이블, CAT5 케이블 등을 통해) 배선된 송수신기와 무선으로(예를 들어, WiFi, 셀룰러, 라디오 등을 통해) 네트워크(110) 내 다른 컴퓨팅 디바이스들과 통신할 수 있다. 콘텐츠 제공자(115)는 또한 프록시 디바이스(예를 들어, 라우터, 네트워크 스위치 또는 게이트웨이)를 통해 네트워크(110)의 컴퓨팅 디바이스와 무선으로 통신할 수 있다.
보다 상세하게는, 데이터 프로세싱 시스템(105)은 적어도 하나의 프로세서 및 메모리, 즉 프로세싱 회로를 포함할 수 있다. 메모리는 프로세서에 의해 실행될 때 프로세서로 하여금 본 명세서에 기술된 하나 이상의 동작들을 수행하게 하는 프로세서 실행가능 명령어들을 저장한다. 프로세서는 마이크로 프로세서, 주문형 집적 회로(ASIC), 필드 프로그래머블 게이트 어레이(FPGA) 등, 또는 이들의 조합을 포함할 수 있다. 메모리는 전자, 광학, 자기 또는 프로세서에 프로그램 명령어들을 제공할 수 있는 임의의 다른 저장 또는 전송 디바이스를 포함할 수 있지만, 이에 한정되지 않는다. 메모리는 플로피 디스크, CD-ROM, DVD, 자기 디스크, 메모리 칩, ASIC, FPGA, ROM, RAM, EEPROM(electrically-erasable programmable ROM), EPROM(erasable-programmable ROM), 플래시 메모리, 광학 매체, 또는 프로세서가 명령어들을 판독할 수 있는 임의의 기타 적절한 메모리를 포함할 수 있다. 명령어들은 임의의 적절한 컴퓨터 프로그래밍 언어의 코드가 포함될 수 있다. 데이터 프로세싱 시스템(105)은 다양한 기능들을 수행할 수 있는 하나 이상의 컴퓨팅 디바이스들 또는 서버들을 포함할 수 있다.
콘텐츠 제공자(115)는 정보 리소스에 디스플레이하기 위한 콘텐츠 아이템들을 제공하기 위해 콘텐츠 제공자 엔터티에 의해 동작되는 서버 또는 다른 컴퓨팅 디바이스들을 포함할 수 있다. 콘텐츠 제공자(115)에 의해 제공된 콘텐츠는 예를 들어 콘텐츠 제공자(115)에 의해 제공된 콘텐츠와 같은 주요 콘텐츠를 포함하는 정보 리소스와 같은 정보 리소스들에 디스플레이하기 위한 서드파티 콘텐츠 아이템들을 포함할 수 있다. 콘텐츠 아이템들은 검색 결과 웹페이지에도 디스플레이될 수 있다. 예를 들어, 콘텐츠 제공자(115)는 웹페이지의 주요 콘텐츠가 그 회사에 의해 제공되는 회사의 웹페이지와 같은 정보 리소스의 콘텐츠 슬롯들(인라인 프레임 엘리먼트들)에 디스플레이하기 위한 또는 검색 엔진에 의해 제공된 검색 결과들 랜딩 페이지에 디스플레이하기 위한 콘텐츠 아이템들의 소스를 제공하거나 그 소스일 수 있다. 콘텐츠 제공자(115)와 연관된 콘텐츠 아이템들은 스마트폰 또는 다른 클라이언트 디바이스에서 어플리케이션 실행의 일부로서 디스플레이된 콘텐츠와 같이 웹페이지들이 아닌 정보 리소스들에 디스플레이될 수 있다. 시스템(100)의 맥락에서 콘텐츠 제공자(115)의 기능은 아래에서 설명될 것이다.
데이터베이스(120)는 본 명세서에 기술된 임의의 정보를 저장 및/또는 유지하도록 구성된 데이터베이스일 수 있다. 데이터베이스(120)는 어레이, 플랫 파일, 묘사된 파일 또는 임의의 다른 유형 및 형태의 데이터베이스 파일과 같은 임의의 적절한 유형 및 형태의 데이터 구조로 저장될 수 있다. 일부 구현예에서, 데이터베이스(120)는 예측된 요청 값들로 미리 채워질 수 있다. 예측된 요청 값은 이력적 데이터 및 연관된 검색 토큰에 기초하여 외부 시스템에 의해 생성될 수 있다. 데이터베이스(120)는 본 명세서에서 설명된 각각의 값, 복수 또는 임계치를 포함 및/또는 색인할 수 있는 하나 이상의 데이터 구조를 유지할 수 있다. 일부 구현예에서, 데이터베이스는 하나 이상의 메모리 어드레스 또는 인덱스 값을 사용하여 액세스될 수 있다. 데이터베이스(120)는 데이터 프로세싱 시스템(105)의 모듈들 또는 네트워크(110)를 통해 콘텐츠 제공자(115)에 의해 액세스될 수 있다. 일부 구현예에서, 데이터베이스(120)는 데이터 프로세싱 시스템(105)에 내부적일 수 있다. 일부 구현예에서, 데이터베이스(120)는 데이터 프로세싱 시스템(105) 외부에 존재할 수 있고 네트워크(110)를 통해 액세스될 수 있다. 일부 구현예에서, 데이터베이스(120)는 많은 상이한 컴퓨터 시스템들 또는 저장 엘리먼트들에 걸쳐 분산될 수 있고, 네트워크(110) 및/또는 적절한 컴퓨터 버스 인터페이스를 통해 액세스될 수 있다. 데이터 프로세싱 시스템은 임의의 또는 모든 계산, 결정, 선택, 식별 또는 연산의 결과를 하나 이상의 데이터 구조에 인덱스된 적절한 값으로 저장할 수 있으며, 이들 각각은 본 명세서에 기술된 기능 중 하나를 수행하기 위해 데이터 프로세싱 시스템(105) 또는 콘텐츠 제공자(115)에 의해 액세스될 수 있다.
검색 토큰 수신기(125)는 하나 이상의 콘텐츠 제공자로부터 검색 토큰을 수신하기 위한 애플리케이션, 서버, 서비스, 데몬, 루틴 또는 다른 실행 가능한 로직을 포함할 수 있고, 컴퓨팅 시스템의 프로세서 또는 코-프로세서 또는 다른 하드웨어(예: ASIC 또는 FPGA 회로 등)에 의해 실행될 수 있다. 검색 토큰 수신기(125)는 콘텐츠 제공자(115)로부터 복수의 검색 토큰들을 수신할 수 있다. 일부 구현예에서, 검색 토큰 수신기(125)는 복수의 검색 토큰들로부터 검색 토큰들을 프루닝하기 위한 요청을 수신할 수 있다. 복수의 검색 토큰들을 프루닝하는 것은 복수의 검색 토큰들과 연관된 콘텐츠 아이템과의 인터렉션들의 수를 증가시킴으로써 콘텐츠 제공자(115)에 대한 콘텐츠 선택 프로세스를 개선할 수 있다. 또한, 검색 토큰들은 콘텐츠 아이템에 삽입되어 선택 및 정보 리소스에의 삽입 가능성을 증가시킬 수 있다. 검색 토큰이 정보 리소스에 어떻게든(예를 들어, 웹 페이지상의 키워드 등) 존재하거나 정보 리소스과 직접 관련(예를 들어, 유사한 언어 또는 사용자 인구 통계 정보 등을 포함)되는 경우, 검색 토큰과 연관된 콘텐츠 아이템은 정보 리소스에 삽입될 가능성이 더 높을 수 있다. 검색 토큰은 특정한 품질, 예를 들어 포지티브 검색 토큰 또는 네거티브 검색 토큰과 연관될 수 있다. 포지티브 검색 토큰은 콘텐츠 아이템이 관련(예를 들어, 키워드, 유사한 사용자 인구 통계 등) 정보 리소스에 삽입될 가능성을 증가시킬 수 있다. 반대로, 네거티브 품질을 갖는 검색 토큰은 반대의 효과를 가질 수 있고, 연관된 콘텐츠 아이템이 관련(예를 들어, 키워드, 유사한 사용자 인구 통계 등) 정보 리소스에 삽입될 가능성을 감소시킬 수 있다. 네거티브 검색 토큰은 하나 이상의 정보 리소스에서 콘텐츠 아이템을 제외할 수 있다.
콘텐츠 제공자(115)는 특정한 콘텐츠 아이템과 연관된 검색 토큰 및 복수의 검색 토큰에서의 각각의 검색 토큰의 콘텐츠 및 품질을 특정할 수 있다. 검색 토큰을 사용하여, 콘텐츠 제공자(115)는 콘텐츠 아이템에 대한 특정 타겟팅 기준을 제공할 수 있다. 예를 들어, 콘텐츠 제공자(115)는 콘텐츠 아이템이 특정 키워드 또는 문구를 포함하는 정보 리소스 상에 보여지지 않아야 한다고 특정할 수 있다. 다른 예에서, 콘텐츠 제공자(115)는 콘텐츠 아이템이 다른 언어, 예를 들어 스페인어 정보 리소스 상에 보여져야 한다는 것을 표시하는 검색 토큰을 제공할 수 있다. 일부 구현예에서, 다수의 검색 토큰들은 콘텐츠 아이템에 대한 다수의 타겟팅 기준을 특정하기 위해 사용될 수 있다.
일부 구현예에서, 검색 토큰들은 하나 이상의 정보 리소스 및/또는 문서와 연관될 수 있다. 검색 토큰은 인구 통계 학적 정보, 콘텐츠 등급, 언어, 콘텐츠 주제, 키워드, 문구 또는 정보 리소스과 관련된 기타 정보 중 하나 이상을 포함할 수 있다. 예를 들어, 검색 토큰은 인구 통계 정보가 포함한다. 정보 리소스는 특정한 인구 통계와 연관된 사용자로부터의 트래픽이 많을 수 있다. 따라서, 이들 검색 토큰은 동일한 인구 통계 정보(예를 들어, 기초 사용자 프로필 정보 등)를 갖는 사용자에 의해 액세스되는 정보 리소스과 연관될 수 있다. 다른 예에서, 정보 리소스은 특정한 콘텐츠 등급 또는 주제와 연관될 수 있다. 그러한 상황에서, 유사한 콘텐츠 등급 및/또는 콘텐츠 주제의 표시를 포함하는 검색 토큰은 이러한 정보 리소스와 연관될 수 있다. 다른 예에서, 정보 리소스는 하나 이상의 키워드 또는 문구를 포함할 수 있다. 하나 이상의 키워드 또는 문구가 정보 리소스에 존재하면, 검색 토큰은 그 정보 리소스와 연관될 수 있다. 검색 토큰은 콘텐츠 선택 플랫폼에 의해 사용되어 정보 리소스가 삽입될 수 있는 정보 리소스와 관련된 콘텐츠 아이템을 선택한다. 포지티브 검색 토큰은 콘텐츠 제공자가 콘텐츠 아이템을 특정 키워드, 인구 통계 및 기타 정보와 연관된 정보 리소스로 안내하게 하며, 네거티브 검색 토큰은 콘텐츠 제공자가 콘텐츠 아이템을 연관된 정보 리소스에서 멀어지게 할 수 있다. 데이터 프로세싱 시스템(105)은 데이터베이스(120)로부터 검색 토큰과 연관된 정보 리소스에 액세스할 수 있다.
예측 요청 검색기(130)는 요청 예측을 검색하기 위한 애플리케이션, 서버, 서비스, 데몬, 루틴 또는 다른 실행 가능한 로직을 포함할 수 있다. 예측 요청 검색기(130)는 일부 구현예에서 검색 토큰 수신기(125)와 결합될 수 있다. 예측 요청 검색기(130)는 제1 검색 토큰의 표시를 검색할 수 있다. 제1 검색 토큰은 검색 토큰 수신기(125)에 의해 수신된 복수의 검색 토큰에 포함될 수 있다. 제1 검색 토큰은 연관된 콘텐츠 아이템을 요청할 수 있는 정보 리소스 수에 가장 부정적인 영향을 미치는 것으로 결정된 토큰일 수 있다. 예를 들어, 제1 검색 토큰은 키워드 'video'를 포함하는 네거티브 검색 토큰일 수 있으며, 이는 연관된 콘텐츠 아이템이 키워드 'video'를 포함하는 임의의 정보 리소스 상에 디스플레이되는 것을 방지할 수 있다. 일부 구현예에서, 제1 검색 토큰은 데이터베이스(120)의 데이터 구조에 액세스함으로써 표시될 수 있다. 일부 구현예에서, 제1 검색 토큰의 표시는 복수의 검색 토큰들에서 최상위 네거티브 검색 토큰에 대한 요청일 수 있다. 예를 들어, 예측 요청 검색기(130)는 복수의 키워드 각각에 대한 정보 리소스 연관을 검색할 수 있다. 예측 요청 검색기(130)는 복수의 검색 토큰 중 어느 것이 네거티브이고 가장 많은 정보 리소스과 연관되어 있는지를 결정할 수 있고, 이에 의해 복수의 검색 토큰들로부터 최상위 네거티브 검색 토큰을 검색할 수 있다. 일부 구현예에서, 예측 요청 검색기(130)는 복수의 상위 네거티브 네거티브 검색 토큰을 검색하고, 이를 콘텐츠 제공자(115)에게 통신할 수 있다. 콘텐츠 제공자(115)는 제공된 복수의 네거티브 검색 토큰들 중 적어도 하나를 선택하고, 상기 표시를 예측 요청 검색기(130)에 통신할 수 있다.
예측 요청 검색기(130)는 데이터베이스(120)로부터 복수의 예측된 요청을 검색할 수 있다. 일부 구현예에서, 예측 요청 검색기(130)는 복수의 검색 토큰들 각각에 기초하여 복수의 예측된 요청들을 검색할 수 있다. 예를 들어, 제1 검색 토큰은 복수의 예측된 요청 중 일부 또는 전부가 저장되는 데이터베이스(120)에서의 위치에 대응할 수 있다. 일부 구현예에서, 예측 요청 검색기(130)는 제1 검색 토큰을 사용하지 않고 복수의 예측된 요청들을 검색하기 위해 데이터베이스(120)에 액세스할 수 있다. 데이터베이스(120)는 복수의 검색 토큰 각각과 연관된 예측된 요청의 리스트로 미리 채워질 수 있다. 예측 요청 검색기(130)는 복수의 예측된 요청을 생성하기 위해 각각의 검색 토큰들로부터의 예측된 요청을 집계할 수 있다. 각각의 예측된 요청은 정보 리소스가 데이터베이스(120)의 이력적 콘텐츠 아이템 정보에 기초하여 특정한 검색 토큰과 연관된 콘텐츠 아이템을 요청하도록 예측되었다는 표시를 포함할 수 있다. 예를 들어, 각각의 검색 토큰은 정보 리소스에 콘텐츠가 삽입되는 특정한 요청과 연관될 수 있다. 일부 구현예에서, 예측된 요청들 각각은 연관된 콘텐츠 등급 값을 포함할 수 있다. 콘텐츠 등급 값은 연관 정보 리소스의 등급(예를 들어, G, PG, R, ESRB 등급 등)에 대응할 수 있다. 데이터베이스(120)의 이력적 데이터에 기초하여, 예측 요청 검색기(130)는 정보 리소스가 복수의 검색 토큰 각각과 연관된 콘텐츠를 요청할 것으로 예상되는지 여부를 검색할 수 있다. 예측 요청 검색기(130)는 검색 토큰에 대한 예측된 요청의 수 및 요청과 연관된 정보 리소스 각각을 검색할 수 있다. 예를 들어, 데이터베이스(120)에 저장된 과거의 성능 데이터에 기초하여, 복수의 검색 토큰 각각과 연관된 콘텐츠를 요청한 정보 리소스를 표시하는 데이터 구조가 생성될 수 있다. 과거 이력 데이터는 복수의 검색 토큰들 각각에 대해 예측된 요청 값 및 예측된 요청 정보 리소스(예컨대, 얼마나 많은 정보 리소스가 검색 토큰과 연관된 콘텐츠를 요청할 수 있는지 등)을 결정하기 위해 계절성 데이터 및 다른 콘텐츠 아이템 정보에 기초하여 외삽될 수 있다.
비트 스트링 구성기(135)는 복수의 검색 토큰 각각과 연관된 복수의 요청들 각각에 대한 비트 스트링을 구성하기 위한 애플리케이션, 서버, 서비스, 데몬, 루틴 또는 다른 실행 가능한 로직을 포함할 수 있다. 일부 구현예에서, 비트 스트링 구성기(135)는 메모리 디바이스에서 스트링의 비트 값들을 증가시키기 위한 하드웨어 카운터 회로를 포함할 수 있다. 비트 스트링은 복수의 검색 토큰들과 연관된 각각의 예측된 요청에 대한 문서 공간을 나타낼 수 있다. 예측된 요청 각각은 정보 리소스와 연관될 수 있다. 비트 스트링 구성기(135)는 검색 토큰 수신기(125)에 의해 수신된 복수의 검색 토큰 각각에서 동작할 수 있다. 일부 구현예에서, 비트 스트링 구성기(135)는 복수의 검색 토큰들 각각에 대한 비트 맵을 순차적으로(예를 들어, 한 번에 하나씩) 구성할 수 있다. 일부 구현예에서, 비트 스트링 구성기(135)는 복수의 검색 토큰들 각각에 대한 비트 스트링들을 병렬로(예를 들어, 동시에 구성된 일부 또는 모든 비트 스트링들 등) 구성할 수 있다. 검색 토큰에 대한 비트 스트링을 구성하기 위해, 비트 스트링 구성기(135)는 비트 스트링을 저장하기 위한 메모리 영역을 할당할 수 있다. 일부 구현예에서, 메모리 영역은 데이터 프로세싱 시스템(105)의 다른 컴포넌트에 의해 미리 할당될 수 있다. 검색 토큰에 대한 비트 스트링의 각 비트에 대해, 비트 스트링 구성기(135)는 복수의 예측된 요청들 중 각각의 하나에 대응하는 인덱스를 할당할 수 있다. 비트 스트링 구성기(135)는 데이터베이스(120)에 액세스하여 각각의 검색 토큰과 예측 요청 검색기(130)에 의해 검색된 복수의 예측된 요청들 사이의 연관 세트를 검색할 수 있다. 복수의 예측된 요청 각각은 그 검색 토큰에 대한 비트 스트링에서의 포지션에 대응하는 인덱스 값을 포함할 수 있다.
비트 스트링 구성기(135)는 데이터베이스(120)로부터 액세스된 각각의 연관을 분석하여 예측된 요청들 각각이 검색 토큰과 연관되어 있는지 여부를 결정할 수 있다. 예측된 요청이 예측된 요청에 대응하면, 비트 스트링 구성기(135)는 예측된 요청의 인덱스 값에 대응하는 비트 스트링에서의 비트 포지션을 매칭 값으로 설정할 수 있다. 일부 구현예에서, 매칭 값은 이진수(예를 들어, 0 또는 1)일 수 있다. 예를 들어, 예측된 요청이 검색 토큰에 대응하는 경우 매칭 값을 '1'로 설정할 수 있다. 예측된 요청이 검색 토큰과 연관되지 않은 경우, 비트 스트링 구성기(135)는 예측된 요청의 인덱스 값에 대응하는 비트 스트링에서의 포지션을 비-매칭 값으로 설정할 수 있다. 일부 구현예에서, 비-매칭 값은 이진수(예를 들어, 0 또는 1)일 수 있다. 예를 들어, 예측된 요청이 검색 토큰에 대응하지 않으면, 비트 스트링 구성기(135)는 적절한 비트 스트링 포지션을 '0'으로 설정할 수 있다. 일부 구현예에서, 이진 '0'은 매칭 값일 수 있고, 이진 '1'은 비-매칭 값일 수 있다.
검색 토큰에 대한 비트 스트링을 구성하는 프로세스를 시각화하기 위해, 이제 도 2를 참조한다. 각각의 예측된 요청(210A-N)이 검색 토큰(205A)과의 연관에 기초하여 비트 스트링(215A)을 채우는데 사용될 수 있는 방법을 이해하는 것을 돕기 위한 예시가 도시되어 있다. 도시된 바와 같이, 검색 토큰(205A)은 예측된 요청(210A), 예측된 요청(210C) 및 예측된 요청(210N)과 연관이 있다. 점은 임의의 수의 예측된 요청이 임의의 크기의 비트 스트링을 구성하는데 사용될 수 있음을 나타내기 위해 추가된다. 검색 토큰(205A)이 예측된 요청(210B)과 연관되지 않음(또는 예측된 요청과 부정적으로 연관됨)을 유의해야 한다. 각각의 연관 및 비-연관에 기초하여, 비트 스트링의 각 포지션은 특정한 예측된 요청에 대응하도록 채워진다. 예를 들어, 예측된 요청(210A), 예측된 요청(210C) 및 예측된 요청(210N)에 대응하는 비트 스트링의 포지션은 모두 '1'로 설정되는데, 이 예에서는 매칭 값이다. 예측된 요청(210B)은 검색 토큰(205A)과 연관되지 않기 때문에, 비트 스트링(215A)에서의 대응하는 포지션은 비-매칭 값으로 설정되며, 이 예에서는 이진수 '0'이다. 여기에서는 단일 검색 토큰의 비트 스트링으로의 연관으로부터의 변환의 일례일 뿐이지만, 비트 스트링 구성기(135)는 예측 요청 검색기(130)에 의해 검색된 복수의 예측된 요청 각각에 대해 비트 스트링을 구성할 수 있음을 이해해야 한다. 많은 구현예에서, 구성된 비트 스트링은 실질적으로 희박할 수 있다(예를 들어, 2 : 1, 5 : 1, 10 : 1, 100 : 1을 초과하는 0 대 1의 비율, 또는 임의의 다른 그러한 값을 가질 수 있음; 및/또는 비트 스트링 내에서 복수의 네거티브 데이터 표시자(예를 들어, 0)에 의해 평균적으로 넓게 분리된 포지티브 데이터 표시자(예를 들어, 1)를 갖음). 예를 들어, 일부 구현예에서, 비트 스트링은 비트 스트링 전체에 흩어져 있는 수천 또는 수만 개의 포지션 및 단지 수백 이하의 포지티브 값을 가질 수 있다. 이러한 비트 스트링은 철저하고 비효율적인 무차별 대입 프로세스를 결과로 하는 데이터의 성긴 특성으로 인해 반복적으로 처리하기가 매우 어려울 수 있다.
다시 도 1을 참조하면, 비트 스트링 구성기(135)는 이진 비트 스트링 대신에 포맷을 갖는 비트 스트링을 생성할 수 있음을 이해해야 한다. 예를 들어, 일부 구현예에서, 예측 요청 검색기(130)에 의해 검색된 예측 요청들 각각은 각각의 가중치 값을 포함할 수 있다. 가중치 값은 예측된 요청이 각각의 검색 토큰과 얼마나 밀접하게 연관되어 있는지에 대응할 수 있다. 일부 구현예에서, 비트 스트링 구성기는 비트 스트링의 각각의 포지션을 검색 토큰에 대한 각각의 예측된 요청에 대응하는 가중치 값으로 채울 수 있다. 일부 구현예에서, 가중치 값은 대응하는 예측된 요청에 대한 추정된 트래픽 값에 대응할 수 있다.
일부 구현예에서, 비트 스트링 구성기(135)는 프루닝된 복수의 예측된 요청들을 생성하기 위해 각각의 예측된 요청들과 연관된 가중치 값에 임계치를 적용함으로써 비트 스트링을 구성할 수 있다. 프루닝된 복수의 예측된 요청은 여기에 설명된 바와 같이 비트 스트링을 구성하는데 사용될 수 있다. 예를 들어, 특정 예측된 요청은 높은 수준의 트래픽을 표시할 수 있다(예를 들어, 예측된 요청은 많은 사용자가 있는 웹 페이지에서 시작될 수 있음). 높은 수준의 트래픽을 표시하는 예측된 요청은 낮은 수준의 트래픽을 표시하는 예측된 요청보다 콘텐츠 제공자(115)에 더 관련될 수 있다. 따라서, 비트 스트링 생성기는 미리 결정된 트래픽 임계치보다 작은 추정된 트래픽 가중치 값을 갖는 특정 예측된 요청을 제거할 수 있다. 일부 구현예에서, 비트 스트링 구성기(135)는 미리 결정된 트래픽 임계치를 검색하기 위해 데이터베이스(120)에 액세스할 수 있다. 일부 구현예에서, 비트 스트링 구성기(135)는 콘텐츠 제공자(115)로부터 미리 결정된 트래픽 임계치를 수신할 수 있다. 비트 스트링 구성기(135)는 복수의 예측된 요청들 각각에 포함된 추정된 트래픽 값들 각각을 미리 결정된 트래픽 임계치와 비교하여, 복수의 예측된 요청들로부터 예측된 요청을 제거할지 여부를 결정할 수 있다. 일부 구현예에서, 예측된 요청에 포함된 추정된 트래픽 값이 미리 결정된 트래픽 임계치보다 작은 경우, 복수의 예측된 요청들로부터 제거될 수 있다. 예측 요청에 포함된 추정된 트래픽 값이 미리 결정된 트래픽 임계치 이상이면, 복수의 예측된 요청에 포함될 수 있다. 비트 스트링 구성기(135)는 복수의 예측된 요청 각각에 포함된 추정된 트래픽 값을 미리 결정된 트래픽 임계치와 반복적으로 비교하여, 프루닝된 복수의 예측된 요청을 생성할 수 있다.
시스템의 계산 성능을 향상시키기 위해, 비트 스트링 구성기(135)는 비트 스트링에 압축 동작을 수행하여, 저장 풋프린트를 감소시키고, 추가 동작에서 비트 스트링을 사용하는 데이터 프로세싱 시스템(105)의 다른 모듈에 의해 요구되는 계산량을 감소시킨다. 비트 스트링을 압축하기 위해, 비트 스트링 구성기(135)는 선택 기준에 기초하여 각 비트 스트링의 특정 비트를 선택하고, 선택된 각 비트를 사용하여 비트 스트링과 연관된 검색 토큰에 대응하는 프루닝된 비트 스트링을 구성할 수 있다. 예를 들어, 비트 스트링 구성기(135)는 각각의 프루닝된 비트 스트링을 생성하기 위해 각 비트 스트링에서의 특정 범위의 포지션(예를 들어, 각 비트 스트링의 첫 100번째의 포지션)을 선택할 수 있다. 프루닝된 비트 스트링은 전체 비트 스트링보다 적은 포지션들을 가질 수 있다. 일부 구현예에서, 선택 기준은 데이터베이스(120)로부터 검색되거나, 콘텐츠 제공자(115)로부터 수신될 수 있다. 일부 구현예에서, 비트 스트링 구성기(135)는 의사-랜덤 선택을 선택 기준으로서 사용할 수 있다. 비트 스트링 구성기(135)는 검색 토큰 수신기(125)에 의해 수신된 각각의 검색 토큰에 대응하는 각각의 비트 스트링에 대해 동일한 선택 기준(예를 들어, 동일한 의사-랜덤하게 선택된 포지션)을 사용할 수 있다. 이러한 방식으로, 각각의 프루닝된 비트 스트링에서의 포지션은 동일한 예측된 요청 세트에 대응하므로, 프루닝된 비트 스트링 각각은 동일한 방식으로 본 명세서에서 후술되는 바와 같이 비교될 수 있다.
일부 구현예에서, 비트 스트링 구성기(135)는 각각의 검색 토큰들 또는 검색 토큰들의 조합에 대한 블룸 필터를 구성함으로써 프루닝된 비트 스트링을 생성할 수 있다. 예를 들어, 비트 스트링 구성기(135)는 검색 토큰에 대응하는 비트 스트링을 저장하기 위해 메모리 영역을 할당할 수 있다. 예측 요청 검색기(130)에 의해 검색된 검색 토큰과 연관된 예측 요청에 기초하여, 비트 스트링 비교 모듈은 하나 이상의 해시 알고리즘(예를 들어, SHA-1, SHA-2, MD5 등)을 사용할 수 있으며, 각각은 예측된 요청을 비트 스트링의 포지션에 매핑한다. 비트 스트링 구성기(135)는 비트 포지션 값의 그룹을 생성하기 위해 각각의 해시 알고리즘을 사용하여 검색 토큰과 연관된 각 예측된 요청을 해시할 수 있다. 비트 스트링 구성기(135)는 비트 포지션 값의 그룹 각각에 대응하는 비트 스트링의 각 포지션을 매칭 값(예를 들어, 이진 '1')으로 설정할 수 있다. 일부 구현예에서, 할당된 비트 스트링에서의 비트 스트링 포지션들의 수는 모든 검색 토큰들에 대한 예측된 요청들의 총 수보다 작을 수 있어서, 각 검색 토큰에 대한 비트 스트링의 메모리 풋프린트를 감소시킨다. 일부 구현예에서, 비트 스트링 구성기(135)는 해시 알고리즘들을 사용하여 비트 스트링을 구성할 수 있고, 유사한 예측된 요청들이 블룸 필터를 생성하기 위해 사용되는 경우, 결과 비트 스트링들은 유사한 비트 포지션들이 매칭 값으로 설정되도록 할 것이다.
일부 구현예에서, 비트 스트링 구성기(135)는 카운트 최소-스케치 알고리즘을 사용하여 프루닝된 비트 스트링을 생성하여, 각 검색 토큰에 대한 정수 값들의 벡터를 생성할 수 있다. 프루닝된 비트 스트링은 정수 값의 벡터를 포함할 수 있으며, 여기서 벡터의 각 포지션은 해시 값의 확률적 카운트일 수 있다. 프루닝된 비트 스트링을 생성하기 위해, 비트 스트링 구성기(135)는 벡터에 대한 메모리 영역을 할당할 수 있으며, 이는 0으로 초기화된다. 일부 구현예에서, 벡터에서의 포지션들의 수는 모든 검색 토큰들에 대한 총 예측된 요청들의 수보다 적을 수 있다. 비트 스트링 구성기(135)는 검색 토큰에 대한 각 예측된 요청을 해시하여 해시된 예측된 요청들의 세트를 생성할 수 있다. 해시된 예측된 요청들을 생성할 때, 비트 스트링 구성기(135)는 프루닝된 비트 스트링 벡터에서 각 포지션을 증가시킬 수 있으며, 이는 각각의 해시된 예측된 요청에 대응한다. 예를 들어, 해시된 예측된 요청이 3과 같은 경우, 비트 스트링 구성기는 벡터의 세 번째 위치를 1씩 증가시킬 수 있다. 일부 구현예에서, 비트 스트링 구성기(135)는 해시 함수에 대응하는 각 벡터로 검색 토큰에 대한 다수의 벡터를 생성할 수 있다. 다수의 벡터의 경우, 비트 스트링 구성기(135)는 해시된 예측된 요청에 대응하는 각 벡터의 각 포지션을 증가시킬 수 있으며, 여기서 해시된 예측된 요청은 그 벡터에 대한 각각의 해시 함수를 사용하여 계산된다.
비트 스트링 구성기(135)는 복수의 검색 토큰 각각에 대해 구성된 비트 스트링을 데이터베이스(120)에 저장할 수 있다. 일부 구현예에서, 비트 스트링 구성기(135)는 대응하는 검색 토큰의 식별자에 의해 인덱스된 데이터 구조에 각각의 비트 스트링을 저장할 수 있다. 일부 구현예에서, 저장된 비트 스트링들은 데이터 프로세싱 시스템(105)의 다른 모듈들, 예를 들어 비트 스트링 비교 모듈(140)에 의해 액세스될 수 있다. 일부 구현예에서, 비트 스트링 구성기(135)에 의해 구성된 비트 스트링들은 컴퓨터 메모리, 예를 들어 도 7과 관련하여 이하에서 설명되는 컴퓨터 시스템(700)의 메모리(725)에 저장될 수 있다. 일부 구현예에서, 비트 스트링 비교 모듈(140)은 추가 계산을 위한 하나 이상의 비트 스트링들을 검색하기 위해 데이터베이스(120)에 액세스할 수 있다. 일부 구현예에서, 비트 스트링 구성기(135)는 풀 비트 스트링 대신에 프루닝된 비트 스트링을 저장할 수 있으며, 이는 본 명세서에 기술된 계산의 정확성을 감소시키지 않으면서 시스템의 저장 요구 사항을 감소시킬 수 있다.
비트 스트링 비교 모듈(140)은 복수의 검색 토큰들 중 제1 검색 토큰과 연관된 비트 스트링과 비교하기 위해 컴퓨터 메모리(예를 들어, 데이터베이스(120))에 저장된 각각의 비트 스트링을 검색할 수 있다. 전술한 바와 같이, 제1 검색 토큰은 최상위 네거티브 검색 토큰일 수 있다. 일부 구현예에서, 비트 스트링 비교 모듈(140)은 하나 이상의 표시된 검색 토큰의 표시를 수신할 수 있다. 예를 들어, 비트 스트링 비교 모듈(140)은 콘텐츠 제공자(115), 데이터베이스(120), 데이터 프로세싱 시스템(105)의 다른 모듈 또는 다른 외부 컴퓨팅 디바이스로부터 표시를 수신할 수 있다. 표시에 기초하여, 비트 스트링 비교 모듈(140)은 표시와 연관된 비트 스트링을 검색하기 위해 데이터베이스(120)에 액세스할 수 있다. 비트 스트링 비교 모듈(140)이 표시된 비트 스트링을 검색하게 함으로써 관련 검색 토큰들만을 분석하면서 계산 개선을 제공할 수 있다. 일부 구현예에서, 비트 스트링 구성기(135)는 검색된 비트 스트링들을 로컬 메모리 컴퓨터 메모리, 예를 들어 도 7과 관련하여 본 명세서에 설명된 메모리(725)에 저장할 수 있다. 일부 구현예에서, 비트 스트링 비교 모듈(140)은 비트 스트링 구성기(135)로부터 비트 스트링들을 검색할 수 있다.
복수의 검색 토큰들 중 어느 것이 제1 검색 토큰과 밀접하게 관련되어 있는지(예를 들어, 유사한 예측된 요청과 관련되어 있는지) 결정하기 위해, 비트 스트링 비교 모듈(140)은 검색된 비트 스트링 각각을 일반적으로 제1 비트 스트링으로 지칭되는 제1 검색 토큰(예를 들어, 상위 네거티브 검색 토큰 등)에 대응하는 비트 스트링과 비교할 수 있다. 일부 구현예에서, 비트 스트링 비교 모듈(140)은 검색된 비트 스트링들 각각에 대한 유사성 값을 결정하기 위해, 각각의 검색된 비트 스트링들을 제1 비트 스트링과 반복적으로 비교할 수 있다. 유사성 값은 각각의 검색된 비트 스트링이 제1 비트 스트링과 공통되는 예측된 요청의 수를 나타낼 수 있다. 유사성 값은 0과 1 사이의 10 진수 값일 수 있고, 예를 들어, 유사한 예측 요청을 공유하는 두 비트 스트링은 1과 가깝거나 동일한 유사성 값을 가질 수 있으며, 유사한 예측 요청을 공유하지 않는 두 비트 스트링은 0에 가깝거나 동일한 유사성 값을 가질 수 있다. 일부 구현예에서, 유사성 값은 2 비트 스트링들에 의해 공유되는 예측된 요청들의 수에 대응하는 정수 값일 수 있다. 일부 구현예에서, 비트 스트링 비교 모듈(140)은 2 초과의 비트 스트링들의 그룹들에 대한 유사성 값을 결정할 수 있다.
유사성 값을 계산하는 것은 하나 이상의 논리 연산 또는 계산을 기반으로 할 수 있다. 예를 들어, 비트 스트링 비교 모듈(140)은 논리 AND 연산을 사용하여 2개의 비트 스트링에 대해 동작하여 어느 예측된 요청이 2개의 비트 스트링 간에 공유되는지를 결정할 수 있다. 2개의 비트 스트링의 논리 AND 연산을 수행하면 두 스트링들에 공통적이지 않은 비트를 마스킹할 수 있다. 비트 스트링의 각 포지션은 예측된 요청에 대응할 수 있기 때문에, 결과 AND의 비트 스트링에 남아있는 매칭 값은 예측된 요청이 비교된 비트 스트링에 대응하는 검색 토큰과 연관되어 있음을 표시할 수 있다. 일부 구현예에서, 비트 스트링 비교 모듈은 공유 유사성 값을 계산하기 위해 둘 이상의 비트 스트링들에 대해 논리 비트 연산을 수행할 수 있다. 비트 스트링 비교 모듈(140)은 둘 이상의 비트 스트링 사이의 비트 논리 연산으로부터 결과 비트 스트링을 계산할 수 있다. 결과 비트 스트링의 각 포지션은 대응하는 예측된 요청이 둘 이상의 검색 토큰 간에 공유됨을 표시할 수 있다. 비트 스트링 비교 모듈(140)은 2개 이상의 비트 스트링 사이에서 공유되는 예측된 요청의 수를 결정하기 위해 결과 비트 스트링의 총 매칭 값의 수를 카운트할 수 있다. 비트 스트링 비교 모듈(140)은 결과 비트 맵의 각 포지션을 반복적으로 비교하고, 결과 비트 스트링의 포지션이 매칭 값과 동일할 때마다 카운터 레지스터를 증가시킬 수 있다. 비트 스트링 비교 모듈이 결과 비트 스트링의 각 포지션에서 반복되면, 카운터 레지스터의 값은 결과 비트 스트링을 계산하는데 사용되는 검색 토큰 간의 총 공유 예측 요청 수와 같을 수 있다.
비트 스트링 비교 모듈(140)에 의해 수행되는 프로세스들 중 적어도 일부를 시각화하기 위해, 이제 도 3을 참조한다. 도 3에 도시된 것은 제1 비트 스트링(215A) 및 제2 비트 스트링(215B)이다. 제1 및 제2 비트 스트링 각각은 각각 제1 및 제2 검색 토큰에 대응한다. 이 예시에서, 매칭 값은 이진 값과 같다. 따라서, 이진수 '1'의 값을 갖는 각각의 비트 스트링에서의 각각의 포지션은 대응하는 예측된 요청이 그것의 각각의 검색 토큰(예를 들어, 그 검색 토큰과 연관된 콘텐츠를 요청할 가능성이 있는 정보 리소스 등)과 연관되어 있음을 표시한다. 매칭 값은 이진수 '1'이고 비-매칭 값은 이진수 '0'이므로, 비트 스트링 비교 모듈(140)은 제1 비트 스트링(215A)과 제2 비트 스트링(215B) 사이에 비트 논리 AND를 수행하여 결과 비트 스트링(305)을 결정한다. 도시된 바와 같이, 비트 논리 AND 연산을 수행하면 제1 비트 스트링(215A)과 제2 비트 스트링(215B) 간에 공유되는 예측된 요청에 대응하는 비트만 보존할 수 있다. 결과 비트 스트링(305)을 계산한 후, 비트 스트링 비교 모듈(140)은 유사성 값(310)을 결정할 수 있다. 일부 구현예에서, 비트 스트링 비교 모듈은 결과 비트 스트링(305)에서 매칭 값과 동일한 포지션들의 수를 반복적으로 결정할 수 있다. 결과 비트 스트링(305)에서의 총 포지션들 수는 유사성 값(310)과 동일할 수 있다. 일부 구현예에서, 비트 스트링 비교 모듈은 매치 포지션들의 수를 결과 비트 스트링(305)에서의 총 포지션들의 수로 나눌 수 있다.
다시 도 1을 참조하면, 비트 스트링 비교 모듈(140)은 다른 방법을 사용하여 두 비트 스트링 간의 유사성 값을 결정할 수 있다. 일부 구현예에서, 제1 비트 스트링 및 제2 비트 스트링에서의 각 포지션은 가중치 값과 동일할 수 있으며, 이는 대응하는 검색 토큰과 비트 스트링에서의 각각의 포지션에 대응하는 예측된 요청 사이의 관련성 값에 대응할 수 있다. 이 경우, 비트 스트링은 가중치 값들의 벡터일 수 있으며, 정수 값 또는 부동 소수점 값일 수 있다. 2개의 그러한 비트 스트링들 사이의 유사성 값을 결정하기 위해, 비트 스트링 비교 모듈(140)은 제1 비트 스트링의 각 포지션에서의 관련성 값이 허용 오차 값(예를 들어, 10 %, 15 % 등) 내에서 제2 비트 스트링의 각각의 포지션 각각과 동일한지 여부를 결정할 수 있다. 일부 구현예에서, 허용 오차 값은 데이터베이스(120)로부터 검색되거나, 콘텐츠 제공자(115)로부터 수신되거나, 데이터 프로세싱 시스템(105)의 다른 모듈로부터 수신되거나 또는 네트워크(110)를 통해 다른 외부 컴퓨팅 디바이스로부터 수신될 수 있다. 2개의 값이 미리 결정된 허용 오차 값 내에서 동일하면, 비트 스트링 비교 모듈은 결과 비트 스트링(예를 들어, 결과 비트 스트링(305))의 대응하는 포지션을 매칭 값으로 설정할 수 있다. 비트 스트링 비교 모듈(140)은 전체 결과 비트 스트링을 결정하기 위해 제1 및 제2 비트 스트링에서의 각 포지션들을 반복적으로 비교할 수 있다. 비트 스트링 비교 모듈(140)은 결과 비트 스트링에 존재하는 매칭 값의 수를 반복적으로 카운팅하여 유사성 값을 결정하기 위해 전술한 바와 같이 유사성 값을 결정할 수 있다. 비트 스트링 비교 모듈(140)은 유사성 값을 제1 또는 제2 비트 스트링 중 적어도 하나와 연관시킬 수 있다. 일부 구현예에서, 비트 스트링 비교 모듈(140)은 데이터 구조, 예를 들어 데이터베이스(120) 또는 다른 컴퓨터 메모리(예를 들어, 도 7과 관련하여 이하에서 설명되는 메모리(725))에 제1 비트 스트링, 제2 비트 스트링, 제1 검색 토큰 또는 제2 검색 토큰 중 적어도 하나와 함께 저장할 수 있다.
검색 토큰 프루너(145)는 비트 스트링 비교 모듈(140)에 의해 계산된 각각의 유사성 값을 미리 결정된 유사성 임계치와 비교하여, 대응하는 검색 토큰이 복수의 검색 토큰으로부터 제거되어야 하는지 여부를 결정한다. 일부 구현예에서, 검색 토큰 프루너(145)는 데이터베이스(120)에 액세스함으로써 미리 결정된 유사성 임계치를 검색할 수 있다. 일부 구현예에서, 검색 토큰 프루너(145)는 콘텐츠 제공자(115)로부터 미리 결정된 임계치를 수신할 수 있다. 검색 토큰 프루너(145)는 검색 토큰 수신기(125)에 의해 수신된 각 검색 토큰과 연관된 비트 스트링 비교 모듈(140)에 의해 계산된 유사성 값 각각을 반복적으로 비교하여 프루닝 값을 결정할 수 있다. 프루닝 값은 부울 레지스터 값일 수 있으며, 이진수 '0’ 또는 이진수 '1'의 값을 가질 수 있다. 일부 구현예에서, 검색 토큰 프루너(145)는 각각의 검색 토큰에 대한 유사성 값이 미리 결정된 유사성 임계치보다 큰 지 여부를 결정할 수 있다. 유사성 값이 미리 결정된 임계치보다 큰 경우, 검색 토큰 프루너(145)는 프루닝 값(예를 들어, 이진 값 '1')을 각각의 검색 토큰과 연관시킬 수 있다. 예를 들어, 검색 토큰 프루너(145)는 대응하는 검색 토큰 또는 검색 토큰의 식별자를 포함하는 데이터 구조에(예를 들어, 도 7과 관련하여 이하에서 설명되는 데이터베이스(120) 또는 컴퓨터 메모리(725)에) 프루닝 값을 저장할 수 있다. 유사성 값이 미리 결정된 유사성 임계치보다 작은 경우, 검색 토큰 프루너(145)는 비-프루닝 값을 대응하는 검색 토큰 또는 검색 토큰의 식별자를 포함하는 데이터 구조에(예를 들어, 도 7과 관련하여 이하에서 설명되는 데이터베이스(120) 또는 컴퓨터 메모리(725)에) 저장함으로써 비-프루닝 값(예를 들어, 이진수 ‘0’ 등)을 각각의 검색 토큰과 연관시킬 수 있다. 일부 구현예에서, 검색 토큰 프루너(145)는 제1 검색 토큰(예를 들어, 최상위 네거티브 검색 토큰)을 프루닝 값 '1'과 자동으로 연관시킬 수 있다.
프루닝 값에 기초하여, 검색 토큰 프루너(145)는 복수의 검색 토큰으로부터 지정된 검색 토큰들 각각을 제거할 수 있다. 일부 구현예에서, 검색 토큰 프루너(145)는 복수의 검색 토큰들 중 어느 것도 프루닝 값과 연관되지 않더라도, 복수의 검색 토큰들로부터 제1 검색 토큰(예를 들어, 상위 네거티브 검색 토큰)을 제거할 수 있다. 검색 토큰 프루너는 프루닝 값 또는 비-프루닝 값과 대응하는 검색 토큰 또는 대응하는 검색 토큰의 식별자를 포함하는 데이터 구조에 액세스할 수 있다. 데이터 구조가 프루닝 값을 포함하는 경우, 검색 토큰 프루너는 복수의 검색 토큰 각각을 포함하는 데이터 구조로부터 대응하는 검색 토큰을 제거함으로써, 프루닝된 검색 토큰의 데이터 구조를 생성할 수 있다. 일부 구현예에서, 검색 토큰 프루너(145)는 프루닝된 검색 토큰을 포함하는 데이터 구조를 생성할 수 있다. 검색 토큰 프루너(145)는 각 검색 토큰이 비-프루닝 값과 연관되어 있는지 여부를 반복적으로 결정할 수 있다. 검색 토큰이 비-프루닝 값과 연관되면, 검색 토큰 프루너(145)는 프루닝된 검색 토큰을 포함하도록 생성된 데이터 구조에 대응하는 검색 토큰을 추가할 수 있다. 검색 토큰이 프루닝 값과 연관되어 있는 경우, 검색 토큰 프루너(145)는 대응하는 검색 토큰을 무시하고, 프루닝된 검색 토큰을 포함하도록 생성된 데이터 구조에 그것을 추가하지 않는다. 일부 구현예에서, 검색 토큰 프루너(145)는 복수의 검색 토큰들로부터 어느 검색 토큰들이 제거되었는지에 관한 기록을 유지하기 위해 프루닝된 검색 토큰들의 데이터 구조에 존재하지 않는 검색 토큰들을 표시하는 값들의 리스트를 생성할 수 있다.
프루닝된 토큰 제공자(150)는 프루닝된 복수의 검색 토큰을 포함하는 데이터 구조를 네트워크(110)를 통해 콘텐츠 제공자(115)에 제공할 수 있다. 일부 구현예에서, 프루닝된 토큰 제공자(150)는 프루닝된 복수의 검색 토큰들 각각에 대한 관련성 값을 검색하기 위해 데이터베이스(120)에 액세스할 수 있다. 일부 구현예에서, 관련성 값은 대응하는 검색 토큰과 연관된 각각의 예측된 요청들에 대한 추정된 트래픽 값들의 합일 수 있다. 일부 구현예에서, 프루닝된 토큰 제공자(150)는 프루닝된 복수의 검색 토큰들을 포함하는 데이터 구조를 콘텐츠 제공자(115)로부터 검색 토큰 수신기(125)에 의해 수신된 요청에 대응하는 값에 의해 인덱스된 데이터베이스(120)에 저장할 수 있다. 콘텐츠 제공자(115)는 프루닝된 토큰 제공자(150)로부터 프루닝된 검색 토큰을 포함하는 데이터 구조를 요청할 수 있다. 프루닝된 토큰 제공자(150)는 요청에 응답하여 데이터베이스(120)에 액세스하고 네트워크를 통해 요청된 데이터 구조를 콘텐츠 제공자(115)로 통신할 수 있다. 일부 구현예에서, 프루닝된 토큰 제공자(150)는 프루닝된 검색 토큰들을 포함하는 데이터 구조가 생성될 때(예를 들어, 검색 토큰 프루너(145)에 의한 생성 및 채움 후) 프루닝된 검색 토큰들을 포함하는 데이터 구조를 콘텐츠 제공자(115)에게 통신할 수 있다. 프루닝된 검색 토큰을 제공하는 것 외에도, 프루닝된 토큰 제공자(150)는 검색 토큰 수신기(125)에 의해 수신된 복수의 검색 토큰으로부터 제거된 각각의 검색 토큰의 표시를 제공할 수 있다.
이제 도 4를 참조하면, 선택 기준에 기초하여 검색 토큰 세트로부터 검색 토큰을 프루닝하는 예시적 방법(400)의 흐름도가 도시된다. 방법(400)은 도 7과 관련하여 본 명세서에 기술된 데이터 프로세싱 시스템(105), 컴퓨터 시스템(700) 또는 본 명세서에 기술된 임의의 다른 컴퓨팅 디바이스들에 의해 수행되거나 실행될 수 있다. 데이터 프로세싱 시스템은 복수의 검색 토큰들을 수신할 수 있다(402). 데이터 프로세싱 시스템은 제1 검색 토큰의 표시를 검색할 수 있다(404). 데이터 프로세싱 시스템은 복수의 예측된 요청을 검색할 수 있다(406). 데이터 프로세싱 시스템은 i 번째 검색 토큰을 선택할 수 있다(407). 데이터 프로세싱 시스템은 i 번째 검색 토큰에 대응하는 비트 스트링을 구성할 수 있다(408). 데이터 프로세싱 시스템은 카운터 레지스터가 검색 토큰의 수 n과 동일한 지 여부를 결정할 수 있다(410). 데이터 프로세싱 시스템은 카운터 레지스터 i를 증가시킬 수 있다(412). 데이터 프로세싱 시스템은 복수의 검색 토큰들로부터 검색 토큰을 선택하고 프루닝할 수 있다(416). 데이터 프로세싱 시스템은 프루닝된 검색 토큰을 제공할 수 있다(416).
데이터 프로세싱 시스템(예를 들어, 데이터 프로세싱 시스템(105))은 복수의 검색 토큰들을 수신할 수 있다(402). 일부 구현예에서, 데이터 프로세싱 시스템은 네트워크(예를 들어, 네트워크(110))를 통해 콘텐츠 제공자(예를 들어, 콘텐츠 제공자(115))로부터 복수의 검색 토큰들을 수신할 수 있다. 검색 토큰은 인구 통계 학적 정보, 콘텐츠 등급, 콘텐츠 주제, 키워드, 문구 또는 정보 리소스과 관련된 기타 정보 중 하나 이상을 포함할 수 있다. 복수의 검색 토큰을 수신하는 것은 콘텐츠 제공자에 의해 제공되는 콘텐츠 아이템의 성능에 영향을 줄 수 있는 예측된 요청과 연관된 검색 토큰을 제거하기 위한 요청을 포함할 수 있다. 일부 구현에서, 복수의 검색 토큰을 수신하는 것은 총 검색 토큰들 n의 수를 수신하는 것을 포함할 수 있다. 일부 구현예에서, 데이터 프로세싱 시스템은 복수의 검색 토큰들을 수신한 후 총 검색 토큰들 n의 수를 결정할 수 있다. 일부 구현예에서, 데이터 프로세싱 시스템은 컴퓨터 메모리(예를 들어, 도 7과 관련하여 이하에서 설명되는 데이터베이스(120), 메모리(725))로부터 복수의 검색 토큰들을 검색할 수 있다. 데이터 프로세싱 시스템은 또한 본 명세서에 기술된 다른 값들 중에서도 특히, 각 검색 토큰에 대한 콘텐츠 등급 정보, 추정된 트래픽 임계 값, 유사성 임계 값과 같은 복수의 검색 토큰들과 함께 콘텐츠 제공자로부터 추가 구성 정보를 수신할 수 있다.
데이터 프로세싱 시스템은 복수의 검색 토큰들에서 제1 검색 토큰의 표시를 검색할 수 있다(404). 표시는 데이터 프로세싱 시스템이 복수의 검색 토큰으로부터 제1 검색 토큰에 액세스할 수 있게 하는 식별자 또는 다른 데이터와 같은 검색 토큰에 관한 정보를 포함할 수 있다. 예를 들어, 복수의 검색 토큰은 컴퓨터 메모리(예를 들어, 도 7과 관련하여 이하에서 설명되는 데이터베이스(120) 또는 메모리(725))의 데이터 구조에 저장될 수 있다. 표시는 데이터 프로세싱 시스템이 제1 검색 토큰을 포함하는 데이터 구조에서의 포지션에 액세스할 수 있게 하는 인덱스 값일 수 있다. 일부 구현예에서, 표시는 검색 토큰 품질 정보를 포함할 수 있다. 예를 들어, 제1 검색 토큰은 최상위 네거티브 검색 토큰일 수 있으며, 이는 위에서 설명한 바와 같이 가장 많은 수의 예측된 요청과 부정적으로 연관됨을 의미한다. 일부 구현예에서, 표시는 콘텐츠 제공자 컴퓨팅 디바이스로부터 또는 네트워크(예를 들어, 네트워크(110))를 통해 다른 외부 컴퓨팅 디바이스로부터 수신될 수 있다. 일부 구현예에서, 표시를 검색하는 것은 검색 토큰 이상의 표시를 검색하는 것을 포함할 수 있다. 이러한 구현에서, 본 명세서에 기술된 방법(400)의 각 단계는 표시된 검색 토큰들 각각을 사용하여 수행될 수 있다.
데이터 프로세싱 시스템은 복수의 예측된 요청을 검색할 수 있다(406). 콘텐츠 제공자로부터 수신된 검색 토큰들 각각은 하나 이상의 예측된 요청과 연관될 수 있다. 예측된 요청은 정보 리소스가 대응하는 검색 토큰과 연관된 콘텐츠를 요청했음을 표시할 수 있는 컴퓨터 메모리로부터 검색된 이력 데이터에 기초할 수 있다. 각 예측된 요청은 계절성 데이터(예를 들어, 기간, 인구 통계 정보 등)에 기초할 수 있다. 일부 구현예에서, 예를 들어 정보 리소스가 특히 하나 이상의 키워드 또는 문구, 관련 이미지, 관련 비디오 또는 관련 메타 데이터를 포함하는 경우, 예측된 요청은 정보 리소스에 기초할 수 있다. 검색 토큰에 포함된 정보를 포함하는 정보 리소스는 정보 리소스가 그 검색 토큰과 연관된 콘텐츠를 요청할 수 있으며, 이를 다른 요인들에 기초하여 예측된 요청의 후보로 만든다는 것을 표시할 수 있다. 일부 구현예에서, 예를 들어 정보 리소스가 검색 토큰에 포함된 인구 통계 정보와 연관된 사용자들로부터 규칙적인(예를 들어, 이력 데이터에 기초하여) 뷰들을 수신하는 경우, 예측된 요청은 인구 통계 정보에 기초할 수 있다.
데이터 프로세싱 시스템은 i 번째 검색 토큰을 선택할 수 있다(407). 복수의 검색 토큰들 중 제거될 검색 토큰을 결정하기 위해, 검색 토큰들 각각에 대해 비트 스트링이 구성될 수 있다. 비트 스트링은 복수의 예측된 요청 각각이 검색 토큰과 연관되어 있고, 복수의 예측된 요청 중 어느 것이 검색 토큰과 연관되지 않았는지를 나타낼 수 있다. 일부 구현예에서, 데이터 프로세싱 시스템은 카운터 레지스터 i에 기초하여 검색 토큰들 각각을 반복적으로 루프할 수 있다. 검색 토큰들 각각은 인덱스 값(예를 들어, 인덱스 0, 인덱스 1, 인덱스 2 등)에 의해 데이터 구조에서 인덱스될 수 있다. 검색 토큰을 프로세싱하기 위해, 데이터 프로세싱 시스템은 카운터 레지스터 i와 동일한 인덱스 값을 포함하는 검색 토큰을 선택할 수 있다. 그것이 루프의 제1 반복이라면, 카운터 레지스터 i는 i 번째 검색 토큰을 선택하기 전에 초기화 값(예를 들어, i = 0)으로 초기화될 수 있다. 검색 토큰을 선택하는 것은 검색 토큰과 연관된 데이터를 컴퓨터 메모리의 다른 영역, 예를 들어 작업 영역의 메모리에 복사하는 것을 포함할 수 있다.
데이터 프로세싱 시스템은 i 번째 검색 토큰에 대응하는 비트 스트링을 구성할 수 있다(408). 비트 스트링을 구성하는 것은 도 5와 관련하여 이하에서 설명되는 방법(408)의 동작을 실행하는 것을 포함할 수 있다. 일부 구현예에서, 데이터 프로세싱 시스템은 컴퓨터 메모리(예를 들어, 도 7과 관련하여 이하에서 설명되는 데이터베이스(120), 메모리(725))로부터 비트 스트링을 검색할 수 있다. 일부 구현예에서, 데이터 프로세싱 시스템은 네트워크(110)를 통해 콘텐츠 제공자 또는 다른 외부 컴퓨팅 디바이스로부터 비트 스트링을 수신할 수 있다.
데이터 프로세싱 시스템은 카운터 레지스터가 검색 토큰의 수 n과 동일한 지 여부를 결정할 수 있다(410). 데이터 프로세싱 시스템이 콘텐츠 제공자로부터 수신된 검색 토큰들 각각에 대해 비트 스트링을 생성했는지 여부를 결정하기 위해, 데이터 프로세싱 시스템은 각 검색 토큰을 선택하는데 사용되는 카운터 레지스터를 총 검색 토큰 수 n과 비교할 수 있다. 카운터 레지스터 i가 검색 토큰의 총 개수(n)와 동일하지 않으면(예를 들어, 그보다 작음), 데이터 프로세싱 시스템은 단계(412)를 실행할 수 있다. 카운터 레지스터 i가 검색 토큰의 총 개수(n)와 같으면(예를 들어, 크거나 같으면), 데이터 프로세싱 시스템은 단계(414)를 실행할 수 있다.
데이터 프로세싱 시스템은 카운터 레지스터 i를 증가시킬 수 있다(412). 일부 구현예에서, 데이터 프로세싱 시스템은 복수의 검색 토큰들에서 다음 프로세싱되지 않은 검색 토큰을 표시하기 위해 레지스터 i에 하나를 추가할 수 있다. 일부 구현예에서, 데이터 프로세싱 시스템은 카운터 레지스터 i를 다음 프로세싱되지 않은 검색 토큰의 메모리 어드레스 값(예를 들어, 컴퓨터 메모리에서의 위치)으로 설정할 수 있다. 일부 구현예에서, 다음 프로세싱되지 않은 검색 토큰의 메모리 어드레스 값은 현재(예를 들어, 선택된) 검색 토큰의 위치에서 데이터 구조에 포함될 수 있다. 카운터 레지스터 i의 값을 증가시킨 후, 데이터 프로세싱 시스템은 방법(400)의 단계(407)를 실행할 수 있다.
데이터 프로세싱 시스템은 복수의 검색 토큰들로부터 검색 토큰을 선택하고 프루닝할 수 있다(416). 복수의 검색 토큰들로부터 토큰들을 선택하고 프루닝하는 것은 도 6과 관련하여 아래에 설명된 방법(414)의 동작들을 실행하는 것을 포함할 수 있다. 일부 구현예에서, 데이터 프로세싱 시스템은 복수의 검색 토큰들로부터 선택되고 프루닝될 각 검색 토큰의 표시를 수신할 수 있다. 일부 구현예에서, 데이터 프로세싱 시스템은 데이터베이스 또는 컴퓨터 메모리(예를 들어, 도 7과 관련하여 본 명세서에 설명된 데이터베이스(120) 또는 메모리(725))에 액세스하고 데이터 구조로부터 표시를 검색함으로써 검색 토큰을 선택 및 제거하기 위한 표시를 수신할 수 있다. 일부 구현예에서, 데이터 프로세싱 시스템은 네트워크(예를 들어, 네트워크(110))를 통해 콘텐츠 제공자 또는 다른 외부 컴퓨팅 디바이스로부터 검색 토큰을 선택하고 제거하라는 표시를 수신할 수 있다.
데이터 프로세싱 시스템은 프루닝된 검색 토큰을 제공할 수 있다(416). 일부 구현예에서, 프루닝된 검색 토큰들은 컴퓨터 메모리에 저장된 데이터 구조로 집계될 수 있다. 데이터 구조는 컴퓨터 메모리에 저장된 프루닝된 검색 토큰에 액세스하고, 네트워크를 통해 데이터 구조를 콘텐츠 제공자에게 전송할 수 있다. 일부 구현예에서, 데이터 프로세싱 시스템은 단계(402)에서 수신된 복수의 검색 토큰들로부터 제거된 검색 토큰들 각각의 표시를 전송할 수 있다. 일부 구현예에서, 데이터 프로세싱 시스템은 각각의 복수의 검색 토큰들과 연관된 각 예측된 요청에 대응하 추정된 트래픽 값에 기초하여, 복수의 검색 토큰들 각각에 대한 추정된 트래픽 값들(예를 들어, 과거 성능, 정보 리소스의 방문자 수 등에 기초한 예상된 뷰들)을 제공할 수 있다.
이제 도 5를 참조하면, 검색 토큰에 대한 비트 스트링을 생성하는 예시적 방법(408)이 도시되어 있다. 방법(408)은 도 4와 관련하여 전술한 방법(400)의 단계(408)의 일부로서 수행될 수 있다. 방법(408)은 예를 들어, 도 7과 관련하여 본 명세서에 기술된 컴퓨터 시스템(700), 데이터 프로세싱 시스템(105) 또는 임의의 다른 컴퓨팅 디바이스에 의해 실행될 수 있다. 데이터 프로세싱 시스템은 k 번째 예측된 요청을 선택할 수 있다(502). 데이터 프로세싱 시스템은 예측된 요청이 검색 토큰에 대응하는지 여부를 결정할 수 있다(504). 데이터 프로세싱 시스템은 k 번째 비트 스트링 포지션을 비-매칭 값으로 설정할 수 있다(506). 데이터 프로세싱 시스템은 k 번째 비트 스트링 포지션을 매칭 값으로 설정할 수 있다(508). 데이터 프로세싱 시스템은 카운터 레지스터 k가 예측된 요청들의 수 m과 동일한지 여부를 결정할 수 있다(510). 데이터 프로세싱 시스템은 카운터 레지스터 k를 증가시킬 수 있다(512). 데이터 프로세싱 시스템은 비트 스트링에 압축을 적용할 수 있다(514).
데이터 프로세싱 시스템은 k 번째 예측된 요청을 선택할 수 있다(502). 각각의 검색 토큰에 대한 비트 스트링을 구성하기 위해, 데이터 프로세싱 시스템은 도 4와 관련하여 본 명세서에 설명된 단계(406)에서 검색된 복수의 예측된 요청 각각에 대해 반복해야 한다. 비트 스트링은 복수의 예측된 요청 중 어느 것이 검색 토큰과 연관되어 있고, 복수의 예측된 요청 중 어느 것이 검색 토큰과 연관되지 않았는지를 나타낼 수 있다. 일부 구현예에서, 데이터 프로세싱 시스템은 카운터 레지스터 k에 기초하여 복수의 예측된 요청들 각각을 반복적으로 루프할 수 있다. 복수의 예측된 요청들 각각은 인덱스 값(예를 들어, 인덱스 0, 인덱스 1, 인덱스 2 등)에 의해 데이터 구조에서 인덱스될 수 있다. 예측 요청들을 프로세싱하기 위해, 데이터 프로세싱 시스템은 카운터 레지스터 k와 동일한 인덱스 값을 포함하는 예측된 요청을 선택할 수 있다. 그것이 루프의 첫 번째 반복이라면, 카운터 레지스터 k는 k 번째 예측된 요청을 선택하기 전에 초기화 값(예를 들어 k = 0)으로 초기화될 수 있다. 예측된 요청을 선택하는 것은 예측된 요청과 관련된 데이터를 컴퓨터 메모리의 다른 영역, 예를 들어 메모리의 작업 영역에 복사하는 것을 포함할 수 있다.
데이터 프로세싱 시스템은 예측된 요청이 검색 토큰에 대응하는지 여부를 결정할 수 있다(504). 예측된 요청에 대한 연관을 결정하기 위해, 데이터 프로세싱 시스템은 복수의 예측된 요청들 각각에 대한 연관에 대한 정보를 포함하는 컴퓨터 메모리 영역에 액세스할 수 있다. 데이터 프로세싱 시스템은 데이터베이스(예를 들어, 데이터베이스(120))로부터 예측된 요청에 대한 각각의 연관을 검색할 수 있다. 일부 구현예에서, 데이터베이스는 각 검색 토큰에 의해 인덱스된 룩업 테이블을 포함할 수 있다. 데이터 프로세싱 시스템은 검색 토큰을 키 값으로 사용하여 데이터베이스에 액세스하고, 검색 토큰에 대응하는 연관된 예측된 요청들의 리스트를 검색할 수 있다. 선택된 예측된 요청이 연관된 예측된 요청의 리스트에 포함되면, 데이터 프로세싱 시스템은 단계(508)를 실행할 수 있다. 선택된 예측된 요청이 연관된 예측된 요청의 리스트에 포함되지 않으면, 데이터 프로세싱 시스템은 단계(506)를 실행할 수 있다.
데이터 프로세싱 시스템은 k 번째 비트 스트링 포지션을 비-매칭 값으로 설정할 수 있다(506). 일부 구현예에서, 데이터 프로세싱 시스템은 검색 토큰과 연관된 비트 스트링을 나타내는 메모리 영역에 액세스할 수 있다. 비트 스트링은 컴퓨터 메모리(예를 들어, 도 7과 관련하여 본 명세서에 기술된 데이터베이스(120) 또는 메모리(725))의 데이터 구조에 상주할 수 있다. 일부 구현예에서, 비-매칭 값을 설정하는 것은 카운터 레지스터 k에 대응하는 비트 포지션을 이진수(예를 들어, '0’ 또는 '1')으로 설정하는 것을 포함할 수 있다. 예를 들어, 비-매칭 값이 '1'로 결정되면, 데이터 프로세싱 시스템은 검색 토큰에 대응하는 비트 스트링의 k 번째 비트 포지션을 '1'로 설정할 수 있다. 비-매칭 값이 '0'으로 결정되면, 데이터 프로세싱 시스템은 검색 토큰에 대응하는 비트 스트링의 k 번째 비트 포지션을 '0'으로 설정할 수 있다. 일부 구현예에서, 비-매칭 값은 예측된 요청이 검색 토큰과 연관되지 않음을 표시하는 다른 유형의 값일 수 있다.
데이터 프로세싱 시스템은 k 번째 비트 스트링 포지션을 매칭 값으로 설정할 수 있다(508). 일부 구현예에서, 데이터 프로세싱 시스템은 검색 토큰과 연관된 비트 스트링을 나타내는 메모리 영역에 액세스할 수 있다. 비트 스트링은 컴퓨터 메모리(예를 들어, 도 7과 관련하여 본 명세서에 기술된 데이터베이스(120) 또는 메모리(725))의 데이터 구조에 상주할 수 있다. 일부 구현예에서, 매칭 값을 설정하는 것은 카운터 레지스터 k에 대응하는 비트 포지션을 이진수(예를 들어, '0’ 또는 '1')으로 설정하는 것을 포함할 수 있다. 예를 들어, 매칭 값이 '1'로 결정되면, 데이터 프로세싱 시스템은 검색 토큰에 대응하는 비트 스트링의 k 번째 비트 포지션을 '1'로 설정할 수 있다. 매칭 값이 '0'으로 결정되면, 데이터 프로세싱 시스템은 검색 토큰에 대응하는 비트 스트링의 k 번째 비트 포지션을 '0'으로 설정할 수 있다. 일부 구현예에서, 매칭 값은 1보다 큰 값, 예를 들어 예측된 요청과 연관된 추정된 트래픽 값일 수 있다.
데이터 프로세싱 시스템은 카운터 레지스터 k가 예측된 요청들의 수 m과 동일한지 여부를 결정할 수 있다(510). 데이터 프로세싱 시스템이 각 예측된 요청에 대해 비트 스트링에서 매칭 값 또는 비-매칭 값을 설정했는지를 결정하기 위해, 데이터 프로세싱 시스템은 각 예측된 요청을 선택하는데 사용된 카운터 레지스터 k를 총 예측된 요청들의 수 m과 비교할 수 있다. 카운터 레지스터 k가 예측된 총 요청들의 수 m과 동일하지 않으면(예를 들어, 그보다 작은 경우), 데이터 프로세싱 시스템은 단계(512)를 실행할 수 있다. 카운터 레지스터 k가 예측된 총 요청들의 수 m과 같으면(예를 들어, 동일하거나 그보다 큰 경우), 데이터 프로세싱 시스템은 단계(514)를 실행할 수 있다.
데이터 프로세싱 시스템은 카운터 레지스터 k를 증가시킬 수 있다(512). 일부 구현예에서, 데이터 프로세싱 시스템은 복수의 예측된 요청들에서 다음 프로세싱되지 않은 예측된 요청을 표시하기 위해 레지스터 k에 하나를 추가할 수 있다. 일부 구현예에서, 데이터 프로세싱 시스템은 카운터 레지스터 i를 다음 프로세싱되지 않은 예측된 요청의 메모리 어드레스 값(예를 들어, 컴퓨터 메모리에서의 위치)으로 설정할 수 있다. 일부 구현예에서, 다음 프로세싱되지 않은 예측된 요청의 메모리 어드레스 값은 현재(예를 들어, 선택된) 예측된 요청의 위치에서 데이터 구조에 포함될 수 있다. 카운터 레지스터 k의 값을 증가시킨 후, 데이터 프로세싱 시스템은 방법(406)의 단계(502)를 실행할 수 있다.
데이터 프로세싱 시스템은 비트 스트링에 압축을 적용할 수 있다(514). 일부 구현예에서, 각 검색 토큰에 대한 각 비트 스트링을 프로세싱하는 스토리지 요구 사항 및 계산 부담을 감소시키기 위해, 데이터 프로세싱 시스템은 프루닝된 비트 스트링을 생성하기 위한 선택 기준에 기초하여 비트 스트링의 특정 부분을 선택할 수 있다. 일부 구현예에서, 프루닝된 비트 스트링은 압축되지 않은 비트 스트링보다 작을 수 있다. 일부 구현예에서, 선택 기준은 의사-랜덤 선택에 기초할 수 있다. 예를 들어, 데이터 프로세싱 시스템은 복수의 예측된 요청들에 기초하여, 검색 토큰에 대해 생성된 비트 스트링로부터 선택하기 위해 다수의 비트 포지션들을 의사 랜덤하게 결정할 수 있다. 일부 구현예에서, 데이터 프로세싱 시스템은 비트 스트링으로부터 선택된 포지션들을 프루닝된 비트 스트링으로 삽입할 수 있다. 예를 들어, 데이터 프로세싱 시스템은 비트 스트링의 처음 100개(예를 들어, 포지션 0 내지 포지션 99)를 선택하여 프루닝된 비트 스트링을 생성할 수 있다. 일부 구현예에서, 프루닝된 비트 스트링은 도 4와 관련하여 위에서 설명된 방법(400)의 단계들에 의해 그리고 도 6과 관련하여 이하에서 설명되는 방법(414)의 단계들에 의해, 추가 프로세싱을 위해 비트 스트링 대신 사용될 수 있다.
이제 도 6을 참조하면, 비트 스트링에 기초하여 프루닝 검색 토큰의 예시적 방법(414)이 도시되어 있다. 방법(414)은 도 4와 관련하여 전술한 방법(400)의 단계(414)의 일부로서 수행될 수 있다. 방법(414)은 예를 들어, 도 7과 관련하여 본 명세서에 기술된 컴퓨터 시스템(700), 데이터 프로세싱 시스템(105) 또는 임의의 다른 컴퓨팅 디바이스에 의해 실행될 수 있다. 데이터 프로세싱 시스템은 표시된 비트 스트링을 선택할 수 있다(602). 데이터 프로세싱 시스템은 j 번째 비트 스트링을 선택할 수 있다(604). 데이터 프로세싱 시스템은 표시된 비트 스트링과 선택된 비트 스트링 사이의 유사성 값을 계산할 수 있다(606). 데이터 프로세싱 시스템은 유사성 값이 임계치보다 큰지 여부를 결정할 수 있다(608). 데이터 프로세싱 시스템은 j 번째 비트 스트링에 대응하는 검색 토큰을 제거할 수 있다(610). 데이터 프로세싱 시스템은 카운터 레지스터 j가 비트 스트링의 수 p와 동일한지 여부를 결정할 수 있다(612). 데이터 프로세싱 시스템은 카운터 레지스터 j를 증가시킬 수 있다(614). 데이터 프로세싱 시스템은 프루닝된 토큰을 집계할 수 있다(616).
데이터 프로세싱 시스템은 표시된 비트 스트링을 선택할 수 있다(602). 표시된 비트 스트링은 도 4와 관련하여 위에서 설명된 방법(400)의 단계(404)에서 표시된 제1 검색 토큰(예를 들어, 상위 네거티브 검색 토큰)과 연관될 수 있다. 일부 구현예에서, 데이터 프로세싱 시스템은 비트 스트링들을 포함하는 데이터 구조에 액세스할 수 있고, 제1 검색 토큰에 포함된 인덱스 값에 기초하여 표시된 비트 스트링을 선택할 수 있다. 일부 구현예에서, 비트 스트링들을 포함하는 데이터 구조는 각 연관된 검색 토큰에 의해 인덱싱될 수 있고, 따라서 표시된 비트 스트링은 인덱스 값으로서 제1 검색 토큰을 사용하여 선택될 수 있다. 표시된 비트 스트링을 선택하는 것은 표시된 비트 스트링을 다른 메모리 영역(예를 들어, 데이터 프로세싱 시스템 상의 작업 메모리)에 복사하는 것을 포함할 수 있다. 일부 구현예에서, 데이터 프로세싱 시스템은 표시된 비트 스트링을 선택하기 위해 데이터베이스(예를 들어, 데이터베이스(120))에 액세스할 수 있다.
데이터 프로세싱 시스템은 j 번째 비트 스트링을 선택할 수 있다(604). 검색 토큰이 복수의 검색 토큰으로부터 제거될 수 있는지 여부를 결정하기 위해, 데이터 프로세싱 시스템은 도 4와 관련하여 위에서 설명된 단계(402)에서 수신된 각 검색 토큰과 연관된 복수의 비트 스트링 각각에 대해 반복해야 한다. 비트 스트링은 복수의 예측된 요청 중 어느 것이 검색 토큰과 연관되어 있고, 복수의 예측된 요청 중 어느 것이 검색 토큰과 연관되지 않았는지를 나타낼 수 있다. 일부 구현예에서, 데이터 프로세싱 시스템은 카운터 레지스터 j에 기초하여 비트 스트링들 각각을 반복적으로 루프할 수 있다. 비트 스트링들 각각은 인덱스 값(예를 들어, 인덱스 0, 인덱스 1, 인덱스 2 등)에 의해 데이터 구조에서 인덱스될 수 있다. 비트 스트링을 프로세싱하기 위해, 데이터 프로세싱 시스템은 카운터 레지스터 j와 동일한 인덱스 값을 포함하는 비트 스트링을 선택할 수 있다. 그것이 루프의 첫 번째 반복이라면, 카운터 레지스터 j는 j 번째 예측된 요청을 선택하기 전에 초기화 값(예를 들어 k = 0)으로 초기화될 수 있다. 예측된 요청을 선택하는 것은 예측된 요청과 관련된 데이터를 컴퓨터 메모리의 다른 영역, 예를 들어 메모리의 작업 영역에 복사하는 것을 포함할 수 있다. 일부 구현예에서, j 번째 비트 스트링이 표시된 비트 스트링과 동일하면, 데이터 프로세싱 시스템은 단계(614)와 관련하여 아래에 설명된 바와 같이 카운터 레지스터 j를 증가시킬 수 있다. 카운터 레지스터를 증가시키면 j의 값이 총 비트 스트링들의 수 p보다 크거나 같으면, 데이터 프로세싱 시스템은 아래에 설명된 단계(616)를 실행할 수 있다.
데이터 프로세싱 시스템은 표시된 비트 스트링과 선택된 비트 스트링 사이의 유사성 값을 계산할 수 있다(606). 유사성 값을 계산하는 것은 표시된 비트 스트링 및 선택된 비트 스트링에 대해 비트 논리 연산을 수행하는 것을 포함할 수 있다. 예를 들어, 데이터 프로세싱 시스템은 선택된 비트 스트링 및 표시된 비트 스트링을 피연산자로 사용하여 논리 AND 연산을 수행하여 결과 비트 스트링을 생성할 수 있다. 결과 비트 스트링은 제1 검색 토큰 및 선택된 비트 스트링에 대응하는 검색 토큰과 연관된 예측된 요청 각각의 표시를 포함할 수 있다. 데이터 프로세싱 시스템은 매칭 값을 포함하는 결과 비트 스트링에서의 포지션들의 수를 카운트함으로써, 표시된 비트 스트링과 선택된 비트 스트링 사이의 유사성 값을 계산할 수 있다. 일부 구현예에서, 제1 비트 스트링 및 제2 비트 스트링에서의 각각의 포지션은 가중치 값과 동일할 수 있으며, 이는 관련성 값과 동일할 수 있다. 관련성 값은 대응하는 검색 토큰과 비트 스트링에서의 각각의 포지션의 예측된 요청과 연관된 정보 리소스 사이의 관련성 메트릭을 나타낼 수 있다. 이 경우, 비트 스트링은 가중치 값들의 벡터일 수 있으며, 정수 값 또는 부동 소수점 값일 수 있다. 2개의 그러한 비트 스트링들 사이의 유사성 값을 결정하기 위해, 비트 스트링 비교 모듈(140)은 제1 비트 스트링의 각 포지션에서의 관련성 값이 허용 오차 값(예를 들어, 10 %, 15 % 등) 내에서 제2 비트 스트링의 각각의 포지션 각각과 동일한지 여부를 결정할 수 있다. 일부 구현예에서, 허용 오차 값은 데이터베이스(예를 들어, 데이터베이스(120))로부터 검색되거나, 콘텐츠 제공자로부터 수신되거나, 또는 다른 외부 컴퓨팅 디바이스로부터 수신될 수 있다. 2개의 값이 미리 결정된 허용 오차 값 내에서 동일하면, 비트 스트링 비교 모듈은 결과 비트 스트링(예를 들어, 결과 비트 스트링(305))의 대응하는 포지션을 매칭 값으로 설정할 수 있다. 비트 스트링 비교 모듈(140)은 전체 결과 비트 스트링을 결정하기 위해 제1 및 제2 비트 스트링의 각각의 포지션들을 반복적으로 비교하고, 본 명세서에 상술된 바와 같은 결과 비트 스트링을 사용하여 유사성 값을 계산할 수 있다.
데이터 프로세싱 시스템은 유사성 값이 유사성 임계치보다 큰지 여부를 결정할 수 있다(608). 데이터 프로세싱 시스템은 콘텐츠 제공자(예를 들어, 콘텐츠 제공자(115))로부터 유사성 임계치를 수신할 수 있다. 일부 구현예에서, 데이터 프로세싱 시스템은 유사성 임계치를 검색하기 위해 데이터베이스(예를 들어, 데이터베이스(120))에 액세스할 수 있다. 데이터 프로세싱 시스템이 선택된 비트 스트링과 연관된 유사성 값이 유사성 임계치 이상이라고 결정하면, 데이터 프로세싱 시스템은 방법(414)의 단계(610)를 실행할 수 있다. 데이터 프로세싱 시스템이 선택된 비트 스트링과 연관된 유사성 값이 유사성 임계치보다 작다고 결정하면, 데이터 프로세싱 시스템은 방법(414)의 단계(612)를 실행할 수 있다.
데이터 프로세싱 시스템은 j 번째 비트 스트링에 대응하는 검색 토큰을 제거할 수 있다(610). 표시된 비트 스트링과의 유사성에 기초하여, 데이터 프로세싱 시스템은 각 p 비트 스트링들을 포함하는 데이터 구조에 액세스함으로써 j 번째 비트 스트링에 대응하는 검색 토큰을 제거할 수 있다. 데이터 프로세싱 시스템은 복수의 검색 토큰을 포함하는 데이터 구조로부터 j 번째 비트 스트링에 대응하는 엔트리를 삭제할 수 있다. 예를 들어, 데이터 구조가 링크된 리스트로 구성된 경우, 데이터 프로세싱 시스템은 이전 노드(예를 들어, j-1)의 포인터를 j 번째 노드의 주소로부터 j 번째 노드에 의해 포인팅되는 노드의 주소로 변경할 수 있다. 데이터 프로세싱 시스템은 다른 데이터 구조를 사용하여 복수의 검색 토큰을 저장할 수 있다. 일부 구현예에서, 데이터 프로세싱 시스템은 j 번째 비트 스트링을 포함하는 데이터 구조의 엔트리에 제거 식별자를 저장할 수 있다. 제거 식별자는 토큰이 프루닝된 검색 토큰 세트로 집계되지 않아야 함을 표시할 수 있다.
데이터 프로세싱 시스템은 카운터 레지스터 j가 비트 스트링의 수 p와 동일한지 여부를 결정할 수 있다(612). 데이터 프로세싱 시스템이 각 비트 스트링을 표시된 비트 스트링과 비교했는지 여부를 결정하기 위해, 데이터 프로세싱 시스템은 각 비트 스트링을 선택하는데 사용된 카운터 레지스터 j를 총 비트 스트링들의 수 p와 비교할 수 있다. 카운터 레지스터 j가 총 비트 스트링들의 수 p와 동일하지 않으면(예를 들어, 그보다 작은 경우), 데이터 프로세싱 시스템은 단계(614)를 실행할 수 있다. 카운터 레지스터 j가 총 비트 스트링들의 수 p와 같거나(예를 들어, 크거나 같으면), 데이터 프로세싱 시스템은 단계(616)를 실행할 수 있다.
데이터 프로세싱 시스템은 카운터 레지스터 j를 증가시킬 수 있다(614). 일부 구현예에서, 데이터 프로세싱 시스템은 복수의 비트 스트링들에서 다음 프로세싱되지 않은 비트 스트링을 표시하기 위해 레지스터 j에 하나를 추가할 수 있다. 일부 구현예에서, 데이터 프로세싱 시스템은 카운터 레지스터 i를 다음 프로세싱되지 않은 비트 스트링의 메모리 어드레스 값(예를 들어, 컴퓨터 메모리에서의 위치)으로 설정할 수 있다. 일부 구현예에서, 다음 프로세싱되지 않은 비트 스트링의 메모리 어드레스 값은 현재(예를 들어, 선택된) 예측된 요청의 위치에서 데이터 구조에 포함될 수 있다. 카운터 레지스터 j의 값을 증가시킨 후, 데이터 프로세싱 시스템은 방법(414)의 단계(604)를 실행할 수 있다.
데이터 프로세싱 시스템은 프루닝된 토큰을 집계할 수 있다(616). 데이터 프로세싱 시스템은 단계(610)에서 제거되지 않은 복수의 검색 토큰들 중 검색 토큰들 각각을 저장하기 위해 메모리 영역을 할당할 수 있다. 예를 들어, 원래의 복수의 검색 토큰들이 5 개의 검색 토큰을 포함하고 2개가 방법(414)의 이전 단계에서 제거된 경우, 데이터 프로세싱 시스템은 3개의 검색 토큰들을 포함하도록 데이터 구조를 위한 메모리 영역을 할당할 수 있다. 일부 구현예에서, 데이터 프로세싱 시스템은 복수의 검색 토큰들 중 어느 것이 제거 식별자와 함께 저장되지 않았는지 반복적으로 결정할 수 있다. 데이터 프로세싱 시스템은 이러한 각 검색 토큰들 각각을 선택하고, 프루닝된 검색 토큰을 집계하기 위해 생성된 데이터 구조에 저장할 수 있다. 따라서, 데이터 프로세싱 시스템은 제거 식별자로 플래그되지 않은 복수의 검색 토큰들 중 하나만을 삽입함으로써 프루닝된 검색 토큰의 데이터 구조를 생성할 수 있다.
도 7은 일부 구현예에 따라 본 명세서에서 논의된 임의의 컴퓨터 시스템을 구현하기 위해 사용될 수 있는 예시적 컴퓨터 시스템(700)의 일반적 아키텍처를 도시한다. 컴퓨터 시스템(700)은 디스플레이를 위해 네트워크(110)를 통해 정보를 제공하는데 사용될 수 있다. 도 8의 컴퓨터 시스템(700) 도 5의 컴퓨터 시스템(600)은 메모리(725)에 통신적으로 연결된 하나 이상의 프로세서들(820), 하나 이상의 통신 인터페이스(805), 및 하나 이상의 출력 디바이스들(710)(예를 들어, 하나 이상의 디스플레이 유닛들) 및 하나 이상의 입력 디바이스들(815)을 포함한다. 프로세서(720)는 데이터 프로세싱 시스템(105) 또는 데이터 프로세싱 시스템(105)과 같은 시스템(700)의 다른 컴포넌트들에 포함될 수 있다.
도 7의 컴퓨터 시스템(700)에서, 메모리(725)는 임의의 컴퓨터 판독가능 저장 매체를 포함할 수 있고, 각각의 시스템들에 대해 본 명세서에서 기술된 다양한 기능들을 구현하기 위한 프로세서-실행가능 명령어들과 같은 컴퓨터 명령어들 뿐만 아니라 그와 연관된 임의의 데이터, 그에 의해 생성된 임의의 데이터 또는 통신 인터페이스(들) 또는 입력 디바이스(들)(있는 경우)을 통해 수신된 임의의 데이터를 저장할 수 있다. 다시 도 7의 시스템(700)을 참조하면, 데이터 프로세싱 시스템은 특히 사용자 식별자들의 세트, 생성된 벡터들과 관련된 정보를 저장하는 메모리(725)를 포함할 수 있다. 도 7에 도시된 프로세서(들)(720)은 메모리(725)에 저장된 명령어들을 실행하는데 사용될 수 있고, 그렇게 함으로써, 명령어들의 실행에 따라 프로세싱되거나 생성된 다양한 정보를 메모리로부터 판독하거나 메모리에 기록할 수 있다.
도 7에 도시된 컴퓨터 시스템(700)의 프로세서(720)는 또한 명령어들의 실행에 따라 다양한 정보를 전송 또는 수신하도록 통신 인터페이스(들)(705)에 통신적으로 연결되거나 제어될 수 있다. 예를 들어, 통신 인터페이스(들)(705)는 유선 또는 무선 네트워크, 버스, 또는 기타 통신 수단에 연결될 수 있으며, 따라서 컴퓨터 시스템(700)이 다른 디바이스들(예를 들어, 다른 컴퓨터 시스템들)에 정보를 전송하거나 또는 그로부터 정보를 수신하게 할 수 있다. 도 7의 시스템에서 명시적으로 도시되지 않았지만, 하나 이상의 통신 인터페이스는 시스템(700)의 컴포넌트들 간의 정보 흐름을 용이하게 한다. 일부 구현예에서, 통신 인터페이스(들)는 컴퓨터 시스템(700)의 적어도 일부 양태들에 대한 액세스 포털로서 웹사이트를 제공하도록(예를 들어, 다양한 하드웨어 컴포넌트들 또는 소프트웨어 컴포넌트들을 통해) 구성될 수 있다. 통신 인터페이스(805)의 예는 사용자가 컴퓨터 시스템(800)과 통신할 수 있는 사용자 인터페이스(예를 들어, 웹페이지)를 포함한다.
도 7에 도시된 컴퓨터 시스템(700)의 출력 디바이스들(710)은 예를 들어, 명령어들의 실행과 관련하여 다양한 정보가 보여 지거나 인식될 수 있도록 제공될 수 있다. 입력 디바이스(들)(715)은 예를 들어, 사용자가 수동 조절을 하거나, 선택을 하거나, 데이터를 입력하거나 또는 명령어들의 실행 중에 프로세서와 다양한 방식으로 인터렉션할 수 있도록 제공될 수 있다. 본 명세서에서 논의된 다양한 시스템들에 이용될 수 있는 일반적인 컴퓨터 시스템 아키텍처에 관한 추가 정보가 본 명세서에서 더 제공된다.
본 발명의 구현예들과 본 명세서에 기술된 동작들은 본 발명에 개시된 구조들 및 그들의 구조적 균등물들 또는 그들 중 하나 이상의 조합들을 포함하는 디지털 전자회로 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어에서 구현될 수 있다. 본 명세서에 기술된 본 발명의 구현예들은 하나 이상의 컴퓨터 프로그램들 즉, 데이터 프로세싱 장치에 의해 실행 또는 데이터 프로세싱 장치의 동작을 제어하기 위한 컴퓨터 저장 매체에 인코딩된 컴퓨터 프로그램 명령어들의 하나 이상의 컴포넌트들로서 구현될 수 있다. 프로그램 명령어들은 데이터 프로세싱 장치에 의해 실행하기 위한 적절한 수신기 장치에 전송하기 위한 정보를 인코딩하기 위해 생성된 인공적으로 생성된 전파된 신호 즉, 기계-생성 전기, 광학 또는 전자기적 신호에 인코딩될 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 저장 디바이스, 컴퓨터 판독가능 저장 기판, 랜덤 또는 직렬 엑세스 메모리 어레이 또는 디바이스 또는 그들 중 하나 이상의 조합이거나 그에 포함될 수 있다. 또한, 컴퓨터 저장 매체는 전파된 신호가 아니지만, 컴퓨터 저장 매체는 인공적으로 생성된 전파된 신호에 인코딩된 컴퓨터 프로그램 명령어들의 소스 또는 목적지를 포함할 수 있다. 또한, 컴퓨터 저장 매체는 하나 이상의 별개의 물리적 컴포넌트들 또는 매체(예를 들면, 다수의 CD들, 디스크들, 또는 다른 저장 디바이스들)이거나 또는 그에 포함될 수 있다.
본 명세서에 개시된 구성들은 보다 전통적인 텔레비전 프로그래밍 소스들(예를 들어 케이블, 위성, 공중파 또는 기타 신호를 통해 수신됨)과 인터넷 연결을 통합하도록 구성된 프로세싱 모듈을 포함할 수 있는, 스마트 텔레비전 모듈(또는 연결된 텔레비전 모듈, 하이브리드 텔레비전 모듈 등)에서 구현될 수 있다. 스마트 텔레비전 모듈은 텔레비전 세트에 물리적으로 통합될 수 있거나 셋톱 박스, 블루레이 또는 다른 디지털 미디어 플레이어, 게임 콘솔, 호텔 텔레비전 시스템 및 다른 컴패니언 디바이스와 같은 별도의 디바이스를 포함할 수 있다. 스마트 텔레비전 모듈은 시청자가 웹, 로컬 케이블 TV 채널, 위성 TV 채널에서 또는 로컬 하드 드라이브에 저장된 비디오, 영화, 사진 및 기타 콘텐츠를 검색하고 찾을 수 있도록 구성될 수 있다. 셋톱 박스(STB) 또는 셋톱 유닛(STU)은 튜너를 포함하고 텔레비전 세트 및 외부 신호 소스에 연결될 수 있는 정보 기기 디바이스를 포함할 수 있으며, 그 신호는 콘텐츠로 변환되어 텔레비전 스크린 또는 기타 디스플레이 디바이스에 디스플레이될 수 있다. 스마트 텔레비전 모듈은 웹브라우저 및 복수의 스트리밍 미디어 서비스들, 연결된 케이블 또는 위성 미디어 소스, 다른 웹 "채널”들 등과 같은 복수의 상이한 어플리케이션들에 대한 아이콘들을 포함하는 홈스크린 또는 최상위 레벨 스크린을 제공하도록 구성될 수 있다. 스마트 텔레비전 모듈은 또한 사용자에게 전자적 프로그래밍 가이드를 제공하도록 구성될 수 있다. 스마트 텔레비전 모듈에 대한 동반 어플리케이션은 모바일 컴퓨팅 디바이스에서 사용가능 프로그램에 관한 추가 정보를 사용자에게 제공하여 사용자가 스마트 텔레비전 모듈 등을 제어할 수 있게 동작가능할 수 있다. 대안적 구현예에서, 상기 구성들은 랩톱 컴퓨터 또는 다른 개인용 컴퓨터, 스마트폰, 다른 모바일폰, 핸드헬드 컴퓨터, 태블릿 PC 또는 다른 컴퓨팅 디바이스에서 구현될 수 있다.
본 명세서에 기술된 동작들은 하나 이상의 컴퓨터 판독가능 저장 디바이스들에 저장된 또는 다른 소스들로부터 수신된 데이터에서 데이터 프로세싱 장치에 의해 수행되는 동작들로서 구현될 수 있다.
용어 “데이터 프로세싱 장치”, “데이터 프로세싱 시스템”, “사용자 디바이스” 또는 “컴퓨팅 디바이스”는 예시로서 프로그래머블 프로세서, 컴퓨터, 시스템 온 칩 또는 앞서 언급된 것들 중 다수의 것들 또는 조합들을 포함하는 데이터를 프로세싱하기 위한 모든 종류의 장치, 디바이스들 및 기계들을 포함한다. 상기 장치는 특수 목적 논리 회로, 예를 들어 FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)을 포함할 수 있다. 또한, 장치는 하드웨어 이외에 문제의 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 크로스-플랫폼 런타임(cross-platform runtime) 실행 환경, 가상 머신 또는 그들 중 하나 이상의 조합을 구성하는 코드를 포함할 수 있다. 장치 및 실행 환경은 웹 서비스들, 분산 컴퓨팅 및 그리드 컴퓨팅 인프라와 같은 다양한 컴퓨팅 모델 인프라를 실현할 수 있다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 어플리케이션, 스크립트 또는 코드로도 알려져 있음)은 컴파일된 또는 인터프리트된 언어들, 선언적 또는 절차적 언어들을 포함하는 임의의 형태의 프로그래밍 언어로 작성될 수 있으며, 독립 실행형 프로그램으로서 또는 모듈, 컴포넌트, 서브루틴, 객체로서 또는 컴퓨팅 환경에서 사용하기에 적합한 기타 단위를 포함하는 임의의 형태로 배포될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 대응할 수 있지만, 반드시 그런 것은 아니다. 프로그램은 다른 프로그램들이나 데이터, 예를 들어, 마크업 언어 문서에 저장된 하나 이상의 스크립트들을 가지는 파일의 부분에, 문제되는 프로그램 전용 단일의 파일에 또는 다수의 조정된 파일들, 예를 들어, 하나 이상의 모듈들, 서브프로그램 또는 코드의 일부를 저장하는 파일들에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 또는 하나의 사이트에 위치되어 있거나 다수의 사이트들에 걸쳐서 분산되어 있고 통신 네트워크에 의해 상호연결된 다수의 컴퓨터들에서 실행되도록 배포될 수 있다.
본 명세서에 기술된 프로세스들 및 논리 흐름들은 입력 데이터를 동작하고 출력을 생성함으로써 액션들을 수행하기 위해 하나 이상의 컴퓨터 프로그램들을 실행하는 하나 이상의 프로그래머블 프로세서들에 의해 수행될 수 있다. 프로세스들 및 논리 흐름들은 또한 FPGA 또는 ASIC와 같은 특수 목적 논리 회로에 의해 수행될 수 있고, 장치는 또한 특수 목적 논리 회로로서 구현될 수 있다.
컴퓨터 프로그램의 실행에 적절한 프로세서들은, 예시로서, 범용 및 전용 마이크로프로세서들과 임의의 종류의 디지털 컴퓨터의 임의의 하나 이상의 프로세서들을 포함한다. 일반적으로, 프로세서는 읽기-전용 메모리 또는 랜덤 액세스 메모리 또는 둘 모두로부터 명령어들 및 데이터를 수신할 것이다. 컴퓨터의 엘리먼트들은 명령어들에 따라 액션들을 수행하기 위한 프로세서 및 명령어들 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스들을 포함한다. 일반적으로, 컴퓨터는 데이터를 저장하기 위한 하나 이상의 대형 저장 디바이스들 예를 들면, 자기적, 자기-광학 디스크들 또는 광학적 디스크들 또한 포함하거나 또는 그로부터 데이터를 수신하거나 그에 데이터를 전송하기 위해 동작적으로 결합될 수 있다. 그러나, 컴퓨터는 상기 디바이스들을 반드시 가져야하는 것은 아니다. 추가로, 컴퓨터는 다른 디바이스, 예를 들어, 모바일 전화, 개인 휴대 정보 단말기(PDA), 모바일 오디오 또는 비디오 플레이어, 게임 콘솔, GPS 수신기 또는 휴대용 저장 디바이스 예를 들어, 범용 직렬 버스(USB) 플래시 드라이브에 내장될 수 있다. 컴퓨터 프로그램 명령어들 및 데이터를 저장하기에 적합한 디바이스들은 예를 들어, EPROM, EEPROM 및 플래시 메모리 디바이스들과 같은 반도체 메모리 디바이스들; 예를 들어, 내부 하드 디스크들 또는 이동식 디스크들과 같은 자기 디스크들; 및 CD-ROM 및 DVD-ROM 디스크들을 포함하는 모든 형태의 비휘발성 메모리, 매체 및 메모리 디바이스들을 포함한다. 프로세서 및 메모리는 특수 목적 논리 회로에 의해 보충되거나 그 안에 통합될 수 있다.
사용자와의 인터렉션을 제공하기 위해, 본 명세서에서 기술된 본 발명의 구현예들은 사용자에게 정보를 디스플레이하기 위해 예를 들어, CRT(cathode ray tube) 또는 LCD(liquid crystal display) 모니터와 같은 디스플레이 디바이스 및 사용자가 컴퓨터에 입력을 제공할 수 있는 키보드 및 포인팅 디바이스 예를 들어, 마우스 또는 트랙볼을 갖는 컴퓨터에서 구현될 수 있다. 다른 종류의 디바이스들도 사용자와의 인터렉션을 제공하는데 사용될 수 있다. 예를 들어, 사용자에게 제공되는 피드백은 시각 피드백, 청각 피드백 또는 촉각 피드백과 같은 임의의 형태의 감각적 피드백일 포함할 수 있고, 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함하는 임의의 형태로 수신될 수 있다. 추가로, 컴퓨터는 사용자에 의해 사용되는 디바이스에 문서를 송수신함으로써 예를 들어, 웹 브라우저로부터 수신된 요청에 응답하여, 사용자의 사용자 디바이스상의 웹 브라우저에 웹 페이지를 전송함으로써 사용자와 인터렉션할 수 있다.
본 명세서에서 기술된 발명의 구현예는 예를 들어 데이터 서버와 같은 백엔드 컴포넌트, 어플리케이션 서버와 같은 미들웨어 컴포넌트 또는 그래픽 사용자 인터페이스를 가지는 사용자 컴퓨터 또는 사용자가 본 명세서에 기술된 본 발명의 구현예와 인터렉션할 수 있는 웹 브라우저와 같은 프론트엔드 컴포넌트 또는 하나 이상의 상기 백엔드, 미들웨어 또는 프론트엔드 컴포넌트들의 임의의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 컴포넌트들은 디지털 데이터 통신의 임의의 형태 또는 매체, 예를 들어 통신 네트워크에 의해 상호연결될 수 있다. 통신 네트워크들의 예는 근거리 통신망("LAN") 및 광역 통신망("WAN"), 인터-네트워크(예를 들어, 인터넷) 및 피어투피어 네트워크(예를 들어, 애드혹 피어투피어 네트워크)를 포함한다.
데이터 프로세싱 시스템(600)과 같은 컴퓨팅 시스템은 클라이언트 및 서버를 포함할 수 있다. 예를 들어, 데이터 프로세싱 시스템(105)은 적어도 하나의 데이터 센터 또는 서버 팜에 위치된 복수의 서버들 포함할 수 있다. 사용자와 서버는 일반적으로 서로 멀리 떨어져 있으며, 일반적으로 통신 네트워크를 통해 인터렉션한다. 사용자와 서버의 관계는 각각의 컴퓨터에서 실행되고 서로 사용자-서버 관계를 갖는 컴퓨터 프로그램에 의해 발생한다. 일부 구현예에서, 서버는(예를 들어, 사용자 디바이스와 인터렉션하는 사용자에게 데이터를 디스플레이하고 사용자 입력을 수신하기 위해) 사용자 디바이스에 데이터(예를 들어, HTML 페이지)를 전송한다. 사용자 디바이스에서 생성된 데이터(예를 들어, 사용자 인터렉션의 결과)는 서버에서 사용자 디바이스로부터 수신될 수 있다.
본 명세서는 많은 특정 구현 세부내용을 포함하지만, 이들은 본 발명의 범위 또는 청구될 수 있는 범위에 대한 제한으로서 해석되어서는 안되며, 오히려 본 명세서에 기술된 시스템 및 방법의 특정한 구현예에 특정한 구성들에 대한 설명으로 해석되어야 한다. 별개의 구현예의 맥락에서 본 명세서에서 기술되는 일정 구성들은 또한 단일 구현예에서 조합하여 구현될 수 있다. 반대로, 단일 구현예의 맥락에서 기술된 다양한 구성들은 또한 다수의 구현예에서 개별적으로 또는 임의의 적합한 서브 조합으로 구현될 수 있다. 게다가, 구성들은 일정 조합으로 동작하고 심지어 초기적으로 그렇게 청구되는 것으로서 상기에서 기술될 수 있지만, 청구된 조합으로부터의 하나 이상의 구성들은 일부 경우, 조합으로부터 제거될 수 있고, 청구된 조합은 서브 조합 또는 서브 조합의 변형으로 안내될 수 있다.
유사하게, 동작들이 특정한 순서로 도면에서 도시되었지만, 이는 상기 동작들이 도시된 특정한 순서로 또는 시계열적 순서로 수행되어야 함을 요구하는 것으로서 또는 모든 도시된 동작들이 수행되어야 하는 것으로 이해되어서는 안된다. 일부 경우에, 청구항들에서 기재된 액션들은 상이한 순서로 수행되고 여전히 원하는 결과들을 달성할 수 있다. 추가로, 첨부 도면들에 도시된 프로세스들은 원하는 결과들을 달성하기 위해 특정한 도시된 순서, 또는 시계열적 순서를 반드시 필요로 하지 않는다.
특정 환경에서, 멀티태스킹과 병렬 프로세싱은 이점이 있다. 게다가, 상기 기술된 구현예에서 다양한 시스템 컴포넌트들의 분리는 모든 구현예에서 그러한 분리가 필요한 것으로서 이해되어서는 안되며, 일반적으로 기술된 프로그램 컴포넌트들 및 시스템들은 단일의 소프트웨어 제품에 함께 통합되거나 다수의 소프트웨어 제품들에 패키징될 수 있다고 이해되어야 한다. 예를 들면, 데이터 프로세싱 시스템(105)은 단일 모듈, 하나 이상의 프로세싱 모듈을 갖는 논리 디바이스, 하나 이상의 서버 또는 검색 엔진의 일부일 수 있다.
일부 예시적 구현 및 구현예들을 설명하였지만, 전술한 예는 예시적인 것이며 제한적인 것은 아니며 예시로서 제시되었다. 특히, 본 명세서에 제시된 많은 예들이 방법 동작들 또는 시스템 엘리먼트들의 특정 조합을 포함하지만, 그러한 동작들 및 엘리먼트들은 동일한 목적을 달성하기 위해 다른 방식으로 결합될 수 있다. 하나의 구현예와 관련하여 논의된 동작, 엘리먼트 및 구성들은 다른 구현 또는 구현예에서 유사한 역할로부터 배제되지 않는다.
본 명세서에서 사용된 문구 및 용어는 설명의 목적을 위한 것이며 제한적인 것으로 간주되어서는 안된다. "포함(including)" "포함(comprising)" "포함(having)" "포함(containing)" "포함(involving)" "포함(characterized by)" "포함(characterized in that)” 및 본 명세서에서 이들의 변형들은 열거된 아이템들, 그 균등물 및 추가 아이템들뿐만 아니라 배타적으로 열거된 아이템들로 구성되는 대안적 구현예들을 포함하는 것을 의미한다. 일 구현예에서, 본 명세서에 기술된 시스템 및 방법은 설명된 엘리먼트들, 동작들 또는 컴포넌트들 중 하나, 하나 이상의 조합 또는 전부로 구성된다.
단수형으로 본 명세서에서 언급된 시스템 및 방법의 구현 또는 엘리먼트에 관한 참조는 이들 엘리먼트들 복수형을 포함하는 구현예들을 포함할 수 있고, 복수형으로 본 명세서에서 언급된 임의의 구현예 또는 엘리먼트에 대한 임의의 참조는 단수형 엘리먼트를 포함하는 구현예들을 포함할 수 있다. 단수 또는 복수 형태의 참조는 현재 개시된 시스템 또는 방법, 그들의 컴포넌트들, 동작 또는 엘리먼트를 단수 또는 복수 구성으로 제한하려는 것이 아니다. 임의의 정보, 동작 또는 엘리먼트에 기초한 임의의 동작 또는 엘리먼트에 대한 참조는 해당 동작 또는 엘리먼트가 적어도 부분적으로 임의의 정보, 동작 또는 엘리먼트에 기초하는 구현예를 포함할 수 있다.
본 명세서에 개시된 임의의 구현예는 임의의 다른 구현예와 결합될 수 있으며, "구현", "일부 구현", "대안적 구현", "다양한 구현", "하나의 구현” 등은 반드시 상호 배타적이지 않고, 구현예과 관련하여 기술된 특정한 구성, 구조 또는 특성이 적어도 하나의 구현예에 포함될 수 있음을 나타내는 것이다. 본 명세서에 사용된 용어들은 반드시 모두 동일한 구현예를 지칭하는 것은 아니다. 임의의 구현예는 본 명세서에 개시된 양태들 및 구현예들과 일관된 방식으로 임의의 다른 구현예와 포괄적으로 또는 배타적으로 결합될 수 있다.
“또는"에 대한 참조는 "또는"을 사용하여 기술된 임의의 용어가 기술된 용어들 중 하나, 하나 이상 및 전부를 나타낼 수 있도록 포괄적인 것으로 해석될 수 있다.
도면, 상세한 설명 또는 청구범위의 기술적 구성에 참조 부호가 있는 경우, 상기 참조 부호는 도면, 상세한 설명 및 청구 범위의 명료성을 증가시키는 목적으로만으로 포함되었다. 따라서, 참조 부호들 또는 그것들의 부재는 임의의 청구항 엘리먼트들의 범위에 대해 어떠한 제한 효과도 가지지 않는다.
본 명세서에 기술된 시스템 및 방법은 그 특성을 벗어나지 않고 다른 특정 형태로 구체화될 수 있다. 본 명세서에서 제공된 예시들은 정보 리소스의 콘텐츠의 디스플레이를 제어하는 것에 관한 것이지만, 본 명세서에 기술된 시스템 및 방법은 다른 환경에 적용되는 것을 포함할 수 있다. 전술한 구현예들은 기술된 시스템 및 방법을 제한하는 것이라기 보다는 예시적인 것이다. 따라서, 본 명세서에 기술된 시스템 및 방법의 범위는 상술한 설명보다는 첨부된 청구범위에 의해 표시되며, 청구범위의 의미 및 범위 내에서의 변경들도 그 안에 포함된다.

Claims (7)

  1. 문서 공간 연관에 기초하여 선택 기준의 세트로부터 선택 기준을 프루닝하는 방법으로서,
    하나 이상의 프로세서들을 포함하는 데이터 프로세싱 시스템에 의해, 과거 이력 데이터에 기초하여, 각각의 예측된 요청들의 세트와 연관된 복수의 검색 토큰들을 수신하는 단계;
    상기 데이터 프로세싱 시스템에 의해, 상기 예측된 요청들을 사용하여, 프루닝된 복수의 검색 토큰들을 생성하기 위해 상기 복수의 검색 토큰들로부터 제1 검색 토큰 및 제2 검색 토큰을 제거하는 단계; 및
    상기 데이터 프로세싱 시스템에 의해, 상기 프루닝된 복수의 검색 토큰들을 콘텐츠 제공자 컴퓨팅 디바이스에 제공하는 단계를 포함하는 방법.
  2. 청구항 1에 있어서, 각 예측된 요청은 상기 예측된 요청에 대한 추정된 트래픽 값에 기초한 가중치 값과 연관되고; 그리고
    상기 제거하는 단계는:
    상기 데이터 프로세싱 시스템에 의해, 상기 복수의 가중치 값들 각각을 미리 결정된 트래픽 임계치와 비교하는 것;
    상기 데이터 프로세싱 시스템에 의해, 프루닝된 복수의 예측된 요청들을 선택하는 것, 상기 프루닝된 복수의 예측된 요청들 각각은 상기 각각의 가중치 값이 상기 미리 결정된 트래픽 임계치보다 큰 것에 응답하여 상기 복수의 예측된 요청들로부터 선택되며;
    상기 데이터 프로세싱 시스템에 의해, 비트 스트링을 구성하는 것을 포함하며, 상기 비트 스트링에서의 각 포지션은 상기 프루닝된 복수의 예측된 요청들 중 각각의 하나에 대응하고, 상기 각각의 프루닝된 예측된 요청이 상기 제1 검색 토큰에 대응하는지 여부를 표시하는 값을 갖는 방법.
  3. 청구항 1에 있어서, 상기 데이터 프로세싱 시스템에 의해, 상기 복수의 검색 토큰들 중 제1 검색 토큰과 제2 검색 토큰 사이의 유사성 값이 미리 결정된 임계치보다 작은 것에 응답하여, 상기 프루닝된 복수의 검색 토큰들을 생성하기 위해 상기 복수의 검색 토큰들로부터 상기 제1 검색 토큰을 제거하는 단계를 더 포함하는 방법.
  4. 청구항 1에 있어서, 상기 복수의 검색 토큰 각각은 콘텐츠 등급 값과 연관되고, 그리고
    상기 복수의 예측된 요청들을 검색하는 것은 상기 제1 검색 토큰 및 상기 제1 검색 토큰과 연관된 콘텐츠 등급 값에 기초하는 방법.
  5. 청구항 1에 있어서, 상기 프루닝된 복수의 검색 토큰들을 상기 콘텐츠 제공자 컴퓨팅 디바이스에 제공하는 단계는 상기 제1 검색 토큰 및 상기 제2 검색 토큰의 표시를 제공하는 것을 더 포함하는 방법.
  6. 청구항 1에 있어서, 상기 프루닝된 복수의 검색 토큰들을 상기 콘텐츠 제공자 컴퓨팅 디바이스에 제공하는 단계는:
    상기 데이터 프로세싱 시스템에 의해, 상기 프루닝된 복수의 검색 토큰들에 기초하여 상기 프루닝된 복수의 검색 토큰들에 대한 관련성 값을 검색하는 것; 및
    상기 데이터 프로세싱 시스템에 의해, 상기 프루닝된 복수의 검색 토큰들에 기초하여 관련성 값을 상기 콘텐츠 제공자 컴퓨팅 디바이스에 제공하는 것을 더 포함하는 방법.
  7. 하나 이상의 프로세서들을 포함하는 데이터 프로세싱 시스템을 포함하는 시스템으로서, 상기 데이터 프로세싱 시스템은 청구항 1 내지 6 중 어느 한 항의 방법을 구현하도록 구성되는, 시스템.
KR1020227010239A 2019-12-11 2019-12-11 타겟팅 및 기타 설정을 개선하기 위한 콘텐츠 제공자 추천 KR102605598B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020207012451A KR102381330B1 (ko) 2019-12-11 2019-12-11 타겟팅 및 기타 설정을 개선하기 위한 콘텐츠 제공자 추천
PCT/US2019/065733 WO2021118559A1 (en) 2019-12-11 2019-12-11 Content provider recommendations to improve targetting and other settings

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020207012451A Division KR102381330B1 (ko) 2019-12-11 2019-12-11 타겟팅 및 기타 설정을 개선하기 위한 콘텐츠 제공자 추천

Publications (2)

Publication Number Publication Date
KR20220102133A KR20220102133A (ko) 2022-07-19
KR102605598B1 true KR102605598B1 (ko) 2023-11-23

Family

ID=69165580

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020227010239A KR102605598B1 (ko) 2019-12-11 2019-12-11 타겟팅 및 기타 설정을 개선하기 위한 콘텐츠 제공자 추천
KR1020207012451A KR102381330B1 (ko) 2019-12-11 2019-12-11 타겟팅 및 기타 설정을 개선하기 위한 콘텐츠 제공자 추천

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020207012451A KR102381330B1 (ko) 2019-12-11 2019-12-11 타겟팅 및 기타 설정을 개선하기 위한 콘텐츠 제공자 추천

Country Status (7)

Country Link
US (1) US11669784B2 (ko)
EP (1) EP3853786A1 (ko)
JP (2) JP7177152B2 (ko)
KR (2) KR102605598B1 (ko)
CN (1) CN114616578A (ko)
CA (1) CA3160683A1 (ko)
WO (1) WO2021118559A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3897017B1 (en) * 2020-04-17 2023-11-01 Secure Thingz Limited A provisioning control apparatus, system and method
US20230325598A1 (en) * 2022-04-07 2023-10-12 Klarna Bank Ab Dynamically generating feature vectors for document object model elements

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101638127B1 (ko) 2016-01-29 2016-07-11 박요섭 지속적 콘텐츠 생성 및 맞춤형 콘텐츠 라이브러리 서비스 제공 방법
US10353863B1 (en) 2018-04-11 2019-07-16 Capital One Services, Llc Utilizing machine learning to determine data storage pruning parameters

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB9802836D0 (en) 1998-02-10 1998-04-08 Canon Kk Pattern matching method and apparatus
US7814104B2 (en) * 2005-05-04 2010-10-12 Oracle International Corporation Techniques for partition pruning
KR100835291B1 (ko) 2007-03-14 2008-06-10 엔에이치엔(주) 쿼리 타게팅 방법 및 시스템
JP5480058B2 (ja) 2010-08-03 2014-04-23 ヤフー株式会社 広告マッチング装置、方法及びプログラム
US9197872B2 (en) * 2013-02-21 2015-11-24 Comcast Cable Communications, LLC. Managing stored content
US9600503B2 (en) 2013-07-25 2017-03-21 Facebook, Inc. Systems and methods for pruning data by sampling
US10628418B2 (en) * 2014-11-13 2020-04-21 Sap Se Data driven multi-provider pruning for query execution plan
US10929360B2 (en) * 2015-10-19 2021-02-23 Oracle International Corporation Filtered partition maintenance operations
US10432722B2 (en) * 2016-05-06 2019-10-01 Microsoft Technology Licensing, Llc Cloud storage platform providing performance-based service level agreements
US11106712B2 (en) * 2016-10-24 2021-08-31 Google Llc Systems and methods for measuring the semantic relevance of keywords
EP3408762A1 (en) * 2016-12-30 2018-12-05 Google LLC Hash-based dynamic restriction of content on information resources
US11580170B2 (en) 2018-11-01 2023-02-14 Google Llc Machine learning based automatic audience segment in ad targeting

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101638127B1 (ko) 2016-01-29 2016-07-11 박요섭 지속적 콘텐츠 생성 및 맞춤형 콘텐츠 라이브러리 서비스 제공 방법
US10353863B1 (en) 2018-04-11 2019-07-16 Capital One Services, Llc Utilizing machine learning to determine data storage pruning parameters

Also Published As

Publication number Publication date
KR20220102133A (ko) 2022-07-19
CA3160683A1 (en) 2021-06-17
WO2021118559A1 (en) 2021-06-17
EP3853786A1 (en) 2021-07-28
CN114616578A (zh) 2022-06-10
JP2022517882A (ja) 2022-03-11
US20210184976A1 (en) 2021-06-17
US11669784B2 (en) 2023-06-06
JP2023021113A (ja) 2023-02-09
KR20210075904A (ko) 2021-06-23
JP7177152B2 (ja) 2022-11-22
KR102381330B1 (ko) 2022-04-01

Similar Documents

Publication Publication Date Title
US11681944B2 (en) System and method to generate a labeled dataset for training an entity detection system
US20180077250A1 (en) Method and System for Processing Data Used By Creative Users to Create Media Content
CN109509010B (zh) 一种多媒体信息处理方法、终端及存储介质
JP2015513736A (ja) コンテンツの自動推奨
JP2023021113A (ja) ターゲティングおよびその他の設定を改善するためのコンテンツプロバイダの推薦
US20170155939A1 (en) Method and System for Processing Data Used By Creative Users to Create Media Content
US11989755B1 (en) Expansion of high performing placement criteria
CN113056897A (zh) 用于内容准个性化的低熵浏览历史
US20140245337A1 (en) Proxy Analytics
CN111159563A (zh) 用户兴趣点信息的确定方法、装置、设备及存储介质
US20210365805A1 (en) Estimating number of distinct values in a data set using machine learning
JP2023533927A (ja) データソースの高速マージによるクロスメディアレポートのためのシステムおよび方法
CN110727853B (zh) 向用户呈现控制的异构数字内容
US20230325421A1 (en) Selecting from Arrays of Multilingual Content
US20230259837A1 (en) Content provider recommendations to improve targetting and other settings
EP3908954B1 (en) Systems and methods for secure and privacy preserving device classification
JP2022528212A (ja) ネットワークリソースのセキュリティおよび利用を改善するためにローカルコンテンツを生成および選択するためのシステムおよび方法
CN111639260A (zh) 内容推荐方法及其装置、存储介质
US20230153454A1 (en) Meta-Estimation of Bloom Filters with Vectors of Counts
KR102343848B1 (ko) 이용자 상태 벡터를 이용한 전환 전략 탐색 방법 및 운영 장치
US11275749B2 (en) Enhanced query performance prediction for information retrieval systems
CN115687747A (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