KR101828959B1 - 사용자 네비게이션 이벤트의 예측 - Google Patents

사용자 네비게이션 이벤트의 예측 Download PDF

Info

Publication number
KR101828959B1
KR101828959B1 KR1020147009072A KR20147009072A KR101828959B1 KR 101828959 B1 KR101828959 B1 KR 101828959B1 KR 1020147009072 A KR1020147009072 A KR 1020147009072A KR 20147009072 A KR20147009072 A KR 20147009072A KR 101828959 B1 KR101828959 B1 KR 101828959B1
Authority
KR
South Korea
Prior art keywords
navigation
event
graph
history
events
Prior art date
Application number
KR1020147009072A
Other languages
English (en)
Other versions
KR20140064930A (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 KR20140064930A publication Critical patent/KR20140064930A/ko
Application granted granted Critical
Publication of KR101828959B1 publication Critical patent/KR101828959B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04847Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04815Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/38Electronic maps specially adapted for navigation; Updating thereof
    • G01C21/3804Creation or updating of map data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/29Geographical information databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/954Navigation, e.g. using categorised browsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/453Help systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • G06N5/048Fuzzy inferencing
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16BBIOINFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR GENETIC OR PROTEIN-RELATED DATA PROCESSING IN COMPUTATIONAL MOLECULAR BIOLOGY
    • G16B45/00ICT specially adapted for bioinformatics-related data visualisation, e.g. displaying of maps or networks
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16CCOMPUTATIONAL CHEMISTRY; CHEMOINFORMATICS; COMPUTATIONAL MATERIALS SCIENCE
    • G16C20/00Chemoinformatics, i.e. ICT specially adapted for the handling of physicochemical or structural data of chemical particles, elements, compounds or mixtures
    • G16C20/80Data visualisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/22Indexing scheme relating to groups G06F7/22 - G06F7/36
    • G06F2207/228Sorting or merging network

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Remote Sensing (AREA)
  • Computing Systems (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Medical Informatics (AREA)
  • Automation & Control Theory (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computational Linguistics (AREA)
  • Fuzzy Systems (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Biophysics (AREA)
  • General Health & Medical Sciences (AREA)
  • Spectroscopy & Molecular Physics (AREA)
  • Chemical & Material Sciences (AREA)
  • Crystallography & Structural Chemistry (AREA)
  • Evolutionary Biology (AREA)
  • Biotechnology (AREA)
  • Health & Medical Sciences (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Navigation (AREA)

Abstract

다음 네비게이션 이벤트를 예측하기 위한 방법(300) 및 시스템(200)이 서술된다. 본 발명의 양상들은 다음 네비게이션 이벤트를 예측함으로써 네비게이션 이벤트와 네트워크 응답 사이의 지연을 최소화한다. 방법(300) 및 시스템(200)은 다음 네비게이션 이벤트(306)에 관련된 컨텐트를 프리렌더링할 수 있다. 예를 들어, 방법(300) 및 시스템(200)은, 사용자가 웹 페이지 상의 해당 링크를 선택하기 전에 네트워크로부터 컨텐트를 선제적으로 요청하도록, 가능성 있는 다음 유니폼 리소스 로케이터를 웹 브라우징 동안에 예측할 수 있다. 본 발명의 방법들은 다음 네비게이션 이벤트를 예측하는 다양한 방식들을 서술하고 있는바, 개별(400 및 500), 및 총합 히스토리 데이터(600, 700, 800)를 검사하는 것, 텍스트 입력 예측(1000), 그리고 커서 입력 모니터링(1100) 등을 포함한다.

Description

사용자 네비게이션 이벤트의 예측{PREDICTING USER NAVIGATION EVENTS}
본 출원은 2011년 9월 15일자로 출원된 미국특허출원 13/233,300의 계속 출원이며, 상기 미국 출원은 본 발명에 대한 참조로서 그 전체 내용이 본 명세서에 통합된다.
월드 와이드 웹의 출현으로 인하여, 오늘날의 사용자들은 그 어느 때 보다도 정보를 손쉽게 획득할 수 있다. 다양한 웹사이트들은 거의 모든 요구들 및 관심사항들을 충족시켜 주고 있으며. 참고 정보(reference information), 비즈니스 및 금융관련 서류들, 소셜 네트워킹, 기타 등등에 대한 액세스를 제공한다. 광범위한 광대역 인터넷 액세스는 이전 어느 때 보다도 이들 사이트들에 대한 고속의 액세스를 제공하고 있다.
하지만, 현재의 고속 인터넷 서비스들이 빠른 만큼, 웹을 브라우징하는 행위는 즉각적이지 못하다. 사용자가 페이지 상의 링크를 선택하거나 혹은 유니폼 리소스 로케이터(URL)를 텍스트 필드에 입력하는 경우, 호스트로부터 데이터가 요청되고, 클라이언트로 전송되며, 그리고 브라우저에 렌더링되기까지 지연이 존재한다. 사용자는 그들이 요청한 사이트가 로딩되기를 기다리는 동안 무료할 수도 있다. 비록 고속의 인터넷 액세스는 이러한 지연을 수 초 이내로 제한할 수도 있지만, 이러한 짧은 지연이 전부 합산되면 매년 수천 맨-아워(man-hour)의 생산성 손실을 초래할 수도 있다.
사용자 네비게이션 이벤트들을 예측하기 위한 방법 및 시스템이 서술된다. 본 발명의 양상들은 웹 페이지 상의 사용자 네비게이션 이벤트를 예측함으로써 웹 컨텐트에 액세스함에 있어서의 지연을 최소화한다. 네비게이션 이벤트는 다양한 표시자들(indicators)에 의해서 예측될 수 있는바, 이러한 표시자들은 사용자의 네비게이션 히스토리, 총합 네비게이션 히스토리, 데이터 입력 필드 내의 텍스트 입력, 혹은 마우스 커서 위치등을 포함할 수 있지만 이에 한정되는 것은 아니다. 사용자들에 대한 개인적인 정보를 수집할 수도 있는 기능을 옵트 인 혹은 아웃(opt in or out)하기 위한 기회가 사용자들에게 제공될 수 있다. 또한, 개인을 식별할 수 있는 정보가 제거되도록 소정 데이터가 익명화될 수 있으며 그리고 그 정보가 저장 혹은 사용되기 전에 취합(aggregate)될 수 있다.
본 발명의 양상들은 사용자 네비게이션 이벤트를 예측하기 위한 컴퓨터로 구현되는 방법을 제공한다. 상기 방법은, 네비게이션 데이터의 세트를 저장하는 단계, 상기 네비게이션 데이터는 적어도 하나의 방향성 그래프(directed graph)를 포함하며, 상기 방향성 그래프의 적어도 하나의 버텍스(vertex)는 적어도 하나의 네비게이션 이벤트를 포함하며, 상기 방향성 그래프의 에지(edge)는 소스 버텍스로부터 목적지 버텍스로 네비게이션이 발생한 횟수를 나타내는 카운트 값에 의해서 가중화되며, 상기 소스 버텍스트는 상기 에지에 의해서 상기 목적지 버텍스에 연결되며; 현재 네비게이션 히스토리를 식별하는 단계, 상기 현재 네비게이션 히스토리는 브라우저에서 액세스된 하나 이상의 이전(previous) 네비게이션 이벤트들을 포함하며; 프로세서를 이용하여, 상기 현재 네비게이션 히스토리를 상기 네비게이션 데이터의 세트 내에 있는 적어도 하나의 방향성 그래프에 매핑하는 단계; 상기 적어도 하나의 방향성 그래프를 이용하여, 주어진 네비게이션 이벤트에 대한 신뢰도 값을 결정하는 단계; 그리고 가능성 있는 네비게이션 이벤트가 네비게이션 동작들(operations)에 도움을 주기 위하여 상기 브라우저에 의해서 이용되도록, 상기 신뢰도 값에 기초하여 상기 주어진 네비게이션 이벤트를 상기 가능성 있는 네비게이션 이벤트로 식별하는 단계를 포함할 수 있다. 상기 적어도 하나의 방향성 그래프는 상기 현재 네비게이션 히스토리 내의 적어도 하나의 이전 네비게이션 이벤트에 키잉(keyed to)될 수 있다. 상기 적어도 하나의 이전 네비게이션 이벤트는, 상기 적어도 하나의 이전 네비게이션 이벤트들 각각이 방문되었던 순서대로 식별될 수 있다. 상기 방법은 또한, 상기 현재 네비게이션 히스토리에서 n 개의 이전 네비게이션 이벤트들을 식별하는 단계; 그리고 상기 적어도 하나의 방향성 그래프 중 어떤 것이 상기 n 개의 이전 네비게이션 이벤트들에 키잉(keyed to)되는지를 결정하는 단계를 포함할 수 있다. 상기 신뢰도 값은 상기 적어도 하나의 방향성 그래프의 적어도 깊이에 의해서 가중화될 수 있다. 상기 방향성 그래프의 가중치는 공식 weight = graph _ depth N * samples _ in _ graph 에 의해서 결정되며, 상기 공식에서 graph _ depth 는 상기 깊이이며, samples _ in _ graph 는 상기 그래프에 저장된 네비게이션 이벤트들의 개수이며, 그리고 N 은 가중치 계산에서 graph _ depth 항의 중요도(significance)를 조정하는데 이용되는 숫자이다. 상기 방법은 상기 가능성 있는 네비게이션 이벤트를 프리렌더링하는 단계를 또한 포함할 수 있다. 상기 브라우저는 웹 브라우저가 될 수 있다.
또한, 본 발명의 양상들은, 명령들을 포함하는 비-일시적인 컴퓨터-판독가능한 저장 매체를 제공하는바, 상기 명령들은 프로세서에 의해서 실행되는 때, 상기 프로세서로 하여금, 방법을 수행하게 한다. 프로세서에 의해서 실행되는 방법은, 네비게이션 데이터의 세트를 저장하는 단계, 상기 네비게이션 데이터는 적어도 하나의 방향성 그래프(directed graph)를 포함하며, 상기 방향성 그래프의 적어도 하나의 버텍스(vertex)는 적어도 하나의 네비게이션 이벤트를 포함하며, 상기 방향성 그래프의 에지(edge)는 소스 버텍스로부터 목적지 버텍스로 네비게이션이 발생한 횟수를 나타내는 카운트 값에 의해서 가중화되며, 상기 소스 버텍스트는 상기 에지에 의해서 상기 목적지 버텍스에 연결되며; 현재 네비게이션 히스토리를 식별하는 단계, 상기 현재 네비게이션 히스토리는 브라우저에서 액세스된 하나 이상의 이전(previous) 네비게이션 이벤트들을 포함하며; 상기 현재 네비게이션 히스토리를 상기 네비게이션 데이터의 세트 내에 있는 적어도 하나의 방향성 그래프에 매핑하는 단계; 상기 적어도 하나의 방향성 그래프를 이용하여, 주어진 네비게이션 이벤트에 대한 신뢰도 값을 결정하는 단계; 그리고 가능성 있는 네비게이션 이벤트가 네비게이션 동작들(operations)에 도움을 주기 위하여 상기 브라우저에 의해서 이용되도록, 상기 신뢰도 값에 기초하여 상기 주어진 네비게이션 이벤트를 상기 가능성 있는 네비게이션 이벤트로 식별하는 단계를 포함할 수 있다. 상기 적어도 하나의 방향성 그래프는 상기 현재 네비게이션 히스토리 내의 적어도 하나의 이전 네비게이션 이벤트에 키잉(keyed to)될 수 있다. 상기 적어도 하나의 이전 네비게이션 이벤트는, 상기 적어도 하나의 이전 네비게이션 이벤트들 각각이 방문되었던 순서대로 식별될 수 있다. 프로세서에 의해서 실행되는 상기 방법은 또한, 상기 현재 네비게이션 히스토리에서 n 개의 이전 네비게이션 이벤트들을 식별하는 단계; 그리고 상기 적어도 하나의 방향성 그래프 중 어떤 것이 상기 n 개의 이전 네비게이션 이벤트들에 키잉(keyed to)되는지를 결정하는 단계를 포함할 수 있다. 상기 신뢰도 값은 상기 적어도 하나의 방향성 그래프의 깊이에 의해서 가중화될 수 있다. 프로세서에 의해서 실행되는 상기 방법은 또한, 상기 가능성 있는 네비게이션 이벤트를 프리렌더링하는 단계를 포함할 수 있다.
본 발명의 양상들은 또한, 사용자 네비게이션 이벤트를 예측하기 위한 프로세싱 시스템을 제공한다. 상기 프로세싱 시스템은, 하나 이상의 프로세서; 그리고 네비게이션 데이터의 세트를 저장하기 위해 상기 프로세서에 연결된 메모리를 포함하며, 상기 네비게이션 데이터는 적어도 하나의 방향성 그래프(directed graph)를 포함하며, 상기 방향성 그래프의 적어도 하나의 버텍스(vertex)는 적어도 하나의 네비게이션 이벤트를 포함하며, 상기 방향성 그래프의 에지(edge)는 소스 버텍스로부터 상기 에지에 의해서 연결된 목적지 버텍스로 네비게이션이 발생한 횟수를 나타내는 카운트 값에 의해서 가중화된다. 상기 프로세서는, 현재 네비게이션 히스토리를 식별하고, 상기 현재 네비게이션 히스토리는 브라우저에서 액세스된 하나 이상의 이전(previous) 네비게이션 이벤트들을 포함하며; 상기 현재 네비게이션 히스토리를 상기 네비게이션 데이터의 세트 내에 있는 적어도 하나의 방향성 그래프에 매핑하고; 상기 적어도 하나의 방향성 그래프를 이용하여, 주어진 네비게이션 이벤트에 대한 신뢰도 값을 결정하고; 그리고 가능성 있는 네비게이션 이벤트가 네비게이션 동작들(operations)에 도움을 주기 위하여 상기 브라우저에 의해서 이용되도록, 상기 신뢰도 값에 기초하여 상기 주어진 네비게이션 이벤트를 상기 가능성 있는 네비게이션 이벤트로 식별할 수 있다. 상기 브라우저는 상기 가능성 있는 네비게이션 이벤트를 프리렌더링하도록 될 수 있다. 상기 적어도 하나의 방향성 그래프는 상기 현재 네비게이션 히스토리 내의 적어도 하나의 이전 네비게이션 이벤트에 키잉(keyed to)될 수 있다. 상기 적어도 하나의 이전 네비게이션 이벤트는, 상기 적어도 하나의 이전 네비게이션 이벤트들 각각이 방문되었던 순서대로 식별될 수 있다. 상기 프로세서는 또한, 상기 현재 네비게이션 히스토리에서 n 개의 이전 네비게이션 이벤트들을 식별하고; 그리고 상기 적어도 하나의 방향성 그래프 중 어떤 것이 상기 n 개의 이전 네비게이션 이벤트들에 키잉(keyed to)되는지를 결정할 수 있다. 상기 신뢰도 값은 상기 적어도 하나의 방향성 그래프의 깊이에 의해서 가중화될 수 있다. 상기 브라우저는 웹 브라우저가 될 수 있다.
도1은 본 발명의 일 양상에 따라 예시적인 클라이언트 디바이스와 통신하는 서버의 일례를 도시한 시스템 도면이다.
도2는 본 발명의 일 양상에 따른 컴퓨팅 디바이스의 일례를 도시한 블록도이다.
도3은 본 발명의 일 양상에 따라 예측된 네비게이션 이벤트에 기초하여 웹 페이지를 프리렌더링하기 위한 방법의 일례를 도시한 순서도이다.
도4는 본 발명의 일 양상에 따라 클라이언트 네비게이션 히스토리에 기초하여 네비게이션 이벤트를 예측하기 위한 방법의 일례를 도시한 순서도이다.
도5는 본 발명의 일 양상에 따라 클라이언트 네비게이션 히스토리를 이용하여 URL에 대한 신뢰도 값을 계산하기 위한 방법의 일례를 도시한 순서도이다.
도6은 본 발명의 일 양상에 따라 총합(aggregate) 네비게이션 히스토리에 기초하여 네비게이션 이벤트를 예측하기 위한 방법의 일례를 도시한 순서도이다.
도7은 본 발명의 일 양상에 따라 총합 네비게이션 히스토리를 이용하여 URL에 대한 신뢰도 값을 계산하기 위한 방법의 일례를 도시한 순서도이다.
도8a는 본 발명의 일 양상에 따라 링크 데이터를 익명으로 관리하는 해시 값들을 이용한 총합 네비게이션 히스토리에 기초하여 네비게이션 이벤트를 예측하기 위한 방법의 일례를 도시한 순서도이다.
도8b는 본 발명의 일 양상에 따라 총합 네비게이션 히스토리에 기초하여 사용자 네비게이션 이벤트를 예측하기 위한 예시적인 방법을 채용한 웹 브라우저의 일례를 예시한다.
도9는 본 발명의 일 양상에 따라 네비게이션 히스토리를 저장하기 위한 방향성 그래프를 예시한다.
도10은 본 발명의 일 양상에 따라 방향성 그래프를 만들기 위한 방법의 일례를 예시한다.
도11은 본 발명의 일 양상에 따라 방향성 그래프를 이용하여 네비게이션 이벤트를 예측하기 위한 방법의 일례를 도시한 도면이다.
본 명세서에는 사용자 네비게이션 이벤트들을 예측하기 위한 시스템 및 방법의 실시예들이 개시된다. 본 발명의 양상에 따르면, 다음 네비게이션 이벤트를 예측함으로써, 네비게이션 이벤트와 네트워크 응답 사이의 지연이 최소화된다. 본 발명의 시스템 및 방법은 다음 네비게이션 이벤트에 관련된 컨텐트를 프리렌더(prerender)할 수 있다. 예를 들어, 본 발명의 시스템 및 방법은, 사용자가 해당 링크를 선택하기 전에 네트워크로부터 컨텐트를 선제적으로(preemptively) 요청하도록, 가능성 있는(likely) 다음 유니폼 리소스 로케이터를 웹 브라우징 동안에 예측할 수 있으며, 따라서 웹 페이지 상의 하이퍼링크를 사용자가 선택할 때의 대기 시간을 감소 혹은 제거할 수 있다. 다음 네비게이션 이벤트를 예측하는 다양한 방식들을 설명하는 여러 방법들이 본 명세서에 서술되는데, 이는 개별 및 총합 이력 데이터를 검사하는 것, 텍스트 입력 예측, 커서 입력 모니터링 등을 포함한다. 또한, 본 발명의 양상들은 즉각적인 사용자 네비게이션(예컨대, 특정 웹 페이지를 보고 있을 때 가령, 다음 30초 이내에, 1분 이내에, 혹은 5분 이내에 사용자가 선택할 것 같은 다음 링크)의 예측에 관한 것이다.
도1에 도시된 바와 같이, 일실시예에 따른 예시적인 시스템(102)은, 웹 브라우저 인터페이스(114, 116, 118)을 각각 디스플레이하는 하나 이상의 클라이언트 디바이스들(106, 108, 110)과 통신하는(네트워크 112를 통해) 서버(104)를 포함한다.
클라이언트 디바이스들(106, 108, 110)은, 웹 브라우저 어플리캐이션의 실행 동안 프리렌더링 동작을 수행하도록 구성된다. 서버(104)는, 다음 네비게이션 이벤트에 대한 예측이 가능해지도록, 클라이언트 디바이스들(106, 108, 110)에게 네비게이션 히스토리 데이터를 전송할 수 있다. 일부 양상들에서, 클라이언트 디바이스들(106, 108, 110)은 로컬 네비게이션 히스토리를 이용하여 다음 네비게이션 이벤트를 결정하며 그리고 다음 네비게이션 이벤트에 관련된 컨텐트를 프리렌더링하도록 서버(104)에 대한 웹 요청을 생성한다. 예를 들어, 클라이언트 디바이스(106)의 사용자는, 웹 브라우저 인터페이스(112) 상에 디스플레이되는 바와 같이, "www.a.com"에 위치한 웹 페이지로 브라우징할 수 있다. 상기 페이지는 사용자에 의해서 선택가능한 컨텐트를 포함한다. 사용자의 네비게이션 히스토리에 기초하여, 클라이언트 디바이스(106)는 선택가능한 컨텐트 중에서 어떤 것을 사용자가 선택할 가능성이 있는지를 결정할 수 있으며 그리고 서버(104)로부터 상기 컨텐트를 요청함으로써, 선택가능한 컨텐트에 관련된 상기 컨텐트를 프리렌더링할 수 있다.
다른 일례로서, 클라이언트 디바이스(108)는 브라우저(114) 내에서 www.a.com 을 디스플레이할 수 있다. 클라이언트 디바이스(108)는 네비게이션 통계의 총합 세트(aggregate set)를 서버(104)로부터 수신할 수 있으며, 그리고 어떤 선택가능한 컨텐트를 사용자가 선택할 가능성이 있는지를 네비게이션 통계의 총합 세트에 기초하여 결정할 수 있다. 또 다른 일례로서, 클라이언트 디바이스(110)는 브라우저(116) 내에서 www.a.com 을 디스플레이할 수 있다. 클라이언트 디바이스(110)는 어떤 선택가능한 컨텐트를 사용자가 선택할 가능성이 있는지를 브라우저(116) 내의 커서 위치에 기초하여 결정할 수 있다.
본 명세서에 개시된 개념들은 일반적으로 웹 브라이저에 대해서 논의되지만, 본 개시 내용은 서버(104)를 포함하는 네트워크를 통해 네비게이션 이벤트를 관리할 수 있는 임의의 컴퓨팅 노드에도 적용될 수 있다.
클라이언트 디바이스들(106, 108, 110)은 네트워크(112)를 통해 데이터 요청들을 관리할 수 있는 임의의 디바이스가 될 수 있다. 이러한 클라이언트 디바이스들의 일례들은, 퍼스널 컴퓨터, PDA, 테블릿 PC, 넷북(netbook), 랩탑, 기타 등등을 포함한다. 사실, 본 발명의 시스템 및 방법에 따른 클라이언트 디바이스들은, 명령들(instructions)을 프로세스하고 그리고 인간 및 다른 컴퓨터(범용 컴퓨터, 로컬 저장 능력이 없는 네트워크 컴퓨터, 등등) 사이에서 데이터를 주고받을 수 있는 임의의 디바이스를 포함할 수 있다.
클라이언트 디바이스들(106, 108, 110)은, 네트워크(112)를 통한 데이트 액세스를 도와주기 위하여, 네비게이션 이벤트들을 예측하도록 동작할 수 있다. 예를 들어, 클라이언트 디바이스들은, 사용자의 브라우징 경험을 개선하기 위하여 웹 페이지의 프리렌더링을 용이하게 하도록, 가능성 있는 네비게이션 이벤트를 예측할 수 있다. 일부 양상들에서, 서버(104)는 가능성 있는 네비게이션 이벤트를 예측하기 위하여 클라이언트 디바이스들(106, 108, 110)에 의해서 이용될 수 있는 네비게이션 데이터를 제공한다(도6-8 참조). 일부 양상들에서, 클라이언트 디바이스들(106, 108, 110)은 로컬 데이터를 이용하여 가능성 있는 네비게이션 이벤트를 예측한다(도3-5, 도9-11 참조).
네트워크(112), 그리고 서버(104)와 클라이언트 디바이스들(106, 108, 110) 사이의 개재 노드들(intervening nodes)은 다양한 구성들을 포함할 수 있으며 그리고 다양한 프로토콜들을 이용할 수 있는바, 이러한 프로토콜들은 인터넷, 월드 와이드 웹, 인트라넷, 가상 사설 네트워크, 로컬 이더넷 네트워크, 하나 이상의 회사들에 독점된 통신 프로토콜들을 이용하는 사설 네트워크, 셀룰러 및 무선 네트워크(예컨대, Wi-Fi), 즉석 메시지, 하이퍼텍스트 트랜스퍼 프로토콜(HTTP) 및 간단한 메일 전송 프로토콜(simple mail transfer protocol:SMTP) 그리고 전술한 것들의 조합들을 포함한다. 다음을 유의해야 하는바, 전형적인 시스템은 매우 많은 수의 연결된 컴퓨터들을 포함할 수 있다.
비록, 전술한 바와 같이 정보가 전송 혹은 수신되는 경우에 소정의 장점들이 획득될 수도 있지만, 본 발명의 시스템 및 방법의 다른 양상들은, 임의의 특정한 정보 전송 방식으로 한정되지 않는다. 예를 들어, 일부 양상들에서, 정보는 가령, 광 디스크 혹은 휴대용 드라이브와 같은 매체를 통해 전달될 수도 있다. 다른 양상들에서, 정보는 비-전자적인 포맷으로 전송될 수도 있으며 그리고 시스템에 수동으로 입력될 수도 있다.
비록, 일부 기능들은 서버(104) 상에서 수행되는 것으로 표시되고 그리고 다른 기능들은 클라이언트 디바이스들(106, 108, 110) 상에서 수행되는 것으로 표시되지만, 본 발명에 따른 시스템 및 방법의 다양한 양상들은 하나의 프로세서를 갖는 하나의 컴퓨터에 의해서 구현될 수도 있다. 다음을 유의해야 하는바, 클라이언트 디바이스에 대하여 서술된 시스템 및 방법의 여러 양상들은 서버 상에서 구현될 수도 있으며, 그 반대의 경우도 마찬가지이다.
도2는 도1을 참조하여 서술된 클라이언트 디바이스들(106, 108, 110) 중 하나 등과 같은 컴퓨팅 디바이스(200)의 일례를 도시한 블록도이다. 컴퓨팅 디바이스(200)는 프로세서(204), 메모리(202), 및 범용 컴퓨터에 전형적으로 존재하는 다른 구성요소들을 포함할 수 있다. 메모리(202)는 프로세서(204)에 의해서 액세스 가능한 명령들 및 데이터를 저장할 수 있다. 프로세서(204)는 컴퓨팅 디바이스(200)의 동작들을 제어하기 위하여, 명령들을 실행할 수 있으며 그리고 데이터에 액세스할 수 있다.
메모리(202)는 프로세서(120)에 의해서 액세스될 수 있는 정보를 저장하는 임의 유형의 메모리가 될 수 있으며, 컴퓨터 판독가능한 매체 혹은 전자 디바이스의 도움으로 판독될 수 있는 데이터를 저장하는 다른 매체를 포함하는바, 가령, 하드 드라이브, 메모리 카드, 판독 전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 디지털 다용도 디스크(DVD), 혹은 다른 광 디스크를 포함할 뿐만 아니라, 다른 기입-가능 및 판독-전용 메모리를 포함한다. 본 발명의 시스템 및 방법은 전술한 것들의 다른 조합들을 포함할 수 있으며, 따라서 명령들 및 데이터의 상이한 부분들은 다른 유형의 매체에 저장될 수 있다.
명령들은, 프로세서(204)에 의해서 직접적으로 실행(가령, 머신 코드) 혹은 간접적으로 실행(가령, 스크립트)될 수 있는 명령들의 임의의 세트가 될 수 있다. 예를 들어, 명령들은 컴퓨터 코드로서 컴퓨터 판독가능한 매체에 저장될 수 있다. 이에 관하여, "명령들(instructions)" 이라는 용어와 "프로그램들" 이라는 용어는 본 명세서에서 상호 호환되게 사용될 수 있다. 상기 명령들은, 프로세서(204)에 의한 직접 프로세싱을 위하여 오브젝트 코드 포맷으로 저장될 수도 있으며 또는, 스크립트들 혹은 요청에 의해서 해석되거나 혹은 미리 컴파일되는 개별 소스 코드 모듈들의 모음을 포함하는 임의의 다른 컴퓨터 언어 형식으로 저장될 수 있다. 명령들의 함수들, 메소드들 및 루틴들은 다음에 좀더 상세히 설명된다(도3-11 참조).
데이터는 명령들에 따라 프로세서에 의해서 검색, 저장 혹은 수정될 수 있다. 예컨대, 임의의 특정한 데이터 스트럭처에 의해서 아키텍처가 제한되는 것은 아니지만, 데이터는 컴퓨터 레지스터에 저장될 수 있으며, 복수의 서로 다른 필드들 및 기록들(records)을 갖는 테이블, 확장형 마크업 언어(Extensible Markup Language : XML) 문서들 혹은 플랫 파일들(flat files)로서 관련 데이터베이스에 저장될 수 있다. 또한, 데이터는 가령, 이진 값들 혹은 유니코드(Unicode)와 같은 임의의 컴퓨터 판독가능한 형식으로 포맷될 수 있지만, 이에 한정되는 것은 아니다. 오직, 또 다른 일례들로서, 이미지 데이터는 픽셀들의 그리드들로 구성된 비트맵들로 저장될 수도 있는바, 이들은 압축되거나 혹은 압축되지 않는 포맷, 무손실형(예컨대, BMP) 혹은 손실형(예컨대, JPEG) 포맷에 따라 저장되며, 그리고 비트맵 혹은 벡터-기반(예컨대, SVG), 뿐만 아니라 그래픽들을 그리기 위한 컴퓨터 명령들로 저장될 수 있다. 데이터는 가령, 숫자들, 서술 텍스트, 독점 코드들(proprietary codes), 동일 메모리 혹은 다른 메모리(다른 네트워크 위치들을 포함)의 다른 영역들에 저장된 데이터에 대한 참조들 등과 같이 관련 정보를 식별하기에 충분한 임의의 정보를 포함할 수 있으며 혹은 관련 데이터를 계산하기 위하여 함수에 의해서 이용되는 정보를 포함할 수도 있다.
프로세서(204)는 가령, 상업적으로 이용가능한 다양한 범용 프로세서들 등과 같은 임의의 적절한 프로세서가 될 수 있다. 대안적으로, 상기 프로세서는 주문형 집적회로(ASIC) 등과 같은 전용 콘트롤러가 될 수도 있다.
비록, 도2는 프로세서와 메모리가 동일 블록 내에 있는 것으로 기능적으로 도시하고 있지만, 프로세서(204)와 메모리(202)는 동일한 물리적 하우징 내에 저장될 수도 혹은 저장되지 않을 수도 있는 다수의 프로세서들 및 메모리들을 포함할 수도 있음을 유의해야 한다. 따라서, 프로세서, 컴퓨터, 혹은 메모리를 지칭하는 것은, 병렬로 동작할 수도 혹은 병렬로 동작하지 않을 수도 있는 프로세서들, 컴퓨터들 혹은 메모리들의 모음에 대한 지칭을 포함하는 것으로 이해되어야 한다.
컴퓨팅 디바이스(200)는 네트워크의 하나의 노드에 존재할 수 있으며 그리고 네트워크의 다른 노드들과 직접적으로 혹은 간접적으로 통신할 수 있다. 예를 들어, 컴퓨팅 디바이스(200)는 네트워크를 통해 클라이언트 디바이스들과 통신하는 웹 서버를 포함할 수도 있으며, 따라서 컴퓨팅 디바이스(200)는 클라이언트 디바이스의 디스플레이 상의 사용자에게 정보를 전송 및 디스플레이하도록 네트워크를 이용할 수 있다.
일부 일례들에서, 시스템은 클라이언트 데이터에 대한 프라이버시 보호를 제공하는바, 이는 예컨대, 개인을 식별할 수 있는 정보의 익명화, 데이터의 취합(aggregation), 민감한 정보에 대한 필터링, 암호화, 개인적인 속성들을 제거하기 위해 민감한 정보를 해싱 혹은 필터링하는 것, 정보 저장에 대한 시간 제한, 및/또는 데이터 사용 혹은 공유에 대한 제한들을 포함한다. 개별 클라이언트 데이터가 노출되지 않도록, 데이터가 익명화 및 취합될 수 있다.
컴퓨팅 디바이스(200)의 네비게이션 이벤트 예측 동작들을 용이하게 하기 위하여, 메모리(202)는 또한, 브라우저(206), 네비게이션 예측 모듈(208), 프리렌더 모듈(210), 클라이언트 네비게이션 히스토리(212), 및 총합 네비게이션 히스토리(214)를 포함할 수 있다. 비록, 다수의 별개의 모듈들(예컨대, 206, 208, 210, 212, 214)이 도2에 도시되어 있지만, 이들 모듈들의 기능들은 중첩될 수도 있으며 및/또는 도시된 것보다 더 많거나 더 적은 개수의 모듈들에 존재할 수도 있는바, 지리적으로 분산될 수도 있는 하나 이상의 프로세싱 디바이스들에 이러한 모듈들이 상주할 수도 있다. 브라우저(206)는 가령, 웹 페이지(216), 검색 결과들의 세트, 혹은 임의의 다른 유형의 네트워크 데이터 등과 같은 네트워크 컨텐트의 디스플레이를 클라이언트 디바이스 사용자에게 제공한다(컴퓨터 네트워크를 통해 데이터를 주고받음으로써). 웹 페이지(216)는 가령, 하이퍼텍스트 트랜스퍼 프로토콜(HTTP) GET 요청 등과 같은 네트워크 요청에 응답하여 수신될 수 있다. 웹 페이지(216)는 가령, 하이퍼텍스트 마크업 언어(HTML) 등과 같은 마크업 언어로 제공될 수 있다. 또한, 웹 페이지(216)는 가령, Adobe FLASH 컨텐트, JAVASCRIPT 컨텐트 등과 같은 상호작용형(interactive) 및 실행가능한 컨텐트를 포함하여, 다양한 스크립트들, 데이터, 폼들(forms), 기타 등등을 포함한다.
또한, 브라우저(206)는 프리렌더링된 웹 페이지(218)를 포함한다. 프리렌더링된 웹 페이지(218)는, 네비게이션 예측 모듈(208)에 의해서 제공되는 예측된 네비게이션 이벤트에 응답하여 프리렌더 모듈(210)에 의해서 요청 및 액세스되었던 웹 페이지를 나타낸다. 예측 모듈(208)에 의해서 예측된 바와 같은 네비게이션 이벤트를 사용자가 입력하는 경우, 브라우저(206)는 프리렌더링된 웹 페이지(218)를 웹 페이지(216)와 바꿀수 있으며(swap), 따라서 다른 하나의 네트워크 요청을 전송할 필요없이, 네비게이션 이벤트에 관련된 컨텐트를 제공할 수 있다. 일부 양상들에서는, 프리렌더링된 웹 페이지(218)가 로딩을 완료하기 전에, 이러한 바꿈(swap)이 수행될 수도 있다. 이러한 경우, 부분적으로 로딩된 프리렌더링된 웹 페이지(218)가 스왑되어, 활성 페이지로서 로딩이 계속될 수 있다.
네비게이션 예측 모듈(208)에 의해서 식별된 것과 같은 다음 웹 페이지에 대한 페칭(fetching)을 수행하기 위해, 상기 메모리는 프리렌더 모듈(210)을 더 포함할 수 있다. 프리렌더 모듈(210)은, 사용자가 선택할 것인 가능성 있는 다음 네비게이션 목적지로 식별된 웹 페이지에 대한 네트워크 요청을 전송한다. 이러한 요청에 응답하여 수신된 웹 페이지는 프리렌더링된 웹 페이지(218)로서 브라우저(206)에 저장된다. 일부 양상들에서, 프리렌더 모듈(210)에 의해서 생성된 웹 페이지 요청은, 표준(standard) 웹 페이지 요청과 동일하다. 일부 양상들에서, 프리렌더 모듈(210)에 의해서 생성된 웹 페이지 요청은, 프리렌더 프로세스를 용이하게 하기 위한 소정의 피처들을 포함한다.
메모리(202)는 또한 클라이언트 네비게이션 히스토리(212)와 총합 네비게이션 히스토리(214)를 저장할 수 있다. 클라이언트 네비게이션 히스토리(212)는 브라우저(206)의 과거의 행위에 관련된 일 세트의 네비게이션 이벤트들을 포함한다. 클라이언트 네비게이션 히스토리(212)는 "클릭스트림(clickstream)"이라고도 알려진, 방문된 URL들의 세트를 추적할 수 있는바, 이는 사용자가 전형적으로 방문하는 URL들의 순서(예컨대, 사용자가 새로운 웹사이트를 방문하는 때, 사용자는 그날의 최고 인기글(top story of the day)에 해당하는 URL을 다음으로 선택하는 경향이 있음), URL들에 관련된 액세스 시간들의 세트, 기타 등등을 추적한다. 일부 양상들에서, 클라이언트 네비게이션 히스토리(212)는 URL들의 세트 및 사용자가 각각의 URL을 방문한 빈도를 포함한다. 일부 양상들에서, 클라이언트 네비게이션 히스토리(212)는 소스 URL과 목적지 URL을 나타내는, URL 쌍들의 세트를 포함한다. 총합 네비게이션 히스토리(214)는 클라이언트 네비게이션 히스토리(212)와 유사한 데이터를 포함할 수 있지만, 하나의 사용자가 아니라 다수의 사용자들에 키잉된다(keyed to). 클라이언트 네비게이션 히스토리(212)와 마찬가지로, 총합 네비게이션 히스토리(214)는 URL들의 세트 및 각 URL에 대한 빈도로서 저장될 수도 있으며 혹은 소스 URL로부터 목적지 URL로의 천이를 나타내는 URL 쌍들의 세트로 저장될 수도 있다.
클라이언트 네비게이션 히스토리(212)와 총합 네비게이션 히스토리(214)는, 하나 이상의 브라우저 애드-온들(add-ons), 스트립트들(scripts) 혹은 툴바들(toolbars)을 이용하여 수집된 데이터를 나타낼 수 있다. 일부 양상들에서, 클라이언트 네비게이션 히스토리(212) 및/또는 총합 네비게이션 히스토리(214)는, 가령, 서버(104)와 같은 원격 서버 상에 보유되며, 그리고 컴퓨팅 디바이스(200)로 제공된다. 컴퓨팅 디바이스(200)는 가능성 있는 다음 네비게이션 이벤트에 대한 예측을 용이하게 하는 별도의 기록들을 보유할 수도 있으며, 혹은 원격으로 저장된 데이터와 협력하여 작동할 수도 있다. 일부 양상들에서는, 사용자가 현재 보고있는 특정 웹 페이지에 관한 총합 네비게이션 히스토리(214)만이 컴퓨팅 디바이스(200)에 제공된다(도6 및 도8 참조).
전술한 바와 같이, 총합 네비게이션 히스토리 데이터(214)는 총합 네비게이션 히스토리를 포함하는 개별 클라이언트 데이터에 대한 프라이버시 보호가 수반되는 익명의 방식으로 보유될 수 있는데, 이는 예컨대, 개인을 식별할 수 있는 정보의 익명화, 데이터의 취합(aggregation), 민감한 정보에 대한 필터링, 암호화, 개인적인 속성들을 제거하기 위해 민감한 정보를 해싱 혹은 필터링하는 것, 정보 저장에 대한 시간 제한, 및/또는 데이터 사용 혹은 공유에 대한 제한들을 포함한다. 개별 클라이언트 데이터가 노출되지 않도록, 총합 네비게이션 히스토리(214) 데이터는 익명화 및 취합될 수 있다.
도3은 본 발명의 일 양상에 따라 예측된 네비게이션 이벤트에 기초하여 웹 페이지를 프리렌더링하기 위한 방법의 일례를 도시한 순서도이다. 상기 방법(300)의 양상들은 네비게이션 표시자들의 세트로부터 하나 이상의 가능성 있는 네비게이션 목적지들을 식별하고 그리고 식별된 네비게이션 목적지들을 프리렌더링하도록 동작한다. 상기 방법(300)은 가령, 컴퓨팅 디바이스(200)와 같은 컴퓨팅 디바이스에 의해서 수행될 수 있는바, 사용자에 의해 가능성 있는 네비게이션 타겟들로 식별된 웹 페이지들을 프리렌더링함으로써, 사용자 웹 브라우징 경험에서 지연(delay)을 제거할 수 있다. 예를 들어, 상기 방법(300)은 브라우저(206), 네비게이션 예측 모듈(208) 및 함께 작동하는 프리렌더 모듈(210)의 구성요소들에 의해서 수행될 수 있다. 비록, 상기 방법(300)의 양상들이 컴퓨팅 디바이스(200)에 대하여 설명되었지만, 상기 방법(300)은 또한 서버(104), 혹은 하드웨어 및/또는 명령들을 수신하도록 설계된 소프트웨어를 구비한 임의의 디바이스에 의해서 수행될 수도 있다.
단계 302에서, 컴퓨팅 디바이스(200)는 네비게이션 의도(navigational intent)에 대한 하나 이상의 표시자들(indicators)을 수신한다. 네비게이션 의도는, 가령, 특정 웹 페이지에 대한 요청 등과 같은 특정 네트워크 요청을 사용자가 생성할 것임을 나타내는 경향이 있는 임의의 액션이 될 수 있다. 예를 들어, 상기 표시자들은, 상기 특정 요청이 무엇이 될 것인지(가령, 신뢰도 값)를 결정하기 위한 메트릭(metrics)을 제공할 수 있다. 예를 들어, 사용자는 소정의 웹 페이지로 네비게이트할 수 있으며, 일반적으로 사용자는 사용자의 브라우징 히스토리에 기초하여 그 웹 페이지로부터 다른 소정의 웹 페이지로 네비게이트하거나, 혹은 사용자는 웹 페이지에 내포된 특정 하이퍼링크쪽으로 마우스 커서를 이동시킬 수도 있다. 일부 양상들에서, 표시자는 원격 서버(가령, 검색 결과들 내에 표시자를 내포하는 검색 엔진)로부터 수신되며, 이는 특정한 검색 질의를 제출하는 대부분의 사용자들은 특정한 검색 결과를 선택함을 나타낸다.
단계 304에서, 네비게이션 의도에 대한 표시자를 수신한 이후, 컴퓨팅 디바이스(200)는 가장 가능성 있는 네비게이션 이벤트에 대한 예측을 시도한다. 간단히 말해서, 컴퓨팅 디바이스(200)는 표시자에 기초하여, 사용자가 다음에 어디로 네비게이트할 가능성이 있는지에 대한 최선의 추측(best guess)을 수행한다. 이러한 예측을 수행하는 방법들은 다음에 설명된다(도4-11 참조).
단계 306에서, 컴퓨팅 디바이스(200)는 단계 304에서 결정된 바와 같은 예측된 다음 네비게이션 이벤트로부터의 컨텐트를 프리렌더링한다. 프리렌더링 프로세스는, 프리렌더링된 웹 페이지(예컨대, 프리렌더링된 웹 페이지 218)를 브라우저 내에 저장하는 것을 포함할 수 있다. 컴퓨팅 디바이스(200)는 가장 가능성 있는 네비게이션 이벤트로 예측된 하나의 웹 페이지를 프리렌더링할 수도 있으며, 혹은 컴퓨팅 디바이스(200)는 다수의 페이지들을 프리렌더링할 수도 있다. 일부 양상들에서, 컴퓨팅 디바이스(200)는, 컴퓨팅 디바이스(200)의 하나 이상의 시스템 능력들(이용가능한 시스템 리소스, 이용가능한 네트워크 대역폭, 프로세서 속도, 설치된 메모리, 기타 등등)에 기초하여, 프리렌더링할 페이지들의 개수를 결정한다. 일부 양상들에서, 프리렌더링할 페이지들의 개수는 하나 이상의 사용자 세팅에서 설정될 수도 있다. 네비게이션 이벤트(들)에 관련된 컨텐트를 프리렌더링한 이후에, 상기 방법(300)이 종료된다.
다음 네비게이션 이벤트를 예측하기 위한 여러가지 방법들이 아래에 설명된다. 각각의 방법이 별도로 설명되지만, 네비게이션 예측 동작들을 향상시키기 위하여 상기 방법들의 양상들이 서로 조합될 수도 있음을 유의해야 한다.
도4는 본 발명의 일 양상에 따라 클라이언트 네비게이션 히스토리에 기초하여 네비게이션 이벤트를 예측하기 위한 예시적인 방법(400)을 도시한 순서도이다. 상기 방법(400)은, 사용자에 대한 네비게이션 히스토리를 저장하는 것 그리고 특정 사용자의 네비게이션 히스토리에 기초하여 다음 네비게이션 이벤트를 예측하는 것을 포함한다. 전술한 바와 같이, 방법(400)은 예컨대, 컴퓨팅 디바이스(200)와 같은 컴퓨팅 디바이스에 의해서 수행될 수 있다. 특히, 방법(400)은 프로세서 상에서 실행되는 네비게이션 예측 모듈(예컨대, 네비게이션 예측 모듈 208)에 의해서 수행될 수도 있다.
단계 402에서, 컴퓨팅 디바이스(200)는 사용자 네비게이션 히스토리를 추적한다. 예를 들어, 컴퓨팅 디바이스(200)는 사용자에 의해서 방문된 웹 페이지들에 대한 기록들(예컨대, 웹 브라우저들 내에 통상적으로 보존되는 브라우징 히스토리)을 저장할 수 있다. 브라우징 히스토리는 사용자에 의해서 방문된 웹 페이지들의 URL들, URL들이 방문된 순서, 및 사용자가 URL을 선택한 방식(예컨대, 상기 URL이 클릭된 하이퍼링크였는지, 주소창에 타이핑된 것이였는지, 다른 웹 페이지로부터의 리다이렉트 동작(redirect operation)인지, 기타 등등)을 포함할 수 있다.
단계 404에서, 컴퓨팅 디바이스(200)는 사용자 네비게이션 히스토리에 기초하여 가장 가능성 있는 네비게이션 이벤트 혹은 이벤트들을 결정한다. 상기 사용자에 대해서 전세계적으로 가장 많이 방문된 페이지들을 식별함으로써 가장 가능성 있는 네비게이션 이벤트들이 결정될 수도 있으며, 혹은 상기 네비게이션 이벤트들은 하나 이상의 현재 기준(current criteria)에 관련될 수도 있다. 예를 들어, 컴퓨팅 디바이스(200)는, 사용자가 특정한 뉴스 웹 페이지를 보고 있는 경우, 사용자는 거의 항상 그 페이지 상의 탑 뉴스 스토리에 대한 링크를 선택한다는 점을 결정하거나 혹은 사용자가 아침에 브라우저를 처음 오픈하는 경우, 일일 잔고(daily balance)를 체크하기 위하여 사용자의 은행 계좌 페이지로 네비게이트할 가능성이 있다는 점을 결정하기 위하여, 사용자의 네비게이션 히스토리를 검사할 수도 있다. 컴퓨팅 디바이스(200)는 사용자 히스토리로부터 가장 가능성 있는 네비게이션 이벤트를 결정하기 위하여, 다양한 규칙들, 경험적 지식들(heuristics), 및 필터들을 채용할 수 있다. 컴퓨팅 디바이스(200)는 각각의 네비게이션 이벤트를 특정한 신뢰도 값과 연관시킬 수 있는데, 상기 신뢰도 값은 사용자가 각각의 네비게이션 이벤트를 선택할 가능성을 나타낸다. 이들 신뢰도 값들은 가장 가능성 있는 네비게이션 이벤트를 결정하기 위하여, 네비게이션 이벤트들을 쏘팅(sort)하는데 이용될 수 있다. 주어진 네비게이션 이벤트에 대한 신뢰도 값을 결정하는 방법은 다음에 설명된다(도5 참조).
단계 406에서, 컴퓨팅 디바이스(200)는 가장 가능성 있는 네비게이션 이벤트를 예측된 네비게이션 이벤트로서 보고한다. 예를 들어, 이들 예측된 가장 가능성 있는 네비게이션 이벤트는 전술한 방법(도3 참조)에 의해서 채용되어, 가장 가능성 있는 네비게이션 이벤트에 관련된 웹 페이지들에 대한 프리렌더링을 용이하게 할 수 있다.
도5는 본 발명의 일 양상에 따라 클라이언트 네비게이션 히스토리를 이용하여 URL에 대한 신뢰도 값을 계산하기 위한 예시적인 방법(500)을 도시한 순서도이다. 상기 방법(500)은 사용자에 의해 입력된 네비게이션 이벤트들을 추적하고 그리고 저장된 각각의 이벤트에 대한 빈도 값을 보유하는 것을 포함한다. 상기 방법(500)은, 방법(400)에 의해서 이용되고 그리고 클라이언트 네비게이션 히스토리(212)로서 컴퓨팅 디바이스(200) 상에 저장되는, 클라이언트 네비게이션 히스토리를 만들기 위해 채용될 수 있다.
단계 502에서, 컴퓨팅 디바이스(200)는 특정 URL에 대한 선택을 추적한다. 예를 들어, 사용자는 새로운 사이트에 대한 URL을 브라우저에 타이핑할 수도 있으며 혹은 페이지 상의 링크를 클릭할 수도 있다. 컴퓨팅 디바이스(200)는, 플러그-인(plug-in) 혹은 툴바와 같은 브라우저 확장기능(browser extension)을 통해, 또는 브라우저와 함께 실행되는 제 3의 어플리케이션을 통해, 브라우저(206)에 구비된 기능들을 이용하여 네비게이션 이벤트들을 모니터링할 수 있다.
단계 504에서, 컴퓨팅 디바이스(200)는 단계 502에서 선택된 URL에 관련된 빈도 값을 증분시킨다. 예를 들어, 컴퓨팅 디바이스(200)는 사용자에 의해서 선택된 각각의 URL에 관련된 빈도 값을 추적할 수 있다. 빈도 값은, 특정 웹 사이트에 대한 다수의 방문들(visits)을 순위정렬(rank)하거나 혹은 특정 네비게이션 이벤트가 선택된 개수를 순위정렬하는데 이용되는 데이터 메트릭(data metric)이다. 선택된 동작에 응답하여, 컴퓨팅 디바이스(200)는 URL에 관련된 빈도 값을 증분시킬 수 있는바, 예컨대, 1.0, 5.0, 10.0, 0.5 혹은 임의의 다른 값만큼 증분시킬 수 있다. URL에 관련된 빈도 값은, 특정 URL을 사용자가 얼마나 자주 선택했는지를 나타내며, 따라서 미래에 사용자가 상기 URL을 선택할 가능성이 얼마인지를 나타내는 표시자이다.
단계 506에서, 컴퓨팅 디바이스(200)는 주어진 "스윕 기간(sweep interval)" 이후에 URL들에 대해서 저장된 빈도 값들을 시간 감쇠시킨다(time decay). URL 빈도 값들을 이러한 방식으로 감쇠시키는 것은, 과거의 브라우징 습관들에 비하여 현재의 브라우징 습관들에게 더 많은 가중치들이 부여될 수 있게 한다. 하나의 예로서, 컴퓨팅 디바이스(200)는 매 30초 마다, 매 1분 마다, 매 5분 마다 스윕을 실행할 수 있으며, 이 동안 사용자는 적어도 하나의 URL을 선택한다. 스윕 기간은, 특정 스윕 기간 동안 적어도 하나의 URL을 선택하는 것에 응답하여 시행될 수도 있는데, 이러한 점은, 사용자가 비활성인 기간 동안에 네비게이션 히스토리 값들이 임계값 아래로 감쇠되지 않음을 보장한다. 상기 스윕은 URL에 관련된 저장된 빈도 값을 특정 값(가령, 0.99, 0.5, 혹은 1.0) 만큼 감쇠시킬 수 있으며, 혹은 특정 퍼센트 값(가령, 5%, 10% 혹은 50%) 만큼 감쇠시킬 수도 있다. URL에 관련된 값이 소정의 임계값(예컨대, 0.3, 1.0, 혹은 5.0) 아래로 내려가면, 가능성 있는 네비게이션 목적지들의 리스트로부터 상기 URL이 제거될 수 있는데, 이는 상기 리스트가 너무 거대해지는 것을 방지하기 위한 것이다. 감쇠 프로세스를 시행한 이후, URL들에 대한 빈도 값들은 컴퓨팅 디바이스(200) 상의 로컬 저장소에 존속될 수도 있으며 혹은 서버(104)에 의해서 제공되는 것과 같은 원격 저장소로 전송될 수도 있다.
단계 508에서, 저장된 빈도 값들은, 사용자가 특정 웹 사이트들을 방문하는 상대적 빈도(relative frequency)를 결정하는데 이용될 수 있다. 따라서, 빈도 값은 기준을 제공하며, 각각의 웹 사이트에 도달하게 되는 네비게이션 이벤트에 관련된 신뢰도 값이 상기 기준으로부터 유도될 수 있다. 일부 양상들에서는, 빈도 값 그 자체가 신뢰도 값으로 제공될 수도 있다. 일부 양상들에서는, 특정 웹 페이지에 대한 빈도 값과 전체 사용자 네비게이션 히스토리를 비교함으로써, 신뢰도 값이 결정된다. 예를 들어, 더 높은 빈도 값을 갖는 네비게이션 이벤트는 특정 퍼센트의 신뢰도 값에 관련될 수 있으며, 2번째로 높은 빈도 값은 더 낮은 퍼센트에 관련될 수 있다(기타 등등). 일부 양상들에서, 신뢰도 값은 로깅된 네비게이션 이벤트들의 전체 개수에 의해서 빈도 값에 의해서 결정된다. 예를 들어, 신뢰도 값을 결정하기 위하여, 특정 URL의 빈도 값을 모든 빈도 값들의 합계로 나눌 수 있다.
예를 들어, 사용자는 주택을 구매하고자 할 수 있으며 따라서, 사용자는 주택담보대출의 금리(mortgage rate)를 알아보기 위하여 재정 및 금융 웹 사이트들을 주기적으로 체크할 수 있다. 이러한 시간 동안, 이들 재정 및 금융 웹 사이트들은 높은 값들을 가지게 될 것이며 따라서 프리렌더링될 가능성이 더 많아지며, 결과적으로 주택담보대출의 금리를 검색하는 동안 사용자 경험을 향상시킬 수 있다. 주택을 구매하는 절차가 종료된 이후, 사용자는 매일매일의 금리 변동에 관심을 가지지 않게 될 것이며 따라서, 이들 웹 사이트들을 프리렌더링하는 것은 더 이상 바람직하지 않는바, 왜냐하면 사용자가 이들 웹 사이트들을 방문하지 않을 것이기 때문이다. 이와 같이, 시간 감쇠 값을 제공하는 것은, 이들 사이트들이 시간이 지남에 따라 상기 리스트에서 사라지게 한다.
도6은 본 발명의 일 양상에 따라 총합(aggregate) 네비게이션 히스토리에 기초하여 네비게이션 이벤트를 예측하기 위한 예시적인 방법(600)을 도시한 순서도이다. 상기 방법(600)은 가능성 있는 네비게이션 패턴들을 결정하기 위하여, 사용자들에 의해서 자발적으로 제출된 네비게이션 이벤트들을 추적하는 것을 포함한다. 이러한 네비게이션 패턴들은 가령, 서버(104)에 의해서 분석되며, 그리고 사용자에게 제공되어 브라우징 프로세스 동안 네비게이션 이벤트 예측을 용이하게 한다. 예를 들어, 사용자가 다른 페이지들로 브라우징함에 따라, 서버(가령, 서버 104)는 컴퓨팅 디바이스(가령, 컴퓨팅 디바이스 200)에게 업데이트들을 전송할 수 있는바, 이는 총합 네비게이션 히스토리에 기초하여, 주어진 페이지 상에 디스플레이된 링크 중 어떤 것이 가장 선택될 가능성이 많은지에 관한 정보를 제공하기 위한 것이다.
단계 602에서, 서버는 브라우징 히스토리를 포함하는 네비게이션 정보의 세트를 수신한다. 상기 네비게이션 정보는 "옵트-인/아웃(opt-in/out)" 방법을 이용하여 제공되는 것이 바람직한바, 여기서 사용자는 사용자의 브라우징 히스토리의 요소들을 서버(104)에 제공하는 보고 기능(reporting functionality)을 구체적으로(specifically) 인에이블(혹은 디스에이블)한다. 또한, 개인을 식별할 수 있는 정보는, 개인을 식별할 수 있는 정보가 저장되거나 이용되기 전에 익명화 및 취합될 수 있으며 따라서 그 어떤 개인적인 정보도 저장 혹은 액세스될 수 없다. 브라우징 히스토리는, 사용자의 브라우징 히스토리를 추적하는 사용자 컴퓨팅 디바이스 상에 설치된 브라우저 플러그-인 혹은 툴바를 통하여 추적되거나 서버(104)에 제공될 수 있으며 혹은 웹 브라우저 그 자체에 의해서 수행될 수도 있다. 상기 브라우징 히스토리는 수신된 다른 브라우징 히스토리들과 조합되어 총합 데이터의 세트를 생성할 수도 있는데, 이러한 총합 데이터의 세트는 가능성 있는 네비게이션 이벤트를 예측하기 위하여 도4에 관하여 서술된 클라이언트 네비게이션 히스토리와 유사한 방식으로 이용된다. 수신된 네비게이션 히스토리는 개인을 식별할 수 있는 정보를 제거하도록 익명화될 수도 있다. 일부 양상들에서, 상기 수신된 네비게이션 히스토리는, 개별 URL들 및/또는 천이(transitional) URL 쌍들이 해시된 데이터 포맷(hashed data format)으로 제공되는 상태로 수신되는바, 따라서 서버(104)로 전송하기 전에 개인을 식별할 수 있는 임의의 데이터를 제거할 수 있다.
단계 604에서, 서버(104)는 단계 602에서 수신된 네비게이션 정보에 기초하여, 특정 웹 페이지 상의 각각의 URL에 대한 신뢰도 값을 결정한다. 예를 들어, 서버는 페이지 상의 URL들에 대한 신뢰도 값들을 생성하기 위하여, 도5에 관하여 앞서 설명된 것과 유사한 방법을 채용할 수도 있다(특정한 사용자 데이터 대신에 총합된 데이터에 기초하여 네비게이션 이벤트들이 결정된다는 점을 제외하면). 앞서와 같이, 서버(104)는 네비게이션 정보로부터 도출된 빈도 값들에 기초하여 신뢰도 값들을 계산할 수 있다. 일부 양상들에서, 신뢰도 값들은, 특정 네비게이션 이벤트를 선택하기 위한 초이스가 사용자들에게 제시된 때에 사용자들이 특정 네비게이션 이벤트를 선택한 시간의 퍼센티지에 의해서 결정된다. 천이(transitional) URL 쌍들은, 소스/목적지 URL 쌍의 빈도 값을 소스 URL이 출현한 총 개수로 나눔으로써, 신뢰도 값의 결정을 제공한다. 일부 양상들에서, 순수한 방문 빈도 메트릭(pure visit frequency metric)으로부터가 아니라, 제 1 페이지에서 제 2 페이지로의 천이(transition)에 기초하여 서버는 네비게이션 이벤트들을 결정할 수도 있다. 서버(104)는 웹 페이지들 및 관련 URL들의 인덱스와 웹 페이지 상의 각각의 링크에 대한 신뢰도 값들을 예컨대, 데이터베이스에 보유할 수도 있다. 예를 들어, 뉴스 사이트는 서로 다른 뉴스 스토리들을 가리키는 5개의 URL들을 가질 수 있다. 서버(104)는 5개의 뉴스 스토리들 중 하나의 뉴스 스토리는 60%의 시간으로 선택되고 나머지 4개의 뉴스 스토리들 각각은 10%의 시간으로 선택됨을 나타내는 총합 데이터를 수신할 수도 있다. 이와 같이, 서버(104)는 상기 제 1 스토리 링크에 대해서는 60%의 가능성(likelihood)을 가지며 그리고 다른 4개의 스토리 링크들 각각에 대해서는 10%의 가능성을 갖는다고 상기 페이지를 데이터베이스에 인덱싱할 수 있다.
일부 양상들에서, 서버(104)는 히스토리 데이터를 비밀 방식(confidential manner)으로 보유할 수도 있는바, 가령 단계 606에서 각각의 URL을 해시 값으로 변환할 수 있다. 이러한 방식으로, 서버(104)는 임의의 개인적인 사용자 데이터를 노출함이 없이, 예측된 URL 데이터를 클라이언트 디바이스에게 제공할 수 있다. 예를 들어, 사용자는 특별한 사용자 이름과 패스워드 로그인(login)을 갖는 뱅킹 웹 페이지를 방문할 수 있다. 사용자에 따라, 상기 뱅킹 웹 페이지는 사용자가 소유한 각각의 계좌에 대한 URL들을 제공할 수 있다. 상기 페이지에 액세스하는 각각의 사용자에게는, 사용자가 그 은행에 갖고 있는 계좌들에 따라, 서로 다른 세트의 링크들이 제공될 수 있다. 페이지 상의 상기 링크들을 비-가역적인(non-reversible) 해시 값들로 변환함으로써, 서버(104)는, 사용자가 또한 동일한 링크들에 대한 액세스를 소유하지 않는다면 그 페이지 상의 링크들에 관련될 수 없는, 신뢰도 값들을 제공할 수 있다(예컨대, 클라이언트는 현재 보여지고 있는 페이지 상에서 이들이 이미 소유하고 있는 링크들에 대해 해시 함수를 적용할 수 있는데, 이는 신뢰도 값들이 적용되는지를 결정하기 위한 것이다). 전술한 바와 같이, 일부 양상들에서는, 네비게이션 히스토리 데이터를 서버(104)로 전송하기 전에 컴퓨팅 디바이스(200)에 의해서 해시 값이 계산된다. 이러한 방식으로, 서버(104)는 해시 값을 계산할 필요 없이, 해시된 포맷의네비게이션 히스토리 데이터를 수신할 수 있다.
단계 608에서, 서버(104)는 해시 값들 및 해시 값들에 관련된 신뢰도 값들을 클라이언트 디바이스(가령, 컴퓨팅 디바이스 200)로 전송한다. 이러한 전송은, 특정 URL에 대한 컴퓨팅 디바이스(200)로부터의 요청에 응답한 것일 수도 있다. 일부 양상들에서, 서버(104)는 해시 값들 및 신뢰도 값들을 전송할 수 있는바, 클라이언트 디바이스(200) 상에서 실행되는 서비스로부터의 이러한 값들에 대한 요청에 응답하여, 해시 값들 및 신뢰도 값들을 전송할 수 있다. 예를 들어, 컴퓨팅 디바이스(200)가 전술한 뉴스 웹 페이지를 요청하는 경우, 서버(104)는 그 페이지 상에 존재하는 5개의 스토리 링크들에 대한 해시 값들 및 신뢰도 값들을 제공한다. 컴퓨팅 디바이스(200)는 또한, 클라이언트 측에서 해시 값을 먼저 생성하고 이후 서버(104)로부터 특정한 해시 값에 대한 신뢰도 값을 요청함으로써, 특정한 링크 해시 값들에 대한 데이터를 요청할 수 있다.
도7은 본 발명의 일 양상에 따라 총합 네비게이션 히스토리를 이용하여 URL에 관련된 네비게이션 히스토리에 대한 신뢰도 값을 계산하기 위한 방법(700)의 일례를 도시한 순서도이다. 상기 방법(700)은 복수의 사용자들로부터 수신된 주어진 URL로부터의 네비게이션 이벤트들을 비교하는 역할을 수행하며, 이는 각각의 개별 네비게이션 이벤트가 존재할 가능성이 얼마인지를 결정하기 위한 것이다. 신뢰도 값들은, 사용자가 현재 보고 있는 페이지에 따라 각각의 URL에 대한 서로 다른 신뢰도 값들을 가진, 특정한 "소스" 웹 페이지에 관하여 결정될 수도 있다. 예를 들어, 신뢰도 값들은 방법(600)(도6 참조)의 단계 604에 관하여 서술된 바와 같이 이용될 수도 있다.
단계 702에서, 서버(104)는 수신된 브라우징 히스토리들을 검사하며 그리고 특정 URL에 관련된 각각의 네비게이션 이벤트에 대한 인스턴스들(instances)의 개수를 계산한다. 전술한 바와 같이, 인스턴스 값은 백분율(percentagw)이 될 수도 있으며 혹은 가공되지 않은 숫자(raw number)가 될 수도 있다.
단계 704에서, 서버(104)는 URL에 대한 방문 횟수가, 통계학적으로 유의미한(statistical significance) 최소 임계값을 초과했는지를 판별할 수 있다. 예를 들어, 특정 URL에 대한 5번의 방문은, URL로부터 가능성 있는 네비게이션 이벤트를 합당하게 예측할 정도로 충분한 통계학적으로 유의미한 데이터를 제공하지 못할 수도 있다. 예를 들어, 만일 상기 이벤트의 인스턴스들의 개수가 1000 미만이라면, 서버(104)는 단계 710으로 진행할 수 있으며, 그리고 상기 이벤트에 대한 확률을 계산하지 않을 수도 있다(샘플 사이즈가 충분하지 않기 때문에).
단계 706에서, 통계학적으로 유의미한 데이터를 제공하기 위하여, 서버(104)는, 최소 숫자의 사용자들이 상기 URL에 대한 데이터를 제출했는지를 판별할 수 있다. 예를 들어, 네비게이션 이벤트에 대한 신뢰도 값을 계산 및 저장하기 위하여, 상기 방법(700)은 적어도 50명의 사용자들이 데이터를 제공했음을 요구할 수도 있다. 만일 그렇지 않다면, 상기 방법(700)은 단계 710으로 진행할 수 있으며 그리고 충분한 수의 사용자들이 데이터를 제공할 때까지 상기 이벤트를 무시할 수 있다. 앞서와 같이, 상기 임계값은 데이터세트의 사이즈에 따라 변동될 수 있다.
단계 708에서, 서버(104)는 최근 인스턴스들의 윈도우 사이즈를 결정한다. 윈도우 사이즈는 URL에 대한 가장 최근의 방문들의 횟수(신뢰도 값을 결정하기 위하여 검사될 예정인)를 지칭하거나, 혹은 인스턴스들을 통해 다시 검색하기 위한 시간의 길이(a length of time to search back through the instances)를 지칭한다. 윈도우 사이즈는 URL이 수신하는 트래픽의 양에 기초하여, URL의 컨텐트가 얼마나 자주 변하는지에 기초하여 판별될 수 있다. 예를 들면, 끊임없이 변화하는 컨텐트를 갖는 뉴스 웹사이트는 작은 인스턴스 윈도우를 요구할 수 있는데, 왜냐하면 정기적으로 변화하는 URL로부터의 링크들은 오래됐기(grow stale) 때문이다. 소량의 트래픽을 갖는 웹사이트는, 통계적으로 유의미해지도록 충분한 결과들을 모으기 위하여, 더 긴 윈도우 사이즈를 요구하는 것이 전형적이다. 윈도우 사이즈는, 마지막 시간 동안의(within the last hour), 마지막 날 동안의(within the last day), 마지막 주 동안의(within the last hourweek) 50개 인스턴스들, 100개 인스턴스들, 1000개 인스턴스들, 모든 인스턴스들 기타 등등으로 설정될 수도 있다.
단계 712에서, 서버(104)는, 특정한 각각의 네비게이션 이벤트(가령, 현재 URL에 대해서 방문된 다음 URL)가, 단계 710에서 결정된 윈도우 사이즈에 의해서 정의되는 인스턴스들 내에서 발생한 횟수를 계산한다. 예를 들어, 뉴스 웹사이트에 대한 1000개의 방문들 중에서 특정 기사가 600번 선택될 수 있으며, 결과적으로 URL로부터 그 기사로 네비게이팅한 것에 대한 60%의 신뢰도 값이 얻어진다. 비록, 본 실시예는 전체 네비게이션 이벤트들의 백분율로서 액세스 횟수에 기초하여 네비게이션 이벤트를 결정하는 것을 주로 서술하고 있지만, 추가의 경험적 지식들(heuristics)이 또한 이용되어 사용자에 의해서 제공되는 정보에 기초하여 가능성 있는 이벤트를 도출할 수 있는바, 가령, 과거의 네비게이션 이벤트(예컨대, 현재 분석된 URL로 이르게 된 웹사이트), 하루중 시간대(the time of day)((예컨대, 사용자들은 직장에 도착한 때보다 아침에 뉴스 사이트들을 체크할 가능성이 더 많다), 사용자의 위치(예컨대, 특정한 지리적 영역에 있는 사용자들은 그 지역 팀의 스포츠 스코어를 체크할 가능성이 많다) 혹은 다른 인구통계학적 정보(demographic information) 등과 같은, 사용자에 의해서 제공되는 정보에 기초하여 가능성 있는 이벤트를 도출할 수 있다.
단계 714에서, 선택적으로는(optionally), 서버(104)는 URL로부터의 네비게이션 이벤트들에 대한 신뢰도 값들을 임계값과 비교할 수 있다. 만일, 신뢰도 값들이 임계값을 충족시키지 못한다면, 서버(104)는 이용가능한 네비게이션 이벤트들의 서브세트를, 가능한 예측된 가능성 있는 네비게이션 이벤트들로서 식별할 수도 있다. 이러한 방식으로, 서버(104)는 상기 이벤트가 통계학적으로 유의미한 발생 가능성을 갖지 않는 경우 네비게이션 이벤트들을 예측하는 것을 회피할 수 있으며, 따라서, 방문될 것 같지 않은 페이지들 상의 프리렌더 동작에 대한 대역폭을 절약할 수 있다. 임계값은 가령, 5%, 25%, 50%, 혹은 75% 등의 서로 다른 다양한 값들로 설정될 수 있다. 일부 양상들에서, 임계값은, URL에 존재하는 네비게이션 링크들의 개수, URL의 트래픽, URL의 유형, URL에서 컨텐트가 변화하는 속도, 기타 등등에 기초하여, 다이내믹하게 변경될 수 있다. 만일, 신뢰도 값들이 최소 임계값을 충족하지 못한다면, 서버(104)는 최소 임계값을 충족하지 못하는 잠재 이벤트들을 필터링할 수 있다.
만일, 네비게이션 이벤트 혹은 이벤트들이 최소 임계값을 충족한다면, 혹은 상기 방법(700)이 최소 임계값을 체크하지 않는다면, 가장 가능성 있는 네비게이션 이벤트 혹은 이벤트들 및 각각의 이벤트에 대한 가능성(likelihood)이 URL과 함께 저장된다(단계 716). 네비게이션 이벤트들과 신뢰도 값들은 가령, 도6과 관련하여 설명된 단계 608에서 발생하는 것과 같은 사용자에 대한 요청에 응답하여 공급될 수 있다. URL에 관련된 네비게이션 이벤트들에 대한 신뢰도 값들을 계산 및 저장한 이후에 상기 방법(700)이 종료된다.
도8a는 본 발명의 양상들에 따라 링크 데이터를 익명으로 관리하기 위한 해시 값들을 이용하는 총합 네비게이션 히스토리에 기초하여 네비게이션 이벤트를 예측하기 위한 방법(800)의 일례를 도시한 순서도이다. 방법(800)은 로직을 제공하는바, 상기 로직에 의해서 컴퓨팅 디바이스(200)는 가령, 도7에서 설명된 방법(700)에 의해서 생성된 데이터 등과 같은 서버(104)로부터 수신된 데이터에 기초하여 네비게이션 이벤트를 예측할 수 있다.
단계 802에서, 컴퓨팅 디바이스(200)는 원격 서버(104)로부터 데이터의 세트를 수신하며, 데이터의 상기 세트는 웹 페이지의 총합 브라우징 히스토리에 관련된 정보를 포함한다. 이러한 총합 데이터는, 특정 웹 페이지로 네비게이팅한 것에 대응하여 컴퓨팅 디바이스(200)에 의해서 행해진 요청에 응답하여 수신될 수도 있다. 총합 데이터는 원격 서버에 의해서 수신된 복수의 사용자들로부터의 데이터의 모음(collection)을 나타낼 수 있다. 예를 들어, 웹 브라우저 플러그-인(plug-in)은, 사용자들의 익명화된 네비게이션 히스토리를 원격 서버로 전송할 수 있는 기능을 사용자가 옵트-인/아웃하는 것을 허용할 수 있다. 이후, 원격 서버는 가령, 전술한 바와 같이(도7 참조) 총합 네비게이션 히스토리로 저장되는 네비게이션 히스토리들을 복수의 사용자들로부터 수집할 수 있다. 예를 들어, 네비게이션 예측 모듈(208)은, 사용자가 웹 페이지로 네이게이트할 때마다, 그 웹 페이지에 관련된 총합 브라우징 데이터에 대한 요청을 서버(104)에 생성할 수 있다. 네비게이션 예측 모듈(208)은 수신된 데이터를 이용하여, 가능성 있는 다음 네비게이션 이벤트를 예측할 수 있는바, 따라서 브라우징 경험을 개선하기 위하여 프리렌더링할 다음 페이지를 프리렌더 모듈에게 공급할 수 있다.
데이터의 총합 성질(aggregate nature)로 인하여, 데이터는 사적인 사용자 정보를 보호하기 위한 일련의 해시 값들로서 제공될 수 있는바, 이는 도6과 관련하여 설명된 바와 같다. 이와 같이, 컴퓨팅 디바이스(200)는 수신된 해시 값들 및 신뢰도 값들과 현재 URL 상에 존재하는 링크들을 연관시킨다. 이러한 프로세스를 시작하기 위하여, 단계 804에서, 컴퓨팅 디바이스는, 링크 데이터를 익명화하기 위하여 서버(104)에 의해서 이용된 해시 함수와 동일한 해시 함수를 이용하여, 현재 페이지 상의 각각의 링크에 대한 해시 값을 계산한다. 전술한 바와 같이, 일부 양상들에서는, 네비게이션 히스토리 데이터를 서버로 전송하기 전에, 컴퓨팅 디바이스 상에서 상기 해시 값이 계산된다. 이러한 경우, 해시 값은, 네비게이션 이벤트가 서버로 전송되기 전에 컴퓨팅 디바이스에 의해서 결정된 원래(original) 계산된 값에 매칭될 수 있다(서버 상에서 계산된 값에 매칭되는 것이 아니라).
단계 806에서, 컴퓨팅 디바이스(200)는 계산된 해시 값들과 서버(104)로부터 수신된 해시 값들을 비교한다. 이러한 방식으로, 컴퓨팅 디바이스(200)는 서버(104)로부터 수신된 신뢰도 값들 및 해시 값들과 현재 보여지고 있는 웹 페이지 상에서 사용자가 선택할 수 있는 이용가능한 링크들을 매칭시킬 수 있다. 신뢰도 값들은 해시 값에 관련된 특정한 네비게이션 이벤트가 선택될 가능성을 나타낸다. 따라서, 컴퓨팅 디바이스(200)는 현재 보여질 수 있는 링크들과 수신된 신뢰도 값들을 매핑시킬 수 있다.
단계 808에서, 컴퓨팅 디바이스(200)는 가장 높은 신뢰도 값 혹은 값들을 가진 링크 혹은 링크들을, 예측된 다음 네비게이션 이벤트로 식별한다. 다음 네비게이션 이벤트를 예측한 이후에 상기 방법(800)이 종료된다.
도8b는 본 발명의 양상들에 따라 네비게이션 히스토리에 기초하여 사용자 네비게이션 이벤트를 예측하기 위한 방법을 채용한 웹 브라우저의 예시적인 인터페이스(810)를 도시한다. 도8b에는 웹 사이트와 네비게이션 히스토리 데이터(812)의 세트를 디스플레이하고 있는 웹 브라우저 인터페이스(810)가 도시되어 있다. 웹 페이지(810)는 하나 이상의 링크들(814, 816, 818, 820)을 포함한다. 이들 링크들(814, 816, 818, 820)은, 사용자에 의해서 선택되는 때에 선택된 링크에 관련된 컨텐트의 세트를 웹 브라우저로 하여금 디스플레이하게 하는 URL들이 될 수 있다.
네비게이션 히스토리 데이터(812)는 링크들(814, 816, 818)에 관련된 데이터를 포함하며, 그리고 다른 2개의 링크들 즉, 링크 E 및 링크 F는 사용자가 현재 보고 있는 페이지에는 제시되지 않는다. 네비게이션 히스토리 데이터(812)는, 개별 사용자의 네비게이션 히스토리(도4-5, 9-11 참조) 혹은 총합 네비게이션 히스토리(도6-11 참조)에 대한 분석을 나타낼 수 있다. 네비게이션 히스토리 데이터(812)는 링크들(814, 816, 818)에 대한 정보 및 각각의 링크에 관련된 신뢰도 값을 포함한다.
네비게이션 히스토리(812)는 다음 네비게이션 이벤트를 예측하기 위하여, 컴퓨팅 디바이스(200)의 다른 양상들(가령, 네비게이션 예측 모듈 208)에 의해서 이용될 수도 있다. 예를 들면, 본 실시예의 네비게이션 히스토리(812)에 따르면, 링크 A(814)를 사용자가 선택할 확률이 30% 이고, 링크 B(816)를 사용자가 선택할 확률이 60% 이며, 그리고 링크 C(818)를 사용자가 선택할 확률이 5% 이다. 링크 D(820)는 임의의 관련 데이터도 네비게이션 히스토리(812)에 저장되지 않는다. 링크 D(820)에 대한 데이터의 부재(lack)는, 가령, 링크 D(820)를 선택할 확률이 임계값 보다 작음 혹은, 링크 D(820)에 대해서는 데이터가 제출되지 않았음, 기타 등등의 다양한 방식으로 설명될 수 있다. 또한, 네비게이션 히스토리(812)는 제시되지 않은 2개의 링크들 즉, 링크 E 및 링크 F를 선택할 확률이 0이 아님을 디스플레이한다. 이들 링크들은 업데이트시 웹 페이지로부터 제거될 수도 있으며, 혹은 이들 링크들은 모든 사용자들(가령, 상기 페이지에 현재 액세스하는 사용자들)에게 보이지 않을 수도 있다. 본 발명의 양상들에 따르면, 네비게이션 예측 모듈(208)은 링크 B(816)를 예측된 다음 네비게이션 이벤트로 식별하는바, 왜냐하면 링크 B(816)의 신뢰도 값이 링크 A(814) 및 링크 C(818)에 대한 값들 보다 크기 때문이다.
도9는 네비게이션 이벤트들을 저장하기 위한 방향성 그래프(directed graph)의 일례를 예시한다. 이러한 그래프는 전술한 바와 같은(도2 참조) 클라이언트 네비게이션 히스토리(212)의 가능한 하나의 구현예를 보여준다. 도9에 도시된 그래프는 그래프 내의 버텍스(vertex)로서 각각의 네비게이션 이벤트(예컨대, 웹 사이트 URL)에 대한 참조(reference)를 제공하는바, 여기서 에지들은 소스 어드레스로부터 목적지 네비게이션 이벤트로의 방문 횟수에 의해서 가중화된다. 새로운 네비게이션 이벤트들이 발생하면, 버텍스들이 그래프에 추가되고, 에지 가중치들이 업데이트되며, 그리고 새로운 에지들이 생성된다.
상기 방향성 그래프는 특정 사용자, 사용자들의 특정 그룹 혹은 서브세트, 또는 총합 내의 모든 사용자들에 관련될 수 있으며, 혹은 미래의 네비게이션 이벤트들을 예측하는데 적합한 임의의 다른 디비전(division)에 관련될 수 있다. 클라이언트 네비게이션 히스토리들 및 총합 네비게이션 히스토리들(도2, 4-8A 참조)에 관하여 서술된 바와 같이, 상기 방향성 그래프는 로컬적으로 혹은 원격으로 저장될 수 있다. 전술한 바와 같이, 원격으로 보유되는 네비게이션 히스토리들은 옵트-인 방식으로 보유될 수 있는바, 옵트-인 방식에서는 네비게이션 이벤트를 예측하는데 이용되기 위하여 사용자들의 네비게이션 히스토리가 저장되는 것을 사용자들이 명시적으로 허가할 것이 요구된다. 이러한 방식으로 보유되는 데이터는 사용자의 프라이버시를 보호하기 위하여, 익명화 및 몰개성화(depersonalized)될 수 있다.
비록, 도시된 상기 그래프는 네비게이션 어드레스들의 쌍들 사이의 관련성들을 보여주고 있지만, 상기 키(key)는 마지막 "n"번 방문된 네비게이션 이벤트들이며 그리고 상기 값은 목적지 어드레스들과 카운트들의 쌍들의 어레이인 맵으로부터, 고차원 그래프들(higher order graphs)이 제작될 수도 있다. 예를 들면, 1 차원 모델은 제 1 목적지를 예측하기 위하여 단일 어드레스 쌍 천이(single address pair transition)(예컨대, 어드레스 A --→ 어드레스 B)를 도시할 수도 있는 반면에, 2 차원 모델은 소스 어드레스들의 쌍을 이용하여 키잉(keyed)될 수 있으며, 그리고 목적지로서 제 3의 어드레스를 예측할 수 있다(예컨대, 사용자가 어드레스 A에서 시작하여, 어드레스 B로 네비게이트하는 경우, 가능성 있는 다음 이벤트는 무엇인가?). 가능성 있는 네비게이션 이벤트를 결정하기 위하여 점점 더 긴 네비게이션 히스토리들이 검사되는 경우, 고차원 모델들도 또한 가능하다. 본 실시예에서, 도9에 도시된 방향성 그래프는 2 부분(two part) 네비게이션 히스토리(예컨대, "n" 은 2 이다)에 관련되며, 여기서 이전에 본 사이트는 "URL F" 이고 그리고 현재 사이트는 그래프 내의 소스 버텍스(예컨대, URL A, B, C, D, 혹은 E)이다.
더 긴 네비게이션 히스토리들을 검사하는 것(예컨대, "n" 이라는 더 큰 수의 이전 이벤트들이 검사됨)은, 사용자 거동(user behavior)을 더 많이 증명하는 것이 될 수 있는바, 이는 과거의 관찰들(past observations)을 현재의 조건들(current conditions)에 더욱 가깝게 매칭시킬 수 있기 때문이다. 이와 같이, 네비게이션 예측 동작들은 검사되는 히스토리의 길이에 의해서 가중치가 부여될 수도 있다. 또한, 예측 동작들은 최소 숫자의 발생들(occurrences)을 요구할 수도 있으며, 혹은 단일 인스턴스를 갖는 긴 네비게이션 히스토리가 굉장히 많은 데이터 카운트를 갖는 더 짧은 히스토리를 무시하는 것(override)을 방지하기 위하여 상기 예측 동작들은 발생 횟수에 의해서 가중치가 부여될 수도 있다.
또한, 예측 동작들은 최근 네비게이션 히스토리의 서브세트를 이용하여수행될 수도 있다. 예를 들어, 과거에 본 페이지들 A, B 및 C의 세트는 소정의 네비게이션 패턴(예컨대, 사용자는 A, B, 및 C 페이지를 임의의 특정 순서로 방문한 이후에, 사이트 D를 방문하는 경향이 있음)을 나타낼 수도 있다. 따라서, 사이트들 A, E, F, C, G, B (이 순서대로)를 방문한 사용자는 이전에 보여진 페이지들 A, B, 및 C의 "헐거운(loose)" 세트에 관련된 정보를 이용할 수 있는바, A, B, 및 C 각각이 가장 최근의 네비게이션 히스토리에 존재하기 때문이며, 이는 추가 사이트들이 그 사이에서 액세스되는 것을 허용하거나 혹은 네비게이션 순서의 변형을 허용한다. 방향성 그래프를 이용하여 가능성 있는 네비게이션 이벤트를 예측하기 위한 예시적인 방법이 다음에 설명된다(도11 참조).
도10은 본 발명의 양상들에 따라 방향성 그래프를 제작하기 위한 예시적인 방법(1000)을 도시한다. 네비게이션 이벤트들이 발생하면, 네비게이션 예측 동작들에서 이용되도록 이들 네비게이션 이벤트들이 방향성 그래프에 부가된다. 그래프의 버텍스들 사이의 연결들(예컨대, 웹 사이트 어드레스들)은, 소스 버텍스(예를 들면, 소스 웹사이트 어드레스)로부터 목적지 버텍스(예를 들면, 목적지 웹사이트 어드레스)로 브라우저가 네비게이트한 횟수에 의해서 가중치가 부여된다.
단계 1002에서, 네비게이션 이벤트가 수신된다. 예를 들면, 웹사이트, 이메일 혹은 즉석 메시지 클라이언트로부터 링크가 선택될 수도 있으며, 혹은 URL이 어드레스 바(address bar)에 타이핑될 수도 있으며 혹은 다른 어플리케이션이 네비게이션 동작을 개시할 수도 있다(예컨대, 별도의 검색 어플리케이션에 의해서 제공된 검색 결과를 선택하는 것).
단계 1004에서, 수신된 네비게이션 이벤트가 그래프 안으로 진입(entry)하는 것에 해당하는지에 대한 결정이 이루어진다. 도9를 참조하여 설명된 바와 같이, 그래프를 식별하기 위한 키(key)로서 이용된 네비게이션 이벤트는, 하나의 네비게이션 이벤트가 아니라, 최근의 네비게이션 히스토리를 나타내는 복수의 버텍스들이 될 수 있다.
만일, 상기 네비게이션 이벤트가 방향성 그래프 내에 존재하지 않는다면, 상기 네비게이션 이벤트에 대한 새로운 버텍스가 추가된다(단계 1006). 그렇지 않다면, 상기 방법은 단계 1008로 진행한다.
단계 1008에서, 현재 URL(혹은 소스 URL)과 목적지 URL 사이에서 그래프의 에지에 대한 가중치를 정의하는 카운터 값이 증분된다. 단일 네비게이션 이벤트 보다 더 큰 깊이를 갖는 방향성 그래프에서, 소스 "n" 네비게이션 이벤트들로부터 목적지 네비게이션 이벤트로의 에지는, 증분될 수 있다. 이와 같은 방식으로, 그래프의 버텍스들 간의 네비게이션 이벤트들은 방향성 그래프의 에지들의 가중치들에 저장될 수 있다.
도11은 본 발명의 양상들에 따라 방향성 그래프를 이용하여 네비게이션 이벤트를 예측하기 위한 방법(1100)의 일례를 도시한다. 일단 생성되면, 방향성 그래프는 과거의 네비게이션 히스토리에 기초하여 미래의 네비게이션 이벤트들을 예측하는데 이용될 수 있다.
단계 1102에서, 네비게이션 히스토리의 과거의 "n" 네비게이션 이벤트들이 판별된다. 예를 들면, 사용자에 의해서 방문된 가장 최근의 웹 페이지들이 식별될 수 있는바, 사용자 이들 웹 페이지들을 방문한 특정 순서대로 식별될 수 있다. 네비게이션 이벤트 히스토리는, 특정 웹 브라우저 탭 혹은 인스턴스에 대해서 식별될 수 있으며 또는 모든 액티브 브라우저 탭들 혹은 인스턴스들에 대해서 식별될 수도 있다.
단계 1104에서는, 단계 1102에서 결정된 네비게이션 이벤트 히스토리가 네비게이션 히스토리 데이터 그래프에 매핑된다. 네비게이션 이벤트 히스토리는, 히스토리의 길이 및 그래프들의 "n" 차원 깊이에 따라, 다수의 데이터 그래프들에 매핑될 수도 있다. 예를 들면, URL A -→ URL B -→ URL C -→ URL D 라는 네비게이션 히스토리는 4개까지의 개별적인 방향성 그래프들 즉, URL D에 대한 그래프, URL C -→ URL D에 대한 그래프, URL B -→ URL C -→ URL D에 대한 그래프, 및 URL A -→ URL B -→ URL C -→ URL D에 대한 그래프에 매핑될 수 있다.
단계 1106에서, 단계 1104에서 결정된 방향성 그래프들 내에 있는 잠재적인 목적지 어드레스들에 대한 신뢰도 값이 결정된다. 각각의 방향성 그래프에 관계되는 잠재적인 목적지 어드레스들은 또한, 현재 웹 페이지 상에 존재하는 어드레스들의 세트와 비교될 수도 있다. 예를 들면, 사용자가 보고있는 웹 페이지 상에서 비활성이며 선택가능하지 않은 링크들에 대해서는 신뢰도 값들이 식별되지 않을 수도 있다.
방향성 그래프의 소스 버텍스(예컨대, 현재 보고있는 페이지)와 상기 소스 버텍스에 링크된 각각의 목적지 버텍스 사이의 에지들의 가중치들을 이용하여, 신뢰도 값이 결정될 수 있다. 신뢰도 값은, 더 높은 n 엔트리들(higher-n entries)에게는 더 많은 가중치가 부여되도록 가중화된, 각각의 네비게이션 이벤트의 확률값이 될 수 있다(예컨대, 가능한 네비게이션 이벤트의 카운트 가중치를 잠재적인 다음 네비게이션 이벤트들의 총 카운트로 나눈 것).
더 깊은 그래프들이 더 상세한 데이터를 제공하는 경향이 있지만, 더 많은 데이터 포인트들을 구비한 그래프들이 더 좋은데, 이는 이들 그래프들이 더 잘 대표하기 때문이다(more representative). 이와 같이, 서로 다른 확률 계산들 사이에서의 트레이드오프들을 감안하면, 각각의 확률에 대한 가중치를 결정하기 위하여 공식(formula)을 사용하는 것이 보다 적절할 수도 있다. 예를 들어, 만일 데이터 세트가 깊이가 1 내지 5인 5개의 그래프들을 갖는다면, 각각의 그래프로부터의 확률 값은 그래프 깊이와 그래프 내의 샘플들의 개수를 이용하여 가중화될 수 있다. 각각의 확률 값의 가중치를 결정하기 위한 공식들 중 가능한 하나의 공식은 다음과 같다.
weight = graph _ depth N * samples _ in _ graph (식 1)
graph _ depth 는 그래프에 대한 키(key)로서 이용되는 네비게이션 이벤트들의 개수이며, samples _ in _ graph 는 그래프에 저장된 네비게이션 이벤트들의 개수이며, 그리고 N 은 샘플 사이즈 대신에 그래프 깊이에 대한 바이어스를 설정하는데 이용되는 1 보다 큰 수이다. 이러한 공식은 각각의 그래프의 가중치 혹은 중요도(significance)를 결정할 수도 있으며, 그리고 이러한 가중치에 따라 각각의 그래프로부터 각각의 URL에 대한 확률들이 결정될 수 있다.
단계 1108에서는, 단계 1106에서 결정된 신뢰도 값들을 이용하여 하나 이상의 가능성 있는 네비게이션 이벤트들이 식별된다. 예를 들면, 임계값 보다 큰 신뢰도 값들을 갖는 모든 이벤트들이 가능성 있는 네비게이션 이벤트들이라고 식별될 수도 있으며(예컨대, 적어도 50% 신뢰도 값, 적어도 75% 신뢰도 값, 혹은 적어도 90% 신뢰도 값을 갖는 모든 네비게이션 이벤트들), 혹은 최고의 신뢰도 값들을 갖는 소정 개수의 이벤트들이 가능성 있는 네비게이션 이벤트들이라고 식별될 수도 있으며, 혹은 검사된 각각의 방향성 그래프로부터의 최고의 네비게이션 이벤트가 가능성 있는 네비게이션 이벤트들이라고 식별될 수도 있다.
단계 1110에서, 하나 이상의 가능성 있는 네비게이션 이벤트들이 프리렌더링된다. 비록, 본 실시예는 가능성 있는 네비게이션 이벤트들이 프리렌더링을 위해 이용됨을 서술하고 있지만, 가능성 있는 네비게이션 이벤트에 관련된 컨텐트에 액세스하는 것을 이용하여 사용자를 도와주기 위하여 다른 액션들이 또한 취해질 수도 있다. 예를 들면, 가능성 있는 네비게이션 이벤트들은 선택을 위한 별도의 인터페이스 윈도우에서 사용자에게 제공될 수 있으며, 혹은 각각의 네비게이션 이벤트의 확률에 기초하여 다양한 프리페칭(prefetching) 프로세스들이 인에이블될 수도 있다. 본 발명의 일부 양상들에서는 네비게이션 이벤트의 선택 확률에 대응하여, 점점 더 적극적인 프로세스들(increasingly aggressive processes)이 수행된다. 예를 들면, 90%의 확률 보다 큰 경우에는 소정의 네비게이션 이벤트가 프리렌더링될 수 있지만, 60%의 확률에서는 오직 도메인 네임 서비스(domain name service : DNS) 정보만이 프리캐시되며(precached), 그리고 10% 미만의 확률에서는 그 어떤 동작도 취해지지 않는다.
전술한 예시적인 방법들의 단계들은 본 발명을 이에 한정하고자 의도된 것이 아니다. 방법들의 기능은, 도시된 것보다 더 많거나 혹은 더 적은 단계들에 존재할 수도 있으며, 도시된 방법들에도 불구하고, 이벤트들의 특정 순서는 도면에 도시된 것과 다를 수도 있다.
전술한 시스템들 및 방법들은 개선된 브라우징 경험을 유리하게 제공한다. 다음 네비게이션 이벤트를 예측함으로써, 브라우저는 웹 페이지들이 로딩될 때까지 사용자가 기다리는 시간을 최소화시키기 위한 프리렌더 동작들을 수행할 수 있다. 프리렌더 동작들을 수행하는 여러 방법들은, 다음 네비게이션 이벤트를 결정하기 위한 유연하면서도 강건한 시스템을 제공한다.
청구범위에 의해서 정의된 바와 같은 본 발명의 기술적 사상의 범위를 벗어남이 없이도 앞서 논의된 피처들의 여러 변형예들 및 조합들이 활용될 수 있기 때문에, 실시예들에 대한 전술한 설명들은 청구범위에 의해서 정의된 바와 같은 본 발명을 한정하고자 의도된 것이 아니라 예시를 위한 것으로 간주되어야만 한다. 또한, 본 발명의 일례들을 제시하는 것(뿐만 아니라 "가령" , "예컨대" , "포함한다" 기타 등등과 같은 문구)은, 본 발명을 그와 같은 특정 일례만으로 한정하는 것으로 해석되지 말아야 하며, 이와 달리 상기 일례들은 실시가능한 많은 일례들 중 오직 일부만을 예시하는 것임을 유의해야 한다.

Claims (21)

  1. 사용자 네비게이션 이벤트를 예측하기 위한 컴퓨터로 구현되는 방법으로서,
    네비게이션 데이터의 세트를 저장하는 단계 ― 상기 네비게이션 데이터는 적어도 하나의 방향성 그래프(directed graph)를 포함하며, 상기 방향성 그래프의 적어도 하나의 버텍스(vertex)는 적어도 하나의 네비게이션 이벤트를 포함하며, 상기 방향성 그래프의 에지(edge)는 소스 버텍스로부터 목적지 버텍스로 네비게이션이 발생한 횟수를 나타내는 카운트 값에 의해서 가중화되며, 상기 소스 버텍스는 상기 에지에 의해서 상기 목적지 버텍스에 연결됨 ―;
    현재 네비게이션 히스토리를 식별하는 단계 ― 상기 현재 네비게이션 히스토리는 브라우저에서 액세스된 하나 이상의 이전(previous) 네비게이션 이벤트들을 포함함 ―;
    프로세서를 이용하여, 상기 현재 네비게이션 히스토리를 상기 네비게이션 데이터의 세트 내에 있는 적어도 하나의 방향성 그래프에 매핑하는 단계;
    상기 적어도 하나의 방향성 그래프를 이용하여, 주어진 네비게이션 이벤트에 대한 신뢰도 값을 결정하는 단계; 및
    상기 신뢰도 값에 기초하여 상기 주어진 네비게이션 이벤트를 가능성 있는 네비게이션 이벤트로서 식별하는 단계 ― 상기 식별하는 단계에 의해 상기 가능성 있는 네비게이션 이벤트가 상기 브라우저에 의해서 이용되도록 구성됨 ―
    를 포함하는,
    컴퓨터로 구현되는 방법.
  2. 제1항에 있어서,
    상기 적어도 하나의 방향성 그래프는 상기 현재 네비게이션 히스토리 내의 적어도 하나의 이전 네비게이션 이벤트에 키잉(keyed to)되는,
    컴퓨터로 구현되는 방법.
  3. 제2항에 있어서,
    상기 적어도 하나의 이전 네비게이션 이벤트는, 상기 적어도 하나의 이전 네비게이션 이벤트들 각각이 방문되었던 순서대로 식별되는,
    컴퓨터로 구현되는 방법.
  4. 제1항에 있어서,
    상기 현재 네비게이션 히스토리에서 n 개의 이전 네비게이션 이벤트들을 식별하는 단계; 및
    상기 적어도 하나의 방향성 그래프 중 어떤 것이 상기 n 개의 이전 네비게이션 이벤트들에 키잉(keyed to)되는지를 결정하는 단계
    를 더 포함하는,
    컴퓨터로 구현되는 방법.
  5. 제1항에 있어서,
    상기 신뢰도 값은 적어도, 상기 적어도 하나의 방향성 그래프의 깊이에 의해서 가중화되는,
    컴퓨터로 구현되는 방법.
  6. 제5항에 있어서,
    상기 방향성 그래프의 가중치는 공식 weight = graph _ depth N * samples _ in _ graph 에 의해서 결정되며, 상기 공식에서 graph _ depth 는 상기 깊이이며, samples _ in _ graph 는 상기 그래프에 저장된 네비게이션 이벤트들의 개수이며, 그리고 N 은 가중치 계산에서 graph _ depth 항의 중요도(significance)를 조정하는데 이용되는 숫자값인,
    컴퓨터로 구현되는 방법.
  7. 제1항에 있어서,
    상기 가능성 있는 네비게이션 이벤트를 프리렌더링하는 단계
    를 더 포함하는,
    컴퓨터로 구현되는 방법.
  8. 제1항에 있어서,
    상기 브라우저는 웹 브라우저인,
    컴퓨터로 구현되는 방법.
  9. 명령들을 포함하는 비-일시적인 컴퓨터-판독가능한 저장 매체로서, 상기 명령들은 프로세서에 의해서 실행되는 때, 상기 프로세서로 하여금,
    네비게이션 데이터의 세트를 저장하는 단계 ― 상기 네비게이션 데이터는 적어도 하나의 방향성 그래프(directed graph)를 포함하며, 상기 방향성 그래프의 적어도 하나의 버텍스(vertex)는 적어도 하나의 네비게이션 이벤트를 포함하며, 상기 방향성 그래프의 에지(edge)는 소스 버텍스로부터 목적지 버텍스로 네비게이션이 발생한 횟수를 나타내는 카운트 값에 의해서 가중화되며, 상기 소스 버텍스는 상기 에지에 의해서 상기 목적지 버텍스에 연결됨 ―;
    현재 네비게이션 히스토리를 식별하는 단계 ― 상기 현재 네비게이션 히스토리는 브라우저에서 액세스된 하나 이상의 이전(previous) 네비게이션 이벤트들을 포함함 ―;
    상기 현재 네비게이션 히스토리를 상기 네비게이션 데이터의 세트 내에 있는 상기 적어도 하나의 방향성 그래프에 매핑하는 단계;
    상기 적어도 하나의 방향성 그래프를 이용하여, 주어진 네비게이션 이벤트에 대한 신뢰도 값을 결정하는 단계; 및
    상기 신뢰도 값에 기초하여 상기 주어진 네비게이션 이벤트를 가능성 있는 네비게이션 이벤트로서 식별하는 단계 ― 상기 식별하는 단계에 의해 상기 가능성 있는 네비게이션 이벤트가 상기 브라우저에 의해서 이용되도록 구성됨 ―
    를 포함하는 방법을 수행하게 하는,
    비-일시적인 컴퓨터-판독가능한 저장 매체.
  10. 제9항에 있어서,
    상기 적어도 하나의 방향성 그래프는 상기 현재 네비게이션 히스토리 내의 적어도 하나의 이전 네비게이션 이벤트에 키잉(keyed to)되는,
    비-일시적인 컴퓨터-판독가능한 저장 매체.
  11. 제10항에 있어서,
    상기 적어도 하나의 이전 네비게이션 이벤트는, 상기 적어도 하나의 이전 네비게이션 이벤트들 각각이 방문되었던 순서대로 식별되는,
    비-일시적인 컴퓨터-판독가능한 저장 매체.
  12. 제9항에 있어서,
    상기 현재 네비게이션 히스토리에서 n 개의 이전 네비게이션 이벤트들을 식별하는 단계; 그리고 및
    상기 적어도 하나의 방향성 그래프 중 어떤 것이 상기 n 개의 이전 네비게이션 이벤트들에 키잉(keyed to)되는지를 결정하는 단계
    를 더 포함하는,
    비-일시적인 컴퓨터-판독가능한 저장 매체.
  13. 제9항에 있어서,
    상기 신뢰도 값은 상기 적어도 하나의 방향성 그래프의 깊이에 의해서 가중화되는,
    비-일시적인 컴퓨터-판독가능한 저장 매체.
  14. 제9항에 있어서,
    상기 가능성 있는 네비게이션 이벤트를 프리렌더링하는 단계
    를 더 포함하는,
    비-일시적인 컴퓨터-판독가능한 저장 매체.
  15. 사용자 네비게이션 이벤트를 예측하기 위한 프로세싱 시스템으로서,
    적어도 하나의 프로세서; 및
    네비게이션 데이터의 세트를 저장하기 위해 상기 프로세서에 연결된 메모리를 포함하며,
    상기 네비게이션 데이터는 적어도 하나의 방향성 그래프(directed graph)를 포함하며, 상기 방향성 그래프의 적어도 하나의 버텍스(vertex)는 적어도 하나의 네비게이션 이벤트를 포함하며, 상기 방향성 그래프의 에지(edge)는 소스 버텍스로부터 상기 에지에 의해서 연결된 목적지 버텍스로 네비게이션이 발생한 횟수를 나타내는 카운트 값에 의해서 가중화되며,
    상기 프로세서는,
    현재 네비게이션 히스토리를 식별하고, 상기 현재 네비게이션 히스토리는 브라우저에서 액세스된 하나 이상의 이전(previous) 네비게이션 이벤트들을 포함하며;
    상기 현재 네비게이션 히스토리를 상기 네비게이션 데이터의 세트 내에 있는 적어도 하나의 방향성 그래프에 매핑하고;
    상기 적어도 하나의 방향성 그래프를 이용하여, 주어진 네비게이션 이벤트에 대한 신뢰도 값을 결정하고; 그리고
    상기 신뢰도 값에 기초하여 상기 주어진 네비게이션 이벤트를 가능성 있는 네비게이션 이벤트로서 식별하는 ― 상기 식별하는 것에 의해 상기 가능성 있는 네비게이션 이벤트가 상기 브라우저에 의해서 이용되도록 구성됨 ―,
    프로세싱 시스템.
  16. 제15항에 있어서,
    상기 브라우저는 상기 가능성 있는 네비게이션 이벤트를 프리렌더링하도록 구성되는,
    프로세싱 시스템.
  17. 제15항에 있어서,
    상기 적어도 하나의 방향성 그래프는 상기 현재 네비게이션 히스토리 내의 적어도 하나의 이전 네비게이션 이벤트에 키잉(keyed to)되는,
    프로세싱 시스템.
  18. 제17항에 있어서,
    상기 적어도 하나의 이전 네비게이션 이벤트는, 상기 적어도 하나의 이전 네비게이션 이벤트들 각각이 방문되었던 순서대로 식별되는,
    프로세싱 시스템.
  19. 제15항에 있어서,
    상기 프로세서는 또한,
    상기 현재 네비게이션 히스토리에서 n 개의 이전 네비게이션 이벤트들을 식별하고; 그리고
    상기 적어도 하나의 방향성 그래프 중 어떤 것이 상기 n 개의 이전 네비게이션 이벤트들에 키잉(keyed to)되는지를 결정하도록 구성되는,
    프로세싱 시스템.
  20. 제15항에 있어서,
    상기 신뢰도 값은 상기 적어도 하나의 방향성 그래프의 깊이에 의해서 가중화되는,
    프로세싱 시스템.
  21. 제15항에 있어서,
    상기 브라우저는 웹 브라우저인,
    프로세싱 시스템.
KR1020147009072A 2011-09-15 2012-09-14 사용자 네비게이션 이벤트의 예측 KR101828959B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/233,300 US8600921B2 (en) 2011-09-15 2011-09-15 Predicting user navigation events in a browser using directed graphs
US13/233,300 2011-09-15
PCT/US2012/055473 WO2013040386A2 (en) 2011-09-15 2012-09-14 Predicting user navigation events

Publications (2)

Publication Number Publication Date
KR20140064930A KR20140064930A (ko) 2014-05-28
KR101828959B1 true KR101828959B1 (ko) 2018-02-13

Family

ID=47881618

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147009072A KR101828959B1 (ko) 2011-09-15 2012-09-14 사용자 네비게이션 이벤트의 예측

Country Status (5)

Country Link
US (3) US8600921B2 (ko)
EP (1) EP2756422B1 (ko)
KR (1) KR101828959B1 (ko)
CN (1) CN103797477B (ko)
WO (1) WO2013040386A2 (ko)

Families Citing this family (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8515889B2 (en) 2010-03-23 2013-08-20 Ebay Inc. Systems and methods for trend aware self-correcting entity relationship extraction
US8732569B2 (en) * 2011-05-04 2014-05-20 Google Inc. Predicting user navigation events
US9769285B2 (en) 2011-06-14 2017-09-19 Google Inc. Access to network content
US8788711B2 (en) 2011-06-14 2014-07-22 Google Inc. Redacting content and inserting hypertext transfer protocol (HTTP) error codes in place thereof
US8650139B2 (en) * 2011-07-01 2014-02-11 Google Inc. Predicting user navigation events
GB2497935A (en) * 2011-12-22 2013-07-03 Ibm Predicting actions input to a user interface
US9335832B2 (en) * 2011-12-23 2016-05-10 Sap Se Executing system actions corresponding to user inputs
US9384711B2 (en) 2012-02-15 2016-07-05 Microsoft Technology Licensing, Llc Speculative render ahead and caching in multiple passes
US9946792B2 (en) 2012-05-15 2018-04-17 Google Llc Access to network content
US9286122B2 (en) 2012-05-31 2016-03-15 Microsoft Technology Licensing, Llc Display techniques using virtual surface allocation
US9235925B2 (en) 2012-05-31 2016-01-12 Microsoft Technology Licensing, Llc Virtual surface rendering
US9230517B2 (en) 2012-05-31 2016-01-05 Microsoft Technology Licensing, Llc Virtual surface gutters
US9177533B2 (en) 2012-05-31 2015-11-03 Microsoft Technology Licensing, Llc Virtual surface compaction
US9583032B2 (en) * 2012-06-05 2017-02-28 Microsoft Technology Licensing, Llc Navigating content using a physical object
US9348936B2 (en) * 2012-07-25 2016-05-24 Oracle International Corporation Heuristic caching to personalize applications
US20140136508A1 (en) * 2012-11-09 2014-05-15 Palo Alto Research Center Incorporated Computer-Implemented System And Method For Providing Website Navigation Recommendations
US9665547B1 (en) * 2012-12-27 2017-05-30 Google Inc. Facilitating webpage navigation
US9307007B2 (en) 2013-06-14 2016-04-05 Microsoft Technology Licensing, Llc Content pre-render and pre-fetch techniques
US9374431B2 (en) * 2013-06-20 2016-06-21 Microsoft Technology Licensing, Llc Frequent sites based on browsing patterns
US9811508B2 (en) * 2013-07-16 2017-11-07 Tencent Technology (Shenzhen) Company Limited Method and apparatus for hierarchical data reading
CN103455353B (zh) * 2013-08-30 2017-11-14 广州市动景计算机科技有限公司 网页数据的请求方法及装置
US9747004B2 (en) * 2013-10-29 2017-08-29 Microsoft Technology Licensing, Llc Web content navigation using tab switching
US20150294019A1 (en) * 2014-04-10 2015-10-15 International Business Machines Corporation Web browsing activity flow
US9576070B2 (en) 2014-04-23 2017-02-21 Akamai Technologies, Inc. Creation and delivery of pre-rendered web pages for accelerated browsing
GB2526152A (en) * 2014-05-16 2015-11-18 Vodafone Ip Licensing Ltd Controlling a server
US10681156B1 (en) * 2014-07-17 2020-06-09 Melih Abdulhayoglu System and process for cloud based analytics
US10310699B1 (en) * 2014-12-08 2019-06-04 Amazon Technologies, Inc. Dynamic modification of browser and content presentation
RU2637882C2 (ru) 2015-03-31 2017-12-07 Общество С Ограниченной Ответственностью "Яндекс" Способ управления отображением веб-ресурсов в браузерном окне, способ помещения вкладок в стек в браузерном окне, электронное устройство и сервер
WO2017052666A1 (en) 2015-09-26 2017-03-30 Intel Corporation Dynamic graph extraction based on distributed hub and spoke big data analytics
US20170192942A1 (en) * 2016-01-06 2017-07-06 Google Inc. Hierarchical positioned event dispatch
US20170212651A1 (en) * 2016-01-27 2017-07-27 Amadeus S.A.S. Short cut links in a graphical user interface
US10148776B2 (en) * 2016-02-18 2018-12-04 Adobe Systems Incorporated Clickstream visual analytics based on maximal sequential patterns
US10706433B2 (en) * 2017-01-25 2020-07-07 Mastercard International Incorporated Individual level learning mechanism
RU2693325C2 (ru) * 2017-07-26 2019-07-02 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для обнаружения действий, потенциально связанных с рассылкой спама, при регистрации учетной записи
CN107525519A (zh) * 2017-09-27 2017-12-29 江西爱驰亿维实业有限公司 可切换地图导航图层的导航方法及系统、存储介质、车载终端
CN108363602B (zh) * 2018-01-23 2022-04-19 平安普惠企业管理有限公司 智能ui界面布局方法、装置、终端设备及存储介质
US11669345B2 (en) 2018-03-13 2023-06-06 Cloudblue Llc System and method for generating prediction based GUIs to improve GUI response times
US10817351B1 (en) * 2018-07-13 2020-10-27 Blend Labs, Inc. Method and apparatus for hybrid service event
US10740704B2 (en) * 2018-10-04 2020-08-11 Microsoft Technology Licensing, Llc User-centric browser location
US10733545B2 (en) * 2018-10-04 2020-08-04 Microsoft Technology Licensing, Llc User-centric contextual information for browser
EP3899857A4 (en) * 2018-12-19 2022-09-28 Warner Bros. Entertainment Inc. ENTERTAINMENT CONTENT REAL-TIME ROUTE SETUP
US10990879B2 (en) 2019-09-06 2021-04-27 Digital Asset Capital, Inc. Graph expansion and outcome determination for graph-defined program states
US11132403B2 (en) * 2019-09-06 2021-09-28 Digital Asset Capital, Inc. Graph-manipulation based domain-specific execution environment
US11676160B2 (en) * 2020-02-11 2023-06-13 The Nielsen Company (Us), Llc Methods and apparatus to estimate cardinality of users represented in arbitrarily distributed bloom filters
US11330252B2 (en) * 2020-02-12 2022-05-10 At&T Intellectual Property I, L.P. Apparatus and method for providing content with multiplane image transcoding
US11741068B2 (en) 2020-06-30 2023-08-29 The Nielsen Company (Us), Llc Methods and apparatus to estimate cardinality of users represented across multiple bloom filter arrays
US11755545B2 (en) 2020-07-31 2023-09-12 The Nielsen Company (Us), Llc Methods and apparatus to estimate audience measurement metrics based on users represented in bloom filter arrays
GB2599731A (en) * 2020-10-12 2022-04-13 Mastercard International Inc Website monitoring and assessment
US11854030B2 (en) * 2021-06-29 2023-12-26 The Nielsen Company (Us), Llc Methods and apparatus to estimate cardinality across multiple datasets represented using bloom filter arrays

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080130951A1 (en) 2006-11-30 2008-06-05 Wren Christopher R System and Method for Modeling Movement of Objects Using Probabilistic Graphs Obtained From Surveillance Data
US20090070392A1 (en) 2007-09-10 2009-03-12 Microsoft Corporation Managing navigation history for intra-page state transitions
US20090327424A1 (en) 2008-06-25 2009-12-31 Ebay, Inc. Systems and methods for mapping event changes in network navigation

Family Cites Families (94)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6604103B1 (en) 1994-09-02 2003-08-05 Mark A. Wolfe System and method for information retrieval employing a preloading procedure
US7467137B1 (en) 1994-09-02 2008-12-16 Wolfe Mark A System and method for information retrieval employing a preloading procedure
US7103594B1 (en) 1994-09-02 2006-09-05 Wolfe Mark A System and method for information retrieval employing a preloading procedure
US5715445A (en) 1994-09-02 1998-02-03 Wolfe; Mark A. Document retrieval system employing a preloading procedure
US6012052A (en) * 1998-01-15 2000-01-04 Microsoft Corporation Methods and apparatus for building resource transition probability models for use in pre-fetching resources, editing resource link topology, building resource link topology templates, and collaborative filtering
US6055569A (en) 1998-01-27 2000-04-25 Go Ahead Software Inc. Accelerating web access by predicting user action
IL125432A (en) 1998-01-30 2010-11-30 Easynet Access Inc Personalized internet interaction
US6182133B1 (en) 1998-02-06 2001-01-30 Microsoft Corporation Method and apparatus for display of information prefetching and cache status having variable visual indication based on a period of time since prefetching
US6151585A (en) * 1998-04-24 2000-11-21 Microsoft Corporation Methods and apparatus for determining or inferring influential rumormongers from resource usage data
US6100871A (en) 1998-04-29 2000-08-08 Multitude, Inc. Dynamic pointer having time-dependent informational content
CN1324464A (zh) 1998-08-26 2001-11-28 西姆泰克有限公司 映射数据文件的方法和设备
US6842782B1 (en) 1998-12-08 2005-01-11 Yodlee.Com, Inc. Method and apparatus for tracking functional states of a web-site and reporting results to web developers
US7428701B1 (en) 1998-12-18 2008-09-23 Appligent Inc. Method, system and computer program for redaction of material from documents
US6976090B2 (en) 2000-04-20 2005-12-13 Actona Technologies Ltd. Differentiated content and application delivery via internet
US6717600B2 (en) 2000-12-15 2004-04-06 International Business Machines Corporation Proximity selection of selectable item in a graphical user interface
US7584418B2 (en) 2001-05-31 2009-09-01 Oracle International Corporation Methods, systems, and articles of manufacture for prefabricating an information page
US7716332B1 (en) 2001-06-20 2010-05-11 At&T Intellectual Property I, L.P. System and method for server-based predictive caching of back-end system data
US7047502B2 (en) 2001-09-24 2006-05-16 Ask Jeeves, Inc. Methods and apparatus for mouse-over preview of contextually relevant information
US6766422B2 (en) 2001-09-27 2004-07-20 Siemens Information And Communication Networks, Inc. Method and system for web caching based on predictive usage
US6871218B2 (en) * 2001-11-07 2005-03-22 Oracle International Corporation Methods and systems for preemptive and predictive page caching for improved site navigation
US7277924B1 (en) 2002-05-07 2007-10-02 Oracle International Corporation Method and mechanism for a portal website architecture
US6993586B2 (en) * 2002-05-09 2006-01-31 Microsoft Corporation User intention modeling for web navigation
AU2002304431A1 (en) 2002-06-10 2003-12-22 Caplin System Limited Client-server communication system
WO2004034625A2 (en) 2002-10-07 2004-04-22 Metatomix, Inc. Methods and apparatus for identifying related nodes in a directed graph having named arcs
US8005919B2 (en) 2002-11-18 2011-08-23 Aol Inc. Host-based intelligent results related to a character stream
US7836391B2 (en) 2003-06-10 2010-11-16 Google Inc. Document search engine including highlighting of confident results
US7401072B2 (en) 2003-06-10 2008-07-15 Google Inc. Named URL entry
US7281202B2 (en) 2003-06-19 2007-10-09 Microsoft Corporation Framework for creating modular web applications
US8346587B2 (en) 2003-06-30 2013-01-01 Microsoft Corporation Models and methods for reducing visual complexity and search effort via ideal information abstraction, hiding, and sequencing
US8103742B1 (en) 2003-11-24 2012-01-24 Amazon Technologies, Inc. Deferred and off-loaded rendering of selected portions of web pages to incorporate late-arriving service data
US7774721B2 (en) 2003-12-15 2010-08-10 Microsoft Corporation Intelligent backward resource navigation
US7614004B2 (en) 2003-12-15 2009-11-03 Microsoft Corporation Intelligent forward resource navigation
US7483941B2 (en) 2004-01-13 2009-01-27 International Business Machines Corporation System and method for dynamically inserting prefetch tags by the web server
US7155336B2 (en) 2004-03-24 2006-12-26 A9.Com, Inc. System and method for automatically collecting images of objects at geographic locations and displaying same in online directories
US7539674B2 (en) 2004-04-08 2009-05-26 Yahoo! Inc. Systems and methods for adaptive scheduling of references to documents
US7558822B2 (en) 2004-06-30 2009-07-07 Google Inc. Accelerating user interfaces by predicting user actions
US7761814B2 (en) 2004-09-13 2010-07-20 Microsoft Corporation Flick gesture
US20060064411A1 (en) 2004-09-22 2006-03-23 William Gross Search engine using user intent
KR101225292B1 (ko) 2004-09-27 2013-01-22 비티 웹 솔루션즈, 엘엘씨 보강된 브라우징을 위한 방법 및 장치
US20060143568A1 (en) 2004-11-10 2006-06-29 Scott Milener Method and apparatus for enhanced browsing
US7499940B1 (en) * 2004-11-11 2009-03-03 Google Inc. Method and system for URL autocompletion using ranked results
US7480669B2 (en) 2005-02-15 2009-01-20 Infomato Crosslink data structure, crosslink database, and system and method of organizing and retrieving information
US7392258B2 (en) 2005-02-25 2008-06-24 International Business Machines Corporation Method and computer program product for dynamic weighting of an ontological data model
US7536635B2 (en) 2005-04-25 2009-05-19 Microsoft Corporation Enabling users to redact portions of a document
US7840589B1 (en) 2005-05-09 2010-11-23 Surfwax, Inc. Systems and methods for using lexically-related query elements within a dynamic object for semantic search refinement and navigation
US20060282771A1 (en) 2005-06-10 2006-12-14 Tad Vinci Verifying document compliance to a subsidiary standard
WO2007002728A2 (en) 2005-06-28 2007-01-04 Claria Corporation Method and system for controlling and adapting a media stream
US7487147B2 (en) 2005-07-13 2009-02-03 Sony Computer Entertainment Inc. Predictive user interface
CA2513018A1 (en) 2005-07-22 2007-01-22 Research In Motion Limited Method for training a proxy server for content delivery based on communication of state information from a mobile device browser
EP1910949A4 (en) 2005-07-29 2012-05-30 Cataphora Inc IMPROVED METHOD AND APPARATUS FOR ANALYZING SOCIOLOGICAL DATA
US20070226633A1 (en) 2006-03-06 2007-09-27 International Business Machines Corporation Copying and pasting portlets in a portal environment
US20070208704A1 (en) 2006-03-06 2007-09-06 Stephen Ives Packaged mobile search results
US20070220010A1 (en) 2006-03-15 2007-09-20 Kent Thomas Ertugrul Targeted content delivery for networks
US20080052219A1 (en) 2006-03-31 2008-02-28 Combinenet, Inc. System for and method of expressive auctions of user events
US8190650B2 (en) 2006-05-02 2012-05-29 Microsoft Corporation Efficiently filtering using a web site
US7747749B1 (en) 2006-05-05 2010-06-29 Google Inc. Systems and methods of efficiently preloading documents to client devices
GB0702587D0 (en) 2006-05-05 2007-03-21 Omnifone Ltd Digital rights management
US7876335B1 (en) 2006-06-02 2011-01-25 Adobe Systems Incorporated Methods and apparatus for redacting content in a document
US7660815B1 (en) * 2006-06-30 2010-02-09 Amazon Technologies, Inc. Method and system for occurrence frequency-based scaling of navigation path weights among online content sources
US7802305B1 (en) 2006-10-10 2010-09-21 Adobe Systems Inc. Methods and apparatus for automated redaction of content in a document
US8943332B2 (en) 2006-10-31 2015-01-27 Hewlett-Packard Development Company, L.P. Audit-log integrity using redactable signatures
US20080140941A1 (en) 2006-12-07 2008-06-12 Dasgupta Gargi B Method and System for Hoarding Content on Mobile Clients
US20080201332A1 (en) 2007-02-20 2008-08-21 Souders Steven K System and method for preloading content on the basis of user context
US7941609B2 (en) 2007-02-23 2011-05-10 Microsoft Corporation HTTP acceleration by prediction and pre-fetching
US8032472B2 (en) 2007-04-04 2011-10-04 Tuen Solutions Limited Liability Company Intelligent agent for distributed services for mobile devices
US8015502B2 (en) 2007-05-22 2011-09-06 Yahoo! Inc. Dynamic layout for a search engine results page on implicit user feedback
KR20080111822A (ko) 2007-06-20 2008-12-24 강정욱 사용자 검색어를 연동하여 가이드 정보, 랭킹 정보를제공하는 검색지원 정보 시스템.
US9195743B2 (en) 2007-10-04 2015-11-24 Yahoo! Inc. System and method for creating and applying predictive user click models to predict a target page associated with a search query
US20090132949A1 (en) 2007-11-16 2009-05-21 Jason Bosarge Methods and systems for transmitting, receiving and annotating internet content
US20090158221A1 (en) 2007-12-17 2009-06-18 Nokia Corporation Device feature manipulation based on presented content
US8131731B2 (en) 2007-12-27 2012-03-06 Microsoft Corporation Relevancy sorting of user's browser history
US8560964B2 (en) 2008-02-20 2013-10-15 International Business Machines Corporation Method and system for predictive browsing
US20090216639A1 (en) 2008-02-25 2009-08-27 Mark Joseph Kapczynski Advertising selection and display based on electronic profile information
US8060513B2 (en) 2008-07-01 2011-11-15 Dossierview Inc. Information processing with integrated semantic contexts
US8260846B2 (en) 2008-07-25 2012-09-04 Liveperson, Inc. Method and system for providing targeted content to a surfer
US8112308B1 (en) 2008-08-06 2012-02-07 Google Inc. Targeting using generated bundles of content sources
US8819585B2 (en) 2008-10-27 2014-08-26 Microsoft Corporation Child window surfacing and management
US8887046B2 (en) 2008-11-14 2014-11-11 Pearson Education, Inc. Whiteboard presentation of interactive and expandable modular content
US7949647B2 (en) 2008-11-26 2011-05-24 Yahoo! Inc. Navigation assistance for search engines
US8260938B2 (en) 2009-01-23 2012-09-04 Google Inc. Predicting user requests to reduce network connection latency
KR101035686B1 (ko) 2009-03-12 2011-05-19 주식회사 로그 웹 페이지별 접속 통계 정보 제공 장치 및 접속 통계 정보 제공 방법
KR20100112512A (ko) 2009-04-09 2010-10-19 (주)아이오다인 검색 장치 및 검색 방법
US20110029670A1 (en) 2009-07-31 2011-02-03 Microsoft Corporation Adapting pushed content delivery based on predictiveness
US20110119361A1 (en) 2009-11-17 2011-05-19 Oto Technologies, Llc System and method for managing redacted electronic documents using callback triggers
US20110173569A1 (en) 2010-01-13 2011-07-14 Rockmelt, Inc. Preview Functionality for Increased Browsing Speed
US9104238B2 (en) 2010-02-12 2015-08-11 Broadcom Corporation Systems and methods for providing enhanced motion detection
US8375208B2 (en) 2010-05-20 2013-02-12 Verizon Patent And Licensing Inc. Method and apparatus for providing content aggregation in support of virtual channels
US9213685B2 (en) 2010-07-13 2015-12-15 Motionpoint Corporation Dynamic language translation of web site content
US20120084644A1 (en) 2010-09-30 2012-04-05 Julien Robert Content preview
US20120137201A1 (en) 2010-11-30 2012-05-31 Alcatel-Lucent Usa Inc. Enabling predictive web browsing
US8504907B2 (en) 2011-03-07 2013-08-06 Ricoh Co., Ltd. Generating page and document logs for electronic documents
US9383917B2 (en) * 2011-03-28 2016-07-05 Microsoft Technology Licensing, Llc Predictive tiling
US8732571B2 (en) 2011-03-31 2014-05-20 Google Inc. Methods and systems for generating and displaying a preview image of a content area
US8788711B2 (en) 2011-06-14 2014-07-22 Google Inc. Redacting content and inserting hypertext transfer protocol (HTTP) error codes in place thereof

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080130951A1 (en) 2006-11-30 2008-06-05 Wren Christopher R System and Method for Modeling Movement of Objects Using Probabilistic Graphs Obtained From Surveillance Data
US20090070392A1 (en) 2007-09-10 2009-03-12 Microsoft Corporation Managing navigation history for intra-page state transitions
US20090327424A1 (en) 2008-06-25 2009-12-31 Ebay, Inc. Systems and methods for mapping event changes in network navigation

Also Published As

Publication number Publication date
CN103797477A (zh) 2014-05-14
EP2756422A4 (en) 2015-03-18
KR20140064930A (ko) 2014-05-28
WO2013040386A2 (en) 2013-03-21
US20130073509A1 (en) 2013-03-21
EP2756422A2 (en) 2014-07-23
US8600921B2 (en) 2013-12-03
WO2013040386A3 (en) 2013-06-27
US8862529B1 (en) 2014-10-14
EP2756422B1 (en) 2020-03-18
US20160188182A1 (en) 2016-06-30
CN103797477B (zh) 2016-10-12

Similar Documents

Publication Publication Date Title
KR101828959B1 (ko) 사용자 네비게이션 이벤트의 예측
US10896285B2 (en) Predicting user navigation events
US10332009B2 (en) Predicting user navigation events
US9443197B1 (en) Predicting user navigation events
US9141722B2 (en) Access to network content
US10089579B1 (en) Predicting user navigation events
US8566696B1 (en) Predicting user navigation events
US8954524B1 (en) Access to network content
EP3956796A1 (en) Cross-site semi-anonymous tracking
US20210233147A1 (en) Recommendation engine based on optimized combination of recommendation algorithms
KR101372585B1 (ko) 객체정보 제공 시스템 및 방법

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