KR20180095910A - 시맨틱 의미 벡터를 사용하는 교차 언어적 검색 - Google Patents

시맨틱 의미 벡터를 사용하는 교차 언어적 검색 Download PDF

Info

Publication number
KR20180095910A
KR20180095910A KR1020187020879A KR20187020879A KR20180095910A KR 20180095910 A KR20180095910 A KR 20180095910A KR 1020187020879 A KR1020187020879 A KR 1020187020879A KR 20187020879 A KR20187020879 A KR 20187020879A KR 20180095910 A KR20180095910 A KR 20180095910A
Authority
KR
South Korea
Prior art keywords
semantic
vector
search query
item record
language
Prior art date
Application number
KR1020187020879A
Other languages
English (en)
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 KR20180095910A publication Critical patent/KR20180095910A/ko

Links

Images

Classifications

    • G06F17/30684
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3344Query execution using natural language analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/3332Query translation
    • G06F16/3337Translation of the query language, e.g. Chinese to English
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3347Query execution using vector based model
    • G06F17/2785
    • G06F17/289
    • G06F17/30669
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • G06F40/58Use of machine translation, e.g. for multi-lingual retrieval, for server-side translation for client devices or for real-time translation

Abstract

기록된 멤버 레코드에 기초하여 코스를 클러스터링하는 시스템 및 방법이 공개된다. 서버 시스템은 제 1 언어로 검색 질의를 수신한다. 서버 시스템은 검색 질의와 연관된 시맨틱 의미 벡터를 생성한다. 서버 시스템은 아이템 레코드와 연관된 복수의 시맨틱 의미 벡터에 액세스하는데, 아이템 레코드 중 적어도 일부는 제 1 언어로 작성되지 않는다. 아이템 레코드와 연관된 각각의 시맨틱 의미 벡터에 대해, 서버 시스템은 시맨틱 의미 벡터를 검색 질의와 연관된 시맨틱 의미 벡터와 비교하고, 비교에 기초하여 아이템 레코드를 선택한다. 선택된 각각의 아이템 레코드에 대해 서버 시스템은 아이템 레코드가 제 1 언어로 작성되어 있는지 여부를 판정하고, 제 1 언어로 작성되어 있지 않다면 아이템 레코드를 제 1 언어로 자동 번역한다. 서버 시스템은 하나 이상의 선택된 아이템 레코드를 디스플레이를 위해 클라이언트 시스템으로 전송한다.

Description

시맨틱 의미 벡터를 사용하는 교차 언어적 검색
관련 출원에 대한 상호 참조
본 출원은, 2015년 12월 21일자로 출원된 미국 가출원 제 62/270,489 호, 2016년 2월 11일자로 출원된 미국 가출원 제 62/293,922 호, 및 2016년 2월 11일자로 출원된 미국 가출원 제 62/294,060 호의 우선권의 이익을 주장하는, 2016년 6월 10일자로 출원된 미국 출원 제 15/179,314 호의 우선권의 이익을 주장하며, 이들 출원은 그 전체가 본원에 참조에 의해 통합된다.
기술 분야
본 발명의 실시예는 일반적으로 교차 언어적 온라인 검색(cross-linguistic online search)에 관한 것으로, 보다 구체적으로는 국경간 검색 사용(cross border search uses)을 위해 실시간 기계 번역을 개선하는 것에 관한 것이지만 이에 제한되는 것은 아니다.
전자 및 디지털 디바이스 기술의 발전은 사회가 미디어와 상호작용하고 상품 및 서비스를 소비하는 방식을 급속하게 변화시켰다. 디지털 기술은 사람들이 국가와 대륙 경계를 넘어 서로 신속하고 효율적으로 접촉할 수 있게 해준다. 그러나, 종종, 접촉의 용이함에도 불구하고, 언어 차이는 사용자가 효과적으로 상호작용하는 것을 방해한다. 그러한 한 분야는 검색 및 상거래 분야이다.
언어 장벽에 대한 하나의 해결책은 통신, 검색, 제품 리스팅 등의 자동 기계 번역이다. 그러나 이러한 번역은 자원 집약적일 수 있으며 종종 상대적으로 열악한 번역 결과를 제공한다.
첨부된 도면의 다양한 도면들은 단지 본 발명의 예시적 실시예를 도시하는 것이고 그 범위를 제한하는 것으로 간주될 수 없다.
도 1은 몇몇 예시적 실시예에 따른, 네트워크 기반 상거래 시스템의 다양한 기능적 구성요소를 포함하는 클라이언트-서버 시스템 환경을 도시하는 네트워크 도면이다.
도 2는 몇몇 예시적 실시예에 따른 클라이언트 시스템을 구체적으로 도시하는 블록도이다.
도 3은 몇몇 예시적 실시예에 따른 네트워크 기반 상거래 시스템을 구체적으로 도시하는 블록도이다.
도 4는 몇몇 예시적 실시예에 따른 다국어 검색 시스템의 블록도를 도시한다.
도 5는 시맨틱 의미 벡터(semantic meaning vector)를 사용하여 단일 단계 검색 및 번역을 수행하기 위한, 몇몇 예시적 실시예에 따른 방법을 도시하는 흐름도이다.
도 6a 내지 도 6c는 시맨틱 의미 벡터를 사용하여 단일 단계 검색 및 번역을 수행하기 위한, 몇몇 예시적 실시예에 따른 방법을 도시하는 흐름도이다.
도 7은 몇몇 예시적 실시예에 따른, 머신 상에 설치될 수 있는 소프트웨어 아키텍처의 예를 도시하는 블록도이다.
도 8은 예시적 실시예에 따른, 머신으로 하여금 본 명세서에서 설명된 방법론 중 임의의 하나 이상을 수행하게 하기 위해 명령어 세트가 실행될 수 있는 컴퓨터 시스템의 형태의 머신의 개략도를 도시한다.
다음의 설명은 개시된 주제의 예시적 실시예를 구현하는 시스템, 방법, 기술, 명령어 시퀀스 및 컴퓨팅 머신 프로그램 제품을 포함한다. 이하의 설명에서는, 설명의 목적으로, 개시된 주제의 다양한 예시적 실시예에 대한 이해를 제공하기 위해 다수의 특정 세부사항이 제시된다. 그러나, 당업자에게는 본 발명의 주제의 실시예가 이러한 특정 세부사항 없이 실시될 수 있음이 명백할 것이다. 일반적으로, 공지된 명령어 인스턴스, 프로토콜, 구조 및 기술은 반드시 상세하게 표시되지는 않는다.
네트워크 기반 상거래 시스템은 사용자로 하여금 컴퓨터 네트워크를 통해 상품과 서비스를 구매할 수 있게 한다. 이러한 상품과 서비스는 종종 다수의 상이한 언어를 사용하는 다수 국가의 사람들에게 이용 가능하다. 복수의 제품 및 서비스를 판매하는 네트워크 기반 상거래 시스템에서, 사용자는 검색 질의를 사용하여 시스템을 탐색함으로써 그들이 찾고 있는 것을 발견할 수 있다.
그러나, 사용자의 언어가 제품 또는 서비스 설명이 사용하는 언어와 다른 경우, 검색 질의 및 설명의 번역이 필요하다. 예를 들어, 시스템은 먼저 검색 질의를 바람직한 언어로 번역하고, 번역된 검색 질의를 사용하여 해당 언어로 아이템 레코드의 검색을 실행한 다음, 아이템 레코드(예컨대, 제품 리스팅)를 디스플레이를 위해 사용자의 원래 언어로 번역할 수 있다. 이러한 시스템은 여러 번역 단계를 수반하며, 각 단계는 시스템에 추가적인 복잡성을 도입한다.
대신, 네트워크 기반 상거래 시스템은 제 1 언어로 검색 질의를 수신한다. 질의를 다른 언어로 번역하는 대신, 네트워크 기반 상거래 시스템은 검색 질의를 시맨틱 의미 벡터(semantic meaning vector)로 변환한다.
각각의 시맨틱 의미 벡터는 검색 질의의 하나 이상의 속성을 나타내는 복수의 값으로 이루어진다. 변환은, 인공 지능 기술(예컨대, 신경망 등) 및 과거 사용자 데이터를 사용하여 검색 질의로부터 시맨틱 의미 벡터를 정확하게 생성하는 모델을 생성하도록 훈련된, 확립된 모델에 의해 달성된다.
몇몇 예시적 실시예에서, 제품이 네트워크 기반 상거래 시스템에 나열될 때, 네트워크 기반 상거래 시스템은 아이템 레코드의 원래 언어와 상관없이 훈련된 모델을 사용하여 각각의 아이템 레코드를 시맨틱 의미 벡터로 변환하고 그것을 네트워크 기반 상거래 시스템에 있는 시맨틱 의미 벡터의 데이터베이스에 저장한다.
따라서, 검색 질의가 수신될 때, 그것은 시맨틱 의미 벡터로 변환되고 시맨틱 의미 벡터와 연관된 아이템 레코드의 데이터베이스와 비교된다. 그런 다음, 네트워크 기반 상거래 시스템은 검색 질의에 대한 시맨틱 의미 벡터와 매칭되는 정도에 기초하여 아이템 레코드와 연관된 각각의 시맨틱 의미 벡터를 점수화하거나 등급화한다. 몇몇 예시적 실시예에서는, 거리 점수가 계산될 수 있다.
몇몇 예시적 실시예에서, 아이템 레코드와 연관된 시맨틱 의미 벡터의 데이터베이스는 하나 이상의 토픽 그룹으로 체계화되고, 네트워크 기반 상거래 시스템은 (너무 많은 불필요한 계산을 방지하기 위해) 검색 질의와 비교할 단지 하나의 토픽 그룹을 선택한다. 검색 질의와 연관된 시맨틱 의미 벡터는 아이템 레코드와 연관된 시맨틱 의미 벡터의 제한된 세트와만 비교된다.
(각각에 대해 시맨틱 의미 벡터를 비교하는 것에 기초하여) 하나 이상의 아이템 레코드가 검색 질의에 대해 가장 잘 매칭되는 것으로 식별되면, 네트워크 기반 상거래 시스템은 그 아이템 레코드가 검색 질의와 동일한 언어를 사용하는지 여부를 판정한다. 검색 질의와 상이한 언어를 갖는 것으로 판정된 임의의 아이템 레코드에 대해, 네트워크 기반 상거래 시스템은 그 아이템 레코드를 적절한 언어로 번역한다.
그런 다음, 모든 아이템 레코드는 디스플레이를 위해 클라이언트(예컨대, 검색 질의를 제출한 사용자와 연관된 컴퓨터 시스템)로 전송된다. 몇몇 예시적 실시예에서, 사용자는 반환된 결과 중 하나를 선택하여 구매한다. 몇몇 예시적 실시예에서, 이러한 구매 이벤트는 검색 질의 및 아이템 레코드에 대한 시맨틱 의미 벡터를 생성하는 모델을 더 향상시키기 위해 사용된다.
도 1은 몇몇 예시적 실시예에 따른, 네트워크 기반 상거래 시스템(120)의 다양한 기능적 구성요소를 포함하는 클라이언트-서버 시스템 환경(100)을 도시하는 네트워크 도면이다. 클라이언트-서버 시스템 환경(100)은 적어도 클라이언트 시스템(102) 및 네트워크 기반 상거래 시스템(120)을 포함한다. 하나 이상의 통신 네트워크(110)는 이들 구성요소를 상호 접속한다. 통신 네트워크(110)는 근거리 통신망(local area network: LAN), 광역 네트워크(wide area network: WAN), 무선 네트워크, 유선 네트워크, 인터넷, 개인 영역 네트워크(personal area network: PAN) 또는 이들 네트워크의 조합을 포함하는 다양한 네트워크 유형 중 임의의 것일 수 있다.
몇몇 예시적 실시예에서, 클라이언트 시스템(102)은 퍼스널 컴퓨터(PC), 랩탑, 스마트폰, 태블릿, 이동 전화, 또는 통신 네트워크(110)와 통신할 수 있는 임의의 다른 전자 디바이스와 같은 전자 디바이스이다. 클라이언트 시스템(102)은, 클라이언트 시스템(102)에 의해 실행되는 하나 이상의 클라이언트 애플리케이션(들)(104)을 포함한다. 몇몇 예시적 실시예에서, 클라이언트 애플리케이션(들)(104)은 검색 애플리케이션, 통신 애플리케이션, 생산성 애플리케이션, 게임 애플리케이션, 워드 프로세싱 애플리케이션, 또는 임의의 다른 유용한 애플리케이션으로 이루어진 세트로부터의 하나 이상의 애플리케이션을 포함한다. 클라이언트 애플리케이션(들)(104)은 웹 브라우저를 포함한다. 클라이언트 시스템(102)은 웹 브라우저를 사용하여 네트워크 기반 상거래 시스템(120)으로 및 그로부터 요청을 송신 및 수신하고, 네트워크 기반 상거래 시스템(120)으로부터 수신된 정보를 디스플레이한다.
몇몇 예시적 실시예에서, 클라이언트 시스템(102)은 네트워크 기반 상거래 시스템(120)(예컨대, 아이폰 애플리케이션)과의 통신을 위해 특별히 커스터마이징된 애플리케이션을 포함한다. 몇몇 예시적 실시예에서, 네트워크 기반 상거래 시스템(120)은 하나 이상의 서비스와 연관된 시스템이다.
몇몇 예시적 실시예에서, 클라이언트 시스템(102)은 네트워크 기반 상거래 시스템(120)과 연관된 웹 페이지에 대한 요청을 네트워크 기반 상거래 시스템(120)에 송신한다. 예를 들어, 사용자는 클라이언트 시스템(102)을 사용하여 네트워크 기반 상거래 시스템(120)에 로그인하고, 검색 질의를 네트워크 기반 상거래 시스템(120)에 제출한다. 이에 응답하여, 네트워크 기반 상거래 시스템(120)은 검색 결과의 리스트(예컨대, 검색 질의와 매칭되는 하나 이상의 아이템 레코드)를 생성하고 아이템 레코드를 클라이언트 시스템(102)으로 반환한다. 클라이언트 시스템(102)은 아이템 레코드 데이터(예컨대, 하나 이상의 제품을 설명하는 데이터)를 수신하고 그 데이터를 클라이언트 시스템(102) 상의 사용자 인터페이스에 디스플레이한다.
몇몇 예시적 실시예에서, 도 1에 도시된 바와 같이, 네트워크 기반 상거래 시스템(120)은 일반적으로 프런트-엔드 계층, 애플리케이션 로직 계층 및 데이터 계층으로 구성된 3-층 아키텍처에 기초한다. 관련된 컴퓨터 및 인터넷 관련 분야의 당업자에 의해 이해되는 바와 같이, 도 1에 도시된 각 모듈 또는 엔진은, 실행 가능한 소프트웨어 명령어 세트 및 명령어를 실행하기 위한 대응하는 하드웨어(예컨대, 메모리 및 프로세서)의 세트를 나타낸다. 불필요한 세부사항을 피하기 위해, 다양한 예시적 실시예에 대한 이해를 전달하는 것과 밀접한 관련이 없는 다양한 기능 모듈 및 엔진은 도 1에서 생략되었다. 그러나, 여기에서 구체적으로 설명되지 않은 부가적 기능을 가능하게 하기 위해 다양한 부가적 기능 모듈 및 엔진이 도 1에 도시된 것과 같은 네트워크 기반 상거래 시스템(120)과 함께 사용될 수 있음을 당업자라면 쉽게 인식할 것이다. 또한, 도 1에 도시된 다양한 기능 모듈 및 엔진은 단일 서버 컴퓨터에 상주하거나 다양한 배치로 여러 서버 컴퓨터에 분산될 수 있다. 또한, 도 1에서 3층 구조로 도시되었지만, 다양한 예시적 실시예는 이러한 아키텍처에 결코 제한되지 않는다.
도 1에 도시된 바와 같이, 프런트 엔드는 다양한 클라이언트 시스템(102)으로부터 검색을 수신하고 검색 결과를 적절한 클라이언트 시스템(102)에 통신하는 인터페이스 모듈(들)(예컨대, 웹 서버)(122)로 구성된다. 몇몇 예시적 실시예에서, 인터페이스 모듈(들)(122)은, 모든 클라이언트 시스템(102)이 검색 질의를 송신하고 검색 결과를 수신하기 위해 사용하는 단일 애플리케이션 프로그램 인터페이스(application programmatic interface: API)를 구현한다.
도 1에 도시된 바와 같이, 데이터 계층은, 이력적 거래 데이터(130) 및 리스팅 벡터 데이터(134)를 포함하여, 네트워크 기반 상거래 시스템(120)의 사용자에 대한 다양한 데이터를 저장하는 데이터베이스를 포함하는 수 개의 데이터베이스를 포함한다.
몇몇 예시적 실시예에서, 이력적 거래 데이터(130)는, 과거 사용자 구매를 설명하는 데이터, 구매를 개시하기 위해 사용자가 입력한 검색 질의, 사용자에게 디스플레이된 검색 결과, 및 특정 거래와 관련된 임의의 다른 데이터를 포함한다. 몇몇 예시적 실시예에서, 네트워크 기반 상거래 시스템(120)은 이력적 거래 데이터(130)를 사용하여 아이템 레코드 및 검색 질의로부터 시맨틱 의미 벡터를 생성하기 위한 모델을 개발한다. 몇몇 예시적 실시예에서, 이력적 거래 데이터(130)는 또한, 네트워크 기반 상거래 시스템(120)이 검색 질의를 상이한 언어의 아이템 레코드와 연관시키는 것을 허용하도록 아이템 레코드 및 각 검색 질의의 언어를 포함한다.
몇몇 예시적 실시예에서, 리스팅 벡터 데이터(134)는 특정 아이템 레코드와 각각 연관되는 시맨틱 의미 벡터의 데이터베이스를 포함한다. 몇몇 예시적 실시예에서, 시맨틱 의미 벡터는 컴퓨터 학습 모델에 의해 생성된 일련의 값(예컨대, 잠재적으로 수백 개의 값)을 포함한다. 몇몇 예시적 실시예에서, 데이터베이스는, 사용자 검색 질의에 응답하기 위해 사용되는 것(예컨대, 검색 결과를 탐색하기 위해 사용되는 인덱스)과 과거 검색 질의 및 검색 결과가 디스플레이된 후에 초래된 임의의 사용자 상호작용(예컨대, 사용자 클릭)을 나타내는 데이터에 기초하여 체계화된다. 따라서, 네트워크 기반 상거래 시스템(120)은 검색 결과에 대해 저장된 데이터를 사용하여 어떤 검색 용어가 특정 아이템 레코드 및 구매에 대한 클릭을 초래하는지를 식별할 수 있다.
몇몇 예시적 실시예에서, 리스팅 벡터 데이터(134)는 카테고리, 그룹, 제품 클래스 등으로 체계화된다. 이러한 방식으로, 네트워크 기반 상거래 시스템(120)은 검색을 특정 제품 카테고리로 제한하여 효율성을 증가시킬 수 있다.
네트워크 기반 상거래 시스템(120)은, 아이템을 구매 및 판매하고, 때로는 사용자의 관심에 맞춰 커스터마이징되는 정보를 공유 및 수신하는 등의 기회를 사용자에게 허용하는 광범위한 다른 애플리케이션 및 서비스를 제공할 수 있다.
몇몇 예시적 실시예에서, 애플리케이션 로직 계층은, 인터페이스 모듈(122)과 협력하여 다양한 클라이언트 시스템(102)으로부터 사용자 검색 질의를 수신하고 검색 결과를 이들 클라이언트 시스템(102)으로 반환하는 다양한 애플리케이션 서버 모듈을 포함한다.
몇몇 예시적 실시예에서, 애플리케이션 로직 계층에는 벡터 생성 모듈(124) 및 벡터 매칭 모듈(126)이 또한 포함될 수 있다. 벡터 생성 모듈(124) 및 벡터 매칭 모듈(126)을 이용하는 다른 애플리케이션 또는 서비스는 자체 애플리케이션 서버 모듈에서 개별적으로 구현될 수 있음은 물론이다.
도 1에 도시된 바와 같이, 몇몇 예시적 실시예에서, 벡터 생성 모듈(124) 및 벡터 매칭 모듈(126)은 다양한 애플리케이션 서버 모듈과 협력하여 동작하는 서비스로서 구현된다. 예를 들어, 임의 수의 개별 애플리케이션 서버 모듈이 벡터 생성 모듈(124) 및 벡터 매칭 모듈(126)의 기능을 호출할 수 있다. 그러나, 다양한 대안적 예시적 실시예에서, 벡터 생성 모듈(124) 및 벡터 매칭 모듈(126)은 독립형 애플리케이션으로서 동작하도록 자체 애플리케이션 서버 모듈로서 구현될 수 있다.
일반적으로, 벡터 생성 모듈(124)은 검색 질의를 포함하는 검색 요청을 수신한다. 몇몇 예시적 실시예에서, 벡터 생성 모듈(124)은 수신된 검색 질의를 시맨틱 의미 벡터로 변환한다. 몇몇 예시적 실시예에서, 시맨틱 의미 벡터는 다양한 거래 아이템 레코드 및 검색 질의의 공통 속성을 결정하기 위해 이력적 거래 데이터(130)를 사용하여 트레이닝된 모델에 기초하여 생성된다. 몇몇 예시적 실시예에서, 새로운 거래가 발생함에 따라, 벡터 생성 모듈(124)은 새로운 데이터를 통합하도록 모델을 업데이트한다. 몇몇 예시적 실시예에서, 모델은 상이한 언어의 아이템 레코드 및 검색 질의를 공통 시맨틱 의미 벡터로 변환할 수 있으므로, 이들은 언어에 상관없이 비교될 수 있다.
유사하게, 새로운 아이템 레코드가 클라이언트 시스템(102)으로부터 수신될 때, 벡터 생성 모듈(124)은 아이템 레코드에 대한 시맨틱 의미 벡터를 생성한다. 그런 다음, 새로 생성된 시맨틱 의미 벡터는 리스팅 레코드 벡터 데이터(134)에 저장된다. 몇몇 예시적 실시예에서, 벡터 생성 모듈(124)은 아이템 레코드와 연관된 제품 카테고리를 결정하고, 제품 카테고리에 기초하여 리스팅 벡터 데이터(134)에서 연관된 시맨틱 의미 벡터를 체계화한다.
몇몇 예시적 실시예에서, 리스팅 벡터 데이터(134)는 확립된 제품 카테고리 계층구조를 가지며, 각 아이템 레코드는 계층구조 내의 하나 이상의 카테고리에 배치된다.
벡터 매칭 모듈(126)은 특정 검색 질의에 대해 벡터 생성 모듈(124)에 의해 생성된 시맨틱 의미 벡터를 사용하여 리스팅 벡터 데이터(134)에서 그 검색 질의와 매칭되는 것을 찾는다. 몇몇 예시적 실시예에서, 벡터 매칭 모듈(126)은 검색 질의의 시맨틱 의미 벡터를 리스팅 벡터 데이터(134)에 저장된 각각의 시맨틱 의미 벡터와 비교하고, 각각에 대한 매칭 점수를 생성한다.
몇몇 예시적 실시예에서, 벡터 매칭 모듈(126)은 2개의 시맨틱 의미 벡터 사이의 거리 점수를 생성한다(거리 점수는 2개의 시맨틱 의미 벡터 사이의 유사성을 나타냄). 그런 다음, 벡터 매칭 모듈(126)은 연관된 점수에 기초하여 각각의 아이템 레코드 시맨틱 의미 벡터를 등급화한다.
몇몇 예시적 실시예에서, 벡터 매칭 모듈(126)은 요구되는 특정 수의 아이템 레코드 결과를 결정하고 등급에 기초하여 그 수의 아이템 레코드 시맨틱 의미 벡터를 선택한다. 각각의 선택된 시맨틱 의미 벡터에 대해, 벡터 매칭 모듈(126)은 연관된 아이템 레코드를 수신하고, 필요하다면 아이템 레코드를 검색 질의를 제출한 사용자의 언어(예컨대, 검색 질의가 사용한 언어 또는 제출한 사용자에 의해 지시된 다른 언어)로 번역한다.
몇몇 예시적 실시예에서, 그런 다음, 선택된 아이템 레코드는 디스플레이를 위해 클라이언트 시스템(102)으로 전송된다.
도 2는 몇몇 예시적 실시예에 따른 클라이언트 시스템(102)을 구체적으로 도시하는 블록도이다. 클라이언트 시스템(102)은 보통 하나 이상의 중앙 처리 장치(CPU)(202), 하나 이상의 네트워크 인터페이스(210), 메모리(212) 및 이들 구성요소를 상호 접속하기 위한 하나 이상의 통신 버스(214)를 포함한다. 클라이언트 시스템(102)은 사용자 인터페이스(204)를 포함한다. 사용자 인터페이스(204)는 디스플레이 디바이스(206)를 포함하고, 선택적으로 키보드, 마우스, 터치 감지 디스플레이 또는 다른 입력 수단과 같은 입력 디바이스(208)를 포함한다. 또한, 몇몇 클라이언트 시스템은 마이크로폰 및 음성 인식을 사용하여 다른 입력 디바이스를 보완하거나 대체한다.
메모리(212)는 동적 랜덤 액세스 메모리(dynamic random-access memory: DRAM), 정적 랜덤 액세스 메모리(static random access memory: SRAM), 더블 데이터 속도 랜덤 액세스 메모리(double data rate random access memory: DDR RAM) 또는 다른 랜덤 액세스 솔리드 스테이트 메모리 디바이스와 같은 고속 랜덤 액세스 메모리를 포함하고, 하나 이상의 자기 디스크 저장 디바이스, 광학 디스크 저장 디바이스, 플래시 메모리 디바이스 또는 다른 비휘발성 솔리드 스테이트 저장 디바이스와 같은 비휘발성 메모리를 포함할 수 있다. 메모리(212)는 선택적으로 CPU(들)(202)로부터 원격으로 위치된 하나 이상의 저장 디바이스를 포함할 수 있다. 메모리(212), 또는 대안적으로 메모리(212) 내의 비휘발성 메모리 디바이스(들)는, 비일시적 컴퓨터 판독가능 저장 매체를 포함한다.
몇몇 예시적 실시예에서, 메모리(212) 또는 메모리(212)의 컴퓨터 판독가능 저장 매체는 다음과 같은 프로그램, 모듈 및 데이터 구조, 또는 이들의 서브세트를 저장한다.
ㆍ 다양한 기본 시스템 서비스를 처리하고 하드웨어 종속 작업 수행하는 프로시저를 포함하는 운영 체제(216)
ㆍ 하나 이상의 네트워크 인터페이스(210)(유선 또는 무선) 및 인터넷, 기타 WAN, LAN, MAN 등과 같은 하나 이상의 통신 네트워크(110)를 통해 클라이언트 시스템(102)을 다른 컴퓨터에 결합하기 위해 사용되는 네트워크 통신 모듈(218)
ㆍ 운영 체제(216) 및 클라이언트 애플리케이션(들)(104)에 의해 생성된 정보가 디스플레이 디바이스(206) 상에서 시각적으로 제시될 수 있게 하는 디스플레이 모듈(220)
ㆍ 네트워크 기반 상거래 시스템(예컨대, 도 1의 시스템(120))과 상호작용하는 다양한 양태를 처리하고,
o 네트워크 기반 상거래 시스템(120)과 연관된 웹 서비스로부터 정보(예컨대, 콘텐츠 아이템 및 아이템 레코드)를 요청하고 네트워크 기반 상거래 시스템(120)과 연관된 웹 서비스로부터 응답을 수신하는 브라우저 애플리케이션(224)
을 포함(그러나, 이에 제한되지 않음)하는 하나 이상의 클라이언트 애플리케이션 모듈(222)
ㆍ 클라이언트에 관련된 데이터를 저장하고,
o 클라이언트 시스템(102)과 연관된 네트워크 기반 상거래 시스템(120)의 사용자와 관련된 프로파일 데이터를 저장하는 클라이언트 프로파일 데이터(232)
를 포함(그러나, 이에 제한되지 않음)하는 클라이언트 데이터 모듈(들)(230)
도 3은 몇몇 예시적 실시예에 따른 네트워크 기반 상거래 시스템(120)을 구체적으로 도시하는 블록도이다. 네트워크 기반 상거래 시스템(120)은 보통 하나 이상의 CPU(302), 하나 이상의 네트워크 인터페이스(310), 메모리(306), 및 이들 구성요소를 상호 접속하기 위한 하나 이상의 통신 버스(308)를 포함한다. 메모리(306)는 DRAM, SRAM, DDR RAM 또는 다른 랜덤 액세스 솔리드 스테이트 메모리와 같은 고속 랜덤 액세스 메모리를 포함하고, 하나 이상의 자기 디스크 저장 디바이스, 광학 디스크 저장 디바이스, 플래시 메모리 디바이스 또는 다른 비휘발성 솔리드 스테이트 저장 디바이스와 같은 비휘발성 메모리를 포함할 수 있다. 메모리(306)는 선택적으로 CPU(들)(302)로부터 원격으로 위치된 하나 이상의 저장 디바이스를 포함할 수 있다.
메모리(306), 또는 선택적으로 메모리(306) 내의 비휘발성 메모리 디바이스(들)는, 비일시적 컴퓨터 판독가능 저장 매체를 포함한다. 몇몇 예시적 실시예에서, 메모리(306) 또는 메모리(306)의 컴퓨터 판독가능 저장 매체는 다음과 같은 프로그램, 모듈, 및 데이터 구조, 또는 이들의 서브세트를 저장한다.
ㆍ 다양한 기본 시스템 서비스를 처리하고 하드웨어 종속 작업을 수행하는 프로시저를 포함하는 운영 체제(314)
ㆍ 하나 이상의 네트워크 인터페이스(310)(유선 또는 무선) 및 인터넷, 기타 WAN, LAN, MAN 등과 같은 하나 이상의 통신 네트워크(110)를 통해 네트워크 기반 상거래 시스템(120)을 다른 컴퓨터에 결합하기 위해 사용되는 네트워크 통신 모듈(316)
ㆍ 네트워크 기반 상거래 시스템(120)에 의해 제공된 서비스를 수행하도록 구성되고,
o 검색 질의 및 아이템 레코드를 시맨틱 의미 벡터로 변환하고, 이력적 거래 데이터(130)에 기초하여 벡터 생성 모델을 학습하고, 클라이언트 시스템(예컨대, 도 1의 클라이언트 시스템(102))으로부터 아이템 레코드 및 검색 질의를 수신하는 벡터 생성 모듈(124)과,
o 수신된 검색 질의와 연관된 시맨틱 의미 벡터를 리스팅 벡터 데이터(134)에 저장된 아이템 레코드와 연관된 복수의 시맨틱 의미 벡터와 비교하고, 이 비교에 기초하여 최상의 매칭 아이템 레코드를 선택하는 벡터 매칭 모듈(126)과,
o 클라이언트 시스템(예컨대, 도 1의 클라이언트 시스템(102))을 통해 사용자로부터 검색 질의 및 아이템 레코드를 수신하는 수신 모듈(322)과,
o 네트워크 기반 상거래 시스템(120)을 통해 제품을 판매하기 위해 사용자로부터 제출된 정보에 기초하여 아이템 레코드를 생성하는 리스팅 모듈(324)과,
o 아이템 레코드를 제 1 언어에서 제 2 언어로 자동 번역하는 번역 모듈(326)과,
o 아이템 레코드의 언어가 제출된 검색 질의의 언어와 동일한지 여부를 판정하는 언어 판정 모듈(328)과,
o 검색 질의에 대한 시맨틱 의미 벡터와 매칭되는 정도에 기초하여 아이템 레코드에 대한 각각의 시맨틱 의미 벡터를 순위화하는 순위 모듈(330)과,
o 각각의 아이템 레코드와 연관된 시맨틱 의미 벡터의 순위에 기초하여 하나 이상의 아이템 레코드를 선택하는 선택 모듈(332)과,
o 디스플레이를 위해 클라이언트 시스템(예컨대, 도 1의 클라이언트 시스템(102))으로 선택된 아이템 레코드를 전송하는 전송 모듈(334)과,
o 두 벡터 사이의 거리를 결정하는 계산에 기초하여 2개의 시맨틱 의미 벡터 사이의 유사성을 결정하는 거리 모듈(336)
을 포함(그러나, 이에 제한되지 않음)하는 하나 이상의 서버 애플리케이션 모듈(318)
ㆍ 네트워크 기반 상거래 시스템(120)에 관련된 데이터를 저장하고,
o 과거 상호작용(예컨대, 판매 및/또는 입찰)을 설명하는 데이터, 및 거래를 개시하기 위해 사용된 검색 질의, 디스플레이된 검색 결과, 및 거래를 완료하기 전에 사용자가 클릭한 아이템 레코드를 포함하는 이들 상호작용에 관한 정보를 포함하는 이력적 거래 데이터(130)와,
o 다른 언어의 검색 질의와 매칭할 때 사용될 복수의 아이템 레코드에 대한 시맨틱 의미 벡터를 저장하는 리스팅 벡터 데이터(134)
를 포함(그러나, 이에 제한되지 않음)하는 서버 데이터 모듈(들)(340)
도 4는 몇몇 예시적 실시예에 따른 다국어 검색 시스템(400)의 블록도를 도시한다. 몇몇 예시적 실시예에 따라, 사용자는 네트워크를 통해 다국어 검색 시스템(400)과 접속한다. 사용자는 제 1 언어로 검색 질의(410)를 제출한다.
몇몇 예시적 실시예에서, 다국어 검색 시스템(400)은 네트워크 기반 상거래 시스템(예컨대, 도 1의 시스템(120))의 구성요소이고, 사용자(402)로부터 검색 질의를 수신한다. 몇몇 예시적 실시예에서, 벡터 생성 모듈(124)은 검색 질의를 수신한다. 검색 질의를 하나 이상의 다른 언어로 번역하는 대신, 벡터 생성 모듈(124)은 검색 질의에 대한 시맨틱 의미 벡터(412)를 생성한다.
몇몇 예시적 실시예에서, 벡터 생성 모듈(124)은 질의를 시맨틱 의미 벡터에 매핑하는 모델을 포함한다. 몇몇 예시적 실시예에서, 모델은 이력적 거래 데이터(130)를 사용하여 트레이닝된다. 몇몇 예시적 실시예에서, 모델 자체는 결정 트리 학습, 인공 신경망 및 심층 학습 기술, 지원 벡터 머신, 베이지안 네트워크 등과 같은 컴퓨터 학습 기술을 사용하여 구성된다.
예를 들어, 벡터 생성 모듈(124)은 제 1 언어의 검색과 제 2 언어의 아이템 레코드(예컨대, 제품)의 구매 간의 모든 이력적 거래를 식별한다.
몇몇 예시적 실시예에서, 벡터 생성 모듈(124)이 검색 질의(410)에 대한 시맨틱 의미 벡터(412)를 생성하면, 시맨틱 의미 벡터(412)는 벡터 매칭 모듈(126)로 전달된다.
몇몇 예시적 실시예에서, 벡터 매칭 모듈(126)은, 리스팅 벡터 데이터(134)에 저장되고 하나 이상의 아이템 레코드와 연관된 복수의 시맨틱 의미 벡터를 분석하여, 검색 질의(410)로부터 생성된 시맨틱 의미 벡터(412)와 매칭되는 하나 이상의 시맨택 의미 벡터를 식별한다. 몇몇 예시적 실시예에서, 각각의 시맨틱 의미 벡터(412)는 복수의 값을 포함하고, 벡터 매칭 모듈(126)은 아이템 레코드와 연관된 각각의 시맨틱 의미 벡터와 검색 질의(410)와 연관된 시맨틱 의미 벡터(412) 간의 유사성을 나타내는 점수를 생성한다.
리스팅 벡터 데이터(134) 내의 모든 시맨틱 의미 벡터(412)가 평가되면, 벡터 매칭 모듈(126)은 생성된 점수에 기초하여 리스팅 벡터 데이터(134)로부터 하나 이상의 시맨틱 의미 벡터(412)를 선택한다. 그런 다음, 선택된 시맨틱 의미 벡터(412)와 연관된 아이템 레코드는 기계 번역 모듈(408)로 전송된다. 몇몇 예시적 실시예에서, 기계 번역 모듈(408)은 선택된 아이템 레코드 중 존재한다면 어느 것이 검색 질의(410)와 연관된 언어와 상이한 언어로 되어 있는지를 판정한다.
선택된 아이템 레코드 중 임의의 것이 검색 질의(410)와 상이한 언어로 되어 있다고 판정되면, 기계 번역 모듈(408)은 아이템 레코드를 원래의 언어(예컨대, 그들이 제출되었던 언어)에서 검색 질의(410)의 언어로 자동 번역한다. 그런 다음, 번역된 아이템 레코드(414)는 클라이언트 시스템(예컨대, 도 1의 클라이언트 시스템(102))으로 전송된다.
도 5는 시맨틱 의미 벡터를 사용하여 단일 단계 검색 및 번역을 수행하기 위한, 몇몇 예시적 실시예에 따른 방법(500)을 도시하는 흐름도이다. 도 5에 도시 된 동작들의 각각은, 컴퓨터 메모리 또는 컴퓨터-판독가능 저장 매체에 저장된 명령어에 대응할 수 있다. 몇몇 실시예에서, 도 5에 설명된 방법(500)은 네트워크 기반 상거래 시스템(예컨대, 도 1의 시스템(120))에 의해 수행된다. 그러나, 방법(500)은 전자 하드웨어의 임의의 다른 적절한 구성에 의해 수행될 수도 있다.
몇몇 실시예에서, 방법(500)은, 하나 이상의 프로세서 및 하나 이상의 프로세서에 의한 실행을 위한 하나 이상의 프로그램을 저장하는 메모리를 포함하는 네트워크 기반 상거래 시스템(예컨대, 도 1의 시스템(120))에서 수행된다.
몇몇 예시적 실시예에서, 네트워크 기반 상거래 시스템(예컨대, 도 1의 시스템(120))은 클라이언트 시스템(예컨대, 도 1의 클라이언트 시스템(102))으로부터 검색 질의(예컨대, 검색 질의(410))를 수신한다(502). 검색 질의는 연관된 제 1 언어(예컨대, 검색 질의가 작성되는 언어)를 갖는다.
몇몇 예시적 실시예에서, 네트워크 기반 상거래 시스템(예컨대, 도 1의 시스템(120))은 컴퓨터 학습 모델을 사용하여 과거의 구매 데이터에 기초하여 모델을 생성한다. 몇몇 예시적 실시예에서, 모델은 심층 학습 또는 신경망 학습 방법을 사용하여 생성된다. 몇몇 예시적 실시예에서, 네트워크 기반 상거래 시스템(예컨대, 도 1의 시스템(120))은 모델을 사용하여 검색 질의와 연관된 시맨틱 의미 벡터(예컨대, 시맨틱 의미 벡터(412))를 생성한다(504). 예를 들어, 네트워크 기반 상거래 시스템(예컨대, 도 1의 시스템(120))은 검색 질의의 텍스트를 사용하여 시맨틱 의미 벡터를 생성하는 모델을 생성했다. 시맨틱 의미 벡터는 다차원 벡터 공간 내의 검색 질의 또는 아이템 레코드의 위치(예컨대, 위치는 시맨틱 의미에 기초함)를 나타내는 일련의 수이다.
매우 단순화된 예에서, 0에서 1까지의 범위의 (x, y) 값을 갖는 2차원 공간의 경우, 모델은 상이한 영역을 상이한 시맨틱 의미를 갖는 2차원 공간으로 표현하도록 훈련된다. 그런 다음, 각각의 아이템 레코드 및 검색 질의는 모델에 의해 특정 (x, y) 쌍에 매핑될 수 있다. 그런 다음, 네트워크 기반 상거래 시스템(예컨대, 도 1의 시스템(120))은 (x, y) 공간의 두 지점 간의 거리를 계산함으로써 검색 질의와 아이템 레코드 간의 유사성을 결정한다.
일반적으로, 시맨틱 의미 벡터는 매우 복잡한 시맨틱 의미가 모델에 의해 표현될 수 있도록 수백 개의 차원을 갖는 벡터에 매핑될 것이다.
몇몇 예시적 실시예에서, 모델은 과거의 검색 질의의 전체 코퍼스(corpus) 및 그들이 초래한 구매와 연관된 아이템 레코드를 사용하여 질의와 아이템 레코드 사이의 시맨틱 관계를 식별한다. 몇몇 예시적 실시예에서, 관계는 용어의 동시발생 빈도에 기초할 수 있다(예컨대, 문서가 충분히 많으면, 동일한 문서에서 어떤 용어들이 발생하는지를 결정하는 것은 모델이 시맨틱 의미 벡터를 효과적으로 생성할 수 있게 한다). 몇몇 예시적 실시예에서, 용어의 중요성은 역 빈도 점수(inverse frequency score)에 의해 가중된다.
다른 예시적 실시예에서, 모델은 신경망을 사용하여 시맨틱 상관을 결정함으로써 훈련된다. 이 예에서, 신경망은 입력(예컨대, 텍스트, 송신된 시간, 위치 소스 등을 포함하는, 검색 질의 또는 아이템 레코드에 관한 다양한 데이터)을 취한다. 이들 각각의 입력은 가중치를 부여받고 복수의 숨겨진 노드로 전달된다. 숨겨진 노드는 가중치가 또한 부여된 정보를 교환하여 출력을 생성한다. 몇몇 예시적 실시예에서는, 숨겨진 노드의 여러 계층이 존재한다. 이 경우의 출력은 다차원 벡터이다. 예를 들어, 제 1 시맨틱 의미 벡터는 smv1 =(v1, v2, v3, v4, ..., vn) 내의 값 리스트를 포함한다.
몇몇 예시적 실시예에서, 모델은 기존 데이터(예컨대, 성공적인 구매와 매칭되는 검색 질의)를 사용하여 트레이닝되며, 신경망 학습 알고리즘은 기존 레코드와 매칭되는 질의 및 아이템 레코드에 대한 시맨틱 의미 벡터를 생성하도록 가중치를 적응적으로 조정한다. 몇몇 예시적 실시예에서, 새로운 거래가 발생하면, 모델은 새로운 데이터로 업데이트된다.
몇몇 예시적 실시예에서, 시맨틱 의미 벡터는 또한 제출하는 사용자의 특성 및 이력, 검색 질의의 시간 및 위치 등을 포함하는 검색 질의에 대한 시맨틱 의미 벡터를 생성하기 위해 다른 변수를 사용한다.
일단 검색 질의에 대해 시맨틱 의미 벡터가 생성되면, 네트워크 기반 상거래 시스템(예컨대, 도 1의 시스템(120))은 검색 질의에 대한 시맨틱 의미 벡터를 복수의 아이템 레코드(예컨대, 각 아이템 레코드는 네트워크 기반 상거래 시스템(예컨대, 도 1의 시스템(120))에서 데이터베이스에 저장된 연관된 시맨틱 의미 벡터를 가짐)와 연관된 시맨틱 의미 벡터와 비교한다(506).
몇몇 예시적 실시예에서, 네트워크 기반 상거래 시스템(예컨대, 도 1의 시스템(120))은 2개의 시맨틱 의미 벡터들 사이의 유사성 점수 또는 근접성 점수를 계산한다. 몇몇 예시적 실시예에서, 유사성 점수는 n-차원 유클리드 거리(Euclidean distance)이다. 다른 예시적 실시예에서, 점수는 체비셰프 거리(Chebyshev distance), 해밍 거리(Hamming Distance), 마하라노비스 거리(Mahalanobis distance), 맨해튼 거리(Manhattan distance), 민코프스키 거리(Minkowski distance), 하버사인 거리(Haversine distance) 또는 임의의 다른 적절한 거리 계산을 사용하여 계산될 수 있다.
몇몇 예시적 실시예에서, 네트워크 기반 상거래 시스템(예컨대, 도 1의 시스템(120))은 네트워크 기반 상거래 시스템(예컨대, 도 1의 시스템(120))에 저장된 복수의 아이템 레코드로부터 하나 이상의 아이템 레코드를 선택한다(508). 아이템 레코드는 아이템 레코드와 연관된 시맨틱 의미 벡터에 대해 결정된 유사성 또는 근접성 점수에 적어도 부분적으로 기초하여 선택된다. 위에서 언급한 것처럼, 두 벡터 간의 거리를 계산하기 위해 다양한 알고리즘이 사용될 수 있다. t개의 총 벡터 값을 갖는 2개의 벡터 사이의 유사성을 계산하는 한 가지 구체적인 예(언급된 것처럼, 많은 상이한 알고리즘이 사용될 수 있음)는 다음과 같다.
Figure pct00001
따라서, t개의 총 벡터 값을 갖는 질의 시맨틱 의미 벡터와 아이템 레코드 시맨틱 의미 벡터 사이의 유사성이 계산된다. 이 계산은 하나의 값을 초래할 것이다. 질의와 아이템 레코드 쌍의 값이 낮을수록 벡터 공간 내에서 질의 및 아이템 레코드가 더 가까운 것으로 결정된다.
몇몇 실시예에서, 아이템 레코드의 데이터베이스는 복수의 상이한 언어로부터의 아이템 레코드들을 포함한다. 시맨틱 의미 벡터는 언어들 사이에서 의미를 표준화한다. 따라서, 하나 이상의 아이템 레코드가 결정되면, 네트워크 기반 상거래 시스템(예컨대, 도 1의 시스템(120))은 필요하다면 아이템 레코드를 제 1 언어로 번역한다(510). 이러한 방식으로, 제 1 사용자는 자신의 언어로 검색 질의를 제출하고 다른 언어의 제품에 대한 결과를 얻을 수 있다.
일단 아이템 레코드가 적절한 언어로 번역되면, 네트워크 기반 상거래 시스템(예컨대, 도 1의 시스템(120))은 번역된 아이템 레코드를 디스플레이를 위해 클라이언트 시스템(예컨대, 도 1의 클라이언트 시스템(102))으로 전송한다.
도 6a는 시맨틱 의미 벡터를 사용하여 단일 단계 검색 및 번역을 수행하기 위한, 몇몇 예시적 실시예에 따른 방법을 도시하는 흐름도이다. 도 6a에 도시된 동작들의 각각은 컴퓨터 메모리 또는 컴퓨터-판독가능 저장 매체에 저장된 명령어에 대응할 수 있다. 선택적인 동작들은 점선(예컨대, 점선 테두리를 갖는 상자)으로 표시된다. 몇몇 실시예에서, 도 6a에 설명된 방법은 네트워크 기반 상거래 시스템(예컨대, 도 1의 시스템(120))에 의해 수행된다. 그러나, 설명된 방법은 전자 하드웨어의 임의의 다른 적절한 구성에 의해 수행될 수도 있다.
몇몇 실시예에서, 방법(600)은 하나 이상의 프로세서 및 하나 이상의 프로세서에 의한 실행을 위한 하나 이상의 프로그램을 저장하는 메모리를 포함하는 네트워크 기반 상거래 시스템(예컨대, 도 1의 시스템(120))에서 수행된다.
몇몇 예시적 실시예에서, 네트워크 기반 상거래 시스템(예컨대, 도 1의 시스템(120))은 네트워크 기반 상거래 시스템(예컨대, 도 1의 시스템(120))에 포함하기 위한 아이템 레코드를 수신한다(602). 아이템 레코드는 네트워크 기반 상거래 시스템(예컨대, 도 1의 시스템(120)) 상에서 판매될 제품의 설명이다. 설명은 제목, 제품 사양 및 기능, 이미지, 및 임의의 다른 관련 정보를 포함할 수 있다.
대규모 네트워크 기반 상거래 시스템(예컨대, 도 1의 시스템(120))은 자신의 서비스를 다수의 언어를 사용하는 다수 국가의 사용자에게 이용 가능하게 할 수 있다. 따라서, 아이템 레코드는 사실상 임의의 언어로 작성될 수 있다. 아이템 레코드를 표준화하기 위해, 네트워크 기반 상거래 시스템(예컨대, 도 1의 시스템(120))은 수신된 아이템 레코드에 대한 시맨틱 의미 벡터를 생성한다(604). 위에서 언급한 것처럼, 시맨틱 의미 벡터는 아이템 레코드의 특성을 나타내는 일련의 수(또는 값)이다. 몇몇 예시적 실시예에서, 네트워크 기반 상거래 시스템(예컨대, 도 1의 시스템(120))은 컴퓨터 학습 기술(예컨대, 신경망)과 함께 과거 거래 데이터를 사용하여, 아이템 레코드 및 검색 질의에 대한 시맨틱 의미 벡터를 생성할 모델을 생성한다. 몇몇 예시적 실시예에서, 각각의 잠재적 언어에 대한 모델이 존재한다. 따라서, 임의의 아이템 레코드 또는 검색 질의는 소스 언어와 상관없이 비교될 수 있는 시맨틱 의미 벡터로 변환될 것이다.
위에서 언급한 것처럼, 아이템 레코드 및 검색 질의는, 질의 또는 아이템 레코드와 연관된 데이터를 입력으로 사용하고 n-차원(종종 수 백개의 수를 가짐)을 갖는 시맨틱 의미 벡터를 생성하도록 임의의 적절한 방법(위에서의 예는 신경망을 사용함)에 의해 훈련된 모델을 사용함으로써 시맨틱 의미 벡터로 변환된다. 다수의 완료된 거래 데이터 세트 - 거래 중 적어도 일부는 제 2 언어로 생성된 아이템 레코드를 갖는 아이템에 대한 완료된 거래를 궁극적으로 초래하는 제 1 언어의 검색을 포함함 - 를 사용함으로써, 제 1 언어의 질의를 제 2 언어의 아이템 레코드와 연관시키는 모델이 훈련될 수 있다. 일단 그러한 모델이 생성되면(예컨대, 신경망의 입력 가중치 및 숨겨진 가중치는 훈련 데이터를 사용하여 정확한 시맨틱 의미 벡터를 생성하도록 조정됨), 제 1 언어의 검색 질의는, 질의 또는 아이템 레코드를 번역할 필요없이, 제 2 언어의 시맨틱 의미 벡터와 비교될 수 있는 시맨틱 의미 벡터로 번역될 수 있다.
몇몇 예시적 실시예에서, 네트워크 기반 상거래 시스템(예컨대, 도 1의 시스템(120))은 시맨틱 의미 벡터와 연관된 아이템 레코드를 분석하여 시맨틱 의미 벡터와 연관된 제품 카테고리를 식별한다(606). 예를 들어, 제품이 한 쌍의 신발인 경우, 네트워크 기반 상거래 시스템(예컨대, 도 1의 시스템(120))은 제품을 신발류로 분류할 수 있다. 아래에 설명되는 것처럼, 각 아이템 레코드 및 시맨틱 의미 벡터와 연관된 제품 카테고리를 갖는 것은 검색 효율성을 허용한다.
몇몇 예시적 실시예에서, 제품 카테고리는 검색 질의의 분석에 기초하여 결정된다. 예를 들어, 네트워크-기반 상거래 시스템(예컨대, 도 1의 시스템(120))은 용어 및 매칭되는 제품 카테고리의 데이터베이스를 포함한다. 다른 실시예에서, 사용자는 검색 질의를 제출할 때 특정 제품 카테고리를 선택한다. 다른 예시적 실시예에서는, 먼저, 검색 질의에 대한 시맨틱 의미 벡터를 복수의 제품 카테고리를 나타내는 일련의 시맨틱 의미 벡터와 비교한다. (예컨대, 위에서 언급된 알고리즘을 사용하여) 가장 가깝게 매칭되는 것이 질의와 연관된 제품 카테고리로 결정된다.
몇몇 예시적 실시예에서, 네트워크 기반 상거래 시스템(예컨대, 도 1의 시스템(120))은 각각의 시맨틱 의미 벡터가 결정된 제품 카테고리와 연관되도록 데이터베이스를 체계화한다(608).
몇몇 예시적 실시예에서, 네트워크 기반 상거래 시스템(예컨대, 도 1의 시스템(120))은 네트워크 기반 상거래 시스템(예컨대, 도 1의 시스템(120))에 있는 데이터베이스에 시맨틱 의미 벡터를 저장한다(610). 따라서, 각각의 아이템 레코드는 데이터베이스 내의 시맨틱 의미 벡터에 의해 표현된다. 몇몇 예시적 실시예에서, 데이터베이스는 제품별로 체계화된다.
동작들(602-610)은 검색 질의 및 아이템 콘텐츠 레코드에 대한 시맨틱 의미 벡터를 생성하도록 훈련된 모델 및 콘텐츠 아이템 벡터의 데이터베이스를 생성하는 프로세스를 설명하는 것임에 유의해야 한다. 이들 단계는 모델 및 데이터베이스를 요구하는 질의가 수신되기 전에 언제든지 오프라인에서 수행될 수 있다. 따라서, 도면은 동작(612)이 동작(610) 바로 다음에 이어지는 것을 도시하지만, 이들 두 동작 사이에 큰 시간이 존재할 수 있다.
동작(612)은 검색 질의를 수신하는 것에 응답하는 시맨틱 의미 벡터의 실시간 생성 부분이다. 따라서, 동작들(602-610)에 나타낸 단계들은 실시간 시맨틱 의미 벡터 생성 이전의 어떤 시점에서 수행될 것이지만, 반드시 직전에 수행될 필요는 없다.
몇몇 예시적 실시예에서, 네트워크 기반 상거래 시스템(예컨대, 도 1의 시스템(120))은 클라이언트 시스템(예컨대, 도 1의 클라이언트 시스템(102))으로부터 제 1 언어로 검색 질의를 수신한다(612). 몇몇 예시적 실시예에서, 사용자는 검색 질의를 선호하는 언어의 텍스트로서 제출한다. 몇몇 예시적 실시예에서, 네트워크 기반 상거래 시스템(예컨대, 도 1의 시스템(120))은 텍스트, 검색 질의가 시작된 위치, 및 사용자의 특성에 기초하여 검색 질의의 언어를 자동으로 검출한다.
몇몇 예시적 실시예에서, 네트워크 기반 상거래 시스템(예컨대, 도 1의 시스템(120))은 검색 질의와 연관된 시맨틱 의미 벡터를 생성한다(614). 위에서 언급한 것처럼, 네트워크 기반 상거래 시스템(예컨대, 도 1의 시스템(120))은 신경망과 같은 머신 학습 알고리즘을 사용하여 훈련되는 모델을 사용한다. 훈련은 (구매 및 클릭, 그러한 상호작용을 개시한 검색 질의와 같은) 네트워크 기반 상거래 시스템(예컨대, 도 1의 시스템(120))으로부터의 이력적 데이터를 사용한다. 몇몇 예시적 실시예에서, 각각의 언어는 언어 특정 모델을 사용하여 시맨틱 의미 벡터를 생성한다.
다른 예시적 실시예에서, 각각의 소스 언어/타겟 언어 페어링을 위해 개별 모델이 사용된다. 따라서, 3개의 언어(언어 A, 언어 B 및 언어 C)가 지원되는 경우, 6개의 모델(예컨대, 언어 A의 질의를 언어 B의 아이템 레코드에 매칭시키는 하나의 모델, 언어 A의 질의를 언어 C의 아이템 레코드에 매칭시키는 하나의 모델, 언어 B의 질의를 언어 A의 아이템 레코드에 매칭시키는 하나의 모델 등)이 존재할 수 있다.
몇몇 예시적 실시예에서, 네트워크 기반 상거래 시스템(예컨대, 도 1의 시스템(120))은 검색 질의와 연관된 제 1 언어를 식별한다(616).
도 6b는, 시맨틱 의미 벡터를 사용하여 단일 단계 검색 및 번역을 수행하는, 몇몇 예시적 실시예에 따른 방법(600)을 추가적으로 도시하는 흐름도이다. 도 6b에 도시된 동작들의 각각은 컴퓨터 메모리 또는 컴퓨터-판독가능 저장 매체에 저장된 명령어에 대응할 수 있다. 선택적인 동작들은 점선(예컨대, 점선 테두리를 갖는 상자)으로 표시된다. 몇몇 실시예에서, 도 6b에 도시된 방법은 네트워크 기반 상거래 시스템(예컨대, 도 1의 시스템(120))에 의해 수행된다. 그러나, 설명된 방법은 전자 하드웨어의 임의의 다른 적절한 구성에 의해 수행될 수도 있다.
몇몇 실시예에서, 방법(600)은, 하나 이상의 프로세서 및 하나 이상의 프로세서에 의한 실행을 위한 하나 이상의 프로그램을 저장하는 메모리를 포함하는 네트워크 기반 상거래 시스템(예컨대, 도 1의 시스템(120))에서 수행된다.
몇몇 예시적 실시예에서, 네트워크 기반 상거래 시스템(예컨대, 도 1의 시스템(120))은 식별된 제 1 언어와 연관된 시맨틱 의미 벡터 생성 모델을 선택한다(618). 그런 다음, 네트워크 기반 상거래 시스템(예컨대, 도 1의 시스템(120))은 선택된 시맨틱 의미 벡터 생성 모델을 사용하여 검색 질의에 대한 시맨틱 의미 벡터를 생성한다.
몇몇 예시적 실시예에서, 네트워크 기반 상거래 시스템(예컨대, 도 1의 시스템(120))은 복수의 아이템 레코드와 연관된 복수의 시맨틱 의미 벡터에 액세스하는데, 아이템 레코드 중 적어도 일부는 제 1 언어로 작성되지 않는다(622). 예를 들어, 네트워크 기반 상거래 시스템(예컨대, 도 1의 시스템(120))은 아이템 레코드가 사용자에 의해 제출될 때 생성되는 각 아이템 레코드에 연관된 시맨틱 의미 벡터의 데이터베이스를 저장한다.
몇몇 실시예에서, 아이템 레코드는 복수의 상이한 언어로 작성된다. 예를 들어 아이템 레코드는 임의의 언어를 사용하는 콘텐츠를 포함할 수 있다.
몇몇 예시적 실시예에서, 아이템 레코드와 연관된 복수의 시맨틱 의미 벡터에 액세스하는 것은, 네트워크-기반 상거래 시스템(예컨대, 도 1의 시스템(120))이 검색 질의를 분석하여 검색 질의와 연관된 하나 이상의 카테고리를 식별하는 것(624)을 포함한다. 예를 들어, 검색 질의는 텍스트에 기초하여 분석되어 검색 분야를 좁힐 수 있다.
몇몇 예시적 실시예에서, 네트워크 기반 상거래 시스템(예컨대, 도 1의 시스템(120))은 식별된 하나 이상의 제품 카테고리와 연관되는 시맨틱 의미 벡터에 액세스한다(626). 이러한 방식으로, 네트워크 기반 상거래 시스템(예컨대, 도 1의 시스템(120))은 검색을 수행할 때 고려해야 할 시맨틱 의미 벡터의 수를 제한할 수 있다.
몇몇 예시적 실시예에서, 아이템 레코드와 연관된 각각의 시맨틱 의미 벡터에 대해, 네트워크 기반 상거래 시스템(예컨대, 도 1의 시스템(120))은 각각의 시맨틱 의미 벡터를 검색 질의와 연관된 시맨틱 의미 벡터와 비교한다(628). 비교는 검색 질의와 가장 잘 매칭되는 아이템 레코드를 결정하는 것이다.
몇몇 예시적 실시예에서, 각각의 시맨틱 의미 벡터를 검색 질의와 연관된 시맨틱 의미 벡터와 비교하는 것은, 네트워크 기반 상거래 시스템(예컨대, 도 1의 시스템(120))이 검색 질의와 연관된 시맨틱 의미 벡터와 각각의 시맨틱 의미 벡터 사이의 근접성 점수를 계산(630)하는 것을 더 포함한다.
도 6c는, 시맨틱 의미 벡터를 사용하여 단일 단계 검색 및 번역을 수행하는, 몇몇 예시적 실시예에 따른 방법(600)을 추가적으로 도시하는 흐름도이다. 도 6c에 도시된 각각의 동작은 컴퓨터 메모리 또는 컴퓨터-판독가능 저장 매체에 저장된 명령어에 대응할 수 있다. 선택적인 동작들은 점선(예컨대, 점선 테두리를 갖는 상자)으로 표시된다. 몇몇 실시예들에서, 도 6c에 도시된 방법은 네트워크 기반 상거래 시스템(예컨대, 도 1의 시스템(120))에 의해 수행된다. 그러나, 설명된 방법은 전자 하드웨어의 임의의 다른 적절한 구성에 의해 수행될 수도 있다.
몇몇 실시예에서, 방법(600)은 하나 이상의 프로세서 및 하나 이상의 프로세서에 의한 실행을 위한 하나 이상의 프로그램을 저장하는 메모리를 포함하는 네트워크 기반 상거래 시스템(예컨대, 도 1의 시스템(120))에서 수행된다.
몇몇 예시적 실시예에서, 네트워크 기반 상거래 시스템(예컨대, 도 1의 시스템(120))은 연관된 근접성 점수에 기초하여 복수의 시맨틱 의미 벡터를 순위화한다(632). 따라서, 가장 관련성이 높은(또는 시맨틱 의미 벡터의 관점에서 가까운) 시맨틱 의미 벡터에 가장 높은 순위가 매겨진다.
몇몇 예시적 실시예에서, 네트워크 기반 상거래 시스템(예컨대, 도 1의 시스템(120))은 아이템 레코드와 연관된 시맨틱 의미 벡터와 검색 질의와 연관된 시맨틱 의미 벡터 사이의 비교에 기초하여 하나 이상의 아이템 레코드를 선택한다(634). 몇몇 예시적 실시예에서, 하나 이상의 아이템 레코드는 각각의 시맨틱 의미 벡터와 연관된 순위에 적어도 부분적으로 기초하여 선택된다. 이러한 방식으로, 가장 관련성이 높은 아이템 레코드가 선택된다.
각각의 선택된 아이템 레코드에 대해, 네트워크 기반의 상거래 시스템(예컨대, 도 1의 시스템(120))은 각각의 아이템 레코드가 제 1 언어로 작성되어 있는지 여부를 판정한다(636). 예를 들어, 네트워크 기반 상거래 시스템(예컨대, 도 1의 시스템(120))은 검색 질의의 언어(예컨대, 언어 1) 및 각각의 아이템 레코드의 언어를 결정한 다음 이들을 비교한다.
각각의 아이템 레코드가 제 1 언어로 작성되어 있지 않다는 판정에 따라, 네트워크 기반 상거래 시스템(예컨대, 도 1의 시스템(120))은 각각의 아이템 레코드를 제 1 언어로 자동 번역한다(638). 각각의 아이템 레코드가 제 1 언어로 작성되어 있는 경우, 사용자가 달리 지시하지 않는 한 그러한 번역은 필요하지 않다.
그런 다음, 네트워크 기반 상거래 시스템(예컨대, 도 1의 시스템(120))은 하나 이상의 선택된 아이템 레코드를 디스플레이를 위해 클라이언트 시스템(예컨대, 도 1의 클라이언트 시스템(102))으로 전송한다(640).
모듈, 구성요소, 및 로직
여기에서 특정 실시예는 로직 또는 다수의 구성요소, 모듈 또는 메커니즘을 포함하는 것으로 설명된다. 모듈은 소프트웨어 모듈(예컨대, 머신-판독가능 매체 상에 구현된 코드) 또는 하드웨어 모듈 중 하나를 구성할 수 있다. "하드웨어 모듈"은 특정 동작을 수행할 수 있는 유형의 단위이며 특정 물리적 방식으로 구성 또는 배열될 수 있다. 다양한 예시적 실시예에서, 하나 이상의 컴퓨터 시스템(예컨대, 독립형 컴퓨터 시스템, 클라이언트 컴퓨터 시스템, 또는 서버 컴퓨터 시스템) 또는 컴퓨터 시스템의 하나 이상의 하드웨어 모듈(예컨대, 프로세서 또는 프로세서 그룹)은, 여기에 설명된 바와 같은 특정 동작을 수행하도록 동작하는 하드웨어 모듈로서 소프트웨어(예컨대, 애플리케이션 또는 애플리케이션 부분)에 의해 구성될 수 있다.
몇몇 실시예에서, 하드웨어 모듈은 기계적으로, 전자적으로 또는 이들의 임의의 적절한 조합으로 구현될 수 있다. 예를 들어, 하드웨어 모듈은 특정 동작을 수행하도록 영구적으로 구성되는 전용 회로 또는 로직을 포함할 수 있다. 예를 들어, 하드웨어 모듈은 FPGA(Field-Programmable Gate Array) 또는 ASIC(Application Specific Integrated Circuit)과 같은 특수 목적 프로세서일 수 있다. 하드웨어 모듈은 또한 특정 동작을 수행하기 위해 소프트웨어에 의해 일시적으로 구성되는 프로그램가능 로직 또는 회로를 포함할 수 있다. 예를 들어, 하드웨어 모듈은 범용 프로세서 또는 다른 프로그램가능 프로세서에 의해 실행되는 소프트웨어를 포함할 수 있다. 일단 이러한 소프트웨어에 의해 구성되면, 하드웨어 모듈은 구성된 기능을 수행하도록 고유하게 조정된 특정 머신(또는 머신의 특정 구성요소)이 되고 더이상 범용 프로세서가 아니다. 기계적으로, 전용 및 영구적으로 구성된 회로로, 또는 일시적으로 구성된 회로(예컨대, 소프트웨어에 의해 구성됨)로 하드웨어 모듈을 구성할지의 결정은 비용 및 시간 고려사항에 의해 이루어질 수 있음이 인식될 것이다.
따라서, "하드웨어 모듈"이라는 문구는, 특정 방식으로 동작하거나 여기에 설명된 특정 동작을 수행하기 위해, 물리적으로 구성되거나, 영구적으로 구성되거나(예컨대, 하드와이어드됨), 또는 일시적으로 구성(예컨대, 프로그래밍됨)되는 실체인 유형의 실체를 포함하는 것으로 이해되어야 한다. 여기서 사용될 때, "하드웨어 구현 모듈"은 하드웨어 모듈을 지칭한다. 하드웨어 모듈이 일시적으로 구성되는(예컨대, 프로그래밍됨) 실시예를 고려하면, 하드웨어 모듈의 각각은 어느 한 시점에서 구성되거나 인스턴스화될 필요가 없다. 예를 들어, 하드웨어 모듈이 특수 목적 프로세서가 되도록 소프트웨어에 의해 구성된 범용 프로세서를 포함하는 경우, 범용 프로세서는 상이한 시간에 각각 상이한 특수 목적 프로세서로서 구성될 수 있다(예컨대, 상이한 하드웨어 모듈을 포함함). 따라서, 소프트웨어는, 예를 들어 하나의 시간에 특정 하드웨어 모듈이 되고 다른 시간에 다른 하드웨어 모듈이 되도록 특정 프로세서 또는 프로세서들을 구성할 수 있다.
하드웨어 모듈은 다른 하드웨어 모듈에 정보를 제공하고 다른 하드웨어 모듈로부터 정보를 수신할 수 있다. 따라서, 설명된 하드웨어 모듈들은 통신 가능하게 결합된 것으로 간주될 수 있다. 다수의 하드웨어 모듈이 동시에 존재하는 경우, 통신은 2개 이상의 하드웨어 모듈 사이에서 (예컨대, 적절한 회로 및 버스를 통한) 신호 전송을 통해 달성될 수 있다. 다수의 하드웨어 모듈이 상이한 시간에 구성되거나 인스턴스화되는 실시예에서, 이러한 하드웨어 모듈들 간의 통신은, 예를 들어, 다수의 하드웨어 모듈이 액세스하는 메모리 구조 내의 정보의 저장 및 검색을 통해 달성될 수 있다. 예를 들어, 하나의 하드웨어 모듈은 동작을 수행하고 그 동작의 출력을 통신 가능하게 결합된 메모리 디바이스에 저장할 수 있다. 이후, 다른 하드웨어 모듈은 저장된 출력을 검색하고 처리하기 위해 메모리 디바이스에 액세스할 수 있다. 하드웨어 모듈들은 또한 입력 또는 출력 디바이스와 통신을 개시할 수 있고, 자원(예컨대, 정보의 모음)에 대해 동작할 수 있다.
여기에 설명된 예시적 방법들의 다양한 동작은 관련 동작을 수행하도록 일시적으로(예컨대, 소프트웨어에 의해) 구성되거나 영구적으로 구성되는 하나 이상의 프로세서에 의해 적어도 부분적으로 수행될 수 있다. 일시적으로 구성되든 영구적으로 구성되든, 이러한 프로세서는 여기에 설명된 하나 이상의 동작 또는 기능을 수행하도록 동작하는 프로세서 구현 모듈을 구성할 수 있다. 여기에서 사용될 때, "프로세서 구현 모듈"은 하나 이상의 프로세서를 사용하여 구현된 하드웨어 모듈을 지칭한다.
유사하게, 본 명세서에 설명된 방법들은 적어도 부분적으로 프로세서로 구현될 수 있는데, 특정 프로세서 또는 프로세서들은 하드웨어의 예이다. 예를 들어, 방법의 동작들 중 적어도 일부는 하나 이상의 프로세서 또는 프로세서 구현 모듈에 의해 수행될 수 있다. 또한, 하나 이상의 프로세서는 "클라우드 컴퓨팅" 환경에서 또는 "서비스로서의 소프트웨어(software as a service: SaaS)"로서 관련 동작의 성능을 지원하도록 동작할 수도 있다. 예를 들어, 동작들 중 적어도 몇몇은 (프로세서를 포함하는 머신의 예로서) 컴퓨터의 그룹에 의해 수행될 수 있는데, 이들 동작은 네트워크(예컨대, 인터넷) 및 하나 이상의 적절한 인터페이스(예컨대, 응용 프로그램 인터페이스(API))를 통해 액세스 가능하다.
동작들 중 특정 동작의 성능은, 단일 머신 내에 존재할 뿐만 아니라 다수의 머신에 걸쳐 배치되는 프로세서들 사이에 분산될 수 있다. 몇몇 예시적 실시예에서, 프로세서 또는 프로세서 구현 모듈은 단일 지리적 위치에(예컨대, 가정 환경, 사무실 환경 또는 서버 팜 내에) 위치할 수 있다. 다른 예시적 실시예에서, 프로세서 또는 프로세서 구현 모듈은 다수의 지리적 위치에 걸쳐 분산될 수 있다.
머신 및 소프트웨어 아키텍처
도 1 내지 도 6과 관련하여 설명된 모듈, 방법, 애플리케이션 등은, 머신 및 연관된 소프트웨어 아키텍처의 맥락에서 몇몇 실시예에서 구현된다. 이하의 섹션은 개시된 실시예와 함께 사용하기에 적합한 대표적 소프트웨어 아키텍처(들) 및 머신(예컨대, 하드웨어) 아키텍처(들)를 설명한다.
소프트웨어 아키텍처는 하드웨어 아키텍처와 함께 특정 목적에 맞게 조정된 디바이스 및 머신을 생성하기 위해 사용된다. 예를 들어, 특정 소프트웨어 아키텍처와 결합된 특정 하드웨어 아키텍처는, 휴대 전화, 태블릿 디바이스 등과 같은 모바일 디바이스를 생성할 것이다. 약간 다른 하드웨어 및 소프트웨어 아키텍처는 "사물 인터넷"에서 사용하기 위한 스마트 디바이스를 산출할 수 있고, 또 다른 조합은 클라우드 컴퓨팅 아키텍처 내에서 사용하기 위한 서버 컴퓨터를 생산한다. 당업자라면 여기에 포함된 개시와 상이한 맥락에서 본 발명의 주제를 어떻게 구현할지 쉽게 이해할 수 있을 것이므로, 그러한 소프트웨어 및 하드웨어 아키텍처의 모든 조합이 여기에 제시되는 것은 아니다.
소프트웨어 아키텍처
도 7은 여기에 설명된 다양한 하드웨어 아키텍처와 함께 사용될 수 있는 대표적 소프트웨어 아키텍처(702)를 도시하는 블록도(700)이다. 도 7은 소프트웨어 아키텍처(702)의 비제한적 예일 뿐이고 여기에 설명된 기능을 가능하게 하기 위해 많은 다른 아키텍처가 구현될 수 있음이 인식될 것이다. 소프트웨어 아키텍처(702)는, 특히, 프로세서(810), 메모리/저장소(830), 및 I/O 구성요소(850)를 포함하는 도 8의 머신(800)과 같은 하드웨어 상에서 실행될 수 있다. 대표적 하드웨어 계층(704)은 도 7에 도시되고, 예를 들어 도 8의 머신(800)을 나타낼 수 있다. 대표적 하드웨어 계층(704)은 연관된 실행가능 명령어(708)를 갖는 하나 이상의 처리 유닛(706)을 포함한다. 실행가능 명령어(708)는 도 1 내지 도 6의 방법, 모듈 등의 구현을 포함하는 소프트웨어 아키텍처(702)의 실행가능 명령어를 나타낸다. 하드웨어 계층(704)은 또한 실행가능 명령어(708)를 갖는 메모리 및/또는 저장 모듈(710)을 포함한다. 하드웨어 계층(704)은 또한, 머신(800)의 일부로서 도시된 다른 하드웨어와 같은 하드웨어 계층(704)의 임의의 다른 하드웨어를 나타내는 다른 하드웨어(712)를 포함할 수 있다.
도 7의 예시적 아키텍처에서, 소프트웨어 아키텍처(702)는 각 계층이 특정 기능을 제공하는 계층들의 스택으로서 개념화될 수 있다. 예를 들어, 소프트웨어 아키텍처(702)는 운영 체제(714), 라이브러리(716), 프레임워크/미들웨어(718), 애플리케이션(720), 및 프리젠테이션 계층(744)과 같은 계층을 포함할 수 있다. 동작적으로, 계층 내의 애플리케이션(720) 및/또는 다른 구성요소는 소프트웨어 스택을 통해 애플리케이션 프로그램 인터페이스(API) 호출(724)을 호출하고, API 호출에 응답하여 메시지(726)로 도시된 응답, 반환된 값 등을 수신할 수 있다. 설명 된 계층은 사실상 대표적인 것이며 모든 소프트웨어 아키텍처가 모든 계층을 갖는 것은 아니다. 예를 들어, 몇몇 모바일 또는 특수 목적 운영 체제는 프레임워크/미들웨어(718)를 제공하지 않을 수도 있고, 다른 것들은 그러한 계층을 제공할 수도있다. 다른 소프트웨어 아키텍처는 추가 또는 다른 계층을 포함할 수 있다.
운영 체제(714)는 하드웨어 자원을 관리하고 공통 서비스를 제공할 수 있다. 운영 체제(714)는, 예를 들어, 커널(728), 서비스(730) 및 드라이버(732)를 포함할 수 있다. 커널(728)은 하드웨어와 다른 소프트웨어 계층 사이의 추상 계층(abstraction layer)으로서 작용할 수 있다. 예를 들어, 커널(728)은 메모리 관리, 프로세서 관리(예컨대, 스케줄링), 구성요소 관리, 네트워킹, 보안 설정 등을 담당할 수 있다. 서비스(730)는 다른 소프트웨어 계층들에 다른 공통 서비스를 제공할 수 있다. 드라이버(732)는 하위 하드웨어를 제어하거나 그와 인터페이스하는 것을 담당할 수 있다. 예를 들어, 드라이버(732)는 하드웨어 구성에 따라, 디스플레이 드라이버, 카메라 드라이버, 블루투스(Bluetooth®) 드라이버, 플래시 메모리 드라이버, 직렬 통신 드라이버(예컨대, USB(Universal Serial Bus) 드라이버), Wi-Fi® 드라이버, 오디오 드라이버, 전력 관리 드라이버 등을 포함할 수 있다.
라이브러리(716)는 애플리케이션(720) 또는 다른 구성요소 또는 계층에 의해 이용될 수 있는 공통 인프라스트럭처를 제공할 수 있다. 라이브러리(716)는 보통 다른 소프트웨어 모듈로 하여금 하위 운영 체제(714) 기능(예컨대, 커널(728), 서비스(730) 및/또는 드라이버(732))과 직접 인터페이스하는 것보다 용이한 방식으로 작업을 수행할 수 있게 하는 기능을 제공한다. 라이브러리(716)는, 메모리 할당 기능, 문자열 조작 기능, 수학 기능 등과 같은 기능을 제공할 수 있는 시스템 라이브러리(734)(예컨대, C 표준 라이브러리)를 포함할 수 있다. 또한, 라이브러리(716)는, 미디어 라이브러리(예컨대, MPEG4, H.264, MP3, AAC, AMR, JPG, PNG와 같은 다양한 미디어 포맷의 표현 및 조작을 지원하는 라이브러리), 그래픽 라이브러리(예컨대, 디스플레이 상에 2D 및 3D 그래픽 콘텐츠를 렌더링하기 위해 사용될 수 있는 OpenGL 프레임워크), 데이터베이스 라이브러리(예컨대, 다양한 관계형 데이터베이스 기능을 제공할 수 있는 SQLite), 웹 라이브러리(예컨대, 웹 브라우징 기능을 제공할 수있는 WebKit) 등과 같은 API 라이브러리(736)를 포함할 수 있다. 라이브러리(716)는 또한 애플리케이션(720) 및 다른 소프트웨어 구성요소/모듈에 많은 다른 API를 제공하기 위해 다양한 다른 라이브러리(738)를 포함할 수 있다.
프레임워크/미들웨어(718)는 애플리케이션(720) 또는 다른 소프트웨어 구성요소/모듈에 의해 이용될 수 있는 상위 레벨의 공통 인프라스트럭처를 제공할 수 있다. 예를 들어, 프레임워크/미들웨어(718)는 다양한 그래픽 사용자 인터페이스(GUI) 기능, 고 레벨 자원 관리, 고 레벨 로케이션 서비스 등을 제공할 수 있다. 프레임워크/미들웨어(718)는 애플리케이션(720) 또는 다른 소프트웨어 구성요소/모듈(이들 중 몇몇은 특정 운영 체제 또는 플랫폼에 특정될 수 있음)에 의해 이용될 수 있는 광범위한 스펙트럼의 다른 API를 제공할 수 있다.
애플리케이션(720)은 내장형 애플리케이션(740) 또는 제 3 자 애플리케이션(742)을 포함한다. 대표적 내장형 애플리케이션(740)의 예는, 콘택트 애플리케이션, 브라우저 애플리케이션, 북 리더 애플리케이션, 로케이션 애플리케이션, 미디어 애플리케이션, 메시징 애플리케이션 또는 게임 애플리케이션을 포함할 수 있지만, 이에 제한되는 것은 아니다. 제 3 자 애플리케이션(742)은 내장형 애플리케이션(740) 및 광범위한 다른 애플리케이션 중 임의의 것을 포함할 수 있다. 특정 예에서, 제 3 자 애플리케이션(742)(예컨대, 특정 플랫폼 벤더 이외의 엔티티에 의해 안드로이드(AndroidTM) 또는 iOS™ 소프트웨어 개발 키트(software development kit: SDK)를 사용하여 개발된 애플리케이션)은, iOS™, 안드로이드(Android™), 윈도우(Windows®) 전화 또는 다른 모바일 운영 체제와 같은 모바일 운영 체제 상에서 작동되는 모바일 소프트웨어일 수 있다. 이 예에서, 제 3 자 애플리케이션(742)은 여기에 설명된 기능을 가능하게 하기 위해 운영 체제(714)와 같은 모바일 운영 체제에 의해 제공되는 API 호출(724)을 호출할 수 있다.
애플리케이션(720)은, 내장형 운영 체제 기능(예컨대, 커널(728), 서비스(730) 및/또는 드라이버(732)), 라이브러리(예컨대, 시스템 라이브러리(734), API 라이브러리(736), 및 다른 라이브러리(738)), 및 프레임워크/미들웨어(718)를 이용하여 시스템의 사용자와 상호작용하는 사용자 인터페이스를 생성할 수 있다. 대안적으로 또는 부가적으로, 몇몇 시스템에서, 사용자와의 상호작용은 프리젠테이션 계층(744)과 같은 프리젠테이션 계층을 통해 발생할 수 있다. 이러한 시스템에서, 애플리케이션/모듈 "로직"은 사용자와 상호작용하는 애플리케이션/모듈의 측면과 분리될 수 있다.
몇몇 소프트웨어 아키텍처는 가상 머신을 이용한다. 도 7의 예에서, 이것은 가상 머신(748)에 의해 도시된다. 가상 머신은 애플리케이션/모듈이 마치 하드웨어 머신(예컨대, 도 8의 머신(800)) 상에서 실행되는 것처럼 실행될 수 있는 소프트웨어 환경을 생성한다. 가상 머신은 호스트 운영 체제(예컨대, 운영 체제(714))에 의해 호스팅되고, 항상 그런 것은 아니지만 보통은 가상 머신(748)의 동작 및 호스트 운영 체제(예컨대, 운영 체제(714))와의 인터페이스를 관리하는 가상 머신 모니터(746)를 갖는다. 소프트웨어 아키텍처는, 운영 체제(750), 라이브러리(752), 프레임워크(754), 애플리케이션(756) 또는 프리젠테이션 계층(758)과 같은 가상 머신(748) 내에서 실행된다. 가상 머신(748) 내에서 실행되는 이러한 소프트웨어 아키텍처의 계층은 전술된 대응하는 계층과 동일할 수도 있고 상이할 수도 있다.
예시적 머신 아키텍처 및 머신 판독가능 매체
도 8은 머신 판독가능 매체(예컨대, 머신 판독가능 저장 매체)로부터 명령어를 판독하고 여기에서 설명된 방법들 중 임의의 하나 이상을 수행할 수 있는, 몇몇 예시적 실시예에 따른 머신(800)의 구성요소를 도시하는 블록도이다. 구체적으로, 도 8은 컴퓨터 시스템의 예시적 형태로 머신(800)의 도식적 표현을 도시하는데, 그 내부에서 머신(800)으로 하여금 여기에서 설명된 방법들 중 임의의 하나 이상을 수행하게 하는 명령어(816)(예컨대, 소프트웨어, 프로그램, 애플리케이션, 애플릿, 앱, 또는 다른 실행가능 코드)가 실행될 수 있다. 예를 들어, 명령어(816)은 머신(800)으로 하여금 도 5 및 도 6의 흐름도를 실행하게 할 수 있다. 명령어(816)는 일반적인 비 프로그램형 머신(800)을, 설명되고 도시된 기능을 설명된 방식으로 수행하도록 프로그램된 특정 머신으로 변환한다. 대안적 실시예에서, 머신(800)은 독립형 디바이스로서 동작하거나 다른 머신에 결합(예컨대, 네트워크화)될 수 있다. 네트워크형 배치에서, 머신(800)은 서버-클라이언트 네트워크 환경에서 서버 머신 또는 클라이언트 머신의 자격으로 동작할 수 있거나, 피어-투-피어(또는 분산 형) 네트워크 환경에서 피어 머신으로서 동작할 수 있다. 머신(800)은, 서버 컴퓨터, 클라이언트 컴퓨터, 퍼스널 컴퓨터(PC), 태블릿 컴퓨터, 랩톱 컴퓨터, 넷북, 셋탑 박스(STB), PDA(personal digital assistant), 엔터테인먼트 미디어 시스템, 셀룰러폰, 스마트폰, 모바일 디바이스, 웨어러블 디바이스(예컨대, 스마트 시계), 스마트 홈 디바이스(예컨대, 스마트 디바이스), 다른 스마트 디바이스, 웹 어플라이언스, 네트워크 라우터, 네트워크 스위치, 네트워크 브릿지, 또는 머신(800)에 의해 취해질 동작을 특정하는 명령어(816)를 순차적으로 또는 다른 방식으로 실행할 수 있는 임의의 머신을 포함할 수 있지만, 이에 제한되는 것은 아니다. 또한, 단지 하나의 머신(800)이 도시되어 있지만, "머신"이라는 용어는 또한 여기에서 설명된 방법들 중 임의의 하나 이상을 수행하기 위해 명령어(816)를 개별적으로 또는 공동으로 실행하는 머신(800)의 집합을 포함하는 것으로 간주되어야 한다.
머신(800)은, 버스(802) 등을 통해 서로와 통신하도록 구성될 수 있는 프로세서(810), 메모리/저장소(830) 및 I/O 구성요소(850)를 포함할 수 있다. 일 예시적 실시예에서, 프로세서(810)(예컨대, CPU(Central Processing Unit), RISC(Reduced Instruction Set Computing) 프로세서, CISC(Complex Instruction Set Computing) 프로세서, GPU(Graphics Processing Unit), DSP(Digital Signal Processor), ASIC(Application Specific Integrated Circuit), RFIC(Radio-Frequency Integrated Circuit), 다른 프로세서 또는 이들의 임의의 적절한 조합)는, 예를 들어 명령어(816)를 실행할 수 있는 프로세서(812) 및 프로세서(814)를 포함할 수 있다. "프로세서"라는 용어는 명령어(816)를 동시에 실행할 수 있는 2개 이상의 독립 프로세서(때로는 "코어"로 지칭됨)를 포함할 수 있는 멀티코어 프로세서를 포함하도록 의도된다. 도 8은 다수의 프로세서(810)를 도시하지만, 머신(800)은, 단일 코어를 갖는 단일 프로세서, 다수의 코어를 갖는 단일 프로세서(예컨대, 멀티코어 프로세서), 단일 코어를 갖는 다수의 프로세서, 다수의 코어를 갖는 다수의 프로세서, 또는 이들의 임의의 조합을 포함할 수 있다.
메모리/저장소(830)는, 메인 메모리 또는 다른 메모리 저장소와 같은 메모리(832)와, 저장 유닛(836)을 포함할 수 있는데, 이들은 둘 다 버스(802) 등을 통해 프로세서(810)에 액세스 가능하다. 저장 유닛(836) 및 메모리(832)는 여기에 설명된 방법들 또는 기능들 중 임의의 하나 이상을 구현하는 명령어(816)를 저장한다. 명령어(816)는 또한 머신(800)에 의해 실행되는 동안, 메모리(832) 내에, 저장 유닛(836) 내에, 프로세서들(810) 중 적어도 하나 내에(예컨대, 프로세서의 캐시 메모리 내에), 또는 이들의 임의의 적절한 조합 내에 존재할 수 있다. 따라서, 메모리(832), 저장 유닛(836) 및 프로세서(810)의 메모리는 머신 판독가능 매체의 예이다.
여기에서 사용될 때, "머신 판독가능 매체"는 명령어 및 데이터를 일시적으로 또는 영구적으로 저장할 수 있는 디바이스를 의미하며, RAM(random-access memory), ROM(read-only memory), 버퍼 메모리, 플래시 메모리, 광학 매체, 자기 매체, 캐시 메모리, 다른 유형의 저장소(예컨대, EEPROM(Erasable Programmable Read-Only Memory)) 또는 이들의 임의의 적절한 조합을 포함할 수 있지만 이에 제한되는 것은 아니다. "머신 판독가능 매체"라는 용어는 명령어(816)를 저장할 수 있는 단일 매체 또는 다중 매체(예컨대, 중앙 집중식 또는 분산형 데이터베이스, 또는 연관된 캐시 및 서버)를 포함하는 것으로 간주되어야 한다. "머신 판독가능 매체"라는 용어는 또한, 머신(예컨대, 머신(800))에 의한 실행을 위한 명령어(예컨대, 명령어(816))를 저장할 수 있는 임의의 매체 또는 다수 매체의 조합을 포함하도록 간주되어야 하는데, 명령어는 머신(800)의 하나 이상의 프로세서(예컨대, 프로세서(810))에 의해 실행될 때 머신(800)으로 하여금 여기에 설명된 방법들 중 임의의 하나 이상을 수행하게 한다. 따라서, "머신-판독가능 매체"는 다수의 저장 장치 또는 디바이스를 포함하는 "클라우드 기반" 저장 시스템 또는 저장 네트워크뿐만 아니라 단일 저장 장치 또는 디바이스를 지칭한다.
I/O 구성요소(850)는 입력을 수신하고, 출력을 제공하고, 출력을 생성하고, 정보를 전송하고, 정보를 교환하고, 측정을 포착하는 등을 수행하는 다양한 구성요소를 포함할 수 있다. 특정 머신에 포함되는 특정 I/O 구성요소(850)는 머신의 유형에 의존할 것이다. 예를 들어, 휴대 전화와 같은 휴대용 머신은 아마도 터치 입력 디바이스 또는 이러한 다른 입력 디바이스를 포함할 것이지만, 헤드리스 서버 컴퓨터는 이러한 터치 입력 디바이스를 포함하지 않을 것이다. I/O 구성요소(850)는 도 8에 도시되지 않은 많은 다른 구성요소를 포함할 수 있음이 인식될 것이다. I/O 구성요소(850)는 단지 이어지는 설명을 단순화하기 위해 기능에 따라 그룹화되며, 그룹화는 결코 제한적이지 않다. 다양한 예시적 실시예에서, I/O 구성요소(850)는 출력 구성요소(852) 및 입력 구성요소(854)를 포함할 수 있다. 출력 구성요소(852)는, 시각적 구성요소(예컨대, 플라즈마 디스플레이 패널(PDP), 발광 다이오드(LED) 디스플레이, 액정 디스플레이(LCD), 프로젝터, 또는 음극선관(CRT)), 음향 구성요소(예컨대, 스피커), 햅틱 구성요소(예컨대, 진동 모터, 저항 메커니즘), 다른 신호 생성기 등을 포함할 수 있다. 입력 구성요소(854)는, 영숫자 입력 구성요소(예컨대, 키보드, 영숫자 입력을 수신하도록 구성된 터치 스크린, 포토-옵티컬 키보드 또는 다른 영숫자 입력 구성요소), 포인트 기반 입력 구성요소(예컨대, 마우스, 터치패드, 트랙볼, 조이스틱, 움직임 센서, 또는 다른 포인팅 기구), 촉각 입력 구성요소(예컨대, 물리적 버튼, 터치 또는 터치 제스처의 위치 및/또는 힘을 제공하는 터치 스크린, 또는 다른 촉각 입력 구성요소), 오디오 입력 구성요소(예컨대, 마이크로폰) 등을 포함할 수 있다.
또 다른 예시적 실시예에서, I/O 구성요소(850)는 광범위한 다른 구성요소들 중에서 생체 측정 구성요소(856), 움직임 구성요소(858), 환경 구성요소(860), 또는 포지션 구성요소를 포함할 수 있다. 예를 들어, 생체 측정 구성요소(856)는 표현(예컨대, 손 표현, 표정, 보컬 표현, 몸짓 또는 눈 추적)을 검출하고, 생체 신호(예컨대, 혈압, 심박수, 체온, 땀 또는 뇌파)를 측정하고, 사람을 식별(예컨대, 음성 식별, 망막 식별, 안면 식별, 지문 식별 또는 뇌전도 기반 식별)하는 등을 수행하는 구성요소를 포함할 수 있다. 움직임 구성요소(858)는 가속 센서 구성요소(예컨대, 가속도계), 중력 센서 구성요소, 회전 센서 구성요소(예컨대, 자이로스코프) 등을 포함할 수 있다. 환경 구성요소(860)는 예를 들어, 조명 센서 구성요소(예컨대, 광도계), 온도 센서 구성요소(예컨대, 주위 온도를 검출하는 하나 이상의 온도계), 습도 센서 구성요소, 압력 센서 구성요소(예컨대, 기압계), 음향 센서 구성요소(예컨대, 배경 잡음을 검출하는 하나 이상의 마이크로폰), 근접성 센서 구성요소(예컨대, 주변 물체를 검출하는 적외선 센서), 가스 센서(예컨대, 안전을 위해 유해 가스의 농도를 검출하거나 대기중 오염 물질을 측정하기 위한 가스 검출 센서), 또는 주변 물리적 환경에 대응하는 표시, 측정 또는 신호를 제공할 수 있는 다른 구성요소를 포함할 수 있다. 포지션 구성요소(862)는 위치 센서 구성요소(예컨대, GPS(Global Position System) 수신기 구성요소), 고도 센서 구성요소(고도가 유도될 수 있는 공기압을 검출하는 고도계 또는 기압계), 방향 센서 구성요소(예컨대, 자력계) 등을 포함할 수 있다.
통신은 다양한 기술을 사용하여 구현될 수 있다. I/O 구성요소(850)는 각각 커플링(882) 및 커플링(872)을 통해 머신(800)을 네트워크(880) 또는 디바이스(870)에 결합하도록 동작 가능한 통신 구성요소(864)를 포함할 수 있다. 예를 들어, 통신 구성요소(864)는 네트워크 인터페이스 구성요소, 또는 네트워크(880)와 인터페이스하는 다른 적절한 디바이스를 포함할 수 있다. 추가적인 예에서, 통신 구성요소(864)는 유선 통신 구성요소, 무선 통신 구성요소, 셀룰러 통신 구성요소, NFC(Near Field Communication) 구성요소, 블루투스(Bluetooth®) 구성요소(예컨대, 저전력 블루투스(Bluetooth® Low Energy)), Wi-Fi® 구성요소, 및 다른 방식을 통해 통신을 제공하는 다른 통신 구성요소를 포함할 수 있다. 디바이스(870)는 다른 머신 또는 다양한 주변 디바이스(예컨대, USB(Universal Serial Bus)를 통해 결합된 주변 디바이스) 중 임의의 것일 수 있다.
또한, 통신 구성요소(864)는 식별자를 검출할 수 있거나, 식별자를 검출하도록 동작 가능한 구성요소를 포함할 수 있다. 예를 들어, 통신 구성요소(864)는 RFID(Radio Frequency Identification) 태그 판독기 구성요소, NFC 스마트 태그 검출 구성요소, 광학 판독기 구성요소(예컨대, UPC(Universal Product Code) 바코드와 같은 1차원 바코드, QR(Quick Response) 코드, 아즈텍 코드(Aztec code), 데이터 매트릭스(Data Matrix), 데이터글리프(Dataglyph), 맥시코드(MaxiCode), PDF417, 울트라 코드(Ultra Code), UCC RSS-2D 바코드와 같은 다차원 바코드, 및 다른 광학 코드를 검출하는 광학 센서), 또는 음향 검출 구성요소(예컨대, 태깅된 오디오 신호를 식별하는 마이크로폰)를 포함할 수 있다. 또한, 인터넷 프로토콜(IP) 지리적 위치를 통한 위치, Wi-Fi® 신호 삼각측량을 통한 위치, 특정 위치를 나타낼 수 있는 NFC 비콘 신호의 검출을 통한 위치 등과 같은 다양한 정보가 통신 구성요소(864)를 통해 도출될 수 있다.
전송 매체
다양한 예시적 실시예에서, 네트워크(880)의 하나 이상의 포트는, 애드혹 네트워크, 인트라넷, 엑스트라넷, VPN(virtual private network), LAN(local area network), 무선 LAN(WLAN), WAN(wide area network), 무선 WAN(WWAN), MAN(Metropolitan Area Network), 인터넷, 인터넷의 일부, PSTN(Public Switched Telephone Network)의 일부, POTS(plain old telephone service) 네트워크, 셀룰러 전화 네트워크, 무선 네트워크, Wi-Fi® 네트워크, 다른 유형의 네트워크, 또는 둘 이상의 이러한 네트워크의 조합일 수 있다. 예를 들어, 네트워크(880) 또는 네트워크(880)의 일부는 무선 또는 셀룰러 네트워크를 포함할 수 있고, 커플링(882)은 CDMA(Code Division Multiple Access) 접속, GSM(Global System for Mobile communications) 접속, 또는 다른 유형의 셀룰러 또는 무선 커플링일 수 있다. 이 예에서, 커플링(882)은, 1xRTT(Single Carrier Radio Transmission Technology), EVDO(Evolution-Data Optimized) 기술, GPRS(General Packet Radio Service) 기술, EDGE(Enhanced Data rates for GSM Evolution) 기술, 3G를 포함하는 3GPP(third Generation Partnership Project), 4G(fourth generation wireless) 네트워크, UMTS(Universal Mobile Telecommunications System), HSPA(High Speed Packet Access), WiMAX(Worldwide Interoperability for Microwave Access), LTE(Long Term Evolution) 표준, 다양한 표준 설정 기구에 의해 정의된 것들, 또는 다른 데이터 전송 기술과 같은 다양한 유형의 데이터 전송 기술 중 임의의 것을 구현할 수 있다.
명령어(816)는, 네트워크 인터페이스 디바이스(예컨대, 통신 구성요소(864)에 포함된 네트워크 인터페이스 구성요소)를 통한 전송 매체를 사용하고 다수의 공지된 전송 프로토콜(예컨대, HTTP(hypertext transfer protocol)) 중 임의의 것을 이용하여 네트워크(880)를 통해 송신되거나 수신될 수 있다. 유사하게, 명령어(816)는 디바이스(870)에 대한 커플링(872)(예컨대, 피어 투 피어 커플링)을 통해 전송 매체를 사용하여 송신되거나 수신될 수 있다. "전송 매체"라는 용어는 머신(800)에 의한 실행을 위해 명령(816)을 저장, 인코딩 또는 운반할 수 있는 임의의 무형의 매체를 포함하는 것으로 간주되어야 하며, 디지털 또는 아날로그 통신 신호 또는 그러한 소프트웨어의 통신을 가능하게 하는 다른 무형의 매체를 포함한다. 캐리어 매체는 머신 또는 컴퓨터 판독가능 명령어를 운반하는 임의의 매체를 포함한다. 전송 매체 및 머신 판독가능 매체는 캐리어 매체의 실시예이다.
이하의 번호 매겨진 예는 실시예이다.
1. 클라이언트 시스템으로부터 제 1 언어로 검색 질의를 수신하는 단계와,
상기 검색 질의와 연관된 시맨틱 의미 벡터(semantic meaning vector)를 생성하는 단계와,
복수의 아이템 레코드와 연관된 복수의 시맨틱 의미 벡터에 액세스하는 단계 - 상기 아이템 레코드 중 적어도 일부는 상기 제 1 언어로 작성되지 않음 - 와,
아이템 레코드와 연관된 각각의 시맨틱 의미 벡터에 대해,
상기 각각의 시맨틱 의미 벡터를 상기 검색 질의와 연관된 시맨틱 의미 벡터와 비교하는 단계와,
상기 아이템 레코드와 연관된 시맨틱 의미 벡터와 상기 검색 질의와 연관된 시맨틱 의미 벡터 사이의 비교에 기초하여 하나 이상의 아이템 레코드를 선택하는 단계와,
각각의 선택된 아이템 레코드에 대해,
상기 각각의 아이템 레코드가 상기 제 1 언어로 작성되어 있는지 여부를 판정하는 단계와,
상기 각각의 아이템 레코드가 상기 제 1 언어로 작성되어 있지 않다는 판정에 따라, 상기 각각의 아이템 레코드를 상기 제 1 언어로 자동 번역하는 단계와,
상기 하나 이상의 선택된 아이템 레코드를 디스플레이를 위해 상기 클라이언트 시스템으로 전송하는 단계를 포함하는
방법.
2. 예 1에 있어서,
상기 아이템 레코드는 복수의 상이한 언어로 작성되는
방법.
3. 예 1에 있어서,
네트워크 기반 상거래 시스템에 포함하기 위한 아이템 레코드를 수신하는 단계와,
상기 수신된 아이템 레코드에 대한 시맨틱 의미 벡터를 생성하는 단계와,
상기 네트워크 기반 상거래 시스템에 있는 데이터베이스에 상기 시맨틱 의미 벡터를 저장하는 단계를 더 포함하는
방법.
4. 예 3에 있어서,
상기 시맨틱 의미 벡터를 저장하는 단계는,
상기 시맨틱 의미 벡터와 연관된 아이템 레코드를 분석하여 상기 시맨틱 의미 벡터와 연관된 제품 카테고리를 식별하는 단계와,
각각의 시맨틱 의미 벡터가 결정된 상기 제품 카테고리와 연관되도록 상기 데이터베이스를 체계화(organize)하는 단계를 더 포함하는
방법.
5. 예 1 내지 예 4 중 어느 한 예에 있어서,
상기 각각의 시맨틱 의미 벡터를 상기 검색 질의와 연관된 시맨틱 의미 벡터와 비교하는 단계는, 상기 검색 질의와 연관된 시맨틱 의미 벡터와 상기 각각의 시맨틱 의미 벡터 사이의 근접성 점수(closeness score)를 계산하는 단계를 더 포함하는
방법.
6. 예 5에 있어서,
상기 계산된 근접성 점수에 기초하여 상기 복수의 시맨틱 의미 벡터를 순위화하는 단계를 더 포함하는
방법.
7. 예 6에 있어서,
상기 하나 이상의 아이템 레코드는 각각의 시맨틱 의미 벡터와 연관된 순위에 적어도 부분적으로 기초하여 선택되는
방법.
8. 예 4, 예 6 또는 예 7 중 어느 한 예에 있어서,
상기 복수의 아이템 레코드와 연관된 복수의 시맨틱 의미 벡터에 액세스하는 단계는,
상기 검색 질의를 분석하여 상기 검색 질의와 연관된 하나 이상의 제품 카테고리를 식별하는 단계와,
상기 식별된 하나 이상의 제품 카테고리와 연관되는 시맨틱 의미 벡터에 액세스하는 단계를 더 포함하는
방법.
9. 예 1 내지 예 8 중 어느 한 예에 있어서,
상기 검색 질의와 연관된 시맨틱 의미 벡터를 생성하는 단계는,
상기 검색 질의와 연관된 상기 제 1 언어를 식별하는 단계와,
상기 식별된 제 1 언어와 연관된 시맨틱 의미 벡터 생성 모델을 선택하는 단계와,
상기 선택된 시맨틱 의미 벡터 생성 모델을 사용하여 상기 검색 질의에 대한 시맨틱 의미 벡터를 생성하는 단계를 더 포함하는
방법.
10. 하나 이상의 프로세서와,
메모리와,
상기 메모리에 저장된 하나 이상의 프로그램을 포함하되,
상기 하나 이상의 프로그램은,
클라이언트 시스템으로부터 제 1 언어로 검색 질의를 수신하는 것과,
상기 검색 질의와 연관된 시맨틱 의미 벡터를 생성하는 것과,
복수의 아이템 레코드와 연관된 복수의 시맨틱 의미 벡터에 액세스하는 것 - 상기 아이템 레코드 중 적어도 일부는 상기 제 1 언어로 작성되지 않음 - 과,
아이템 레코드와 연관된 각각의 시맨틱 의미 벡터에 대해,
상기 각각의 시맨틱 의미 벡터를 상기 검색 질의와 연관된 시맨틱 의미 벡터와 비교하는 것과,
상기 아이템 레코드와 연관된 시맨틱 의미 벡터와 상기 검색 질의와 연관된 시맨틱 의미 벡터 사이의 비교에 기초하여 하나 이상의 아이템 레코드를 선택하는 것과,
각각의 선택된 아이템 레코드에 대해,
상기 각각의 아이템 레코드가 상기 제 1 언어로 작성되어 있는지 여부를 판정하는 것과,
상기 각각의 아이템 레코드가 상기 제 1 언어로 작성되어 있지 않다는 판정에 따라, 상기 각각의 아이템 레코드를 상기 제 1 언어로 자동 번역하는 것과,
상기 하나 이상의 선택된 아이템 레코드를 디스플레이를 위해 상기 클라이언트 시스템으로 전송하는 것
을 위해 상기 하나 이상의 프로세서에 의해 실행되는 것인
시스템.
11. 예 10에 있어서,
상기 아이템 레코드는 복수의 상이한 언어로 작성되는
시스템.
12. 예 10 또는 예 11에 있어서,
네트워크 기반 상거래 시스템에 포함하기 위한 아이템 레코드를 수신하는 것과,
상기 수신된 아이템 레코드에 대한 시맨틱 의미 벡터를 생성하는 것과,
상기 네트워크 기반 상거래 시스템에 있는 데이터베이스에 상기 시맨틱 의미 벡터를 저장하는 것을 더 포함하는
시스템.
13. 예 12에 있어서,
상기 시맨틱 의미 벡터를 저장하는 것은,
상기 시맨틱 의미 벡터와 연관된 아이템 레코드를 분석하여 상기 시맨틱 의미 벡터와 연관된 제품 카테고리를 식별하는 것과,
각각의 시맨틱 의미 벡터가 결정된 상기 제품 카테고리와 연관되도록 상기 데이터베이스를 체계화하는 것을 더 포함하는
시스템.
14. 예 10 내지 예 13 중 어느 한 예에 있어서,
상기 각각의 시맨틱 의미 벡터를 상기 검색 질의와 연관된 시맨틱 의미 벡터와 비교하는 것은, 상기 검색 질의와 연관된 시맨틱 의미 벡터와 상기 각각의 시맨틱 의미 벡터 사이의 근접성 점수를 계산하는 것을 더 포함하는
시스템.
15. 예 14에 있어서,
상기 계산된 근접성 점수에 기초하여 상기 복수의 시맨틱 의미 벡터를 순위화하는 것을 더 포함하는
시스템.
16. 명령어를 저장하는 컴퓨터 판독가능 저장 매체로서,
상기 명령어는 머신의 하나 이상의 프로세서에 의해 실행될 때, 상기 머신으로 하여금,
클라이언트 시스템으로부터 제 1 언어로 검색 질의를 수신하는 것과,
상기 검색 질의와 연관된 시맨틱 의미 벡터를 생성하는 것과,
복수의 아이템 레코드와 연관된 복수의 시맨틱 의미 벡터에 액세스하는 것 - 상기 아이템 레코드 중 적어도 일부는 상기 제 1 언어로 작성되지 않음 - 과,
아이템 레코드와 연관된 각각의 시맨틱 의미 벡터에 대해,
상기 각각의 시맨틱 의미 벡터를 상기 검색 질의와 연관된 시맨틱 의미 벡터와 비교하는 것과,
상기 아이템 레코드와 연관된 시맨틱 의미 벡터와 상기 검색 질의와 연관된 시맨틱 의미 벡터 사이의 비교에 기초하여 하나 이상의 아이템 레코드를 선택하는 것과,
각각의 선택된 아이템 레코드에 대해,
상기 각각의 아이템 레코드가 상기 제 1 언어로 작성되어 있는지 여부를 판정하는 것과,
상기 각각의 아이템 레코드가 상기 제 1 언어로 작성되어 있지 않다는 판정에 따라, 상기 각각의 아이템 레코드를 상기 제 1 언어로 자동 번역하는 것과,
상기 하나 이상의 선택된 아이템 레코드를 디스플레이를 위해 상기 클라이언트 시스템으로 전송하는 것
을 포함하는 동작을 수행하게 하는
컴퓨터 판독가능 저장 매체.
17. 예 16에 있어서,
상기 아이템 레코드는 복수의 상이한 언어로 작성되는
컴퓨터 판독가능 저장 매체.
18. 예 16 또는 예 17에 있어서,
네트워크 기반 상거래 시스템에 포함하기 위한 아이템 레코드를 수신하는 것과,
상기 수신된 아이템 레코드에 대한 시맨틱 의미 벡터를 생성하는 것과,
상기 네트워크 기반 상거래 시스템에 있는 데이터베이스에 상기 시맨틱 의미 벡터를 저장하는 것을 더 포함하는
컴퓨터 판독가능 저장 매체.
19. 예 18에 있어서,
상기 시맨틱 의미 벡터를 저장하는 것은,
상기 시맨틱 의미 벡터와 연관된 아이템 레코드를 분석하여 상기 시맨틱 의미 벡터와 연관된 제품 카테고리를 식별하는 것과,
각각의 시맨틱 의미 벡터가 결정된 상기 제품 카테고리와 연관되도록 상기 데이터베이스를 체계화하는 것을 더 포함하는
컴퓨터 판독가능 저장 매체.
20. 예 16 내지 예 19 중 어느 한 예에 있어서,
상기 각각의 시맨틱 의미 벡터를 상기 검색 질의와 연관된 시맨틱 의미 벡터와 비교하는 것은, 상기 검색 질의와 연관된 시맨틱 의미 벡터와 상기 각각의 시맨틱 의미 벡터 사이의 근접성 점수를 계산하는 것을 더 포함하는
컴퓨터 판독가능 저장 매체.
21. 머신의 하나 이상의 프로세서에 의해 실행될 때 상기 머신으로 하여금 예 1 내지 예 9 중 어느 한 예의 방법을 수행하게 하는 머신 판독가능 명령어를 운반하는 캐리어 매체.
언어
이 명세서 전반에 걸쳐, 복수의 인스턴스는 단일 인스턴스로 설명된 구성요소, 동작 또는 구조를 구현할 수 있다. 하나 이상의 방법의 개별 동작들은 분리된 동작들로 도시되고 설명되지만, 개별 동작들 중 하나 이상은 동시에 수행될 수 있으며, 동작은 반드시 예시된 순서대로 수행될 필요가 없다. 예시적 구성에서 분리된 구성요소들로서 제시된 구조 및 기능은 결합된 구조 또는 구성요소로서 구현될 수 있다. 유사하게, 단일 구성요소로서 제시된 구조 및 기능은 분리된 구성요소들로서 구현될 수 있다. 이들 및 다른 변형, 수정, 추가 및 개선은 본 발명의 범위 내에 있다.
본 발명의 개요가 특정 예시적 실시예들을 참조하여 설명되었지만, 본 개시물의 보다 넓은 범위의 실시예에서 벗어남 없이 이러한 실시예에 대한 수정 및 변경이 이루어질 수 있다. 본 발명의 이러한 실시예들은 여기에서, 사실상 2개 이상이 개시되는 경우 본 출원의 범위를 임의의 단일 개시 또는 발명적 개념으로 자발적으로 제한하고자 하는 의도 없이, 단순히 편의상 "발명"이라는 용어에 의해 개별적으로 또는 집합적으로 지칭된다.
여기에 예시된 실시예는 당업자가 개시된 교시를 실시할 수 있도록 충분히 상세하게 설명된다. 본 개시물의 범위를 벗어나지 않고 구조적 및 논리적 대체 및 변경이 이루어질 수 있도록, 그로부터 다른 실시예들이 사용 및 유도될 수 있다. 따라서, 상세한 설명은 제한적인 의미로 간주되어서는 안되며, 다양한 실시예의 범위는 첨부된 청구 범위와 그러한 청구 범위가 부여받는 등가물의 전체 범위에 의해서만 정의된다.
여기에서 사용될 때, "또는"이라는 용어는 포괄적 또는 배타적 의미로 해석될 수 있다. 또한, 여기에서 단일 인스턴스로서 설명된 자원, 동작 또는 구조에 대해 복수의 인스턴스가 제공될 수 있다. 또한, 다양한 자원, 동작, 모듈, 엔진 및 데이터 스토어 사이의 경계는 다소 임의적이며, 특정 동작은 특정 예시적 구성의 맥락에서 설명된다. 기능의 다른 할당들이 구상되고 본 개시물의 다양한 실시예의 범위 내에 있을 수 있다. 일반적으로, 예시적 구성에서 분리된 자원들로서 제시된 구조 및 기능은 결합된 구조 또는 자원으로서 구현될 수 있다. 유사하게, 단일 자원으로서 제시된 구조 및 기능은 분리된 자원들로서 구현될 수 있다. 이들 및 다른 변형, 수정, 추가 및 개선은 첨부된 청구 범위에 의해 제시되는 본 개시물의 실시예의 범위 내에 있다. 따라서, 상세한 설명 및 도면은 제한적 의미가 아니라 예시적인 것으로 간주되어야 한다.

Claims (21)

  1. 클라이언트 시스템으로부터 제 1 언어로 검색 질의를 수신하는 단계와,
    상기 검색 질의와 연관된 시맨틱 의미 벡터(semantic meaning vector)를 생성하는 단계와,
    복수의 아이템 레코드와 연관된 복수의 시맨틱 의미 벡터에 액세스하는 단계 - 상기 아이템 레코드 중 적어도 일부는 상기 제 1 언어로 작성되지 않음 - 와,
    아이템 레코드와 연관된 각각의 시맨틱 의미 벡터에 대해,
    상기 각각의 시맨틱 의미 벡터를 상기 검색 질의와 연관된 시맨틱 의미 벡터와 비교하는 단계와,
    상기 아이템 레코드와 연관된 시맨틱 의미 벡터와 상기 검색 질의와 연관된 시맨틱 의미 벡터 사이의 비교에 기초하여 하나 이상의 아이템 레코드를 선택하는 단계와,
    각각의 선택된 아이템 레코드에 대해,
    상기 각각의 아이템 레코드가 상기 제 1 언어로 작성되어 있는지 여부를 판정하는 단계와,
    상기 각각의 아이템 레코드가 상기 제 1 언어로 작성되어 있지 않다는 판정에 따라, 상기 각각의 아이템 레코드를 상기 제 1 언어로 자동 번역하는 단계와,
    상기 하나 이상의 선택된 아이템 레코드를 디스플레이를 위해 상기 클라이언트 시스템으로 전송하는 단계를 포함하는
    방법.
  2. 제 1 항에 있어서,
    상기 아이템 레코드는 복수의 상이한 언어로 작성되는
    방법.
  3. 제 1 항에 있어서,
    네트워크 기반 상거래 시스템에 포함하기 위한 아이템 레코드를 수신하는 단계와,
    상기 수신된 아이템 레코드에 대한 시맨틱 의미 벡터를 생성하는 단계와,
    상기 네트워크 기반 상거래 시스템에 있는 데이터베이스에 상기 시맨틱 의미 벡터를 저장하는 단계를 더 포함하는
    방법.
  4. 제 3 항에 있어서,
    상기 시맨틱 의미 벡터를 저장하는 단계는,
    상기 시맨틱 의미 벡터와 연관된 아이템 레코드를 분석하여 상기 시맨틱 의미 벡터와 연관된 제품 카테고리를 식별하는 단계와,
    각각의 시맨틱 의미 벡터가 결정된 상기 제품 카테고리와 연관되도록 상기 데이터베이스를 체계화(organize)하는 단계를 더 포함하는
    방법.
  5. 제 1 항에 있어서,
    상기 각각의 시맨틱 의미 벡터를 상기 검색 질의와 연관된 시맨틱 의미 벡터와 비교하는 단계는, 상기 검색 질의와 연관된 시맨틱 의미 벡터와 상기 각각의 시맨틱 의미 벡터 사이의 근접성 점수(closeness score)를 계산하는 단계를 더 포함하는
    방법.
  6. 제 5 항에 있어서,
    상기 계산된 근접성 점수에 기초하여 상기 복수의 시맨틱 의미 벡터를 순위화하는 단계를 더 포함하는
    방법.
  7. 제 6 항에 있어서,
    상기 하나 이상의 아이템 레코드는 각각의 시맨틱 의미 벡터와 연관된 순위에 적어도 부분적으로 기초하여 선택되는
    방법.
  8. 제 4 항에 있어서,
    상기 복수의 아이템 레코드와 연관된 복수의 시맨틱 의미 벡터에 액세스하는 단계는,
    상기 검색 질의를 분석하여 상기 검색 질의와 연관된 하나 이상의 제품 카테고리를 식별하는 단계와,
    상기 식별된 하나 이상의 제품 카테고리와 연관되는 시맨틱 의미 벡터에 액세스하는 단계를 더 포함하는
    방법.
  9. 제 1 항에 있어서,
    상기 검색 질의와 연관된 시맨틱 의미 벡터를 생성하는 단계는,
    상기 검색 질의와 연관된 상기 제 1 언어를 식별하는 단계와,
    상기 식별된 제 1 언어와 연관된 시맨틱 의미 벡터 생성 모델을 선택하는 단계와,
    상기 선택된 시맨틱 의미 벡터 생성 모델을 사용하여 상기 검색 질의에 대한 시맨틱 의미 벡터를 생성하는 단계를 더 포함하는
    방법.
  10. 하나 이상의 프로세서와,
    메모리와,
    상기 메모리에 저장된 하나 이상의 프로그램을 포함하되,
    상기 하나 이상의 프로그램은,
    클라이언트 시스템으로부터 제 1 언어로 검색 질의를 수신하는 것과,
    상기 검색 질의와 연관된 시맨틱 의미 벡터를 생성하는 것과,
    복수의 아이템 레코드와 연관된 복수의 시맨틱 의미 벡터에 액세스하는 것 - 상기 아이템 레코드 중 적어도 일부는 상기 제 1 언어로 작성되지 않음 - 과,
    아이템 레코드와 연관된 각각의 시맨틱 의미 벡터에 대해,
    상기 각각의 시맨틱 의미 벡터를 상기 검색 질의와 연관된 시맨틱 의미 벡터와 비교하는 것과,
    상기 아이템 레코드와 연관된 시맨틱 의미 벡터와 상기 검색 질의와 연관된 시맨틱 의미 벡터 사이의 비교에 기초하여 하나 이상의 아이템 레코드를 선택하는 것과,
    각각의 선택된 아이템 레코드에 대해,
    상기 각각의 아이템 레코드가 상기 제 1 언어로 작성되어 있는지 여부를 판정하는 것과,
    상기 각각의 아이템 레코드가 상기 제 1 언어로 작성되어 있지 않다는 판정에 따라, 상기 각각의 아이템 레코드를 상기 제 1 언어로 자동 번역하는 것과,
    상기 하나 이상의 선택된 아이템 레코드를 디스플레이를 위해 상기 클라이언트 시스템으로 전송하는 것
    을 위해 상기 하나 이상의 프로세서에 의해 실행되는 것인
    시스템.
  11. 제 10 항에 있어서,
    상기 아이템 레코드는 복수의 상이한 언어로 작성되는
    시스템.
  12. 제 10 항에 있어서,
    네트워크 기반 상거래 시스템에 포함하기 위한 아이템 레코드를 수신하는 것과,
    상기 수신된 아이템 레코드에 대한 시맨틱 의미 벡터를 생성하는 것과,
    상기 네트워크 기반 상거래 시스템에 있는 데이터베이스에 상기 시맨틱 의미 벡터를 저장하는 것을 더 포함하는
    시스템.
  13. 제 12 항에 있어서,
    상기 시맨틱 의미 벡터를 저장하는 것은,
    상기 시맨틱 의미 벡터와 연관된 아이템 레코드를 분석하여 상기 시맨틱 의미 벡터와 연관된 제품 카테고리를 식별하는 것과,
    각각의 시맨틱 의미 벡터가 결정된 상기 제품 카테고리와 연관되도록 상기 데이터베이스를 체계화하는 것을 더 포함하는
    시스템.
  14. 제 10 항에 있어서,
    상기 각각의 시맨틱 의미 벡터를 상기 검색 질의와 연관된 시맨틱 의미 벡터와 비교하는 것은, 상기 검색 질의와 연관된 시맨틱 의미 벡터와 상기 각각의 시맨틱 의미 벡터 사이의 근접성 점수를 계산하는 것을 더 포함하는
    시스템.
  15. 제 14 항에 있어서,
    상기 계산된 근접성 점수에 기초하여 상기 복수의 시맨틱 의미 벡터를 순위화하는 것을 더 포함하는
    시스템.
  16. 명령어를 저장하는 컴퓨터 판독가능 저장 매체로서,
    상기 명령어는 머신의 하나 이상의 프로세서에 의해 실행될 때, 상기 머신으로 하여금,
    클라이언트 시스템으로부터 제 1 언어로 검색 질의를 수신하는 것과,
    상기 검색 질의와 연관된 시맨틱 의미 벡터를 생성하는 것과,
    복수의 아이템 레코드와 연관된 복수의 시맨틱 의미 벡터에 액세스하는 것 - 상기 아이템 레코드 중 적어도 일부는 상기 제 1 언어로 작성되지 않음 - 과,
    아이템 레코드와 연관된 각각의 시맨틱 의미 벡터에 대해,
    상기 각각의 시맨틱 의미 벡터를 상기 검색 질의와 연관된 시맨틱 의미 벡터와 비교하는 것과,
    상기 아이템 레코드와 연관된 시맨틱 의미 벡터와 상기 검색 질의와 연관된 시맨틱 의미 벡터 사이의 비교에 기초하여 하나 이상의 아이템 레코드를 선택하는 것과,
    각각의 선택된 아이템 레코드에 대해,
    상기 각각의 아이템 레코드가 상기 제 1 언어로 작성되어 있는지 여부를 판정하는 것과,
    상기 각각의 아이템 레코드가 상기 제 1 언어로 작성되어 있지 않다는 판정에 따라, 상기 각각의 아이템 레코드를 상기 제 1 언어로 자동 번역하는 것과,
    상기 하나 이상의 선택된 아이템 레코드를 디스플레이를 위해 상기 클라이언트 시스템으로 전송하는 것
    을 포함하는 동작을 수행하게 하는
    컴퓨터 판독가능 저장 매체.
  17. 제 16 항에 있어서,
    상기 아이템 레코드는 복수의 상이한 언어로 작성되는
    컴퓨터 판독가능 저장 매체.
  18. 제 16 항에 있어서,
    네트워크 기반 상거래 시스템에 포함하기 위한 아이템 레코드를 수신하는 것과,
    상기 수신된 아이템 레코드에 대한 시맨틱 의미 벡터를 생성하는 것과,
    상기 네트워크 기반 상거래 시스템에 있는 데이터베이스에 상기 시맨틱 의미 벡터를 저장하는 것을 더 포함하는
    컴퓨터 판독가능 저장 매체.
  19. 제 18 항에 있어서,
    상기 시맨틱 의미 벡터를 저장하는 것은,
    상기 시맨틱 의미 벡터와 연관된 아이템 레코드를 분석하여 상기 시맨틱 의미 벡터와 연관된 제품 카테고리를 식별하는 것과,
    각각의 시맨틱 의미 벡터가 결정된 상기 제품 카테고리와 연관되도록 상기 데이터베이스를 체계화하는 것을 더 포함하는
    컴퓨터 판독가능 저장 매체.
  20. 제 16 항에 있어서,
    상기 각각의 시맨틱 의미 벡터를 상기 검색 질의와 연관된 시맨틱 의미 벡터와 비교하는 것은, 상기 검색 질의와 연관된 시맨틱 의미 벡터와 상기 각각의 시맨틱 의미 벡터 사이의 근접성 점수를 계산하는 것을 더 포함하는
    컴퓨터 판독가능 저장 매체.
  21. 머신의 하나 이상의 프로세서에 의해 실행될 때 상기 머신으로 하여금 제 1 항 내지 제 9 항 중 어느 한 항의 방법을 수행하게 하는 머신 판독가능 명령어를 운반하는 캐리어 매체.
KR1020187020879A 2015-12-21 2016-12-20 시맨틱 의미 벡터를 사용하는 교차 언어적 검색 KR20180095910A (ko)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
US201562270489P 2015-12-21 2015-12-21
US62/270,489 2015-12-21
US201662293922P 2016-02-11 2016-02-11
US201662294060P 2016-02-11 2016-02-11
US62/293,922 2016-02-11
US62/294,060 2016-02-11
US15/179,314 2016-06-10
US15/179,314 US20170177712A1 (en) 2015-12-21 2016-06-10 Single step cross-linguistic search using semantic meaning vectors
PCT/US2016/067725 WO2017112650A1 (en) 2015-12-21 2016-12-20 Cross-linguistic search using semantic meaning vectors

Publications (1)

Publication Number Publication Date
KR20180095910A true KR20180095910A (ko) 2018-08-28

Family

ID=59065128

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187020879A KR20180095910A (ko) 2015-12-21 2016-12-20 시맨틱 의미 벡터를 사용하는 교차 언어적 검색

Country Status (4)

Country Link
US (1) US20170177712A1 (ko)
KR (1) KR20180095910A (ko)
CN (1) CN108431809A (ko)
WO (1) WO2017112650A1 (ko)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180111979A (ko) 2016-02-11 2018-10-11 이베이 인크. 의미론적 카테고리 분류법
US10387888B2 (en) * 2016-07-08 2019-08-20 Asapp, Inc. Assisting entities in responding to a request of a user
US10635727B2 (en) 2016-08-16 2020-04-28 Ebay Inc. Semantic forward search indexing of publication corpus
CN110352423B (zh) * 2016-11-04 2021-04-20 渊慧科技有限公司 使用噪声信道模型生成目标序列的方法、存储介质和系统
WO2018107580A1 (zh) * 2016-12-15 2018-06-21 华为技术有限公司 一种信息提示的方法及装置
US10891673B1 (en) * 2016-12-22 2021-01-12 A9.Com, Inc. Semantic modeling for search
US11195099B2 (en) 2017-09-01 2021-12-07 Facebook, Inc. Detecting content items in violation of an online system policy using semantic vectors
US10936952B2 (en) 2017-09-01 2021-03-02 Facebook, Inc. Detecting content items in violation of an online system policy using templates based on semantic vectors representing content items
US10691734B2 (en) 2017-11-21 2020-06-23 International Business Machines Corporation Searching multilingual documents based on document structure extraction
US11663414B2 (en) * 2018-02-20 2023-05-30 Fluence Bioengineering, Inc. Controlled agricultural systems and methods of managing agricultural systems
US10599774B1 (en) * 2018-02-26 2020-03-24 Facebook, Inc. Evaluating content items based upon semantic similarity of text
IL258689A (en) 2018-04-12 2018-05-31 Browarnik Abel A system and method for computerized semantic indexing and searching
US10169315B1 (en) 2018-04-27 2019-01-01 Asapp, Inc. Removing personal information from text using a neural network
CN109086265B (zh) * 2018-06-29 2022-10-25 厦门快商通信息技术有限公司 一种语义训练方法、短文本中多语义词消歧方法
US11698921B2 (en) 2018-09-17 2023-07-11 Ebay Inc. Search system for providing search results using query understanding and semantic binary signatures
EP3634018A1 (en) * 2018-10-02 2020-04-08 Siemens Aktiengesellschaft System for data communication in a network of local devices
WO2020079748A1 (ja) * 2018-10-16 2020-04-23 株式会社島津製作所 事例検索方法および事例検索システム
US11144542B2 (en) * 2018-11-01 2021-10-12 Visa International Service Association Natural language processing system
US10747957B2 (en) * 2018-11-13 2020-08-18 Asapp, Inc. Processing communications using a prototype classifier
US11551004B2 (en) * 2018-11-13 2023-01-10 Asapp, Inc. Intent discovery with a prototype classifier
US11004449B2 (en) * 2018-11-29 2021-05-11 International Business Machines Corporation Vocal utterance based item inventory actions
US10956487B2 (en) * 2018-12-26 2021-03-23 Industrial Technology Research Institute Method for establishing and processing cross-language information and cross-language information system
US11106873B2 (en) * 2019-01-22 2021-08-31 Sap Se Context-based translation retrieval via multilingual space
US10621473B1 (en) * 2019-01-30 2020-04-14 StradVision, Inc. Method for providing object detecting system capable of updating types of detectable classes in real-time by using continual learning and devices using the same
US11429579B2 (en) * 2019-10-28 2022-08-30 International Business Machines Corporation Building a word embedding model to capture relational data semantics
US11663422B2 (en) * 2020-06-10 2023-05-30 Paypal, Inc. Systems and methods for providing multilingual support in an automated online chat system
US20230244705A1 (en) * 2020-06-11 2023-08-03 Shimadzu Corporation Method, System, and Device for Evaluating Performance of Document Search
CN112307304B (zh) * 2020-11-16 2024-04-12 深圳市欢太科技有限公司 热点搜索方法、装置、终端及存储介质
CN112328890B (zh) * 2020-11-23 2024-04-12 北京百度网讯科技有限公司 搜索地理位置点的方法、装置、设备及存储介质
CN113688213B (zh) * 2021-02-09 2023-09-29 鼎捷软件股份有限公司 应用程序接口服务搜寻系统及其搜寻方法
US20230177280A1 (en) * 2021-12-03 2023-06-08 Caterpillar Inc. Methods and systems for translating product or service information
US20230186319A1 (en) * 2021-12-10 2023-06-15 Paypal, Inc. Context-enhanced category classification

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6006221A (en) * 1995-08-16 1999-12-21 Syracuse University Multilingual document retrieval system and method using semantic vector matching
JP3114703B2 (ja) * 1998-07-02 2000-12-04 富士ゼロックス株式会社 対訳文検索装置
US8041697B2 (en) * 2007-08-31 2011-10-18 Microsoft Corporation Semi-automatic example-based induction of semantic translation rules to support natural language search
KR101582142B1 (ko) * 2008-06-06 2016-01-05 톰슨 라이센싱 이미지들의 유사성 검색을 위한 시스템 및 방법
CN102402561B (zh) * 2010-09-19 2014-03-26 中国移动通信集团四川有限公司 一种搜索方法和装置
US9684653B1 (en) * 2012-03-06 2017-06-20 Amazon Technologies, Inc. Foreign language translation using product information
US20150199339A1 (en) * 2014-01-14 2015-07-16 Xerox Corporation Semantic refining of cross-lingual information retrieval results

Also Published As

Publication number Publication date
WO2017112650A1 (en) 2017-06-29
US20170177712A1 (en) 2017-06-22
CN108431809A (zh) 2018-08-21

Similar Documents

Publication Publication Date Title
KR20180095910A (ko) 시맨틱 의미 벡터를 사용하는 교차 언어적 검색
US11227004B2 (en) Semantic category classification
US10963457B2 (en) Search query and job title proximity computation via word embedding
CN109844767B (zh) 基于图像分析和预测的可视化搜索
US10635727B2 (en) Semantic forward search indexing of publication corpus
US10430446B2 (en) Semantic reverse search indexing of publication corpus
US10268752B2 (en) Automatic taxonomy mapping using sequence semantic embedding
US11640436B2 (en) Methods and systems for query segmentation
US20230290171A1 (en) Parallel prediction of multiple image aspects
US10606873B2 (en) Search index trimming
US20180052929A1 (en) Search of publication corpus with multiple algorithms
KR20190095333A (ko) 앵커식 검색
US20230177579A1 (en) System and method for computing features that apply to infrequent queries
US20180107682A1 (en) Category prediction from semantic image clustering
US20170024663A1 (en) Category recommendation using statistical language modeling and a gradient boosting machine
US20210248172A1 (en) Automatic lot classification
EP3430528A1 (en) Catalogue management

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application