KR102285266B1 - 결락된 브라우즈 노드의 식별 - Google Patents

결락된 브라우즈 노드의 식별 Download PDF

Info

Publication number
KR102285266B1
KR102285266B1 KR1020187037876A KR20187037876A KR102285266B1 KR 102285266 B1 KR102285266 B1 KR 102285266B1 KR 1020187037876 A KR1020187037876 A KR 1020187037876A KR 20187037876 A KR20187037876 A KR 20187037876A KR 102285266 B1 KR102285266 B1 KR 102285266B1
Authority
KR
South Korea
Prior art keywords
category
query
browse
search
aspects
Prior art date
Application number
KR1020187037876A
Other languages
English (en)
Other versions
KR20190013961A (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 KR20190013961A publication Critical patent/KR20190013961A/ko
Application granted granted Critical
Publication of KR102285266B1 publication Critical patent/KR102285266B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24573Query processing with adaptation to user needs using data annotations, e.g. user-defined metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24575Query processing with adaptation to user needs using context
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24578Query processing with adaptation to user needs using ranking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/248Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/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
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0623Item investigation
    • G06Q30/0625Directed, with specific intent or strategy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Business, Economics & Management (AREA)
  • Computational Linguistics (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Economics (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Marketing (AREA)
  • Development Economics (AREA)
  • Library & Information Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

사용자 경험을 향상시키기 위해서는, 카테고리들 및 애스펙트들의 인기있는 조합에 대한 브라우즈 노드가 바람직하다. 카테고리와 애스펙트의 특정 조합이 임계치를 초과하는 빈도로 요청된 것으로 확인되면, 해당 조합에 대한 브라우즈 노드의 존재가 점검되고, 해당 브라우즈 노드가 결락되어 있으면, 해당 브라우즈 노드를 생성하라는 요청이 생성된다. 일부 예시적인 실시형태들에 있어서는, 요청된 카테고리 및 애스펙트 조합들의 패턴의 인식에 기초하여, 결락된 브라우즈 노드들의 전체 세트가 생성된다.

Description

결락된 브라우즈 노드의 식별
[우선권 주장]
본원은, 2016년 10월 11일자로 출원된 "Identifying Missing Browse Nodes"라는 명칭의 미국 특허 출원 제15/290,283호 및 2016년 5월 31일자로 출원된 "Labeling Query with Aspects"라는 명칭의 미국 특허 가출원 제62/343,646호에 대한 우선권을 주장하고, 그 각각은 그 전문이 본 명세서에 참조로 포함된다.
[기술분야]
본 명세서에 개시된 청구대상은 일반적으로 데이터의 처리에 관한 것이다. 구체적으로, 일부 예시적인 실시형태에 있어서, 본 개시물은 결락된 브라우즈 노드(missing browse node)를 식별하는 시스템 및 방법을 다룬다.
일부 실시형태들은 첨부도면의 도면들에서 제한이 아닌 실시예로서 나타내진다.
도 1은, 일부 예시적인 실시형태들에 따른, 결락된 브라우즈 노드를 식별하기에 적합한 네트워크 환경을 나타내는 네트워크 다이어그램이다.
도 2는, 일부 예시적인 실시형태들에 따른, 결락된 브라우즈 노드를 식별하기에 적합한 맵핑 서버의 컴포넌트를 나타내는 블럭도이다.
도 3은, 일부 예시적인 실시형태들에 따른, 쿼리를 제출하고 결과를 디스플레이하기에 적합한 클라이언트 디바이스의 컴포넌트를 나타내는 블럭도이다.
도 4는, 일부 예시적인 실시형태들에 따른, 검색 결과를 디스플레이하기에 적합한 사용자 인터페이스를 나타내는 블럭도이다.
도 5는, 일부 예시적인 실시형태들에 따른, 검색 결과를 디스플레이하기에 적합한 사용자 인터페이스를 나타내는 블럭도이다.
도 6은, 일부 예시적인 실시형태들에 따른, 브라우즈 노드를 디스플레이하기에 적합한 사용자 인터페이스를 나타내는 블럭도이다.
도 7은, 일부 예시적인 실시형태들에 따른, 브라우즈 노드들의 계층구조를 나타내는 블럭도이다.
도 8은, 일부 예시적인 실시형태들에 따른, 입력 쿼리 및 그 레이블링된 애스펙트(aspect)들 사이의 예시적인 관계를 나타내는 블럭도이다.
도 9는, 일부 예시적인 실시형태들에 따른, 결락된 브라우즈 노드를 식별하기에 적합한 인자들을 나타내는 블럭도이다.
도 10은, 일부 예시적인 실시형태들에 따른, 결락된 브라우즈 노드를 식별하는 방법을 수행함에 있어서 애플리케이션 서버의 동작을 나타내는 흐름도이다.
도 11은, 일부 예시적인 실시형태들에 따른, 결락된 브라우즈 노드를 생성하는 방법을 수행함에 있어서 애플리케이션 서버의 동작을 나타내는 흐름도이다.
도 12는, 일부 예시적인 실시형태들에 따른, 결락된 브라우즈 노드를 식별하는 데 사용하기 위한 애스펙트들로 쿼리를 레이블링하는 방법을 수행함에 있어서 쿼리 데이터 특징의 사용을 나타내는 블럭도이다.
도 13은, 일부 예시적인 실시형태들에 따른, 결락된 브라우즈 노드를 식별하는 데 사용하기 위한 애스펙트들로 쿼리를 레이블링하는 방법을 수행함에 있어서 사용자 데이터 특징의 사용을 나타내는 블럭도이다.
도 14는, 일부 예시적인 실시형태들에 따른, 결락된 브라우즈 노드를 식별하는 데 사용하기 위한 애스펙트들로 쿼리를 레이블링하는 방법을 수행함에 있어서 콘텍스트 데이터 특징의 사용을 나타내는 블럭도이다.
도 15는, 일부 예시적인 실시형태들에 따른, 결락된 브라우즈 노드를 식별하는 데 사용하기위한 애스펙트들로 쿼리를 레이블링하는 방법을 수행함에 있어서 애플리케이션 서버의 동작을 나타내는 흐름도이다.
도 16 및 도 17은, 일부 예시적인 실시형태들에 따른, 결락된 브라우즈 노드를 식별하는 방법을 수행함에 있어서 애플리케이션 서버의 동작을 나타내는 흐름도이다.
도 18은, 일부 예시적인 실시형태에 따른, 기계 상에 인스톨될 수 있는 소프트웨어 아키텍처의 실시예를 나타내는 블럭도이다.
도 19는, 예시적인 실시형태에 따른, 본 명세서에서 논의된 방법론들 중 어느 하나 이상을 기계가 수행하게 하는 명령어 세트가 실행될 수 있는 컴퓨터 시스템 형태의 기계의 개요도이다.
예시적인 방법 및 시스템은 결락된 브라우즈 노드를 식별하는 것과 관련된다. 실시예들은 단지 가능한 변형들의 전형일 뿐이다. 명시적으로 달리 언급하지 않는 한, 컴포넌트 및 기능은 선택 사항이며 결합 또는 세분화될 수 있고, 동작들은 순서가 달라질 수 있거나 결합 또는 세분화될 수 있다. 이하의 설명에 있어서는, 예시적인 실시형태들의 전반적인 이해를 제공하기 위해, 설명을 목적으로, 다수의 특정 세부내용이 제시된다. 그러나, 본 발명의 청구대상이 이들 특정 세부내용 없이도 실시될 수 있다는 점은 당업자에게 자명할 것이다.
애스펙트(aspect)는, 키(key)/값(value) 쌍으로 저장되는, 검색 결과들을 필터링하는 데 사용될 수 있는 속성이다. 애스펙트들은 검색 결과의 콘텐츠(예컨대, 검색 결과에 디스플레이되는 텍스트 또는 이미지) 및 검색 결과의 카테고리와는 별개의 것이다. 카테고리는 트리 구조로 구성되며, 여기서 각 검색 결과는 해당 트리의 최대 하나의 리프(leaf) 노드에 속한다. 그에 반해서, 각 검색 결과는 다수의 애스펙트와 연관될 수 있다. 예를 들어, "brand=nike(브랜드=나이키)" 및 "condition=new(조건=신규)"는 모두 단일의 아이템과 연관될 수 있다. 명확히는, 용어 "aspect type(애스펙트 타입)"은 키/값 쌍의 키를 나타내는 데 사용될 수 있으며, "aspect value(애스펙트 값)"는 값을 나타내는 데 사용될 수 있다.
브라우즈 노드는 사용자에 의해 브라우징될 수 있는 아이템들의 특정 그룹이다. 일부 예시적인 실시형태들에 있어서, 브라우즈 노드는 서빙된 페이지(severd page)에서의 HTML(hypertext markup language), 서빙된 페이지의 URL(uniform resource locator)의 특징들, 또는 둘 모두에 의해, 검색 결과 페이지와 구별된다. 예를 들어, 검색 결과 페이지는 CGI(common gateway interface) 스크립트에 대한 인수(argument)로서 검색 쿼리 용어를 나타내는 URL을 가질 수 있는데 반해, 브라우즈 노드 페이지는 URL의 경로 부분의 일부로서 검색 쿼리 용어를 나타내는 URL을 가질 수 있다. 다른 실시예로서, 검색 결과 페이지는 다수의 검색 쿼리에 사용되는 일반적인 타이틀(예컨대, <TITLE> 또는 <H1> HTML 태그를 사용)을 가질 수 있는데 반해, 브라우즈 노드 페이지(예컨대, HTML 문서)는 브라우즈 노드를 구체적으로 반영한 타이틀을 가질 수 있다.
사용자는 검색 쿼리를 검색 엔진(예컨대, 애플리케이션 서버에서 실행되는 검색 애플리케이션)에 제출할 수 있다. 검색 엔진은 검색 쿼리를 처리해서 일련의 결과를 생성할 수 있다. 동일한 검색 쿼리에 대하여 서로 다른 검색 엔진에 의해 생성된 결과는 상이할 수 있다. 예를 들어, 하나의 검색 엔진은 이미지 결과를 제공하는 데 중점을 둘 수 있는 반면, 다른 검색 엔진은 쇼핑 결과를 제공하는 데 중점을 둔다. 이 실시예에 계속해서, "purse(지갑)"를 포함하는 검색 쿼리를 두 엔진에 제출하면, 제1 엔진으로부터는 지갑의 이미지가, 또한 제2 엔진으로부터는 지갑 소매상으로의 링크가 나올 수 있다.
검색 쿼리는 다른 사용자들에 의해 이전에 실행되었을 수 있고, 검색 쿼리에 대한 결과 세트를 수신하는 것에 응답하여 취해진 다른 사용자들의 행위가 기록되어 있을 수도 있다. 예를 들어, 다른 사용자들이 검색 쿼리를 제출한 후에 취해진 이전의 사용자 행위들의 데이터베이스가 생성되었을 수 있다. 다른 사용자들의 행위들은 현재의 검색 쿼리에서 애스펙트들을 레이블링하는 데 사용될 수 있다. 예를 들어, 검색 쿼리가 "digital camera nikon(디지털 카메라 니콘)"이고, 해당 검색 쿼리를 사용한 다수의 사용자가 해당 검색을, “Cameras Photo > Digital Cameras”의 카테고리에서 "brand=nikon(브랜드=니콘)"의 애스펙트를 갖는 아이템들에 대한 것으로 정제했으면, "digital camera nikon(디지털 카메라 니콘)"의 쿼리는 애스펙트 "brand=Nikon(브랜드=니콘)"으로 레이블링될 수 있다.
부가적으로 또는 대안으로서, 현재의 사용자에 의한 이전의 검색들이 현재의 검색 쿼리의 애스펙트들을 레이블링하는 데 사용될 수 있다. 예를 들어, 검색 쿼리는 동일 사용자에 의해 이전에 실행되었을 수 있고, 검색 쿼리의 이전의 사용에 대한 결과 세트를 수신하는 것에 응답하여 취해진 해당 사용자의 행위가 기록되어 있을 수도 있다. 해당 사용자의 이전의 행위는 현재의 검색 쿼리에서 애스펙트들을 레이블링하는 데 사용될 수 있다.
일부 예시적인 실시형태들에 있어서는, 검색의 콘텍스트가 현재의 검색 쿼리의 애스펙트들을 레이블링하는 데 사용된다. 콘텍스트는 쿼리 자체가 아니라 쿼리가 이루어지는 방식을 의미한다. 예를 들어, 사용자의 디바이스, 웹 브라우저, 애플리케이션, 및 운영 체제가 모두 콘텍스트를 제공한다. 콘텍스트의 그 밖의 요소들은, 쿼리를 제출한 날짜, 요일, 및 시간 뿐만 아니라 현재의 이벤트(예컨대, 최신 뉴스 기사 또는 스포츠 이벤트)를 포함한다. 동일한 콘텍스트를 사용하는 사용자들의 이전의 행위들은 현재의 검색 쿼리에서 애스펙트들을 레이블링하는 데 사용될 수 있다.
사용자 경험을 향상시키기 위해서는, 카테고리들 및 애스펙트들의 인기있는 조합에 대한 브라우즈 노드가 바람직하다. 카테고리와 애스펙트의 특정 조합이 임계치를 초과하는 빈도로 요청된 것으로 확인되면, 해당 조합에 대한 브라우즈 노드의 존재가 점검되고, 해당 브라우즈 노드가 결락되어 있으면, 해당 브라우즈 노드를 생성하라는 요청이 생성된다. 일부 예시적인 실시형태들에 있어서는, 요청된 카테고리 및 애스펙트 조합들의 패턴의 인식에 기초하여, 결락된 브라우즈 노드들의 전체 세트가 생성된다.
도 1은, 일부 예시적인 실시형태들에 따른, 결락된 브라우즈 노드를 식별하기에 적합한 네트워크 환경(100)을 나타내는 네트워크 다이어그램이다. 네트워크 환경(100)은 e-커머스 서버(120 및 140), 맵핑 서버(130), 및 디바이스들(150A, 150B, 및 150C)을 포함하고, 이들은 모두 네트워크(170)를 통해 서로 통신 가능하게 연결된다. 디바이스들(150A, 150B, 및 150C)은 총괄하여 "디바이스들(150)"이라고 할 수 있거나, 또는 통칭해서 "디바이스(150)"라고도 한다. e-커머스 서버(120) 및 맵핑 서버(130)는 네트워크-기반 시스템(110)의 일부일 수 있다. 대안으로서, 디바이스들(150)은 맵핑 서버(130)에 직접 접속될 수 있거나, 또는 e-커머스 서버(120 또는 140)에 접속하는 데 사용되는 네트워크(170)와는 별개의 로컬 네트워크를 통해 접속될 수 있다. e-커머스 서버(120 및 140), 맵핑 서버(130), 및 디바이스들(150)은, 아래에서 도 17 및 도 18에 대하여 설명되는 바와 같이, 전체적으로 또는 부분적으로 컴퓨터 시스템에서 각각 구현될 수 있다.
e-커머스 서버(120 및 140)는 네트워크(170)를 통해 다른 기계들(예컨대, 디바이스들(150))에 전자 상거래 애플리케이션을 제공한다. e-커머스 서버(120 및 140)는 맵핑 서버(130)에 직접 접속되거나 또는 통합될 수도 있다. 일부 예시적인 실시형태들에 있어서, 하나의 e-커머스 서버(120)와 맵핑 서버(130)는 네트워크-기반 시스템(110)의 일부인 반면에, 다른 e-커머스 서버(예컨대, e-커머스 서버(140))는 네트워크-기반 시스템(110)에서 분리된다. 전자 상거래 애플리케이션은 사용자들이 아이템들을 서로 직접 사고 파는 방식, 전자 상거래 애플리케이션 제공자와의 사이에서 사고 파는 방식, 또는 두 방식 모두를 제공할 수 있다.
또한, 도 1에는 사용자(160)가 도시된다. 사용자(160)는 인간 사용자(예컨대, 사람), 기계 사용자(예컨대, 디바이스들(150) 및 맵핑 서버(130)와 상호작용하도록 소프트웨어 프로그램에 의해 구성된 컴퓨터), 또는 이들의 임의의 적절한 조합(예컨대, 기계의 도움을 받는 인간 또는 인간에 의해 통제되는 기계)일 수 있다. 사용자(160)는 네트워크 환경(100)의 일부는 아니고, 디바이스들(150)과 연관되며 디바이스들(150)의 사용자일 수 있다. 예를 들어, 디바이스(150)는 사용자(160)가 소유한 센서, 데스크톱 컴퓨터, 차량용 컴퓨터, 태블릿 컴퓨터, 네비게이션 장치, 휴대용 미디어 장치, 또는 스마트폰일 수 있다.
일부 예시적인 실시형태들에 있어서, 맵핑 서버(130)는 사용자로부터 검색 쿼리를 수신한다. 맵핑 서버(130)는 애스펙트를 포함하도록 검색 쿼리를 수정하거나, 검색 쿼리로부터 용어들을 삭제하거나, 또는 둘 모두를 행한다. 결과적인 검색 쿼리는 사용자에 대한 결과 리스트를 생성하는 e-커머스 서버(120 또는 140)에 송신된다. 대안으로서, 검색 쿼리가 브라우즈 노드에 대응하면, 결과 리스트를 대신해서 브라우즈 노드가 사용자에게 제공된다.
도 1에 도시된 기계들, 데이터베이스들, 또는 디바이스들 중 어느 것은, 해당 기계, 데이터베이스, 또는 디바이스에 대하여 본 명세서에서 설명되는 기능들을 수행하기 위한 특수 목적 컴퓨터로 되도록 소프트웨어에 의해 수정된(예컨대, 구성된 또는 프로그래밍된) 범용 컴퓨터에서 구현될 수 있다. 예를 들어, 본 명세서에서 설명되는 방법론들 중 어느 하나 이상을 구현할 수 있는 컴퓨터 시스템은 아래에서 도 17 및 도 18에 대하여 논의된다. 본 명세서에서 사용되는, "데이터베이스(database)"는 데이터 스토리지 리소스이며, 텍스트 파일, 테이블, 스프레드시트, 관계형 데이터베이스(예컨대, 객체-관계형 데이터베이스), 트리플 저장소(triple store), 계층적 데이터 저장소, 또는 이들의 임의의 적절한 조합으로서 구축된 데이터를 저장할 수 있다. 또한, 도 1에 나타낸 기계들, 데이터베이스들, 또는 디바이스들 중 어느 2개 이상이 단일의 기계, 데이터베이스, 또는 디바이스로 결합될 수 있으며, 임의의 단일의 기계, 데이터베이스, 또는 디바이스에 대하여 본 명세서에서 설명되는 기능들은 다수의 기계들, 데이터베이스들, 또는 디바이스들 사이에 세분될 수 있다.
네트워크(170)는 기계들, 데이터베이스들, 및 디바이스들(예컨대, 맵핑 서버(130) 및 디바이스들(150)) 사이의 통신을 가능하게 하는 임의의 네트워크일 수 있다. 따라서, 네트워크(170)는 유선 네트워크, 무선 네트워크(예컨대, 모바일 또는 셀룰러 네트워크), 또는 이들의 임의의 적절한 조합일 수 있다. 네트워크(170)는 사설 네트워크, 공중 네트워크(예컨대, 인터넷), 또는 이들의 임의의 적절한 조합을 구성하는 하나 이상의 부분을 포함할 수 있다.
도 2는, 일부 예시적인 실시형태들에 따른, 맵핑 서버(130)의 컴포넌트를 나타내는 블럭도이다. 맵핑 서버(130)는 통신 모듈(210), 평가 모듈(220), 딕셔너리 모듈(230), 및 저장 모듈(240)을 포함하는 것으로 도시되며, 이들 모듈은 모두 (예컨대, 버스, 공유 메모리, 스위치, 또는 API(application programming interface)를 통해) 서로 통신하도록 구성된다. 본 명세서에서 설명되는 모듈들 중 어느 하나 이상은 하드웨어(예컨대, 기계의 프로세서)를 사용해서, 또는 하드웨어와 소프트웨어의 조합을 사용해서 구현될 수 있다. 예를 들어, 본 명세서에서 설명되는 임의의 모듈은 해당 모듈에 대하여 본 명세서에서 설명되는 동작들을 수행하기 위한 프로세서를 구성할 수 있다. 또한, 이들 모듈 중 어느 2개 이상이 단일의 모듈로 결합될 수 있으며, 단일의 모듈에 대하여 본 명세서에서 설명되는 기능들은 다수의 모듈들 사이에 세분될 수 있다. 또한, 다양한 예시적인 실시형태들에 따르면, 본 명세서에서 단일의 기계, 데이터베이스, 또는 디바이스 내에서 구현되는 것으로 설명된 모듈들이 다수의 기계들, 데이터베이스들, 또는 디바이스들에 걸쳐 분포될 수 있다.
통신 모듈(210)은 데이터를 송신 및 수신하도록 구성된다. 예를 들어, 통신 모듈(210)은 네트워크(170)를 통해 이미지 데이터를 수신하고, 수신된 데이터를 평가 모듈(220)에 송신할 수 있다. 통신 모듈(210)은 디바이스(150)로부터 검색 쿼리를 수신할 수 있다. 검색 쿼리의 수신시에, 통신 모듈(210)은 검색 쿼리를 딕셔너리 모듈(230)에 송신해서 해당 쿼리를 애스펙트들로 레이블링할 수 있다. 예를 들어, 수신한 검색 쿼리는 검색 문자열과 일치하는 아이템들에 대한 쿼리일 수 있다.
평가 모듈(220)은 검색 쿼리들을 상응하는 애스펙트들과 연계시키는 딕셔너리를 생성하도록 구성된다. 예를 들어, 쿼리를 애스펙트 "brand=nike(브랜드=나이키)"와 연계시키는 "nike shoes(나이키 신발)"에 대한 딕셔너리 입력이 생성될 수 있다. 평가 모듈(220)은 검색 쿼리(예컨대, "nike shoes(나이키 신발)")와 관련된 하나 이상의 검색 쿼리를 검색하기 위해 저장 모듈(240)을 사용할 수 있다. 검색 쿼리를 실행한 이후의 이전 사용자 활동에 기초하여, 카테고리(예컨대, Clothing(의류) 카테고리에 있는 "shoes(신발)"), 애스펙트(예컨대, 경매로 판매하도록 제공된 "shoes(신발)"), 또는 이들의 임의의 적절한 조합이 식별되고 딕셔너리에서 검색 쿼리와 연계될 수 있다.
검색 결과는 애스펙트 및 카테고리를 모두 가질 수 있다. 실시예로서, 한 켤레의 특정 신발에 대한 목록인 검색 결과를 고려한다. 해당 신발은 Clothing(의류) 카테고리에 속할 수 있고, 한편 목록은 경매라는 애스펙트를 가질 수 있다. 다른 실시예로서, 경제 정책에 관한 기사를 포함하는 웹 페이지인 검색 결과를 고려한다. 해당 기사는 Economics(경제) 카테고리에 속할 수 있고, 한편 해당 기사의 제시 방식― 검색 결과의 애스펙트 ―은 웹 페이지이다.
딕셔너리 모듈(230)은 입력 쿼리에 대한 대체 쿼리를 탐색하도록 구성된다. 예를 들어, 딕셔너리 모듈(230)은 통신 모듈(210)로부터 검색 쿼리를 수신하고, 데이터베이스에 액세스해서 대체 쿼리를 식별할 수 있다. 상기의 실시예에 기초하면, "nike shoes(나이키 신발)"에 대한 검색은 "Clothing > Shoes(의류 > 신발)" 카테고리에 있는 모든 아이템들에 대하여 애스펙트 "brand=nike(브랜드=나이키)"를 갖는 쿼리로 대체될 수 있다. 통신 모듈(210)은 사용자에게 송신될 검색 결과의 생성을 위해 대체 쿼리를 e-커머스 서버(120 또는 140)에 송신할 수 있다. 일부 예시적인 실시형태들에 있어서, 쿼리에 대한 딕셔너리 룩업(dictionary lookup)은 브라우즈 노드에 대한 식별자를 반환한다. 브라우즈 노드에 대한 식별자는, 사용자에게 디스플레이하기 위해 브라우즈 노드를 디바이스(150)에 송신하는 e-커머스 서버(120 또는 140)에 송신된다.
저장 모듈(240)은 평가 모듈(220)에 대하여 쿼리를 행한 사용자 및 그 밖의 사용자들에 의한 이전 검색에 관한 데이터를 저장하거나, 딕셔너리 모듈(230)에 대한 애스펙트 룩업 데이터를 저장하거나, 또는 둘 모두를 저장할 수 있다. 예를 들어, 과거 쿼리 데이터, 사용자 모델링 데이터, 콘텍스트 모델링 데이터, 및 쿼리 모델링 데이터가 모두 저장 모듈(240)에 의해 저장될 수 있다. 부가적으로 또는 대안으로서, 저장 모듈(240)은 외부 데이터베이스와 같이, 다른 디바이스들에 있는 데이터 스토리지에 액세스할 수 있다.
도 3은, 일부 예시적인 실시형태들에 따른, 쿼리를 제출하고 결과 및 브라우즈 노드를 디스플레이하기에 적합한 디바이스(150)의 컴포넌트를 나타내는 블럭도이다. 디바이스(150)는, (예컨대, 버스, 공유 메모리, 또는 스위치를 통해) 서로 통신하도록 구성된 통신 모듈(310) 및 사용자 인터페이스 모듈(320)을 포함하는 것으로 도시된다.
통신 모듈(310)은 e-커머스 서버(120 또는 140), 맵핑 서버(130), 또는 이들의 임의의 적절한 조합과 통신할 수 있다. 통신 모듈(310)을 통해 수신된 정보는 사용자 인터페이스 모듈(320)을 통해 제시(예컨대, 디스플레이 디바이스 상에 디스플레이)될 수 있다. 사용자 인터페이스 모듈(320)에 의해 제시된 사용자 인터페이스를 사용해서 사용자에 의해 정보가 선택될 수 있거나, 또는 검색 쿼리가 입력될 수 있다. 검색 쿼리는 통신 모듈(310)을 통해 e-커머스 서버(120, 140) 또는 맵핑 서버(130)에 통신될 수 있다. 통신 모듈(310)은 e-커머스 서버(120, 140) 또는 맵핑 서버(130)로부터 일련의 결과를 포함하는 응답을 수신할 수 있다. 검색 결과는 사용자 인터페이스 모듈(320)에 의해 사용자에게 제시될 수 있다. 예를 들어, 검색 결과는 리스트 보기(list view) 또는 갤러리 보기(gallery view)로 제시될 수 있다. 유사하게, 일반적인 결과 리스트 대신 데이터에 대한 사용자 정의된 보기(customized view)를 제공하는 브라우즈 노드가 제시될 수 있다.
도 4는, 일부 예시적인 실시형태들에 따른, 검색 결과를 제시하기에 적합한 사용자 인터페이스(400)를 나타내는 블럭도이다. 도 4에서 알 수 있듯이, 사용자 인터페이스(400)는 타이틀(410), "Search Results(검색 결과)"; 카테고리(420); 애스펙트(430); 및 4개의 검색 결과(440-470)를 포함한다.
사용자 인터페이스(400)는 사용자 쿼리에 응답하여 디스플레이될 수 있다. 예를 들어, 사용자가 디바이스(150) 상에 "sony camera(소니 카메라)"에 대한 쿼리를 입력하면, 해당 쿼리는 디바이스(150)로부터 맵핑 서버(130)에 전송될 수 있다. 맵핑 서버(130)는 쿼리 어구를, "cameras & photo(카메라 & 사진)"의 카테고리에서 "camcorders(캠코더)"의 서브-카테고리에서 "brand=sony(브랜드=소니)"의 애스펙트를 갖는 모든 아이템에 대한 검색으로 대체한다. e-커머스 서버(120 또는 140)는 대체 쿼리를 실행하고 검색 결과(440-470)를 사용자에게 디스플레이하기 위해 디바이스(150)에 송신한다.
각각의 검색 결과(440-470)는 검색 결과에 관한 추가 정보를 표시하도록 동작할 수 있다. 예를 들어, 검색 결과는 판매용 아이템일 수 있으며, 초기 검색 결과 화면은 아이템의 이미지 및 레이블을 보여줄 수 있다. 아이템의 이미지를 클릭하거나, 또는 달리 활성화하면, 아이템 설명, 추가 이미지, 가격 등과 같이, 아이템에 관한 추가 정보를 보여주는 새로운 페이지가 디스플레이될 수 있다.
결과는 아이템, 이벤트, 장소, 사람들 등을 포함할 수 있다. 아이템은 판매용 아이템 또는 구매를 원하는 아이템일 수 있다. 이벤트는 콘서트, 축제, 영화, 스포츠 이벤트 등일 수 있다. 장소는 기념물, 상점, 주유소, 식당, 경기장 등일 수 있다. 사람들은 사용자의 친구들, 유명 인사들, 또는 그 밖의 사람들일 수 있다. 일부 예시적인 실시형태들에 있어서, 디스플레이된 아이템, 이벤트, 장소, 또는 사람들 중 하나 이상은 지불된 광고비에 기초하여 선택된다.
도 5는, 일부 예시적인 실시형태들에 따른, 검색 결과를 제시하기에 적합한 사용자 인터페이스(500)를 나타내는 화면의 다이어그램이다. 도 5에서 알 수 있듯이, 사용자 인터페이스(500)는 타이틀(510), "Search Results(검색 결과)"; 결과 카운트(520); 카테고리(530); 애스펙트(540); 및 4개의 검색 결과(550-580)를 포함한다. 사용자 인터페이스(500)는 보다 큰 화면을 가진 디바이스 상의 검색 결과를 열람하는 사용자에게 제시될 수 있는 반면, 사용자 인터페이스(400)는 보다 작은 화면을 갖는 디바이스 상에 제시될 수 있다. 추가적인 스크린 영역은 결과 카운트(520) 뿐만 아니라 검색 결과(550-580)에서의 추가 정보의 제시를 허용할 수 있다. 예를 들어, 사용자 인터페이스(500)는 각각의 검색 결과(550-580)의 가격 및 설명을 포함하는 데 반해, 위에서 논의된 도 4의 실시예에 있어서는, 각각의 검색 결과(440-470)에 대한 이미지 및 레이블만이 도시된다.
도 6은, 일부 예시적인 실시형태들에 따른, 브라우즈 노드를 제시하기에 적합한 사용자 인터페이스(600)를 나타내는 화면의 다이어그램이다. 도 6에서 알 수 있듯이, 사용자 인터페이스(600)는 타이틀(610), "Browse Node Name(브라우즈 노드 이름)"; 결과 카운트(620); 카테고리(630); 애스펙트(640); 및 4개의 검색 결과(650-680)를 포함한다. 사용자 인터페이스(600)는 브라우즈 노드를 열람하는 사용자에게 제시될 수 있는 반면, 사용자 인터페이스(500)는 검색 결과를 열람하는 뷰어에게 제시될 수 있다. 사용자 인터페이스(600) 내의 하나 이상의 요소는 열람되는 특정 브라우즈 노드에 기초하여 제시된다. 대조적으로, 사용자 인터페이스(500)의 모든 요소는 검색 쿼리에 기초하여 동적으로 생성되거나(예컨대, 검색 결과(550-580)) 또는 검색 쿼리와 관계없이 제시된다. 따라서, 현실적으로는, 검색 결과 페이지의 잠재적인 수는 무한하며, 모든 가능한 쿼리에 대하여 상이한 검색 결과 페이지가 생성된다. 그러나, 각각의 브라우즈 노드는 특정 브라우즈 노드에 대하여 특정되는 적어도 하나의 요소를 포함하기 때문에, 브라우즈 노드의 잠재적인 수는 유한하다(예컨대, 각각의 브라우즈 노드의 생성에 수반되는 시간, 특정 요소에 대한 저장 공간, 또는 둘 모두에 의해 한정됨). 따라서, 브라우즈 노드는 무작위가 아니라 최선의 이점을 제공하는 방식으로 검색 쿼리에 대하여 생성되어야 한다.
도 7은, 일부 예시적인 실시형태들에 따른, 브라우즈 노드들의 계층구조를 나타내는 블럭도(700)이다. 블럭도(700)에 도시된 바와 같이, 브라우즈 노드들은 계층구조에서 상이한 레벨들에 존재할 수 있다. 최고 레벨에서, 사용자는 전체 제품 타입에 대한 정보를 열람할 수 있다. 제품 타입 열람하기로부터, 사용자는 카테고리 및 서브-카테고리로 드릴 다운(drill down)할 수 있다. 카테고리 또는 서브-카테고리 내에는, 특정 애스펙트 값들 및 조합들에 대한 추가적인 브라우즈 노드들이 존재할 수 있다. 예를 들어, 브라우즈 노드는 "brand=sony(브랜드=소니)", "color=black(컬러=블랙)", 또는 둘 모두에 대하여 생성될 수 있다. 별개의 애스펙트들의 가능한 조합들의 수에 의해 야기되는 조합적 확산(combinational explosion) 때문에, 보통은 모든 가능한 애스펙트들의 조합에 대하여 브라우즈 노드를 생성하는 것을 회피하는 것이 바람직하다. 예를 들어, 브랜드, 컬러, 및 사이즈에 대한 애스펙트들이 존재하고 각각의 애스펙트가 10개의 가능한 값(상한계(upper bound)를 의미하는 것은 아님)을 가지면, 다양한 조합들에 대하여, 각각의 조합에 대한 브라우즈 노드를 제공하기 위해, 1000개의 서로 다른 브라우즈 노드가 생성될 필요가 있다. 브라우즈 노드의 선택적인 생성은 최소 비용으로 대부분의 이점을 제공할 수 있다. 예를 들어, 10개의 브라우즈 노드가 사용자 관심사의 80%를 커버할 경우, 브라우즈 노드를 이들 10개로 제한하면 모두 1000개의 브라우즈 노드를 생성하는 비용의 1%로 80%의 이점이 제공된다.
애스펙트-제한된 브라우즈 노드들은 제품군 노드에 의해 더 정제된다. 제품군 노드는 밀접하게 관련된 아이템들의 관리 리스트를 포함한다. 예를 들어, "Cameras & Photo > Film Photography > Film Cameras(카메라 & 사진 > 필름 포토그래피 > 필름 카메라)"의 카테고리에 대하여 "brand=sony(브랜드=소니)" 및 "color=black(컬러=블랙)"으로 애스펙트-제한된 브라우즈 노드는 이들 기준에 일치하는 모든 아이템을 포함하게 된다. 다른 실시예로서, "Amazing Film Cameras(놀라운 필름 카메라)"에 대한 제품군 노드는 관리자의 판단으로 해당 기준에 맞는 일련의 아이템을 포함하게 된다.
특정 카테고리/애스펙트 조합에 대한 브라우즈 노드의 생성은 보다 양호한 브라우즈 경험을 제공할 수 있다. 예를 들어, 브라우즈 노드는 일반 애스펙트 필터와는 다르게 사용자에게 제시될 수 있어서, 사용자가 현재 브라우징된 카테고리에 대하여 인기있는 애스펙트 세트를 보다 쉽게 찾을 수 있게 한다. 부가적으로, 브라우즈 노드는 다른 검색 엔진들에서의 사이트의 순위를 향상시킬 수 있다. 예를 들어, 사이트가 모든 브라우즈 노드를 찾기 위해 웹 크롤러(web crawler)에 자연스러운 방식을 제공하는 경우, 특정 카테고리/애스펙트에 대한 브라우즈 노드 페이지는 동일 조합에 대한 검색 결과 페이지보다 높은 페이지 순위를 가질 개연성이 있다.
도 8은, 일부 예시적인 실시형태들에 따른, 입력 쿼리(810), 카테고리(820), 및 레이블링된 애스펙트(830) 사이의 예시적인 관계를 나타내는 블럭도(800)이다. 도 8의 실시예에 있어서, 입력 쿼리는 "Jordan 10 toddler(조단 10 토들러)"이다. 이 쿼리를 제출한 이후의 다른 사용자들의 상호작용, 이 쿼리를 제출한 이후의 현재 사용자의 상호작용, 현재의 쿼리와 동일한 콘텍스트에서의 사용자들의 상호작용, 또는 이들의 임의의 적절한 조합에 기초하여, 카테고리(820) 및 레이블링된 애스펙트(830)가 결정된다. 예를 들어, 2-단계 프로세스가 사용될 수 있다. 제1 단계에 있어서, 쿼리, 카테고리, 및 일련의 애스펙트 사이의 관계가 결정되고 딕셔너리에 저장된다. 딕셔너리를 생성하기 위해 지난 사용자 상호작용들을 채굴하는 이 프로세스는 주기적으로(예컨대, 매일 또는 매주) 수행될 수 있다. 제2 단계에 있어서, 사용자가 쿼리를 제출할 때, 대체 쿼리를 식별하기 위해 딕셔너리에 액세스된다. 일부 예시적인 실시형태들에 있어서, 두 단계는 쿼리가 수신될 때 수행된다. 딕셔너리가 사전에 준비되는 2-단계 구현예와 비교하여, 런타임(runtime) 해법은 처리 리소스를 더 소비하지만 보다 양호한 결과를 제공할 수 있다.
도 8의 실시예에 있어서, 결과적인 카테고리(820)는 "Clothing, Shoes & Accessories > Baby & Toddler Clothing > Baby Shoes(의류, 신발 & 액세서리 > 베이비 & 토들러 의류 > 베이비 신발)"이다. 결과적인 애스펙트(830)는 "US Shoe Size (Baby & Toddler) = 10(미국 신발 사이즈 (베이비 & 토들러) = 10)" 및 "Brand = Jordan(브랜드 = 조단)"이다. 따라서, 사용자가 "Jordan 10 toddler(조단 10 토들러)"에 대한 일반적인 쿼리를 제출하면, 애스펙트(830)를 갖는 카테고리(820)에서의 모든 결과가 사용자에게 디스플레이될 수 있다.
도 9는, 일부 예시적인 실시형태들에 따른, 결락된 브라우즈 노드를 식별하기에 적합한 인자들을 나타내는 블럭도(900)이다. 블럭도(900)에 도시된 바와 같이, 쿼리 키워드(905), 리콜(910), 콘텍스트(915), 기본 사용자 데이터(920), 쿼리 데이터 특징(925), 및 사용자 데이터 특징(930)이 광범위한 쿼리 모델(935)에 입력될 수 있다. 이들 입력을 총괄하여 입력(905-930)이라고 할 수 있다. 광범위한 쿼리 모델(935)은 하나 이상의 경험(940-950)을 생성할 수 있다.
쿼리 키워드(905)는 사용자에 의해 제출된 검색 쿼리의 일부일 수 있다. 예를 들어, 검색 쿼리는 선택된 이미지와 복수의 키워드로 구성될 수 있다.
리콜(910)은 검색 쿼리에 응답하여 사용자에 대하여 생성된 결과 세트를 포함할 수 있다. 이미지 및 복수의 키워드로 구성된 검색 쿼리의 실시예에 계속해서, 결과 세트는 선택된 이미지와 유사한 이미지들, 복수의 키워드 중 하나 이상을 포함하는 기사들, 선택된 이미지를 포함하는 기사들, 선택된 이미지와 유사한 이미지들을 포함하는 기사들, 복수의 키워드 중 하나 이상을 포함하는 타이틀 또는 메타데이터를 갖는 이미지들, 또는 다른 방식에서 해당 검색과 관련이 있는 것으로 확인된 결과들을 포함할 수 있다.
콘텍스트(915)는 쿼리가 제출되는 상황에 관한 임의의 정보를 포함할 수 있다. 예를 들어, 콘텍스트(915)는 검색 쿼리 및 사용자 뿐만 아니라, 사용되는 브라우저, 쿼리가 제출되는 시각, 어떤 쿼리들이 현재의 쿼리 이전에 제출되었는지, 및 쿼리가 제출되는 상황에 관한 임의의 다른 정보를 포함할 수 있다.
기본 사용자 데이터(920)는 쿼리를 제출하는 사용자에 관한 정보를 포함할 수 있다. 예를 들어, 기본 사용자 데이터(920)는 사용자의 이름, 나이, 주소, 성별, 소득 수준, 교육 수준, 결혼 여부, 및 사용자에 관한 기지의 임의의 다른 정보를 포함할 수 있다.
일부 예시적인 실시형태들에 있어서, 쿼리 키워드(905), 리콜(910), 콘텍스트(915), 및 기본 사용자 데이터(920)는, 쿼리 데이터 특징(925) 및 사용자 데이터 특징(930)에 관한 정보가 액세스되기 전에, 광범위한 쿼리 모델(935)에 의해 액세스된다. 다른 예시적인 실시형태들에 있어서는, 입력 데이터 요소들이 다른 순서로 광범위한 쿼리 모델(935)에 의해 액세스된다.
쿼리 데이터 특징(925)은 쿼리에 기초한 정보를 포함한다. 예를 들어, 현재의 검색 쿼리를 실행한 후에 다른 사용자들(또는 현재의 사용자를 포함한 모든 사용자들)에 의해 공통적으로 실행되는 검색은 쿼리 데이터 특징(925)일 것이다. 설명하자면, "mode=digital(모드=디지털)"의 애스펙트를 갖는 아이템들에 대한 검색은 "camera(카메라)"에 대한 검색을 빈번하게 따를 수 있다. 따라서, "mode=digital(모드=디지털)" 애스펙트는 "camera(카메라)" 쿼리에 대한 쿼리 데이터 특징(925)일 수 있다.
사용자 데이터 특징(930)은 사용자에 기초한 정보를 포함한다. 예를 들어, 다른 쿼리들에 대하여 현재의 사용자에 의해 공통적으로 실행되는 수정은 사용자 데이터 특징(930)일 수 있다. 설명하자면, 현재의 사용자는 동일한 검색 쿼리가 즉시 구매할 수 있는 아이템(예컨대, "Buy-It-Now(바로 구매)" 아이템)으로 제한되어 있는 아이템들에 대한 검색을 빈번하게 따를 수 있다. 따라서, Buy-It-Now(바로 구매) 애스펙트를 포함하도록 검색을 수정하는 것이 사용자에 대한 사용자 데이터 특징(930)일 수 있다. 기본 사용자 데이터(920) 및 사용자 데이터 특징(930)은 이들이 모두 특정 사용자에 대한 데이터를 포함한다는 점에서 유사하다. 차이는, 기본 사용자 데이터(920)가 사용자에 의해 직접 의도적으로 제공된 데이터(예컨대, 이름, 주소, 이메일 주소, 및 신용 카드 번호)를 포함하는 반면, 사용자 데이터 특징(930)이 사용자에 의해 취해진 행위에 기초하여 맵핑 서버(130) 또는 e-커머스 서버(120, 140)에 의해 도출된 데이터를 포함한다는 점이다.
입력 쿼리(쿼리 키워드(905)를 포함), 리콜(910), 콘텍스트(915), 및 기본 사용자 데이터(920)에 대하여 쿼리 데이터 특징(925) 및 사용자 데이터 특징(930)을 고려하고 나서, 광범위한 쿼리 모델(935)이 하나 이상의 경험(940-950)을 생성할 수 있다. 일부 예시적인 실시형태들에 있어서, 각각의 경험(940-950)은 하나 이상의 애스펙트를 포함하는 브라우즈 노드이다. 예를 들어, 광범위한 쿼리 모델(935)은 입력(905-930)을 사용해서 생성된 쿼리들에 다양한 가중치를 적용해서 경험(940-950)을 생성할 수 있다. 쿼리 데이터 특징(925)에 기초하여, "mode=digital(모드=디지털)"의 애스펙트를 갖는 "Cameras & Photo(카메라 & 사진)"의 카테고리에서의 아이템들에 대한 검색이 생성될 수 있다. 사용자 데이터 특징(930)에 기초하여, "Buy-It-Now(바로 구매)" 애스펙트를 갖는 "Cameras & Photo(카메라 & 사진)"의 카테고리에서의 아이템들에 대한 검색이 생성될 수 있다. 가중 인자들 또는 추천 계층구조에 기초하여, 생성된 검색들 중 하나가 사용자에게 결과를 제공하는 데 사용될 수 있다. "Buy-It-Now(바로 구매)" 애스펙트 및 "mode=digital(모드=디지털)" 애스펙트를 갖는 "Cameras & Photo(카메라 & 사진)"의 카테고리에서의 아이템들에 대한 검색의 조합된 추천이 생성될 수도 있다. 조합된 추천은, 가중 인자들 또는 추천 계층구조에 기초하여, 사용자에게 결과를 제공하는 데 사용될 수 있다. 다른 실시형태들에 있어서는, 가중 인자들 또는 계층구조들의 상이한 조합들이 사용될 수 있다.
따라서, 결정된 경험(940-950)이 아직 생성되어 있지 않은 브라우즈 노드일 경우, 맵핑 서버(130) 또는 e-커머스 서버(120 또는 140)는 상응하는 브라우즈 노드를 생성하라는 요청을 생성할 수 있다. 해당 요청은 관리자에 의해 취급되거나 또는 브라우즈 노드의 자동 생성을 초래할 수 있다.
도 10은, 일부 예시적인 실시형태들에 따른, 결락된 브라우즈 노드를 식별하는 방법(1000)을 수행함에 있어서 맵핑 서버(130)의 동작을 나타내는 흐름도이다. 방법(1000)에서의 동작들은 도 2와 관련하여 전술한 모듈들을 사용해서 맵핑 서버(130)에 의해 수행될 수 있다.
동작(1010)에 있어서, 평가 모듈(220)은 쿼리 및 열람된(viewed) 아이템 데이터를 취득한다. 예를 들어, 도 12 내지 도 14의 과거 사용자 거동 데이터는 특정 쿼리에 기인한 성공적인 세션들을 결정하기 위해 액세스될 수 있다. 일부 예시적인 실시형태들에 있어서, 개개의 아이템을 열람하는 것은 세션이 성공적이었음을 보여준다. 다양한 예시적인 실시형태들에 있어서는, 열람된 아이템들을 대신해서 성공적인 세션의 다른 척도들이 사용된다. 성고적인 세션은 사용자가 어떤 방식으로든 아이템과 상호작용하는 세션(예컨대, 아이템 열람, 아이템에 대한 입찰, 아이템 구매, 아이템 구독 등) 또는 사용자가 특정 상호작용을 수행하는 세션(예컨대, 아이템에 대한 입찰, 아이템 구매, 또는 둘 모두)일 수 있다. 성공하지 못한 세션은 특정 실시형태에 의해 사용된 성공의 정의에 따라 성공적이지 않은 임의의 세션이다. 성공적인 세션 및 성공하지 못한 세션을 식별하기 위해 다른 기준이 사용될 수도 있다. 따라서, 방법(1000)은 성공적인 세션에 대한 다른 기준들을 사용해서 수행될 수 있지만, 아래에서는 열람된 아이템을 사용해서 설명된다.
평가 모듈(220)은 동작(1020)에서 유사한 쿼리들을 함께 조합한다. 쿼리들 사이의 유사성은 거리 측정기준(distance metric)에 의해 판단될 수 있고, 임계치보다 낮은 거리를 갖는 쿼리들이 조합된다. 예를 들어, "nike shoes(나이키 신발)" 및 "shoes nike(신발 나이키)"는 동일한 쿼리는 아니지만, 거리 측정기준은 해당 쿼리들이 동일한 단어들을 다른 순서로 포함하고 있기 때문에 서로 유사하다는 것을 보여줄 수 있다. 유사하게, "dvd movie(dvd 영화)" 및 "dvd movies(dvd 영화들)"은 동일한 쿼리는 아니지만, 거리 측정기준은 하나의 쿼리에 있는 단어가 다른 쿼리에 있는 단어의 복수형이기 때문에 해당 쿼리들이 서로 유사하다는 것을 보여줄 수 있다. 일부 예시적인 실시형태들에 있어서, 쿼리들을 함께 조합하는 것은 어느 하나의 쿼리에 대하여 열람된 아이템들이 두 쿼리 모두에 대하여 열람된 것으로 간주되게 한다. 다른 예시적인 실시형태들에 있어서는, 쿼리들을 함께 조합하는 것은 유사한 쿼리들에 대하여 열람된 아이템들이 유사한 쿼리들 중 가장 인기있는 쿼리에 대하여 열람된 것으로 간주되게 하고; 나머지 유사한 쿼리들은 무시된다.
동작(1030)에 있어서, 평가 모듈(220)은 열람된 아이템들에 대한 아이템-특정 정보를 취득한다. 예를 들어, 열람된 아이템들 각각의 카테고리 및 애스펙트는 과거 사용자 거동 데이터로부터 검색될 수 있다. 일부 예시적인 실시형태들에 있어서, 각각의 아이템에 대한 추가 정보가 취득된다. 예를 들어, 아이템의 타이틀, 판매자에 의해 제공된 아이템에 대한 태그, 구매자에 의해 제공된 태그, 또는 이들의 임의의 적절한 조합이 취득된다.
동작(1040)에 있어서, 딕셔너리 모듈(230)은 쿼리-특정 애스펙트 딕셔너리를 구축한다. 쿼리-특정 애스펙트 딕셔너리는 쿼리로부터 액스펙트들의 룩업을 허용한다. 쿼리-특정 애스펙트 딕셔너리를 구축하기 위해 다양한 알고리즘이 사용될 수 있다. 일부 예시적인 실시형태들에 있어서는, 쿼리에 응답하여 열람된 각각의 애스펙트를 갖는 아이템들의 비율이 결정된다. 결정된 비율은 임계치와 비교되고, 임계치가 초과되었으면, 해당 애스펙트가 딕셔너리에 추가된다. 예를 들어, 임계치가 80%이고, "nike shoes(나이키 신발)"에 대한 검색 이후에 열람된 아이템들의 90%가 애스펙트 "brand=nike(브랜드=나이키)"를 가지면, "brand=nike(브랜드=나이키)"는 쿼리 "nike shoes(나이키 신발)"에 대한 애스펙트로서 추가되게 된다.
동작(1050)에 있어서, 딕셔너리 모듈(230)은 쿼리의 n-gram과 애스펙트 딕셔너리 사이의 정확한 매칭 및 퍼지 매칭(exact and fuzzy matching)을 수행함으로써 쿼리-특정 애스펙트 딕셔너리를 쿼리에 적용한다. 즉, 각각의 쿼리는 용어들로 이루어지고; n-gram은 n개의 용어를 포함하는 쿼리의 서브세트이다. 예를 들어, "nike shoes(나이키 신발)"에 대한 쿼리는 2개의 1-gram("nike(나이키)" 및 "shoes(신발)")과 1개의 2-gram("nike shoes(나이키 신발)")을 포함한다. 정확한 매칭의 경우, 쿼리에 대하여 3개의 n-gram이 애스펙트 딕셔너리에서 탐색되어서 상응하는 애스펙트를 식별한다. 퍼지 매칭의 경우, 용어들의 어근 어간 추출(root stemming)이 또한 수행된다. 예를 들어, 복수형 단어는 단수형으로 변환되고, 접미사(예컨대, -하게(-ly) 및 -하는(-ing))가 삭제되는 등이다. 애스펙트 딕셔너리에서의 다수의 룩업은 다수의 결과를 제공한다.
n-gram은 먼저 최장의 n-gram부터 시작해서 탐색된다. 매칭되는 n-gram들이 확인되면, 해당 n-gram의 토큰들은 추가 검색을 위해 무시된다. 모든 n-gram이 애스펙트의 식별에 사용되었으면, 식별된 애스펙트들을 쿼리와 연계시키기 위해 글로벌 애스펙트 딕셔너리가 업데이트된다. 동일한 길이의 n-gram들의 경우, 결과적인 애스펙트의 인기도가 사용될 수 있다. 예를 들어, "Men's Belt(남성용 벨트)" 카테고리에서의 "levis belt buckle(리바이스 벨트 버클)"에 대한 쿼리는 "brand=buckle(브랜드=버클)" 또는 "brand=Levi's(브랜드=리바이스)"에 맵핑될 수 있다. "brand=Levi's(브랜드=리바이스)"에 대한 검색이 "Men's Belt(남성용 벨트)" 카테고리에서는 보다 일반적이기 때문에, 해당 애스펙트가 우선시될 수 있다. 사용자가 "Levi's(리바이스)"를 포함하지 않고 "belt buckle(벨트 버클)"에 대해서 검색했다면, "brand=buckle(브랜드=버클)"에 대한 추가 검색이 소정의 임계치를 초과했을 경우, "brand=buckle(브랜드=버클)"의 애스펙트는 쿼리에 자동으로 추가될 수 있다.
일부 예시적인 실시형태들에 있어서는, 애스펙트들이 현재의 사용자 및 다른 사용자들의 사용 패턴에 기초한 레이블링을 위해 선택된다. 일부 예시적인 실시형태들에 있어서, 애스펙트들은 광고료, 판촉, 계절 등에 기초하여 생성된다. 예를 들어, St. Patrick's Day(성 패트릭의 날)에 대한 추천된 검색은 단어 "color=green(컬러=그린)"을 검색 쿼리에 추가할 수 있다. 맵핑 서버(130)는 또한, 애스펙트가 제공되어야 할지 또는 전혀 제공되지 않아야 할지의 여부를 결정할 수도 있다. 예를 들어, 애스펙트가 이미 쿼리 검색에 적용되었으면, 맵핑 서버(130)는 다른 애스펙트를 해당 쿼리에 적용하는 것을 회피하기로 결정할 수 있다.
고려해야할 다른 요소로서, 카테고리 트리에서의 카테고리 레벨이 고려될 수 있다. 예를 들어, 카테고리 트리의 하부 근방의 좁은 카테고리는 애스펙트들을 레이블링하는 데 바람직할 수 있지만, 카테고리 트리의 상부 근방의 넓은 카테고리는 그렇지 않다. 따라서, 일부 예시적인 실시형태들에 있어서는, 예를 들어, 식별된 카테고리가 카테고리 트리의 뿌리 노드의 두 레벨 이내에 있지 않은 경우와 같이, 식별된 카테고리가 좁은 카테고리일 경우에만 애스펙트가 레이블링된다.
동작(1060)에 있어서, 맵핑 서버(130)의 평가 모듈(220)은 레이블링된 쿼리에 대하여 브라우즈 노드가 존재하는지를 결정한다. 예를 들어, 맵핑 서버(130)는 e-커머스 서버(120 또는 140)로부터 레이블렝된 쿼리에 대한 브라우즈 노드를 요청하고, 브라우즈 노드가 존재하지 않음을 나타내는 응답으로 에러 메시지 또는 널(null) 값을 수신할 수 있다. 브라우즈 노드가 존재하지 않으면, 맵핑 서버(130)는 e-커머스 서버(120 또는 140)에 브라우즈 노드를 생성하라는 요청을 전송한다.
도 11은, 일부 예시적인 실시형태들에 따른, 결락된 브라우즈 노드를 생성하는 방법(1100)을 수행함에 있어서 맵핑 서버(130)의 동작을 나타내는 흐름도이다. 방법(1100)에서의 동작들은 도 2와 관련하여 전술한 모듈들을 사용해서 맵핑 서버(130)에 의해 수행될 수 있다.
동작(1110)에 있어서, 맵핑 서버(130)는 쿼리 데이터를 취득한다. 예를 들어, 도 12에서 설명되는 것들과 같은 과거 쿼리들은 과거 사용자 거동 데이터베이스 또는 쿼리 모델링 데이터베이스로부터 취득될 수 있다.
동작(1120)에 있어서, 맵핑 서버(130)는 유사한 쿼리들을 함께 조합한다. 예를 들어, 쿼리 데이터는 일정 기간 동안 수신된 각각의 쿼리 및 해당 쿼리가 수신된 횟수의 카운트를 포함할 수 있다. 유사한 쿼리들은 해당 유사한 쿼리들 중 하나를 제외한 전부를 삭제하고 삭제된 쿼리들의 카운트를 잔여 쿼리의 카운트에 추가함으로써 조합될 수 있다. 설명하자면, 100회 발생의 카운트를 갖는 "Gucci bag(구찌 가방)", 및 200회 발생의 카운트를 갖는 "Gucci bags(구찌 가방들)"은 "bag(가방)"과 "bags(가방들)"이 균등한 것이라고 결정하기 위해 어근 어간 추출을 사용함으로써 유사한 것으로 확인될 수 있다. 보다 인기있는 쿼리, 즉 "Gucci bags(구찌 가방들)"이 유지될 수 있고, 인기가 낮은 쿼리는 폐기된다. 따라서, 유사한 쿼리들이 조합된 후에, 300회 발생의 카운트를 갖는 "Gucci bags(구찌 가방들)"가 남게 되고, "Gucci bag(구찌 가방)"은 더 이상 쿼리로서 표시되지 않게 된다.
동작들(1130-1150)은 전술한 동작들(1030-1050)을 반영한다. 동작(1130)에 있어서, 평가 모듈(220)은 열람된 아이템들에 대한 아이템-특정 정보를 취득한다. 동작(1140)에 있어서, 딕셔너리 모듈(230)은 쿼리-특정 애스펙트 딕셔너리를 구축한다. 동작(1150)에 있어서, 딕셔너리 모듈(230)은 쿼리의 n-gram과 애스펙트 딕셔너리 사이의 정확한 매칭 및 퍼지 매칭을 수행함으로써 쿼리-특정 애스펙트 딕셔너리를 쿼리에 적용한다.
동작(1160)에 있어서, 평가 모듈(220)은 브라우즈 노드 없이 카테고리와 애스펙트 조합들의 패턴을 식별한다. 예를 들어, "Cameras(카메라)" 카테고리에 있어서, 특정 미디어 포맷(예컨대, "마이크로 SD(Micro SD)", "컴팩트 플래시(Compact Flash)", 또는 "메모리 스틱(Memory Stick)")과 조합하여 특정 브랜드(예컨대, "Nikon(니콘)" 또는 "Canon(캐논)")에 대하여 많은 검색이 실행될 수 있다. 임계치를 초과하는 이러한 모든 검색들 전부 및 존재하지 않는 브라우즈 노드들 중 적어도 하나에 기초하여, 카테고리와 애스펙트 조합들의 패턴이 식별된다. 따라서, 브라우즈 노드 생성을 위해 어떠한 단일 조합(예컨대, "Nikon Micro SD(니콘 마이크로 SD)")도 임계치를 초과할 수 없다 해도, 전체로서의 패턴은 여전히 일련의 브라우즈 노드의 생성을 정당화하는 데 충분한 관심을 가질 수 있다.
동작(1170)에 있어서, 평가 모듈(220)은 결정된 패턴에 대하여 하나 이상의 브라우즈 노드를 생성하라고 e-커머스 서버(120 또는 140)에 요청한다. 일부 예시적인 실시형태들에 있어서, 브라우즈 노드는 식별된 카테고리 및 애스펙트들의 각각의 조합에 대하여 생성된다. 다른 예시적인 실시형태들에 있어서는, 어떤 조합들이 생성된 브라우즈 노드들을 연계시킬 것인지를 결정하기 위해 제2 임계치가 사용된다. 예를 들어, 패턴과 매칭되는 10개의 가장 인기있는 카테고리/애스펙트 조합이 상응하는 생성된 브라우즈 노드들을 가질 수 있다.
도 12는, 일부 예시적인 실시형태들에 따른, 쿼리들을 애스펙트들로 레이블링하는 방법을 수행함에 있어서 쿼리 데이터 특징의 사용을 나타내는 블럭도(1200)이다. 데이터베이스(1210)는 다수의 시스템 사용자의 거동에 관한 데이터를 포함하여, 과거 사용자 거동 데이터를 저장한다. 일 실시형태에 있어서는, 모든 사용자의 행위에 관한 데이터가 데이터베이스(1210)에 저장된다. 과거 사용자 거동 데이터로부터, 각각의 고유한 검색 쿼리에 대한 성공적인 세션에 있어서 카테고리, 애스펙트, 글로벌 필터 등에 대한 사용 측정기준(usage metrics)(1220)이 추출될 수 있다. 유사하게, 각각의 고유한 검색 쿼리에 대한 성공하지 못한 세션에 있어서 카테고리, 애스펙트, 글로벌 필터 등에 대한 사용 측정기준(1230)이 추출될 수 있다. 사용 측정기준(1220 및 1230)은, 동일 쿼리의 장래의 사용에 있어서 바람직할 수 있는 카테고리, 애스펙트, 및 글로벌 필터를 모델링하는 데 사용되고, 데이터베이스(1240)에 쿼리 모델링 데이터로서 저장될 수 있다.
도 13은, 일부 예시적인 실시형태들에 따른, 쿼리들을 애스펙트들로 레이블링하는 방법을 수행함에 있어서 사용자 데이터 특징의 사용을 나타내는 블럭도(1200)이다. 데이터베이스(1310)는 사용자들에 의해 실행된 검색 쿼리들 및 각각의 검색 쿼리에 기인하는 행위들의 시퀀스를 포함하여, 과거 사용자 거동 데이터를 저장한다. 예를 들어, 특정 세션에 있어서, 초기 검색 쿼리가 실행되고 나서, 카테고리 필터가 추가되고, 다른 용어가 해당 쿼리에 추가되고, 애스펙트 필터가 추가되고, 제1 아이템이 열람되고, 제2 아이템이 열람되고, 마지막으로 제2 아이템에 대하여 입찰이 행해질 수 있다. 과거 사용자 거동 데이터로부터, 각각의 고유한 사용자에 대한 성공적인 세션에 있어서 카테고리, 애스펙트, 글로벌 필터 등에 대한 사용 측정기준(1320)이 추출될 수 있다. 유사하게, 각각의 고유한 사용자에 대한 성공하지 못한 세션에 있어서 카테고리, 애스펙트, 글로벌 필터 등에 대한 사용 측정기준(1330)이 추출될 수 있다. 사용 측정기준(1320 및 1330)은, 동일 사용자에 의한 장래의 쿼리에 있어서 바람직할 수 있는 카테고리, 애스펙트, 및 글로벌 필터를 모델링하는 데 사용되고, 데이터베이스(1340)에 사용자 모델링 데이터로서 저장될 수 있다.
도 14는, 일부 예시적인 실시형태들에 따른, 쿼리들을 애스펙트들로 레이블링하는 방법을 수행함에 있어서 콘텍스트 데이터 특징의 사용을 나타내는 블럭도(1400)이다. 데이터베이스(1410)는 과거 사용자 거동 데이터를 저장한다. 과거 사용자 거동 데이터로부터, 성공적인 세션에 있어서 쿼리 변경, 디바이스, 브라우저, 장소, 시간, 계절 등에 대한 사용 측정기준(1420)이 추출될 수 있다. 유사하게, 성공하지 못한 세션에 있어서 쿼리 변경, 디바이스, 브라우저, 장소, 시간, 계절 등에 대한 사용 측정기준(1430)이 추출될 수 있다. 사용 측정기준(1420 및 1430)은, 유사한 콘텍스트에서의 장래의 쿼리에 있어서 바람직할 수 있는 카테고리, 애스펙트, 및 글로벌 필터를 모델링하는 데 사용되고, 데이터베이스(1440)에 콘텍스트 모델링 데이터로서 저장될 수 있다. 콘텍스트 모델링 데이터는 쿼리의 콘텍스트와 관련된 데이터를 포함하고, 동일 콘텍스트 또는 유사한 콘텍스트로부터 발행된 이전의 쿼리를 기반으로 한다. 예를 들어, 콘텍스트는 쿼리가 제출된 브라우저, 쿼리가 생성된 계절 등을 포함할 수 있다. 과거 콘텍스트 데이터에 기초하여, 여름 동안의 재킷에 대한 검색은 보통 바람막이 재킷에 대한 관련 검색으로 이어질 수 있지만, 겨울 동안의 재킷에 대한 검색은 보통 코트에 대한 관련 검색으로 이어질 수 있다. 따라서, 쿼리 모델링 데이터는 관련 검색으로서 코트와 바람막이 재킷 모두를 제안하게 되지만, 콘텍스트 모델링 데이터는 계절에 기초한 적절한 관련 검색을 제안하게 된다.
도 15는, 일부 예시적인 실시형태들에 따른, 쿼리(1510)의 애스펙트들의 레이블링시에 고려될 수 있는 인자를 나타내는 블럭도(1500)이다. 쿼리 모델링 데이터(1520), 콘텍스트 모델링 데이터(1530), 및 사용자 모델링 데이터(1540)가, 도시된 바와 같이, 별도의 데이터베이스에, 또는 결합된 데이터베이스에 저장될 수 있다. 쿼리 모델링 데이터(1520)는 도 12에 도시된 바와 같이 데이터베이스(1210) 내의 과거 사용자 거동 데이터로부터 도출될 수 있다. 콘텍스트 모델링 데이터(1530)는 도 14에 도시된 바와 같이 데이터베이스(1410) 내의 과거 사용자 거동 데이터로부터 도출될 수 있다. 사용자 모델링 데이터(1540)는 도 13에 도시된 바와 같이 데이터베이스(1310) 내의 과거 사용자 거동 데이터로부터 도출될 수 있다.
콘텍스트 모델링 데이터(1530)의 적용은 사용자에 의해 사용되는 디바이스 타입에 의존할 수 있다. 예를 들어, 디바이스는 개인용 컴퓨터, 태블릿, 또는 스마트폰일 수 있다. 브라우저의 브랜드 및 버전이 사용자 디바이스에 의해 보고될 수도 있다. 예를 들어, 브라우저는 인터넷 익스플로러(Internet Explorer) 8 또는 크롬(Chrome) 버전 32.0일 수 있다. 부가적으로 또는 대안으로서, 브라우저 정보는 브라우저의 하나 이상의 특징을 나타낼 수 있다. 예를 들어, 브라우저는 프레임, 팝-업, 또는 자바스크립트(JavaScript)를 지원할 수 있다. 또한, 스크린 사이즈 또는 해상도는 맵핑 서버(130)에 이용 가능하게 이루어질 수 있다. 따라서, 유사한 디바이스들을 사용하는 현재의 사용자 또는 다른 사용자들의 이전의 거동에 기초하여, 애스펙트들이 콘텍스트에 기초하여 서로 다르게 레이블링될 수 있다. 예를 들어, 데스크톱 컴퓨터로부터 "눈부심 필터(glare filter)"에 대한 검색은 스마트폰으로부터 실행된 동일 검색과는 다른 사이즈 애스펙트 값을 초래할 수 있다.
유사하게, 위치정보는 사용자 디바이스의 IP 어드레스에 기초하여 생성된 사용자 디바이스의 대략적인 위치를 제공할 수 있다. 예를 들어, 사용자 디바이스의 IP 어드레스는 인터넷을 통한 2대의 기계 사이의 통신에 의해 맵핑 서버(130)에게 알려질 수 있다. 사용자 디바이스의 IP 어드레스는 등록된 IP 어드레스의 데이터베이스를 검색해서 해당 IP 어드레스에 대응하는 물리적 어드레스를 식별하는 데 사용될 수 있다. 물리적 어드레스는 거리 주소, 도시, 주, 국가, 또는 다른 정치적 또는 지리적 위치일 수 있다. 세션 콘텍스트는, 예를 들어, 세션이 존재한 시간의 길이, 세션에서 실행된 쿼리의 수, 세션 동안 송신된 결과의 수 등과 같이, 맵핑 서버(130)와 사용자 디바이스 사이의 통신을 위한 세션 데이터를 포함할 수 있다.
일부 예시적인 실시형태들에 있어서는, 높은 빈도의 키워드들만이 레이블링된다. 높은 빈도의 키워드는 일정 기간의 최소 임계 시간 이상 동안 검색되는 키워드이다. 예를 들어, 높은 빈도의 키워드는 월간 적어도 1000개의 세션에서 검색되는 키워드일 수 있다. 다른 실시예에 있어서, 임계치는 특정 수의 높은 빈도의 키워드를 대상으로 하여 결정될 수 있다. 예를 들어, 임계치는 가장 빈번하게 검색된 60,000개의 키워드가 높은 빈도의 키워드인 것으로 간주되도록 설정될 수 있다. 키워드의 애스펙트 및 각 카테고리의 성공 및 사용 비율이 결정될 수 있다. 가장 빈번하게 사용된 카테고리 및 애스펙트가 식별되고 브라우즈 노드로서 제시될 수 있다. 카테고리 또는 애스펙트를 제시하기 위한 결정은 카테고리 또는 애스펙트의 성공 비율이 임계치를 초과하는지의 여부에 의해 좌우될 수 있다. 예를 들어, 특정 키워드는 다수의 애스펙트에 광범위하게 연계될 수 있고, 각각의 애스펙트는 10% 이하의 성공 비율을 갖는다. 10%의 성공 비율은 임계치보다 낮을 수 있으며, 어떠한 애스펙트도 브라우즈 노드로서 제시하지 말라는 결정이 이루어질 수 있다. 다른 키워드의 경우, 특정 애스펙트는 임계치보다 높을 수 있는 40%의 성공 비율을 가질 수 있으며, 해당 애스펙트를 브라우즈 노드로서 제시하기 위한 선택이 이루어질 수 있다.
애스펙트들의 각각의 키워드와의 연계는 차후의 액세스를 위해 (예컨대, 데이터베이스에) 저장되거나 또는 쿼리가 수신될 때마다 동적으로 생성될 수 있다. 애스펙트들이 차후의 액세스를 위해 글로벌 애스펙트 딕셔너리에 저장되는 실시형태들에 있어서는, 이전의 애스펙트 레이블의 생성 이래 경과된 시간에 쿼리 및 사용자에 대하여 수집된 추가 데이터에 기초하여 연계가 주기적으로 업데이트될 수 있다. 예를 들어, 애스펙트 레이블링은 높은 빈도의 키워드에 대하여 수행되고 주 단위로 업데이트될 수 있다.
검색 키워드에 대한 애스펙트 레이블을 저장하는 데이터베이스는 각각의 키워드 또는 쿼리에 대하여 다수의 데이터 필드를 저장할 수 있다. 예를 들어, 하기의 것들이 각각 저장될 수 있다: 키워드 또는 쿼리가 사용된 세션 수("TotalSessions"), 사용자가 아이템과 상호작용하게 된 해당 세션의 비율("SrpEventsRatio"), 평균 성공하지 못한 검색에 대한 평균 성공적인 검색에서 사용된 추가 카테고리 수("CategoryEventsRatio"), 성공적인 세션에서 사용된 평균 애스펙트 제한 수("SuccessAspectEvents"), 성공적인 세션에서 열람된 평균 결과 페이지 수("SuccessPaginationEvents"), 성공적인 세션 수("SuccessSrpEvents"), 성공적인 세션에서 사용된 평균 글로벌 필터 제한 수("SuccessGlobalFilterEvents"), 사용자가 아이템과 상호작용하게 된 글로벌 필터를 사용하는 세션의 비율("GlobalFilterEventsRatio"), 평균 성공하지 못한 검색에 대한 평균 성공적인 검색에서 열람된 추가 페이지 수("PaginationEventsRatio"), 성공적인 세션에서 사용된 평균 카테고리 제한 수("SuccessCategoryEvents"), 및 평균 성공하지 못한 검색에 대한 평균 성공적인 검색에서 사용된 추가 애스펙트 수("AspectEventsRatio").
추천된 애스펙트 타입에 대하여 하기의 것들 중 하나 이상이 저장될 수 있다: 쿼리의 총 사용 수("total_imp"), 애스펙트 타입의 사용이 성공으로 된 시간의 비율("n_ctr"), 애스펙트 타입의 이름("aspectName"), 애스펙트 타입과 연계된 바로 구매 이벤트 수("n_bin"), 애스펙트 타입이 사용된 시간의 비율("n_imp_per"), 애스펙트 타입이 사용된 횟수("n_imp"), 및 이 애스펙트 타입을 사용해서 생성된 성공의 수("n_clicks").
추천된 애스펙트 값에 대하여 하기의 것들이 각각 저장될 수 있다: 쿼리의 총 사용 수("total_imp"), 애스펙트의 값("value"), 애스펙트의 사용 수("v_imp"), 애스펙트를 갖는 성공의 수("v_clicks"), 애스펙트에 기인하는 바로 구매 이벤트의 수("v_bin"), 및 애스펙트를 표현하는 이미지의 URL("url").
어떤 애스펙트가 쿼리를 레이블링할지에 관한 결정은 이들 값들 중 어느 하나 또는 이들의 조합(들)에 대응하는 임계치에 의해 좌우될 수 있다. 일부 예시적인 임계치는, CategoryEventsRatio >= 0, AspectEventsRatio >= 0, SuccessCategoryEvents >= 0, SuccessAspectEvents >= 0, n_imp_per >=50%, 및 n_imp_per >= 0%를 포함한다.
쿼리(1510), 쿼리 모델링 데이터(1520), 콘텍스트 모델링 데이터(1530), 및 사용자 모델링 데이터(1540)는 어떤 애스펙트가 쿼리를 레이블링할지를 결정하는 순위화 엔진(1550)에의 입력으로서 사용될 수 있다. 예를 들어, 대부분의 개별 모델링 데이터를 사용해서 생성된 애스펙트들이 일치하는 경우, 이들 애스펙트는 쿼리를 레이블링하는 데 사용될 수 있다. 다른 실시예로서, 모두 3가지의 데이터 분석에 의해 제공된 애스펙트들은 서로 충돌하지 않는 한 사용될 수 있으며, 그 경우에는 우선 순위가 적용된다. 예를 들어, "Nikon camera(니콘 카메라)"에 대한 검색을 위해 "color=black(컬러=블랙)"의 애스펙트가 추천된다고 쿼리 모델링 데이터(1520)가 제안하고, 한편 "Nikon camera(니콘 카메라)"에 대한 검색을 위해 "color=silver(컬러=실버)"의 애스펙트가 추천된다고 콘텍스트 모델링 데이터(1530)가 제안하면, 데이터 소스의 소정의 우선순위에 기초하여 하나의 애스펙트가 사용되고 다른 하나의 애스펙트는 무시될 수 있다.
동작(1560)에 있어서, 순위화 엔진(1550)의 출력은 쿼리(1510)를 애스펙트들로 레이블링하는 데 사용된다. 레이블링된 쿼리는 검색 결과를 사용자에게 제공하는 데 사용되거나 또는 맵핑 서버(130)에 의한 차후의 사용을 위해 딕셔너리에 저장될 수 있다.
애스펙트를 사용하는 다른 종류의 검색도 상기의 프로세스를 이용할 수 있다. 예를 들어, 웹 페이지는 생성일, 최종 수정일, 사이즈, 작성자, 및 토픽의 애스펙트를 가질 수 있다. 따라서, 웹 페이지에 대한 검색 쿼리는, 동일 또는 유사한 쿼리의 이전의 사용 이후에 열람된 웹 페이지의 애스펙트를 식별하는 것, 해당 애스펙트를 애스펙트 데이터베이스에 저장하는 것, 차후의 쿼리가 수신될 때 애스펙트를 탐색하는 것, 및 차후의 쿼리에 대한 결과 세트를 빈번하게 요망된 애스펙트를 갖는 웹 페이지로 제한하는 것에 의해 향상될 수 있다. 로컬 하드 드라이브 파일 검색, 이메일 아카이브 검색 등에도 유사한 이점이 있다.
도 16 내지 도 17은, 일부 예시적인 실시형태들에 따른, 결락된 브라우즈 노드를 식별하는 방법(1600)을 수행함에 있어서 맵핑 서버(130)의 동작을 나타내는 흐름도이다. 방법(1600)에서의 동작들은 도 2와 관련하여 전술한 모듈들을 사용해서 맵핑 서버(130)에 의해 수행될 수 있다.
요소들(1601-1604)은 방법(1600)에서 사용된 데이터 요소이다. 쿼리-리프카테고리(query-leafcat)의 콘텍스트 내의 애스펙트 및 타이틀 어구(요소(1601))는 특정 애스펙트 및 타이틀 어구(즉, 타이틀에 나타나는 n-gram)가 개별 리프 카테고리(즉, 서브-카테고리가 없는 카테고리) 상에 나타나는 빈도를 보여준다. 동의어 딕셔너리(요소(1602))는 n-gram을 그 기본형으로 대체하는 것을 허용한다. 예시적인 동의어 매칭은, 약어(예컨대, 10 meter amp = 10 meter amplifier; 4wd = four wheel drive), 숫자 표현(예컨대, thirty one = 31; Samsung galaxy 2 = Samsung galaxy ii), 일반적인 대체(예컨대, rotary phase converter = 3 phase converter), 전통적인 동의어(예컨대, vintage = antique; handbag = purse), 띄어쓰기 없애기(예컨대, iphone 4 = iphone4; Samsung galaxy 2 = Samsung galaxy2), 및 포함 매칭(예컨대, running shoes = running/cross-training shoes; thing 1 thing 2 = Dr. Seuss Thing 1 and Thing 2)을 포함한다.
리프 카테고리 레벨에서의 글로벌 구매자 태그(요소(1604))는, 특정 구매자 태그(즉, 구매자에 의해 제공된 태그)가 개별 리프 카테고리의 아이템 상에 나타나는 빈도를 보여준다. 카테고리 사이트 이동 경로(category bread crumb)(요소(1603))는 리프 카테고리에 대한 전체 경로를 보여준다.
동작(1610)에 있어서, 적어도 3개의 문자를 갖는 쿼리에서의 각각의 토큰이 어간 추출된다. 예를 들어, 포터 어간 추출 알고리즘(Porter Stemming Algorithm)이 각 토큰의 어간을 찾는 데 사용될 수 있다. 설명하자면, 토큰 "happiness"는 어간 "happy"로 대체될 수 있고, 토큰 "jumping"은 어간 "jump"로 대체될 수 있다.
동작(1620)에 있어서, 카테고리 사이트 이동 경로에서의 임의의 토큰과 매칭되는 쿼리에서의 임의의 토큰은 해당 쿼리로부터 제외된다. 카테고리 사이트 이동 경로는 카테고리 트리의 뿌리 노드로부터 쿼리와 연관된 카테고리까지의 카테고리들 및 서브-카테고리들의 완전한 시퀀스이다. 예를 들어, 쿼리가 "nike shoes(나이키 신발)"이고 카테고리 사이트 이동 경로가 "Clothing > Shoes & Apparel(의류 > 신발 & 의복)"이면, 토큰 "shoes(신발)"는, 해당 토큰이 카테고리 사이트 이동 경로에 나타나기 때문에, 쿼리로부터 제외된다.
동작(1630)에 있어서, 맵핑 서버(130)는 소정의 사이즈 범위(예컨대, 1-5)로 쿼리 내의 모든 n-gram으로부터 후보 어구 세트를 생성한다. 상기의 실시예에 있어서, 쿼리에 남아 있는 유일한 토큰은 1-gram인 "nike(나이키)"이다.
동작(1640)에 있어서, 로컬 구매자 및 판매자 태그 딕셔너리들이 생성되고 신뢰도 지수에 기초하여 분류된다. 예를 들어, 쿼리의 리프 카테고리(leafcat)에서의 아이템들에 대한 요소(1604)에서의 각각의 구매자 태그가 식별되고 인기도에 기초하여 분류될 수 있다. 유사하게, 쿼리의 리프 카테고리(leafcat)에서의 아이템들에 대한 각각의 판매자 태그가 식별되고 인기도에 기초하여 분류될 수 있다. 신뢰도 지수를 결정하기 위해 다른 인자들이 사용될 수 있다. 예를 들어, 다른 사용자들보다 높은 피드백 스코어를 갖는 사용자들로부터의 태그는 보다 낮은 피드백 스코어를 갖는 사용자들로부터의 태그보다 높은 신뢰도 지수를 가질 수 있다.
동작(1650)에 있어서, 구매자 태그 딕셔너리에서의 각각의 로컬 구매자 태그는 쿼리에서 n-gram과 정확하게 매칭되는지를 확인하기 위해 점검된다. 매칭이 확인되면, 구매자 태그가 쿼리에 추가된다. 일부 예시적인 실시형태들에 있어서, 매칭되는 n-gram이 또한 쿼리로부터 삭제된다.
동작(1710)에 있어서, 구매자 태그 딕셔너리에서의 각각의 로컬 구매자 태그는 쿼리에서 n-gram과 애메하게 매칭되는지를 확인하기 위해 점검된다. 애매한 퍼지 매칭은 소정의 임계치를 초과하는 확률론적 매칭이다. 예를 들어, 2개의 토큰은, 하나의 토큰을 다른 토큰으로 변환하는 데 필요한 삽입, 삭제, 및 대체의 수가 임계치(예컨대, 2)보다 낮으면, 퍼지 매칭인 것으로 확인될 수 있다. 임계치는 토큰의 길이에 의존할 수 있다(예컨대, 3-글자 단어의 경우보다는 10-글자 단어의 퍼지 매칭에 더 많은 변화가 허용될 수 있음). 퍼지 매칭이 확인되면, 구매자 태그가 쿼리에 추가된다. 매칭되는 n-gram이 또한 쿼리로부터 삭제될 수 있다. 일부 예시적인 실시형태들에 있어서, 동작(1710)은 동작(1650)에서 정확한 매칭이 확인되지 않았을 경우에만 수행된다.
동작(1720)에 있어서, 판매자 태그 딕셔너리에서의 각각의 글로벌 판매자 태그는 이미 로컬 태그에 매칭되지 않은 쿼리에서의 n-gram과 정확하게 매칭되는지를 확인하기 위해 점검된다. 매칭이 확인되면, 글로벌 판매자 태그가 쿼리에 추가된다. 일부 예시적인 실시형태들에 있어서, 매칭되는 n-gram이 또한 쿼리로부터 삭제된다.
동작(1730)에 있어서, 판매자 태그 딕셔너리에서의 각각의 로컬 판매자 태그는 쿼리에서 n-gram과 정확하게 또는 애메하게 매칭되는지를 확인하기 위해 점검된다. 매칭이 확인되면, 로컬 판매자 태그가 쿼리에 추가된다. 매칭되는 n-gram이 또한 쿼리로부터 삭제될 수 있다.
서로 다른 정확한 매칭 또는 퍼지 매칭 동안, 다양한 신뢰도 및 지원 임계치가 사용된다. 애스펙트 값의 신뢰도는 애스펙트 이름이 쿼리에 포함될 경우 요망되는 값의 확률이다. 따라서, 신뢰도는 애스펙트 값을 갖는 클릭된 아이템들의 수를 애스펙트 이름을 갖는 클릭된 아이템들의 총 수로 나눈 값을 취함으로써 계산될 수 있다. 예를 들어, "belt buckle levis(벨트 버클 리바이스)"에 대한 142,000건의 검색에서, 22,000건이 클릭되지 않은 아이템이고, 20,000건이 브랜드 값이 없는 클릭된 아이템이고, 75,000건이 "brand=Levi's(브랜드=리바이스)"를 갖는 클릭된 아이템이고, 25,000건이 "brand=buckle(브랜드=버클)"을 갖는 클릭된 아이템이면, "Levi's(리바이스)"의 애스펙트 값이 "brand(브랜드)"의 애스펙트 이름에 대하여 사용되어야 하는 신뢰도는 75%이다. 애스펙트 이름에 대한 지원 값은 임의의 아이템이 열람될 경우 애스펙트 이름을 갖는 아이템이 열람될 확률이다. 따라서, 지원은 애스펙트 이름을 갖는 아이템들에 대한 총 클릭 수를 취하고 총 클릭 수로 나눔으로써 계산될 수 있다. 상기의 실시예를 계속하면, "brand(브랜드)"의 애스펙트 이름에 대한 지원은 83.33%이다.
동작(1740)에 있어서, 맵핑 서버(130)의 평가 모듈(220)은 레이블링된 쿼리에 대하여 브라우즈 노드가 존재하는지를 결정한다. 예를 들어, 맵핑 서버(130)는 e-커머스 서버(120 또는 140)로부터 레이블렝된 쿼리에 대한 브라우즈 노드를 요청하고, 브라우즈 노드가 존재하지 않음을 나타내는 응답으로 에러 메시지 또는 널(null) 값을 수신할 수 있다. 브라우즈 노드가 존재하지 않으면, 맵핑 서버(130)는 e-커머스 서버(120 또는 140)에 브라우즈 노드를 생성하라는 요청을 전송한다.
다양한 예시적인 실시형태들에 따르면, 본 명세서에서 설명된 방법론들 중 하나 이상은 결락된 브라우즈 노드의 식별을 용이하게 할 수 있다. 따라서, 본 명세서에서 설명된 방법론들 중 하나 이상은, 사용자에게 일련의 쿼리를 명시적으로 작성하라고 요구하지 않고 사용자가 관심을 갖는 결과의 검색 및 제시를 용이하게 할 수 있다. 유사하게, 본 명세서에서 설명된 방법론들 중 하나 이상은 결락된 브라우즈 노드를 제공하는 사이트의 향상된 검색 엔진 순위화를 용이하게 할 수 있다.
이들 효과가 총괄적으로 고려되면, 본 명세서에서 설명된 방법론들 중 하나 이상은, 고려되지 않았을 경우 검색시에 수반될 특별한 노력 또는 리소스에 대한 필요성을 배제할 수 있다. 사용자가 관련 쿼리의 식별에 쏟는 노력은 본 명세서에서 설명된 방법론들 중 하나 이상에 의해 감소될 수 있다. (예컨대, 네트워크 환경(100) 내에서) 하나 이상의 기계, 데이터베이스, 또는 디바이스에 의해 사용되는 컴퓨팅 리소스도 마찬가지로 감소될 수 있다. 이러한 컴퓨팅 리소스는, 프로세서 사이클, 네트워크 트래픽, 메모리 사용, 데이터 저장 용량, 전력 소비, 및 냉각 용량을 예로서 포함한다.
모듈, 컴포넌트 및 로직(MODULES, COMPONENTS AND LOGIC)
특정 실시형태들은 로직 또는 다수의 컴포넌트, 모듈, 또는 메커니즘을 포함하는 것으로 본 명세서에서 설명된다. 모듈은 소프트웨어 모듈(예컨대, 기계-판독 가능 매체 상에 구체화된 코드) 또는 하드웨어-구현 모듈의 어느 하나를 구성할 수 있다. 하드웨어-구현 모듈은 특정 동작들을 수행할 수 있는 유형(tangible)의 유닛이며 특정 방식으로 구성 또는 배치될 수 있다. 예시적인 실시형태들에 있어서, 하나 이상의 컴퓨터 시스템(예컨대, 독립형, 클라이언트 또는 서버 컴퓨터 시스템) 또는 하나 이상의 프로세서는 본 명세서에서 설명되는 특정 동작들을 수행하도록 동작하는 하드웨어-구현 모듈로서 소프트웨어(예컨대, 애플리케이션 또는 애플리케이션부)에 의해 구성될 수 있다.
다양한 실시형태에 있어서, 하드웨어-구현 모듈은 기계적으로 또는 전자적으로 구현될 수 있다. 예를 들어, 하드웨어-구현 모듈은 특정 동작들을 수행하도록 (예컨대, FPGA(field programmable gate array) 또는 ASIC(application-specific integrated circuit)와 같은 특수-목적 프로세서로서) 영구적으로 구성되는 전용 회로 또는 로직을 포함할 수 있다. 하드웨어-구현 모듈은 또한, 특정 동작들을 수행하도록 소프트웨어에 의해 일시적으로 구성되는 (예컨대, 범용 프로세서 또는 그 밖의 프로그램 가능 프로세서 내에 포함되는) 프로그램 가능 로직 또는 회로를 포함할 수 있다. 하드웨어-구현 모듈을, 기계적으로, 전용의 영구적으로 구성되는 회로로, 또는 일시적으로 구성되는 회로(예컨대, 소프트웨어로 구성됨)로 구현할지는 비용 및 시간을 고려해서 결정될 수 있음을 이해할 것이다.
따라서, "하드웨어-구현 모듈(hardware-implemented module)"이라는 용어는, 본 명세서에서 설명된 특정 동작들을 수행하도록 및/또는 특정 방식으로 동작시키도록 물리적으로 구축되거나, 영구적으로 구성되거나(예컨대, 고정 배선식(hardwired)), 또는 일시적으로 또는 임시적으로 구성(예컨대, 프로그래밍)되는 엔티티일 수 있는 유형의 엔티티를 포함하는 것으로 이해되어야 한다. 하드웨어-구현 모듈이 일시적으로 구성(예컨대, 프로그래밍)되는 실시형태들을 고려하면, 하드웨어-구현 모듈들 각각은 어느 하나의 시간 인스턴스로 구성되거나 또는 인스턴스화될 필요가 없다. 예를 들어, 하드웨어-구현 모듈이 소프트웨어를 사용해서 구성된 범용 프로세서를 포함하는 경우, 범용 프로세서는 상이한 시간들에 제각기 서로 다른 하드웨어-구현 모듈로서 구성될 수 있다. 따라서, 소프트웨어는, 예를 들어 하나의 시간 인스턴스에서 특정 하드웨어-구현 모듈을 구성하고 상이한 시간 인스턴스에서 상이한 하드웨어-구현 모듈을 구성하도록 프로세서를 구성할 수 있다.
하드웨어-구현 모듈은 다른 하드웨어-구현 모듈과의 사이에서 정보를 송신 및 수신할 수 있다. 따라서, 설명된 하드웨어-구현 모듈들은 통신 가능하게 연결되는 것으로 간주될 수 있다. 이러한 하드웨어-구현 모듈들이 동시에 다수 존재하는 경우, 통신은 신호 전송(예컨대, 하드웨어-구현 모듈들을 연결하는 적절한 회로 및 버스를 경유)을 통해 달성될 수 있다. 다수의 하드웨어-구현 모듈이 상이한 시간들에 구성 또는 인스턴스화되는 실시형태들에 있어서, 이러한 하드웨어-구현 모듈들 사이의 통신은, 예를 들어, 다수의 하드웨어-구현 모듈이 액세스할 수 있는 메모리 구조에서의 정보의 저장 및 검색을 통해 달성될 수 있다. 예를 들어, 하나의 하드웨어-구현 모듈은 동작을 수행하고, 해당 동작의 출력을, 해당 모듈이 통신 가능하게 연결되는 메모리 디바이스에 저장할 수 있다. 추가적인 하드웨어-구현 모듈은, 나중에, 메모리 디바이스에 액세스해서, 저장된 출력을 검색 및 처리할 수 있다. 하드웨어-구현 모듈은 또한, 입력 또는 출력 디바이스와의 통신을 개시할 수 있으며, 리소스에 대하여 동작할 수 있다(예컨대, 정보의 수집).
본 명세서에서 설명된 예시적인 방법들의 다양한 동작들은, 적어도 부분적으로, 관련 동작들을 수행하도록 (예컨대, 소프트웨어에 의해) 일시적으로 구성되거나 또는 영구적으로 구성되는 하나 이상의 프로세서에 의해 수행될 수 있다. 일시적으로든 또는 영구적으로든 구성되면, 이러한 프로세서는 하나 이상의 동작 또는 기능을 수행하도록 동작하는 프로세서-구현 모듈을 구성할 수 있다. 본 명세서에서 인용되는 모듈은, 일부 예시적인 실시형태들에 있어서, 프로세서-구현 모듈을 포함할 수 있다.
유사하게, 본 명세서에서 설명된 방법들은 적어도 부분적으로 프로세서-구현 방법인 수 있다. 예를 들어, 방법의 동작들 중 적어도 일부는 하나 이상의 프로세서 또는 프로세서-구현 모듈에 의해 수행될 수 있다. 특정 동작들의 성능은, 단일의 기계 내에 귀속되는 것뿐만 아니라, 다수의 기계에 걸쳐 배치되는 것에 이르기까지, 하나 이상의 프로세서 사이에 분포될 수 있다. 일부 예시적인 실시형태들에 있어서는, 프로세서 또는 프로세서들이 단일의 장소(예컨대, 가정 환경 내, 사무실 환경내 , 또는 서버 팜 내)에 위치될 수 있지만, 다른 실시형태들에 있어서는, 프로세서들이 다수의 장소에 걸쳐 분포될 수 있다.
하나 이상의 프로세서는 또한, "클라우드 컴퓨팅(cloud computing)" 환경에서 또는 "서비스형 소프트웨어(software as a service)"(SaaS)로서 관련 동작들의 수행을 지원하도록 동작할 수 있다. 예를 들어, 동작들 중 적어도 일부는 컴퓨터들(프로세서를 포함하는 기계들의 실시예)의 그룹에 의해 수행될 수 있으며, 이들 동작은 네트워크(예컨대, 인터넷)를 통해, 그리고 하나 이상의 적절한 인터페이스(예컨대, 애플리케이션 프로그램 인터페이스(Application Program Interfaces)(APIs))를 통해 액세스 가능하다.
전자 장치 및 시스템(ELECTRONIC APPARATUS AND SYSTEM)
예시적인 실시형태들은 디지털 전자 회로로; 또는 컴퓨터 하드웨어, 펌웨어, 또는 소프트웨어로; 또는 이들의 조합으로 구현될 수 있다. 예시적인 실시형태들은, 예컨대 프로그램 가능 프로세서, 컴퓨터, 또는 다수의 컴퓨터와 같은 데이터 처리 장치에 의한 실행을 위해 또는 그 동작을 제어하기 위해, 정보 캐리어, 예컨대 기계-판독 가능 매체에서 유형으로 구체화되는 컴퓨터 프로그램 제품, 예컨대 컴퓨터 프로그램을 사용해서 구현될 수 있다.
컴퓨터 프로그램은, 컴파일러형 또는 해석형 언어를 포함하는 프로그래밍 언어 형태로 기입될 수 있으며, 독립형 프로그램으로서 또는 컴퓨팅 환경에서 사용하기에 적합한 모듈, 서브루틴, 또는 그 밖의 유닛으로서 포함하는 임의의 형태로 배치될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 상에서, 또는 한 장소에서 또는 여러 장소에 걸쳐 분산되어 통신 네트워크에 의해 상호접속되는 다수의 컴퓨터 상에서 실행되도록 배치될 수 있다.
예시적인 실시형태들에 있어서, 동작들은 입력 데이터를 연산하고 출력을 생성함으로써 기능을 수행하도록 컴퓨터 프로그램을 실행시키는 하나 이상의 프로그램 가능 프로세서에 의해 수행될 수 있다. 특수 목적 로직 회로(예컨대, FPGA 또는 ASIC)에 의해, 방법 동작들이 수행될 수 있으며, 예시적인 실시형태들의 장치가 구현될 수 있다.
컴퓨팅 시스템은 클라이언트 및 서버를 포함할 수 있다. 클라이언트 및 서버는 일반적으로 서로 떨어져 있으며, 대개는 통신 네트워크를 통해 상호작용한다. 클라이언트와 서버의 관계는, 각각의 컴퓨터 상에서 실행되며 서로 클라이언트-서버 관계를 갖는 컴퓨터 프로그램들에 의해 유발된다. 프로그램 가능 컴퓨팅 시스템을 배치하는 실시형태들에 있어서는, 하드웨어 아키텍처 및 소프트웨어 아키텍처를 모두 고려해야 한다는 것을 이해할 것이다. 구체적으로, 영구적으로 구성된 하드웨어(예컨대, ASIC), 일시적으로 구성된 하드웨어(예컨대, 소프트웨어와 프로그램 가능 프로세서의 조합), 또는 영구적으로 및 일시적으로 구성된 하드웨어의 조합에 있어서 특정 기능을 구현할지의 여부에 대한 선택은 설계상의 선택일 수 있음을 이해할 것이다. 하기에서는, 다양한 예시적인 실시형태들에 있어서, 배치될 수 있는 하드웨어(예컨대, 기계) 및 소프트웨어 아키텍처가 정리된다.
소프트웨어 아키텍처(SOFTWARE ARCHITECTURE)
도 18은, 전술한 디바이스들 중 어느 하나 이상에 설치될 수 있는 소프트웨어 아키텍처(1802)를 나타내는 블럭도(1800)이다. 도 18은 소프트웨어 아키텍처의 비제한적인 실시예일 뿐이며, 많은 다른 아키첵처들이 본 명세서에서 설명된 기능을 용이하게 하도록 구현될 수 있음을 이해할 것이다. 소프트웨어 아키텍처(1802)는 프로세서(1910), 메모리(1930), 및 I/O 컴포넌트(1950)를 포함하는 도19의 기계(1900)와 같은 하드웨어에 의해 구현될 수 있다. 이 예시적인 아키텍처에 있어서, 소프트웨어(1802)는 레이어들의 스택(stack)으로서 개념화될 수 있으며, 여기서 각 레이어는 특정 기능을 제공할 수 있다. 예를 들어, 소프트웨어(1802)는 운영 체제(1804), 라이브러리(1806), 프레임워크(1808), 및 애플리케이션(1810)과 같은 레이어들을 포함한다. 동작상, 애플리케이션(1810)은, 일부 구현예에 따라, 소프트웨어 스택을 통해 애플리케이션 프로그래밍 인터페이스(API) 호(call)(1812)를 호출하고 API 호(1812)에 응답하여 메시지(1814)를 수신한다.
다양한 구현예에 있어서, 운영 체제(1804)는 하드웨어 리소스를 관리하고 공통 서비스를 제공한다. 운영 체제(1804)는, 예를 들어, 커널(1820), 서비스(1822), 및 드라이버(1824)를 포함한다. 커널(1820)은, 일부 구현예에 있어서, 하드웨어와 다른 소프트웨어 레이어들 사이의 추상화(abstraction) 레이어로서 작용한다. 예를 들어, 커널(1820)은, 여러 기능 중에서도, 메모리 관리, 프로세서 관리(예컨대, 스케줄링), 컴포넌트 관리, 네트워킹, 및 보안 설정을 제공한다. 서비스(1822)는 다른 소프트웨어 레이어들에 대하여 다른 공통 서비스들을 제공할 수 있다. 드라이버(1824)는 기반 하드웨어를 제어하거나 또는 기반 하드웨어와 연결하는 역할을 한다. 예를 들면, 드라이버(1824)는 디스플레이 드라이버, 카메라 드라이버, 블루투스(Bluetooth®드라이버, 플래시 메모리 드라이버, 직렬 통신 드라이버(예컨대, USB(Universal Serial Bus) 드라이버), 와이파이(Wi-Fi®드라이버, 오디오 드라이버, 전원 관리 드라이버 등을 포함할 수 있다.
일부 구현예에 있어서, 라이브러리(1806)는 애플리케이션(1810)에 의해 이용될 수 있는 낮은 수준의 공통 인프라를 제공한다. 라이브러리(1806)는 메모리 할당 기능, 문자열 조작 기능, 수학 기능 등과 같은 기능을 제공할 수 있는 시스템 라이브러리(1830)(예컨대, C 표준 라이브러리)를 포함할 수 있다. 또한, 라이브러리(1806)는, 미디어 라이브러리(예컨대, MPEG4(Moving Picture Experts Group-4), H.264 또는 AVC(Advanced Video Coding), MP3(Moving Picture Experts Group Layer-3), AAC(Advanced Audio Coding), AMR(Adaptive Multi-Rate) 오디오 코덱, JPEG 또는 JPG(Joint Photographic Experts Group), 또는 PNG(Portable Network Graphics)와 같은 다양한 미디어 포맷의 제시 및 조작을 지원하는 라이브러리), 그래픽 라이브러리(예컨대, 디스플레이 상의 그래픽 콘텍스트에서 2차원(2D) 및 3차원(3D)으로 렌더링하는 데 사용되는 OpenGL 프레임워크), 데이터베이스 라이브러리(예컨대, 다양한 관련 데이터베이스 기능을 제공하는 SQLite), 웹 라이브러리(예컨대, 웹 브라우징 기능을 제공하는 WebKit) 등과 같은 API 라이브러리(1832)를 포함할 수 있다. 라이브러리(1806)는 또한, 많은 다른 API들을 애플리케이션(1810)에 제공하기 위해 매우 다양한 다른 라이브러리(1834)를 포함할 수 있다.
프레임워크(1808)는, 일부 구현예에 따라, 애플리케이션(1810)에 의해 이용될 수 있는 높은 수준의 공통 인프라를 제공한다. 예를 들어, 프레임워크(1808)는 다양한 그래픽 사용자 인터페이스(GUI) 기능, 높은 수준의 리소스 관리, 높은 수준의 위치 서비스 등을 제공한다. 프레임워크(1808)는 애플리케이션(1810)에 의해 이용될 수 있는 다른 API들의 광범위한 스펙트럼을 제공할 수 있으며, 그중 일부는 특정 운영 체제 또는 플랫폼으로 특정될 수 있다.
예시적인 실시형태에 있어서, 애플리케이션(1810)은 홈 애플리케이션(1850), 연락처 애플리케이션(1852), 브라우저 애플리케이션(1854), 북 리더(book reader) 애플리케이션(1856), 위치 애플리케이션(1858), 미디어 애플리케이션(1860), 메시징 애플리케이션(1862), 게임 애플리케이션(1864), 및 제3자 애플리케이션(1866)과 같은 광범위한 다른 애플리케이션 모음을 포함한다. 일부 실시형태들에 따르면, 애플리케이션(1810)은 프로그램에 정의된 기능을 실행하는 프로그램이다. 다양한 방식으로 구축된 하나 이상의 애플리케이션(1810)을 생성하기 위해, 객체-지향 프로그래밍 언어(예컨대, Objective-C, Java, 또는 C++) 또는 절차 프로그래밍 언어(예컨대, C 또는 어셈블리 언어)와 같이, 다양한 프로그래밍 언어가 채용될 수 있다. 특정 실시예에 있어서, 제3자 애플리케이션(1866)(예컨대, 특정 플랫폼의 벤더 이외의 엔티티에 의해 안드로이드(Android™또는 아이오에스(iOS™소프트웨어 개발 키트(SDK)를 사용해서 개발된 애플리케이션)은 아이오에스(iOS™안드로이드(Android™윈도우즈 폰(Windows®Phone), 또는 그 밖의 모바일 운영 체제와 같은 모바일 운영 체제 상에서 실행되는 모바일 소프트웨어일 수 있다. 이 실시예에 있어서, 제3자 애플리케이션(1866)은 본 명세서에서 설명된 기능을 용이하게 하기 위해 운영 체제(1804)와 같은 모바일 운영 체제에 의해 제공되는 API 호(1812)를 호출할 수 있다.
예시적인 기계 아키텍처 및 기계-판독 가능 매체(EXAMPLE MACHINE ARCHITECTURE AND MACHINE-READABLE MEDIUM)
도 19는, 일부 예시적인 실시형태들에 따른, 기계-판독 가능 매체(예컨대, 기계-판독 가능 저장 매체)로부터 명령어를 판독하고 본 명세서에서 논의된 방법론들 중 어느 하나 이상을 수행할 수 있는 기계(1900)의 컴포넌트들을 나타내는 블럭도이다. 구체적으로, 도 19는, 기계(1900)로 하여금 본 명세서에서 논의된 방법론들 중 어느 하나 이상을 수행하게 하는 명령어(1916)(예컨대, 소프트웨어, 프로그램, 애플리케이션, 애플릿(applet), 앱(app), 또는 그 밖의 실행 가능한 코드)가 내부에서 실행될 수 있는 예시적인 형태의 컴퓨터 시스템에 있어서의 기계(1900)의 개요도를 도시한다. 대안적인 실시형태들에 있어서, 기계(1900)는 독립형 장치로서 동작하거나 또는 다른 기계들에 결합(예컨대, 네트워크화됨)될 수 있다. 네트워크화된 배치에 있어서, 기계(1900)는 서버-클라이언트 네트워크 환경에서 서버 기계로서 또는 클라이언트 기계로서 동작하거나, 또는 피어-투-피어(또는 분산형) 네트워크 환경에서 피어 기계로서 동작할 수 있다. 기계(1900)는, 해당 기계(1900)에 의해 취해지는 동작들을 지정하는 명령어(1916)를 순차적으로 실행 또는 달리 실행할 수 있는 서버 컴퓨터, 클라이언트 컴퓨터, 개인용 컴퓨터(PC), 태블릿 컴퓨터, 랩톱 컴퓨터, 노트북, 셋톱 박스(STB), 개인용 정보 단말(PDA), 엔터테인먼트 미디어 시스템, 셀룰러 전화기, 스마트폰, 모바일 디바이스, 웨어러블 디바이스(예컨대, 스마트 워치), 스마트 홈 디바이스(예컨대, 스마트 가전), 그 밖의 스마트 디바이스들, 웹 기기, 네트워크 라우터, 네트워크 스위치, 네트워크 브리지, 또는 임의의 기계일 수 있다. 또한, 단일의 기계(1900)만이 나타나 있지만, "기계(machine)"라는 용어는, 본 명세서에서 논의된 방법론들 중 어느 하나 이상을 수행하기 위해 명령어(1916)를 개별적으로 또는 함께 실행하는 기계(1900)들의 집합을 포함하는 것으로 취해지기도 한다.
기계(1900)는 프로세서(1910), 메모리(1930), 및 I/O 컴포넌트(1950)를 포함할 수 있으며, 이들은 버스(1902)를 통해 서로 통신하도록 구성될 수 있다. 예시적인 실시형태에 있어서, 프로세서(1910)(예컨대, CPU(Central Processing Unit), RISC(Reduced Instruction Set Computing) 프로세서, CISC(Complex Instruction Set Computing) 프로세서, GPU(Graphics Processing Unit), DSP(Digital Signal Processor), ASIC, RFIC(Radio-Frequency Integrated Circuit), 다른 프로세서, 또는 이들의 임의의 적절한 조합)는, 예를 들어, 명령어(1916)를 실행할 수 있는 프로세서(1912) 및 프로세서(1914)를 포함할 수 있다. "프로세서(processor)"라는 용어는 명령어들을 동시에 실행할 수 있는 2개 이상의 독립적인 프로세서("코어(core)"라고도 함)를 포함할 수 있는 멀티-코어 프로세서를 포함하는 것으로 의도된다. 도 19가 다수의 프로세서를 도시하고 있지만, 기계(1900)는 단일의 코어를 갖는 단일의 프로세서, 다수의 코어를 갖는 단일의 프로세서(예컨대, 멀티-코어 프로세서), 단일의 코어를 갖는 다수의 프로세서들, 다수의 코어를 갖는 다수의 프로세서들, 또는 이들의 임의의 조합을 포함할 수 있다.
메모리(1930)는 메인 메모리(1932), 정적 메모리(1934), 및 저장 유닛(1936)을 포함할 수 있으며, 이들은 모두 버스(1902)를 통해 프로세서(1910)에 액세스 가능하다. 저장 유닛(1936)은 본 명세서에서 설명된 방법론들 또는 기능들 중 어느 하나 이상을 구체화하는 명령어(1916)가 저장되는 기계-판독 가능 매체(1938)를 포함할 수 있다. 명령어(1916)는 또한, 기계(1900)에 의한 그 실행 동안, 메인 메모리(1932) 내에, 정적 메모리(1934) 내에, 적어도 하나의 프로세서(1910) 내에(예컨대, 프로세서의 캐시 메모리 내에), 또는 이들의 임의의 적절한 조합 내에, 완전히 또는 적어도 부분적으로 상주할 수 있다. 따라서, 다양한 구현예에 있어서, 메인 메모리(1932), 정적 메모리(1934), 및 프로세서(1910)는 기계-판독 가능 매체(1938)로 간주된다.
본 명세서에서 사용되는, "메모리(memory)"라는 용어는 데이터를 일시적으로 또는 영구적으로 저장할 수 있는 기계-판독 가능 매체(1938)를 의미하고, 한정되는 것은 아니지만, 랜덤-액세스 메모리(RAM), 리드-온리 메모리(ROM), 버퍼 메모리, 플래시 메모리, 및 캐시 메모리를 포함하도록 취해질 수 있다. 예시적인 실시형태에 있어서는 기계-판독 가능 매체(1938)가 단일의 매체인 것으로 도시되지만, "기계-판독 가능 매체(machine-readable medium)"라는 용어는 명령어(1916)를 저장할 수 있는 단일의 매체 또는 다수의 매체(에컨대, 집중형 또는 분산형 데이터베이스, 또는 연관 캐시 및 서버)를 포함하도록 취해져야 한다. "기계-판독 가능 매체"라는 용어는 또한, 기계의 하나 이상의 프로세서(예컨대, 프로세서(1910))에 의한 실행시에, 명령어가 기계로 하여금 본 명세서에서 설명된 방법론들 중 어느 하나 이상을 수행하게 하도록, 기계(예컨대, 기계(1900))에 의한 실행을 위해 명령어(예컨대, 명령어(1916))를 저장할 수 있는 임의의 매체, 또는 다수의 매체의 조합을 포함하도록 취해질 수 있다. 따라서, "기계-판독 가능 매체"는 단일의 저장 장치 또는 디바이스 뿐만 아니라, 다수의 저장 장치 또는 디바이스를 포함하는 "클라우드-기반(cloud-based)" 저장 시스템 또는 저장 네트워크를 의미한다. 그에 따라, "기계-판독 가능 매체"라는 용어는, 한정되는 것은 아니지만, 고체-상태 메모리(예컨대, 플래시 메모리), 광학 매체, 자기 매체, 그 밖의 비휘발성 메모리(예컨대, EPROM(Erasable Programmable Read-Only Memory)), 또는 이들의 임의의 적절한 조합 형태의 하나 이상의 데이터 저장소를 포함하도록 취해질 것이다. "기계-판독 가능 매체"라는 용어는 기계 판독 가능 저장 매체 및 전송 매체, 예컨대 신호를 포함한다.
I/O 컴포넌트(1950)는 입력을 수신하고, 출력을 제공하고, 출력을 생성하고, 정보를 전송하고, 정보를 교환하고, 측정을 포착하는 등을 하기 위한 매우 다양한 컴포넌트를 포함한다. 일반적으로, I/O 컴포넌트(1950)는 도 19에 도시되지 않은 다수의 다른 컴포넌트를 포함할 수 있음을 이해할 것이다. I/O 컴포넌트(1950)는 단지 다음의 설명을 간략하게 하기 위해 기능에 따라 그룹화되며, 그룹화는 결코 제한적인 것이 아니다. 다양한 예시적인 실시형태들에 있어서, I/O 컴포넌트(1950)는 출력 컴포넌트(1952) 및 입력 컴포넌트(1954)를 포함한다. 출력 컴포넌트(1952)는 시각적 컴포넌트(예컨대, 플라스마 디스플레이 패널(PDP), 발광 다이오드(LED) 디스플레이, 액정 디스플레이(LCD), 프로젝터, 또는 음극선관(CRT)), 음향 컴포넌트(예컨대, 스피커), 햅틱 컴포넌트(예컨대, 진동 모터), 그 밖의 신호 발생기 등을 포함한다. 입력 컴포넌트(1954)는 영숫자 입력 컴포넌트(예컨대, 키보드, 영숫자 입력을 수신하도록 구성된 터치 스크린, 사진-광학 키보드, 또는 그 밖의 영숫자 입력 컴포넌트), 포인트-기반의 입력 컴포넌트(예컨대, 마우스, 터치패드, 트랙볼, 조이스틱, 모션 센서, 또는 그 밖의 포인팅 기구), 촉각 입력 컴포넌트(예컨대, 물리 버튼, 터치 위치 및 힘 또는 터치 제스처를 제공하는 터치 스크린, 또는 그 밖의 촉각 입력 컴포넌트), 음성 입력 컴포넌트(예컨대, 마이크로폰) 등을 포함한다.
일부 예시적인 추가 실시형태들에 있어서, I/O 컴포넌트(1950)는, 다양한 종류의 다른 컴포넌트들 중에서도, 생체 컴포넌트(1956), 모션 컴포넌트(1958), 환경 컴포넌트(1960), 또는 위치 컴포넌트(1962)를 포함한다. 예를 들어, 생체 컴포넌트(1956)는 표현(예컨대, 손 표현, 안면 표면, 음성 표현, 신체 제스처, 또는 안구 추적)을 검출하는 컴포넌트, 생체신호(예컨대, 혈압, 심박수, 체온, 땀, 또는 뇌파)를 측정하는 컴포넌트, 사람(예컨대, 음성 인식, 망막 인식, 안면 인식, 지문 인식, 또는 뇌파-기반의 인식)을 식별하는 컴포넌트 등을 포함한다. 모션 컴포넌트(1958)는 가속도 센서 컴포넌트(예컨대, 가속도계), 중력 센서 컴포넌트, 회전 센서 컴포넌트(예컨대, 자이로스코프) 등을 포함한다. 환경 컴포넌트(1960)는, 예를 들어, 조명 센서 컴포넌트(예컨대, 광도계), 온도 센서 컴포넌트(예컨대, 주위 온도를 검출하는 하나 이상의 온도계), 습도 센서 컴포넌트, 압력 센서 컴포넌트(예컨대, 바로미터), 음향 센서 컴포넌트(예컨대, 배경 소음을 검출하는 하나 이상의 마이크로폰), 근접도 센서 컴포넌트(예컨대, 근처의 물체를 검출하는 적외선 센서), 가스 센서(예컨대, 기계 후각 검출 센서, 안전을 위해 유해 가스의 농도를 검출하거나 대기 중의 오염물을 측정하는 가스 검출 센서), 또는 주변의 물리적 환경에 대응하는 지시, 측정, 또는 신호를 제공할 수 있는 그 밖의 컴포넌트를 포함한다. 위치 컴포넌트(1962)는 위치 센서 컴포넌트(예컨대, GPS(Global Position System) 수신기 컴포넌트), 고도 센서 컴포넌트(예컨대, 고도가 도출될 수 있는 기압을 검출하는 고도계 또는 바로미터), 방위 센서 컴포넌트(예컨대, 자기력계) 등을 포함한다.
매우 다양한 기술을 사용해서 통신을 구현할 수 있다. I/O 컴포넌트(1950)는 기계(1900)를, 제각기 커플링(1982) 및 커플링(1972)을 통해 네트워크(1980) 또는 디바이스(1970)에 연결하도록 동작 가능한 통신 컴포넌트(1964)를 포함할 수 있다. 예를 들어, 통신 컴포넌트(1964)는 네트워크(1980)와 연결하기 위한 네트워크 인터페이스 컴포넌트 또는 다른 적절한 디바이스를 포함한다. 추가적인 실시예들에 있어서, 통신 컴포넌트(1964)는 유선 통신 컴포넌트, 무선 통신 컴포넌트, 셀룰러 통신 컴포넌트, NFC(Near Field Communication) 컴포넌트, 블루투스(Bluetooth®컴포넌트(예컨대, Bluetooth®Low Energy), 와이파이(Wi-Fi®컴포넌트, 및 다른 양상들을 통해 통신을 제공하는 그 밖의 통신 컴포넌트를 포함한다. 디바이스(1970)는 다른 기계 또는 매우 다양한 주변 디바이스 중 어느 하나(예컨대, USB를 통해 연결된 주변 디바이스)일 수 있다.
또한, 일부 구현예에 있어서, 통신 컴포넌트(1964)는 식별자를 검출하거나, 또는 식별자를 검출하도록 작동 가능한 컴포넌트를 포함한다. 예를 들어, 통신 컴포넌트(1964)는 RFID(Radio Frequency Identification) 태그 판독기 컴포넌트, NFC 스마트 태그 검출 컴포넌트, 광학 판독기 컴포넌트(예컨대, UPC(Universal Product Code) 바코드와 같은 일차원 바코드, QR(Quick Response) 코드와 같은 다차원 바코드, 아즈텍(Aztec) 코드, 데이터 매트릭스(Data Matrix), 데이터글리프(Dataglyph), 맥시코드(MaxiCode), PDF417, 울트라 코드(Ultra Code), UCC RSS(Uniform Commercial Code Reduced Space Symbology)-2D 바코드, 및 그 밖의 광학 코드를 검출하는 광학 센서), 음향 검출 컴포넌트(예컨대, 태깅된 오디오 신호를 식별하는 마이크로폰), 또는 이들의 임의의 적절한 조합을 포함한다. 또한, IP(Internet Protocol) 지리위치를 통한 위치, 와이파이(Wi-Fi®신호 삼각측량을 통한 위치, 특정 위치를 나타낼 수 있는 NFC 비콘 신호 검출을 통한 위치 등과 같이, 통신 컴포넌트(1964)를 통해 다양한 정보가 도출될 수 있다.
전송 매체(TRANSMISSION MEDIUM)
다양한 예시적인 실시형태들에 있어서, 네트워크(1980)의 하나 이상의 부분들은 애드혹(ad hoc) 네트워크, 인트라넷, 엑스트라넷, VPN(virtual private network), LAN(local area network), WLAN(wireless LAN), WAN(wide area network), WWAN(wireless WAN), MAN(metropolitan area network), 인터넷(Internet), 인터넷의 일부분, PSTN(Public Switched Telephone Network)의 일부분, POTS(plain old telephone service) 네트워크, 셀룰러폰 네트워크(cellular telephone network), 무선 네트워크, 와이파이(Wi-Fi®네트워크, 다른 유형의 네트워크, 또는 2가지 이상의 상기 네트워크의 조합일 수 있다. 예를 들어, 네트워크(1980) 또는 네트워크(1980)의 일부분은 무선 또는 셀룰러 네트워크를 포함할 수 있으며, 커플링(1982)은 CDMA(Code Division Multiple Access) 접속, GSM(Global System for Mobile communications) 접속, 또는 다른 유형의 셀룰러 또는 무선 결합일 수 있다. 본 실시예에 있어서, 커플링(1982)은 1xRTT(Single Carrier Radio Transmission Technology), EVDO(Evolution-Data Optimized) 기술, GPRS(General Packet Radio Service) 기술, EDGE(Enhanced Data rates for GSM Evolution) 기술, 3G를 포함하는 3GPP(third Generation Partnership Project), 4G(fourth generation wireless) 네트워크, UMTS(Universal Mobile Telecommunications System), HSPA(High Speed Packet Access), WiMAX(Worldwide Interoperability for Microwave Access), LTE(Long Term Evolution) 표준, 다양한 표준화 기구에 의해 규정된 표준들, 그 밖의 장거리 프로토콜, 또는 그 밖의 데이터 전송 기술과 같이, 다양한 유형의 데이터 전송 기술 중 어느 하나를 구현할 수 있다.
예시적인 실시형태들에 있어서, 명령어(1916)는 네트워크 인터페이스 디바이스(예컨대, 통신 컴포넌트(1964)에 포함된 네트워크 인터페이스 컴포넌트)를 통해 전송 매체를 사용하고, 또한 공지되어 있는 다수의 전송 프로토콜 중 어느 하나(예컨대, HTTP)를 이용해서 네트워크(1980)를 경유하여 송신 또는 수신된다. 유사하게, 다른 예시적인 실시형태들에 있어서, 명령어(1916)는 커플링(1972)(예컨대, 피어-투-피어 커플링)을 통해 전송 매체를 사용해서 디바이스(1970)에 대하여 송신 또는 수신된다. "전송 매체(transmission medium)"라는 용어는 기계(1900)에 의한 실행을 위해 명령어(1916)를 저장, 부호화, 또는 운반할 수 있는 임의의 무형 매체를 포함하도록 취해되며, 상기와 같은 소프트웨어의 통신을 가능하게 하는 디지털 또는 아날로그 통신 신호 또는 그 밖의 무형 매체를 포함한다. 전송 매체는 기계 판독 가능 매체의 실시형태이다.
언어(LANGUAGE)
본 명세서 전반에 걸쳐, 단일의 인스턴스로서 기술된 컴포넌트, 동작, 또는 구조를 복수의 인스턴스가 구현할 수 있다. 하나 이상의 방법의 개별적인 동작들이 별도의 동작들로서 예시 및 설명되어 있지만, 하나 이상의 개별적인 동작들이 동시에 수행될 수 있고, 해당 동작들을 예시된 순서로 수행할 필요는 없다. 예시적인 구성들에서 개별 컴포넌트로서 제시된 구조 및 기능은 조합된 구조 또는 컴포넌트로서 구현될 수 있다. 유사하게, 단일의 컴포넌트로서 제시된 구조 및 기능은 개별 컴포넌트로서 구현될 수 있다. 이들 및 다른 변경, 수정, 추가, 및 개량은 본 명세서의 청구대상의 범위 내이다.
본 발명의 청구대상의 개요가 특정한 예시적인 실시형태들을 참조하여 설명되어 있지만, 이들 실시형태에 대해서는 본 개시물의 보다 넓은 범위의 실시형태들로부터 일탈함이 없이 다양한 수정 및 변경이 이루어질 수 있다. 본 발명의 청구대상의 상기와 같은 실시형태들은, 본 명세서에서는, 사실상 하나 이상의 발명이 개시되는 경우에, 본원의 범위를 자발적으로 임의의 단일의 개시물 또는 발명적 개념에 한정하려는 의도 없이, 개별적으로 또는 총괄하여, 단순히 편의상 "발명"이라는 용어로 인용될 수 있다.
본 명세서에서 예시된 실시형태들은 개시된 기술내용을 당업자가 실시할 수 있을 만큼 충분히 상세하게 설명된다. 본 개시물의 범위로부터 일탈함이 없이 구조적 및 논리적 대체 및 변경이 이루어질 수 있도록, 그것으로부터 다른 실시형태들이 사용 및 유래될 수 있다. 따라서, 발명의 상세한 설명은 한정의 의미로 받아들여지면 안 되고, 다양한 실시형태들의 범주는 첨부된 청구항들에 부여되는 등가물의 전체 범위와 함께, 해당 청구항들에 의해서만 규정된다.
본 명세서에서 사용되는 "또는"이라는 용어는 포괄적 의미로 또는 배타적 의미로 해석될 수 있다. 또한, 본 명세서에서 단일의 인스턴스로서 기술된 리소스, 동작, 또는 구조에 대해서는 복수의 인스턴스가 제공될 수 있다. 부가적으로, 다양한 리소스들, 동작들, 모듈들, 엔진들, 및 데이터 저장소들간의 경계는 다소 임의적이고, 특정한 동작들은 구체적인 예시적 구성의 맥락에서 나타내진다. 기능에 대한 다른 할당이 구상되어서, 본 개시물의 다양한 실시형태들의 범위 내로 될 수 있다. 일반적으로, 예시적인 구성에서 별도의 리소스로서 제시된 구조 및 기능은 조합된 구조 또는 리소스로서 구현될 수 있다. 마찬가지로, 단일의 리소스로서 제시된 구조 및 기능은 별도의 리소스로서 구현될 수 있다. 이들 및 다른 변경, 수정, 추가, 및 개량은 첨부된 청구항들에 의해 표현된 바와 같은 본 개시물의 실시형태들의 범위 내이다. 그에 따라, 명세서 및 도면은 제한적인 의미가 아니라 설명적인 의미로 간주되어야 한다.
아래에 열거된 실시예들은 본 명세서에서 논의된 방법, 기계-판독 가능 매체, 및 시스템(즉, 장치)의 다양한 예시적인 실시형태들을 규정한다:
실시예 1.
방법으로서:
복수의 단어를 포함하는 검색 쿼리에 액세스하는 단계;
검색 쿼리에 기초하여, 카테고리 및 해당 카테고리의 하나 이상의 애스펙트의 조합을 식별하는 단계;
카테고리 및 애스펙트의 식별된 조합에 대하여 브라우즈 노드가 존재하지 않는지 판정하는 단계; 및
카테고리 및 애스펙트의 식별된 조합에 대하여 브라우즈 노드가 존재하지 않는다는 판정에 기초하여, 카테고리 및 애스펙트의 식별된 조합에 대하여 브라우즈 노드를 생성하라는 요청을 전송하는 단계를 포함하는, 방법.
실시예 2.
실시예 1의 방법으로서,
검색 쿼리는 복수의 사용자로부터의 복수의 검색 쿼리 중 하나의 쿼리이고;
카테고리 및 해당 카테고리의 하나 이상의 애스펙트의 조합을 식별하는 단계는 복수의 검색 쿼리에 기초하고;
해당 방법은:
카테고리 및 애스펙트의 식별된 조합이 기초하는 복수의 검색 쿼리의 카운트를 결정하는 단계를 더 포함하고;
브라우즈 노드를 생성하라는 요청의 전송은 또한 카운트 및 임계치에 기초하는, 방법.
실시예 3.
실시예 2의 방법으로서,
복수의 검색 쿼리에 기초하여, 브라우즈 노드를 갖지 않는 카테고리 및 애스펙트 조합의 패턴을 결정하는 단계; 및
결정된 패턴과 매칭되는 복수의 브라우즈 노드를 생성하라는 요청을 전송하는 단계를 더 포함하는, 방법.
실시예 4.
실시예 1 내지 실시예 3 중 어느 하나 이상의 방법으로서,
요청을 수신하는 것에 응답하여, 브라우즈 노드를 생성하는 단계를 더 포함하는, 방법.
실시예 5.
실시예 4의 방법으로서,
브라우즈 노드를 생성하는 단계는 타이틀이 있는 문서를 생성하는 단계를 포함하는, 방법.
실시예 6.
실시예 5의 방법으로서,
문서는 HTML 문서이고, 타이틀은 <h1> HTML 태그에 포함되는, 방법.
실시예 7.
실시예 1 내지 실시예 6 중 어느 하나 이상의 방법으로서,
카테고리 및 해당 카테고리의 하나 이상의 애스펙트의 조합을 식별하는 단계는:
대체된 용어와 대체 용어 사이의 퍼지 매칭에 기초하여 검색 쿼리의 하나 이상의 용어를 하나 이상의 대체 용어로 대체하는 단계를 포함하는, 방법.
실시예 8.
시스템으로서,
명령어를 저장하는 메모리; 및
동작들을 수행하도록 명령어에 의해 구성되는 하나 이상의 프로세서를 포함하고, 해당 동작들은:
복수의 단어를 포함하는 검색 쿼리에 액세스하는 동작;
검색 쿼리에 기초하여, 카테고리 및 해당 카테고리의 하나 이상의 애스펙트의 조합을 식별하는 동작;
카테고리 및 애스펙트의 식별된 조합에 대하여 브라우즈 노드가 존재하지 않는지 판정하는 동작; 및
카테고리 및 애스펙트의 식별된 조합에 대하여 브라우즈 노드가 존재하지 않는다는 판정에 기초하여, 카테고리 및 애스펙트의 식별된 조합에 대하여 브라우즈 노드를 생성하라는 요청을 전송하는 동작을 포함하는, 시스템.
실시예 9.
실시예 8의 시스템으로서,
검색 쿼리는 복수의 사용자로부터의 복수의 검색 쿼리 중 하나의 쿼리이고;
카테고리 및 해당 카테고리의 하나 이상의 애스펙트의 조합을 식별하는 동작은 복수의 검색 쿼리에 기초하고;
동작들은:
카테고리 및 애스펙트의 식별된 조합이 기초하는 복수의 검색 쿼리의 카운트를 결정하는 동작을 더 포함하고;
브라우즈 노드를 생성하라는 요청을 전송하는 동작은 또한 카운트 및 임계치에 기초하는, 시스템.
실시예 10.
실시예 9의 시스템으로서, 동작들은:
복수의 검색 쿼리에 기초하여, 브라우즈 노드를 갖지 않는 카테고리 및 애스펙트 조합의 패턴을 결정하는 동작; 및
결정된 패턴과 매칭되는 복수의 브라우즈 노드를 생성하라는 요청을 전송하는 동작을 더 포함하는, 시스템.
실시예 11.
실시예 8 내지 실시예 10 중 어느 하나 이상의 시스템으로서, 동작들은:
요청을 수신하는 것에 응답하여, 브라우즈 노드를 생성하는 동작을 더 포함하는, 시스템.
실시예 12.
실시예 11의 시스템으로서,
브라우즈 노드를 생성하는 동작은 타이틀이 있는 문서를 생성하는 동작을 포함하는, 시스템.
실시예 13.
실시예 12의 시스템으로서,
문서는 HTML 문서이고, 타이틀은 <h1> HTML 태그에 포함되는, 시스템.
실시예 14.
실시예 8 내지 실시예 13 중 어느 하나 이상의 시스템으로서,
카테고리 및 해당 카테고리의 하나 이상의 애스펙트의 조합을 식별하는 동작은:
대체된 용어와 대체 용어 사이의 퍼지 매칭에 기초하여 검색 쿼리의 하나 이상의 용어를 하나 이상의 대체 용어로 대체하는 공정을 포함하는, 시스템.
실시예 15.
기계의 하나 이상의 프로세서에 의한 실행시에, 기계로 하여금 동작들을 수행하게 하는 명령어를 포함하는 기계-판독 가능 저장 매체로서, 해당 동작들은:
복수의 단어를 포함하는 검색 쿼리에 액세스하는 동작;
검색 쿼리에 기초하여, 카테고리 및 해당 카테고리의 하나 이상의 애스펙트의 조합을 식별하는 동작;
카테고리 및 애스펙트의 식별된 조합에 대하여 브라우즈 노드가 존재하지 않는지 판정하는 동작; 및
카테고리 및 애스펙트의 식별된 조합에 대하여 브라우즈 노드가 존재하지 않는다는 판정에 기초하여, 카테고리 및 애스펙트의 식별된 조합에 대하여 브라우즈 노드를 생성하라는 요청을 전송하는 동작을 포함하는, 기계-판독 가능 저장 매체.
실시예 16.
실시예 15의 기계-판독 가능 저장 매체로서,
검색 쿼리는 복수의 사용자로부터의 복수의 검색 쿼리 중 하나의 쿼리이고;
카테고리 및 해당 카테고리의 하나 이상의 애스펙트의 조합을 식별하는 동작은 복수의 검색 쿼리에 기초하고;
동작들은:
카테고리 및 애스펙트의 식별된 조합이 기초하는 복수의 검색 쿼리의 카운트를 결정하는 동작을 더 포함하고;
브라우즈 노드를 생성하라는 요청을 전송하는 동작은 또한 카운트 및 임계치에 기초하는, 기계-판독 가능 저장 매체.
실시예 17.
실시예 16의 기계-판독 가능 저장 매체로서, 동작들은:
복수의 검색 쿼리에 기초하여, 브라우즈 노드를 갖지 않는 카테고리 및 애스펙트 조합의 패턴을 결정하는 동작; 및
결정된 패턴과 매칭되는 복수의 브라우즈 노드를 생성하라는 요청을 전송하는 동작을 더 포함하는, 기계-판독 가능 저장 매체.
실시예 18.
실시예 15 내지 실시예 17 중 어느 하나 이상의 기계-판독 가능 저장 매체로서, 동작들은:
요청에 응답하여, 브라우즈 노드를 생성하는 동작을 더 포함하는, 기계-판독 가능 저장 매체.
실시예 19.
실시예 18의 기계-판독 가능 저장 매체로서,
브라우즈 노드를 생성하는 동작은 타이틀이 있는 문서를 생성하는 동작을 포함하는, 기계-판독 가능 저장 매체.
실시예 20.
실시예 19의 기계-판독 가능 저장 매체로서,
문서는 HTML 문서이고, 타이틀은 <h1> HTML 태그에 포함되는, 기계-판독 가능 저장 매체.
실시예 21.
기계의 하나 이상의 프로세서에 의한 실행시에, 기계로 하여금 실시예 1 내지 실시예 7 중 어느 하나의 방법을 수행하게 하는 명령어를 반송하는 기계-판독 가능 매체.

Claims (21)

  1. 하나 이상의 프로세서에 의해 수행되는 방법으로서,
    복수의 단어를 포함하는 검색 쿼리에 액세스하는 단계;
    상기 검색 쿼리에 기초하여, 카테고리 및 상기 카테고리의 하나 이상의 애스펙트(aspects)의 조합을 식별하는 단계;
    복수의 브라우즈 노드를 저장하는 데이터베이스에, 상기 카테고리 및 상기 애스펙트의 식별된 조합에 대하여 브라우즈 노드가 존재하지 않는다고 판정하는 단계 - 상기 복수의 브라우즈 노드의 각각은 제각기의 URL(uniform resource location)에 의해 액세스 가능하고, 하나 이상의 각각의 애스펙트를 가진 각각의 카테고리에서 아이템의 그룹을 제공함 - ; 및
    상기 카테고리 및 상기 애스펙트의 상기 식별된 조합에 대하여 브라우즈 노드가 존재하지 않는다는 판정에 기초하여, 대응하는 URL에 의하여 액세스 가능하고 상기 카테고리 및 상기 애스펙트의 상기 식별된 조합에 매칭하는 하나 이상의 아이템을 제공하는 상기 브라우즈 노드를 생성하라는 요청을 전송하는 단계를 포함하는
    방법.
  2. 제1항에 있어서,
    상기 검색 쿼리는 복수의 사용자로부터의 복수의 검색 쿼리 중 하나의 쿼리이고;
    상기 카테고리 및 상기 카테고리의 하나 이상의 애스펙트의 조합을 식별하는 단계는 상기 복수의 검색 쿼리에 기초하고;
    상기 방법은:
    상기 카테고리 및 상기 애스펙트의 상기 식별된 조합이 기초하는 상기 복수의 검색 쿼리의 카운트를 결정하는 단계를 더 포함하고;
    상기 브라우즈 노드를 생성하라는 요청을 전송하는 단계는 또한 상기 카운트 및 임계치에 기초하는
    방법.
  3. 제2항에 있어서,
    상기 복수의 검색 쿼리에 기초하여, 브라우즈 노드를 갖지 않는 카테고리 및 애스펙트 조합의 패턴을 결정하는 단계; 및
    상기 결정된 패턴과 매칭되는 복수의 브라우즈 노드를 생성하라는 요청을 전송하는 단계를 더 포함하는
    방법.
  4. 제1항에 있어서,
    상기 요청을 수신하는 것에 응답하여, 상기 브라우즈 노드를 생성하는 단계를 더 포함하는
    방법.
  5. 제4항에 있어서,
    상기 브라우즈 노드를 생성하는 단계는 타이틀이 있는 문서를 생성하는 단계를 포함하는
    방법.
  6. 제5항에 있어서,
    상기 문서는 HTML 문서이고, 상기 타이틀은 <h1> HTML 태그에 포함되는
    방법.
  7. 제1항에 있어서,
    상기 카테고리 및 상기 카테고리의 하나 이상의 애스펙트의 조합을 식별하는 단계는:
    대체된 용어와 대체 용어 사이의 퍼지(fuzzy) 매칭에 기초하여 상기 검색 쿼리의 하나 이상의 용어를 하나 이상의 대체 용어로 대체하는 단계를 포함하는
    방법.
  8. 시스템으로서,
    명령어를 저장하는 메모리; 및
    동작들을 수행하도록 상기 명령어에 의해 구성되는 하나 이상의 프로세서를 포함하고, 상기 동작들은:
    복수의 단어를 포함하는 검색 쿼리에 액세스하는 동작;
    상기 검색 쿼리에 기초하여, 카테고리 및 상기 카테고리의 하나 이상의 애스펙트의 조합을 식별하는 동작;
    복수의 브라우즈 노드를 저장하는 데이터베이스에, 상기 카테고리 및 상기 애스펙트의 식별된 조합에 대하여 브라우즈 노드가 존재하지 않는다고 판정하는 동작 - 상기 복수의 브라우즈 노드의 각각은 제각기의 URL(uniform resource location)에 의해 액세스 가능하고, 하나 이상의 각각의 애스펙트를 가진 각각의 카테고리에서 아이템의 그룹을 제공함 - ; 및
    상기 카테고리 및 상기 애스펙트의 상기 식별된 조합에 대하여 브라우즈 노드가 존재하지 않는다는 판정에 기초하여, 대응하는 URL에 의하여 액세스 가능하고 상기 카테고리 및 상기 애스펙트의 상기 식별된 조합에 매칭하는 하나 이상의 아이템을 제공하는 상기 브라우즈 노드를 생성하라는 요청을 전송하는 동작을 포함하는
    시스템.
  9. 제8항에 있어서,
    상기 검색 쿼리는 복수의 사용자로부터의 복수의 검색 쿼리 중 하나의 쿼리이고;
    상기 카테고리 및 상기 카테고리의 하나 이상의 애스펙트의 조합을 식별하는 동작은 복수의 검색 쿼리에 기초하고;
    상기 동작들은:
    상기 카테고리 및 상기 애스펙트의 상기 식별된 조합이 기초하는 상기 복수의 검색 쿼리의 카운트를 결정하는 동작을 더 포함하고;
    상기 브라우즈 노드를 생성하라는 요청을 전송하는 동작은 또한 상기 카운트 및 임계치에 기초하는
    시스템.
  10. 제9항에 있어서,
    상기 동작들은:
    상기 복수의 검색 쿼리에 기초하여, 브라우즈 노드를 갖지 않는 카테고리 및 애스펙트 조합의 패턴을 결정하는 동작; 및
    상기 결정된 패턴과 매칭되는 복수의 브라우즈 노드를 생성하라는 요청을 전송하는 동작을 더 포함하는
    시스템.
  11. 제8항에 있어서,
    상기 동작들은:
    상기 요청을 수신하는 것에 응답하여, 상기 브라우즈 노드를 생성하는 동작을 더 포함하는
    시스템.
  12. 제11항에 있어서,
    상기 브라우즈 노드를 생성하는 동작은 타이틀이 있는 문서를 생성하는 동작을 포함하는
    시스템.
  13. 제12항에 있어서,
    상기 문서는 HTML 문서이고, 상기 타이틀은 <h1> HTML 태그에 포함되는
    시스템.
  14. 제8항에 있어서,
    상기 카테고리 및 상기 카테고리의 하나 이상의 애스펙트의 조합을 식별하는 동작은:
    대체된 용어와 대체 용어 사이의 퍼지 매칭에 기초하여 상기 검색 쿼리의 하나 이상의 용어를 하나 이상의 대체 용어로 대체하는 동작을 포함하는
    시스템.
  15. 기계의 하나 이상의 프로세서에 의한 실행시에, 상기 기계로 하여금 제1항 내지 제7항 중 어느 한 항의 방법을 수행하게 하는 명령어를 포함하는
    기계-판독 가능 저장 매체.
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
KR1020187037876A 2016-05-31 2017-05-30 결락된 브라우즈 노드의 식별 KR102285266B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662343646P 2016-05-31 2016-05-31
US62/343,646 2016-05-31
US15/290,283 US11080302B2 (en) 2016-05-31 2016-10-11 Identifying missing browse nodes
US15/290,283 2016-10-11
PCT/US2017/035004 WO2017210192A1 (en) 2016-05-31 2017-05-30 Identifying missing browse nodes

Publications (2)

Publication Number Publication Date
KR20190013961A KR20190013961A (ko) 2019-02-11
KR102285266B1 true KR102285266B1 (ko) 2021-08-03

Family

ID=60418795

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020187037876A KR102285266B1 (ko) 2016-05-31 2017-05-30 결락된 브라우즈 노드의 식별
KR1020187037847A KR20190013954A (ko) 2016-05-31 2017-05-30 애스펙트를 이용한 쿼리의 라벨링

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020187037847A KR20190013954A (ko) 2016-05-31 2017-05-30 애스펙트를 이용한 쿼리의 라벨링

Country Status (5)

Country Link
US (3) US11080302B2 (ko)
EP (2) EP3465484A4 (ko)
KR (2) KR102285266B1 (ko)
CN (2) CN109313542A (ko)
WO (2) WO2017210207A1 (ko)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050131837A1 (en) 2003-12-15 2005-06-16 Sanctis Jeanne D. Method, system and program product for communicating e-commerce content over-the-air to mobile devices
US8370269B2 (en) 2004-06-02 2013-02-05 Overstock.Com, Inc. System and methods for electronic commerce using personal and business networks
US9747622B1 (en) 2009-03-24 2017-08-29 Overstock.Com, Inc. Point-and-shoot product lister
US11676192B1 (en) 2013-03-15 2023-06-13 Overstock.Com, Inc. Localized sort of ranked product recommendations based on predicted user intent
US11023947B1 (en) 2013-03-15 2021-06-01 Overstock.Com, Inc. Generating product recommendations using a blend of collaborative and content-based data
US10810654B1 (en) 2013-05-06 2020-10-20 Overstock.Com, Inc. System and method of mapping product attributes between different schemas
US10929890B2 (en) 2013-08-15 2021-02-23 Overstock.Com, Inc. System and method of personalizing online marketing campaigns
US10872350B1 (en) 2013-12-06 2020-12-22 Overstock.Com, Inc. System and method for optimizing online marketing based upon relative advertisement placement
US10534845B2 (en) 2016-05-11 2020-01-14 Overstock.Com, Inc. System and method for optimizing electronic document layouts
US11080302B2 (en) 2016-05-31 2021-08-03 Ebay Inc. Identifying missing browse nodes
US10970769B2 (en) * 2017-03-02 2021-04-06 Overstock.Com, Inc. Method and system for optimizing website searching with user pathing
US20180341716A1 (en) * 2017-05-26 2018-11-29 Microsoft Technology Licensing, Llc Suggested content generation
US10698581B2 (en) 2017-11-03 2020-06-30 Salesforce.Com, Inc. Dialog reuse for a visual bot builder
US10706450B1 (en) * 2018-02-14 2020-07-07 Amazon Technologies, Inc. Artificial intelligence system for generating intent-aware recommendations
US10866976B1 (en) 2018-03-20 2020-12-15 Amazon Technologies, Inc. Categorical exploration facilitation responsive to broad search queries
US11514493B1 (en) 2019-03-25 2022-11-29 Overstock.Com, Inc. System and method for conversational commerce online
US11205179B1 (en) 2019-04-26 2021-12-21 Overstock.Com, Inc. System, method, and program product for recognizing and rejecting fraudulent purchase attempts in e-commerce
US11734368B1 (en) 2019-09-26 2023-08-22 Overstock.Com, Inc. System and method for creating a consistent personalized web experience across multiple platforms and channels
US11914561B2 (en) * 2020-03-03 2024-02-27 Rovi Guides, Inc. Systems and methods for interpreting natural language search queries using training data
US11594213B2 (en) 2020-03-03 2023-02-28 Rovi Guides, Inc. Systems and methods for interpreting natural language search queries
US11507572B2 (en) 2020-09-30 2022-11-22 Rovi Guides, Inc. Systems and methods for interpreting natural language search queries
US11790005B2 (en) * 2020-11-30 2023-10-17 Google Llc Methods and systems for presenting privacy friendly query activity based on environmental signal(s)
KR102588268B1 (ko) * 2021-02-17 2023-10-13 호서대학교 산학협력단 정보검색모델을 위한 데이터 전처리 및 학습 과정을 일괄처리 하는 방법
CN114510521B (zh) * 2022-04-19 2022-09-09 深圳丰尚智慧农牧科技有限公司 基于三维模型的数据展示方法、装置和计算机设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060122994A1 (en) * 2004-12-06 2006-06-08 Yahoo! Inc. Automatic generation of taxonomies for categorizing queries and search query processing using taxonomies
US20080270356A1 (en) * 2007-04-26 2008-10-30 Microsoft Corporation Search diagnostics based upon query sets
US20120317120A1 (en) * 2011-06-08 2012-12-13 Ebay Inc. System and method for mining category aspect information
US20140282118A1 (en) * 2013-03-15 2014-09-18 Konica Minolta Laboratory U.S.A., Inc. Graphical user interface displaying multi-branched browsing history tree for web navigation
US20140379498A1 (en) * 2008-09-04 2014-12-25 Amazon Technologies, Inc. Dynamic categorizations for electronic advertising
US20160148295A1 (en) * 2009-09-16 2016-05-26 A9.Com, Inc. Identifying missing search phrases

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7043474B2 (en) 2002-04-15 2006-05-09 International Business Machines Corporation System and method for measuring image similarity based on semantic meaning
US7331038B1 (en) 2003-07-02 2008-02-12 Amazon.Com, Inc. Predictive prefetching to improve parallelization of document generation subtasks
US7647309B1 (en) 2007-03-29 2010-01-12 A9.Com, Inc. Browse relevance
US20110071925A1 (en) 2009-09-24 2011-03-24 Lexon Industries Inc. System and method of providing a browse tree for ad listings
US9405841B2 (en) * 2009-10-15 2016-08-02 A9.Com, Inc. Dynamic search suggestion and category specific completion
US8861844B2 (en) 2010-03-29 2014-10-14 Ebay Inc. Pre-computing digests for image similarity searching of image-based listings in a network-based publication system
US9530166B2 (en) * 2010-04-21 2016-12-27 Facebook, Inc. Social graph that includes web pages outside of a social networking system
US20120078709A1 (en) 2010-09-23 2012-03-29 Dunham Carl A Method and system for managing online advertising objects using textual metadata tags
US20130173395A1 (en) 2011-12-29 2013-07-04 Ebay Inc. Paid promotional tags
US9552425B2 (en) 2011-06-02 2017-01-24 Ebay Inc. System and method for determining query aspects at appropriate category levels
US9189550B2 (en) * 2011-11-17 2015-11-17 Microsoft Technology Licensing, Llc Query refinement in a browser toolbar
US8719261B2 (en) 2011-12-02 2014-05-06 Verizon Patent And Licensing Inc. Dynamic catalog ranking
US20140046756A1 (en) 2012-08-08 2014-02-13 Shopzilla, Inc. Generative model for related searches and advertising keywords
US9613131B2 (en) 2013-01-25 2017-04-04 International Business Machines Corporation Adjusting search results based on user skill and category information
US20150081679A1 (en) 2013-09-13 2015-03-19 Avishek Gyanchand Focused search tool
US9489461B2 (en) 2014-03-03 2016-11-08 Ebay Inc. Search ranking diversity based on aspect affinity
US9864741B2 (en) 2014-09-23 2018-01-09 Prysm, Inc. Automated collective term and phrase index
US10019514B2 (en) * 2015-03-19 2018-07-10 Nice Ltd. System and method for phonetic search over speech recordings
US20160314205A1 (en) 2015-04-24 2016-10-27 Ebay Inc. Generating a discovery page depicting item aspects
US11080302B2 (en) 2016-05-31 2021-08-03 Ebay Inc. Identifying missing browse nodes

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060122994A1 (en) * 2004-12-06 2006-06-08 Yahoo! Inc. Automatic generation of taxonomies for categorizing queries and search query processing using taxonomies
US20080270356A1 (en) * 2007-04-26 2008-10-30 Microsoft Corporation Search diagnostics based upon query sets
US20140379498A1 (en) * 2008-09-04 2014-12-25 Amazon Technologies, Inc. Dynamic categorizations for electronic advertising
US20160148295A1 (en) * 2009-09-16 2016-05-26 A9.Com, Inc. Identifying missing search phrases
US20120317120A1 (en) * 2011-06-08 2012-12-13 Ebay Inc. System and method for mining category aspect information
US20140282118A1 (en) * 2013-03-15 2014-09-18 Konica Minolta Laboratory U.S.A., Inc. Graphical user interface displaying multi-branched browsing history tree for web navigation

Also Published As

Publication number Publication date
EP3465417A1 (en) 2019-04-10
US20210279261A1 (en) 2021-09-09
WO2017210207A1 (en) 2017-12-07
EP3465484A1 (en) 2019-04-10
US20170344615A1 (en) 2017-11-30
CN110199276A (zh) 2019-09-03
CN110199276B (zh) 2024-01-26
EP3465417A4 (en) 2019-11-27
EP3465484A4 (en) 2019-11-27
US20170344622A1 (en) 2017-11-30
WO2017210192A1 (en) 2017-12-07
CN109313542A (zh) 2019-02-05
KR20190013961A (ko) 2019-02-11
US11636135B2 (en) 2023-04-25
KR20190013954A (ko) 2019-02-11
US11080302B2 (en) 2021-08-03

Similar Documents

Publication Publication Date Title
KR102285266B1 (ko) 결락된 브라우즈 노드의 식별
CN107077320B (zh) 用于自动完成功能的改进的系统和方法
KR102285263B1 (ko) 제품 타이틀 선택 기법
KR102214015B1 (ko) 스마트 매치 자동 완성 시스템
CN109564570B (zh) 使用频繁模式挖掘的浏览节点创建
US20170293695A1 (en) Optimizing similar item recommendations in a semi-structured environment
US11775601B2 (en) User electronic message system
KR102246823B1 (ko) 상이한 사이트들에 걸쳐 데이터를 채택하는 방법
US20210165838A1 (en) Context Identification For Content Generation
EP3430528A1 (en) Catalogue management
US10929411B2 (en) Precedence-based fast and space-efficient ranking

Legal Events

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