KR102310114B1 - 자동완성 검색 결과에 대한 시간적 요구를 식별하는 기법 - Google Patents

자동완성 검색 결과에 대한 시간적 요구를 식별하는 기법 Download PDF

Info

Publication number
KR102310114B1
KR102310114B1 KR1020207029217A KR20207029217A KR102310114B1 KR 102310114 B1 KR102310114 B1 KR 102310114B1 KR 1020207029217 A KR1020207029217 A KR 1020207029217A KR 20207029217 A KR20207029217 A KR 20207029217A KR 102310114 B1 KR102310114 B1 KR 102310114B1
Authority
KR
South Korea
Prior art keywords
category
categories
autocomplete
period
search
Prior art date
Application number
KR1020207029217A
Other languages
English (en)
Other versions
KR20200119913A (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 KR20200119913A publication Critical patent/KR20200119913A/ko
Application granted granted Critical
Publication of KR102310114B1 publication Critical patent/KR102310114B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9032Query formulation
    • G06F16/90324Query formulation using system suggestions
    • G06F16/90328Query formulation using system suggestions using search space presentation or visualization, e.g. category or range presentation and selection
    • 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/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

실시예들은 질의에 대한 시간적 요구를 식별하고 메타데이터를 사용하여 자동완성 결과를 수정하기 위한 시스템 및 방법을 설명한다. 하나의 실시예에서, 이력 질의의 레코드는 시스템에 의해 저장되고 분석되어 하나 이상의 카테고리와 연관된 자동완성 결과에 대한 요구가 정상 요구로부터 벗어나는 주기적이고 반복되는 이벤트를 식별한다. 이 레코드에 기초한 시간 모델은 반복된 이벤트와 연관되는 후속 기간 동안 자동완성 검색 결과를 조정하는데 사용된다.

Description

자동완성 검색 결과에 대한 시간적 요구를 식별하는 기법{IDENTIFYING TEMPORAL DEMAND FOR AUTOCOMPLETE SEARCH RESULTS}
본 출원은 2014년 9월 30일에 출원된 미국 가출원 제62/057,548호의 우선권의 이익을 주장하며, 그 전체는 본원에 참조로 포함된다.
본 개시는 일반적으로 자동완성 성능을 개선하기 위한 검색 엔진 내의 자동완성 기능 및 시스템에 의해 수신되는 예상 검색에서의 주기적 시간 기반 변경의 사용에 관한 것이다.
자동완성은 사용자 입력의 일부분을 수신해서 최종 사용자 입력을 예측하는 컴퓨팅 디바이스의 기능이다. 특정 시스템에서, 단일의 예측된 입력이 제공되지만, 다른 시스템에서는 가능한 최종 입력들의 리스트가 표시되고 그 다음에 사용자가 사용자에 의해 시작된 입력을 완성하기보다는 예측된 입력을 선택할 수 있다. 본원에 설명되는 실시예들은 자동완성 기능 및 검색 결과를 위한 개선된 시스템 및 방법에 관한 것이다.
첨부된 도면의 다양한 도면들은 단지 본 발명의 예시적인 실시예를 도시할 뿐이며 그 범위를 제한하는 것으로 간주될 수는 없다.
도 1은 일부 예시적인 실시예에 따른 개선된 자동완성 및 검색 결과 구현예를 사용할 수 있는 네트워크 아키텍처에 관한 블록도이다.
도 2는 일부 예시적인 실시예에 따른 개선된 자동완성 및 검색 결과 구현예를 사용할 수 있는 발행 시스템에 관한 블록도이다.
도 3a는 일부 예시적 실시예들에 따른 개선된 자동완성 및 검색 결과 구현예와 함께 사용될 수 있는 카테고리 트리 데이터베이스에 관한 도면이다.
도 3b는 일부 예시적 실시예들에 따른 개선된 자동완성 및 검색 결과 구현예와 함께 사용될 수 있는 카테고리 트리 데이터베이스에 관한 도면이다.
도 4a는 일부 예시적 실시예들에 따른 특정 용어와 연관된 검색 요청에서의 시간 기반 변화를 도시하는 도면이다.
도 4b는 일부 예시적 실시예들에 따라 특정 용어와 연관된 검색 요청에서의 시간 기반 변화를 도시하는 도면이다.
도 5a는 일부 예시적 실시예들에 따른 사용자 인터페이스의 양태를 도시한다.
도 5b는 일부 예시적 실시예들에 따른 사용자 인터페이스의 양태를 도시한다.
도 5c는 일부 예시적 실시예들에 따른 사용자 인터페이스의 양태를 도시한다.
도 5d는 일부 예시적 실시예들에 따른 사용자 인터페이스의 양태를 도시한다.
도 6은 머신으로 하여금 본원에 설명된 방법들 중 임의의 하나 이상의 방법을 수행하게 하는 명령어 세트가 실행될 수 있는 예시적 형태의 컴퓨팅 시스템에서의 머신의 간략화된 블록도이다.
도 7은 자동완성 결과 및 검색 결과를 생성하기 위한 시간적 질의 데이터를 사용하기 위한 방법을 도시한다.
도 8은 일부 예시적 실시예들과 함께 사용될 수 있는 소프트웨어 아키텍처를 도시한다.
도 9는 일부 예시적 실시예들의 양태들을 구현하는데 사용될 수 있는 디바이스를 도시한다.
이어지는 설명은 예시의 실시예들을 포함하는 시스템, 방법, 기법, 명령어 시퀀스, 컴퓨팅 머신 프로그램 제품을 포함한다. 다음 설명에서, 설명의 목적으로, 특허청구대상의 다양한 실시예들에 관한 이해를 제공하기 위해 많은 특정한 세부사항이 개시된다. 그러나, 이러한 특정한 세부사항 없이도 본 발명의 특허청구대상에 관한 실시예들이 실시될 수 있다는 것은 본 기술분야의 당업자에게 자명할 것이다. 일반적으로, 공지의 명령어 인스턴스, 프로토콜, 구조, 및 기법은 상세히 도시되지 않는다.
본원에 설명되는 실시예들은 일반적으로 자동완성 시스템 및 검색 결과에 관한 것이고, 더 구체적으로, 시스템에 대한 사용자 입력에서의 시간 기반 변경을 식별하는 시스템에 관한 것이다. 예를 들어, 축구 월드컵이 열리는 4년마다 검색 엔진에서 축구와 연관되어 수신되는 사용자 입력이 급격히 증가할 수 있다. 본원에 설명되는 실시예들은 자동완성 선택 시 표시되는 검색 결과를 개선하기 위해 부분적으로 타이핑되는 사용자 입력과 함께 축구 월드컵에 근접한 시간에 대한 정보를 캡처 및 사용할 수 있다. 예를 들어, 일반적인 검색은 부분적인 사용자 입력 "soc"를 취하고 "socks", "System on a Chip(SOC)" 또는 "soccer"를 포함하는 자동완성 선택 리스트를 표시한다. 진행 중인 월드컵 이벤트에 대한 정보를 사용하는 시스템은 이러한 "soc"라는 부분 입력을 사용하여 축구 또는 월드컵과 연관된 모든 자동완성 선택 리스트를 제공할 수 있다. 월드컵이 끝난 이후, 검색 엔진은 월드컵 검색 결과의 정상 가중치로 전환할 것이고, 이는 월드컵 동안의 가중치보다 상당히 낮을 것이다.
본원에 설명되는 바와 같이 자동완성은 웹 브라우저, 워드 프로세서, 및 검색 엔진 인터페이스와 같은 특정 컴퓨팅 프로그램 또는 서비스에 의해 제공되는 특징이다. 자동완성은 사용자가 단어 또는 문구를 완전히 타이핑하지 않아도 사용자가 타이핑하고 있는 단어 또는 문구에 관한 예측을 수반하며, 이는 단어 또는 문구에 관한 초기의 부분 입력에 기초할 수 있다. 그러한 자동완성 기능은 사용자 입력 시간을 감소시키고 사용자에 의해 고려되지 않았던 입력을 제안할 수도 있다.
많은 사용자 질의가 사용자가 최종 입력 문구를 결정하기 이전에 사용자에 의한 부분 입력으로 시작된다. 이에 더하여, 사용자 질의는 종종 폭넓거나 애매모호하다. 어떤 자동완성 시스템에서는, 검색 엔진이 부분적인 사용자 입력의 중요한 특징에 기초하여 자동완성 결과를 랭킹(rank)하도록 시도할 수 있고 그 이후 관련성에 기초한 자동완성 결과를 표시할 수 있다. 자동완성 시스템이 가진 정보가 많을수록, 사용자가 선택하거나 선호하는 결과를 제공하도록 시스템이 더 잘 수행될 것이다. 이는 사용자가 더 많은 입력 문구를 입력할 때의 개선된 성능뿐만 아니라 명시적이거나 암시적일 수 있는 다른 정보 모두를 포함한다. 명시적 정보는, 사용자에 의해 제공된 사용자 선호사항 또는 관심을 포함하는, 사용자에 의해 선택된 자동완성 시스템 선호사항을 포함할 수 있다. 암시적 정보는 특정 사용자의 이전 검색뿐만 아니라, 모든 시스템 사용자의 이전 검색에 기초할 수 있는 추론 정보를 포함한다.
전술된 바와 같이, 시스템에 입력된 매우 많은 또는 모든 사용자 검색과 연관된 이력 정보에 액세스하는 시스템에 대하여, 제한된 기간 동안 특정 문구의 입력이 더 빈번하게 수신되는 주기적 이벤트가 존재할 수도 있고, 그러한 이벤트는 특정 년도, 일자, 또는 예측가능 이벤트와 연관될 수 있다.
어떤 검색 엔진은 몇일 또는 몇주 동안 가장 최근 검색을 모두 종합하여 자동완성 시스템의 일부로서 향후 검색을 예측하지만, 그러한 최근 이력에 기초한 시스템은 주기적인 이벤트가 잘 진행되거나 최근 시간 종합과 연관된 지연으로 인해 끝날 때까지는 그러한 주기적인 이벤트를 통합하지 않는다.
본원에 설명되는 실시예들은 이벤트 시작 정보, 이벤트 종료 정보, 및 반복되는 고려 기간 모두를 사용하여 자동완성 결과를 제공할 수 있다. 하나의 실시예에서, 예를 들어, 시스템은 일정 개수의 검색 카테고리를 식별할 수 있고, 각각의 검색 카테고리는 특정 자동완성 구문 또는 하위 카테고리와 관련될 수 있다. 각각의 실제 검색의 레코드를 유지하는 대신, 시스템은 모든 검색 중 몇 퍼센트가 특정 카테고리와 연관되는지에 관한 레코드를 유지한다. 특정 카테고리와 연관된 모든 검색 중 일정 비율에서의 주기적 급증(spike)은 추후 날짜와 연관될 수 있고, 그러한 추후 날짜 동안의 자동완성 결과는 특정 카테고리 또는 하위 카테고리와 연관된 구문에 대하여 가중될 수 있다. 예를 들어, "의상(costume)" 카테고리의 인기 급증이 매년 할로윈 3주 전에 시작하여 할로윈데이에 종료되는 것을 볼 수 있다. 실시간 변화 및 가장 최근 기간의 검색 결과에 응답하지 않고도, 본원에 설명되는 실시예들에 따른 자동완성 시스템은 이러한 정보를 사용하여 할로윈 3주 전에 자동완성 결과를 자동으로 조정하기 시작하고, 할로윈데이 이후에는 그러한 결과 조정을 중지할 것이다. 이와 대조적으로, 최근 사용자 입력을 사용하는 시스템은 인기 급증이 시작되고 훨씬 후에 결과를 조정하기 시작하고, 급증이 끝나고 훨씬 이후에 바이어싱된 결과를 계속해서 사용할 것이다. 이력을 사용하여 시간적 데이터 시프트를 예상하는 본원에 설명된 실시예들에서, 임의의 주기적 시프트가 포함될 수도 있다. 그러한 주기적 조정은 매년, 매월, 매주, 또는 심지어 매일 행해질 수도 있다. 추가 조정은 예측할 수 없는 이벤트의 시스템 운영자 식별을 기반으로 할 수 있지만 캘린더, 입력 일정 또는 스크랩된 뉴스 데이터 또는 기타 입력으로부터의 자동 이벤트 트리거에 기초할 수도 있다.
도 1은 부분 사용자 입력이 클라이언트 디바이스(110) 또는 클라이언트 디바이스(112)로부터 네트워크화된 시스템(102)에 의해 수신될 수 있고, 자동완성 검색 결과가 부분 사용자 입력 및 자동완성 이벤트 시간 프레임과의 연관성에 기초하여 제공될 수 있는 고레벨 클라이언트-서버 기반 네트워크 아키텍처(100)에 관한 예시적 실시예이다. 네트워크-서버측 기능에 관한 예시적 형태로, 네트워크화된 시스템(102)은 통신 네트워크(104)(예를 들어, 인터넷, 무선 네트워크, 셀룰러 네트워크, 또는 광대역 네트워크(WAN))를 통해 하나 이상의 클라이언트 디바이스(110 및 112)에 연결된다. 도 1은, 예를 들어, 웹 클라이언트(106) 브라우저(예를 들어, 워싱턴주 레드몬드에 소재한 마이크로소프트 코포레이션®에 의해 개발된 인터넷 익스플로어® 브라우저)를 통해 동작하는 웹 클라이언트(106) 및 각각의 클라이언트 디바이스(110 및 112) 상에서 실행되는 프로그래매틱 클라이언트(108)를 도시한다. 웹 클라이언트(106) 및 프로그래매틱 클라이언트(108) 중 하나 또는 둘 모두는 사용자 인터페이스를 제공하여 부분 사용자 입력을 수신하고 디바이스의 사용자에게 자동완성 검색 결과를 제공할 수 있다.
클라이언트 디바이스(110 및 112)는 모바일 폰, 데스크톱 컴퓨터, 랩톱, 태블릿, 패블릿, 웨어러블 디바이스, 네트워크 어플라이언스, 또는 네트워크화된 시스템(102)에 액세스하기 위해 사용자가 이용할 수 있는 임의의 다른 통신 디바이스를 포함할 수 있다. 일부 실시예들에서, 클라이언트 디바이스(110)는 정보를 디스플레이하기 위한(예를 들어, 사용자 인터페이스의 형태로) 디스플레이 모듈(미도시)을 포함할 수 있다. 추가 실시예들에서, 클라이언트 디바이스(110)는 터치 스크린, 가속도계, 카메라, 마이크로폰, 및 GPS 디바이스 중 하나 이상을 포함할 수 있다. 클라이언트 디바이스(110 및 112)는 네트워크화된 시스템 내에서 디지털 상품을 포함하는 거래를 수행하는데 사용될 수 있는 사용자의 디바이스일 수도 있다. 하나의 실시예에서, 네트워크화된 시스템(102)은 디지털 상품을 관리하고, 네트워크 기반 마켓플레이스에서 이용가능한 제품의 아이템 리스팅을 포함하는 간행물(publications)을 발행하고, 그러한 마켓플레이스 거래를 위한 결제를 관리하는 네트워크 기반 마켓플레이스이다.
애플리케이션 프로그램 인터페이스(API) 서버(114) 및 웹 서버(116)는 하나 이상의 애플리케이션 서버(118)에 연결되고 프로그래매틱 인터페이스 및 웹 인터페이스 각각을 하나 이상의 애플리케이션 서버(118)에 제공한다. 애플리케이션 서버(118)는 발행 시스템(120) 및 결제 시스템(122)을 호스팅하고, 이들 각각은 하나 이상의 모듈, 애플리케이션, 또는 엔진을 포함할 수 있고, 이들 각각은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 포함될 수 있다. 특정 실시예들에서, 자동완성 시스템은 발행 시스템(120)의 일부로서, 애플리케이션 서버(118) 상에서 동작하는 개별 시스템의 일부로서, 또는 네트워크화된 시스템(102)과 통합된 개별 서버 시스템의 일부로서 통합될 수 있다. 그 다음, 애플리케이션 서버(118)는 하나 이상의 정보 저장 저장소 또는 데이터베이스(들)(126)에 대한 액세스를 가능하게 하는 하나 이상의 데이터베이스 서버(124)에 연결된다. 하나의 실시예에서, 데이터베이스(126)는 발행 시스템(120)에 포스팅될 정보(예를 들어, 간행물 또는 리스팅)를 저장하는 저장 디바이스이다. 데이터베이스(126)는 또한 예시적 실시예들에 따라 디지털 상품 정보를 저장할 수도 있다.
예시적 실시예들에서, 발행 시스템(120)은 네트워크(예를 들어, 인터넷) 상에 콘텐츠를 발행한다. 이와 같이, 발행 시스템(120)은 여러 간행물 및 마켓플레이스 기능 및 서비스를 네트워크화된 시스템(102)에 액세스하는 사용자에게 제공한다. 발행 시스템(120)은 도 2와 함께 더 상세히 설명된다. 예시적 실시예에서, 발행 시스템(120)은 온라인 마켓플레이스 환경의 관점에서 설명된다. 그러나, 발행 시스템(120)은 정보를 제공하는 환경(예를 들어, 검색 엔진) 또는 소셜 네트워크 환경과 같은 마켓플레이스가 아닌 환경과 연관될 수도 있다.
결제 시스템(122)은 다수의 결제 서비스 및 기능을 사용자에게 제공한다. 결제 시스템(122)은 사용자가 자신의 계정에 값(예를 들어, 미국 달러와 같은 상업 통화 또는 포인트, 마일리지, 또는 민간 기업에 의해 제공되는 다른 형태의 통화와 같은 사유 통화로)을 축적하고, 그 이후 추후에 발행 시스템(120)을 통해 또는 네트워크(104) 상의 다른 곳에서 축적된 값을 이용 가능한 제품(예를 들어, 상품 또는 서비스)으로 상환할 수 있게 한다. 결제 시스템(122)은 또한 임의의 타입 및 형태의 네트워크 기반 마켓플레이스를 통해 아이템의 구매를 위해 결제 메커니즘(예를 들어, 은행 계좌, 페이팔™ 또는 신용 카드)으로부터 결제를 가능하게 한다. 특정 실시예들에서, 복수의 자동완성 시스템은 사생활 및 보안상의 이유로 단일의 네트워크화된 시스템(102)의 일부로서 통합될 수 있다. 예를 들어, 발행 시스템(120) 및 결제 시스템(122)이 개별 자동완성 시스템과 각각 연관될 수 있다. 이러한 개별 자동완성 시스템의 각각은 사용자 검색 선택에서의 시프트와 연관되는 주기적 이벤트에 대한 정보를 저장하는 개별 데이터베이스(126)를 사용할 수 있다. 다른 실시예들에서, 사용자 검색 선호사항에서의 주기적 또는 이벤트 기반 시프트에 관한 이력 데이터에 기초하여 검색 시스템을 추적하고 업데이트하는 공유 데이터베이스 또는 시스템이, 상이한 검색 애플리케이션들과 연관된 복수의 상이한 자동완성 시스템에 의해 공유될 수 있다.
도 1에서 발행 시스템(120) 및 결제 시스템(122)은 둘 모두가 네트워크화된 시스템(102)의 일부를 형성하는 것으로 도시되지만, 대안적인 실시예들에서는 결제 시스템(122)이 네트워크화된 시스템(102)으로부터 분리되고 별개인 결제 서비스의 일부를 형성할 수 있다는 것이 이해될 것이다. 추가적으로, 도 1의 예시적인 네트워크 아키텍처(100)는 클라이언트-서버 아키텍처를 이용하지만, 당업자는 본 발명이 그러한 아키텍처로 제한되지 않는다는 점을 인식할 것이다. 예시적인 네트워크 아키텍처(100)는, 예를 들어, 분산형 또는 피어투피어 아키텍처 시스템에서 애플리케이션을 동일하게 잘 발견할 수 있다. 발행 시스템(120) 및 결제 시스템(122)은 또한 네트워킹 능력을 반드시 갖지는 않는 별도의 하드웨어 플랫폼 하에서 동작하는 스탠드얼론 시스템 또는 스탠드얼론 소프트웨어 프로그램으로 구현될 수도 있다.
이제 도 2를 참조하면, 하나의 실시예에서 네트워크화된 시스템(102)의 발행 시스템(120) 내에 제공되는 복수의 컴포넌트를 도시하는 예시의 블록도가 도시된다. 이 실시예에서, 발행 시스템(120)은 아이템(예컨대, 상품 또는 서비스)이 제공될 수 있는 마켓플레이스 시스템이다. 이들 아이템은 디지털 상품(예를 들어, 통화 또는 라이센스권)을 포함할 수 있다. 발행 시스템(120)은 통신가능하게 연결되어 서버 머신들 사이의 통신을 가능하게 하는 전용 또는 공유 서버 머신(미도시) 상에서 호스팅될 수 있다. 복수의 컴포넌트는 (예를 들어, 적절한 인터페이스를 통해) 서로에게 및 다양한 데이터 리소스에 직접적으로 또는 간접적으로 통신가능하게 연결되어 정보가 컴포넌트들 사이에서 전달될 수 있게 하고 컴포넌트가 공통 데이터를 공유하고 액세스할 수 있게 한다. 더욱이, 컴포넌트는 하나 이상의 데이터베이스 서버(124)를 통해 하나 이상의 데이터베이스(126)에 액세스할 수 있다.
발행 시스템(120)은 다수의 발행, 리스팅, 및 가격 설정 메커니즘을 제공하고 이로서 판매자는 판매할 제품 또는 서비스를 리스팅(또는 그에 관한 정보를 발행)할 수 있고, 구매자는 그러한 제품 또는 서비스를 구매하는 것에 대한 관심을 표현하거나 구매 욕구를 표시할 수 있으며, 상품 또는 서비스에 대한 거래에 대해 가격이 설정될 수 있다. 이를 위해, 발행 시스템(120)은 적어도 하나의 발행 엔진(202) 및 경매 포맷 리스팅 및 가격 설정 메커니즘(예를 들어, 영어, 네덜란드어, 중국어, 이중, 역 경매 등)을 지원하는 하나 이상의 경매 엔진(204)을 포함할 수 있다.
프라이싱 엔진(206)은 다양한 가격 리스팅 포맷을 지원한다. 하나의 그러한 포맷은 고정 가격 리스팅 포맷(예를 들어, 전형적인 분류 광고 타입의 리스팅 또는 카탈로그 리스팅)이다. 다른 포맷은 바이아웃 타입 리스팅을 포함한다. 바이아웃 타입 리스팅(예를 들어, 즉시 구매(캘리포니아 산호세에 소재한 이베이 인크에 의해 개발된 Buy-It-Now(BIN) 기법)은 경매 포맷의 리스팅과 함께 제공될 수 있고 구매자로 하여금 아이템에 대한 경매의 시작 가격보다 일반적으로 높은 고정 가격으로, 경매를 통해 판매를 위해 제안되는 상품 또는 서비스를 구매할 수 있게 한다.
저장 엔진(208)은 판매자가 판매자에 대해 브랜드화되거나 아니면 개인화될 수 있는 "가상" 스토어 내에서 리스팅을 그룹화할 수 있게 한다. 그러한 가상 스토어는 또한 프로모션, 인센티브, 및 판매자에게 특정하고 개인화된 특징을 제공할 수도 있다. 일 예에서, 판매자는 가상 스토어에서 즉시 구매 아이템으로 복수의 아이템을 제안하거나, 경매를 위해 복수의 아이템을 제안하거나, 이들의 조합을 제안할 수도 있다.
평판 엔진(210)은 네트워크화된 시스템(102)을 이용하여 거래하는 사용자가 평판을 수립, 구축, 및 유지할 수 있게 한다. 이러한 평판은 잠재적 거래 파트너에게 이용가능해지거나 발행될 수 있다. 일 실시예에 따르면, 평판 시스템(120)은 알려지지 않은 엔티티들 사이의 개인 대 개인 거래를 지원할 수 있기 때문에, 사용자는 이력 또는 다른 참조 정보를 달리 가지고 있지 않으므로 잠재적 거래 파트너의 신용 및 신뢰도가 평가될 수 있다. 평판 엔진(210)은, 예를 들어, 하나 이상의 다른 거래 파트너에 의해 제공된 피드백을 통해 시간이 지나면서 사용자가 네트워크 기반 마켓플레이스 내에 평판을 수립할 수 있게 한다. 그 이후 다른 잠재 거래 파트너가 신용 및 신뢰도를 평가하기 위한 목적으로 평판을 참조할 수 있다.
네트워크 기반 마켓플레이스의 내비게이션은 내비게이션 엔진(212)에 의해 가능해질 수 있다. 예를 들어, 브라우저 모듈(미도시)은 발행 시스템(120) 내에서 분류될 수 있는 리스팅에 따라 사용자가 다양한 카테고리, 카탈로그 또는 인벤토리 데이터 구조를 브라우징할 수 있게 한다. 내비게이션 엔진(212) 내의 다양한 다른 내비게이션 애플리케이션이 브라우징 애플리케이션을 보충하기 위해 제공된다. 임의의 그러한 애플리케이션은 본원에 설명된 자동완성 시스템을 포함하거나 자동완성 시스템에 액세스하여 부분 사용자 입력 및 자동완성 이벤트 시간 프레임에 기초하여 사용자에게 자동완성 결과를 제공할 수 있다.
네트워크화된 시스템(102)을 통해 리스팅 및 자동완성 결과를 이용가능하도록 하기 위해, 발행 시스템(120)은 사용자가 포함할 이미지를 발행 내에 업로드하고 보이는 리스팅 내에 이미지를 통합할 수 있게 하는 이미징 엔진(214)을 포함할 수 있다. 이미징 엔진(214)은 또한 사용자로부터 이미지 데이터를 검색 질의로서 수신할 수 있고 이미지 데이터를 이용하여 이미지 데이터에 의해 설명되거나 명시된 아이템을 식별할 수 있다.
리스팅 생성 엔진(216)은 사용자(예를 들어, 판매자)가 아이템의 리스팅을 편리하게 저작(author)할 수 있게 한다. 일 실시예에서, 리스팅은 사용자가 발행 시스템(120)을 통해 거래하기 원하는 상품 및 서비스에 관한 것이다. 다른 실시예들에서, 사용자는 광고 또는 다른 형태의 발행인 리스팅을 생성할 수도 있다.
리스팅 관리 엔진(218)은 사용자가 그러한 리스팅을 관리할 수 있게 한다. 보다 구체적으로, 특정 사용자가 많은 개수의 리스팅을 저작하거나 발행한 경우, 그러한 리스팅의 관리에 어려움이 있을 수도 있다. 리스팅 관리 엔진(218)은 사용자가 그러한 리스팅을 관리하는 것을 돕는 다수의 특징(예를 들어, 자동 재리스팅(relisting), 인벤토리 레벨 모니터 등)을 제공한다.
사후 리스팅 관리 엔진(220)은 또한 전형적으로 사후 리스팅을 발생시키는 다수의 활동으로 사용자를 돕는다. 예를 들어, 하나 이상의 경매 엔진(204)에 의한 거래 완료 시, 판매자는 특정 구매자에 관한 피드백을 남기기 원할 수 있다. 이를 위해, 사후 리스팅 관리 엔진(220)은 판매자가 복수의 구매자에 관한 피드백을 평판 엔진(210)에 편리하게 제공하게 하는 인터페이스를 평판 엔진(210)에 제공한다. 다른 사후 리스팅 동작은 판매된 아이템의 배송을 수반할 수 있고 이로써 사후 리스팅 관리 엔진(220)은 배송 라벨을 프린팅하고, 배송 비용을 추정하고, 배송 업체를 제안하는 것을 도울 수 있다.
검색 엔진(222)은 질의에 매칭되는 발행에 대한 검색을 네트워크화된 시스템(102)에서 수행한다. 예시적 실시예들에서, 검색 엔진(222)은 발행 시스템(120)을 통해 발행되는 발행물에 관한 키워드 검색을 가능하게 하는 검색 모듈(미도시)을 포함한다. 추가 실시예에서, 검색 엔진(222)은 검색을 수행하기 위한 입력으로서 이미징 엔진(214)에 의해 수신된 이미지를 취할 수 있다. 검색 엔진(222)은 질의 입력을 취하고 네트워크화된 시스템(102)으로부터 복수의 매칭(예를 들어, 데이터베이스(126)에 저장된 발행)을 결정한다. 검색 엔진(222)의 기능이 내비게이션 엔진(212)과 조합될 수 있다는 점을 유의해야 한다.
비교 쇼핑 엔진(224)은 네트워크화된 시스템(102)에서의 거래를 관리한다. 비교 쇼핑 엔진(224)의 동작은 아래에서 더 상세히 설명된다.
특정 실시예들에서, 상기 요소들 중 일부 요소들로부터의 명시적 정보 및 암시적 정보는 부분 사용자 입력 및 자동완성 이벤트 기간과 조합되어 클라이언트 디바이스에 제공되는 자동완성 검색 결과를 결정할 수 있다. 예를 들어, 발행 엔진(202) 및 연관된 경매 엔진(204)은 리스팅의 레코드 및 본원에 설명되는 바와 같이 시스템 사용자 관심의 시간적 시프트에 기초하여 검색 결과 변형을 매칭시키는 발행 정보를 제공할 수 있다. 이와 마찬가지로, 리스팅 생성 엔진은 이벤트를 주기적 또는 예측 가능하게 재발생하는 이벤트와 연관되는 아이템의 저작 리스팅에서의 변화를 포함하는 아이템의 저작 리스팅에 대한 정보를 추적할 수 있다.
예측 가능하게 재발생한 이벤트 및 이러한 이벤트 주변의 사용자 검색에서의 시프트에 대한 정보는 그 이후 검색 엔진(222) 또는 비교 쇼핑 엔진(224)에 제공될 수 있다. 검색 엔진(222) 또는 비교 쇼핑 엔진(224)으로부터의 결과는 그 이후 업데이트되고 재발생 이벤트 동안 발생하는 식별된 변화에 기초하여 조정된다. 일부 실시예들에서, 발행 시스템(120)에 대해 전술된 임의의 모듈은 자동완성 서비스를 갖는 형태 또는 검색 모듈의 기본 동작을 보충하는 검색 서비스를 포함할 수 있다. 자동 완성 결과를 제공하기 위해 재발행 이벤트에 기초한 피드백은 발행 시스템(120)의 그러한 모듈 중 임의의 모듈의 임의의 폼 요소 또는 검색 요소에서 사용될 수 있다.
발행 시스템(120)의 다양한 컴포넌트가 다양한 개별 모듈 및 엔진에 관하여 정의되었지만, 본 기술분야의 당업자는 많은 아이템이 다른 방법으로 조합되거나 조직될 수 있고 예시적 실시예들에 따라 모든 모듈 또는 엔진이 존재하거나 실행될 필요는 없다는 점을 인식할 것이다. 더욱이, 발행 시스템(120)의 일 예인, 마켓플레이스 시스템의 모든 컴포넌트가 도 2에 포함되지는 않았다. 일반적으로, 예시적 실시예들의 기능과 직접 관련되지 않는 컴포넌트, 프로토콜, 구조, 및 기법(예를 들어, 분쟁 해결 엔진, 로열티 프로모션 엔진, 개인화 엔진 등)은 상세히 도시되거나 설명되지 않았다. 본원에 주어진 설명은 단지 본원에 사용되는 시스템 및 방법을 이해하는데 독자에게 도움을 주고자 하는 다양한 예시적 실시예들을 제공한다.
도 3a 및 도 3b는 재발생 이벤트와 연관된 검색 선호사항의 시프트를 관리하기 위한 시스템에 관한 양태를 도시한다. 도 3a는 주기적 이벤트와 연관될 수 있는 카테고리에 대해 사용될 수 있는 데이터베이스에 대한 구조를 도시한다. 도 3b는 예시적 실시예에 따라 도 3a에 의해 도시된 구조를 사용하는 카테고리 트리에 관한 일 예를 설명한다. 도 3a는 티어들(tiers)로 조직화된 카테고리를 사용하는 상위 티어 자동완성 데이터베이스(310)를 나타낸다. 자동완성 데이터베이스(310)에 관한 예시적 구조는 제 1 티어 1 자동완성 카테고리(320) 및 제 2 티어 1 자동완성 카테고리(330)를 포함한다. 자동완성 데이터베이스에 관한 다양한 실시예들은 임의의 개수의 티어 1 카테고리를 포함할 수 있고, 시간이 지남에 따라 티어 1 자동완성 카테고리가 추가되거나 삭제될 수 있도록 동적일 수 있다. 자동완성 데이터베이스(310)의 구조는 또한 복수의 티어 2 자동완성 카테고리(321, 322, 331 및 332)를 포함하는 것으로 도시될 수도 있다. 각각의 티어 2 자동완성 카테고리는 티어 1 자동완성 카테고리의 하위 카테고리이다. 그러한 시스템에서 티어 1 자동완성 카테고리가 반드시 임의의 하위 카테고리를 가질 필요는 없다. 티어 2 자동완성 카테고리는 티어 1 카테고리와 연관되어야 한다. 티어 1 자동완성 카테고리는 임의의 개수의 티어 2 자동완성 카테고리와 연관된다. 추가 실시예들은 각각의 상위 티어의 적어도 하나의 자동완성 카테고리와 연관된 추가의 티어와 함께, 임의의 개수의 티어들을 포함할 수 있다.
도 3b는 특정 카테고리와 함께 구체적으로 도시되는 다른 예시적 구조를 도시한다. 도 3b의 카테고리 트리 데이터 구조는 자동완성 또는 검색 시스템에 의해 사용될 수 있는 카테고리들을 조직화한다. 도 3b의 이러한 예시적 트리 구조는 셀폰 및 악세서리(L1) > 셀폰 악세서리(L2) > 충전기 및 크래들(L3 및 또한 최하위 레벨 카테고리)을 포함한다. 카테고리 트리의 루트 카테고리(350)는 모든 L1 레벨 카테고리의 페어런트이고, 데이터베이스의 기본 구조로 고려될 수 있다. L1 카테고리(352)의 각각의 카테고리는 예시된 L2 카테고리(354)의 논리적 그룹이고 대응하는 L2 카테고리(354)의 페어런트로 지칭될 수 있다. L2 카테고리(354)는 하나 이상의 L3 카테고리(356)의 논리적 그룹을 포함할 수 있고 임의의 대응하는 L3 카테고리(356)의 페어런트일 것이다.
트리 내 임의의 지점에서의 최하위 레벨 카테고리는 "리프 카테고리(leaf category)"라고 지칭된다. 리프 카테고리는 연관된 하위 티어 카테고리를 갖지 않는다. 리프 카테고리는 임의의 카테고리 티어에 내에 존재할 수 있다. 도 3b와 관련하여 설명되는 바와 같이, 리프 카테고리는 아이템이 나열되는 카테고리 트리에서 최하위로 세분화된 레벨 카테고리로 고려될 수 있다. 이러한 카테고리는 카테고리 트리의 임의의 레벨에 존재할 수 있다. 이는 단지 그러한 경로에 대한 하위 브랜치의 개수 또는 깊이에 의존한다. 리프 카테고리(396)는 그러한 최하위 레벨 카테고리의 일 예이다. 카테고리(398)는 카테고리(358)가 카테고리(398)의 하위 브랜치인 하위 레벨 카테고리이기 때문에 리프 카테고리가 아니다. 그러한 하위 레벨 카테고리는 트리 다이어그램에서 이들 아래에 어떠한 차일드 카테고리도 갖지 않지만, 리스팅된 아이템을 포함할 수는 있다. 일부 실시예들에서, 페어런트 카테고리는 그러한 아이템 리스트를 포함하지 않고, 페어런트 카테고리는 단순히 각각의 차일드 카테고리의 리스트를 포함하는 것으로 여겨진다. 최하위 레벨 카테고리는 다양한 정보와 연관될 수 있다. 예를 들어, 하나의 실시예에서, 최하위 레벨 카테고리는 연관된 카테고리 메타데이터를 가질 수 있다:
카테고리 Id: 123417
레벨: L3
최하위 레벨 카테고리인가: 예
카테고리 이름: 충전기 크래들
리스팅: 판매자는 이 카테고리 하에 충전기 또는 크래들 타입인 아이템들을 리스팅함.
카테고리 콘텐츠에 대한 링크: http://www.fakeexample.com/sch/Chargers-Cradles-/123417/i.html
일부 실시예들에서, 그 이후 도 3b의 예시적인 카테고리 트리는 질의 카테고리 요구 데이터를 생성하는데 사용될 수 있다. 본원에 언급되는 바와 같이, 질의는 사용자에 의해 검색되는 데이터의 스트링이다. 데이터 스트링은 임의의 검색 정보와 관련될 수 있고, 이는 검색 엔진에 입력되어 검색 응답을 트리거링한다. 질의 카테고리 요구 데이터는, 시스템 사용자로부터 수신된 질의 이력(예를 들어, 데이터의 입력 스트링)뿐만 아니라 사용자에 의해 행해진 임의의 연관된 선택을 사용하여 구축된 모델을 포함할 수 있다. 다시 말해, 모델은 사용자 검색 질의 입력을 추적하고 또한 검색 결과(만약 있다면)의 어느 요소가 사용자에 의해 후속적으로 선택되었는지 추적함으로써 구축될 수 있다. 도 3a 및 도 3b의 구조를 사용하는 모델에서, 아이템은 최하위 레벨 카테고리 아래에 리스팅되고, 모든 검색 데이터는 리프 카테고리와 연관될 수 있다. 그러한 실시예에서, 질의로부터 '아이템의 리스팅 카테고리(최하위 레벨 카테고리)' 내지 '상호작용하는 아이템들'로의 전이를 추적하여, 시스템 사용자 검색의 이력에 기초하여 최하위 레벨 카테고리에 질의를 매핑하는 모델이 구축된다. 카테고리는 계층 구조를 갖기 때문에, 새로운 모델은 최하위 레벨 카테고리에 대한 질의를 L2 카테고리에 대한 질의, 및 L3 카테고리에 대한 질의로 변환함으로써 구축될 수 있다. 이 모델은 이후에 모델 제각기의 우세한 카테고리를 사용하여 태그되는 자동완성 시스템을 강화하는데 사용될 수 있다.
하나의 예시적 자동완성 데이터세트는 사용자에 의해 행해진 과거 질의를 마이닝(mining)하고 이들을 스코어링함으로써 구축된다. 이러한 스코어에 의해 생성된 모델은 더 많은 값을 사용자에게 다시 제공하도록 의도되는 각각의 질의와 연관된 메타데이터(예를 들어, 우세한 카테고리, 속성 등)를 캡처하도록 설계될 수 있고, 스코어링을 위해 더 많은 데이터를 제공하기 위해 설계될 수 있다.
모델 구축 기간 동안 다수의 사용자에 의해 사용되는 각각의 질의는 해당 질의의 빈도, 질의의 사용한 이후 뷰 아이템 횟수, 질의를 사용한 이후 구입한 아이템 개수, 질의를 사용한 이후 아이템 입찰 횟수, 및 질의를 사용한 이후 확인된 아이템의 개수에 관한 가중 함수인 스코어를 할당받는다. 다양한 다른 실시예에서, 다른 입력 정보 또는 상기의 다양한 조합이 사용될 수도 있다. 그 이후 자동완성 모델은 임의의 스코어 또는 다른 메타데이터와 함께 질의 스트링을 저장한다.
상기의 함수 입력 리스트 외에, 특정 세트의 질의 데이터에 대해 우세한 카테고리의 세트가 질의 카테고리 요구 데이터, 브랜드 데이터(질의가 브랜드 데이터를 포함하는 경우), 및 임의의 추가 속성(질의에 포함되는 경우)을 사용하여 식별될 수 있다. 사용자가 질의의 일부를 입력할 때(전체 토큰이든 부분 토큰이든), 전체 접두어(또는 접두어의 일부)를 갖는 자동완성 데이터 저장소로부터 매칭되는 질의를 찾는 로직을 갖는 자동완성 웹 서비스에 대한 호출이 행해진다. 가능한 결과는 각각의 매칭된 질의의 질의 스코어에 기초하여 랭크된다.
본원에 설명된 실시예들은 자동완성 제안 및 검색 결과의 정확성을 개선하기 위해 사용자의 검색에 관한 메타데이터의 시간적 특성을 이용한다. 이는 전술된 카테고리 구조를 사용하여 카테고리에 기초한 자동완성 결과를 조정하여 이뤄질 수 있다. 질의의 많은 그룹이 공통 접두어(예를 들어, 미완성인 검색 입력 스트링 내 문자들의 초기 세트)를 공유한다. 접두어가 주어지면, 의도한 질의인 접두어를 공유하는 각각의 가능한 질의의 확률이 시간이 지남에 따라 변한다. 예를 들어, 사용자가 접두어 "dress"를 타이핑한 경우, 만약 여름이라면, "dress for cold" 또는 "dress for winter" 보다는 "dress for summer" 또는 "dress for beach"가 가능성이 있다. 겨울인 경우, "dress for summer" 보다는 "dress for winter"가 더 높은 가능성을 갖는다. 이러한 검색의 시간적 특성은 수신돤 사용자 입력의 레코드에 저장된 사용자의 과거 검색 이력으로부터 학습된다. 이러한 과거 검색 이력으로부터 구축된 시간 모델은 시간적 스코어 조정을 사용하여 자동완성 및 다른 검색 질의를 제공할 수 있다. 따라서, 주어진 시간 동안 높은 발생 가능성을 갖는 결과는 더 높게 랭크되고 더 우세한 위치에서 사용자에게 결과를 보여주도록 해당 시간 동안 부스팅된다. 따라서, 부분 사용자 입력 및 사용자에게 제공된 자동완성 결과의 수신에 응답하여 카테고리를 선택하기 위한 스코어는 부분 사용자 입력을 카테고리와 연관된 문자 스트링과 매칭시킴으로써 생성된 스코어에 기초할 수 있으며, 스코어는 시간 모델에 기초하여 가중된다.
이러한 시간적 특성이 계산되고 모델링되고 그 다음에는 연중 해당 시간 동안 최고치를 기록한 질의를 부스팅하는데 사용될 수 있는 세분화된 메타데이터 값이 존재한다. 시간 또한 연중 주간, 1년 중 1주, 1년 중 하루, 하루 중 1시간, 또는 임의의 다른 그러한 시간적 세분화와 같이 다수의 세분화 레벨로 존재할 수 있다.
특정 세분화 레벨 동안 각 시간 세그먼트의 레벨에서 충분한 정보를 캡처하기 위해, 여러 문제가 존재한다. 시간적 요구가 질의마다 캡처되거나 매우 낮은 세분화 레벨에서 캡처되는 경우, 그 이후 일부 질의 메타데이터가 희소(sparse)할 수 있다. 이는 모든 질의에 대해 충분한 데이터가 존재하지 않을 수 있음을 의미한다. 예를 들어, 시간적 요구가 질의 레벨 자체에서 계산되는 경우, 질의 레벨 당 사용자의 검색 이력이 너무 많지는 않을 것이다. 이는 모델 거동에서의 불확실성(volatility)을 생성할 것이고, 이에 따라 너무 낮은 세분화 레벨을 갖는 시간적 추세를 측정하기는 어렵다. 또한, 각 질의 레벨에서 시간적 시계열 데이터를 계산하는데 계산 집중적이다. 더욱이 이러한 방법은 과거에 발견되었던 질의만 부스팅할 수 있을 뿐 새로운 질의는 결코 볼 수 없다. 따라서, 실시예들은 이용가능한 데이터의 양에 기초하여 모델의 세분화 레벨을 보상할 수 있다. 새로운 질의가 보일 때 조정이 이루어지지 않을 수도 있지만, 시간이 지나면서 점점 더 많은 데이터가 수집됨에 따라 세분화 레벨이 이용가능한 데이터양에 기초하여 자동으로 조정될 수 있다. 이는 불확실성을 방지하면서 본원에 설명된 재발생 이벤트에 대한 추적 조정의 이점을 제공한다.
본원에 설명된 실시예들은 메타데이터 레벨에서 시간적 요구를 사용하여 시간 모델을 구축한다. 시간적 요구는 특정 세분화 레벨을 지원하기에 충분한 정보가 수신되는 한, 카테고리 레벨이든 임의의 속성(예컨대, 브랜드, 모델 등) 레벨이든 임의의 세분화 레벨에서 추론되거나 계산될 수 있다.
또한, 메타데이터 레벨, 예를 들어, 카테고리 레벨에서의 컴퓨팅 시간 데이터는 이점을 제공할 수 있다. 특정 실시예들에서, 각각의 질의는 사용 중인 모델에 의해 잘 설명되는 일부 연관된 카테고리를 갖는다. 카테고리는 유사한 테마의 아이템들을 함께 그룹화하는 잘 정의된 구조일 수 있고 이에 따라 카테고리 데이터는 테마 주변의 시간적 특성 또는 재발생 이벤트를 잘 캡처할 수 있다. 예를 들어, L2 카테고리 또는 골프 또는 낚시는 "스포츠 상품" L1 카테고리 아래에 캡처될 수 있다. L1 카테고리에서의 트렌드는 스포츠 테마로서 하위 레벨의 카테고리에 대해 공유된 트렌드를 캡처할 수 있다. 예를 들어, 1년 중 특정 주를 고려해보면, 시스템은 일주일 동안 해당 카테고리에 속한 질의를 검색한 고유 사용자 수를 계산한다. 사이트에 대한 트래픽의 유기적 증가로 인한 피크의 긍정 오류를 피하기 위해, 이러한 데이터는 주당 확률로 변환될 수 있다. 그러한 실시예에서, 주어진 주에 대해, 검색되는 카테고리의 확률은 주어진 카테고리 내의 질의를 검색하는 고유 사용자 수를 임의의 카테고리의 시스템에서 검색을 수행하는 고유 사용자의 총 수로 나눈 것과 동일하다.
특정 주 동안 주어진 카테고리에 대한 검색(시간적 요구)이 급등하는지 식별하기 위한 다른 방법이 있을 수 있다. 하나의 그러한 식별은 임계치에 기초할 수 있고, 즉, 주어진 카테고리에 대한 검색 확률이 특정 임계치를 넘어 변하는 경우, 그리고 이러한 경향이 해마다 관찰될 수도 있고, 해당 카테고리는 해당 시점에 대한 후보 카테고리로 표시될 수 있다. 다른 그러한 식별은 주어진 카테고리에 대한 확률의 이동 평균(예를 들어, 3주 이동 평균, 1일 평균 등) 변화에 기초할 수 있다. 현재 시간 확률이 이동 평균보다 일정 비율만큼 큰 경우, 카테고리는 해당 시점의 후보 범주로 표시될 수 있다. 이러한 식별은 스코어링에 식별 가능한 영향을 미치는 것으로 특징지어질 수 있는 평균으로의 전환 이후에 평균으로부터 식별된 시간적 편차에 기초할 수 있다. 따라서 각 카테고리에 대해 수요가 급증하고 이러한 급증이 복수의 기간에서 관찰되는 시간(예를 들어, 일 년 중 몇 주 또는 몇 일)이 표시된다. 그 이후, 생성된 시간 모델은 일부 데이터 저장소에 저장될 수 있다.
그러한 시간 모델이 카테고리 연관성을 포함하는 메타데이터 세트 주변에 생성된 이후, 모델은 자동완성 결과 또는 검색 결과를 조정하는데 사용될 수 있다. 자동완성 모델을 사용하는 시스템에서, 사용자가 접두어(예를 들어, 부분적으로 완성된 질의 또는 토큰)를 타이핑하고 자동완성 서비스에 전달되는 경우, 서비스는 일년 중 어느 시간인지 또는 사용자 입력이 발생하는 고려 기간이 어디 있는지 판정한다. (메타데이터의 시간적 수요를 나타내는) 시간 모델을 저장하는 데이터 저장소로부터, 서비스는 주어진 시간 동안 수요 급증이 있었던 메타데이터(예를 들어, 질의가 실행되는 주 번호에 대해 더 높은 수요를 갖는 카테고리 리스트)를 추출한다. 질의 단계 동안, 결과 메타데이터 정보가 사용될 수 있고 모든 질의 문서 스코어가 시간 모델로부터의 입력에 기초하여 조정될 수 있다.
조정은 여러 방법으로 행해질 수 있다. 하나의 잠재적 실시예에서, 시스템은 Apache™ 검색 플랫폼을 사용할 수도 있다. 표준 검색 요청이 사용자 질의의 수신에 응답하여 시스템에 의해 배치될 수 있다. 시스템이 시간 모델을 사용하고 있는 경우, 질의가 모델에 입력될 수 있고, 현재 이벤트가 시간 모델에 의해 식별될 경우, 표준 검색 요청은 시간 모델로부터의 정보에 기초하여 스코어에 영향을 주도록 추가되는 부스트 질의에 의해 수정될 수 있다. 그러한 부스트는 부스팅된 카테고리와 연관된 결과에 대한 스코어에 영향을 주도록 포함되는 원본 질의 스트링으로서 기능할 수 있다. 특정 실시예들에서, 단일 사용자 질의는 복수의 부스트에 의해 영향받을 수 있다. 이는, 예를 들어, 2개의 중첩하는 시간 이벤트가 현재 기간과 연관되는 경우 2개 모두는 사용자의 부분 입력 또는 검색 요청과 연관된다.
예를 들어, 제 1 카테고리에서의 자동완성 검색 결과 A는 X의 표준 스트링 매칭 스코어를 가질 수 있고, 제 2 카테고리에서의 검색 결과 B는 Y의 표준 스트링 매칭 스코어를 가질 수 있다. 현재 고려되는 기간 동안 발생한 반복 이벤트를 식별하는 시간 모델과 연관된 부스트는 제 2 카테고리에 대한 각각의 결과 스코어를 150%까지 부스팅할 수 있으므로, 결과 B에 대해 결과 A를 랭크하는데 사용되는 스코어는 X를 Y의 1.5배와 비교하는 것에 의할 것이다. 자동완성 검색 결과는 그 이후 스코어의 수정된 세트에 기초하여 사용자에게 송신될 것이다.
그 다음 도 4a 및 도 4b는, 모델 내에 종합된 레코드와 함께, 선택된 기간 동안 특정 카테고리와 연관된 수신된 사용자 입력의 레코드에 관한 예들을 제공한다. 도 4a 및 도 4b의 예에서 기간은 1년이며, 특정 카테고리와 연관된 매년 검색 개수에 대한 시간 기반 정보를 갖고 있다. 도 4a는, 예를 들어, "의상 재연/연극"으로 라벨링된 카테고리와 연관될 수 있고, 도 4b는 "스포츠 티켓"으로 라벨링된 카테고리와 연관된다. 도 4a는 "의상 재연/연극" 카테고리에 대한 주당 고유 사용자 수(402)에 관한 예시적 데이터를 도시하고 도 4b는 "스포츠 티켓" 카테고리에 대한 주당 고유 사용자 수(412)에 관한 예시적 데이터를 도시한다. 도 3에 의해 도시된 실시예에서, 이러한 카테고리는 별도의 티어 1 카테고리 아래의 티어 2 카테고리일 수 있다.
다양한 실시예에서, 그러한 차트에 대한 정보는 한해 동안 또는 여러 해 동안 그리고 많은 카테고리에 대해 수집될 수 있고, 임의의 주기적 기반으로 나타낼 수 있다. 도 4a 및 도 4b는 각각의 카테고리에 대한 검색과 연관된 주당 고유 사용자(402, 412)를 보여준다. 도 4a는 특정 주간에서 "의상 재연/연극" 카테고리에 대한 검색 횟수와 연관된 큰 급증을 보여준다. 이 정보는 시간 모델을 구축하는데 사용되고 자동완성 시스템의 일부로서 자동완성 데이터베이스(310)에 저장된다. 이 정보는 이러한 급증과 연관된 자동완성 이벤트 시간 프레임을 식별하는데 사용될 수 있다. 다양한 실시예들에서, 이러한 정보는 단일 이벤트로 식별될 수도 있고, 다른 기간에서는 이벤트의 중요도(magnitude)를 구별하기 위해 복수의 이벤트로 식별될 수도 있다. 추가적으로, 예컨대, 도 4a의 이벤트를 할로윈데이와 연관시키는 것과 같이, 이러한 급등을 특정 이벤트와 연관시키기 위해 다른 정보가 사용될 수도 있다. 모델은 반복되는 고려 기간 중 하나 이상의 기간 동안 주당 고유 사용자(402)에 관한 분석 및 모델링에 의해 식별된 시작점 및 종료점을 갖는 부스팅된 시간 세그먼트(403)로서 주당 고유 방문자(402)의 급등을 식별할 수 있다.
이와 마찬가지로, 도 4b는 슈퍼볼(414), 3월의 광란(416), 및 US 오픈(418)과 같이 그래프 상에 라벨링된 이벤트와 함께, 표시된 주당 고유 사용자에서 복수의 이벤트를 식별한다. 이러한 이벤트의 각각은 상위 레벨인 "스포츠 티켓" 카테고리 내의 최하위 레벨의 리프 카테고리와 연관될 수 있다. 도 4b의 자동완성 이력 데이터에서 식별되는 것처럼 이러한 이벤트들은 미래의 슈퍼볼(414), 3월의 광란(416), 및 US 오픈(417) 이벤트에 대해 자동완성 이벤트 시간 프레임(413, 415 및 417)을 식별하는데 사용될 수 있고, 그러한 각각의 반복되는 고려 이벤트 시간 프레임(413, 415 및 417) 동안 자동완성 검색 결과를 조정하는데 사용될 수도 있다. 따라서, 도시된 바와 같이, 특정 리프 카테고리에 대해 결과 스코어를 부스팅하기 위해 사용되는 반복된 고려 시간 프레임은, 고려되는 전체 기간 내의 특정 기간보다는 트리거 이벤트에 기초할 수 있다. 따라서 부스팅된 시간 세그먼트(413, 415 및 417)는 일정한 시작 및 종료 데이터에 기초하기보다는 슈퍼볼(414), 3월의 광란(416), 및 US 오픈(418)에 대한 대응 트리거와 연관되는 것으로 고려되는 복수의 기간 동안 변할 수 있는 이벤트 날짜에 기초할 수 있다.
또한, 복수의 이벤트 시간 프레임은 중첩할 수 있으므로, 임의의 개수의 자동완성 이벤트 기간이 동일 시간에 발생할 수 있고, 각각의 자동완성 이벤트 기간이 자동완성 검색 결과에 영향을 미친다. 따라서, 스코어링을 사용하는 시스템에서, 단일 카테고리 또는 복수의 카테고리는 이들의 스코어를 모델에서의 분석에 기초하여 기본 스코어를 추가하거나 곱하는 변경자(modifier)를 사용하여 조정되게 할 수 있다. 이와 마찬가지로, 부스트 스코어는 데이터에 기초하여 설정될 수 있다. 예를 들어, 고려되는 이벤트 기간(413) 동안 슈퍼볼(414)과 연관된 부스트는, 더 큰 표준 편차에 기초하여 고려되는 이벤트 기간(415 및 417) 동안의 부스트보다 더 클 수 있다.
그 다음 도 5a 내지 도 5d는 시간 모델에 기초한 조정으로 인해 상이한 기간에서 상이한 자동완성 검색 결과를 갖는 자동완성 부분 사용자 입력에 관한 4개의 예를 도시한다. 각각의 예에 대하여, 시간 모델로부터 식별된 자동완성 이벤트 기간에 적어도 부분적으로 기초한 하나의 자동완성 검색 결과 세트가 사용되고, 식별된 자동완성 이벤트 기간을 사용하지 않는 제 2 자동완성 검색 결과 세트가 도시된다.
도 5a는 부분 사용자 입력(502) 및 수신된 사용자 입력의 레코드 및 다른 메타데이터로부터 식별된 반복 이벤트와 연관되는 자동완성 이벤트 기간(504)을 도시한다. 제 1 자동완성 결과 세트(506)는 부분 사용자 입력(502)이 자동완성 이벤트 기간(504) 내의 자동완성 이벤트 기간 동안 수신된 경우에 시간 모델에 의해 수정되는 결과를 보여준다. 일부 실시예들에서, 자동완성 이벤트 기간은 또한 부스팅된 기간으로 언급될 수도 있다. 제 2 자동완성 검색 결과(508)는 시간 모델로부터 조정되지 않는 기본 결과를 예시한다. 전술된 바와 같이, 제 1 자동완성 결과 세트(506)에서의 텍스트 스트링은 자동완성 이벤트 기간(504)과 연관된 카테고리와 연관되는 스트링에 대한 부스트 값을 사용하여 고려된 각각의 가능한 스트링에 대한 스코어를 수정함으로써 선택될 수 있다. 다른 실시예들에서, 부분 사용자 입력이 자동완성 이벤트 기간 동안 수신되는 것에 기초한 다른 수정이 사용될 수도 있다.
그 다음, 도 5b, 도 5c 및 도 5d는 부분 사용자 입력에 기초하여 자동완성 결과에 관한 유사한 비교를 도시한다. 도 5b는 부분 사용자 입력(512), 자동완성 이벤트 기간(514), 시간 모델에 기초하여 조정되는 제 1 자동완성 결과 세트(516) 및 시간 모델에 의해 수정되지 않는 제 2 자동완성 결과 세트(518)를 도시한다.
그 다음, 도 5c 및 도 5d는 동일한 부분 사용자 입력(522)을 사용하지만 상이한 자동완성 기간 동안의 일 예를 도시한다. 자동완성 이벤트 기간(524)은 여름인 달력 연도의 주 20과 연관된다. 제 1 자동완성 결과 세트(526)는 시간 모델에 기초한 제 2 자동완성 결과(528)와 약간 다르다. 그러나, 도 5d에서, 자동완성 이벤트 기간은 겨울인 달력 연도의 주 2이다. 시간 모델은 수신된 사용자 입력의 레코드에 기초하여 이러한 자동완성 기간(534) 동안 부스팅되는 카테고리로서 "겨울 스포츠"를 식별한다. 따라서, 이 카테고리와 연관되고 부분 사용자 입력(522)과 매칭되는 이전에 수신된 검색으로부터의 데이터 스트링이 제 1 자동완성 결과 세트(536)의 상위에 부스팅된다. 그러나, 도 5d에서의 제 2 자동완성 결과 세트(528)는, 동일한 부분 사용자 입력(522)은 시간 모델에 의해 조정되지 않은 자동완성 랭킹을 사용하여 고려되는, 도 5c에서의 제 2 자동완성 결과 세트와 같다.
따라서, 본원에 설명된 바와 같이, 자동완성 또는 다른 검색 랭킹 시스템을 포함하는 임의의 검색 시스템은, 도 4a 및 도 4b에 예시된 바와 같이 데이터의 카테고리, 데이터의 특정 스트링, 또는 특정 메타데이터와 연관된 질의에 대한 주기적 이벤트 또는 패턴을 식별하기 위해 수신된 사용자 입력의 레코드로서 시스템에 저장된 이력 데이터를 사용할 수 있다. 수신된 사용자 입력의 레코드는 그 이후 특정 검색 카테고리에 대한 이력적 요구를 캡처하는 시간 모델을 생성하는데 사용된다. 부분 사용자 입력이 수신되는 경우, 사용자에 의해 제공된 자동완성 검색 결과 세트는 도 5a 내지 도 5d에 의해 예시된 바와 같이 시간 모델에 기초하여 조정될 수 있다.
하나의 구현예에서, 식별된 자동완성 이벤트 기간은 다음과 같이 자동완성 검색 결과에 영향을 미치도록 사용될 수 있다. 자동완성 데이터베이스는 모든 이전에 나타난 사용자 입력의 리스트를 포함할 수 있다. 이러한 사용자 입력은 사용자 키보드 입력, 자동완성 검색 결과에 관한 사용자 선택, 또는 임의의 다른 그러한 검색 입력을 포함할 수 있다. 각각의 이전에 나타난 사용자 입력은 시스템 기간 또는 고려되는 기간과 연관될 수 있다. 이는 도 4a 및 도 4b에 도시된 바와 같이 한 해의 한 주일 수 있거나 고려된 기간 내의 특정 일, 시, 또는 분일 수 있다. 특정 실시예들에서, 시스템은 복수의 고려 기간에 기초할 수 있다. 예를 들어, 시스템은 별도의 조정을 포함할 수 있다. 사용자 입력에서의 매일의 변화뿐만 아니라 사용자 입력에서의 매주 및 매년의 변화에 대한 별도의 조정을 포함할 수 있다. 각각의 고려 기간은 복수의 시간 세그먼트로 분할될 수 있다. 각각의 사용자 입력이 수신될 때, 각각의 사용자 입력은 고려 기간의 특정 시간 세그먼트과 연관된다. 각각의 사용자 입력은 또한 사용자 입력의 한 이상의 카테고리와 연관된다. 따라서, 자동완성 데이터베이스는 각 사용자 입력을 고려 기간의 시간 세그먼트 및 하나 이상의 카테고리와 연관시키는 메타데이터와 함께, 사용자 입력으로부터 생성된다. 자동완성 데이터베이스는 그 이후 사용자 입력에서의 패턴을 결정하기 위해 분석될 수 있다. 하나의 실시예에서, 각각의 카테고리는 각 시간 세그먼트 동안 분석되어 시간 세그먼트 동안 해당 카테고리와 연관된 모든 사용자 입력의 비율을 결정한다. 이는 고려 기간의 각 시간 세그먼트 동안 행해진다. 시간 세그먼트 세트에 대한 각 카테고리와 연관된 예상 비율에서의 편차는 자동완성 이벤트 기간으로서 식별될 수 있다. 그러한 편차는 고려 기간 동안의 평균으로부터 설정된 수의 표준 편차일 수 있다. 그 이후 편차는 고려 기간의 미래 반복에 대한 미래 시간 세그먼트가 유사한 편차를 포함할 것을 묵시적으로 추론하는데 사용된다. 예를 들어, 할로윈 이전의 미래 주간에는 의상과 관련된 사용자 입력이 증가할 것이라고 추론되고, 이는 매년 발생할 것이라고 추론될 수 있다.
사용자가 클라이언트 디바이스에서 인터페이스로의 사용자 입력을 키잉(keying)하기 시작하는 경우, 각각의 키스트로크는 부분 사용자 입력으로서 자동완성 시스템을 포함하는 네트워크화 시스템으로 송신될 수 있다. 자동완성 시스템이 각각의 키스트로크를 수신하고 부분 사용자 입력을 조정함에 따라, 특정 카테고리에 포함된 키스트로크에 대해 검색할 수 있다. 자동완성 이벤트 기간과 연관되지 않은 고려 기간의 시간 세그먼트에 대해, 전술된 시스템으로부터 주기적 데이터를 사용하지 않는 제 1 자동완성 기준 세트가 사용될 수 있다. 그 대신, 이러한 자동완성 기준은, 전체 고려 기간 동안 이들의 평균 사용자 입력 비율에 기초하여 자동완성 카테고리에서 가능한 매칭에 가중치를 두는 평균 또는 표준 자동완성 매칭에 기초할 수 있다. 다른 실시예들에서, 임의의 그러한 자동완성 검색 방법이 사용될 수 있다. 키스트로크가 자동완성 이벤트 기간 내에 수신되는 경우, 가중 팩터는 자동완성 이벤트 기간과 연관된 카테고리에 더해져서, 그러한 카테고리로부터의 단어 또는 문장이 자동완성 검색 결과로서 선택될 가능성이 더 많게 만들고, 자동완성 검색 결과 세트 내에서 선호되는 위치 내에 그러한 단어 또는 문장을 배치함으로써 해당 단어 또는 문장을 또한 우선순위화할 수 있다.
추가 키스트로크가 수신될 때, 검색 결과는 각각의 키스트로크를 사용하여 업데이트될 수 있다. 사용자가 키스트로크 입력을 완성함으로써 또는 표시된 자동완성 검색 결과 입력을 선택함으로써 최종 사용자 입력을 선택할 때, 자동완성 시스템은 이 정보를 사용자 입력으로서 수신할 수 있다. 사용자 입력은 그 이후 시간 기반 메타데이터 및 카테고리 메타데이터를 갖는 자동완성 데이터베이스 내에 배치될 수 있다. 자동완성 이벤트 기간을 식별하는데 사용되는 자동완성 데이터베이스에 관한 분석은 그 이후 피드백 정보를 사용하여 업데이트될 수 있다. 이러한 업데이트는 각각의 사용자 입력이 수신될 때 수행될 수 있거나, 주기적으로 수행될 수 있거나, 트리거 또는 오퍼레이터 입력에 기초하여 수행될 수 있다.
따라서, 특정 실시예들에서, 주기적으로 발생하는 이벤트가 존재할 수 있다. 그러한 이벤트에 관한 예들은 매년 휴일 또는 매년 스포츠 이벤트와 같은 연간 이벤트를 포함할 수 있다. 추가적으로, 계절 이벤트, 예컨대, 겨울 스포츠 시즌, 여름 스포츠 시즌, 또는 계획된 스포츠 시즌은 그러한 주기적 이벤트이다. 검색 데이터는 사용자 검색 질의 주변 및 질의의 우세한 카테고리와 같은 메타데이터 주변의 시계열 데이터(time series data)를 구축하기 위해 마이닝될 수 있다. 분석 프로세스는 하나 이상의 고려 기간 동안 반복될 수 있다. 예를 들어, 주기적이지 않은 새로운 제품 출시는 복수의 고려 기간에서 데이터를 획득함으로써 필터링될 수 있는 단일의 고려 기간에서의 이상치 편차(outlier deviations)를 생성할 수 있다.
고려 기간 동안 반복되는 시계열 데이터는 주어진 기간 동안 다수의 질의에서 편차 또는 급증이 보이는 시점을 식별하도록 프로세싱될 수 있다. 다양한 실시예들에서, 특정 질의 또는 우세한 카테고리 또는 임의의 다른 질의 메타데이터에서 변경을 식별하기 위한 분석이 행해질 수 있다. 이러한 정보는 카테고리가 연관된 다수의 질의에서의 주기 변화를 캡처하는 모델에 대해 사용될 수 있다. 그 이후 이 정보를 하나 이상의 자동완성 이벤트 기간으로서 캡처하는 모델이 구축될 수 있다. 시스템은 시스템 사용자로부터 수신된 자동완성 선택 또는 관찰된 검색의 이력 레코드에 기초하여 특정 기간을 포괄하는 각각의 모델을 사용하여, 여러 모델을 포함할 수 있다.
자동완성 이벤트 기간과 연관된 고려 기간의 미래 세그먼트 동안, 메타데이터 또는 카테고리에 속한 질의는 자동완성 검색 결과에서 부스팅될 수 있다. 다시 말해, 이전에 고려된 기간의 동일 세그먼트 동안 급증 또는 변화가 나타났던 카테고리에 속한 질의는 조정될 수 있고, 시간 이벤트에 대한 검색 결과를 맞춤화할 수 있다. 이는 랭킹 동안 시간적 카테고리 또는 메타데이터로부터의 부스팅 검색 아이템에 관한 결과를 추가적으로 갖는다.
따라서, 자동완성 결과가 자동완성 이벤트 기간에 의해 조정되는 것에 더하여, 최종 사용자 입력이 수신된 이후에, 최종 사용자 입력에 응답하여 클라이언트 디바이스에 제공되는 검색 결과는 또한 조정될 수 있다. 예를 들어, 카테고리 기반 검색에서, 전술된 자동완성 검색 결과를 조정하는데 사용된 동일 프로세스는 사용자 입력에 응답하여 검색 결과 및 검색 결과 랭킹을 조정하는데 사용될 수도 있다. 특정 실시예들에서, 동일한 분석, 데이터베이스, 및 시간적 조정 시스템이 자동완성 검색 결과 및 완료된 사용자 입력에 응답한 검색 결과 둘 모두에 대하여 사용될 수 있다. 다른 실시예들에서, 이들은 개별 기준을 갖는 개별 시스템일 수도 있다.
도 6은 일부 예시적 실시예들에 따라, 머신 판독가능 매체(예를 들어, 머신 판독가능 저장 매체)로부터 명령어를 판독하고 본원에 설명된 방법 중 임의의 하나 이상의 방법을 수행할 수 있는, 머신(600)의 컴포넌트를 도시하는 블록도이다. 다양한 실시예들에서, 애플리케이션 서버(118), 발행 시스템(120), 클라이언트 디바이스(110 및 112), 데이터베이스 서버(124), 또는 본원에 설명된 임의의 실시예의 일부로서의 임의의 다른 그러한 디바이스에 관한 양태들이 머신(600)으로서 구현될 수 있다. 다른 실시예들에서, 그러한 디바이스는 도 6의 머신(600)과 상이한 다른 요소 또는 디바이스를 사용하여 구현될 수도 있다. 도 6은 컴퓨터 시스템의 예시적 형태로 머신(600)에 관한 개략적 표현을 도시하고 그 내부에서 머신(600)으로 하여금 본원에 설명된 방법 중 임의의 하나 이상의 방법을 수행하게 하는 명령어(624)(예를 들어, 소프트웨어, 프로그램, 애플리케이션, 애플릿, 앱, 또는 다른 실행가능 코드)가 실행될 수 있다. 대안적인 실시예에서, 머신(600)은 독립적인 디바이스로서 동작하거나 다른 머신들에 접속(예를 들어, 네트워크화)될 수 있다. 네트워크화된 배치에서, 머신(600)은 서버-클라이언트 네트워크 환경에서 서버 머신 또는 클라이언트 머신의 능력으로 동작할 수 있고, 또는 피어 투 피어(또는 분산형) 네트워크 환경 내의 피어 머신으로 동작할 수 있다. 머신(600)은 서버 컴퓨터, 클라이언트 컴퓨터, 퍼스널 컴퓨터(PC), 태블릿 컴퓨터, 랩톱 컴퓨터, 넷북, 셋톱 박스(STB), 개인용 정보 단말기(PDA), 셀룰러 폰, 스마트폰, 웹 어플라이언스, 네트워크 라우터, 네트워크 스위치, 네트워크 브리지, 또는 해당 머신에 의해 행해질 동작을 기술하는 명령어(624)를 실행할 수 있는 임의의 머신일 수 있다. 또한, 단일 머신이 도시되지만, 용어 "머신"은 또한 본원에 설명된 방법 중 임의의 하나 이상의 방법을 수행하도록 명령어(624)를 개별적으로 또는 함께 실행하는 머신의 집합을 포함할 수도 있다.
머신(600)은, 버스(608)를 통해 서로와 통신하도록 구성되는, 프로세서(602)(예를 들어, 중앙 처리 디바이스(CPU), 그래픽 처리 디바이스(GPU), 디지털 신호 프로세서(DSP), 주문형 집적 회로(ASIC), 무선 주파수 집적 회로(RFIC), 또는 이들의 임의의 적합한 조합), 메인 메모리(604), 및 정적 메모리(606)를 포함한다. 머신(600)은 비디오 디스플레이(610)(예를 들어, 플라즈마 디스플레이 패널(PDP), 발광 다이오드(LED) 디스플레이, 액정 디스플레이(LCD), 프로젝터, 또는 브라운관(CRT))를 더 포함한다. 머신(600)은 또한 영숫자 입력 디바이스(612)(예를 들어, 키보드), 커서 제어 디바이스(614)(예를 들어, 마우스, 터치패드, 트랙볼, 조이스틱, 모션 센서, 또는 다른 포인팅 디바이스), 드라이브 유닛(616), 신호 생성 디바이스(618)(예를 들어, 스피커) 및 네트워크 인터페이스 디바이스(620)를 또한 포함할 수 있다.
드라이브 유닛(616)은 본원에 설명된 방법 또는 기능 중 임의의 하나 이상을 포함하는 명령어(624)가 저장된 머신 판독가능 매체(622)를 포함한다. 명령어(624)는 머신(600)에 의한 명령어의 실행 동안, 메인 메모리(604) 내에, 프로세서(602) 내에(예를 들어, 프로세서의 캐시 메모리 내에), 또는 둘 모두 내에 완전히 또는 적어로 부분적으로 상주할 수 있다. 따라서, 메인 메모리(604) 및 프로세서(602)는 머신 판독가능 매체로서 고려될 수 있다. 명령어(624)는 네트워크 인터페이스 디바이스(620)를 거쳐 네트워크(626)를 통해 전송되거나 수신될 수 있다.
본원에서 사용되는 바와 같이, 영어 "메모리"는 일시적으로 또는 영구적으로 데이터를 저장할 수 있는 머신 판독가능 매체를 지칭하고 랜덤 액세스 메모리(RAM), 리드 온리 메모리(ROM), 버퍼 메모리, 플래시 메모리, 캐시 메모리를 포함할 수 있으나 이로 제한되지 않는다. 머신 판독가능 매체(622)는 예시적 실시예에서 단일 매체인 것으로 도시되지만, 용어 "머신 판독가능 매체"는 명령어를 저장할 수 있는 단일 매체 또는 복수의 매체(예를 들어, 중앙집중형 또는 분산형 데이터베이스, 또는 연관된 캐시 및 서버)를 포함하는 것으로 여겨져야 한다. 용어 "머신 판독가능 매체"는 또한 머신에 의한 실행을 위한 명령어를 저장할 수 있는 임의의 매체 또는 복수의 매체의 조합을 포함하는 것으로 여겨질 수도 있으며, 이로써 명령어는 머신의 하나 이상의 프로세서에 의해 실행될 때, 머신으로 하여금 본원에 설명된 방법 중 임의의 하나 이상의 방법을 수행할 수 있게 한다. 따라서, "머신 판독가능 매체"는 단일 저장 장치 또는 디바이스뿐만 아니라 복수의 저장 장치 또는 디바이스를 포함하는 "클라우드 기반" 저장 시스템 또는 저장 네트워크를 지칭한다. 따라서, 용어 "머신 판독가능 매체"는 고체 상태 메모리, 광 매체, 자기 매체, 또는 이들의 임의의 적합한 조합인 하나 이상의 데이터 저장소를 포함하는 것으로 여겨질 수 있으나 이로 제한되지 않는다.
명령어(624)는 또한 네트워크 인터페이스 디바이스(620)를 통해 전송 매체를 사용하는 그리고 다수의 잘 알려진 전송 프로토콜(예를 들어, HTTP) 중 임의의 하나를 이용하는 통신 네트워크(626)를 통해 전송되거나 수신될 수 있다. 통신 네트워크에 관한 예들은 단거리 네트워크(LAN), 광대역 네트워크(WAN), 인터넷, 이동 전화 네트워크, POTS 네트워크, 및 무선 데이터 네트워크(예를 들어, WiFi, LTE, 및 WiMAX 네트워크)를 포함한다. 용어 "전송 매체"는 머신에 의한 실행을 위해 명령어를 저장, 인코딩, 또는 전달할 수 있는 임의의 무형 매체를 포함하고, 그러한 소프트웨어의 통신을 가능하게 하는 디지털 또는 아날로그 통신 신호 또는 다른 무형 매체를 포함한다.
특정 실시예들은 로직 또는 다수의 컴포넌트 모듈 또는 메커니즘을 포함하는 것으로 본원에서 설명된다. 모듈은 소프트웨어 모듈(예를 들어, 머신 판독가능 매체 상에 포함된 코드) 또는 하드웨어 모듈을 구성할 수 있다. "하드웨어 모듈"은 특정 동작을 수행할 수 있는 유형의 유닛이고 특정한 물리적 방식으로 구성될 수 있다. 다양한 예시적 실시예들에서, 하나 이상의 컴퓨터 시스템(예를 들어, 독립적인 컴퓨터 시스템, 클라이언트 컴퓨터 시스템, 또는 서버 컴퓨터 시스템) 또는 컴퓨터 시스템의 하나 이상의 하드웨어 모듈(예를 들어, 적어도 하나의 프로세서 또는 프로세서들의 그룹)은 본원에 설명된 바와 같이 특정 동작을 수행하도록 동작하는 하드웨어 모듈로서 소프트웨어(예를 들어, 애플리케이션 또는 애플리케이션 일부)에 의해 구성될 수 있다.
따라서, 구문 "하드웨어 모듈"은, 본원에 설명된 특정 동작을 수행하거나 특정 방식으로 동작하도록 물리적으로 구성되거나, 영구적으로 구성되거나(예를 들어, 하드와이어된), 일시적으로 구성된(예를 들어, 프로그램된) 유형의 엔티티를 포함하는 것으로 이해되어야 한다. 본원에 사용되는 바와 같이, "하드웨어로 실행되는 모듈"은 하드웨어 모듈을 지칭한다. 하드웨어 모듈이 일시적으로 구성된(예를 들어, 프로그램된) 실시예들을 고려하면, 각각의 하드웨어 모듈은 어느 하나의 인스턴스에서 제시간에 구성되거나 인스턴스화될 필요는 없다. 예를 들어, 하드웨어 모듈이 특수용 프로세서가 되도록 소프트웨어에 의해 구성된 범용 프로세서를 포함하는 경우, 범용 프로세서는 상이한 시간에 각각의 상이한 특수용 프로세서(예를 들어, 상이한 하드웨어 모듈을 포함함)로 구성될 수도 있다. 따라서, 소프트웨어는, 예를 들어, 하나의 시간 인스턴스에서 특정 하드웨어 모듈을 구성하거나 상이한 시간 인스턴스에서 상이한 하드웨어 모듈을 구성하도록 특정 프로세서 또는 프로세서들을 구성한다.
하드웨어 모듈은 정보를 제공할 수 있고, 다른 하드웨어 모듈로부터 정보를 수신할 수 있다. 따라서, 설명된 하드웨어 모듈은 통신 가능하게 연결되는 것으로 여겨질 수 있다. 복수의 하드웨어 모듈은 동시에 존재하고, 통신은 하드웨어 모듈 중 2개 이상의 하드웨어 모듈 사이에서 신호 전송을 통해(예를 들어, 적절한 회로 및 버스를 통해) 달성될 수 있다. 복수의 하드웨어 모듈이 상이한 시간에 구성되거나 인스턴스화되는 실시예들에서, 그러한 하드웨어 모듈들 사이의 통신은, 예를 들어, 저장소 또는 복수의 하드웨어 모듈이 액세스하는 메모리 구조 내의 정보 저장 및 검색을 통해 달성될 수 있다. 예를 들어, 하나의 하드웨어 모듈은 동작을 수행할 수 있고 통신 가능하게 연결된 메모리 디바이스 내에 해당 동작의 출력을 저장할 수 있다. 그 이후, 추가 하드웨어 모듈은 추후에 메모리 디바이스에 액세스하여 저장된 출력을 검색하고 프로세싱할 수 있다. 하드웨어 모듈은 또한 입력 또는 출력 디바이스와의 통신을 개시할 수 있고, 리소스(예를 들어, 정보의 집합) 상에서 동작할 수 있다.
본원에 설명된 예시적 방법들의 다양한 동작들은, 관련 동작을 수행하도록 일시적으로(예를 들어, 소프트웨어에 의해) 또는 영구적으로 구성된 하나 이상의 프로세서에 의해 적어도 부분적으로 수행될 수 있다. 일시적으로 구성되든 영구적으로 구성되든지, 그러한 프로세서는 본원에 설명된 하나 이상의 동작 또는 기능을 수행하도록 동작하는 프로세서로 구현된 모듈을 구성할 수 있다. 본원에 사용되는 바와 같이, "프로세서로 구현된 모듈"은 하나 이상의 프로세서를 사용하여 구현되는 하드웨어 모듈을 지칭한다.
이와 마찬가지로, 본원에 설명된 방법들은 하드웨어의 일 예인 특정 프로세서 또는 프로세서들을 사용하여, 적어도 부분적으로 프로세서로 구현될 수 있다. 예를 들어, 방법의 동작들 중 적어도 일부는 하나 이상의 프로세서 또는 프로세서로 구현되는 모듈에 의해 수행될 수 있다. 더욱이, 하나 이상의 프로세서는 또한 "클라우드 컴퓨팅" 환경에서 또는 "서비스형 소프트웨어(software as a service: SaaS)"로서 관련 동작의 수행을 지원하도록 또한 동작할 수 있다. 예를 들어, 동작들 중 적어도 일부는 (프로세서들을 포함하는 머신에 관한 예들과 같은) 컴퓨터 그룹에 의해 수행될 수 있으며, 이러한 동작들은 네트워크를 통해(예를 들어, 인터넷) 그리고 하나 이상의 적절한 인터페이스(예를 들어, API)를 통해 액세스가능하다.
동작들 중 특정 동작의 수행은, 단일 머신 내에 상주할 수 있을 뿐만 아니라 여러 머신들에 걸쳐 분산될 수 있는 프로세스 중에서 분산될 수 있다. 일부 예시적 실시예들에서, 프로세서 또는 프로세서로 구현되는 모듈은 단일의 지리적 위치 내에(예를 들어, 홈 환경 내에, 사무실 환경 내에, 또는 서버팜 내에) 위치될 수도 있다. 다른 예시적 실시예들에서, 프로세서들 또는 프로세서로 구현될 모듈들은 다수의 지리적 위치에 걸쳐 분산될 수 있다.
도 7은 일부 예시적 실시예들에 따라 사용될 수 있는 예시적 방법(700)을 도시한다. 방법(700)은 디바이스(600), 네트워크화된 시스템(102), 또는 본원에 설명된 임의의 다른 그러한 디바이스에 의해 수행될 수 있다. 방법(700)은 자동완성 모델의 일부로서 자동완성 데이터베이스 내에서 수신된 사용자 입력의 레코드를 저장하도록 수행되는 동작(702)과 함께 시작한다. 수신된 사용자 입력의 레코드는 부분 사용자 입력의 레코드를 포함할 수 있고 검색 선택에 따라 사용자 입력을 완성할 수도 있다. 다른 실시예들에서, 수신된 사용자 입력의 레코드는 각각의 사용자 입력의 특정 레코드를 포함하지 않을 수도 있지만, 사용자 입력으로부터 생성된 시간 모델을 단순히 포함할 수도 있다. 그러한 모델은 카테고리, 메타데이터, 또는 자동완성 검색의 다른 양상과 연관된 트렌드 또는 부스팅 비율 데이터를 포함할 수 있다. 다른 실시예들에서, 다른 모델 구조가 사용될 수도 있다.
시간 모델을 생성하기 위해, 동작 704에서, 수신된 사용자 입력의 레코드의 각각의 사용자 입력은 하나 이상의 카테고리 및 반복된 고려 기간의 부스팅된 시간 세그먼트와 연관되어 부스팅된 기간 동안 하나 이상의 카테고리에 대한 시간적 요구를 캡처하는 시간 모델을 구축한다. 동작 704에서, 그 이후 시간 모델은 하나 이상의 카테고리에 대한 시간적 수요를 캡처하는 시간 모델을 구축하기 위해, 수신된 사용자 입력의 레코드의 각각의 입력 레코드를 하나 이상의 카테고리와 연관시키고 반복되는 고려 기간의 복수의 시간 세그먼트 중 하나와 연관시키는 동작에 의해 구축되며, 복수의 시간 세그먼트는 부스팅된 시간 세그먼트를 포함하고, 하나 이상의 자동 완성 카테고리 중 제 1 카테고리는 반복되는 고려 기간 동안의 사용자 입력 평균 개수보다 부스팅된 시간 세그먼트 동안 더 많은 평균 개수의 사용자 입력과 연관된다. 부스팅된 세그먼트는 통계적 평균의 직접 계산이 아닌 여러 방법으로 평균과의 편차를 식별할 수 있다. 이는 입력 개수에 대한 임계 값을 측정함으로써 또는 부스팅된 시간 세그먼트에 존재하는 편차를 식별하는 임의의 다른 방법으로 행해질 수 있다.
그 이후 시간 모델은 동작 706에서 사용되어 부스팅된 시간 세그먼트 동안 제 1 클라이언트 시스템으로부터 부분 사용자 입력을 수신하도록 디바이스가 설정된다. 동작 708에서, 시간 모델을 사용하여 부분 사용자 입력과 연관된 부스팅된 기간의 식별에 적어도 부분적으로 기초하여 자동완성 결과 세트가 생성된다.
그 다음, 방법(700)에 관한 추가 실시예들은 다양한 방법으로 또한 동작할 수 있다. 예를 들어, 하나의 실시예는 고려 기간이 1년이고 복수의 시간 세그먼트의 각각의 시간 세그먼트가 1주인 경우에 기능할 수 있다. 그러한 실시예는, 부스팅된 시간 세그먼트가 식별되는 경우, 즉, 하나 이상의 카테고리의 각각의 카테고리에 대하여, 반복되는 고려 기간의 각각의 시간 세그먼트에 대한 카테고리와 연관된 모든 사용자 입력의 비율을 식별하는 경우, 제 1 카테고리와 연관된 모든 사용자 입력의 확률이 임계량 이상으로 예상 값을 벗어나는, 복수의 시간 세그먼트 중 하나 이상의 시간 세그먼트를 식별하는 경우, 및 제 1 자동완성 카테고리와 연관된 모든 사용자 입력의 확률이 임계값보다 부스팅된 시간 세그먼트로서 예상된 값으로부터 벗어나는 하나 이상의 세그먼트를 선택하는 경우 더 동작할 수 있다.
또한 그러한 실시예들은 부스팅된 시간 세그먼트가 트리거링 이벤트와 또한 연관되는 경우에 동작할 수 있다. 추가의 그러한 실시예들은 트리거링 이벤트가 휴일인 경우에 동작할 수 있고, 여기서 부스팅된 시간 세그먼트는 휴일 이전 고정된 몇 주부터 공유일 주간까지의 연간 기간을 포함한다. 추가의 그러한 실시예들은 부스팅된 시간 세그먼트가 연간 시작 날짜 및 연간 종료 날짜와 연관되는 경우에 동작할 수 있다. 추가의 그러한 실시예들은 부스팅된 시간 세그먼트가 매주 시작 날짜와 시간 및 매주 종료 날짜와 시간에 의해 식별되는 경우 동작할 수 있다. 추가의 그러한 실시예들은 하나 이상의 카테고리의 각각의 카테고리가 수신된 사용자 입력의 레코드의 각각의 사용자 입력과 함께 수신되는 메타데이터에 의해 적어도 부분적으로 식별되는 경우 동작할 수 있다. 추가의 그러한 실시예들은, 하나 이상의 카테고리의 각각의 카테고리가 카테고리에 관한 복수의 티어들을 사용하여 구조화된 카테고리 트리 내의 최하위 레벨의 리프 카테고리인 경우, 카테고리 트리 내의 각각의 최하위 레벨의 리프 카테고리가 데이터베이스 내의 하나 이상의 검색 스트링과 연관되는 경우, 및 수신된 사용자 입력의 레코드의 각각의 사용자 입력을 하나 이상의 카테고리와 연관시키는 것이 데이터베이스에 액세스하는 것 및 각각의 사용자 입력을 각각의 최하위 레벨의 리프 카테고리의 하나 이상의 검색 스트링과 비교하는 것을 포함하여 하나 이상의 카테고리와 각각의 사용자 입력 사이의 연관성을 생성하는 경우에 동작할 수 있다.
추가의 그러한 실시예들은 하나 이상의 프로세서가 부분 사용자 입력과 하나 이상의 자동완성 카테고리 사이의 예상 관계를 랭킹하는 제 1 매칭 스코어 세트를 사용하여 하나 이상의 카테고리와 부분 사용자 입력을 연관시키도록 또한 구성되는 경우에 동작할 수 있고, 여기서 제 1 매칭 스코어 세트는 하나 이상의 자동완성 카테고리 중 제 1 카테고리가 고려 기간 동안의 사용자 입력의 평균 개수보다 부스팅된 시간 세그먼트 동안 더 많은 평균 개수의 사용자 입력을 수신한다는 판정에 기초하여 가중된다. 따라서 매칭 스코어는 도 4a 및 도 4b에 의해 도시된 바와 같이 고려 기간 중 부스팅 기간 동안 평균으로부터의 변화에 기초할 수 있다.
또한 그러한 실시예들이 수신된 사용자 입력의 레코드의 각각의 사용자 입력이 매칭 스코어링에 기초하여 하나 이상의 카테고리와 연관되는 경우에 동작할 수 있고, 매칭 스코어링은 각각의 사용자 입력에 대한 질의 스트링의 문자 및 각각의 사용자 입력과 연관된 메타데이터를 각각의 최하위 레벨의 리프 카테고리에 대한 메타데이터 및 각각의 최하위 레벨의 리프 카테고리의 하나 이상의 검색 스트링과 비교하여 수신된 사용자 입력의 레코드의 각각의 사용자 입력에 대한 매칭 스코어링 결과 세트를 생성한다.
머신 및 소프트웨어 아키텍처
소프트웨어 아키텍처는 하드웨어 아키텍처들과 함께 사용되어 특정 목적에 맞춤화된 디바이스 및 머신을 생성한다. 예를 들어, 특정 소프트웨어 아키텍처와 연관될 특정 하드웨어 아키텍처는 모바일 폰, 태블릿 디바이스 등과 같은 모바일 디바이스를 생성할 것이다. 약간 다른 하드웨어 및 소프트웨어 아키텍처는 스마트 디바이스를 생산하는 반면 또 다른 조합은 클라우드 컴퓨팅 아키텍처에서 사용하기 위한 서버 컴퓨터를 생산한다. 본원에 포함된 내용과 상이한 맥락에서 본 개시물에 포함된 개념들을 구현하는 방법을 쉽게 이해할 수 있기 때문에 그러한 소프트웨어 및 하드웨어 아키텍처의 모든 조합이 여기에 나타나지는 않는다.
도 8은 본원에 설명된 다양한 하드웨어 아키텍처와 함께 사용될 수 있는 대표적인 소프트웨어 아키텍처(802)를 도시하는 블록도(800)이다. 도 8은 단지 호스트웨어 아키텍처에 관한 비제한적인 예이고 많은 다른 아키텍처들이 본원에 설명된 기능을 가능하게 하도록 구성될 수 있음이 이해될 것이다. 소프트웨어 아키텍처(802)는 무엇보다도, 프로세서(910), 메모리(930), 및 입력/출력(I/O) 컴포넌트(950)를 포함하는, 도 9의 머신(900)과 같은 하드웨어 상에서 실행될 수 있다. 대표적인 하드웨어 계층(804)이 예시되며, 예를 들어, 도 9의 머신(900)을 나타낼 수 있다. 대표적인 하드웨어 계층(804)은 연관된 실행가능 명령어(808)를 갖는 하나 이상의 프로세싱 유닛(806)을 포함한다. 실행가능 명령어(808)는 소프트웨어 아키텍처(802)의 실행가능 명령어를 나타낸다. 하드웨어 계층(804)은 또한 실행가능 명령어(808)를 가질 수 있는, 메모리 및/또는 저장 모듈(810)을 포함한다. 하드웨어 계층(804)은 또한 812로 표시된 바와 같이 다른 하드웨어를 포함할 수도 있으며, 이는 머신(900)의 일부로서 예시된 다른 하드웨어와 같은 하드웨어 계층(804)의 임의의 다른 하드웨어를 나타낸다.
도 8의 예시적 아키텍처에서, 소프트웨어 아키텍처(802)는 각각의 계층이 특정 기능을 제공하는 계층 스택으로서 개념화될 수 있다. 예를 들어, 소프트웨어 아키텍처(802)는 오퍼레이팅 시스템(814), 라이브러리(816), 프레임워크/미들웨어(818), 애플리케이션(820), 및 프레젠테이션 계층(844)을 포함할 수 있다. 사용 중에, 애플리케이션(820) 및/또는 계층 내의 다른 컴포넌트는 소프트웨어 스택을 통해 API 호출(824)을 인보크하고 API 호출(824)에 응답하여 메시지(826)로 예시된 바와 같이 응답, 반환 값 등을 수신할 수 있다. 예시된 계층들은 완전히 표현된 것이며 모든 소프트웨어 아키텍처가 모든 계층을 갖지는 않는다. 예를 들어, 일부 모바일 또는 특수용 오퍼레이팅 시스템은 프레임워크/미들웨어(818) 계층을 제공하지 않을 수도 있지만, 다른 것들은 그러한 계층을 제공할 수도 있다. 다른 소프트웨어 아키텍처는 추가적인 또는 다른 계층을 포함할 수도 있다.
오퍼레이팅 시스템(814)은 하드웨어 리소스를 관리하고 공통 서비스를 제공할 수 있다. 오퍼레이팅 시스템(814)은, 예를 들어, 커널(828), 서비스(830), 및 드라이버(832)를 포함할 수도 있다. 커널(828)은 하드웨어와 다른 소프트웨어 계층들 사이의 추상화 계층으로서의 역할을 할 수 있다. 예를 들어, 커널(828)은 메로리 관리, 프로세서 관리(예를 들어, 스케줄링), 컴포넌트 관리, 네트워킹, 보안 설정 등을 담당할 수 있다. 서비스(830)는 다른 소프트웨어 계층들을 위한 다른 공통 서비스를 제공할 수도 있다. 드라이버(832)는 기본 하드웨어와의 인터페이싱 또는 제어를 담당할 수도 있다. 예를 들어, 드라이버(832)는 하드웨어 구성에 따라 디스플레이 드라이버, 카메라 드라이버, 블루투스® 드라이버, 플래시 메모리 드라이버, 직렬 통신 드라이버(예를 들어, 범용 직렬 버스(USB) 드라이버), Wi-Fi® 드라이버, 오디오 드라이버, 전력 관리 드라이버 등을 포함할 수 있다.
라이브러리(816)는 애플리케이션(820) 및/또는 다른 컴포넌트 및/또는 계층에 의해 이용될 수 있는 공통 인프라스트럭처를 제공할 수 있다. 라이브러리(816)는 전형적으로 다른 소프트웨어 모듈이 기본 오퍼레이팅 시스템(814) 기능(예를 들어, 커널(828), 서비스(830) 및/또는 드라이버(832))과 직접 인터페이싱하는 것보다 보다 쉬운 방식으로 작업을 수행하게 하는 기능을 제공한다. 라이브러리(816)는 메모리 할당 기능, 스트링 조작 기능, 수학 기능 등과 같은 기능을 제공할 수 있는 시스템 라이브러리(834)(예를 들어, C 표준 라이브러리)를 포함할 수도 있다. 또한, 라이브러리(816)는 미디어 라이브러리(예를 들어, MPREG4, H.264, MP3, AAC, AMR, JPG, PNG와 같은 다양한 미디어 포맷의 표현 및 조작을 지원하는 라이브러리), 그래픽 라이브러리(디스플레이상의 그래픽 콘텐츠에서 2D와 3D를 렌더링하는데 사용할 수 있는 OpenGL 프레임워크), 데이터베이스 라이브러리(예를 들어, 다양한 관계형 데이터베이스 기능을 제공할 수 있는 SQLite), 웹 라이브러리 (예를 들어, 웹 브라우징 기능을 제공할 수 있는 WebKit) 등과 같은 API 라이브러리(836)를 포함할 수 있다. 라이브러리(816)는 또한 애플리케이션(820) 및 다른 소프트웨어 컴포넌트/모듈에 많은 다른 API를 제공하기 위한 다양한 다른 라이브러리(838)를 포함할 수 있다.
프레임워크/미들웨어(818)(또한 때때로 미들웨어로 언급됨)는 애플리케이션(280) 및/또는 다른 소프트웨어 컴포넌트/모듈에 의해 이용될 수 있는 고레벨 공통 인프라스트럭처를 제공할 수 있다. 예를 들어, 프레임워크/미들웨어(818)는 다양한 그래픽 사용자 인터페이스(GUI) 기능, 고레벨 리소스 관리, 고레벨 위치 서비스 등을 제공할 수 있다. 프레임워크/미들웨어(818)는 애플리케이션(280) 및/또는 다른 소프트웨어 컴포넌트/모듈에 의해 이용될 수 있는 광범위한 스펙트럼의 다른 API들을 제공할 수 있고, 이들 중 일부는 특정 오퍼레이팅 시스템 또는 플랫폼에 특정할 수 있다.
애플리케이션(820)은 내장 애플리케이션(840) 및/또는 제 3 자 애플리케이션(842)을 포함한다. 대표적인 내장 애플리케이션(840)의 예들은, 연락처 애플리케이션, 브라우저 애플리케이션, 북리더 애플리케이션, 위치찾기 애플리케이션, 미디어 애플리케이션, 메시징 애플리케이션, 및/또는 게임 애플리케이션을 포함할 수 있으나, 이로 제한되지 않는다. 제 3 자 애플리케이션은 내장 애플리케이션(840) 중 임의의 애플리케이션뿐만 아니라 매우 다양한 다른 애플리케이션을 포함할 수 있다. 특정 실시예에서, 제 3 자 애플리케이션(842)(예를 들어, 특정 플랫폼의 벤더가 아닌 엔티티에 의해 안드로이드™ 또는 iOS™ 소프트웨어 개발 키트(SDK)를 사용하여 개발된 애플리케이션)은 iOS™, 안드로이드™, WINDOWS® 폰, 또는 다른 모바일 오퍼레이팅 시스템과 같은 모바일 오퍼레이팅 시스템 상에서 구동되는 모바일 소프트웨어일 수 있다. 이러한 예에서, 제 3 자 애플리케이션(842)은 오퍼레이팅 시스템(814)과 같은 모바일 오퍼레이팅 시스템에 의해 제공된 API 호출(824)을 인보크하여 본원에 설명된 기능을 가능하게 할 수 있다.
애플리케이션(820)은 내장 오퍼레이팅 시스템 기능(예를 들어, 커널(828), 서비스(830), 및/또는 드라이버(832)), 라이브러리(예를 들어, 시스템(834), API(836), 및 다른 라이브러리(838)), 및 프레임워크/미들웨어(818)를 이용하여 시스템의 사용자들과 상호작용하기 위한 사용자 인터페이스를 생성할 수 있다. 대안적으로 또는 추가적으로, 일부 시스템에서, 사용자와의 상호작용은 프레젠테이션 계층(844)과 같은, 프레젠테이션 계층을 통해 발생할 수 있다. 이러한 시스템에서, 애플리케이션/모듈 "로직"은 사용자와 상호작용하는 애플리케이션/모듈에 관한 양태들로부터 분리될 수 있다.
일부 소프트웨어 아키텍처는 가상 머신을 이용한다. 도 8의 예에서, 이는 가상 머신(848)에 의해 예시된다. 가상 머신은 애플리케이션/모듈이 하드웨어 머신(예를 들어, 도 9의 머신)에서 실행중인 것처럼 실행할 수 있는 소프트웨어 환경을 생성한다. 가상 머신은 호스트 오퍼레이팅 시스템(도 8의 오퍼레이팅 시스템(814))에 의해 호스팅되고 통상적으로 항상은 아니지만 가상 머신(848)의 동작뿐만 아니라 호스트 오퍼레이팅 시스템(즉, 오퍼레이팅 시스템(814))과의 인터페이스를 관리하는 가상 머신 모니터(846)를 갖는다. 소프트웨어 아키텍처는 오퍼레이팅 시스템(850), 라이브러리(852), 프레임워크/미들웨어(854), 애플리케이션(856) 및/또는 프레젠테이션 계층(858)과 같은 가상 머신(848) 내에서 실행된다. 가상 머신(848) 내에서 실행되는 소프트웨어 아키텍처의 이러한 계층들은 이전에 설명된 대응 계층과 같거나 상이할 수 있다.
도 9는 일부 예시적 실시예들에 따라, 머신 판독가능 매체(예를 들어, 비일시적 머신 판독가능 저장 매체)로부터 명령어(예를 들어, 프로세서 실행가능 명령어)를 판독할 수 있고 본원에 설명된 방법 중 임의의 하나 이상을 수행할 수 있는, 머신(900)의 컴포넌트를 예시하는 블록도이다. 보다 구체적으로, 도 9는 머신(900)이 본원에 설명된 방법 중 임의의 하나 이상의 방법을 수행할 수 있게 하기 위한 명령어(916)(예를 들어, 소프트웨어, 프로그램, 애플리케이션, 애플릿, 앱, 또는 다른 실행가능 코드)가 실행될 수 있는, 컴퓨터 시스템의 예시적 형태로 머신(900)의 개략도를 도시한다. 예를 들어, 명령어(916)는 머신(900)이 도 7의 다이어그램 또는 본원에 설명된 임의의 방법의 요소들을 실행하게 할 수 있다. 추가적으로 또는 대안적으로, 명령어(916)는 본원에 설명된 다양한 모듈들을 구현할 수 있다. 일부 실시예들에서, 이러한 모듈들은 대표적인 모듈의 가상 구현 또는 분산 구현으로서 복수의 머신에 걸쳐 분산될 수 있다. 명령어(916)는, 일반적인 프로그램되지 않은 머신을 설명된 방식으로 설명되고 예시된 기능을 실행하도록 프로그램된 특정 머신으로 변환한다. 대안적인 실시예들에서, 머신(900)은 독립적인 디바이스로서 동작할 수 있거나 다른 머신들에 연결될(예를 들어, 네트워크화될) 수 있다. 네트워크화된 구성에서, 머신(900)은 서버-클라이언트 네트워크 환경에서 서버 머신 또는 클라이언트 머신의 능력으로 동작하거나, 피어 투 피어(또는 분산형) 네트워크 환경에서 피어 머신으로서 동작할 수 있다. 머신(900)은 차량 일체형 컴퓨터, 서버 컴퓨터, 클라이언트 컴퓨터, 퍼스널 컴퓨터(PC), 태블릿 컴퓨터, 랩톱 컴퓨터, 넷북, 웨어러블 디바이스, 또는 순차적으로 또는 달리 머신(900)에 의해 취해질 동작을 명시하는 명령어(916)를 실행할 수 있는 임의의 머신을 포함할 수 있으나 이로 제한되는 것은 아니다. 또한, 단일 머신(900)이 예시되었으나, 용어 "머신"은 개별적으로 또는 함께 명령어(916)를 실행하여 본원에 설명된 방법 중 하나 이상을 수행하는 머신(900)의 집합을 포함하는 것으로 또한 여겨져야 한다.
머신(900)은, 예컨대, 버스(902)를 통해 서로와 통신하도록 구성될 수 있는, 프로세서(910), 메모리(930), 및 I/O 컴포넌트(950)를 포함할 수 있다. 예시적 실시예에서, 프로세서(910)(예를 들어, 중앙 처리 유닛(CPU), RISC(Reduced Instruction Set Computing) 프로세서, CISC(Complex Instruction Set Computing) 프로세서, GPU(Graphics Processing Unit), 디지털 신호 프로세서(DSP), ASIC, 무선 주파수 집적 회로(RFIC), 다른 프로세서, 또는 이들의 임의의 적절한 조합)는, 예를 들어, 프로세서(912) 및 명령어(916)를 실행할 수 있는 프로세서(914)를 포함 할 수 있다. 용어 "프로세서"는 동시에 명령어를 실행할 수 있는 2개 이상의 독립적인 프로세서("코어"라고도 함)를 포함할 수 있는 멀티코어 프로세서를 포함된다. 도 9는 복수의 프로세서(910)를 도시하지만, 머신(900)은 단일 코어를 갖는 단일 프로세서, 다중 코어(예를 들어, 멀티 코어 프로세스)를 갖는 단일 프로세서, 단일 코어를 갖는 다중 프로세서, 다중 코어를 갖는 다중 프로세서, 또는 이들의 임의의 조합을 포함할 수 있다.
메모리(930)는, 예컨대, 버스(902)를 통해, 프로세서들(910) 모두에 액세스 가능한 메인 메모리(932), 정적 메모리(934), 또는 다른 메모리 저장소, 및 저장 유닛(936)을 포함할 수 있다. 저장 유닛(936)은 머신 판독가능 매체(938)에 관한 하나의 실시예들 포함할 수 있다. 일부 실시예들에서, 저장 유닛(936), 메인 메모리(932), 및 정적 메모리(934)는 본원에 설명된 방법 또는 기능 중 임의의 하나 이상을 구현하는 명령어(916)를 저장한다. 다른 실시예들에서, 명령어(916)는 또한 메인 메모리(932) 내에, 저장 유닛(936) 내에, 프로세서들(910) 중 적어도 하나 내에(예를 들어, 프로세서의 캐시 메모리 내에), 또는 이들의 임의의 적합한 조합으로, 머신(900)에 의한 이들의 실행 동안, 완전히 또는 부분적으로 상주할 수 있다. 따라서, 메일 메모리(932), 저장 유닛(936), 및 프로세서들(910)의 메모리는 머신 판독가능 매체에 관한 예들이다.
본원에 사용되는 바와 같이, "머신 판독가능 매체" 또는 "컴퓨터 판독가능 매체"는 명령어 및 데이터를 일시적으로 또는 영구적으로 저장할 수 있는 디바이스를 의미하며, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 버퍼 메모리, 플래시 메모리, 광학 매체, 자기 매체, 캐시 메모리, 다른 유형의 저장소(예를 들어, 지울 수 있는 프로그램가능 판독 전용 메모리(EEPROM)) 및/또는 이들의 임의의 적절한 조합을 포함할 수 있으나, 이로 제한되는 것은 아니다. 용어 "머신 판독 가능 매체" 또는 "컴퓨터 판독 가능 매체"는 명령어(916)를 저장할 수 있는 단일 매체 또는 다중 매체(예를 들어, 중앙 집중형 또는 분산형 데이터베이스, 또는 연관된 캐시 및 서버)를 포함하는 것으로 여겨져야 한다. 용어 "머신 판독가능 매체"는 머신(예를 들어, 머신(900))에 의한 실행을 위한 명령어(예를 들어, 명령어들(916))를 저장할 수 있는 임의의 매체 또는 복수의 매체의 조합을 포함하는 것으로 여겨져야 하며, 이로써 명령어는, 머신의 하나 이상의 프로세서들(예를 들어, 프로세서들(910))에 의해 실행될 때, 머신(900)이 본원에 설명된 방법 중 임의의 하나 이상의 방법들을 수행하게 한다. 따라서, "머신 판독가능 매체" 또는 "컴퓨터 판독가능 매체"는 단일 저장 장치 또는 디바이스뿐만 아니라 복수의 저장 장치 또는 디바이스를 포함하는 "클라우드 기반" 저장 시스템 또는 저장 네트워크를 지칭한다.
I/O 컴포넌트(950)는 입력을 수신하고, 출력을 제공하고, 출력을 생성하고, 정보를 전송, 정보를 교환하고, 측정을 캡처하기 위한 매우 다양한 컴포넌트를 포함할 수 있다. 특정 머신에 포함되는 특정 I/O 컴포넌트(950)는 머신 타입에 따러 다를 것이다. 예를 들어, 모바일 폰과 같은 이동형 머신은 터치 입력 디바이스 또는 다른 그러한 입력 메커니즘을 포함할 가능성이 있지만, 헤드레스 서버 머신은 그러한 터치 입력 디바이스를 포함하지 않을 가능성이 있을 것이다. I/O 컴포넌트(950)는 도 9에 도시되지 않은 많은 다른 컴포넌트를 포함할 수도 있다는 것이 이해될 것이다. I/O 컴포넌트(950)는 제한하지 않는 방식으로 다음의 설명을 단지 간략화하기 위해 기능에 따라 그룹화되며 그룹화는 비제한적인 방식으로 행해진다. 다양한 예시적 실시예들에서, I/O 컴포넌트(950)는 출력 컴포넌트(952) 및 입력 컴포넌트(954)를 포함할 수 있다. 출력 컴포넌트(952)는 시각 컴포넌트(예를 들어, 플라즈마 디스플레이 패널(PDP), 발광 다이오드(LED) 디스플레이, 액정 디스플레이(LCD), 프로젝터 또는 음극선관(CRT)), 음향 컴포넌트(예를 들어, 스피커), 햅틱 컴포넌트(예를 들어, 진동 모터, 저항 메커니즘), 다른 신호 생성기 등을 포함할 수 있다. 입력 컴포넌트(954)는 영숫자 입력 컴포넌트(예를 들어, 키보드, 영숫자 입력, 광전자 키보드 또는 다른 영숫자 입력 컴포넌트를 수신하도록 구성된 터치 스크린), 포인트 기반 입력 컴포넌트(예를 들어, 마우스, 터치패드, 트랙볼, 조이스틱, 모션 센서, 또는 다른 포인팅 디바이스), 촉각 입력 컴포넌트(예를 들어, 물리 버튼, 터치 또는 터치 제스처의 위치 및/또는 힘을 제공하는 터치 스크린, 또는 기타 촉각 입력 컴포넌트), 오디오(예를 들어, 마이크로폰) 등을 포함할 수 있다.
또한 예시적 실시예들에서, I/O 컴포넌트(950)는 매우 다양한 다른 컴포넌트 중에서도 카메라(956), 모션 컴포넌트(958), 환경 컴포넌트(960), 또는 위치 컴포넌트(962)를 포함할 수 있다. 일부 실시예들은 표현(예를 들어, 손 표현, 표정, 음성 표현, 신체 제스처, 또는 안구 추적)을 검출하기 위한 컴포넌트, 생체신호(예를 들어, 혈압, 심박수, 체온, 땀, 또는 뇌파)를 측정하기 위한 컴포넌트, 사람을 식별(예를 들어, 음성 식별, 망막 식별, 안면 식별, 지문 식별 또는 뇌파계 기반 식별) 등을 포함할 수 있는 생체 컴포넌트를 포함할 수도 있다. 모션 컴포넌트(958)는 가속 센서 컴포넌트(예를 들어, 가속도계), 중력 센서 컴포넌트, 회전 센서 컴포넌트(예를 들어, 자이로스코프) 등을 포함할 수 있다. 환경 컴포넌트(960)는, 예를 들어, 조도 센서 컴포넌트(예를 들어, 광도계), 온도 센서 컴포넌트(예를 들어, 주변 온도를 검출하는 하나 이상의 온도계), 습도 센서 컴포넌트, 압력 센서 컴포넌트(예를 들어, 기압계), 음향 센서 컴포넌트(예를 들어, 배경 잡음을 검출하는 하나 이상의 마이크로폰), 주변 센서 컴포넌트(예를 들어, 인근 물체를 검출하는 자외선 센서), 가스 센서(예를 들어, 안전을 위해 위험한 가스의 농도를 검출하거나 대기 중 오염물질을 측정하는 가스 검출 센서), 또는 주변 물리적 환경에 대응하는 표시, 측정치, 신호를 제공할 수 있는 다른 컴포넌트를 포함할 수 있다. 위치검출 컴포넌트(962)는 위치 센서 컴포넌트(예를 들어, GPS 수신기 컴포넌트), 고도 센서 컴포넌트(예를 들어, 고도가 얻어질 수 있는 대기 압력을 검출하는 고도계 또는 기압계), 방향 센서 컴포넌트(예를 들어, 자력계) 등을 포함할 수 있다.
통신은 매우 다양한 기법을 사용하여 구현될 수 있다. I/O 컴포넌트(950)는 연결(982) 및 연결(972)을 통해 네트워크(980) 또는 디바이스(970) 각각에 머신(900)을 연결하도록 동작가능한 통신 컴포넌트(964)를 포함할 수 있다. 예를 들어, 통신 컴포넌트(964)는 네트워크 인터페이스 컴포넌트 또는 네트워크(980)와 인터페이싱하는 다른 적합한 디바이스를 포함할 수도 있다. 추가 예들에서, 통신 컴포넌트(964)는 유선 통신 컴포넌트, 무선 통신 컴포넌트, 셀룰러 통신 컴포넌트, 근거리 통신(NFC) 컴포넌트, 블루투스® 컴포넌트(예를 들어, 블루투스® 저 에너지), Wi-Fi® 컴포넌트, 및 다른 통신 컴포넌트를 포함하여 다른 양식을 통해 통신을 제공할 수 있다. 디바이스(970)는 다른 머신 또는 다양한 주변 디바이스(예를 들어, USB를 통해 연결된 주변 디바이스) 중 임의의 하나의 디바이스일 수 있다.
더욱이, 통신 컴포넌트(964)는 식별자를 검출할 수 있거나 식별자를 검출하도록 동작가능한 컴포넌트를 포함할 수 있다. 예를 들어, 통신 컴포넌트(964)는 무선 주파수 식별(RFID) 태그 판독기 컴포넌트, NFC 스마트 태그 검출 컴포넌트, 광학 판독기 컴포넌트(예를 들어, 유니버설 제품 코드(UPC) 바코드와 같은 1차원 바코드, QR(Quick Response) 코드, 아즈텍 코드, 데이터 매트릭스, 데이터 글리프, 맥시코드(MaxiCode), PDF417, 울트라 코드, UCC RSS-2D 바코드 및 기타 광학 코드와 같은 다차원 바코드를 검출하는 광학 센서), 또는 음향 검출 컴포넌트(DP를 들어, 태그된 오디오 신호를 식별하는 마이크로폰)을 포함할 수 있다. 또한, 다양한 정보는 통신 컴포넌트(964), 예컨대, 인터넷 프로토콜(IP) 지오로케이션을 통한 위치추적, Wi-Fi® 신호 삼각측량을 통한 위치추적, 특정 위치를 표시할 수 있는 NFC 비콘 신호를 검출하는 것을 통한 위치추적 등을 통해 도출될 수 있다.
프로세서 실행가능 명령어로서 포함되는, 명령어(916)는 임의의 앞서 언급된 모듈 또는 구조에 관한 알고리즘 및 프로그램 표현을 제공하고 모듈이 본원에 설명된 방법을 수행하게 할 수 있다. 명령어(916)는 네트워크 인터페이스 디바이스(예를 들어, 통신 컴포넌트(964)에 포함된 네트워크 인터페이스 컴포넌트)를 거쳐 전송 매체를 사용하여 그리고 다수의 잘 알려진 전송 프로토콜 중 임의의 하나(예를 들어, HTTP(Hypertext Transfer Protocol))를 이용하여 네트워크(980)를 통해 전송되거나 수신될 수 있다. 이와 마찬가지로, 명령어(916)는 디바이스(970)에 대한 연결(972)(예를 들어, 피어 투 피어 연결)을 통해 전송 매체를 사용하여 전송되거나 수신될 수 있다. 용어 "전송 매체"는 머신(900)에 의한 실행을 위해 명령어(916)를 저장, 인코딩, 또는 전달할 수 있는 임의의 무형의 매체를 포함하는 것으로 여겨져야 하며, 그러한 소프트웨어의 통신을 가능하게 하는 디지털 또는 아날로그 통신 신호 또는 다른 무형 매체를 포함한다. 전송 매체는 컴퓨터 판독가능 매체에 관한 하나의 실시예이다.
본 명세서 전체에 걸쳐, 복수의 예는 단일 예로 설명된 컴포넌트, 동작 또는 구조를 구현할 수 있다. 하나 이상의 방법의 개별 동작이 별도의 동작으로 도시되고 기술되었지만, 개별 동작들 중 하나 이상은 동시에 수행될 수도 있고, 동작이 도시된 순서대로 수행될 것을 요구하는 것은 아니다. 예시적인 구성에서 별도의 구성 요소로 나타낸 구조 및 기능은 조합된 구조 또는 컴포넌트로 구현될 수 있다. 이와 마찬가지로, 단일 구성 요소로서 나타낸 구조 및 기능은 별도의 컴포넌트로 구현될 수 있다. 이들 및 다른 변형, 수정, 추가 및 개선은 본 명세서의 주제의 범위 내에 있다.
본 발명의 청구대상에 관한 개요가 특정 예시적인 실시예들을 참조하여 설명되었으나, 다양한 수정 및 변경이 본 개시물의 실시예들에 관한 넓은 범위를 벗어나지 않으면서 이들 실시예들에 행해질 수 있다. 본 발명의 청구대상에 관한 그러한 실시예들은 단지 편의상 그리고 실제로 둘 이상이 공개되는 본 출원의 범위를 경우 어느 하나의 개시물 또는 발명적 개념으로 자발적으로 제한하려는 의도 없이 "발명"이란 용어로 개별적으로 또는 집합적으로 언급될 수 있다.
본 명세서에 도시된 실시예는 당업자가 개시된 교시를 실시할 수 있도록 충분히 상세하게 설명된다. 본 개시의 범위를 벗어나지 않고 구조적 및 논리적 대체 및 변경이 이루어질 수 있도록 다른 실시예가 사용되고 그로부터 도출될 수 있다. 따라서, 상세한 설명은 제한적인 의미로 여겨져서는 안 되며, 다양한 실시예의 범위는 청구 범위가 부여되는 균등 범위의 전체 범위와 함께 첨부된 특허청구범위에 의해서만 정의된다.
본원에 사용된 바와 같이, 용어 "또는"은 포괄적이거나 배타적인 의미 중 하나로 여겨질 수 있다. 더욱이, 본원에 설명된 리소스, 동작, 또는 구조에 대한 여려 예들이 단일 예로 제공될 수 있다. 추가적으로, 다양한 리소스, 동작, 모듈, 엔진, 및 데이터 저장소 사이의 경계는 다소 임의적이며, 특정 동작은 특정 예시적인 구성과 관련하여 설명된다. 기능의 다른 할당들이 계획되고 본 개시물의 다양한 실시 예의 범위 내에 있을 수 있다. 일반적으로, 예시적 구성들에서 별도의 자원으로 나타난 구조 및 기능은 조합된 구조 또는 자원으로서 구현될 수도 있다. 이와 마찬가지로, 단일 리소스로 나타난 구조 및 기능이 별도의 리소스들로 구현될 수도 있다. 이러한 및 다른 변형, 수정, 추가 및 개선은 첨부된 특허청구범위에 의해 표현되는 본 개시물의 실시예의 범위 내에 있다. 따라서, 본 명세서 및 도면은 제한적인 의미라기보다는 예시적인 것으로 여겨져야 한다.

Claims (19)

  1. 서버에 의해 수행되는 방법으로서,
    검색 질의의 전치 스트링(prefix string)과 연관된 복수의 카테고리를 식별하는 단계와,
    상기 복수의 카테고리 중 주어진 카테고리가 주어진 기간 내의 시간 세그먼트 동안 더 큰 수요와 연관된다고 판정하는 단계와,
    상기 복수의 카테고리 중 다른 카테고리와 연관된 다른 검색 결과보다 상기 주어진 카테고리와 연관된 검색 결과를 우선순위화하는 단계
    를 포함하는 방법.
  2. 제 1 항에 있어서,
    상기 주어진 기간은 1년이고, 상기 시간 세그먼트는 1주일이며,
    상기 방법은,
    상기 복수의 카테고리의 각각의 카테고리에 대해, 시간 세그먼트들의 각 기간 동안 그 카테고리와 연관된 모든 사용자 입력의 비율을 식별하는 단계와,
    상기 시간 세그먼트들 중에서, 제 1 카테고리와 연관된 모든 사용자 입력의 확률이 예상 값을 벗어나는 하나 이상의 기간을 식별하는 단계와,
    상기 제 1 카테고리와 연관된 모든 사용자 입력의 확률이 상기 예상 값을 벗어나는 상기 하나 이상의 기간을 선택하는 단계를 더 포함하는
    방법.
  3. 제 1 항에 있어서,
    상기 우선순위화된 검색 결과를 디스플레이를 위해 생성하는 단계를 더 포함하되, 상기 주어진 기간은 트리거링 이벤트와 연관되는
    방법.
  4. 제 1 항에 있어서,
    자동완성 모델의 일부로서 자동완성 데이터베이스 내의 사용자 입력을 수신하는 단계와,
    하나 이상의 카테고리에 대한 시간적 수요를 캡처하는 시간 모델을 구축하기 위해 상기 수신된 사용자 입력의 각각의 사용자 입력을 상기 하나 이상의 카테고리 및 반복되는 고려 기간의 복수의 시간 세그먼트 중 하나와 연관시키는 단계
    를 더 포함하는 방법.
  5. 제 4 항에 있어서,
    모든 검색의 비율의 이력이 시간의 경과에 따라 특정 카테고리와 연관된다고 판정하는 단계를 더 포함하되, 상기 복수의 시간 세그먼트는 제 1 시간 세그먼트를 포함하고, 상기 제 1 시간 세그먼트 동안 하나 이상의 자동완성 카테고리의 제 1 카테고리는 상기 반복되는 고려 기간 동안의 사용자 입력의 평균 개수로부터의 편차와 연관되는
    방법.
  6. 제 5 항에 있어서,
    상기 시간 모델을 사용하여 자동완성 결과 세트를 생성하는 단계를 더 포함하되, 상기 자동완성 결과 세트는 상기 제 1 시간 세그먼트 동안 수신되는 검색 입력에 적어도 부분적으로 기초하는
    방법.
  7. 제 1 항에 있어서,
    상기 복수의 카테고리의 각각은 적어도 부분적으로 메타데이터에 의해 식별되는
    방법.
  8. 제 1 항에 있어서,
    상기 복수의 카테고리의 각각은 카테고리의 복수의 티어(tier)로 구조화된 카테고리 트리 내에서 최하위 레벨의 리프(leaf) 카테고리이고,
    상기 카테고리 트리 내의 각각의 최하위 레벨의 리프 카테고리는 데이터베이스 내의 하나 이상의 검색 스트링과 연관되는
    방법.
  9. 제 8 항에 있어서,
    상기 전치 스트링과 하나 이상의 자동완성 카테고리 사이의 예상 관계를 랭킹하는 제 1 매칭 스코어(match score) 세트를 사용하여 상기 복수의 카테고리와 상기 전치 스트링을 연관시키는 단계를 더 포함하되,
    상기 제 1 매칭 스코어 세트는, 상기 주어진 카테고리가 고려 기간 동안의 사용자 입력의 평균 개수와 비교할 때 제 1 시간 세그먼트 동안 더 많은 사용자 입력의 평균 개수를 수신한다는 판정에 기초하여 가중되는
    방법.
  10. 컴퓨터 판독가능 명령어를 포함하는 비일시적 컴퓨터 판독가능 저장 매체로서,
    상기 컴퓨터 판독가능 명령어는, 하나 이상의 프로세서에 의해 실행될 때, 서버로 하여금,
    검색 질의의 전치 스트링과 연관된 복수의 카테고리를 식별하는 것과,
    상기 복수의 카테고리 중 주어진 카테고리가 주어진 기간 내의 시간 세그먼트 동안 더 큰 수요와 연관된다고 판정하게 하는 것과,
    상기 복수의 카테고리 중 다른 카테고리와 연관된 다른 검색 결과보다 상기 주어진 카테고리와 연관된 검색 결과를 우선순위화하게 하는 것
    을 포함하는 동작을 수행하게 하는
    비일시적 컴퓨터 판독가능 저장 매체.
  11. 제 10 항에 있어서,
    상기 주어진 기간은 1년이고, 상기 시간 세그먼트는 1주일이며,
    상기 컴퓨터 판독가능 명령어는 또한, 상기 서버로 하여금,
    상기 복수의 카테고리의 각각의 카테고리에 대해, 시간 세그먼트들의 각 기간 동안 그 카테고리와 연관된 모든 사용자 입력의 비율을 식별하게 하고,
    상기 시간 세그먼트들 중에서, 제 1 카테고리와 연관된 모든 사용자 입력의 확률이 예상 값을 벗어나는 하나 이상의 기간을 식별하게 하고,
    상기 제 1 카테고리와 연관된 모든 사용자 입력의 확률이 상기 예상 값을 벗어나는 상기 하나 이상의 기간을 선택하게 하는
    비일시적 컴퓨터 판독가능 저장 매체.
  12. 제 10 항에 있어서,
    상기 동작은, 상기 우선순위화된 검색 결과를 디스플레이를 위해 생성하는 것을 더 포함하고, 상기 주어진 기간은 트리거링 이벤트와 연관되는
    비일시적 컴퓨터 판독가능 저장 매체.
  13. 제 10 항에 있어서,
    상기 동작은,
    자동완성 모델의 일부로서 자동완성 데이터베이스 내의 사용자 입력을 수신하는 것과,
    상기 서버로 하여금, 하나 이상의 카테고리에 대한 시간적 수요를 캡처하는 시간 모델을 구축하기 위해 상기 수신된 사용자 입력의 각각의 사용자 입력을 상기 하나 이상의 카테고리 및 반복되는 고려 기간의 복수의 시간 세그먼트 중 하나와 연관시키게 하는 것을 더 포함하는
    비일시적 컴퓨터 판독가능 저장 매체.
  14. 제 13 항에 있어서,
    상기 서버는 모든 검색의 비율의 이력이 시간의 경과에 따라 특정 카테고리와 연관된다고 판정하고, 상기 복수의 시간 세그먼트는 제 1 시간 세그먼트를 포함하고, 상기 제 1 시간 세그먼트 동안 하나 이상의 자동완성 카테고리의 제 1 카테고리는 상기 반복되는 고려 기간 동안의 사용자 입력의 평균 개수로부터의 편차와 연관되는
    비일시적 컴퓨터 판독가능 저장 매체.
  15. 제 14 항에 있어서,
    상기 서버는 상기 시간 모델을 사용하여 자동완성 결과 세트를 생성하고, 상기 자동완성 결과 세트는 상기 제 1 시간 세그먼트 동안 수신되는 검색 입력에 적어도 부분적으로 기초하는
    비일시적 컴퓨터 판독가능 저장 매체.
  16. 제 10 항에 있어서,
    상기 복수의 카테고리의 각각은 적어도 부분적으로 메타데이터에 의해 식별되는
    비일시적 컴퓨터 판독가능 저장 매체.
  17. 제 10 항에 있어서,
    상기 복수의 카테고리의 각각은 카테고리의 복수의 티어로 구조화된 카테고리 트리 내에서 최하위 레벨의 리프 카테고리이고,
    상기 카테고리 트리 내의 각각의 최하위 레벨의 리프 카테고리는 데이터베이스 내의 하나 이상의 검색 스트링과 연관되는
    비일시적 컴퓨터 판독가능 저장 매체.
  18. 제 17 항에 있어서,
    상기 서버는, 상기 전치 스트링과 하나 이상의 자동완성 카테고리 사이의 예상 관계를 랭킹하는 제 1 매칭 스코어 세트를 사용하여 상기 복수의 카테고리와 상기 전치 스트링을 연관시키고,
    상기 제 1 매칭 스코어 세트는, 상기 주어진 카테고리가 고려 기간 동안의 사용자 입력의 평균 개수와 비교할 때 제 1 시간 세그먼트 동안 더 많은 사용자 입력의 평균 개수를 수신한다는 판정에 기초하여 가중되는
    비일시적 컴퓨터 판독가능 저장 매체.
  19. 서버로서,
    명령어를 저장하는 메모리와,
    상기 메모리 내에 저장된 상기 명령어를 실행하여 동작을 수행하는 하나 이상의 프로세서를 포함하되,
    상기 동작은,
    검색 질의의 전치 스트링과 연관된 복수의 카테고리를 식별하는 것과,
    상기 복수의 카테고리 중 주어진 카테고리가 주어진 기간 내의 시간 세그먼트 동안 더 큰 수요와 연관된다고 판정하게 하는 것과,
    상기 복수의 카테고리 중 다른 카테고리와 연관된 다른 검색 결과보다 상기 주어진 카테고리와 연관된 검색 결과를 우선순위화하게 하는 것
    을 포함하는
    서버.
KR1020207029217A 2014-09-30 2015-09-29 자동완성 검색 결과에 대한 시간적 요구를 식별하는 기법 KR102310114B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201462057548P 2014-09-30 2014-09-30
US62/057,548 2014-09-30
KR1020197030237A KR102167250B1 (ko) 2014-09-30 2015-09-29 자동완성 검색 결과에 대한 시간적 요구를 식별하는 기법
PCT/US2015/052862 WO2016053990A1 (en) 2014-09-30 2015-09-29 Identifying temporal demand for autocomplete search results

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020197030237A Division KR102167250B1 (ko) 2014-09-30 2015-09-29 자동완성 검색 결과에 대한 시간적 요구를 식별하는 기법

Publications (2)

Publication Number Publication Date
KR20200119913A KR20200119913A (ko) 2020-10-20
KR102310114B1 true KR102310114B1 (ko) 2021-10-08

Family

ID=55584711

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020177011806A KR102035400B1 (ko) 2014-09-30 2015-09-29 자동완성 검색 결과에 대한 시간적 요구를 식별하는 기법
KR1020207029217A KR102310114B1 (ko) 2014-09-30 2015-09-29 자동완성 검색 결과에 대한 시간적 요구를 식별하는 기법
KR1020197030237A KR102167250B1 (ko) 2014-09-30 2015-09-29 자동완성 검색 결과에 대한 시간적 요구를 식별하는 기법

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020177011806A KR102035400B1 (ko) 2014-09-30 2015-09-29 자동완성 검색 결과에 대한 시간적 요구를 식별하는 기법

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020197030237A KR102167250B1 (ko) 2014-09-30 2015-09-29 자동완성 검색 결과에 대한 시간적 요구를 식별하는 기법

Country Status (7)

Country Link
US (2) US10268778B2 (ko)
EP (1) EP3201757A4 (ko)
KR (3) KR102035400B1 (ko)
CN (2) CN107077320B (ko)
AU (1) AU2015324030B2 (ko)
CA (1) CA2961952C (ko)
WO (1) WO2016053990A1 (ko)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10268778B2 (en) 2014-09-30 2019-04-23 Ebay Inc. Method of identifying temporal demand of queries and metadata to give better autocomplete queries and improved search results
US20160196348A1 (en) * 2015-01-07 2016-07-07 International Business Machines Corporation Re-ordering search results based on viewed pages
US9928313B2 (en) * 2015-06-15 2018-03-27 Oath Inc. Seasonal query suggestion system and method
US10380190B2 (en) 2015-11-18 2019-08-13 International Business Machines Corporation Optimized autocompletion of search field
US10055095B2 (en) * 2015-12-30 2018-08-21 Ebay Inc. Customizable autocomplete option
US10534783B1 (en) * 2016-02-08 2020-01-14 Microstrategy Incorporated Enterprise search
US10846317B2 (en) * 2016-11-22 2020-11-24 Sap Se Method and system for data processing and structural categorizing
US10558686B2 (en) * 2016-12-05 2020-02-11 Sap Se Business intelligence system dataset navigation based on user interests clustering
US10545954B2 (en) * 2017-03-15 2020-01-28 Google Llc Determining search queries for obtaining information during a user experience of an event
GB201716305D0 (en) * 2017-10-05 2017-11-22 Palantir Technologies Inc Dashboard creation and management
US10769371B1 (en) * 2017-11-28 2020-09-08 Amazon Technologies, Inc. Automatic execution of actions responsive to search queries
US11715042B1 (en) 2018-04-20 2023-08-01 Meta Platforms Technologies, Llc Interpretability of deep reinforcement learning models in assistant systems
US11010436B1 (en) 2018-04-20 2021-05-18 Facebook, Inc. Engaging users by personalized composing-content recommendation
US11307880B2 (en) 2018-04-20 2022-04-19 Meta Platforms, Inc. Assisting users with personalized and contextual communication content
US11886473B2 (en) 2018-04-20 2024-01-30 Meta Platforms, Inc. Intent identification for agent matching by assistant systems
US11676220B2 (en) 2018-04-20 2023-06-13 Meta Platforms, Inc. Processing multimodal user input for assistant systems
US10685180B2 (en) 2018-05-10 2020-06-16 International Business Machines Corporation Using remote words in data streams from remote devices to autocorrect input text
US10887262B1 (en) * 2019-01-25 2021-01-05 Twitter, Inc. Visibility filtering
CN110009391B (zh) * 2019-02-22 2023-06-02 创新先进技术有限公司 一种周期性事件信息确定方法及装置
US11574467B2 (en) 2019-11-21 2023-02-07 Kyndryl, Inc. Document augmented auto complete
US11809969B2 (en) * 2020-06-30 2023-11-07 Adobe Inc. Dynamically integrating interactive machine learning multi-models
US11886687B1 (en) * 2020-09-23 2024-01-30 Jetsmarter Inc. Efficient route selection for client-initiated segments
US11681743B2 (en) 2020-11-20 2023-06-20 International Business Machines Corporation Type ahead search amelioration based on image processing
JP2022131271A (ja) 2021-02-26 2022-09-07 株式会社ブイ・テクノロジー レーザアニール装置およびレーザアニール方法
EP4320529A4 (en) * 2021-04-08 2024-08-28 Xero Ltd SYSTEMS AND METHODS FOR PLANNING INFORMATION EXTRACTION
US20240104091A1 (en) * 2022-09-23 2024-03-28 Optum, Inc. Machine learning techniques for generating personalized autocomplete prediction
US12079279B2 (en) 2023-02-06 2024-09-03 Walmart Apollo, Llc Systems and methods for generating query suggestions
US12032608B1 (en) 2023-02-06 2024-07-09 Walmart Apollo, Llc Systems and methods for generating query suggestions

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080162506A1 (en) 2007-01-03 2008-07-03 Stephenson Janette W Device and method for world wide web organization

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6564213B1 (en) 2000-04-18 2003-05-13 Amazon.Com, Inc. Search query autocompletion
WO2004023243A2 (en) 2002-09-03 2004-03-18 X1 Technologies, Llc Apparatus and methods for locating data
US7487145B1 (en) 2004-06-22 2009-02-03 Google Inc. Method and system for autocompletion using ranked results
US7747639B2 (en) * 2005-08-24 2010-06-29 Yahoo! Inc. Alternative search query prediction
US7844599B2 (en) 2005-08-24 2010-11-30 Yahoo! Inc. Biasing queries to determine suggested queries
KR100792699B1 (ko) * 2006-03-17 2008-01-11 엔에이치엔(주) 일반 추천어 및 광고 추천어 자동완성 방법 및 시스템
CN101196885A (zh) * 2006-12-06 2008-06-11 鸿富锦精密工业(深圳)有限公司 网页数据自动填充系统及方法
US20080294982A1 (en) * 2007-05-21 2008-11-27 Microsoft Corporation Providing relevant text auto-completions
EP2304667A4 (en) * 2008-06-03 2011-08-10 Just Parts Online Inc SYSTEM AND METHOD FOR LISTING POSTS ONLINE
KR101453382B1 (ko) * 2008-09-08 2014-10-21 에스케이커뮤니케이션즈 주식회사 사용자별 검색어 추천 시스템과 방법 및 이를 구현할 수 있는 컴퓨터로 읽을 수 있는 기록 매체
US20140108445A1 (en) * 2011-05-05 2014-04-17 Google Inc. System and Method for Personalizing Query Suggestions Based on User Interest Profile
WO2012156893A1 (en) * 2011-05-18 2012-11-22 Koninklijke Philips Electronics N.V. Performing a search for a document
US9552425B2 (en) 2011-06-02 2017-01-24 Ebay Inc. System and method for determining query aspects at appropriate category levels
KR101318843B1 (ko) * 2011-08-30 2013-10-17 성균관대학교산학협력단 시간 정보를 활용한 블로그 카테고리 분류 방법 및 장치
US9697016B2 (en) * 2011-11-15 2017-07-04 Microsoft Technology Licensing, Llc Search augmented menu and configuration for computer applications
US9305092B1 (en) * 2012-08-10 2016-04-05 Google Inc. Search query auto-completions based on social graph
US9613165B2 (en) * 2012-11-13 2017-04-04 Oracle International Corporation Autocomplete searching with security filtering and ranking
CN103064945B (zh) * 2012-12-26 2016-01-06 吉林大学 基于本体的情境搜索方法
US20150149482A1 (en) * 2013-03-14 2015-05-28 Google Inc. Using Live Information Sources To Rank Query Suggestions
US9268880B2 (en) * 2013-03-14 2016-02-23 Google Inc. Using recent media consumption to select query suggestions
US9298852B2 (en) * 2013-06-27 2016-03-29 Google Inc. Reranking query completions
US8838518B1 (en) * 2013-11-15 2014-09-16 Pearson Education, Inc. Educational querying processing based on detected course enrollment and course-relevant query time
CN103646089B (zh) * 2013-12-13 2017-07-25 百度在线网络技术(北京)有限公司 自动搜索方法及装置
US10268778B2 (en) 2014-09-30 2019-04-23 Ebay Inc. Method of identifying temporal demand of queries and metadata to give better autocomplete queries and improved search results

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080162506A1 (en) 2007-01-03 2008-07-03 Stephenson Janette W Device and method for world wide web organization

Also Published As

Publication number Publication date
CA2961952C (en) 2018-11-20
EP3201757A1 (en) 2017-08-09
CN107077320A (zh) 2017-08-18
US11132405B2 (en) 2021-09-28
EP3201757A4 (en) 2018-02-28
CN112035731B (zh) 2024-09-24
US20160092598A1 (en) 2016-03-31
US10268778B2 (en) 2019-04-23
AU2015324030B2 (en) 2018-01-25
WO2016053990A1 (en) 2016-04-07
KR20170066529A (ko) 2017-06-14
AU2015324030A1 (en) 2017-04-20
KR20200119913A (ko) 2020-10-20
CN112035731A (zh) 2020-12-04
KR102167250B1 (ko) 2020-10-19
CN107077320B (zh) 2020-08-25
KR20190119678A (ko) 2019-10-22
CA2961952A1 (en) 2016-04-07
KR102035400B1 (ko) 2019-10-22
US20190228038A1 (en) 2019-07-25

Similar Documents

Publication Publication Date Title
KR102310114B1 (ko) 자동완성 검색 결과에 대한 시간적 요구를 식별하는 기법
US11810178B2 (en) Data mesh visualization
JP6867479B2 (ja) 画像解析および予測に基づく視覚検索
US20160078101A1 (en) Enhanced search query suggestions
JP2019533246A (ja) 製品タイトルの選択
US20200020000A1 (en) Generating product descriptions from user reviews
CN112334904B (zh) 处理交易反馈
CN108027944B (zh) 电子商务中的结构化项目组织机制
US20210165838A1 (en) Context Identification For Content Generation
KR20180039695A (ko) 상호적 제품 리뷰 인터페이스
KR20210055759A (ko) 머신 러닝을 사용한 개인화된 배너 이미지 생성

Legal Events

Date Code Title Description
A107 Divisional application of patent
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right