KR20200001632A - 위치 개선 및 분산으로 인한 재-순위 검색 결과 - Google Patents

위치 개선 및 분산으로 인한 재-순위 검색 결과 Download PDF

Info

Publication number
KR20200001632A
KR20200001632A KR1020197038847A KR20197038847A KR20200001632A KR 20200001632 A KR20200001632 A KR 20200001632A KR 1020197038847 A KR1020197038847 A KR 1020197038847A KR 20197038847 A KR20197038847 A KR 20197038847A KR 20200001632 A KR20200001632 A KR 20200001632A
Authority
KR
South Korea
Prior art keywords
items
item
regions
score
subset
Prior art date
Application number
KR1020197038847A
Other languages
English (en)
Other versions
KR102272261B1 (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 KR20200001632A publication Critical patent/KR20200001632A/ko
Application granted granted Critical
Publication of KR102272261B1 publication Critical patent/KR102272261B1/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/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • 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/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/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/9537Spatial or temporal dependent retrieval, e.g. spatiotemporal queries
    • 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/0639Item locations

Abstract

온라인 예약접수 시스템은 사용자들이 상품 또는 서비스 항목들을 검색 및 예약접수할 수 있도록 한다. 사용자가 항목들에 대한 검색을 하는 경우, 상기 항목들은, 항목의 위치 및 가격, 리뷰의 양과 질을 포함하는 요소들의 수 및 이전에 성사된 예약접수들의 수에 기초하여 순위 및 점수가 정해진다. 일부 시나리오에서, 항목 점수들은 탑 순위 결과들을 특정한 지역으로 몹시 편향시킨다. 상기 항목 점수들은 편향된 결과들을 해결하기 위해 수정될 수도 있다. 검색 결과들의 분산이 요구되는 경우, 상기 항목 점수들은 탑 순위 결과가 분산된 지역들의 세트에 위치하도록 수정될 수 있다. 검색 결과들의 세분화된(granular) 관련성이 요구되는 경우, 탑 순위 결과들이 편향된 결과들에 대한 지역보다 검색에 보다 관련있는 지역들에 위치하도록 상기 항목 점수들은 수정된다.

Description

위치 개선 및 분산으로 인한 재-순위 검색 결과{RE-RANKING SEARCH RESULTS FOR LOCATION REFINING AND DIVERSITY}
본 출원은 2016년 11월 23일자로 국내 단계에 진입한 한국 출원 제10-2016-7032730호의 분할 출원으로서, 그 전체가 참조로 포함된다.
본 발명은 검색 쿼리에 대응하여 위치 기반 개선 및 분산을 통해 소비자가 예약접수할 항목들이 편향되지 않도록 하는 방법 및 컴퓨터 판독가능 매체에 대한 발명이다.
많은 온라인 컴퓨터 시스템은 판매, 대여, 및 예약(reservation)(대체적으로 간소화된 예약접수(booking))용 상품 및 서비스 항목(listing)을 제공한다. 예를 들어, 주어진 도시에서, 특정 지역 및 훨씬 특정한 거리가 다른 지역 및 거리보다 선호된다. 소비자는 항목을 예약접수 할지 말지 그들의 결정에 위치를 요인으로 포함한다. 예를 들어, 예약접수를 제공하는 현존하는 온라인 컴퓨터 시스템은 위치(location), 주어진 목록과 고안된 도시의 중심 간의 방사형 거리, 또는 관광지, 순위에 고려되는 것과 같은 기준점(reference point)를 이용하여 순위를 산정한다.
일부 시나리오에서, 연산된 항목들의 순위는 탑 순위(top ranked) 항목들을 유명한 위치 또는 상대적으로 많은 항목들을 가지는 위치로 편향시킬 수도 있다. 그 결과, 넓은 지리적인 영역을 특정하는 쿼리에 응답하여, 상기 지리적인 영역이 많은 다른 위치를 포함함에도 불구하고, 소비자는 지리적으로 다양하지 않은, 예를 들어, 밀집된 특정 위치를 제공받을 수도 있다. 유사하게, 위치를 특정하는 쿼리에 응답하여, 소비자는 상기 쿼리에 특정된 위치와는 상이한 유명한 위치로 편향된 항목을 제공받을 수도 있다.
온라인 예약접수 시스템은 사용자들이 상품 또는 서비스 목록, 다른 사용자에 의해 생성된 검색 항목들, 및 사용자들에게 흥미있는 예약접수 항목들을 생성하게끔 한다. 상기 온라인 예약접수 시스템은 검색기능을 포함하는데, 검색 쿼리에 응답하여 상기 검색 기능은 상기 검색 쿼리에 관련있다고 결정된 항목들을 식별한다. 관련성은 검색 쿼리에 특정된 위치에 관련된 항목들의 위치와 같은 요소들에 기초하여 결정될 수도 있다. 상기 항목들은 결정된 각 항목의 관련성에 기초하여 순위가 정해진다. 다양한 실시예에서, 탑 순위 항목들을 분산시키기 위해, 결정된 관련성에도 불구하고 탑 순위 항목들이 지리적 영역에 위치한 몇몇 위치의 항목들을 포함하도록 일부 항목들은 순위에서 승급될 수도 있다. 다른 실시예들에서, 일부 위치들은 다른 위치들보다 검색 쿼리에 더 관련있다고 결정된다. 이런 실시예들에서, 탑 순위 항목들이 적어도 검색 쿼리와 더 관련있다고 결정된 위치들의 일부 항목들을 포함하도록 일부 항목들은 순위에서 승급될 수도 있다.
본 발명은 첨부된 도면들과 함께 이해할 때, 발명의 상세한 설명 및 첨부된 청구항으로부터 더욱 용이하게 명백해지는 다른 장점들 및 특징들을 갖는다.
도 1은, 일 실시예에 따른, 위치 관련성 점수를 사용하여 상품 또는 서비스 항목의 순위를 정하는 온라인 예약접수 시스템을 위한 연산 환경의 블록도이다.
도 2는, 일 실시예에 따른, 위치 관련성 점수를 사용하여 상품 또는 서비스의 항목의 순위를 정하는 온라인 예약접수 시스템의 블록도이다.
도 3은, 일 실시예에 따른, 탑 점수(top scoring) 항목들을 분산시키기 위해 상품 또는 서비스 항목의 점수를 정하는 단계에 대한 흐름도이다.
도 4는, 일 실시예에 따른, 검색 쿼리 및 항목이 위치하는 지역의 관련성에 기초하여 항목들 순위를 정하기 위해 상품 또는 서비스의 항목들의 점수를 정하는 단계에 대한 흐름도이다.
시스템 개요(System Overview)
도 1은, 일 실시예에 따르면, 위치 관련성 점수를 사용하여 상품 또는 서비스 항목의 순위를 정하는 온라인 예약접수 시스템에 대한 연산 환경의 블록도이다. 도 1 및 다른 도면들은 동일한 구성요소 식별하기 위해 동일한 참조번호를 사용한다. "113A"와 같은, 참조 번호 뒤의 문자는 텍스트가 특정한 참조 번호를 가지는 구성요소를 명확하게 지칭하는 것을 나타낸다. "113"과 같은, 다음의 문자가 없는 식별번호는 참조 번호와 관련된 도면의 모든 구성요소를 지칭한다(예를 들어, 본문에서 "113"은 참조 번호 "113A" 및/또는 "113B"를 지칭한다).
네트워크(105)는 사용자(103)(예를 들어, 소비자)와 온라인 예약접수 시스템(111) 간의 커뮤니케이션 경로를 표현한다. 일 실시예에서, 상기 네트워크는 인터넷이다. 상기 네트워크는 또한 전용(dedicated) 또는 개인적인 커뮤니케이션 링크(예를 들어, 광대역 네트워크(wide area networks, WANs), 초광대역 네트워크(metropolitan area networks, MANs), 또는 필수적으로 인터넷의 부분이 아닌 국지 네트워크 (local area networks(LANs))일 수 있다. 상기 네트워크는 표준 커뮤니케이션 기술 및/또는 프로토콜을 사용한다.
클라이언트 장치(101)는 온라인 예약접수 시스템(111)과 상호작용하도록 사용자들(103)에 의해 사용된다. 클라이언트 장치(101)는 퍼스널 컴퓨터, 데스크탑 컴퓨터, 랩탑 컴퓨터, 노트북, 스마트 폰, 또는 이와 유사한 것과 같은 컴퓨터일 수도 있고 통합될 수도 있는 임의의 장치일 수 있다. 컴퓨터는 하나 이상의 대체적이고 특별한 목적의 프로세서, 메모리, 저장공간, 및 네트워킹 구성요소(무선 또는 유선 중 어느 하나)를 가지는 장치다. 상기 클라이언트 장치(101)는 예를 들어, 마이크로소프트의 윈도우와 호환되는 운영 체제, 애플 OS X 또는 iOS, 리눅스 배포판(Linux distribution), 또는 구글의 안드로이드 OS와 같은 운영체제(operating system)를 실행한다. 몇몇 실시예에서, 클라이언트 장치(101)는 마이크로소프트의 인터넷 익스플로러, 모질라의 파이어폭스, 구글의 크롬, 애플의 사파리 및/또는 오페라와 같은, 웹브라우저(1130)를 온라인 예약접수 시스템(111)과 상호작용하는 인터페이스로서 사용할 수도 있다. 다른 실시예들에서, 클라이언트 장치(101)는 온라인 예약접수 시스템(111)에 접근하기 위한 전용 어플리케이션을 실행할 수도 있다.
온라인 예약접수 시스템(111)은 사용자(103)에게 시각적인 기본 인터페이스를 형성하는 웹페이지 또는 다른 웹 콘텐츠를 제공하는 웹 서버(109)를 포함한다. 사용자(103)는 하나 이상의 웹 페이지에 접근하고, 상기 인터페이스에 의해 온라인 예약접수 시스템(111)에 데이터를 제공하는, 각각의 클라이언트 장치(101)를 사용한다.
온라인 예약접수 시스템(111)은, 예를 들어, 숙박업소 예약 시스템, 정찬(dining) 예약 시스템, 합승(rideshare) 예약 시스템, 소매 시스템, 기타 같은 종류의 것일 수도 있다. 더 일반적으로, 온라인 예약접수 시스템(111)은 사용자에게 소비자들이 할 수 있는 자원(resource)의 재고(inventory)에 접근을 제공한다. 현실세계에서, 자원의 물리적 위치는 소비자의 결정에 따라 자원을 소비(예를 들어, 구입, 임대 또는 기타 취득)하는 무형의 요인으로 간주된다. 일반적으로, 일부 지역에서 사용 가능한 자원은 다른 위치에서 사용할 수 있는 다른 동일한 자원보다 더 가치가 있다. 자원은 숙박업소, 음식점, 차량, 명소(예를 들어, 공연, 행사, 및 관광지), 쇼핑센터 및 기타 같은 종류를 포함한다. 예를 들어, 숙박시설을 제공하는 온라인 예약접수 시스템(111)에서 유명 인접 지역들의 숙박시설들은 어떤 인접 지역에 있는 다른 동일한 숙박시설에 비해 더 또는 덜 바람직할 수 있다. 주어진 인접 지역에는 더 재미있고, 더 권위있고, 더 안전하고 또는 소비자가 숙박시설을 선택할 때 더 중요한 것으로 간주하는 어떤 다른 특징들이 고려될 수도 있다.
일부 실시예에서, 온라인 예약접수 시스템(111)은 사용자(103) 간에 거래를 용이하게 한다. 예를 들어, 숙박업소 예약 시스템은 사용자(103)로 하여금 숙박업소의 다른 사용자에 의해 제공된 상기 숙박업소를 예약접수를 할 수 있게끔 한다. 합승 예약 시스템은 사용자(103)로 하여금 한 장소로부터 다른 장소로 탑승하는 예약접수를 할 수 있게끔 한다. 온라인 마켓 플레이스 시스템은 사용자(103)로 하여금 다른 사용자와 대면해서 상품 또는 서비스를 사고 및/또는 팔 수 있게끔 한다. 상기 온라인 예약접수 시스템(111)은 추가 구성요소 및 아래에 설명된 모듈로 구성된다.
온라인 예약접수 시스템 개요(Online Booking System Overview)
도 2는, 일 실시예에 따른, 장소 관련성 점수를 사용하여 상품 또는 서비스 항목의 점수를 정하는 온라인 예약접수 시스템의 블록도이다. 온라인 예약접수 시스템(111)은 데이터베이스(201), 항목 모듈(203) 검색 모듈(205), 예약접수 모듈(207), 리뷰 모듈(209), 및 랭킹 모듈(211)을 포함한다.
당업자는 온라인 예약접수 시스템(111)이 그 기능성(예를 들어, 소셜 네트워킹, 은행업무, 상업)을 위한 적절한 다른 모듈을 포함할 것이라 인식할 것이다. 그러나 본 발명에 직접적인 재료가 아니기 때문에, 여기에서 설명되지는 않는다. 나아가, 종래의 구성요소, 예를 들어 방화벽, 인증 및 암호화 시스템, 네트워크 관리 도구, 부하균형 등등 따위들은 본 발명의 재료가 아니기 때문에 설명되지 않는다. 온라인 예약접수 시스템(111)은 싱글 컴퓨터, 또는 클라우드 기반(cloud-based) 컴퓨터 구현들을 포함하는 컴퓨터 네트워크 사용하여 구현될 수도 있다. 바람직하게는, 상기 컴퓨터는 하나 이상의 고성능 컴퓨터 프로세스 및 메인 메모리를 포함하고, 리눅스 또는 그 변형과 같은 운영 체제가 동작하는 서버 클래스 컴퓨터이다. 본 명세서에 기재된 바와 같은 시스템(111)의 동작들은, 본 명세서에 기재된 기능들을 수행하도록 프로세서에 의해 비-일시적 컴퓨터 스토리지에 설치되어 실행되는 하드웨어에 의해 또는 컴퓨터 프로그램에 의해 제어될 수 있다. 상기 데이터베이스(201)는 비-일시적 컴퓨터 판독 가능한 저장 장치들과 데이터 액세스 및 검색에 적합한 데이터베이스 관리 시스템을 사용하여 구현된다. 상기 데이터베이스(201)는 관계형 데이터베이스(예를 들어, MySQL)와 같은, 데이터베이스 관리 시스템에서 구현된다. 상기 온라인 예약접수 시스템(111)은 네트워크 인터페이스 및 프로토콜, 데이터 입력을 위한 입력 장치, 디스플레이, 프린팅, 또는 데이터의 다른 프리젠테이션을 위한 출력 장치를 포함하는 여기에 설명된 동작들에 필요한 기타 하드웨어 구성요소들을 포함한다. 아래에서 명백해질 바와 같이, 상기 온라인 예약접수 시스템(111)의 동작 및 기능은 컴퓨터 시스템에 구현을 요구할 만큼 충분히 복잡하고 인간의 정신에서 현실적인 문제로 수행될 수 없다.
상기 항목 모듈(203)은 다른 사용자에게 구매 또는 렌트한 상품 또는 서비스를 나열(list)하기 위해 사용자 인터페이스 및 처리 로직(processing logic)을 제공하며, 그렇게 하기 위한 하나의 수단이다. 예를 들어, 상기 온라인 예약접수 시스템(111)이 숙박시설 예약 시스템이라면, 상기 항목 모듈(203)은 주택, 아파트, 콘도, 객실, 트리하우스(treehouses), 성, 텐트, 카우치(couches) 및 수면 공간과 같은 숙박시설을 나열하기에 적합한 사용자 인터페이스를 제공한다. 상기 온라인 예약접수 시스템(111)이 식당 예약 시스템이라면, 상기 항목 모듈(203)은 음식점, 유흥, 리조트 등의 가능한 예약을 나열하기 위한 사용자 인터페이스를 제공한다. 상기 온라인 예약접수 시스템(111)이 합승 예약 시스템이라면, 상기 항목 모듈(203)은 사용 가능한 승차들을 나열하기 위한 사용자 인터페이스를 제공한다.
상기 항목 모듈(203)은 제공되는 상품이나 서비스, 그것의 이용 가능성, 가격 위치, 시간 프레임(time frame) 및 다른 관련 요소들을 설명하는 항목을 사용자로부터 수신하도록 구성된다. 예를 들어, 숙박시설 예약 시스템에서, 항목은 숙박시설의 유형(예를 들어, 집, 아파트, 방 수면 공간, 기타), 숙박시설의 크기 표현(예를 들어, 평방 피트 또는 방의 개수), 상품 또는 서비스의 사용가능한 날짜들, 및 대여료(예를 들어, 박(per night), 주, 월 등)를 포함한다. 상기 항목 모듈(230)은 사용자가 사진과 다른 매체를 포함하는 상품 또는 서비스에 대한 추가 정보를 포함하게끔 할 수 있다. 항목의 상기 위치 정보는 물리적 위치 또는 실제 영역의 특정한 참조를 제공하고, 국가, 주, 도시 및 상기 항목의 인접 지역, 지리 좌표, 우편 주소, 또는 다른 적절한 위치 지정 정보를 포함할 수 있다. 상기 항목 모듈(203)은 외부의 사용 가능한 지리적 지도 정보를 이용하여 일 유형의 위치 정보(예를 들어, 우편 주소)를 다른 유형의 위치 정보(예를 들어, 국가, 주, 도시 및 인접지역)로 변환할 수 있다. 사용자 인터페이스 항목을 사용하여 생성된 항목들은 온라인 예약접수 시스템(111)에 의해 처리되고, 데이터베이스(201)에 저장된다.
일부 온라인 예약접수 시스템(111)에서, 일부 항목들은 일시적이고, 지정된 시간에서만 예약접수가 가능하고, 및/또는 사용자 항목에서 삭제될 수 있다. 상기 항목 모듈(203)은 데이터베이스(201)에 이러한 과거의 항목들, 이용할 수 없는 항목들을 저장한다. 상기 온라인 예약접수 시스템(111)은 항목들의 생성, 검색, 순위, 및 예약접수 항목에서 사용자의 행동들을 분석하기 위해 이러한 과거의 항목들을 사용한다. 과거의 항목들은 암호화될 수도 있고 그렇지 않으면 예약접수 시스템(111)의 운영자가 아닌 다른 사람이 이용할 수 없도록 보호될 수도 있다.
예약접수 모듈(207)은 사용자가 다른 사용자에 의해 생성된 항목들을 열람(view)하고 예약접수할 수 있도록 사용자 인터페이스 및 처리 로직을 제공한다. 예약접수 모듈(207)은 예약접수 사용자로부터 지불 정보를 수신하고, 항목 사용자들에게 결제를 안전하게 송신한다. 처리된 구입의 일부로서 송신된 모든 사용자 정보는 사용자의 개인 정보 보호를 위해 암호화된다. 예약접수가 완료되면, 상기 예약접수는 암호화되고, 데이터베이스(201)에 과거의 예약 정보로서 저장된다.
리뷰 모듈(209)은 항목에 대한 평가, 피드백, 및 다른 의견을 제공하는, 다른 사용자에 의해 제공되는 항목의 리뷰를 수신하는 사용자 인터페이스 및 처리 로직을 제공하며, 그렇게 하기 위한 하나의 수단이다. 완성된 리뷰는 항목의 예약접수에 관심이 있는 미래의 사용자가 항목을 평가하는 것을 상기하도록 항목과 함께 표시되거나 항목 내에 포함될 수 있다. 리뷰는 리뷰와 연관된 항목들과 함께 데이터베이스(201)에 저장된다. 상기 항목을 더 이상 사용할 수 없게 된 후에, 과거의 항목들과 마찬가지로, 과거 항목들의 리뷰를 데이터베이스(201)에 계속 저장할 수도 있다.
검색 모듈(205)은 검색 쿼리(search query)에 응답하여 항목들의 데이터베이스를 검색하기 위한 사용자 인터페이스 및 처리 로직을 제공하며, 그렇게 하기 위한 하나의 수단이다. 검색 모듈(205)의 사용자 인터페이스는 유형, 위치, 가격 등의 원하는 상품이나 서비스의 여러 가지 속성들을 특정하는 검색 쿼리를 수신하도록 구성된다. 상기 검색 모듈은, 클라이언트 장치의 사용자가 편리한 방법으로 상기 항목에 액세스할 수 있도록, 상기 검색 쿼리의 속성을 상기 데이터베이스(201) 내의 항목들과 일치(match)시키고, 상기 순위 모듈(211)을 이용하여 상기 항목의 순위를 결정하고, 클라이언트 장치로 순위가 정해진 항목 세트를 제공한다. 상기 검색 모듈(205)의 사용자 인터페이스는 순위 순서에 따라 순위가 정해진 항목들 세트를 표시할 수 있다.
구현에 따라, 검색 쿼리를 수신하기 위한 사용자 인터페이스는 검색 쿼리로서 입력되는 단일 텍스트 문자열만큼 허용하여 간략히 할 수도 있고, 검색 쿼리에 입력되는 여러 종류의 미리 지정된 및/또는 동적 입력 옵션을 허용할 수도 있다. 상기 사용자 인터페이스는 상기 검색 쿼리에 포함되는 위치의 특정을 제공한다. 상기 위치는 사용자가 검색을 수행하는데 사용하는 클라이언트 장치(101A)의 현재 위치가 자동으로 입력될 수도 있다. 또한, 사용자가 수동으로 검색 쿼리에 위치를 입력할 수도 있다. 상기 위치는 국가, 주(또는 지방, 지역, 영역, 영토 부서, 군 구역 또는 현 등 이에 상응하는 지역), 도시, 인접 지역의 사양 또는 지리적 좌표(예를 들어, 경도, 위도 등), 주소 및 우편 번호와 같은 다른 지정을 포함할 수 있다.
순위 모듈(211)은 적어도 검색 쿼리의 일부와 일치하는 항목들의 순위를 정하는 처리 로직을 제공하며, 그렇게 하기 위한 하나의 수단이다. 순위 모듈(211)은 검색 모듈(205)로부터의 검색 쿼리에 응답하여 항목들 세트를 수신하고, 항목들의 순위를 정하고, 검색 모듈(205)로 순위가 정해진 항목들 세트를 다시 제공한다. 순위 모듈(211)은 상기 검색 퀴리에 관련된 항목뿐만 아니라 순위 항목들에 대한 하나 이상의 시스템 선호도에 따라 수신된 항목들의 순위를 매긴다. 이러한 시스템 선호도는 사용자가 상기 검색 쿼리에 응답하여 분산된 항목들 세트를 수신하도록 탑 순위 결과들(top ranked results)을 분산시키는 것을 포함할 수도 있다. 여기서, 탑 순위 결과들(또는 탑 순위 항목들)은 사용자의 검색 쿼리에 응답하여 사용자에게 처음으로 표시되기 위해 제공되는 항목을 지칭한다. 탑 순위 결과들의 수는 클라이언트 장치(101)에서 동시에 사용자에게 표시될 수 있는 결과들의 수와 동일할 수도 있다. 또한, 탑 순위 결과의 수는 온라인 예약접수 시스템(111)에 의해 특정되거나, 상기 검색 쿼리에 응답하여 사용자가 열람하는 데 흥미있는 항목들의 수를 나타내는, 사용자에 의해 제공되는 변경 가능한 수와 동일할 수도 있다.
순위 모듈(211)은 항목들의 순위를 정하기 위해 상기 저장된 과거의 검색, 예약접수, 및 항목 정보를 사용한다. 이 작업을 용이하게 하기 위해, 상기 검색 모듈(205)과 예약접수 모듈(207)은 검색, 항목 브라우징(browsing) 및 예약접수 정보를 데이터베이스(201)에 저장한다. 이러한 과거 정보는 사용자마다, 웹 브라우징 세션 단위마다 저장되어, 상기 온라인 예약접수 시스템(111)에서 사용자의 상호작용들은, 입력되는 검색 쿼리들, 열람되는 항목들 및 작성된 예약접수들을 포함하여 함께 저장된다. 검색 쿼리들과 후속되는 예약접수들을 함께 저장하는 것은 특히 온라인 예약 접수 시스템(111)이 많은 상이한 사용자들에 걸쳐 유용한 통계들을 집계하도록 한다. 저장된 과거의 예약접수들 및 과거의 검색 쿼리들을 기초로 하는 예로, 온라인 예약접수 시스템(111)은 검색 쿼리를 입력한 사용자들에 의해 어떤 예약접수들이 만들어졌는지, 주어진 검색 쿼리(또는 그것의 일부)에 대한 결정을 할 수 있다. 온라인 예약접수 시스템은 반대로, 주어진 예약접수를 위해 사용자들에 의해 어떤 검색 쿼리들이 만들어지는지, 결정할 수 있다.
항목의 순위를 정하기 위해 과거의 검색, 예약접수 및 항목 정보를 사용함에 있어, 순위 모듈(211)은 어떤 과거의 기간을 사용할 수도 있다. 예를 들어, 순위 모듈(211)은 지난 1개월, 지난 3개월, 지난 6개월, 지난해, 모든 기간 또는 어떤 기간 사이에 발생한 항목, 예약접수 및 검색을 사용할 수도 있다. 또한, 순위 모듈(211)은 특정 기간의 항목, 예약접수 및 검색(예를 들어, 겨울 같은 특정 시즌 동안 발생, 또는 추수감사절 주말에 발생 등)을 사용할 수도 있다.
여기서 논의되는 시스템들은 사용자에 대한 개인 정보를 수집하거나, 개인 정보를 사용할 수도 있는 상황에서, 상기 사용자는 프로그램이나 특징이 사용자 정보(예를 들어, 과거의 항목, 과거의 검색 쿼리 및 과거의 예약접수를 유지할지 말지)를 수집 또는 저장할지, 상기 온라인 예약접수 시스템(111)으로부터 사용자에게 더 관련이 있을 수도 있는 컨텐츠를 수신할지 및/또는 어떻게 수신할지에 대해 제어할 수 있는 기회를 제공받을 수도 있다. 게다가, 개인 식별(personally identifiable) 정보가 제거되도록, 특정 데이터는 저장되거나 사용되기 이전에 하나 이상의 방법으로 처리될 수도 있다. 예를 들어, 개인 식별 정보는 사용자를 위해 결정될 수 없도록 처리될 수도 있다. 또는 사용자의 특정 위치가 결정될 수 없도록, 사용자의 지리적 위치는 위치 정보가 획득(예를 들어, 주소, 도시 또는 인접 지역)되는 장소로 개괄적으로 설명(generalized)될 수도 있다. 따라서, 사용자는 사용자에 대해 정보가 수집되는 방식 및 온라인 예약 시스템(111)에 의해 사용되는 방식을 제어할 수도 있다.
순위 모듈(211)은 검색 쿼리에 응답하여 검색 모듈(205)로부터 수신된 항목 세트 내의 각각의 항목에 대한 항목 점수를 연산하는 점수 모듈(213)을 포함하며, 그렇게 하기 위한 하나의 수단으로서. 상기 항목 점수는 다수의 상이한 요소에 기초할 수도 있다. 상기 상이한 요소는 온라인 예약접수 시스템(111)의 상이한 구현 사이에 차이가 있을 수도 있다. 예를 들어, 숙박 예약 시스템에 사용되는 요소는, 예를 들어, 합승 시스템에 사용되는 요소들과 다를 수도 있다. 사용되는 특정한 점수 함수(scoring function)는 전체 시스템(111)의 성질에 의존하고 따라서 달라진다. 적합한 점수 함수는 성분 요소의 조합으로부터 구성될 수 있는 어떤 점수 함수이다. 게다가 또한, 각각의 성분 요소는 개별적으로 정규화(normalized) 및/또는 표준화(standardized)될 수 있다. 순위 내의 한 요소는 위치 관련성 점수이다. 상기 위치 관련성 점수는 수신된 검색 쿼리 내에 특정된 실세계(real world) 위치와 비교해서 점수가 정해진 항목의 실세계 위치에 기초한다. 위치 관련성 점수의 결정은 아래에서 자세히 설명되어 있다. 다른 가능한 요소는, 예를 들어, 항목의 가격, 다른 사용자에 의해 제공된 항목 리뷰의 수 및 품질, 항목 내의 사진 품질, 성공적인 이전 예약접수 및 성공적이지 않은 이전 예약접수의 수, 리플 비율(reply rate), 검색 사용자의 행동에 관한 신호(검색으로부터 항목 열람 또는 예약접수하기 위한 항목 열람까지 검색해서 찾아가는 것과 같은), 항목이 소셜 네트워킹 시스템 소셜 그래프를 통해 검색자와 연관된 어떤 것을 포함한다.
위치 관련성(Location Relevance)
점수 모듈(213)은 순위 모듈(211)에 의해 순위가 정해진 다수의 항목들 각각에 대한 위치 관련성 점수를 연산한다. 주어진 항목(i)의 위치 관련성 점수는 도시 관련성 부분 점수(RC i ), 인접 관련성 부분 점수(RN i ), 및 거리 관련성 부분 점수(D i ) 중 적어도 하나에 기초하여 결정된다. 위치 관련성 점수(R i )의 결정을 위한 예시적인 공식은 상기 위치 관련성 점수(R i )에 기여할 수 있는 부분 점수들과 RC i , RN i , 및 D i 의 결정에 대한 별개의 설명들로 아래에 서술된다.
이러한 부분 점수들 각각을 결정하기 위해, 점수 모듈(213)은 검색 쿼리로부터 위치 정보를 지오코딩(geocoding)한다. 지오코딩은 위치 정보와 관련된 지리 좌표를 식별하는 프로세스이다. 지오코딩은 위치 정보로부터 쿼리 국가(QI*), 쿼리 도시(QC*), 및 어떤 경우에는 쿼리 주(QS*)(또는, 이에 상응하는 지역)를 생성한다. 여기서, 별표(*)는 점수 모듈(213)이 위치 관련성 점수(R i )의 값을 결정하는 중인 현재의 검색 쿼리를 나타낸다. 이는 도시(RC i ) 및 인접 관련성 부분 점수(RN i )를 결정하는데 사용되며 데이터베이스(201)에 저장된, 예약접수 및 과거의 검색 쿼리로부터 쿼리 국가(QI), 쿼리 주(QS), 및 쿼리 도시(Qc)에 대해 구별한다.
도시 관련성(City Relevance)
도시 관련성 부분 점수(RC i )는 쿼리 도시(QC*), 쿼리 국가(QI*), 및 (경우에 따라) 쿼리 주(QS*)를 포함하는 검색 쿼리를 입력하는 사용자에게 도시(C i )의 관련성을 나타낸다. 만약 사용자가 쿼리 도시(QC*)를 입력한 경우, 사용자가 그 쿼리 도시에 특별히 관심이 있다는 것처럼 분명히 보일 수도 있는 반면에, 이 경우가 필연적인 것은 아니다. 종종 사용자는 대도시들의 이름만을 알고 있고, 큰 도시 근처에 위치한 작은 도시는 알지 못한다. 예를 들어, 쿼리 도시(QC*)가 "산타크루즈"인 경우, 사용자는 산타크루즈에 있는 항목을 찾으려는 것이 필연적인 것은 아니다. 예를 들어, 사용자는 "산타크루즈"만을 알고 있을 뿐, 유명한 리조트 타운인 앱토스(Aptos) 및 캐피톨라(Capitola)와 같은, 다른 근처의 도시를 알지 못할 수도 있다. 이는 매우 일반적인 문제이며, 사용자는 사실상 흔히 방문하는, 보통 맨하튼, 로스앤젤레스, 샌프란시스코 등과 같은 대도시의 이름만을 알고 있으므로, 근처의 타운 및 도시의 이름은 알지 못한다. 이러한 도시 관련성 부분 점수는, 특정 검색 쿼리로 사용자가 실제 예약접수한 도시에 대한 과거의 정보를 사용하여 근처 도시에 대한 사용자의 정보 부족을 조절한다. 매우 넓은 의미에서, 도시 B에 대해 검색하는 경우, 사용자가 더 자주 주어진 도시A에 예약접수 할수록, 도시 A는 도시 B에 대한 검색 쿼리와 더욱 관련있게 된다. 도시 관련성 부분 점수(RC i )는 이러한 관련 관계를 정확하게 정량화한다.
점수 모듈(213)은 하나 또는 그 이상의 도시(*)에 대한 도시 관련성 부분 점수(RC i )를 결정한다. 항목 도시(C i )내에 주어진 항목(i)을 위해, 상기 모듈(213)은 도시(C i )에 대한 도시 관련성 부분 점수(RC i )를 항목(i)에 할당한다. 도시 관련성 부분 점수(RC i )를 결정하기 위해 점수 모듈(213)은, 동일한 이름을 공유하는 세계의 다른 도시와 구별하도록, 쿼리 도시(QC*)를 고유하게 식별하기 위해 쿼리 국가(QI*) 및 쿼리 주(QS*)를 사용한다. 예를 들어, 스프링필드 미주리와 일리노이의 스프링필드는 스프링필드라는 동일한 도시 이름을 공유하지만, 다른 지역에 위치한다. 지오코딩된 쿼리 국가(QI*) 및 어떤 경우에는 쿼리 주(QS*)의 사용은 쿼리 도시(QC*)의 고유 식별을 가능하게 한다.
점수 모듈(213)은 쿼리 도시(QC*)로부터 임계 거리 내(예를 들어, 몇 킬로미터 내)에서 이용가능한 항목들(L) 세트를 식별한다. 이는 쿼리 도시(QC*) 내 항목들을 포함하고, 또한 이웃 주와 국가에 있을 수 있는 인근 다른 도시의 항목들을 포함할 수도 있다. 이것은 현재 이용가능한 항목들만을 포함할 수도 있고, 또한 더 이상 이용할 수 없는 과거의 항목들을 포함할 수도 있다. 이하의 설명에서, 문맥으로부터 명백한 바와 같이, L은 이 세트 내의 항목들의 총 수를 지칭한다. 항목들(L)은 데이터베이스(201)로부터 얻을 수 있다.
점수 모듈(213)은 항목(L) 세트를 서브세트들로 세분한다. 각 도시에 대한 항목 서브세트(Lc) 하나는 상기 세트(L) 내의 항목들을 가진다. 다음 설명에서, 문맥으로부터 명백한 바와 같이, Lc는 각 도시의 항목들의 총 수를 지칭한다. 쿼리 도시(QC*)에 대한 항목들의 서브세트가 Lc*이다. 각 도시(Lc) 및 세트(L) 내의 항목들의 수는 도시 관련성 부분 점수(RC i )를 대도시나 소도시로 편향시키는 것을 피하기 위해, 도시 관련성 부분 점수를 정규화하는데 유용하다.
점수 모듈(213)은 동일한 QI, QS, 및 QC를 식별하기 위해 쿼리 국가(QI*), 쿼리 주(QS*), 및 쿼리 도시(QC*)를 사용한다. 과거의 검색 쿼리들의 상당수는, 동일한 웹 브라우징 세션 동안, 사용자에 의해 검색 쿼리가 입력된 것에 후속으로 과거의 예약접수들이 발생하는 것을 야기하게 된다. 그러나, 위에서 언급한 것처럼 그 이전 사용자들이 과거의 검색 쿼리들의 쿼리 도시들(QC)과 같은 도시의 항목들을 예약접수하는 것으로 종료되는 것이 필연적이진 않다. 예를 들어, 자신의 쿼리 도시로 "산타크루즈"를 검색하는 많은 사용자는 근처의 앱토스에 예약접수를 종료할 수도 있다.
데이터베이스(201)에 과거의 예약접수들을 사용하여, 상기 모듈(213)이, 사용자가 쿼리 도시(QC*), 쿼리 국가(QI*), 및 쿼리 주(QS*)(해당되는 경우)를 이용한 검색 후에 항목의 예약접수를 종료한 각각의 도시 항목(C i ) 내의 예약접수들 (BQ(C i ))의 총 수를 식별한다. 이러한 도시의 예약접수들은 주어진 쿼리 도시(QC*), 쿼리 국가(QI*), 및 쿼리 주(QS*)(역시 해당되는 경우)에서 과거의 예약접수들(BQT,)의 수를 결정하기 위해 집계된다. 예를 들어, "산타크루즈"에 대한 검색은 산타크루즈, 앱토스 캐피톨라 및 소퀄(Soquel)에서의 예약접수들을 포함할 수도 있다.
점수 모듈(213)은 추가 수량들을 유도하기 위해 위에서 식별된 수량들을 사용한다. 상기 모듈(213)은 사용자가 쿼리 도시(QC*), 쿼리 국가(QI*), 및 쿼리 주(QS*)(해당되는 경우)를 포함하는 검색 쿼리를 입력할 경우 주어진 항목(i)의 도시(C i )에 항목을 예약접수할 확률(P(BQ(C i ) | BQT))을 식별한다. 이러한 수량은 사용자들이 도시 B를 검색한 후에 도시 A를 예약접수하는 일반적으로 발생할 수도 있으므로, 이는 과거에 측정된 행동을 반영한다. 이러한 확률은 백분율/비(BQ(C i )/BQT)와 같이 계산될 수도 있다. 이러한 수량은 쿼리 도시(QC*)가 항목 도시(C i )에 일치하는 것으로 대부분의 항목에서 높게 예측된다. 그러나, 이는 쿼리 도시(QC*)와 일치하지 않는 다른 많은 도시 항목(C i )에 대해 0이 아닌(non-zero) 것으로도 예측된다.
점수 모듈(213)은 사용자가 도시(C i )에서 발생하는 과거의 예약접수들(B(C i ))의 총 수에 비례하여, 항목(i)의 도시(C i )에 예약할 확률(P(Bq(C i )|B(C i )))을 식별한다. 이러한 확률은 역시 백분율/비(Bq(C i )/B(C i ))와 같이 계산될 수도 있다. 유사하게, 이러한 수량은 쿼리 도시(QC*)가 항목 도시(C i )에 일치하는 것이 대부분의 항목에서 높게 예측되나, 이는 또한 쿼리 도시(QC*)와 일치하지 않는 다른 많은 도시 항목(C i )에 대해 0이 아닌 것으로도 예측된다.
도시 관련성 부분 점수(RCi)를 결정하기 위해, 제2 확률(P(Bq(C i )|B(C i )))이 이전 단락의 제1 확률(P(BQ(C i ) | BQT))과의 균형을 위해 사용될 수 있다. 예를 들어, 제1 확률(P(BQ(C i ) | BQT))은, 사람들이 한 도시(예를 들어, 산타크루즈, 뉴욕)를 검색하지만 다른 도시(앱토스, 뉴어크(Newark))로 예약접수를 종료할 확률을 정량화한다. 도시들의 차이점에도 불구하고(예를 들어, 앱토스는 뉴어크보다 작고 사용자에게 덜 알려짐), 이러한 확률은 어떤 경우에는 앱토스와 뉴어크 모두 비교될 수도 있다. 그러나, 제2 확률(P(Bq(C i )|B(C i )))은 도시들의 이러한 두 유형을 구분할 수도 있다. 예를 들어, 앱토스는 산타크루즈 주변의 작은 위성 도시 중 하나이므로, 제2 확률(P(Bq(C i )|B(C i )))은 산타크루즈를 검색한 앱토스 예약자의 의미있는 수를 나타내는 것일 수도 있다. 좀 더 구체적으로, 이는 산타크루즈에 의존하는 앱토스의 예약접수들에 대한 검색을 나타낸다. 반대로, 제2 확률(P(Bq(C i )|B(C i )))은 뉴욕을 검색(제1 확률(P(BQ(C i ) | BQT))에 주어진 바와 같이)하긴 하였으나 뉴어크를 예약접수하는 비교적 적지 않은 사람들의 예약접수들의 총 수를 나타낼 수도 있다. 서로 다른 두 도시 사이의 제1 확률은(여기에선 앱토스와 뉴어크) 비교될 수도 있지만, 제2 확률은 가능하지 않을 수도 있다. 따라서, 도시 관련성 부분 점수(RCi)에 모든 확률을 통합하여 사용자의 지식, 검색 및 예약접수 행동의 보다 정확한 평가를 제공한다.
점수 모듈(213)은 P(BQ(C i ) | BQT), P(Bq(C i )|B(C i )), LC i , 및 LC i / L 중 적어도 하나를 사용하여 도시(C i ) 내 주어진 항목(i)에 대한 도시 관련성 부분 점수(RC i )를 결정한다. 하나의 일반적인 실시예에서, 만약 쿼리 도시(Qc*))가 항목의 도시(C i )와 동일한 경우, 도시 관련 부분 점수(RC i )는 P(BQ(C i ) | BQT)와 LC i 에 기초하고, 반면 쿼리 도시(Qc*)가 항목의 도시(C i )와 동일하지 않은 경우(Qc*C i , LC i LC*), 도시 관련성 부분 점수는 위의 네가지 값 모두에 기초한다.
일 특정 실시예에서, 도시 관련성 부분 점수(RC i )는 아래 식에 따라 결정된다.
Figure pat00001
Figure pat00002
여기서, N i 는 아래와 같이 주어지고,
Figure pat00003
여기서 f 는 1(예를 들어, f = 2인 경우, 1/f는 제곱근 연산)보다 큰 절대값이고, M
Figure pat00004
, 로 정규화된 점수이고, W i 는 아래와 같이 주어진 추가 가중치 계수이다.
Figure pat00005
일반적으로, 위에서 서술한 실시예들은 쿼리 도시(QC*)가 항목의 도시(C i )와 일치하는지 여부에 따라 달라지는 상이한 값(RC i )을 반환한다. 만약 그들이 일치한다면, 상기 항목은 RC i 가 N i 의 값을 가질 것이다. 만약 그들이 일치하지 않는다면, 추가 가중치 계수는 RC i 값이 N i 로부터 변경된 결과가 야기된다.
일반적으로, 이 추가 가중치 계수(W)는 다른 상황들에서 서로 다른 영향을 미칠 것이다. 상기 가중치 계수는 일반적으로 쿼리 도시를 사용하는 검색에 후속하여(예를 들어, 동일 브라우징 세션 동안) 자주 예약접수되는 항목들에서, 다른 더 크고, 더 잘 알려진 도시에 비해 작은 도시에 대해서 더 크다. 위에서 소개된 예를 사용하면, 만약 사용자가 산타크루즈를 검색한 후에 자주 예약접수된 것으로 간주되는 항목들에 앱토스가 포함되는 경우, 앱토스 항목에 대한 상기 가중치 계수는 상대적으로 높아져, 궁극적으로 RC i 를 높게 하고, 그렇게 함으로써 다른 곳보다 산타크루즈의 검색 결과 내에서 앱토즈 항목은 더 높은 순위로 정해진다.
한편, 가중치 계수는 일반적으로 다른 쿼리 도시를 사용하는 검색 쿼리에 후속하여 자주 예약접수되지 않는 항목들에서, 다른 더 큰 도시들에 대해 더 작아진다. 예를 들어, 사용자가 뉴욕을 검색한다면, 사용자는 단지 허드슨 강을 건너면 있는 뉴저지의 도시들에 예약접수를 자주 완료하지는 않으므로, 뉴저지 항목에 대한 가중치 계수는 상대적으로 낮아지며, 이는 를 낮아지게 하고, 그렇게 함으로써 뉴저지 항목은 뉴욕 내의 항목과 비교하여 높은 순위가 정해지지 않는다.
인접 관련성(Neighborhood Relevance)
사용자들은 종종 예약접수하고자 하는 위치의 유형(예를 들어, 일반적인 장소) 중 단지 하나의 대표 위치를 예약접수하는 항목들로 찾는다. 예를 들어, 도시의 흥미로운 부분에 위치한 레스토랑은 고속도로에서 멀리 떨어져 격리된 레스토랑보다 더 바람직할 수도 있다. 인접 관련성 부분 점수(RN i )는 사용자와 하나의 항목 사이의 거리가 불충분한 경우, 그렇지 않은 유사한 항목을 구별하는 무형의 가치를 정량화하는 방법 중 하나이다. 인접 관련성 부분 점수(RN i )는 사용자들이 실제로 예약접수한 인접 지역에 대한 과거의 정보 및/또는 인접 지역항목이 위치했던/위치한 인접 지역에 대한 과거의 정보를 사용하여 이러한 무형의 가치들을 정량화한다. 매우 넓은 의미에서, 사용자가 다른 인접 지역에 비해 주어진 인접 지역을 더 자주 예약하는 경우, 해당 인접 지역에 대한 상기 인접 관련성 부분 점수(RN i )는 더 높아진다. 더욱이, 다른 인접 지역의 항목들의 수를 카운트하거나 비례하게 하여, 주어진 인접 지역 내의 항목들의 수는, 더 많거나 더 적은 항목들을 가지는 인접 지역을 향해 또는 상반되게 편향되는 것을 피하기 위해 인접 지역에 대한 인접 관련성 부분 점수(RN i )를 정규화하는 요소로 사용될 수도 있다.
점수 모듈(213)은 쿼리 도시(QC*) 내의 하나 이상의 인접 지역들에 대한 인접 지역 관련성 부분 점수를 결정한다(RN i ). 인접 지역 항목(N i )에 주어진 항목(i)에 대해, 상기 모듈(213)은 인접 지역(Ni)에 대한 인접 관련성 부분 점수(RN i )를 항목(i)에 할당한다.
인접 관련성 부분 점수(RN i )를 결정하기 위해, 점수 모듈(213)은 항목(i)에 포함된 도시(LC*)에서 이용가능한 항목들 세트를 식별하기 위해 쿼리 국가(QI*), 쿼리 주(QS*), 및 쿼리 도시(QC*)를 사용한다. 이는 현재 이용가능한 항목들뿐만 아니라, 더 이상 이용할 수 없는 과거의 항목들을 포함할 수도 있다. 이하의 설명에서, 문맥으로부터 명백한 바와 같이, LC 는 이 세트 내의 항목들의 총 수를 지칭한다. 상기 항목들(LC)은 데이터베이스(201)로부터 획득된다. 점수 모듈(213)은 상기 항목들(LC) 세트를 서브세트들로 세분한다. 항목들(LN)의 하나의 서브세트는 쿼리 도시(QC*)의 각 인접 지역에 대한 서브세트이다. 이하의 설명에서, 문맥으로부터 명백한 바와 같이, LN 은 각 인접 지역의 항목들의 총 수를 지칭한다. 점수 모듈(213)은 각 항목이 위치하는 인접 지역을 식별하기 위해 데이터베이스(201)의 항목에 액세스하여 인접 지역에서 항목들(LN)의 총 수를 결정한다. 이 정보는 항목 사용자에 의해 제공되어 있을 수도 있다. 또한, 인접 지역 정보는 외부 소스에 의해 액세스되거나 제공될 수도 있다. 예를 들어, 외부에 생성된 데이터베이스는 위치와 인접 지역 사이의 상관관계를 제공할 수도 있다.
점수 모듈(213)은 인접 지역(N i ) 내 항목들(LN)의 수, 상기 도시(C i ) 내에 예약접수(BC)들의 총 수 대비 상기 인접 지역(N i ) 내에 항목(BN)을 예약접수할 확률(P(BN (N i )| BC)) 및 상기 도시(C i ) 내에 항목(LC)의 총 수 대비 인접 지역(N i )(LN(N i )에 의해 주어진) 내에 항목(i)에 해당할 확률(P(LN(N i ) | LC(C i ))) 중 적어도 하나에 기초하여 인접 관련성 부분 점수(RN i )를 결정한다.
점수 모듈(213)은 데이터베이스(201)로부터 과거의 예약접수들에 액세스하여 확률(P(BN(N i ) | BC(C i )))을 결정한다. 상기 모듈(213)은, 포함되는 모든 인접 지역들에 걸쳐 상기 도시(BC) 내의 항목들의 총 수뿐만 아니라, 도시 내의 각 인접 지역(BN) 내의 항목들의 총 수도 식별한다. 상기 확률(P(BN(N i ) | BC))은 마찬가지로 백분율/비(BN(N i )/BC(C i ))와 같이 계산될 수도 있다.
점수 모듈(213)은 데이터베이스(201)로부터 현재 이용가능한 항목들 및/또는 과거의 항목들에 액세스하여 확률(P(LN(N i ) | LC(C i )))을 결정한다. 상기 모듈(213)은, 포함되는 모든 인접 지역들에 걸쳐 상기 도시(LC) 내의 항목들의 총 수뿐만 아니라, 도시 내의 각 인접 지역(LN) 내의 항목들의 총 수도 식별한다. 상기 확률(P(LN(N i ) | LC(C i )))은 마찬가지로 백분율/비(LN(N i ) / LC(C i ))와 같이 계산될 수도 있다.
일 실시예에서, 점수 모듈(213)은 인접 관련성 부분 점수(RN i )를 아래의 식에 따라 결정한다.
Figure pat00006
Figure pat00007
일반적으로, 이 인접 관련성 부분 점수(RN i )의 계산은, 동일한 도시에 다른 인접 지역보다 더 빈번하게 예약접수되는 인접 지역에 위치한 항목들과 더 자주 관련성을 나타내는 항목들이 더 높은 값을 가지는 결과가 될 것이다. 다른 지역들 대비 주어진 지역에 대한 항목들 및 예약접수들의 증가된 빈도는 소비자들에게 그 인접 지역의 무형 가치가 더 높은 수준이라는 것을 시사한다.
거리 관련성(Distance Relevance)
일반적으로, 거리 관련성 부분 점수(D i )는 거리의 비선형 함수를 사용하여 더 먼 곳의 순위가 낮아지도록, 검색 쿼리의 위치와 항목의 위치 사이의 거리를 정량화한다. 상기 비선형 함수가 사용되는 이유는, 거리가 멀수록 사용자들에게 불편함 또는 비용이 증가한다는 간단한 선형 함수보다 도입되기 때문이다; 다시 말해서, 간단하게 바람직한 위치보다 10 마일 떨어지는 것은 5마일 떨어지는 것보다 2배 불편하다. 일 실시예에서, 거리(d)는 지리적 범위 또는 인구 밀도에 의해 결정되는 것으로서, 쿼리 도시 또는 인접 지역의 중심으로부터 결정된다. 다른 실시예에서, 외부 데이터 소스는 거리(d)로 결정된 지리적 위치를 제공할 수도 있다. 다른 실시예에서, 거리(d)는 항목(i)과 사용자의 현재 위치, 예를 들어 클라이언트 장치(101)(예를 들어, 스마트폰)에 의해 제공되는, 사이의 거리를 기초로 측정된다.
거리 관련성 부분 점수(D i )는 S자형(sigmoidal), 지수형, 계단형, 구분적(piecewise) 선형, 또는 그 밖의 다른 형태의 함수일 수도 있다. 일 실시예로서, D i 는 아래의 식에 따라 결정된다.
Figure pat00008
여기서, d 는 쿼리에 지정된 위치와의 거리이고, a, b 및 c는 변경가능한 상수이다.
위치 기반 결과 분산(Location-Based Result Diversification)
검색 쿼리는 국가와 같이 도시들, 구역들, 또는 구(borough)들과 같이 다수의 지역을 가지는 지리적 영역(geographic area)을 특정할 수도 있다. 일부 시나리오에서, 넓은 지리적 영역을 특정하는 검색 쿼리를 제공하는 사용자는 상기 지리적 영역 내의 몇몇 지역들에 위치하는 항목들을 열람하는데 흥미가 있다. 그러나, 점수 모듈(213)이 이런 쿼리(예를 들어, 위에서 언급된 점수 기술을 사용하는)에 응답하여 항목들의 점수를 정하는 경우, 많은 유명한 지역들 내의 많은 항목들이 덜 유명한 지역들 내의 가장 높은 점수보다 더 높은 점수를 가질 수도 있다. 이런 격차는 다수의 요소들의 결과일 수도 있고, 상기 요소들의 예는 덜 유명한 지역들 대비 유명한 지역들 내에 항목들의 총 수 또는 덜 유명한 지역들 대비 유명한 지역들에서 만들어진 이전의 예약접수들의 수의 차이를 포함한다. 예를 들어, 만약 검색 쿼리가 다수의 도시들을 가지는 지리적 영역으로 프랑스를 특정한다면, 유명한 프랑스 도시들 중 하나인 파리의 많은 항목들은 덜 유명한 프랑스 도시들 중 하나인 리옹(Lyon)의 가장 높은 점수 항목보다 높은 점수를 가질 수도 있다. 항목들은 항목들의 점수에 기초하여 결정된 순위 순으로 표시되기 때문에, 이 점수 격차는, 유명한 지역들의 항목들이 덜 유명한 지역들의 항목들을 밀집(crowd)하거나, 덜 유명한 지역들 내의 주어진 항목들이 주어지는 공간이 조금 또는 전혀 표시되지 않는 결과를 야기한다. 따라서, 위에서 설명한 위치 관련성 계산을 사용하여, 지리적 영역 내의 많은 상이한 지역들로부터의 항목들을 열람하는 것에 흥미가 있는 사용자가 적어도 초기에는 유명한 지역들의 항목들만을 제공받을 것이다.
지리적 영역에 대한 탑 순위 항목들(top ranked listings)내의 지역 분산의 부족에 대항(counter)하기 위해, 분산(diversification) 모듈(215)은, 점수에도 불구하고 상기 탑 순위 항목들이 상기 지리적 영역 내의 몇몇 지역들의 항목들을 포함하도록 상기 순위 내의 항목들을 승급시키고, 그렇게 하기 위한 하나의 수단이다. 동작 중에, 검색 쿼리가 다수의 지역들을 가지는 지리적 영역을 특정하는 경우, 점수 모듈(213)은 상기 검색 쿼리에 기초하여 결정된 점수가 정해진 항목들 세트를 분산 모듈(215)로 송신한다. 분산 모듈(215)에 의해 수신된 상기 점수가 정해진 항목들 세트는 이미 상기 항목들의 점수에 따른 순서로 되어있을 수도 있다. 위에서 설명한 것처럼, 점수 모듈(213)은, 위치, 가격, 항목 리뷰, 항목 품질, 및 과거의 예약접수들과 같은, 다수의 상이한 요소들에 기초하여 점수 모듈(213) 내에 구성된 점수 함수에 의해 결정된 각 항목에 대한 점수를 연산한다.
점수가 정해진 항목들 세트를 수신하는 단계에 응답하여, 분산 모듈(215)은 검색 쿼리에 의해 특정된 지리적 영역 내의 지역들을 식별한다. 데이터베이스(201) 내의 이용가능한 지리적 데이터에 기초하여 상기 지역들이 식별될 수도 있다. 또한, 상기 지역들은, 점수가 정해진 항목들 세트가 위치하는 특별한 지역들로 식별될 수도 있다. 예를 들어, 만약 점수가 정해진 항목들이 파리에 위치한 17개, 니스(Nice)에 위치한 6개, 리옹에 위치한 2개 항목들을 포함한다면, 분산 모듈(215)에 의해 식별된 지역들은 파리, 니스, 및 리옹을 포함한다. 분산 모듈(215)은 적어도 승급되려는 항목들의 식별 지역들(여기서는 "승급되려는 지역들"로 지칭되는)의 서브세트를 선택한다. 상기 지역에 항목들의 수 및 과거의 예약접수 정보 또는 명소(attraction), 인구 및 기후 같은 상기 지역에 대하여 잘 알려진 사실들과 같은, 데이터베이스(201) 내의 이용가능한 정보에 기초하여, 분산 모듈(215)은 각각의 승급되려는 지역을 선택할 수도 있다. 일 실시예에서, 위에서 요약된 도시 관련성 연산에 의해 결정된 것처럼, 승급되려는 지역들은 검색 쿼리에서 상기 지역의 관련성에 기초하여 선택될 수도 있다.
탑 순위 항목들의 분산을 위하여, 분산 모듈(215)은, 상기 탑 순위 항목들이 적어도 승급되려는 지역들의 서브세트 각각이 위치되는 항목들을 포함하도록 상기 항목들의 점수를 수정한다. 동작 중에, 분산 모듈(215)은 탑 순위 항목들을 분산시키기 위해 승급되는 항목들의 총 수(여기서는 "승급 수(promotion number)"로 지칭되는)를 결정한다. 상기 승급 수는 승급되는 지역들의 수 또는 임계점 이상의 과거 예약접수를 가지는 승급되려는 지역들의 수와 동일할 수도 있다. 대체가능한 실시예에서, 상기 승급 수는 승급 계수(promotion factor)를 곱한, 승급되려는 지역들의 수와 동일할 수도 있다. 승급 계수는 승급되려는 지역들 각각으로부터 승급되려는 항목들의 수를 나타내는, 1보다 큰 정수이다. 이는 각각의 승급되려는 지역들의 적어도 하나의 항목이 탑 순위 항목들에 포함되도록 보장한다. 다른 대체가능한 실시예에서, 승급 수는 표시 페이지(display page)에 한꺼번에 표시될 수 있는 항목들의 수의 함수로 연산될 수도 있다. 예를 들어, 만약 표시 페이지가 10개 항목들이 한꺼번에 표시되도록 허용한다면, 승급 수는, 표시된 10개 중 적어도 5개 항목들이 상이한 지역들에 위치하도록, 10의 절반, 즉 5일 수도 있다.
연속하여 분산 모듈(215)은 점수가 정해진 항목들 세트를 횡단(traverse)하고, 적어도 이러한 항목들이 위치하는 지역들에 기초한 이러한 항목들의 서브세트의 점수(그리고, 그 결과, 순위들)를 수정한다. 점수들이 수정된 항목들의 수는 승급 수와 동일하다. 연속하여 점수가 정해진 항목들 세트를 횡단하는 동안, 분산 모듈(215)은 이미 승급된 항목들의 수, 이미 승급된 항목들의 지역들의 수 및 가장 최근에 승급된 항목의 순위를 추적한다. 분산 모듈(215)은 현재 탑 순위 항목들이 위치한 지역을 추적할 수도 있다. 이 탑 순위 항목이 분산 처리에서 순위가 변하지 않을 수도 있음에 불구하고, 탑 순위 항목은 승급하려는 항목들의 수 및 이미 승급된 항목들의 지역들의 수를 추적할 목적으로 승급이 고려될 수도 있다. 일 실시예에서, 점수가 정해진 항목들 세트는 배열로서 표현되고, 주어진 항목의 순위는 상기 배열의 인덱스(index)이다. 상기 인덱스는 그 순위를 가지는 항목의 점수를 결정하는데 사용될 수도 있다.
동작 중에, 점수가 정해진 항목들 세트 내의 각 항목에 대해, 분산 모듈(215)은 항목이 위치하는 지역을 결정한다. 만약 지역이 승급되려는 지역들 중 하나라면, 분산 모듈(215)은 이미 승급된 항목들의 수가 승급 수와 동일한지, 즉 승급 수가 소진되었는지, 결정한다. 만약 그렇다면, 다른 항목들은 승급될 수 없고 분산 모듈(215)은 점수가 정해진 항목들 세트를 횡단하는 것을 멈춘다.
만약 승급 수가 소진되지 않았다면, 분산 모듈(215)은 현재 항목이 위치한 지역의 항목이 이미 승급되었는지 결정한다. 만약 상기 지역의 항목이 이미 승급되었다면, 분산 모듈(215)은 항목들이 승급되려는 항목들 모두 승급된 경우에 한해 승급을 진행한다. 이는, 승급 수가 승급되려는 지역들의 수보다 많은 것과 같은(예를 들어, 승급 계수가 1보다 큰), 동일한 지역에 하나 이상의 항목이 승급될 수도 있는 시나리오를 발생시킨다. 만약 상기 지역의 항목이 이미 승급되지 않았다면, 분산 모듈(215)은 항목을 승급하게 될 수 있다.
대체가능한 실시예에서, 특정 지역의 항목이 승급되어야만 하는지 결정하는 상이한 기술이 사용될 수도 있다. 예를 들어, 분산 모듈(215)은 현재 탑 순위 항목들이 위치한 지역들("현재의 지역들(current regions)") 과 승급되려는 지역들을 비교할 수도 있다. 만약 현재 평가되는 중인 항목이 현재의 지역들이 아닌, 승급되려는 지역들에 해당된다면, 상기 항목은 승급되어야만 한다
항목을 승급시키기 위해, 분산 모듈(215)은 상기 항목들의 순위를 가장 최근에 승급된 항목의 순위 바로 아래가 되도록 상기 항목의 점수를 재연산한다. 바람직한 실시예에서, 분산 모듈(215)은 아래의 함수에 따라 점수를 재연산한다.
Figure pat00009
여기서,
Figure pat00010
는 승급되고 있는 현재 항목에 대한 재연산된 점수,
Figure pat00011
는 가장 최근에 승급된 항목의 순위,
Figure pat00012
는 가장 최근에 승급된 항목의 점수 및
Figure pat00013
는 가장 최근에 승급된 항목 바로 아래 순위의 항목의 점수이다. 일 실시예에서, 만약 점수가 정해진 항목들 세트 내에 제1 항목이 승급되려는 지역에 위치한다면, 그 항목의 점수는 이미 어느 항목보다 가장 높은 점수를 가지는 항목으로 수정되는 것이 아니라 승급되게 수정이 고려되고, 그러므로 그 항목은 탑 순위 항목들 내로 된다.
분산 모듈(215)은 위에서 이미 설명된 방법에 의해 상기 항목들 전부를 횡단하거나 승급 수가 소진될 때까지 점수가 정해진 항목 세트를 횡단한다. 상기 횡단(traversal) 결과가, 모두는 아니더라도, 적어도 승급된 지역들 중 일부에 위치한 탑 순위 항목들 세트의 재-순위이다. 사용자에게 표시되기 위해 재-순위 항목들 세트는 순위 모듈(211)에 의해 검색 모듈(205)로 송신된다.
동작의 예(Operational Example)
분산 모듈(215)의 동작의 예는 아래와 같다. 검색 쿼리가 "국가=프랑스"인 경우, 점수 모듈(213)은 다음의 점수가 정해진 항목들 세트를 분산 모듈(215)로 송신한다. 도시된 것처럼, 항목들의 상대 점수들에 따라 항목들이 순위가 정해진다.
Rank Listing ID Score Region
1 4235 96 Paris
2 2354 84 Paris
3 6453 82 Paris
4 3426 79 Paris
5 9893 77 Lyon
6 3631 70 Lyon
7 3522 65 Nice
8 8729 62 Bordeaux
분산 모듈(215)은 승급되려는 항목들로부터, 프랑스 내 도시들을 선택한다. 몇몇 요소들에 기초하여 결정된 그들의 관련성에 기초하여, 분산 모듈(215)은, 승급되려는 도시들로서, 순위 순으로 파리, 니스 및 리옹을 선택한다. 분산 모듈(215)은 승급 수를 결정한다. 이 예에서, 승급 수는 선택된 도시들의 수, 즉 3과 동일하게 결정되고, 승급 계수는 1이다. 승급 수를 결정하는 다른 메커니즘들은 위에서 설명되어 있다. 분산 모듈(215)은 항목들이 위치한 도시들과 승급 수에 기초하여 항목들을 승급시키기 위해 점수가 정해진 항목들 세트를 횡단한다. 제1 단계에서, 분산 모듈(215)은 제1 항목(4235)이 위치한 도시를 결정한다. 항목(4235)은 파리에 위치하고, 파리는 선택된 도시들 중 하나이다. 그러므로, 분산 모듈(215)은 항목(4235)을 승급시킨다. 그러나 항목(4235)은 이미 탑 순위 항목이기 때문에, 그것의 점수와 순위는 변경되지 않는다. 분산 모듈(215)은 연속적으로 다음의 변수들/배열들을 설정한다.
already_promoted = 1
cities_promoted = [파리]
last_promoted = 1
already_promoted 는 이미 승급이 된 항목들의 수, cities_promoted는 항목들이 승급된 도시들의 배열, 그리고 last_promoted는 마지막으로 승급된 항목의 순위이다.
제2 단계에서, 분산 모듈(215)은 제2 항목, 항목(2354), 이 위치한 도시를 결정한다. 항목(2345)은 파리에 위치한다. 그리고 cities_promoted 배열이 나타내는 것처럼, 파리에 위치한 항목은 이미 승급되었기 때문에, 분산 모듈(215)은 항목(2345)을 승급시키지 않는다. 동일한 과정이 항목(6453)과 항목(3426)에 적용된다. 분산 모듈(215)이 항목(9893)에 도달하는 경우, 분산 모듈(215)은, 선택된 도시들 중 하나이고 아직 승급되지 않은 항목인, 리옹에 위치한 항목을 결정한다. 그러므로, 분산 모듈(215)은 항목(9893)이 항목(4235)과 항목(2345) 사이 순위가 되도록 항목(9893)을 승급시킨다. 항목(9893)의 새로운 점수는 변수 last_promoted 가 나타내는 항목의 점수, 즉 항목(4235)의 점수, 에 기초하여 연산된다. 대체가능한 실시예에서, 변수 last_promoted 는 개별적으로 추적되고, 항목의 새로운 점수는 변수 already_promoted 가 나타내는 항목의 점수에 기초하여 결정된다. 분산 모듈(215)은 아래의 변수들/배열들을 연속적으로 설정한다.
already_promoted = 2
cities_promoted = [파리, 리옹]
last_promoted = 2
항목(2345), (6453) 및 (3426)과 같이, 분산 모듈은 항목(3631)을 승급시키지 않는다. 왜냐하면 리옹에 위치한 항목은 cities_promoted 배열이 나타내는 것처럼 이미 승급되었기 때문이다. 분산 모듈(215)이 항목(3522)에 도달하는 경우, 분산 모듈(215)은 선택된 도시들 중 하나인 니스에 위치한 항목을 결정한다. 그러므로, 분산 모듈(215)은 항목(3522)이 항목(9893)과 항목(2345) 사이 순위가 되도록 항목(3522)을 승급시킨다. 항목(9893)의 새로운 점수가 변수 last_promoted 가 나타내는 항목의 점수, 즉 항목(9893)의 점수에 기초하여 연산된다. 분산 모듈(215)은 아래의 변수들/배열들을 연속하여 설정한다.
already_promoted = 3
cities_promoted = [파리, 리옹, 니스]
last_promoted = 3
이 단계에서, 승급된 항목의 수는 결정된 승급 수, 즉 소진된 승급 수, 와 동일하다. 그러므로, 분산 모듈(215)은 더 이상 항목들을 승급시키지 않는다. 재-순위 항목들은 아래의 테이블 2에 도시된다. 도시된 것처럼, 탑 순위 항목들은 선택된 도시들의 항목들을 포함하고, 서로 상대적으로 분산된다.
Rank Listing ID Score Region
1 4235 96 Paris
2 9893 90 Lyon
3 3522 87 Nice
4 2354 84 Paris
5 6453 82 Paris
6 3426 79 Paris
7 3631 70 Lyon
8 8729 62 Bordeaux
예시적인 방법( Exemplary Method )
도 3은, 일 실시예에 따른, 탑 점수(top scoring) 항목들을 분산하는 상품 또는 서비스 항목들의 점수를 정하는 단계에 대한 흐름도이다. 단계 301에서, 온라인 예약접수 시스템(111)은 클라이언트 장치로부터 검색 쿼리를 수신한다. 상기 검색 쿼리는 다수의 지역들을 포함하는 지리적 영역을 특정한다. 단계 303에서, 온라인 예약접수 시스템(111)은 상품 또는 서비스에 대한 점수가 정해진 복수의 항목들 중 각각에 대한 항목 점수를 연산한다. 항목에 대한 항목 점수는 도시 관련성 부분 점수, 인접 지역 관련성 부분 점수 및 거리 부분 점수 중 적어도 하나에 기초된다. 단계 305에서, 온라인 예약접수 시스템(111)은 위치 관련성 점수 중 적어도 일부에 기초하여 항목들의 순위를 정한다. 상기 순위는, 예를 들어 항목에 대한 사용자들에 의해 제공된 리뷰의 수, 항목의 예약접수의 수, 항목의 가격 등등 다른 요소들을 기초할 수도 있다. 단계 307에서, 온라인 예약접수 시스템(111)은 검색 쿼리에 의해 특정된 지리적 영역에 포함된 하나 이상의 지역들을 식별한다. 단계 309에서, 온라인 예약접수 시스템(111)은 탑 순위 항목들이 서로 분산된 지역들에 위치하도록 항목들의 순위를 업데이트한다. 단계 311에서, 온라인 예약접수 시스템(111)은 순위 순으로 된 상기 항목들을 클라이언트 장치로 제공한다.
위치 기반 결과 개선(Location-Based Result Refining)
검색 쿼리는, 예를 들어 댈리 시티(Daly City)의 도시, 샌프란시스코의 도시들과 남 샌프란시스코와 같은 지리적으로 다른 지역들과 인접한 지역을 특정할 수도 있다. 점수 모듈(213)이 쿼리에 응답하여 항목들에 대해 점수를 정하는 경우, 다른 인근 지역들(예를 들어, 남 샌프란시스코) 내의 항목들의 점수가 상기 검색 쿼리에 의해 특정된 지역들(예를 들어, 댈리 시티) 내의 항목들의 점수보다 특별히 높을 수도 있다. 이런 격차는 각 지역 내의 항목들의 총 수의 차이, 각 지역의 이전 예약접수들의 수 차이, 항목들의 품질, 항목들의 리뷰 수 등등에 의한 결과이다. 항목들이 그들의 점수에 기초해 결정된 순위 순으로 표시되기 때문에, 이 점수 격차는 상기 검색 쿼리(예를 들어, 댈리 시티)에 의해 특정된 지역에 위치한 항목들 위에 순위가 정해지고 표시되는, 다른 지역들 내의 많은 항목들을 야기할 수 있다. 따라서, 상기 검색 쿼리에 특정된 지역의 항목들을 열람하는 것에 흥미있는 사용자는, 적어도 처음에, 다른 지역들을 대신 제공받을 수도 있다.
순위 모듈(211) 내 개선(refining) 모듈(217)은 지역들에 위치한 항목들을 배치하기 위해, 검색 쿼리와 다른 지역들 내의 항목들이 관련있는지 결정되는 항목들의 점수를 수정하며, 그렇게 하기 위한 하나의 수단이다. 동작 중에, 검색 쿼리가 특정한 지역을 특정하는 경우, 점수 모듈(213)은 검색 쿼리와 관련있는 점수가 정해진 항목들 세트를 개선 모듈(217)로 송신한다. 점수 모듈(213)로부터 수신된 점수가 정해진 항목들 세트는 항목들의 상대 점수에 따라 이미 순서가 정해질 수도 있다.
점수가 정해진 항목들 세트를 수신하는 단계에 응답하여, 개선 모듈(217)은 점수가 정해진 항목들이 위치하는 특별한 지역들 모두를 식별한다. 각각의 식별된 지역들에 대해, 개선 모듈(217)은 검색 쿼리에 특정된 지역(여기에서는 검색 지역)과 지역 사이의 관련성을 연산한다. 상기 관련성은 위에서 설명한 도시 관련성, 인접 지역 관련성 또는 거리 관련성 또는 다른 관련성일 수도 있다. 개선 모듈(217)은 검색 지역과 관련있는 그들의 상대적 관련성에 따른 순서로 각 식별 지역(identified region)들을 포함하는 지역 세트(region set)를 생성한다. 또한, 개선 모듈(217)은 각각 식별 지역들과 연관된 상이한 항목 세트를 생성한다. 각 항목 세트는 연관된 식별 지역에 위치하는, 점수가 정해진 항목들 세트에 항목들 모두를 포함한다. 각 항목 세트 내의 항목들은, 점수 모듈(213)에 의해 연산된 그들의 상대적인 항목 점수들 순으로 된다. 일 실시예에서, 항목 세트들은 배열이고 상기 배열의 인덱스는 인덱스 위치에 항목의 점수를 결정하는데 사용될 수도 있다.
보다 관련있는 지역들에 위치하고, 제공되어야 하거나 표시되어야 하는 항목들이 충분히 낮은 점수를 가지는 항목들을 승급시키기 위해, 개선 모듈(217)은 각 식별된 지역에 위치하는, 승급되려는 항목들의 수를 결정한다(여기서 "승급 수"로 지칭된다). 특정한 식별 지역에 대한 승급 수는 검색 지역과 식별 지역 사이의 관련성을 연산한 함수에 의해 연산될 수도 있다. 이는 표시를 위해 제공되는 탑 순위 항목들의 수와 같은 다른 요소들에 기초하여 동적일 수도 있거나, 하나 이상의 지역들에 대해 정적일 수도 있다. 일 실시예에서, 지역의 승급되려는 도시들의 수는 아래의 함수에 따라 연산된다.
Figure pat00014
여기서, num_promoted i 는 승급 수(promotion number),
Figure pat00015
는 승급되려는 항목들의 기준 수(baseline number)를 나타내는 상수, 그리고
Figure pat00016
는 지역의 관련성 점수이다.
개선 모듈(217)은 검색 쿼리에 보다 관련있는 지역들에 위치하는 항목들이 덜 관련있는 지역들에 위치하는 항목들에 배치되도록, 그 지역에 위치하는 항목들의 순위가 변하는 방법을 결정하기 위해 식별 지역들에 대한 승급 수를 반복하여 사용한다. 동작 중에, 주어진 지역에 대해, 개선 모듈(217)은 지역 세트 내의 바로 이전 지역(예를 들어, 검색 쿼리에 더 관련있는)의 승급 수에 기초하여 강등 계수(demotion factor)를 연산한다. 일 실시예에서, 지역에 대한 강등 계수는 아래의 함수에 따라 연산될 수도 있다.
Figure pat00017
여기서, demotionFactor i 는 지역 세트 내의 인덱스(i)의 특정한 지역("현재 지역") 에 대한 강등 계수, scoreMatch i-1 는 지역 세트 내의 인덱스(i-1)의 지역("보다 관련있는 지역")에 위치한 항목의 점수, topListingScore i 는 현재 지역에 위치한 탑 점수 항목의 점수, 그리고 demotionFactor i-1 은 보다 관련있는 지역에 대한, 이전에 연산된 강등 계수이다. scoreMatch i-1 는, "보다 관련있는 지역"에 대한 승급 수와 동일한 인덱스인 "보다 관련있는 지역"에 연관된 항목 세트로부터 항목의 점수를 반환하여 결정된다. topListingScore i 는 인덱스 0에서 항목 세트로부터 "현재 지역"과 연관된 항목의 점수를 반환함으로써 결정된다.
위에 설명된 실시예가 강등 계수를 연산하는 특정 기술을 제공하는 동안, 당업자는 본 발명의 범위 내의 강등 계수를 연산하는 다른 기술들을 인식할 것이다. 명확하게, 본 발명의 범위 내에서, 승급 계수 또는 강등 계수가 점수에 적용되는 경우, 항목들로 하여금 적어도 보다 관련있는 지역에 위치하는 항목들 몇몇이 덜 관련있는 지역들에 위치하는 항목들보다 높은 점수가 정해지도록 재순서되도록 한다.
연산될 때, 개선 모듈(217)은 각 강등 계수를 연관된 지역에 위치한 항목들의 항목 점수에 적용한다. 보다 관련있는 지역에 항목을 효율적으로 승급시키기 위해 -지역에 위치하는 항목들의 점수에 강등 계수를 적용하는 것은 적어도 상기 항목들의 서브세트로 하여금 보다 관련있는 지역의 항목들 아래로 강등되게 한다. 개선 모듈(217)은 수정된 점수에 따라 항목들의 재-순위를 정한다. 순위 모듈(211)에 의해 재-순위된 항목들 세트는 표시되기 위해 사용자에게 송신하는 검색 모듈(205)로 송신된다.
동작의 예(Operational Example)
개선 모듈(217)의 동작 예시는 아래와 같다. 검색 쿼리가 "도시 = 댈리 시티"인 경우, 점수 모듈(213)은 아래의 점수가 정해진 항목들 세트를 개선 모듈(217)로 전송한다. 표 3에 도시된 것처럼, 항목들은 그들의 상대 점수들에 따라 순위가 정해진다.
Rank Listing ID Score Region
1 3435 96 San Francisco
2 5534 84 San Francisco
3 2325 82 San Francisco
4 7874 79 South San Francisco
5 4587 77 Daly City
6 2897 70 Daly City
7 7878 65 South San Francisco
8 2329 62 Daly City
개선 모듈(217)은 표 3의 각 지역에 대한 항목 세트를 생성한다. 주어진 지역에 대한 항목 세트는 그 지역에 위치한 항목들의 점수 순의 목록을 포함한다. 일 실시예에서, 항목 세트들은 다음과 같이 구성된다 : 샌프란시스코=[96, 84, 82]; 남 샌프란시스코=[79, 65]; 댈리 시티 = [77, 70, 62]. 개선 모듈(217)은 검색 지역 "댈리 시티"에 대해 그들의 관련성에 따라 순서된, 표 3의 지역들을 포함하는 지역 세트를 생성한다. 일 실시예에서, 지역 세트는 다음과 같이 구성된다 : [댈리 시티 : 1; 남 샌프란시스코 : 0.8; 샌프란시스코 : 0.5]. 이는 댈리 시티가 남 샌프란시스코보다 검색 쿼리에 대해 더 관련있고, 남 샌프란시스코가 샌프란시스코보다 검색 쿼리에 대해 더 관련있는 것을 나타낸다. 개선 모듈(217)은 지역 세트 내의 각 지역에 대한 승급 수를 연산한다. 승급 수는 지역들에 대해 연산된 관련성 점수의 함수이다. 이 예에서, 지역에 대한 승급 수는 상기 지역에 대한 관련성 점수가 바닥보다 3배로서 연산된다. 그러므로, 승급 수는 다음과 같다 : 댈리 시티 = 3, 남 샌프란시스코 = 2, 샌프란시스코 = 1. 개선 모듈(217)은 특정한 지역보다 직접적으로 보다 관련있는 지역의 승급 수에 기초하여, 각 지역에 대한 강등 계수를 연산한다. 댈리 시티가 검색 지역에 대해 가장 관련있는 지역이기 때문에, 댈리 시티에 대한 강등 계수는 "1"이다. 남아있는 지역들, 남 샌프란시스코와 샌프란시스코, 에 대한 강등 계수는 아래처럼 반복해 연산된다. 이 예에서, 강등 계수는 아래의 공식에 따라 연산된다.
Figure pat00018
위에서 설명된 것처럼, scoreMatch i-1 는 보다 관련있는 지역에 대한 승급 수와 동일한 인덱스에서, 보다 관련있는 지역과 연관된 항목의 점수를 항목 세트로부터 반환함으로써 결정된다. topListingScore i 는 인덱스 0에서 현재 지역들과 연관된 항목 세트로부터 항목의 점수를 반환함으로써 결정된다. 이 예에서, 남 샌프란시스코에 대한 강등 계수는 0.78 ((
Figure pat00019
))이고, 샌프란시스코에 대한 강등 계수는 0.55((
Figure pat00020
))이다.
개선 모듈(217)은 강등 계수들을 각 항목 세트 내 항목들의 점수들에 적용한다. 댈리 시티에 대한 항목 세트 내 점수들은 변화되지 않고 남아 있다. 왜냐하면, 강등 계수는 1이고, 항목 세트 내 점수들은 댈리 시티 = [77, 70, 62]이기 때문이다. 남 샌프란시스코에 대한 항목 세트 내 점수들은 남 샌프란시스코 = [61, 50]으로 수정되고, 샌프란시스코에 대한 항목 세트 내 점수들은 샌프란시스코 = [52, 46, 45]로 수정된다. 표 3에 항목들은 새로운 상대 점수들에 따라 재-순위가 정해진다. 새로운 점수들과 순위들이 아래의 표 4에 도시된다. 도시된 것처럼, 탑 순위 항목들은 댈리 시티와 남 샌프란시스코의 항목들을 포함하며, 상기 댈리 시티와 남 샌프란시스코는 샌프란시스코보다 검색 지역에 더 관련있다고 간주되는 지역들이다.
Rank Listing ID Score Region
1 4587 77 Daly City
2 2897 70 Daly City
3 2329 62 Daly City
4 7874 61 South San Francisco
5 3435 52 San Francisco
6 7878 50 South San Francisco
7 5534 46 San Francisco
8 2325 45 San Francisco
예시적인 방법(Exemplary Method)도 4는, 항목이 위치한 지역 및 검색 쿼리의 관련성에 기초하여 항목들의 순위를 정하기 위해, 상품 또는 서비스 항목에 점수를 정하는 단계에 대한 흐름도이다. 단계 401에서, 온라인 예약접수 시스템(111)은 클라이언트 장치로부터 검색 쿼리를 수신한다. 상기 검색 쿼리는 지리적 지역을 특정한다. 단계 403에서, 온라인 예약접수 시스템(111)은 상품 또는 서비스에 대한 저장된 복수의 항목들 각각에 대한 항목 점수를 연산한다. 항목에 대한 항목 점수는 도시 관련성 부분 점수, 인접 지역 관련성 부분 점수, 및 거리 부분 점수 중 적어도 하나에 기초된다. 단계 405에서, 온라인 예약접수 시스템(111)은 위치 관련성 점수에 적어도 어느 정도 기초하여 항목들의 순위를 정한다. 순위들은 또한 다른 요소들, 예를 들어 사용자들에 의해 제공된 항목에 대한 리뷰의 수, 항목에 대한 예약접수의 수, 항목의 가격, 기타 등등, 다른 요소들에 기초될 수도 있다. 단계 407에서, 온라인 예약접수 시스템(111)은 항목들이 위치하는 지역들을 하나 이상 식별한다. 단계 409에서, 온라인 예약접수 시스템(111)은 각 식별된 지역들과 검색 쿼리에 특정된 지역 사이의 관련성 점수를 결정한다. 단계 411에서, 온라인 예약접수 시스템(111)은 항목들을 승급시키기 위해 상기 항목들의 점수들을 업데이트 한다. 상기 항목들은 지역들에 위치하고, 검색 쿼리에 특정된 지역보다 더 관련있다. 단계 413에서, 온라인 예약접수 시스템(111)은 업데이트된 점수들을 기초로 항목들의 순위를 업데이트 한다. 단계 415에서, 온라인 예약접수 시스템(111)은 순위 순으로 된 항목들을 클라이언트 장치에 제공한다.
추가 고려사항들(Additional Considerations)
본 발명의 실시예들의 상기한 설명은 예시의 목적으로 제시되었다; 이는 개시된 정확한 형태로 본 발명을 제한하거나, 빠뜨리는 것 없이 만들려고 의도한 것이 아니다. 당업자는 상기한 개시에 비추어 많은 수정 및 변형이 가능하다는 것을 이해할 수 있다.
본 설명의 일부는 정보상 연산 기호 및 알고리즘에 관한 본 발명의 실시예들을 기술한다. 이러한 알고리즘적 설명 및 표현은, 일반적으로 그들의 작업 핵심을 효율적으로 다른 당업자에게 전달하기 위해 데이터 처리 분야의 당업자에 의해 사용된다. 이러한 동작은 기능적, 연산적, 또는 논리적으로 설명되지만, 컴퓨터나 이러한 동등한 전기회로, 마이크로코드 등에 의해 구현될 것으로 이해된다. 나아가, 이것은 모듈로서의 이러한 동작의 배열을 나타내기 위해, 때때로 일반성의 상실 없이 편리하게 입증된다. 상기 기술된 동작 및 그들의 연관된 모듈은 소프트웨어, 펌웨어, 하드웨어 또는 이들의 임의 조합 내에서 구현될 수 있다.
여기서 기술된 임의의 단계, 동작, 또는 프로세스는, 하나 이상의 하드웨어 또는 소프트웨어 모듈과 함께 단독으로 또는 다른 장치와 조합하여 수행되거나 구현될 수 있다. 일 실시예에서, 소프트웨어 모듈은 컴퓨터 프로그램 코드를 포함하는 컴퓨터-판독 가능 매체로 구성되는 컴퓨터 프로그램 제품과 함께 구현되고, 컴퓨터 프로그램 코드는 기술된 임의의 또는 모든 공정, 단계 또는 동작을 수행하기 위한 컴퓨터 프로세서에 의해 실행될 수 있다.
또한, 본 발명의 실시예들은, 여기서의 동작을 수행하기 위한 장치와 관련될 수도 있다. 이들 장치는 요구되는 목적을 위해 특별히 제작될 수 있고/있거나, 컴퓨터 내에 저장된 컴퓨터 프로그램에 의해 선택적으로 활성화되거나 재구성되는 일반적-목적의 연산 장치를 포함할 수 있다. 이러한 컴퓨터 프로그램은, 유형의 컴퓨터 판독가능 저장 매체 또는 전자 명령어를 저장하기 위해 적합한 임의의 유형의 미디어 내에 저장될 수 있고, 컴퓨터 시스템 버스에 결합될 수 있다. 나아가, 본 명세서에 참조되는 임의의 연산 시스템은 단일 프로세서를 포함할 수 있거나, 증가한 연산 능력을 위한 다중 프로세서 디자인을 채택한 구조가 될 수 있다.
또한, 본 발명의 실시예들은 여기에서 설명된 연산 프로세스에 의해 생산되는 제품과 관련될 수도 있다. 이와 같은 제품은 연산 프로세스로부터 기인한 정보를 포함할 수도 있고, 상기 정보는 비 일시적, 유형적인(tangible) 컴퓨터 판독가능한 저장 매체에 저장되며, 컴퓨터 프로그램 제품의 임의의 실시예 또는 여기에서 설명된 다른 데이터 조합을 포함할 수도 있다.
마지막으로, 본 명세서에 이용된 언어는 주로 읽기 쉽고 교시적인 목적으로 선택되었으며, 발명의 주제를 한정하거나 정확하게 기술하기 위해 선택된 것은 아닐 수도 있다. 그러므로 본 발명의 범위는 상세한 설명에 의해 한정되지 않으며, 청구항에 의해 제한된다는 것을 의도하고 있다. 따라서, 본 발명의 실시예의 개시 내용은 예시적인 것이며, 이하의 청구 범위에 기재된 본 발명의 범위를 제한하는 것이 아니다.

Claims (18)

  1. 복수의 지역들을 참조 표시하는(referencing) 지리적 영역을 포함하는 검색 쿼리를 클라이언트 장치로부터 수신하는 단계;
    각 항목들은 상기 복수의 지역들 중 하나의 지역에 연관된, 예약접수 가능한 복수의 항목들에 액세스하는 단계;
    적어도 각 항목이 연관된 지역 및 상기 검색 쿼리에 기초하여 복수의 항목들 중 각각에 대한 항목 점수(listing score)를 연산하는 단계;
    상기 항목 점수들에 따른 상기 복수의 항목들의 순위를 정하는 단계로서, 상기 순위가 정해진 항목들은, 순위가 정해진 항목들 내의 복수의 항목들의 나머지보다 위의 순위가 정해진 항목들의 탑 서브세트(top subset)를 포함하며, 상기 항목들의 탑 서브세트는 상기 지역들의 서브세트에 연관된, 상기 상기 항목들의 순위를 정하는 단계;
    상기 복수의 항목들 중 제2 항목 및 상기 항목들의 탑 서브세트에서 제3 항목의 항목 점수들의 조합에 기초하여 상기 나머지에서 제1 항목에 대한 항목 점수를 재-연산하는 단계로서, 상기 제1 항목은, 상기 지역들의 서브세트에 포함되지 않은, 상기 지역들 중 하나의 지역에 연관된 것이고, 재연산된 항목 점수는 상기 제2 항목 및 제3 항목의 항목 점수들 사이에 속하는, 상기 나머지에서 제1 항목에 대한 항목 점수를 재-연산하는 단계;
    상기 제2 항목 및 제3 항목 사이의 항목들의 탑 서브세트에 상기 제1 항목을 추가하기 위해 상기 재연산된 항목 점수에 기초하여 상기 항목들의 탑 서브세트의 순위들을 수정하는 단계; 및
    유저 인터페이스에서 표시를 위해, 수정된 순위들에 기초하여 상기 항목들의 탑 서브세트에 대응하는 결과들을 제공하는 단계를 포함하는, 컴퓨터 구현 방법.
  2. 제 1 항에 있어서,
    상기 항목들의 탑 서브세트에 추가되는 항목들의 수를 나타내는 승급 수(promotion number)를 결정하는 단계; 및
    상기 항목들의 탑 서브세트에 승급 수의 항목들을 추가하기 위해 상기 항목들의 나머지에서 상기 승급 수의 항목들에 대한 항목 점수들을 재-연산하는 단계로서, 상기 승급 수의 항목들은 상기 제1 항목을 포함하는, 상기 항목들의 나머지에서 상기 승급 수의 항목들에 대한 항목 점수들을 재-연산하는 단계를 더 포함하는, 컴퓨터 구현 방법.
  3. 제 2 항에 있어서, 상기 승급 수를 결정하는 단계는,
    상기 복수의 지역들로부터 지역들의 그룹을 선택하는 단계; 및
    상기 지역들의 그룹의 지역들의 수 및 승급 계수(promotion factor)에 기초하여 상기 승급 수를 결정하는 단계를 포함하는 것을 특징으로 하는, 컴퓨터 구현 방법.
  4. 제 3 항에 있어서, 상기 지역들의 그룹을 선택하는 단계는,
    상기 지리적 영역에 포함된 복수의 지역들의 각각 그리고 상기 검색 쿼리 사이의 관련성(relevance)을 연산하는 단계; 및
    상기 복수의 지역들의 각각의 관련성에 기초하여 상기 지역들의 그룹을 선택하는 단계를 포함하는 것을 특징으로 하는, 컴퓨터 구현 방법.
  5. 제 3 항에 있어서,
    상기 제1 항목은 상기 지역들의 항목의 하나의 지역에 연관되고 상기 항목들의 탑 서브세트에서의 항목들은 상기 지역들의 그룹의 상기 지역에 연관되어 있지 않은 것을 특징으로 하는, 컴퓨터 구현 방법.
  6. 제 2 항에 있어서, 상기 승급 수를 결정하는 단계는,
    사용자 인터페이스의 디스플레이 페이지가 표시할 수 있는 항목들의 수를 결정하는 단계; 및
    상기 사용자 인터페이스의 디스플레이 페이지가 표시할 수 있는 항목들의 수에 기초하여 상기 승급 수를 결정하는 단계를 포함하는 것을 특징으로 하는, 컴퓨터 구현 방법.
  7. 실행 가능한 컴퓨터 프로그램 명령어들을 저장한 비일시적인 컴퓨터 판독가능 매체로서, 상기 컴퓨터 프로그램 명령어들은, 실행될 때 컴퓨터 프로세서가:
    복수의 지역들을 포함하는 지리적 영역을 참조 표시하는(referencing) 검색 쿼리를 클라이언트 장치로부터 수신하고 ;
    각 항목들은상기 복수의 지역들의 하나의 지역에 연관된, 예약접수 가능한 복수의 항목들에 액세스하며;
    적어도 각 항목이 연관된 지역 및 상기 검색 쿼리에 기초하여 상기 복수의 항목들 중 각각에 대한 항목 점수(listing score)를 연산하고;
    상기 항목 점수들에 따른 상기 복수의 항목들의 순위를 정하는 것으로서, 상기 순위가 정해진 항목들은, 순위가 정해진 항목들 내의 복수의 항목들의 나머지보다 위의 순위가 정해진 항목들의 탑 서브세트(top subset)를 포함하며, 상기 항목들의 탑 서브세트는 상기 지역들의 서브세트에 연관된, 상기 항목들의 순위를 정하며;
    상기 복수의 항목들 중 제2 항목 및 상기 항목들의 탑 서브세트에서 제3 항목의 항목 점수들의 조합에 기초하여 상기 나머지에서 제1 항목에 대한 항목 점수를 재-연산하는 것으로서, 상기 제1 항목은, 상기 지역들의 서브세트에 포함되지 않은, 상기 지역들 중 하나의 지역에 연관된 것이고, 재연산된 항목 점수는 상기 제2 항목 및 제3 항목의 항목 점수들 사이에 속하는, 상기 나머지에서 제1 항목에 대한 항목 점수를 재-연산하고;
    상기 제2 항목 및 제3 항목 사이의 항목들의 탑 서브세트에 상기 제1 항목을 추가하기 위해 상기 재연산된 항목 점수에 기초하여 상기 항목들의 탑 서브세트의 순위들을 수정하며; 그리고
    유저 인터페이스에서 표시를 위해, 유저 인터페이스에서 표시를 위해, 수정된 순위들에 기초하여 상기 항목들의 탑 서브세트에 대응하는 결과들을 제공하게 하는 명령어들을 포함하는, 컴퓨터 판독가능 매체.
  8. 제 7 항에 있어서, 상기 컴퓨터 프로그램 명령어들은, 실행될 때 컴퓨터 프로세서가:
    상기 항목들의 탑 서브세트에 추가되는 항목들의 수를 나타내는 승급 수(promotion number)를 결정하고; 그리고
    상기 항목들의 탑 서브세트에 승급 수의 항목들을 추가하기 위해 상기 항목들의 나머지에서 상기 승급 수의 항목들에 대한 항목 점수들을 재-연산하는 것으로서, 상기 승급 수의 항목들은 상기 제1 항목을 포함하는, 상기 항목들의 나머지에서 상기 승급 수의 항목들에 대한 항목 점수들을 재-연산하게 하는 명령어들을 더 포함하는, 컴퓨터 판독가능 매체.
  9. 제 8 항에 있어서, 상기 승급 수를 결정하는 것에 대한 컴퓨터 프로그램 명령어들은, 실행될 때 컴퓨터 프로세서가:
    상기 복수의 지역들로부터 지역들의 그룹을 선택하고; 그리고
    상기 지역들의 그룹의 지역들의 수 및 승급 계수(promotion factor)에 기초하여 상기 승급 수를 결정 하게 하는 명령어들을 포함하는 것을 특징으로 하는, 컴퓨터 판독가능 매체.
  10. 제 9 항에 있어서, 상기 복수의 지역들로부터 지역들의 그룹을 선택하는 것에 대한 컴퓨터 프로그램 명령어들은, 실행될 때 컴퓨터 프로세서가:
    상기 지리적 영역에 포함된 복수의 지역들의 각각 그리고 상기 검색 쿼리 사이의 관련성(relevance)을 연산하고; 그리고
    상기 복수의 지역들의 각각의 관련성에 기초하여 상기 지역들의 그룹을 선택하게 하는 명령어들을 포함하는 것을 특징으로 하는, 컴퓨터 판독가능 매체.
  11. 제9항에 있어서,
    상기 제1 항목은 상기 지역들의 항목의 하나의 지역에 연관되고 상기 항목들의 탑 서브세트에서의 항목들은 상기 지역들의 그룹의 상기 지역에 연관되어 있지 않은 것을 특징으로 하는, 컴퓨터 판독가능 매체.
  12. 제8항에 있어서, 상기 승급 수를 결정하는 것에 대한 컴퓨터 프로그램 명령어들은, 실행될 때 컴퓨터 프로세서가:
    사용자 인터페이스의 디스플레이 페이지가 표시할 수 있는 항목들의 수를 결정하고; 그리고
    상기 사용자 인터페이스의 디스플레이 페이지가 표시할 수 있는 항목들의 수에 기초하여 상기 승급 수를 결정하게 하는 명령어들을 포함하는 것을 특징으로 하는, 컴퓨터 판독가능 매체.
  13. 실행 가능한 컴퓨터 프로그램 명령어들을 저장한 비일시적인 컴퓨터 판독가능한 저장 매체를 포함하는 컴퓨터 시스템에 있어서, 상기 컴퓨터 프로그램 명령어들은, 실행될 때 컴퓨터 프로세서가:
    복수의 지역들을 포함하는 지리적 영역을 참조 표시하는(referencing) 검색 쿼리를 클라이언트 장치로부터 수신하는 단계;
    각 항목들은상기 복수의 지역들의 하나의 지역에 연관된, 예약접수 가능한 복수의 항목들에 액세스하는 단계;
    적어도 각 항목이 연관된 지역 및 상기 검색 쿼리에 기초하여 상기 복수의 항목들 중 각각에 대한 항목 점수(listing score)를 연산하는 단계;
    상기 항목 점수들에 따른 상기 복수의 항목들의 순위를 정하는 단계로서, 상기 순위가 정해진 항목들은, 순위가 정해진 항목들 내의 복수의 항목들의 나머지보다 위의 순위가 정해진 항목들의 탑 서브세트(top subset)를 포함하며, 상기 항목들의 탑 서브세트는 상기 지역들의 서브세트에 연관된, 상기 항목들의 순위를 정하는 단계;
    상기 복수의 항목들 중 제2 항목 및 상기 항목들의 탑 서브세트에서 제3 항목의 항목 점수들의 조합에 기초하여 상기 나머지에서 제1 항목에 대한 항목 점수를 재-연산하는 단계로서, 상기 제1 항목은, 상기 지역들의 서브세트에 포함되지 않은, 상기 지역들 중 하나의 지역에 연관된 것이고, 재연산된 항목 점수는 상기 제2 항목 및 제3 항목의 항목 점수들 사이에 속하는, 상기 나머지에서 제1 항목에 대한 항목 점수를 재-연산하는 단계;
    상기 제2 항목 및 제3 항목 사이의 항목들의 탑 서브세트에 상기 제1 항목을 추가하기 위해 상기 재연산된 항목 점수에 기초하여 상기 항목들의 탑 서브세트의 순위들을 수정하는 단계; 및
    유저 인터페이스에서 표시를 위해, 유저 인터페이스에서 표시를 위해, 수정된 순위들에 기초하여 상기 항목들의 탑 서브세트에 대응하는 결과들을 제공하는 단계를 포함한 단계들을 수행하게 하는 명령어들을 포함하는, 컴퓨터 시스템.
  14. 제 13 항에 있어서, 상기 단계들은,
    상기 항목들의 탑 서브세트에 추가되는 항목들의 수를 나타내는 승급 수(promotion number)를 결정하는 단계; 및
    상기 항목들의 탑 서브세트에 승급 수의 항목들을 추가하기 위해 상기 항목들의 나머지에서 상기 승급 수의 항목들에 대한 항목 점수들을 재-연산하는 단계로서, 상기 승급 수의 항목들은 상기 제1 항목을 포함하는, 상기 항목들의 나머지에서 상기 승급 수의 항목들에 대한 항목 점수들을 재-연산하는 단계를 더 포함하는, 컴퓨터 시스템.
  15. 제 14 항에 있어서, 상기 승급 수를 결정하는 단계는,
    상기 복수의 지역들로부터 지역들의 그룹을 선택하는 단계; 및
    상기 지역들의 그룹의 지역들의 수 및 승급 계수(promotion factor)에 기초하여 상기 승급 수를 결정하는 단계를 포함하는 것을 특징으로 하는, 컴퓨터 시스템.
  16. 제 15 항에 있어서, 상기 지역들의 그룹을 선택하는 단계는,
    상기 지리적 영역에 포함된 복수의 지역들의 각각 그리고 상기 검색 쿼리 사이의 관련성(relevance)을 연산하는 단계; 및
    상기 복수의 지역들의 각각의 관련성에 기초하여 상기 지역들의 그룹을 선택하는 단계를 포함하는 것을 특징으로 하는, 컴퓨터 시스템.
  17. 제 15 항에 있어서,
    상기 제1 항목은 상기 지역들의 항목의 하나의 지역에 연관되고 상기 항목들의 탑 서브세트에서의 항목들은 상기 지역들의 그룹의 상기 지역에 연관되어 있지 않은 것을 특징으로 하는, 컴퓨터 시스템.
  18. 제 14 항에 있어서, 상기 승급 수를 결정하는 단계는,
    사용자 인터페이스의 디스플레이 페이지가 표시할 수 있는 항목들의 수를 결정하는 단계; 및
    상기 사용자 인터페이스의 디스플레이 페이지가 표시할 수 있는 항목들의 수에 기초하여 상기 승급 수를 결정하는 단계를 포함하는 것을 특징으로 하는, 컴퓨터 시스템.
KR1020197038847A 2014-05-01 2015-04-17 위치 개선 및 분산으로 인한 재-순위 검색 결과 KR102272261B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US14/267,204 US10303725B2 (en) 2014-05-01 2014-05-01 Re-ranking search results for location refining and diversity
US14/267,204 2014-05-01
KR1020167032730A KR102063838B1 (ko) 2014-05-01 2015-04-17 위치 개선 및 분산으로 인한 재-순위 검색 결과
PCT/US2015/026474 WO2015167830A1 (en) 2014-05-01 2015-04-17 Re-ranking search results for location refining and diversity

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020167032730A Division KR102063838B1 (ko) 2014-05-01 2015-04-17 위치 개선 및 분산으로 인한 재-순위 검색 결과

Publications (2)

Publication Number Publication Date
KR20200001632A true KR20200001632A (ko) 2020-01-06
KR102272261B1 KR102272261B1 (ko) 2021-07-05

Family

ID=53002827

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020167032730A KR102063838B1 (ko) 2014-05-01 2015-04-17 위치 개선 및 분산으로 인한 재-순위 검색 결과
KR1020197038847A KR102272261B1 (ko) 2014-05-01 2015-04-17 위치 개선 및 분산으로 인한 재-순위 검색 결과

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020167032730A KR102063838B1 (ko) 2014-05-01 2015-04-17 위치 개선 및 분산으로 인한 재-순위 검색 결과

Country Status (4)

Country Link
US (2) US10303725B2 (ko)
KR (2) KR102063838B1 (ko)
CN (1) CN106233288B (ko)
WO (1) WO2015167830A1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9779441B1 (en) * 2006-08-04 2017-10-03 Facebook, Inc. Method for relevancy ranking of products in online shopping
KR20160046038A (ko) * 2014-10-17 2016-04-28 삼성전자주식회사 위치 기반 소셜 검색 서비스를 제공하는 방법 및 장치
US10019523B2 (en) * 2014-11-21 2018-07-10 Ebay Inc. Diversifying search results
US10229219B2 (en) 2015-05-01 2019-03-12 Facebook, Inc. Systems and methods for demotion of content items in a feed
US10504189B1 (en) * 2016-06-23 2019-12-10 State Farm Mutual Automobile Insurance Company Systems and methods for analyzing property telematics data to update risk-based coverage of a property
JP6838843B2 (ja) * 2017-09-06 2021-03-03 トヨタ自動車株式会社 情報処理装置、情報処理システム、情報処理方法及びプログラム
US20200265095A1 (en) * 2019-02-20 2020-08-20 Microsoft Technology Licensing, Llc System that customizes a re-ranker based upon end user input
US20220374486A1 (en) * 2021-05-21 2022-11-24 Sebastien Pierre Romain Dubois Expandable feature and location-based listings searches
CN117009384B (zh) * 2023-09-27 2023-12-19 湖南立人科技有限公司 一种基于快速检索算法的列表查询方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005276213A (ja) * 2004-03-22 2005-10-06 Microsoft Corp 検索結果適合性の自動最適化のためのシステムおよび方法
KR20130130731A (ko) * 2010-12-01 2013-12-02 마이크로소프트 코포레이션 위치-기반 개체에 대해 실시간으로 맞춤형 추천을 하는 방법
KR20140051222A (ko) * 2011-06-13 2014-04-30 페이스북, 인크. 소셜 네트워크 데이터에 기반한 검색 결과의 클라이언트-측 변경

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7933897B2 (en) 2005-10-12 2011-04-26 Google Inc. Entity display priority in a distributed geographic information system
US7818315B2 (en) 2006-03-13 2010-10-19 Microsoft Corporation Re-ranking search results based on query log
US8117197B1 (en) * 2008-06-10 2012-02-14 Surf Canyon, Inc. Adaptive user interface for real-time search relevance feedback
US8423536B2 (en) * 2008-08-05 2013-04-16 Yellowpages.Com Llc Systems and methods to sort information related to entities having different locations
US20110161242A1 (en) * 2009-12-28 2011-06-30 Rovi Technologies Corporation Systems and methods for searching and browsing media in an interactive media guidance application
US8495046B1 (en) 2010-03-17 2013-07-23 Google Inc. Encoding locations and using distances for resources
EP2700025A4 (en) 2011-04-19 2014-10-22 Nokia Corp METHOD AND DEVICE FOR FLEXIBLE DIVERSIFICATION OF RECOMMENDATION RESULTS
US9507801B2 (en) * 2011-10-04 2016-11-29 Google Inc. Enforcing category diversity
CN104769571B (zh) * 2012-10-08 2018-02-13 P·孙雄 分布式存储系统和方法
US20140297630A1 (en) * 2013-03-29 2014-10-02 Wal-Mart Stores, Inc. Method and system for re-ranking search results in a product search engine

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005276213A (ja) * 2004-03-22 2005-10-06 Microsoft Corp 検索結果適合性の自動最適化のためのシステムおよび方法
JP2011134357A (ja) * 2004-03-22 2011-07-07 Microsoft Corp 検索結果適合性の自動最適化のためのシステムおよび方法
KR20130130731A (ko) * 2010-12-01 2013-12-02 마이크로소프트 코포레이션 위치-기반 개체에 대해 실시간으로 맞춤형 추천을 하는 방법
KR20140051222A (ko) * 2011-06-13 2014-04-30 페이스북, 인크. 소셜 네트워크 데이터에 기반한 검색 결과의 클라이언트-측 변경

Also Published As

Publication number Publication date
US20150317400A1 (en) 2015-11-05
CN106233288A (zh) 2016-12-14
KR20160148627A (ko) 2016-12-26
US20190213228A1 (en) 2019-07-11
US10303725B2 (en) 2019-05-28
KR102272261B1 (ko) 2021-07-05
KR102063838B1 (ko) 2020-01-08
CN106233288B (zh) 2020-01-17
WO2015167830A1 (en) 2015-11-05

Similar Documents

Publication Publication Date Title
KR102063838B1 (ko) 위치 개선 및 분산으로 인한 재-순위 검색 결과
US10692159B2 (en) Location based ranking of real world locations
JP7091389B2 (ja) オペーク旅行アイテム選択用ペルソナ
CA2924191A1 (en) Amenity, special service and food/beverage search and purchase booking system
WO2016178145A1 (en) Method, apparatus and computer program product for reservations, inventory control, shopping, and booking with attribute based pricing
CA2892026A1 (en) System and method for automated property valuation utilizing user activity tracking information
US10984007B2 (en) Recommendation ranking algorithms that optimize beyond booking
US10430730B2 (en) Determining descriptive attributes for listing locations
KR20150083673A (ko) 여행 플랜 서비스 제공 방법 및 장치
Shamsul Arefin et al. Recommending hotels by social conditions of locations
JP7136717B2 (ja) 情報処理装置、情報処理方法、及びプログラム
Zulkefli et al. Hotel travel recommendation based on blog information
JPWO2019224867A1 (ja) 施設検索システム、施設検索方法、及びプログラム
US20210142428A1 (en) Performance determination using dynamic location data
US10789278B1 (en) Database search engine optimization
US20170046728A1 (en) Query and density-based location analysis

Legal Events

Date Code Title Description
A107 Divisional application of patent
E701 Decision to grant or registration of patent right
GRNT Written decision to grant