KR102354716B1 - 딥 러닝 모델을 이용한 상황 의존 검색 기법 - Google Patents

딥 러닝 모델을 이용한 상황 의존 검색 기법 Download PDF

Info

Publication number
KR102354716B1
KR102354716B1 KR1020167028529A KR20167028529A KR102354716B1 KR 102354716 B1 KR102354716 B1 KR 102354716B1 KR 1020167028529 A KR1020167028529 A KR 1020167028529A KR 20167028529 A KR20167028529 A KR 20167028529A KR 102354716 B1 KR102354716 B1 KR 102354716B1
Authority
KR
South Korea
Prior art keywords
document
context
query
information
ranking
Prior art date
Application number
KR1020167028529A
Other languages
English (en)
Other versions
KR20160144384A (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 KR20160144384A publication Critical patent/KR20160144384A/ko
Application granted granted Critical
Publication of KR102354716B1 publication Critical patent/KR102354716B1/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/248Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • G06N3/0454

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

상황 정보라고 표현되는, 질의가 제출된 상황을 기초로 한 검색 결과를 제공하기 위한 검색 엔진이 본 명세서에 기재된다. 상기 검색 엔진은 질의를 고려하여, 그리고 부분적으로 상황 개념 벡터, 및 모두 딥 러닝 모델(가령, 딥 신경 네트워크)를 이용해 생성된 복수의 문서 개념 벡터를 기초로 하여 복수의 문서를 순위화함으로써 동작한다. 상황 개념 벡터는 딥 러닝 모델을 이용해 의미 공간으로 투사된 상황 정보에 의해 형성된다. 각각의 문서 개념 벡터는 딥 러닝 모델을 이용해 동일한 의미 공간으로 투사된 특정 문서와 연관된 문서 정보에 의해 형성된다. 순위화는 의미 공간 내에서 상황에 관련성 있는 문서를 지지하고 상황과 관련성이 없는 문서를 배제함으로써 동작한다.

Description

딥 러닝 모델을 이용한 상황 의존 검색 기법{CONTEXT-SENSITIVE SEARCH USING A DEEP LEARNING MODEL}
검색 엔진은 순위 알고리즘(ranking algorithm)을 이용해 사용자가 입력한 질의(query)에 대한 문서의 관련도(relevance)를 순위화할 수 있다. 많은 경우, 순위 알고리즘은 사용자의 이전 검색-관련 행동에 매우 부합하는 결과를 제공한다. 예를 들어, 사용자가 검색어 "Michael Jordon"를 입력한 예시적 시나리오를 고려해 보자. 순위 알고리즘은 잘 알려진 농구 선수의 이름 Michael Jordon이 포함된 문서를 강조한 순위화 결과를 제공할 수 있다. 이 결과는 검색어 "Michael Jordon"을 입력한 사용자 중 압도적인 다수가 농구 선수 Michael Jordon과 관련된 문서를 액세스하는 데 관심을 가진다는 사실을 반영한다. 그러나 이름 "Michael Jordon"을 입력한 일부 사용자는 다른 관심 주제, 가령, Michael Jordon이라는 이름의 건축가가 수행한 작업물을 탐구하는 데 관심을 가질 수 있다. 이들 시나리오에서, 결과가 사용자의 실제 검색 의도의 관점에서 관련성 없는 많은 문서를 포함할 것이기 때문에, 검색 엔진은 사용자에게 형편없는 사용자 경험을 제공할 수 있다.
개요
질의(query)가 제출됐을 상황(context)에 부분적으로 기초로 하여 정보를 불러오기 위한 검색 엔진이 본 명세서에 기재된다. 이 검색 엔진은 딥 러닝 모델(deep learning model)을 이용해 (상황(context)과 연관된) 상황 정보를 의미 공간(semantic space)의 상황 개념 벡터로 투사하도록 동작할 수 있다. 또한 검색 엔진은 (각자의 문서와 연관된) 문서 정보의 복수의 인스턴스를 의미 공간의 복수의 문서 개념 벡터로 투사한다. 그 후 검색 엔진은 상황 개념 벡터를 각각의 문서 개념 벡터에 비교하여 복수의 관련도 척도를 산출할 수 있다. 각각의 관련도 척도는 질의의 상황에 대한 특정 문서의 의미 관련도를 반영한다. 그 후 검색 엔진은 관련도 척도 및 그 밖의 다른 가능한 순위화 특징을 기초로 문서를 순위화한다. 하이-레벨 관점에서, 검색 엔진은 의미 공간 내 상황과 관련성 있는 문서를 승급시키고 의미 공간 내 상황과 관련성 없는 문서를 배제시킨다. 결국, 검색 엔진은 질의를 제출한 사용자에게 더 유용한 검색 결과를 제공한다.
하나의 예시적 양태에 따르면, 상황 정보는 소스 문서 내에서 질의에 근접한 텍스트, 질의를 제출한 사용자와 관련된 인구통계적 정보, 질의가 제출된 시점, 질의가 제출된 위치, 질의를 제출한 사용자의 이전 검색-관련 행동 등, 또는 이들의 임의의 조합을 기술할 수 있다.
또 다른 예시적 특징에 따르면, 딥 러닝 네트워크는 다층 (딥) 신경 네트워크에 대응할 수 있다.
이 개요는 개념들의 모음을 단순화된 형태로 소개하기 위해 제공되며, 이들 개념은 이하의 상세한 설명에서 더 기재된다. 이 개요는 본 발명의 핵심 특징 또는 필수 특징을 식별하려는 것이 아니고 본 발명의 범위를 한정하려 사용되는 것도 아니다.
도 1은 검색 엔진이 사용자에 의해 제출된 질의를 질의와 연관된 상황 정보와 함께 처리하는 예시적 환경을 도시한다.
도 2는 도 1의 검색 엔진의 구성요소인 순위화 프레임워크의 한 가지 구현예를 도시한다.
도 3은 하이-레벨 의미 공간 내 개념 벡터를 도시한다.
도 4는 도 2에 소개된 순위화 프레임워크의 한 가지 구현예를 도시한다.
도 5는 도 2의 순위화 프레임워크의 또 다른 구현예를 도시한다.
도 6은 도 1의 환경의 한 가지 구현예를 도시한다.
도 7은 도 2의 순위화 프레임워크에 대한 추가 상세사항을 도시한다.
도 8은 도 7의 순위화 프레임워크의 구성요소인 의미 변환 모듈의 한 가지 구현예를 도시한다.
도 9는 도 8의 의미 변환 기능을 활용하는 도 2의 순위화 프레임워크의 또 다른 구현예를 도시한다.
도 10은 도 1에서 도시된 훈련 시스템의 한 가지 구현예를 도시한다. 훈련 시스템은 검색 엔진에 의해 사용될 모델을 생성한다.
도 11은 단일 문서의 처리와 관련하여, 도 2의 순위화 프레임워크의 동작의 예식적 방식을 보여주는 흐름도이다.
도 12는 복수의 문서의 처리와 관련하여, 도 2의 순위화 프레임워크의 동작의 예시적 방식을 보여주는 흐름도이다.
도 13은 도 8의 의미 변환 모듈의 동작의 한 가지 예시적 방식을 보여주는 흐름도이다.
도 14는 상기의 도면에서 나타난 특징들 중 임의의 양태를 구현하기 위해 사용될 수 있는 예시적 컴퓨팅 기능을 보여준다.
동일한 도면부호가 개시 내용 및 도면 전체에서 사용되어 유사한 구성요소 및 특징을 참조할 수 있다. 시리즈 100의 번호는 도 1에서 최초 발견된 특징부를 지칭하며, 시리즈 200 번호는 도 2에서 최초 발견된 특징부를 지칭하고, 시리즈 300 번호는 도 3에서 최초 발견된 특징부를 지칭하는 등이다.
본 명세서는 다음과 같이 구성된다. 섹션 A는 딥 러닝 모델(deep learning model)을 적용함으로써, 제출된 질의와 연관된 상황(context) 정보를 기반으로 검색을 수행하기 위한 예시적 기능부를 기술한다. 섹션 B는 섹션 A의 기능부의 동작을 설명하는 예시적 방법을 제공한다. 섹션 C는 섹션 A 및 B에서 기술된 특징의 임의의 형태를 구현하기 위해 사용될 수 있는 예시적 컴퓨팅 기능부를 기술한다.
선행 사항으로서, 도면들 중 일부가 기능부, 모듈, 특징부, 요소 등이라고 다양하게 지칭되는 하나 이상의 구조적 구성요소의 맥락에서 개념을 기술한다. 도면에 도시된 다양한 구성요소는 임의의 물리적이고 유형(tangible)인 수단에 의해 임의의 방식으로, 가령, 컴퓨터 장비 상에서 실행 중인 소프트웨어, 하드웨어(가령, 칩으로 구현되는 로직 기능부) 등, 및/또는 이들의 임의의 조합에 의해 구현될 수 있다. 한 경우에서, 도면의 다양한 구성요소들의 개별 유닛으로의 예시적 분리가 실제 구현예에서 대응하는 개별 물리적이고 유형인 구성요소의 사용을 반영할 수 있다. 대안적으로 또는 추가적으로, 도면에 도시된 임의의 단일 구성요소가 복수의 실제 물리적 구성요소에 의해 구현될 수 있다. 대안적으로 또는 추가적으로, 도면에의 임의의 둘 이상의 개별 구성요소의 도시가 단일 실제 물리적 구성요소에 의해 수행되는 서로 다른 기능을 반영할 수 있다. 도 14는, 차례로 기재되겠지만, 도면에서 나타난 기능들의 한 가지 예시적 물리 구현예에 대한 추가 상세사항을 제공한다.
또 다른 도면이 흐름도 형태로 개념을 기재한다. 이러한 형태에서, 특정 동작이 특정 순서로 수행되는 개별 블록을 구성하는 것으로 기재된다. 이러한 구현예는 예시이며 비제한적이다. 본 명세서에 기재되는 특정 블록들이 함께 그룹지어지고 단일 동작으로 수행될 수 있다. 특정 블록은 복수의 구성요소 블록으로 분할될 수 있고 특정 블록은 본 명세서에 도시된 것과 상이한 순서로(가령, 블록을 병렬로 수행) 수행될 수 있다. 흐름도에 나타난 블록은 임의의 방식으로 임의의 물리적이고 유형인 수단에 의해, 가령, 컴퓨터 장비 상에서 실행되는 소프트웨어, 하드웨어(가령, 칩으로 구현되는 로직 기능부) 등 및/또는 이들의 임의의 조합에 의해 구현될 수 있다.
용어와 관련하여, "~하도록 구성된(configured to)"이라는 구는 임의의 유형의 물리적이고 유형인 기능부가 식별된 동작을 수행하도록 구성될 수 있는 임의의 방식을 포함한다. 기능부는 예를 들어 컴퓨터 장비 상에서 실행되는 소프트웨어, 하드웨어(가령, 칩으로 구현되는 로직 기능부) 등 및/또는 이들의 임의의 조합을 이용해 동작을 수행하도록 구성될 수 있다.
용어 "로직"은 작업을 수행하기 위한 임의의 물리적이고 유형인 기능부를 포함한다. 예를 들어, 흐름도에 도시된 각각의 동작이 상기 동작을 수행하기 위한 로직 구성요소에 대응한다. 동작은 예를 들어 컴퓨터 장비 상에서 실행되는 소프트웨어, 하드웨어(가령, 칩으로 구현되는 로직 기능부) 등 및/또는 이들의 임의의 조합을 이용해 수행될 수 있다. 컴퓨팅 장비에 의해 구현될 때, 로직 구성요소는 구현되는 컴퓨팅 시스템의 물리적 부분인 전기적 구성요소를 나타낸다.
다음의 설명이 하나 이상의 특징을 "선택사항"인 것으로 식별할 수 있다. 이러한 유형의 서술은 선택사항으로서 간주될 수 있는 특징만을 나타내는 것으로 해석되지 않을 것인데, 즉, 명시적으로 언급되지 않더라도 그 밖의 다른 특징이 선택사항으로서 고려될 수 있다. 또한, 단일 개체의 임의의 기재가 이러한 개체의 복수 개 사용을 배제하는 것이 아니며, 마찬가지로, 복수의 개체의 기재가 단일 개체의 사용을 배제하는 것이 아니다. 마지막으로, "예시적" 또는 "실례적"이라는 용어는 복수의 가능한 구현예들 중에서 하나의 구현예를 지칭한다.
A. 예시적 상황-기반 검색 수단
A.1. 개관
도 1은 딥 러닝 모델(deep learning model)(106)을 생성하기 위한 훈련 시스템(training system)(104)을 포함하는 환경(102)을 도시한다. 딥 러닝 모델(106)(이하, 단순히 "모델")이 입력 언어 아이템의 기저 의미 내용을 표현하는 임의의 모델을 지칭한다. 하나의 구현예에서, 모델(106)은 딥 신경 네트워크(DNN)(deep neural network)라고도 지칭되는 다층 신경 네트워크에 대응할 수 있다. 서브섹션 A.2(이하에서 제공)가 모델(106)의 하나의 구현예에 대한 추가 상세사항을 제공한다. 훈련 시스템(104)은 데이터 저장소(108)에 유지되는 훈련 데이터(training data)를 기초로 모델(106)을 생성한다. (본 명세서의 모든 경우에서, "데이터 저장소(data store)"라는 용어는 하나의 장소에 제공되거나 복수의 장소에 걸쳐 분산되는 하나 이상의 기저 물리 저장 수단에 대응할 수 있다.) 데이터 수집 모듈(110)은 임의의 데이터 수집 기법을 기초로 훈련 데이터를 제공한다. 서브섹션 A.3(이하에서 제공됨)은 훈련 시스템(104)의 한 가지 구현예에 대한 추가 상세사항을 제공한다.
검색 엔진(112)은 모델(106) 및 순위화 프레임워크의 그 밖의 다른 구성요소(이하에서 기재됨)를 이용해, 질의가 제출됐던 상황을 기술하는 상황과 함께, 입력 질의를 기초로, 문서를 선택 및 순위화할 수 있다. 한 경우, 로컬 컴퓨팅 장치가 검색 엔진(112)을 이용하여 로컬(및/또는 원격) 문서 레포지토리로부터 문서를 불러올 수 있으며, 이 시나리오에서, 검색 엔진(112)은 불러오기 엔진(retrieval engine)이라고 지칭되는 것이 더 적절할 수 있다. 또 다른 경우, 원격 처리 시스템은 검색 엔진(112)을 이용하여 원격 문서 레포지토리로부터 문서를 불러올 수 있다. 사용자가 로컬 컴퓨팅 장치를 통해 원격 처리 시스템과 대화할 수 있다. 또 다른 경우, 검색 엔진(112)과 연관된 기능부가 각각의 로컬 컴퓨팅 장치와 원격 처리 시스템 사이에 분산될 수 있다. 검색 엔진(112)의 한 가지 구현예에 대한 추가 상세사항이 도 6에 대한 설명의 맥락에서, 이하에서 기재될 것이다.
본 명세서에서 사용될 때, 질의라는 용어는 하나 이상의 문서를 불러오려는 의도를 갖고 사용자에 의해 특정된 임의의 정보를 지칭한다. 질의는 질의 정보를 운반한다. 질의 정보는, 가령, 질의를 구성하는, 사용자에 의해 특정된 용어에 대응할 수 있다.
문서는 질의가 비교되는 임의의 콘텐츠-포함 아이템을 지칭한다. 하나의 경우에서, 문서가 임의의 문서-생성 툴에 의해 생성되며, 임의의 주제에 대응하고, 임의의 포맷으로 표현되는 개별 텍스트-포함 콘텐츠 아이템에 대응한다. 예를 들어, 문서는 워드 프로세싱 프로그램에 의해 생성된 텍스트 문서, 전자메일 프로그램에 의해 생성된 전자메일 메시지, 텍스트 태그 또는 주석을 갖는 이미지, 웹 페이지 또는 그 밖의 다른 인터넷-액세스 가능 콘텐츠 아이템 등에 대응할 수 있다. 또 다른 경우, 문서가 임의의 유형의 데이터 구조 또는 임의의 비구조화된 레코드 레포지토리 내 레코드에 대응할 수 있다. 예를 들어, 문서는 표 내 항목에 대응할 수 있고, 지식 그래프(knowledge graph)와 연관된 노드 등에 대응할 수 있다. 예를 들어, 하나의 경우에서, 문서가 엔터프라이즈 그래프(enterprise graph)에 의해 식별되는 사람과 관련될 수 있으며, 그렇다면, 이 사람은 자신이 만들거나 및/또는 소비하는 텍스트-포함 콘텐츠, 가령, 콘텐츠(가령, 전자메일 메시지 등)와 연관될 수 있다. 선택사항으로서 검색 엔진(112)은 특정된 검색어가 주어질 때 문서를 불러오기 위한 인덱싱 수단(도시되지 않음)을 이용할 수 있다.
한 가지 특정 경우, 하나의 문서가 하나의 개체와 특정하게 관련된다. 이러한 문서는 개체 문서라고 지칭될 수 있다. 특정 개체는 임의의 관심 초점, 가령, 사람, 장소, 위치, 제품 등과 관련된다. 개체 문서는 자신이 관련된 개체의 서로 다른 특성을 기술하는 다양한 개체 성분을 포함할 수 있다. 예를 들어, 개체 성분은 개체의 제목, 개체와 연관된 속성 값, 개체 문서와 연관된 그 밖의 다른 문서, 개체 문서를 액세스하도록 사용자가 제출한 질의 등을 기술할 수 있다.
상황은 사용자가 질의를 제출한 상황을 기술하며 상황 정보에 의해 표현된다. 예를 들어, 하나의 경우에서, 사용자가 일부 소스 문서, 가령, 웹 페이지, 전자메일 등 내에서 나타나는 하나 이상의 검색어를 선택함으로써 질의를 입력할 수 있다. 즉, 선택된 용어가 질의가 된다. 이 질의에 대한 상황 정보가 소스 문서 내에서 질의에 근접하게 나타나는 단어에 대응할 수 있다. 더 구체적으로, 질의에 대한 상황 정보는 소스 문서 내에서 질의 앞에 나타나는 n개의 단어와 소스 문서 내에서 질의 뒤에 나타내는 m개의 단어에 대응할 수 있다(여기서 일부 경우 n=m, 또 다른 경우 n≠m).
대안적으로 또는 추가적으로, 상황 정보가 질의를 제출한 사용자의 임의의 인구 통계적 특성을 기술할 수 있다. 예를 들어, 상황 정보는 사용자의 연령, 성별, 교육 수준, 직업, 관심사 등을 기술할 수 있다. 대안으로 또는 추가로, 상황 정보는 사용자의 이전 행동을 기술할 수 있다. 예를 들어, 상황 정보는 일부 시간 윈도우 내에 및/또는 일부 개수의 이전 사용자 세션 등에 걸쳐, 사용자에 의해 제출된 이점 질의에 대응할 수 있다. 상황 정보는 또한 일부 시간 윈도우 내에 및/또는 일부 개수의 이전 사용자 세션에 걸쳐 이뤄진 선택(가령, 클릭)을 기술할 수 있다. 본 명세서에서 사용될 때, "클릭"은 사용자가 문서에서 관심을 표현할 수 있는 임의의 방식을 기술한다. 예를 들어, 일부 경우, 사용자는 검색 결과 페이지에서 마우스 장치 등을 이용해 한 문서를 명시적으로 클릭하거나, 터치-감응성 사용자 인터페이스 표시 상에서 문서를 터치하는 등에 의해, 상기 문서를 선택할 수 있다. 또 다른 경우, 사용자는 임의의 입력 장치를 이용해 문서 위에서 호버링함으로써 상기 문서를 선택할 수 있다. 또 다른 경우, 사용자는 문서와 관련된 일부 트랜잭션을 수행함으로써, 가령, 설문지를 작성, 대응하는 제품을 구매 등을 함으로써, 문서를 선택할 수 있다. 세션은 로그인/로그오프 이벤트, 시간 및/또는 그 밖의 다른 임의의 요인에 의해 경계가 정해지는 임의의 사용자 컴퓨팅 장치 및/또는 임의의 프로그램(가령, 브라우저 프로그램)과 사용자의 대화를 지칭한다.
대안으로 또는 추가로, 상황 정보가 사용자와 연관된 사회적 연락처를 기술할 수 있다. 검색 엔진(112)은 임의의 소스, 가령, 소셜 네트워크 서비스 등을 이용해 사용자가 유지하는 연락처 정보로부터 정보를 추출할 수 있다.
대안으로 또는 추가로, 상황 정보는 사용자가 질의를 제출한 위치를 기술할 수 있다. 검색 엔진(112)은 임의의 위치-결정 수단, 가령, 위성-기반 수단(가령, GPS 수단), 삼각측량 수단, 데드-레코닝(dead-reckoning) 수단 등을 기초로 사용자의 위치를 결정할 수 있다. 대안으로 또는 추가로, 상황 정보는 사용자가 질의를 제출한 시각을 기술할 수 있다.
상황 정보는 질의 제출과 관련된 그 밖의 다른 상황을 기술할 수 있다. 상황 정보의 상기 예시가 예시로서 인용된 것이며 한정이 아니다. 이와 관련하여, 검색 엔진(112)은 사용자와 연관된 임의의 개인 데이터가 섹션 C에서 제공되는 바와 같이 적절한 방식으로 핸들링됨을 보장하기 위해 적절한 보호장치를 적용할 수 있다.
더 일반적인 용어 "언어 아이템(linguistic item)"이 하나 이상의 단어 및/또는 그 밖의 다른 심볼의 시퀀스로 구성된 임의의 자연 언어 및/또는 그 밖의 다른 심볼 프레임워크로 표현된 임의의 정보-포함 아이템에 대응한다. 예를 들어, 언어 아이템은 문서, 질의, 상황 등에 대응할 수 있다. 언어 아이템은 서로 다른 각자의 정보 부분을 운반하는 둘 이상의 부분(또는 성분)을 가질 수 있다. 예를 들어, 문서는 제목 부분, 키워드 부분, 및 본문 부분을 가질 수 있다. 상황은 또한 앞서 제공되는 다양한 성분을 가질 수 있다.
도 1에 도시된 바와 같이, 검색 엔진(112)은 적어도 하나의 사용자 컴퓨팅 장치(116)와 대화하기 위한 검색 엔진 인터페이스 모듈(114)을 포함할 수 있다. 한 경우에서, 사용자 컴퓨팅 장치(116)에 비교되는 개별 컴퓨팅 장치에 의해 검색 엔진(112)이 구현된다. 또 다른 경우, 검색 엔진(112)은 사용자 컴퓨팅 장치(116) 자체에 의해 구현된다.
상황 식별 모듈(118)이 질의가 제출됐던 상황(context)과 연관되는 상황 정보를 추출한다. 상황 식별 모듈(118)은 상황 정보의 서로 다른 각각의 유형에 대해 서로 다른 방식으로 이 작업을 수행할 수 있다. 예를 들어, 한 경우에서, 상황 식별 모듈(118)은 소스 문서 내에서 질의에 선행하거나 후행하는 단어를 특정된 상황 윈도우 내에로 추출할 수 있다. 또 다른 경우, 상황 식별 모듈(118)은 위치-결정 수단으로부터 위치 정보, 클록 수단으로부터 시각 정보 등을 수신할 수 있다.
순위화 프레임워크(ranking framework)(120)가 질의 및 상황 정보와 연관된 질의 정보를 수신한다. 이 정보를 기초로, 순위화 프레임워크가 복수의 데이터 저장소(122)에 제공된 복수의 문서의 순위를 정하기 위해 모델(106)을 활용한다. 그 후 순위화 프레임워크(120)가 검색 결과를 생성하고 전달한다. 검색 결과가 순위화 프레임워크(120)에 의해 수행되는 순위화의 결과를 전달한다.
한 경우에서, 데이터 저장소(122) 중 적어도 일부가 사용자와 관련된 원격 위치에 제공될 수 있다. 예를 들어, 데이터 저장소(122)의 적어도 일부가 광역 네트워크(가령, 인터넷)를 통해 액세스 가능한 분산 저장 자원에 대응할 수 있다. 대안으로 또는 추가로, 데이터 저장소(122) 중 적어도 일부가 클라우드 저장 수단에 의해 제공되는 저장 자원에 대응할 수 있다. 대안으로 또는 추가로, 데이터 저장소(122) 중 적어도 일부가 사용자 컴퓨팅 장치(116)에 의해 제공되는 로컬 저장 자원에 대응할 수 있다.
도 2는 도 1의 순위화 프레임워크(120)의 적어도 일부의 한 가지 구현예를 보여준다. 순위화 프레임워크(120)가 의미 변환 모듈(semantic transformation module)(간략히 말해, "변환 모듈")의 둘 이상의 인스턴스, 가령, 제1 변환 모듈(202) 및 제2 변환 모듈(204) 등을 포함하는 것으로 도시된다. 각각의 변환 모듈은 모델(106)의 인스턴스화를 이용하여, 입력 벡터를 출력된 개념 벡터(개념 벡터)로 사상(mapping)할 수 있다. 입력 벡터는 특정 언어 아이템, 가령, 질의, 상황, 문서 등을 나타낸다. 개념 벡터는 의미 공간(semantic space)으로 표현되고 자신이 유도된 대응하는 언어 아이템에 대한 의미 정보(semantic information)를 드러낸다. 더 일반적으로, "벡터"는, 본 명세서에서 사용될 때, 각자의 벡터 차원과 연관되는 둘 이상의 요소를 갖는 임의의 정보에 넓게 대응한다.
한 경우에서, 순위화 프레임워크(120)는 실제로 변환 기능부의 둘 이상의 개별 인스턴스를 제공하여, 도 2에 도시된 복수의 변환 모듈(202, 204)을 구현할 수 있다. 예를 들어, 순위화 프레임워크(120)는 변환 기능부의 서로 다른 인스턴스와 연관된 둘 이상의 물리 처리 구성요소를 제공할 수 있다. 대안으로 또는 추가로, 순위화 프레임워크(120)는 변환 기능부의 개별 소프트웨어-구현 인스턴스를 제공할 수 있다. 대안으로 또는 추가로, 순위화 프레임워크(120)는 변환 기능부의 단일 인스턴스를 이용해, 가령, 문서의 세트를 의미 영역(semantic domain)에 차례 차례 투사시킴으로써, 개별 입력 언어 아이템을 직렬로 처리할 수 있다.
도 2의 특정 경우에서, 제1 변환 모듈(202)은 모델(106)의 제1 인스턴스를 이용해 의미 공간에서 상황 정보를 상황 개념 벡터
Figure 112016099345674-pct00001
로 투사시킬 수 있다. 앞서 언급된 바와 같이, 상황 정보는 사용자가 질의를 제출한 상황을 기술한다. 더 구체적으로 언급하자면, 제1 변환 모듈(202)은 상황 정보의 특정 성분, 가령, 소스 문서에서 질의 주위의 텍스트 윈도우를 처리할 수 있다. 이 예시에서 상황 개념 벡터
Figure 112016099345674-pct00002
는 텍스트의 윈도우에서 단어의 의미를 전달하고, 따라서
Figure 112016099345674-pct00003
로 더 특정하게 표시될 수 있다. 그 밖의 다른 변환 모듈(도시되지 않음)이 상황 정보의 그 밖의 다른 성분을 처리할 수 있다. 예를 들어, 또 다른 변환 모듈(도시되지 않음)이 사용자가 제출한 이전 질의를 기초로 상황 개념 벡터
Figure 112016099345674-pct00004
를 생성할 수 있다. 또 다른 변환 모듈이 사용자의 관심사를 기초로 하는 상황 개념 벡터
Figure 112016099345674-pct00005
등을 생성할 수 있다. 대안으로 또는 추가로, 순위화 프레임워크(120)가 상황 정보의 개별 성분에 각각 대응하는 입력 정보의 둘 이상의 개별 인스턴스를 연결(concatenate)함으로써 상황-관련 입력 벡터를 생성할 수 있다. 예를 들어, 순위화 프레임워크(120)가 사용자의 질의 주위에서 윈도우 내 텍스트를 사용자의 마지막
Figure 112016099345674-pct00006
질의 등과 연관된 텍스트에 덧붙일 수 있다(append). 그 후 이러한 집성된 결과가 사용되어 제1 변환 모듈(202)로 공급될 단일 입력 벡터를 생성하여, 단일 상황 개념 벡터
Figure 112016099345674-pct00007
를 생성할 수 있다. 그러나 설명을 위해, 이하에서 상황 개념 벡터는 일괄적으로 단순히
Figure 112016099345674-pct00008
라고 지칭될 것이며, 이는 앞서 기재된 방식들 중 임의의 방식으로 생성된 상황 개념 벡터에 대응할 수 있다.
제2 변환 모듈(204)은 질의에 비교되고 있는 후보 아이템이 무엇이든 이를 조작한다. 예를 들어, 제2 변환 모듈(204)은 모델(106)의 제2 인스턴스를 이용해 문서 정보를 문서 개념 벡터
Figure 112016099345674-pct00009
로 투사할 수 있다. 문서 정보는 특정 문서의 텍스트 콘텐츠를 기술한다. 그 후 문서 개념 벡터
Figure 112016099345674-pct00010
가 상황 개념 벡터
Figure 112016099345674-pct00011
와 동일한 의미 공간에서 문서의 의미를 전달한다.
상황처럼, 문서는 서로 다른 부분, 가령, 문서의 제목, 문서의 본문, 문서와 연관된 키워드 등을 포함할 수 있다. 도 2에 명시적으로 도시되지 않지만, 서로 다른 변환 모듈이 서로 다른 각자의 문서 부분을 조작하여, 서로 다른 문서-관련 개념 벡터를 생성할 수 있다. 예를 들어, 변환 모듈(204)은 문서의 제목(title)만 조작하여 문서 제목 개념 벡터
Figure 112016099345674-pct00012
를 생성할 수 있다. 또 다른 변환 모듈(도시되지 않음)이 문서의 본문(body)을 조작하여 본문 개념 벡터
Figure 112016099345674-pct00013
를 생성할 수 있다. 대안으로 또는 추가로, 순위화 프레임워크(120)가 단일 문서의 둘 이상의 부분을 연결함으로써 집성된 문서-관련 입력 벡터를 생성할 수 있다. 예를 들어, 순위화 프레임워크(120)가 문서의 제목을 문서와 연관된 키워드에 덧붙여, 단일 입력 벡터를 생성할 수 있으며, 그 후 상기 단일 입력 벡터가 변환 모듈(204)에 의해 처리되어 단일 문서 개념 벡터
Figure 112016099345674-pct00014
를 생성할 수 있다. 그러나 설명을 용이하게 하기 위해, 문서 개념 벡터가 일괄적으로 단순히
Figure 112016099345674-pct00015
라고 지칭될 것이며, 이는 앞서 기재된 방식 중 임의의 방식으로 생성된 문서 개념 벡터에 대응할 수 있다.
도 2에 명시적으로 도시되어 있지 않지만, 순위화 프레임워크(120)가 복수의 그 밖의 다른 변환 모듈을 이용하여, 그 밖의 다른 각자의 문서에 대응하는 문서 정보의 그 밖의 다른 인스턴스를 처리할 수 있다. 결과적으로, 순위화 프레임워크(120)가 상황 정보와 연관된 적어도 하나의 상황 개념 벡터
Figure 112016099345674-pct00016
및 고려 중인 복수의 후보 문서와 연관된 복수의 문서 개념 벡터를 생성할 수 있다.
비교 모듈(206)이 각각의 상황 개념 벡터
Figure 112016099345674-pct00017
를 각각의 문서 개념 벡터
Figure 112016099345674-pct00018
에 비교하여, 관련도 척도(relevance measure)를 생성할 수 있다. 관련도 척도가 두 개념 벡터 간 의미적 관계(semantic relationship)의 범위에 대한 지시를 제공한다. 관련도는 임의의 환경-특정적 방식으로 정의될 수 있는데, 예를 들어, 한 경우에서, 관련도 척도는 상황 개념 벡터
Figure 112016099345674-pct00019
가 의미 공간 내에서 문서 개념 벡터
Figure 112016099345674-pct00020
에 얼마나 가까운지를 기술한다. 다시 말하면, 한 경우에서, 관련도 척도는 (상황 정보와 연관된) 질의의 상황과 (문서 정보와 연관된) 고려 중인 문서의 개념적 관련도를 가리킨다. 의미 공간에서 서로 밀접한 2개의 벡터가 동일하거나 관련된 개념과 관련된다. 의미 공간에서 서로 멀리 떨어진 2개의 벡터가 상이한 개념들을 나타낸다.
순위화 모듈(208)은 사용자의 질의 및 사용자 질의와 연관된 상황에 대한, 문서에 대해 문서의 관련도를 표현하는 순위화 점수(순위 점수)를 생성할 수 있다. 그 후 순위화 모듈(208)은 순위화 점수를 기초로, 문서들을, 최고 관련도에서 최저 관련도까지 또는 그 반대로 순위화할 수 있다. 순위화 모듈(208)은 특징(feature)의 수집을 기초로 자신의 순위화 동작을 수행한다. 특징은, 비교 모듈(206)에 의해 생성된 관련도 척도를 부분적으로 포함할 수 있다. 대안으로 또는 추가로, 특징은 변환 모듈(202, 204, ...)에 의해 생성된 원본 개념 벡터를 포함할 수 있으며, 도 2는 변환 모듈(202, 204, ...)로부터 순위화 모듈(208)로의 점선에 의해 개념 벡터의 특징으로서의 선택적 사용을 도시한다. 상기 특징은 또한 변환 모듈(202, 204)에 의해 수행되는 의미 분석과 관련되지 않은 그 밖의 다른 형태의 사용자의 검색을 운반하는 것을 포함할 수 있다. 예를 들어, 순위화 모듈(208)은 고려되는 질의 및/또는 문서로 표현되는 용어의 인기도를 기초로 순위화를 수행할 수 있다.
한 경우에서, 순위화 모듈(208)은 순위화 모델(RM)을 기초로 순위화 동작을 수행할 수 있다. 오프라인 프로세스는 임의의 방식으로, 가령, 임의의 머신 러닝 기법을 기초로 순위화 모델(RM)을 생성할 수 있다.
도 3은 임의의 개수의 차원을 갖는 의미 공간(302)의 일부분의 임의의 하이-레벨 도시이다. 공간(302)은 상황 개념 벡터(
Figure 112016099345674-pct00021
)(304) 및 고려 중인 각각의 2개의 문서(문서 A 및 B)에 대응하는 적어도 2개의 문서 개념 벡터(
Figure 112016099345674-pct00022
Figure 112016099345674-pct00023
)를 보여준다. 상황 개념 벡터
Figure 112016099345674-pct00024
(304)는 문서 개념 벡터(
Figure 112016099345674-pct00025
)에 비교할 때 문서 개념 벡터(
Figure 112016099345674-pct00026
)에 더 가깝다. 이 통찰을 기초로, 순위화 모듈(208)은 문서 A가, 문서 B에 비교할 때, 사용자가 자신의 질의를 제출한 상황과 연관된 상황과 더 관련성 있다고 결론 내릴 수 있다.
도 3의 예시를 더 설명하는 정확한 예시를 고려할 수 있다. 사용자가 건설 중인 특정 건물을 기술하는 문서를 읽고 있는 상황에서, 질의 "Michael Jordon"를 선택했다고 가정하자. 상기 질의 주위의 텍스트가 건축 주제와 관련될 가능성이 높다. 예를 들어, 텍스트는 단어, 가령, "청사진", "평방 피트", "지붕 윤곽" 등을 포함할 수 있다. 제1 후보 문서가 건축가 Michael Jordon와 관련됐고, 제2 후보 문서가 운동선수 Michael Jordon을 기술한다고 가정할 수 있다. 상황 개념 벡터가, 제2 문서 개념 벡터
Figure 112016099345674-pct00027
에 비교할 때, 제1 문서 개념 벡터
Figure 112016099345674-pct00028
에 더 가까이 위치한다고 예상될 수 있다. 순위화 모듈(208)은 이러한 발견을 이용해 제2 문서의 관련도를 낮추고 제1 문서의 관련도를 높일 수 있다. 이와 달리, 인기도-기반 특징이 제1 문서에 비해 제2 문서를 지지하는 데 투표할 것이다. 훈련 프로세스는 환경-특정적 가중치를 각각의 등급화 특징에 첨부하여 상기 특징이 고려 중인 후보 문서에 대한 전체 순위화 점수에 영향을 미치는 범위를 확립할 수 있다.
또 다른 예를 들면, 사용자가 소셜 네트워크 사이트, 직업 웹사이트 등에 제공한 정보에 의해 반영된 바에 따라, 검색을 수행 중인 사용자 자신이 건축가일 수 있다. 순위화 프레임워크(120)는 상기의 지식을 활용하여 제1 문서(건축가 "Michael Jordon"과 관련됨)를 제2 문서(동일한 이름의 농구선수와 관련됨)보다 위로 높일 수 있다. 또 다른 경우, 사용자가 건축 주제와 관련된 최근 검색을 몇 번 수행했을 수 있다. 다시 말하면, 순위화 프레임워크(120)는 상기 지식을 적용시켜 이론 건축가 "Michael Jordon"과 관련된 문서를 지지할 수 있다.
더 구체적으로, 특정 상황이 서로 다른 g개의 부분 또는 성분(가령, 인근 텍스트, 질의 히스토리, 위치, 시각 등)을 가질 수 있다. 마찬가지로, 고려 중인 특정 후보 문서가 서로 다른 h개의 부분 또는 성분(제목, 키워드, 본문 등)를 가질 수 있다. 순위화 프레임워크(120)는 상황 정보의 각각의 차원 및 문서 정보의 각각의 차원에 대해 개념 벡터를 생성할 수 있다. 그 후 비교 모듈(206)은 상황 정보의 임의의 성분과 문서 정보의 임의의 성분과의 비교를 반영하는 관련도 척도를 생성할 수 있으며, 전체적으로, 비교 모듈(206)은 g × h개의 이러한 관련도 척도를 생성할 수 있다. 순위화 모듈(208)은 g × h개의 관련도 척도 중 임의의 것 또는 모두를, 특정 상황(및 질의)에 대한 후보 문서의 적합성을 평가하기 위해 순위화 특징으로서 이용할 수 있다. 고려 중인 문서 D의 전체 세트와 관련하여, 순위화 모듈(208)은 D × g × h개의 관련도 척도 및 그 밖의 다른 특징의 고려를 기초로 하는 분석을 수행할 수 있다.
서로 다른 순위화 아키텍처가 도 3에 도시된 방식을 활용할 수 있다. 예를 들어, 도 4는 제1 변환 모듈(404), 제2 변환 모듈(406), 비교 모듈(408) 및 순위화 모듈(410)(이하에서 더 분명히 언급될 이유로 "제2 순위화 모듈"이라고도 지칭되는) 순위화 프레임워크(120)의 구현예(402)를 도시한다. 이들 모듈(404, 406, 408, 410)은 도 2와 관련하여 기재된 동일한 명칭의 모듈(202, 204, 206, 208)과 동일한 기능을 수행한다. 도 4는 제2 변환 모듈(406)에 입력으로서 제공되는 문서 정보를 유도하기 위한 한 가지 기법을 설명함으로써 도 2를 보충한다.
더 구체적으로, 제1 순위화 모듈(412)이 사용자의 질의를 수신한다. 그 후 제1 순위화 모듈(412)이 제1 데이터 저장소(414) 내 복수의 문서에 순위화 점수를 할당하여, 질의와 관련된 문서의 관련도를 반영할 수 있다. 그 후 이들 순위화 점수를 기초로, 제1 순위화 모듈(412)은 문서의 순위를 관련도 순으로 매기고, k개의 가장 관련성 있는 문서의 세트를 선택한다. 제1 순위화 모듈(412)은 k개의 문서의 세트 또는 k개의 문서의 세트에 대한 참조를 제2 데이터 저장소(416)에 저장할 수 있다.
그 후 구현예(402)가 상황 정보를, 제2 데이터 저장소(416)에 식별된 각각의 문서와 연관된 문서 정보의 각각의 인스턴스와 비교하는 것으로 진행된다. 상기 구현예(402)는 문서 정보의 서로 다른 인스턴스를 제2 변환 모듈(406)로 직렬로 공급함으로써, 또는 복수의 병렬 변환 모듈(도시되지 않음)을 이용해 문서 정보의 복수의 인스턴스를 처리함으로써, 이 작업을 수행할 수 있다.
앞서 기재된 기능을 수행할 때, 제1 순위화 모듈(412)은 임의의 유형의 순위화 모델(RM1)을 적용할 수 있다. 하나의 구현예에서, 순위화 모델은 사용자가 질의를 제출한 상황을 고려하지 않는다. 오히려, 구현예(402)가 제2 순위화 모듈(410)을 이용해 비교 모듈(408)에 의해 제공된 관련도 척도를 기초로 k개의 문서의 세트 내 문서들을 재-순위화할 수 있다. 순위화 모듈(412)로 이끄는 점선이 순위화 모듈(412)이, 추가로 또는 대안적으로, 변환 모듈(404, 406)이 순위화 모듈로 공급하는 상황 개념 벡터 및/또는 문서 개념 벡터를 기초로 순위화를 수행할 수 있다.
도 2의 구현예(402)의 한 가지 변형예에서, 제1 데이터 저장소(414)에 저장된 문서가 개체 문서에 대응한다. 각각의 개체 문서가 특정 개체, 가령, 사람, 제품, 위치 등과 관련된다. 또한, 앞서 기재된 바와 같이, 각각의 개체 문서는 개체를 기술하는 서로 다른 구성요소를 가질 수 있다. 예를 들어, 특정 영화와 관련된 개체가 영화의 제목, 영화의 장르, 영화의 인기도, 영화가 언급된 사이트, 영화에 등장하는 배우, 영화의 감독 등을 기술하는 속성 값을 가질 수 있다.
이 변형예에서, 상황 정보의 고려 없이, 데이터 저장소(416) 내 k개의 문서의 세트가 사용자의 질의와 매칭되는 k개의 개체의 세트에 대응한다. 구현예(402)는 변환 모듈(406)을 이용하여, 가령, 개체와 연관된 제목 등을 기술하는 입력 벡터를 형성함으로써, 개체 문서의 임의의 성분을 의미 공간으로 투사할 수 있다. 제2 순위화 모듈(410)의 최종 출력이 상황 정보를 고려하는 개체의 재-순위화된 세트에 대응한다.
도 5는 순위화 프레임워크(120)의 또 다른 구현예(502)를 도시한다. 여기서, 제1 변환 모듈(504)은 사용자에 의해 입력되는 질의와 연관된 질의 정보를 수신한다. 제1 변환 모듈(504)은 모델(106)의 제1 인스턴스를 이용해 질의 정보를 의미 공간 내 질의 개념 벡터
Figure 112016099345674-pct00029
로 투사할 수 있다. 제2 변환 모듈(506)은 사용자가 질의를 제출한 상황과 연관된 상황 정보를 수신한다. 제2 변환 모듈(506)은 모델(106)의 제2 인스턴스를 이용해 상황 정보를 상황 질의 벡터
Figure 112016099345674-pct00030
로 변환할 수 있다. 제3 변환 모듈(508)은 데이터 저장소(510)에 저장된, 고려될 이러한 문서의 집합 중에서, 후보 문서를 기술하는 문서 정보를 수신한다. 제3 변환 모듈(508)은 모델(106)의 제3 인스턴스를 이용해 문서 정보를 문서 개념 벡터
Figure 112016099345674-pct00031
로 변환할 수 있다.
비교 모듈(512)은 상기에 기재된 개념 벡터를 기초로, 각각의 문서에 대해, 복수의 관련도 척도를 형성할 수 있다. 예를 들어, 제1 비교 모듈(514)은 문서 개념 벡터
Figure 112016099345674-pct00032
에 대한 질의 개념 벡터
Figure 112016099345674-pct00033
의 개념적 관련도를 반영하는 관련도 척도를 생성할 수 있다. 제2 비교 모듈(516)은 상황 개념 벡터
Figure 112016099345674-pct00034
에 대한 문서 개념 벡터
Figure 112016099345674-pct00035
의 개념적 관련도를 반영하는 관련도 척도를 생성할 수 있다. 도 5에 도시되지 않더라도, 대안으로 또는 추가로, 비교 모듈은 모든 3개의 개념 벡터
Figure 112016099345674-pct00036
,
Figure 112016099345674-pct00037
, 및
Figure 112016099345674-pct00038
의 임의의 공동 분석을 기초로 관련도 척도를 더 형성할 수 있다. 순위화 모듈(518)은 비교 모듈(512)에 의해 자신에게 공급된 각각의 문서에 대해 복수의 특징, 가령, 관련도 척도를 기초로 복수의 후보 문서의 순위를 매길 수 있다. 순위화 모듈(518)로 이끄는 점선이 순위화 모듈(518)이, 추가로, 또는 대안적으로, 본래의 개념 벡터, 가령,
Figure 112016099345674-pct00039
,
Figure 112016099345674-pct00040
, 및
Figure 112016099345674-pct00041
를 기초로 순위화를 수행할 수 있다.
요컨대, 도 2의 순위화 프레임워크(120)는 임의의 유형의 언어 아이템, 이들 언어 아이템의 임의의 성분, 및 임의의 순위화 아키텍처에 적용될 수 있다. 예를 들어, 일부 다중-레벨 또는 병렬 순위화 아키텍처가 순위화 동작의 임의의 레벨에서, 가령, 2차 스테이지에서(가령, 도 4의 예시에서와 같이) 딥 러닝 모델(106)을 이용할 수 있다. 그 밖의 다른 순위화 아키텍처가 (예컨대, 도 5에 예시로서) 단일 포괄적 순위화 동작에서 딥 러닝 모델(106)을 적용시킬 수 있다. 또 다른 순위화 아키텍처가 순위화 아키텍처 내 복수의 위치/스테이지에서 딥 러닝 모델(106)을 적용시킬 수 있다. 또한 용어 순위화가, 본 명세서에서 광의로 사용될 때, 필터링 동작을 포함한다. 필터링 동작에서, 순위화 아키텍처가 딥 러닝 모델(106)을 이용하여 후보 문서를 추가 고려하지 않도록 제외할 수 있다.
도 6은 도 1의 환경(102)의 한 가지 구현예를 도시한다. 환경은 컴퓨터 네트워크(606)를 통해 로컬 사용자 컴퓨팅 장치(604)에 연결된 원격 처리 시스템(602)을 포함할 수 있다. 이 구현예에서, 원격 처리 시스템(602)은 도 1에 기재된 검색 엔진(112)의 모든 형태를 구현하는 원격 검색 엔진(608)을 포함한다. 사용자는 가령, 원격 검색 엔진(608)에 의해 호스팅되는 검색 인터페이스 페이지와 대화함으로써 로컬 컴퓨팅 장치(604)를 통해 원격 검색 엔진(608)과 대화할 수 있다.
또 다른 경우, 사용자는 로컬 검색 엔진(612)을 호스팅하는 또 다른 사용자 컴퓨팅 장치(610)와 대화할 수 있고, 이 경우, 검색 엔진(612)은 대안적으로 불러오기 엔진이라고 지칭될 수 있다. 또 다른 경우, 도 1의 형태의 검색 엔진(112)이 임의의 방식으로 로컬 사용자 컴퓨팅 장치와 원격 처리 시스템(602) 간에 분포될 수 있다.
임의의 로컬 컴퓨팅 장치는 예를 들어, 개인 데스크톱 컴퓨팅 장치, 랩톱 컴퓨팅 장치, 게임 콘솔 장치, 셋-톱 박스 장치, 태블릿-유형 컴퓨팅 장치, 스마트폰, 휴대용 음악 재생 장치, 및 전자 책 리더 장치, 웨어러블 컴퓨팅 장치 등에 대응할 수 있다. 원격 처리 시스템(608)은 하나 이상의 데이터 저장소와 함께 하나 이상의 서버 컴퓨팅 장치로서 구현될 수 있다. 컴퓨터 네트워크(606)는 광역 네트워크(가령, 인터넷), 로컬 영역 네트워크, 하나 이상의 포인트-투-포인트 링크 등 또는 이들의 임의의 조합에 대응할 수 있다.
A.2. 의미 변환 모듈
도 7은 도 2에 도시된 순위화 프레임워크(120)에 대한 추가 상세사항을 도시한다. 이전 설명을 다시 참조하면, 순위화 프레임워크(120)는 2개의 변환 모듈(202, 204), 즉, 상황 정보를 상황 개념 벡터
Figure 112016099345674-pct00042
로 변환하기 위한 제1 변환 모듈 및 문서 정보를 문서 개념 벡터
Figure 112016099345674-pct00043
로 변환하기 위한 제2 변환 모듈을 포함할 수 있다. 비교 모듈(206)은 상황 개념 벡터
Figure 112016099345674-pct00044
를 문서 개념 벡터
Figure 112016099345674-pct00045
에 비교하여 관련도 척도를 생성할 수 있다.
제1 변환 모듈(202)은 차원-감소 모듈(dimensionality-reduction module)(DRM)(702) 및 딥 구조화된 의미 모듈(deep structured semantic module)(DSSM)(704)을 포함한다. 마찬가지로, 제2 변환 모듈(204)은 DRM(706) 및 DSSM(708)을 포함한다. DSSM은 딥 러닝 모델(106)의 각각의 인스턴스를 기초로 이들의 기능을 수행한다.
각각의 DRM은 언어 아이템을 나타내는 입력 벡터를 수신한다. 예를 들어, DRM(702)은 상황 정보를 나타내는 입력 벡터를 수신하고, DRM(706)은 특정 문서에 대응하는 문서 정보를 기술하는 입력 벡터를 수신한다. 제1 DRM(702)은 제1 감소된-차원 벡터를 생성하고, 제2 DRM(706)은 제2 감소된-차원 벡터를 생성한다. 감소된-차원 벡터는 입력 벡터로 표현되는 동일한 정보를 여전히 나타내면서 이의 대응하는 입력 벡터에 대해 감소된 차원을 가진다.
DRM(702)의 동작을 고려할 수 있다: 그 밖의 다른 DRM이 동일한 방식으로 동작한다. 하나의 구현예에서, DRM(702)은 n-그램 해싱 기법을 이용해 이의 입력 벡터의 차원을 감소한다. 예를 들어, 상황이 구문 "automotive body shop(자동차 정비소)"에 대응하고, 상기 구문은 다시 입력된 질의에 가까운 구문에 대응할 수 있다고 가정할 수 있다. 순위화 프레임워크(120)가 초기에 이 구문을 자연 언어로 표현될 수 있는 모든 가능한 단어, 가령, "automotive", "body", 및 "shop"과 동일한 복수의 차원을 갖는 입력 벡터로서 나타낼 수 있다. 순위화 프레임워크(120)는 입력 벡터에서 엔트리 "automotive," "body," 및 "shop"에 대해 1의 값을 설정하고 벡터의 모든 나머지 엔트리에 대해 0의 값을 설정할 수 있다. 입력 구문에서 한 단어가 여러 번 등장하는 경우, 상기 단어에 대한 엔트리가 상기 단어가 등장한 횟수를 반영할 것이다. 다시 말하면, 앞서 기재된 입력 벡터가 입력 구문의 단어 집합(bag-of-words) 표현을 제공하며, 또한 입력 벡터는 매우 희박하게 존재한다.
DRM(702)은 우선 더미 토큰(dummy token)(가령, 토큰 "#")을 고려 중인 입력 구문의 시작부분과 종료 부분에 덧붙여, 가령, "#automotivebodyshop#"를 생성함으로써, 입력 벡터의 차원을 감소시킨다. 그 후 DRAM(702)은 일련의 n-그램을 생성하기 위해 입력 구문에 걸쳐 n-문자 윈도우를 실행시킬 수 있다. 예를 들어, n=3인 경우, DRM(702)은 끝 더미 문자에 도달할 때까지 트리그램(trigram) 시퀀스, 가령, "#au", "aut", "uto", "tom", "omo" 등를 생성한다. 그 후 DRM(702)은 특정 언어로 된 모든 가능한 트리그램(일부 관심 없는 트리그램을 제외할 수 있음)에 대응하는 차원의 수를 갖는 감소된-차원 벡터를 형성할 수 있다. 이 벡터에서, DRM(702)은 "#au"에 대해 1 값을 설정하고, "aut"에 대해 1 값을 설정하고, 나머지 엔트리에 대해 0의 값을 설정하는 등에 의해, 입력 구문에서 나타나는 트리그램 엔트리에 대해 1의 값을 설정할 수 있다. 구문이 동일 트리그램의 복수의 등장을 포함하는 경우, 감소된 차원 벡터에서의 대응하는 엔트리가 트리그램의 등장 횟수를 나타낼 것이다. 결국, 하나의 언어에서 고유 단어보다 덜 고유한 트리그램이 많이 존재하며, 감소된-차원 벡터가 입력 벡터에 비교할 때 훨씬 더 적은 차원을 가질 것이다.
또 다른 구현예에서, DRM(702)은 우선 (가령, "cat"을 "kat"으로 표현함으로써) 입력 구문을 이의 표음식 표현으로 변환하고, 그 후 입력 구문의 표음식 표현에 대해 상기 기재된 동작을 수행할 수 있다. 예를 들어, DRM(702)은 입력 구문의 표음식 버전에 걸쳐 n-문자 윈도우를 실행시키고, 그 후 구문의 표음식 표현에서 등장하는 트리그램을 기초로 감소된-차원 벡터를 형성할 수 있다.
일반적으로, (동작의 오프라인 단계에서) 모델(106)의 훈련을 더 시간 효율적이고 자원 효율적인 방식으로 수행하기 위한 목적으로 입력 벡터의 차원을 감소시키는 것이 바람직할 수 있다. 감소된-차원 벡터를 이용함으로써, 순위화 프레임워크(120)의 실시간 동작이 또한 더 효율적으로 이뤄질 수 있다. 다른 경우, 순위화 프레임워크(120)가 (상기에서 언급된 n-그램 해싱 기법 외에) 입력 벡터의 차원을 감소시키기 위한 그 밖의 다른 기법, 가령, 랜덤 투사 기법을 이용할 수 있다. 또 다른 경우, 순위화 프레임워크(120)가 DRM의 사용을 전체적으로 생략할 수 있는데, 이는 압축되지 않은 원본 입력 벡터를 조작함을 의미한다.
각각의 DSSM은 모델(106)을 이용해, 입력된 감소된-차원 벡터를 개념 벡터로 투사한다. 더 구체적으로, 도 8을 참조하면, 이 도면은 도 7의 DSSM(704)의 한 가지 구현예를 보여준다. 제2 변환 모듈(204)의 DSSM(708)이 유사한 구성 및 동작 방식을 갖지만 도 8에서는 설명을 용이하게 하기 위해 생략된다.
DSSM(704)이 복수의 층(802)으로 구성된 딥 신경 네트워크(DNN)로 구현될 수 있다. 도 8은 DSSM(704)이 4개의 층을 포함함을 특정하게 보여주지만, 더 일반적으로, DSSM(704)이 임의의 개수의 층을 포함할 수 있다. 각각의 층은 뉴런(neuron)이라고 지칭되는 복수의 요소를 포함한다. 각각의 뉴런은 하나씩의 값을 저장한다. 특정 층의 각각의 뉴런은, 바로 앞 층(anterior layer)(존재하는 경우) 내 하나 이상의 0 뉴런에 연결되고, 바로 뒤 층(posterior layer)(존재하는 경우)에서 하나 이상의 0 뉴런에 더 연결된다. 여기서 "앞" 및 "뒤"는 DNN을 통과하는 정보 흐름의 방향(도 8의 경우 아래에서 위로의 방향)과 관련하여 인접한 층을 지칭한다. 즉, 특정 층과 관련하여, 앞 층은 하위 층을 나타내고, 뒤 층은 상위 층을 나타낸다.
층(802)는 총체적으로 값 z1으로 표시되는 값을 저장하기 위한 최하위 층(804)를 포함한다. 더 구체적으로, 층(804)은 DSSM(704)으로의 입력을 나타내고, 따라서 DRM(702)에 의해 제공되는 감소된-차원 벡터와 연관된 값을 저장한다. 다음 층(806)은 벡터 z1와 연관된 제1 층의 값으로부터 유도된 값을 갖는 벡터 z2를 저장한다. 다음 층(808)은 벡터 z2와 연관된 층(806)의 값으로부터 유도된 값을 갖는 벡터 z3를 저장한다. 최종 출력 층(810)은 벡터 z3와 연관된 층(808)의 값으로부터 유도된 값을 갖는 개념 벡터 y를 저장한다.
도 8은 또한 다양한 층(804, 806, 808, 810)을 서로 다른 각자의 길이를 갖는 박스로서 나타내어 서로 다른 층이 서로 다른 각각의 차원을 가짐을 나타낼 수 있다. 비제한적으로, 하나의 구현예에서, DRM(702)으로 공급되는 입력 벡터 x가 500K의 차원을 가지며, 식별된 어휘에서 500K개의 가능한 단어가 존재함을 나타낸다. 층(804)은 30K의 차원을 가진다. 예를 들어, 트리그램 해싱 기법이 감소된 차원 벡터를 생성하는 데 사용되는 경우, 층(804)의 차원은 500K개의 단어의 원본 코퍼스(corpus) 내에 (일부 관심 없는 트리그램을 제외할 수 있어서) 30K의 고유한 트리그램이 존재함을 의미한다. 층(806) 및 층(808)은 300개의 요소의 차원을 각각 가진다. 또한, 층(810)은 128개의 요소의 차원을 가진다. 그러나 반복컨대, DSSM(704)의 또 다른 구현예가 이들 각각은 임의의 크기를 가질 수 있는 임의의 개수의 층을 이용할 수 있다.
더 공식적으로 말하자면, 하나의 실시예에서, 층(804) 내 벡터 z1이 z1=W1x로 표현될 수 있으며, 여기서, W1은 더 낮은 차원 벡터를 생성하기 위해 어느 변환이 DRM(702)에 의해 사용되는지를 나타낸다. 층(806 및 808) 내 zi는 zi=f(Wizi -1+bi)로 표현될 수 있으며, 여기서 i = 2, ... N-1이다. 또한, 층(810) 내 벡터 y는 y=f(WNzN-1+bN)으로 표현될 수 있으며, 이때, 도 8의 특정 예시의 경우 N=4이다. 심볼 Wi는 훈련 시스템(104)(도 1)에 의해 생성되는 i번째 가중치 행렬을 나타내고, 심볼 bi는 선택사항적 i번째 편향 항(bias term)을 지칭하며, 이 또한 훈련 시스템(104)에 의해 생성된다. 함수 f(x)는 활성 함수(activation function)로 지칭되며, 서로 다른 방식으로, 가령, 아래와 같은 tanh 함수로서 공식화될 수 있다:
Figure 112016099345674-pct00046
도 9는 도 8의 순위화 프레임워크(120)의 적용을 도시한다. 여기서 나타나는 바와 같이, 제1 변환 모듈(902)은 의미 공간에서 질의(Q)와 연관된 상황(C)을 표현하는 상황 개념 벡터
Figure 112016099345674-pct00047
를 생성한다. 제2 변환 모듈(904)은 동일한 의미 공간에서 문서(D1)를 나타내는 개체 개념 벡터
Figure 112016099345674-pct00048
를 생성한다. 제3 변환 모듈(906)은 동일 의미 공간에서 문서(Dn)를 나타내는 개체 개념 벡터
Figure 112016099345674-pct00049
를 생성하는 등이다.
더 구체적으로, 개별 물리 구성요소 또는 소프트웨어 인스턴스에 의해 3개(또는 그 이상의) 변환 모듈(902, 904, 906)이 구현될 수 있다. 또는 언어 아이템을 차례 차례 직렬로 처리하는 단일 물리 구성요소 또는 소프트웨어 인스턴스에 의해 3개(또는 그 이상)의 변환 모듈(902, 904, ..., 906)이 구현될 수 있다. 또한 선택사항으로서 변환 모듈(902, 904, 906) 중 임의의 것이 자신의 입력 언어 아이템(가령, 후보 문서(D1, ... Dn))에 대한 처리 동작을 오프라인 프로세스로서, 즉, 사용자가 질의(Q)를 제출하기 전에, 수행할 수 있다.
제1 비교 모듈(908)은 의미 공간에서 상황 C와 문서 D1 간 의미 관계(가령, 유사도)의 범위를 결정하며, 제2 비교 모듈(910)은 의미 공간에서 상황 C와 개체 문서 Dn 간 의미 관계(가령, 유사도)를 결정한다. 하나의 구현예에서, 각각의 비교 모듈은 상황 C와 문서 D 간 의미 관계(가령, 유사도)를, 아래와 같이 코사인 유사도 척도(cosine similarity measure)로서 계산할 수 있다.
Figure 112016099345674-pct00050
코사인 유사도 결정 기법 대신 또 다른 비교 기법, 예컨대, 맨하탄 거리 결정 기법(Manhattan distance determination technique)이 사용될 수 있다.
순위화 모듈(912)은 비교 모듈(908, 910)에 의해 생성되는 관련도 척도를 수신할 수 있다. 그 후 순위화 모듈(916)은 그 밖의 다른 임의의 특징부와 함께, 관련도 척도를 기초로 순위화 점수를 각각의 후보 개체 문서에 할당할 수 있다.
A.3. 훈련 시스템
도 10은 도 1의 훈련 시스템(104)의 한 가지 구현을 도시한다. 하나의 예시적 및 비제한적 경우에서, 훈련 시스템(104)은 (데이터 저장소(108)에 제공된) 클릭-스루 데이터(click-through data)의 코퍼스(corpus)를 처리하여, 모델(106)을 생성할 수 있다. 상기 모델(106)은 도 8에 도시된 가중치 행렬(Wi) 및 편향 인자(bias factor)(bi)의 집합을 나타낸다. 집합적으로, 모델(106)과 연관된 파라미터 값이 심볼 Λ을 이용하는 것으로 지칭된다.
클릭-스루 데이터는 일반적으로, (1) 일정 시간에 걸쳐 실제 사용자가 제출한 질의, (2) 질의를 제출한 후 사용자가 클릭한 문서 및 사용자가 클릭하지 못한 문서의 지시, 및 (3) 각각의 질의와 연관된 상황을 기술하는 정보를 기술한다. 여기서, 반복하자면, 용어 "클릭"은 넓은 의미를 내포하는 것으로 의도됐다. 문자 그대로 마우스 장치를 이용해 사용자가 검색 결과 내 하나의 엔트리 또는 그 밖의 다른 일부 옵션의 표시를 클릭하는 경우를 기술할 수 있다. 그러나 용어 클릭은 또한 사용자가 그 밖의 다른 방식으로 문서에 관심을 보이는 경우를 포함한다.
그러나 형성될 때 클릭-스루 데이터는 각각 훈련 예시(training example)가 되는 훈련 데이터의 복수의 인스턴스를 포함한다. 각각의 예시는 특정 제출된 질의(Q)와 연관된 상황(C), 질의(및 이와 연관된 상황)에 응답하여 사용자가 선택한 문서(D+), 및 질의(및 이와 연관된 상황)에 응답하여 선택하지 않은 적어도 하나의 문서(D-)를 포함한다. 한 경우에서, 데이터 수집 모듈(data collection module)(110)은 검색 엔진의 아카이브(archive)로부터 이 정보를 마이닝(mine)할 수 있다. 이 상황에서, 훈련 인스턴스의 클릭되지 않은 문서(D-)가 질의에 응답하여 사용자에게 제안됐으나 사용자가 선택하기를 거부한 실제 문서에 대응할 수 있다. 또 다른 경우, 사용자가 질의에 응답하는 상기 문서를 실제로 선택하지 않았다면, 수집 모듈은 문서 코퍼스로부터 임의의 문서를 랜덤하게 선택할 수 있다. 그러나 이 후자의 경우, 이 문서(D-)가 사용자에게 실제로 표시될 어떠한 요건도 없다. 어느 경우라도, 도 10은 훈련 예시가 4개의 클릭되지 않은 문서{
Figure 112016099345674-pct00051
}를 포함함을 보여주지만, 훈련 예시는 이러한 문서를 임의의 개수만큼 포함할 수 있다. 문서는 데이터 저장소에 제공되는 문서, 임의의 데이터 구조(가령, 개체-관련 레코드 등) 내 레코드 등에 대응할 수 있다.
훈련 시스템(104)은 반복 해결 메커니즘(1002)을 이용하여, 모델 Λ의 파라미터 값을 반복적으로 변경함으로써, 목적 함수(1004)의 정의되는 목적(objective)을 획득함으로써, 동작한다. 반복 처리가 완료될 때, 최종 파라미터 값이 훈련 모델 Λ이 된다. 그 후 목적 함수(1004)는, 완전 훈련될 때 모델 Λ이 달성하고자 하는 목표를 수학적으로 표현한다. 본 경우에서, 목적 함수는 (질의와 연관된) 각자의 상황을 고려할 때, 클릭된 문서의 조건부 우도(conditional likelihood)가 최대화됨을 서술하고, 상황을 고려할 때, 클릭되지 않는 문서의 조건부 우도가 감소됨을 서술한다. 다시 말하면, 목적 함수는 클릭된 문서의 평가된 관련도가 가능한 높아지도록 하며, 동시에 클릭되지 않는 문서의 평가된 관련도가 가능한 낮아지도록 한다.
목적 함수를 수학적으로 유도하기 위해, 우선, 질의 상황 C가 고려될 때훈련 예시에서 클릭되는 문서(D+)의 확률 P(D│C)이 다음과 같이 소프트맥스 함수(softmax function)로서 표현될 수 있다:
Figure 112016099345674-pct00052
항 RΛ(C, D+)은 모델 Λ과 연관된 파라미터의 특정 현재 선택에 대해 의미 공간에서 질의 상황 C와 클릭되는 문서 D+ 간 의미 관계를 나타낸다. 항 D는 훈련 인스턴스에서 D+ 및 4개의 클릭되지 않은 문서를 포함하는 5개의 문서의 세트를 나타내지만, 앞서 언급된 바와 같이, 훈련 예시는 임의의 개수의 클릭되지 않은 문서를 포함할 수 있다. 항 RΛ(C, D')은 훈련 예시에서 질의 상황 C와 문서들 중 하나(D') 간 의미 공간에서의 의미 관계(가령, 유사도)를 나타낸다. 심볼 ψ는 실험에 의해 유도된(가령, 훈련 예시의 지속되는 데이터세트를 분석함으로써 생성될 수 있는) 평활 인자(smoothing factor)를 나타낸다. 이러한 개별 훈련 예시의 경우, 목적 함수가 RΛ(C, D+)를 가능한 높게 만들고, 각각의 RΛ(C, D-)는 가능한 낮게 만들어, 결국 P(D+│C)를 가능한 높게 만들고, 각각의 P(D-│C)를 가능한 낮게 만들기 위한 시도를 표현할 것이다.
결국, 클릭-스루 데이터의 코퍼스 내 모든 훈련 인스턴스를 고려할 때, 목적 함수가 대응하는 질의를 고려할 때 클릭되는 문서의 조건부 우도를 최대화하거나 이에 상응하게, 다음의 손실 수학식을 최소화하도록 시도하는 것을 포함한다:
Figure 112016099345674-pct00053
다시 말하면, 목적은 실험적 클릭-스루 데이터에서의 모든 예시 또는 이들의 일부 부분집합과 관련하여, 상기의 수학식을 최소화하는 파라미터 값의 세트를 유도하는 것이다.
한 가지 방식으로, 반복 해결 메커니즘(1002)이 기울기-기반 숫자 최적화 알고리즘(gradient-based numerical optimization algorithm), 가령, 기울기 하강 기법을 이용하여, 상기의 문제를 해결할 수 있다. 반복적 해결 메커니즘(1002)은, 예를 들어, 다음의 업데이트 규칙을 적용하여, 최적화를 수행할 수 있다:
Figure 112016099345674-pct00054
여기서, Λt 및 Λt -1은 각각 t번째 및 t-1번째 반복에서의 모델이고,
Figure 112016099345674-pct00055
는 러닝 속도 파라미터(learning rate parameter)이다. 하이-레벨 관점에서, 반복 해결 메커니즘(1002)은 반복 구간 별로 비교적 많이 모델 Λ이 변하는 중일 때마다 모델 Λ를 크게 변경하고, 모델 Λ이 더 느리게 변할 때면 모델 Λ을 적게 변경한다.
더 구체적으로, 클릭-스루 데이터에서 M개의 훈련 예시가 존재한다고 가정할 수 있다. m번째 훈련 예시는 질의 상황
Figure 112016099345674-pct00056
및 상기 질의 및 이의 상황에 응답하여 클릭된 문서
Figure 112016099345674-pct00057
의 특정 페어링에 대응하는
Figure 112016099345674-pct00058
이다. 상기 개별 훈련 인스턴스에 대한 손실 함수는
Figure 112016099345674-pct00059
와 같다.
따라서 전체적으로 손실 함수의 도함수가
Figure 112016099345674-pct00060
와 같이 표현될 수 있다.
Figure 112016099345674-pct00061
은 다음과 같이 유도될 수 있다. 표기를 단순화하기 위해, 이하에서 아랫첨자 m가 생략될 것이다. 우선, 앞서 유도된 손실 함수가 다음과 같이 표현될 수 있다:
Figure 112016099345674-pct00062
여기서,
Figure 112016099345674-pct00063
이다. N번째 가중치 행렬 WN에 대한 손실 함수의 기울기는
Figure 112016099345674-pct00064
와 같고, 여기서,
Figure 112016099345674-pct00065
이며,
Figure 112016099345674-pct00066
이다.
이제, Zi,C 및 Zi,D가 질의 상황 C 및 문서 D에 대한 은닉 층(hidden layer) i에서의 활성값(activation)을 지칭하도록 하자. 그리고
Figure 112016099345674-pct00067
Figure 112016099345674-pct00068
를 질의 상황 C 및 문서 D에 대한 출력 층(810)에 대한 출력 활성값을 지칭하도록 하자. 또한 하기에서의 표기를 단순화하기 위해, a, b, 및 c를
Figure 112016099345674-pct00069
,
Figure 112016099345674-pct00070
Figure 112016099345674-pct00071
에 각각 대응하도록 한다. 마지막으로, 모델에 의해 사용되는 활성 함수가 상기에서 수학식 (1)에서 기재된 tanh 함수에 대응한다고 가정할 수 있다. 이들 정의에 의해, 수학식(10)의 우변에서의 각각의 항이 다음의 공식을 이용해 쌍(C, D)에 대해 계산될 수 있다:
Figure 112016099345674-pct00072
여기서,
Figure 112016099345674-pct00073
Figure 112016099345674-pct00074
이다.
상기의 수학식에서, 연산자 °은 원소별 곱(즉, 아다마르 곱(Hadamard product))이다.
도 8의 방향으로 DNN을 통해 아래로 이동하는 각각의 연속되는 은닉 층에 대한 값
Figure 112016099345674-pct00075
이 다음과 같이 백 투사(back projection)를 통해 계산될 수 있다:
Figure 112016099345674-pct00076
Figure 112016099345674-pct00077
이다.
따라서, 중간 가중치 행렬 Wi(i = 2, ... , N-1)에 대한 손실 함수의 기울기는
Figure 112016099345674-pct00078
와 같이 계산될 수 있다.
여기서,
Figure 112016099345674-pct00079
Figure 112016099345674-pct00080
와 동일하다.
반복 해결 메커니즘(1002)은 DNN이 클릭-스루 데이터로 표현되는 거동을 바람직한 공차 내에서 정확히 모델링할 때까지 분석의 후행 단계 및 전방 단계에서의 상기 수학식을 적용시킬 수 있다. 앞서 기재된 것과 동일한 방식을 이용해 편향 인자 bi가 유도될 수 있다.
훈련 시스템(104)은 병렬 처리 자원(1006)을 이용해 상기에서 기재된 처리를 수행할 수 있다. 병렬 처리 자원(1006)은 임의의 방식으로, 가령, 하드웨어 유닛, 소프트웨어 유닛, 또는 이들의 조합을 이용해 구현될 수 있다. 예를 들어, 훈련 시스템(104)은 도 9에 도시된 것과 유사한 아키텍처를 이용할 수 있다. 각각의 개별 처리 유닛은, 구현되는 방식에 무관하게, 문서 D와 연관된 감소된-차원 벡터를 계산하기 위한 차원-감소 모듈(DRM), 의미 공간에서 문서 개념 벡터
Figure 112016099345674-pct00081
를 생성하기 위한 딥 구조화된 의미 모듈(DSSM), 관련도 척도 RΛ(C, D) 생성하기 위한 비교 모듈, 및 P(C│D)를 생성하기 위한 소프트맥스 모듈을 포함할 수 있다. 또 다른 처리 유닛이 의미 공간에서의 질의 C의 표현
Figure 112016099345674-pct00082
을 생성할 수 있다.
상기의 기재에서, 설명을 단순화하기 위해, 상황 C 및 각각의 후보 문서 D가 포괄적으로 지칭되었다. 그러나 앞서 언급된 바와 같이, 상황 C는 복수의 부분을 가질 수 있고, 문서 D는 복수의 부분을 가질 수 있다. 순위화 프레임워크(120)는 이들 부분에 대한 개별 개념 벡터를 생성할 수 있고, 그 후 이들 개념 벡터들의 임의의 쌍별 비교(pairwise comparison)를 기초로 특징을 형성할 수 있다. 이 능력을 지원하기 위해, 훈련 시스템(104)은 특정 문서 성분과 특정 상황 성분의 각각의 쌍에 대해 앞서 기재된 훈련 동작을 수행할 수 있다. 예를 들어, 훈련 시스템(104)은 (소스 문서에서) 사용자의 질의 주위의 텍스트를 각각의 후보 문서의 제목에 비교하도록 구성된 제1 DNN을 생성할 수 있다. 훈련 시스템(104)은 사용자와 관련된 인구통계학적 정보를 각각의 후보 문서와 연관된 본문과 비교하도록 구성된 제2 DNN을 생성할 수 있는 등이다. 동작의 실시간 단계에서, 순위화 프레임워크(120)는 이러한 모든 DNN을 병렬로 적용하고 이들 DNN에 의해 제공된 특징을 기초로 순위화를 수행할 수 있다.
훈련 시스템(104)은 또한 앞서 기재된 수학식을 이용하여, 질의의 개념적 관계도를 문서에 비교하도록 사용될 수 있는 적어도 하나의 DNN을 생성할 수 있다. 수학식은 (상황과 관련된) C의 각각의 등장을 (질의와 관련된) Q로 대체함으로써 이 훈련 작업을 수행하도록 수정될 수 있다.
마지막으로, 상황과 문서 간 관계(nexus)가 그 밖의 다른 정보, 가령, 클록 로그로부터 마이닝된 클릭-스루 데이터가 아닌 다른 정보로 보일 수 있다. 또 다른 구현예에서, 수집 모듈(110)은 이러한 그 밖의 다른 정보를 수집하여 훈련 데이터를 생성할 수 있고, 훈련 시스템(104)은 클릭-스루 데이터 대신, 또는 이에 추가로, 상기 훈련 데이터를 조작할 수 있다.
B. 예시적 프로세스
도 11-13은 도 1의 환경(102)을 흐름도로 설명한다. 환경(102)의 동작의 기초가 되는 원리가 이미 섹션 A에서 기재된 바 있기 때문에, 이 섹션에서는 특정 동작이 요약된 방식으로 설명될 것이다.
도 11에서 시작하면, 이 도면은 도 1의 순위화 프레임워크(120)의 동작의 한 가지 방식을 설명하는 절차(1102)를 보여준다. 직렬로 나타나지만, 도 11에 도시된 일부 동작은 병렬로 수행될 수 있다. 또한 일부 동작은 오프라인 방식으로, 질의의 수신 전에 수행될 수 있다. 마지막으로, 도 11은 (제출된 질의와 연관된) 상황과 후보 문서의 단일 쌍에 대해 수행되는 처리를 보여준다. 순위화 프레임워크(120)는 모든 후보 문서에 대해 이들 동작을 반복할 수 있다.
블록(1104)에서, 순위화 프레임워크(120)는 질의 정보에 대응하는 질의를 수신한다. 블록(1106)에서, 순위화 프레임워크(120)는 질의와 연관된 상황 정보를 식별한다. 상황 정보는 질의가 제출된 상황을 기술하거나, 더 구체적으로, 상황 정보는 상기 상황의 특정 성분 또는 측면을 기술한다. 블록(1108)에서, 순위화 프레임워크는 딥 러닝 모델(106)을 이용해, 상황 정보를 하이-레벨 의미 공간의 상황 개념 벡터로 변환한다. 블록(1110)에서, 순위화 프레임워크(120)는 고려 중인 후보 문서와 연관된 문서 정보를 수신하거나, 더 구체적으로 문서 정보는 문서의 특정 성분 또는 측면, 가령, 문서의 제목을 기술한다. 그 후 순위화 프레임워크(120)는 딥 러닝 모델(106)을 이용해 문서 정보를 의미 공간의 문서 개념 벡터로 변환한다. 대안적으로, 각각의 문서 개념 벡터는 오프라인 프로세스의 일부로 미리 계산되고, 그 후 관련되고 차후 불러오기를 가능하게 하도록 적절하게 인덱싱된 문서와 함께 저장될 수 있다. 동작의 실시간 단계에서, 질의의 제출 후, 순위화 프레임워크(120)는 고려 중인 문서에 대해 이전에 저장된 문서 개념 벡터를, 재계산할 필요 없이 불러올 수 있다. 블록(1112)에서, 순위화 프레임워크(120)는 상황 개념 벡터를 문서 개념 벡터와 비교하여, 상황과 후보 문서 간 정의된 의미 관계(가령, 유사도) 정도를 반영하는 관련도 척도를 생성할 수 있다. 블록(1114)에서, 순위화 프레임워크(120)는 적어도 관련도 척도를 기초로 후보 문서에 대한 순위화 점수를 결정한다. 블록(1116)에서, (가령, 모든 다른 후보 문서가 앞서 기재된 것과 유사한 방식으로 처리된 후) 순위화 프레임워크(120)는 순위화 점수를 기초로 검색 결과를 제공한다.
도 12는 복수의 문서의 처리와 관련하여, 순위화 프레임워크(120)의 동작을 다른 방식으로 설명하는 절차(1202)를 보여준다. 블록(1204)에서, 순위화 프레임워크(120)는 질의 및 이의 연관된 질의 정보를 수신한다. 블록(1206)에서, 순위화 프레임워크(120)는 질의가 제출됐던 상황(context)과 관련된 질의 연관 상황 정보를 식별한다. 블록(1208)에서, 순위화 프레임워크(120)가 상황 개념 벡터 및 복수의 문서 개념 벡터를 기초로 복수의 후보 문서의 순위를 매긴다. 상황 개념 벡터는 딥 러닝 모델을 이용한 상황 정보의 하이-레벨 의미 공간으로의 투사에 대응한다. 각각의 문서 개념 벡터는 딥 러닝 모델을 이용한 특정 후보 문서와 연관된 문서 정보의 하이-레벨 의미 공간으로의 투사에 대응한다.
도 13은 도 7의 변환 모듈(202)의 동작의 한 가지 방식을 나타내는 절차(1302)를 도시하며, 순위화 프레임워크(120)에서의 그 밖의 다른 변환 모듈은 동일하거나 유사한 방식으로 동작한다. 블록(1304)에서, 차원-감소 모듈(DRM)(702)은 언어 정보, 가령, 상황 정보를 나타내는 입력 벡터를 수신한다. 블록(1306)에서, DRM(702)은 가령, n-그램 해싱(n-gram hashing), 랜덤 투사, 또는 그 밖의 다른 일부 기법을 수행함으로써 입력 아이템을 감소된 차원 벡터로 변환한다. 블록(1308)에서, 딥-구조화된 의미 모듈(DSSM)(704)이, 모델(106)을 이용해, 감소된 차원 아이템을 의미 공간에서 표현되는 개념 벡터로 투사한다.
C. 대표적 컴퓨팅 기능부
도 14는 도 1의 환경(102)의 임의의 형태를 구현하는 데 사용될 수 있는 컴퓨팅 기능부(1402)를 도시한다. 예를 들어, 도 14에 도시된 컴퓨팅 기능부(1402)의 유형이 훈련 시스템(104) 및/또는 검색 엔진(112)의 임의의 구성요소 및/또는 사용자 컴퓨팅 장치(116) 등을 구현하는 데 사용될 수 있다. 일부 경우, 컴퓨팅 기능부(1402)는 하나 이상의 물리적이고 유형인 처리 수단을 나타낸다.
컴퓨팅 기능부(1402)는 하나 이상의 처리 장치(1404), 가령, 하나 이상의 중앙 처리 유닛(CPU), 및/또는 하나 이상의 그래픽 처리 유닛(GPU) 등을 포함할 수 있다.
컴퓨팅 기능부(1402)는 또한, 임의의 유형의 정보, 가령, 코드, 세팅, 데이터 등을 저장하기 위한 임의의 저장 자원(1406)을 더 포함할 수 있다. 비제한적 예를 들면, 저장 자원(1406)은 임의의 유형의 RAM, 임의의 유형의 ROM, 플래시 장치, 하드 디스크, 광 디스크 등 중 임의의 것을 포함할 수 있다. 더 일반적으로, 임의의 저장 자원은 정보를 저장하기 위한 임의의 기법을 이용할 수 있다. 또한 임의의 저장 자원은 휘발성 또는 비휘발성 정보 보유를 제공할 수 있다. 또한, 임의의 저장 자원은 컴퓨팅 기능부(1402)의 고정식 또는 이동식 구성요소를 나타낼 수 있다. 상기 컴퓨팅 기능부(1402)는 처리 장치(1404)가 임의의 저장 자원 또는 저장 자원의 조합에 저장된 명령을 반송할 때 앞서 기재된 기능들 중 임의의 것을 수행할 수 있다.
용어와 관련하여, 저장 자원(1406) 중 임의의 것, 또는 저장 자원(1406)의 임의의 조합이 컴퓨터 판독형 매체로 여겨질 수 있다. 여러 경우에서, 컴퓨터 판독형 매체는 일부 형태의 물리적이고 유형의 개체를 나타낸다. 컴퓨터 판독형 매체라는 용어는 또한 전파된 신호, 가령, 물리 도관 및/또는 공중 또는 그 밖의 다른 무선 매체 등을 통해 송신 또는 수신된 신호를 포함한다. 그러나 특정 용어 "컴퓨터 판독형 저장 매체" 및 "컴퓨터 판독형 매체 장치"는 그 밖의 다른 모든 형태의 컴퓨터 판독형 매체는 포함하면서, 전파되는 신호 자체는 명확히 배제한다.
컴퓨팅 기능부(1402)는 또한 임의의 저장 자원, 가령, 하드 디스크 드라이브 수단, 광 디스크 드라이브 수단 등과 대화하기 위한 하나 이상의 드라이브 수단(1408)을 더 포함한다.
컴퓨팅 기능부(1402)는 또한 (입력 장치(1412)를 통해) 다양한 입력을 수신하고, (출력 장치(1414)를 통해) 다양한 출력을 제공하기 위한 입/출력 모듈(1410)을 더 포함한다. 예시적 입력 장치로는 키보드 장치, 마우스 입력 장치, 터치스크린 입력 장치, 디지털화 패드, 하나 이상의 비디오 카메라, 하나 이상의 심도 카메라, 자유 공간 제스처 인식 수단, 하나 이상의 마이크로폰, 음성 인식 수단, 임의의 운동 검출 수단(가령, 가속도계, 자이로스코프 등) 등을 포함한다. 하나의 특정 출력 수단으로는 표시 장치(1416) 및 이와 연관된 그래픽 사용자 인터페이스(GUI)(1418)를 포함할 수 있다. 그 밖의 다른 출력 장치는 프린터, 모델-생성 수단, 촉각 출력 수단, (출력 정보를 저장하기 위한) 저장 수단 등을 포함한다. 컴퓨팅 기능부(1402)는 또한 하나 이상의 통신 도관(1422)을 통해 데이터를 그 밖의 다른 장치와 교환하기 위한 하나 이상의 네트워크 인터페이스(1420)를 포함할 수 있다. 하나 이상의 통신 버스(1424)는 앞서 기재된 구성요소들을 통신 가능하게 연결한다.
통신 도관(들)(1422)은 임의의 방식으로, 가령, 로컬 영역 네트워크, 광역 네트워크(가령, 인터넷), 포인트-투-포인트 연결 등, 또는 이들의 조합으로 구현될 수 있다. 통신 도관(1422)은 임의의 프로토콜 또는 프로토콜 조합에 의해 통제되는, 하드와이어링된 링크, 무선 링크, 라우터, 게이트웨이 기능부, 네임 서버 등 중 임의의 조합을 포함할 수 있다.
대안으로 또는 추가로, 앞서 기재된 기능들 중 임의의 것이, 하나 이상의 하드웨어 로직 구성요소에 의해 적어도 부분적으로 수행될 수 있다. 비제한적 예를 들면, 컴퓨팅 기능부(1402)는 FPGA(Field-programmable Gate Array), ASIC(Application-specific Integrated Circuit), ASSP(Application-specific Standard Product), SOC(System-on-a-chip system), CPLD(Complex Programmable Logic Device) 등 중 하나 이상을 이용해 구현될 수 있다.
마치면서, 본 명세서에 기재된 기능부는 임의의 사용자 데이터가 적용 가능한 법칙, 사회 규범, 및 개인의 예상 및 선호에 맞는 방식으로 핸들링되는 것을 보장하기 위한 다양한 수단을 채용할 수 있다. 예를 들어, 기능부에 의해 사용자는 기능부의 프로비저닝에 참여(그리고 자명히도 탈퇴)할 수 있다. 기능부는 또한 사용자 데이터의 프라이버시를 보장하기 위한 적절한 보안 수단(가령, 데이터-청결 수단, 암호화 수단, 패드워드-보호 수단 등)을 제공할 수 있다.
또한, 기재는 실례적 과제 또는 문제의 맥락에서 다양한 개념을 기술했을 수 있다. 이러한 설명 방식을 다른 것이 과제 또는 문제를 본 명세서에 특정된 방식으로 인지 및/또는 분명화함을 나타내지 않는다. 본 발명은 앞서 언급된 과제/문제 중 임의의 것 또는 전부를 해결하는 구현예에 국한되지 않는다.
더 일반적으로, 본 발명은 구조적 특징 및/또는 방법적 동작에 특정적인 언어로 기재되었지만, 이하의 청구항에서 정의된 본 발명은 앞서 기재된 특정 특징 또는 동작에 반드시 한정되지 않음이 이해될 수 있다. 오히려, 앞서 기재된 특정 특징 및 동작이 청구항을 구현하는 예시적 형태로서 개시된다.

Claims (20)

  1. 검색을 수행하기 위해 하나 이상의 컴퓨팅 장치에 의해 구현되는 방법으로서,
    질의 및 연관된 질의 정보를 수신하는 단계와,
    상기 질의가 제출됐던 상황(context)에 관한, 상기 질의와 연관된 상황 정보를 식별하는 단계 ― 상기 상황은 복수의 부분을 가짐 ― 와,
    딥 러닝 모델을 이용하여, 상기 상황 정보를 의미 공간(semantic space) 내의 복수의 상황 개념 벡터(context concept vector)로 변환하는 단계 ― 각각의 상황 개념 벡터는 상기 상황의 복수의 부분 중 한 부분을 나타냄 ― 와,
    문서와 연관된 문서 정보를 수신하는 단계 ― 상기 문서는 복수의 부분을 가짐 ― 와,
    상기 딥 러닝 모델을 이용하여 상기 문서 정보를 상기 의미 공간 내의 복수의 문서 개념 벡터(document concept vector)로 변환하는 단계 ― 각각의 문서 개념 벡터는 상기 문서의 복수의 부분 중 한 부분을 나타냄 ― 와,
    상기 상황과 상기 문서 사이의 정의된 의미 관계의 정도를 나타내는 관련도 척도(relevance measure)를 생성하도록 상기 상황 개념 벡터와 상기 문서 개념 벡터의 쌍별 비교(pairwise comparison)를 수행하는 단계와,
    적어도 상기 관련도 척도에 기초하여 상기 문서에 대한 순위 점수(ranking score)를 결정하는 단계와,
    상기 순위 점수에 기초하여 검색 결과를 제공하는 단계를 포함하는
    방법.
  2. 제1항에 있어서,
    상기 질의를 수신하는 단계, 상기 상황 정보를 식별하는 단계, 상기 상황 정보를 변환하는 단계, 상기 문서 정보를 수신하는 단계, 상기 문서 정보를 변환하는 단계, 상기 비교를 수행하는 단계 및 상기 결정하는 단계를 복수의 문서에 대해 반복하여 상기 복수의 문서에 대한 복수의 순위 점수를 생성하는 단계와,
    상기 순위 점수에 기초하여 상기 복수의 문서의 순위를 매기는 단계를 더 포함하는
    방법.
  3. 제2항에 있어서,
    사전 순위화 동작에서, 상기 질의에 기초하여 상기 복수의 문서를 식별하는 단계를 더 포함하는
    방법.
  4. 제1항에 있어서,
    상기 문서는 개체(entity)와 관련되고, 상기 문서 정보는 상기 개체의 적어도 하나의 특징(aspect)을 기술하는,
    방법.
  5. 제1항에 있어서,
    상기 상황 정보는 소스 문서 내에서 상기 질의에 근접한 텍스트 내용을 기술하는,
    방법.
  6. 제1항에 있어서,
    상기 상황 정보는 상기 질의를 제출한 사용자와 연관된 적어도 하나의 인구통계적 특성을 기술하는,
    방법.
  7. 제1항에 있어서,
    상기 상황 정보는 상기 질의를 제출한 사용자가 보여준 이전 행동을 기술하는,
    방법.
  8. 제7항에 있어서,
    상기 이전 행동은 사용자가 제출한 이전 질의 및 사용자가 수행한 이전 검색 선택 중 적어도 하나를 기술하는,
    방법.
  9. 제1항에 있어서,
    상기 상황 정보는 상기 질의를 제출한 사용자의 현재 위치를 기술하는,
    방법.
  10. 제1항에 있어서,
    상기 상황 정보는 상기 질의가 제출된 시점을 기술하는,
    방법.
  11. 제1항에 있어서,
    상기 문서에 대한 순위 점수는 또한 상기 상황 개념 벡터 및 상기 문서 개념 벡터 중 적어도 하나에 기초하여 생성되는,
    방법.
  12. 제1항에 있어서,
    상기 딥 러닝 모델을 이용하여 상기 질의 정보를 상기 의미 공간 내의 질의 개념 벡터로 변환하는 단계를 더 포함하되,
    상기 문서에 대한 순위 점수는 또한 상기 질의 개념 벡터에 기초하는,
    방법.
  13. 제1항에 있어서,
    상기 딥 러닝 모델은 다층 신경 네트워크인,
    방법.
  14. 제1항에 있어서,
    상기 변환하는 단계들 각각은, 상기 상황 정보 또는 상기 문서 정보와 연관된 입력 벡터에 대해,
    상기 입력 벡터를 감소된-차원 벡터로 변환하는 단계와,
    다층 신경 네트워크를 이용하여 상기 감소된-차원 벡터를 개념 벡터로 투사하는 단계를 포함하며,
    상기 개념 벡터는 상기 상황 개념 벡터 또는 상기 문서 개념 벡터와 연관되는,
    방법.
  15. 제1항에 있어서,
    상기 딥 러닝 모델은, 클릭-스루 데이터(click-through data)를 이용하여, 각각의 상황을 고려할 때 클릭된 문서의 조건부 우도(conditional likelihood)가 최대화되고, 상기 상황을 고려할 때 클릭되지 않는 문서의 조건부 우도가 감소되도록 훈련되는,
    방법.
  16. 컴퓨터 판독가능 명령어를 저장한 컴퓨터 판독가능 저장 장치로서,
    상기 컴퓨터 판독가능 명령어는 하나 이상의 처리 장치에 의해 실행될 때 순위화 프레임워크를 제공하는 방법을 수행하고, 상기 방법은,
    질의 및 연관된 질의 정보를 수신하는 단계와,
    상기 질의가 제출됐던 상황에 관한, 상기 질의와 연관된 상황 정보를 식별하는 단계 ― 상기 상황은 복수의 부분을 가짐 ― 와,
    딥 러닝 모델을 이용하여, 상기 상황 정보를 의미 공간 내의 복수의 상황 개념 벡터로 변환하는 단계 ― 각각의 상황 개념 벡터는 상기 상황의 복수의 부분 중 한 부분을 나타냄 ― 와,
    문서와 연관된 문서 정보를 수신하는 단계 ― 상기 문서는 복수의 부분을 가짐 ― 와,
    상기 딥 러닝 모델을 이용하여 상기 문서 정보를 상기 의미 공간 내의 복수의 문서 개념 벡터로 변환하는 단계 ― 각각의 문서 개념 벡터는 상기 문서의 복수의 부분 중 한 부분을 나타냄 ― 와,
    상기 상황과 상기 문서 사이의 정의된 의미 관계의 정도를 나타내는 관련도 척도를 생성하도록 상기 상황 개념 벡터와 상기 문서 개념 벡터의 쌍별 비교를 수행하는 단계와,
    적어도 상기 관련도 척도에 기초하여 상기 문서에 대한 순위 점수를 결정하는 단계와,
    상기 순위 점수에 기초하여 검색 결과를 제공하는 단계를 포함하는,
    컴퓨터 판독가능 저장 장치.
  17. 제16항에 있어서,
    상기 문서에 대한 순위 점수를 결정하는 단계는, 상기 상황 개념 벡터 및 상기 문서 개념 벡터에 중 적어도 하나에 기초하여 상기 문서에 대한 순위 점수를 결정하는 단계를 포함하는,
    컴퓨터 판독가능 저장 장치.
  18. 제16항에 있어서,
    상기 딥 러닝 모델은 다층 신경 네트워크인,
    컴퓨터 판독가능 저장 장치.
  19. 검색 엔진을 구현하는 적어도 하나의 컴퓨팅 장치로서,
    프로세서와,
    상기 프로세서에 의해 동작가능한 실행가능 명령어를 포함하되, 상기 실행가능 명령어는 검색을 수행하는 방법을 포함하고, 상기 방법은,
    질의 및 연관된 질의 정보를 수신하는 단계와,
    상기 질의가 제출됐던 상황에 관한, 상기 질의와 연관된 상황 정보를 식별하는 단계 ― 상기 상황은 복수의 부분을 가짐 ― 와,
    딥 러닝 모델을 이용하여, 상기 상황 정보를 의미 공간 내의 복수의 상황 개념 벡터로 변환하는 단계 ― 각각의 상황 개념 벡터는 상기 상황의 복수의 부분 중 한 부분을 나타냄 ― 와,
    문서와 연관된 문서 정보를 수신하는 단계 ― 상기 문서는 복수의 부분을 가짐 ― 와,
    상기 딥 러닝 모델을 이용하여 상기 문서 정보를 상기 의미 공간 내의 복수의 문서 개념 벡터로 변환하는 단계 ― 각각의 문서 개념 벡터는 상기 문서의 복수의 부분 중 한 부분을 나타냄 ― 와,
    상기 상황과 상기 문서 사이의 정의된 의미 관계의 정도를 나타내는 관련도 척도를 생성하도록 상기 상황 개념 벡터와 상기 문서 개념 벡터의 쌍별 비교를 수행하는 단계와,
    적어도 상기 관련도 척도에 기초하여 상기 문서에 대한 순위 점수를 결정하는 단계와,
    상기 순위 점수에 기초하여 검색 결과를 제공하는 단계를 포함하는,
    컴퓨팅 장치.
  20. 제19항에 있어서,
    상기 딥 러닝 모델은 다층 신경 네트워크인,
    컴퓨팅 장치.
KR1020167028529A 2014-04-14 2015-04-06 딥 러닝 모델을 이용한 상황 의존 검색 기법 KR102354716B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/252,703 2014-04-14
US14/252,703 US9535960B2 (en) 2014-04-14 2014-04-14 Context-sensitive search using a deep learning model
PCT/US2015/024417 WO2015160544A1 (en) 2014-04-14 2015-04-06 Context-sensitive search using a deep learning model

Publications (2)

Publication Number Publication Date
KR20160144384A KR20160144384A (ko) 2016-12-16
KR102354716B1 true KR102354716B1 (ko) 2022-01-21

Family

ID=53039603

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167028529A KR102354716B1 (ko) 2014-04-14 2015-04-06 딥 러닝 모델을 이용한 상황 의존 검색 기법

Country Status (5)

Country Link
US (1) US9535960B2 (ko)
EP (1) EP3132362A1 (ko)
KR (1) KR102354716B1 (ko)
CN (1) CN106415535B (ko)
WO (1) WO2015160544A1 (ko)

Families Citing this family (91)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9519859B2 (en) 2013-09-06 2016-12-13 Microsoft Technology Licensing, Llc Deep structured semantic model produced using click-through data
US9886479B2 (en) * 2014-07-29 2018-02-06 International Business Machines Corporation Managing credibility for a question answering system
US10089580B2 (en) 2014-08-11 2018-10-02 Microsoft Technology Licensing, Llc Generating and using a knowledge-enhanced model
KR101627428B1 (ko) * 2014-11-17 2016-06-03 포항공과대학교 산학협력단 딥 러닝을 이용하는 구문 분석 모델 구축 방법 및 이를 수행하는 장치
KR101646461B1 (ko) * 2015-04-22 2016-08-12 강원대학교산학협력단 딥 러닝을 이용한 한국어 의존 구문 분석 방법
US11675795B2 (en) * 2015-05-15 2023-06-13 Yahoo Assets Llc Method and system for ranking search content
US10474950B2 (en) * 2015-06-29 2019-11-12 Microsoft Technology Licensing, Llc Training and operation of computational models
US10762144B2 (en) * 2015-09-09 2020-09-01 International Business Machines Corporation Search engine domain transfer
US10055463B1 (en) * 2015-10-29 2018-08-21 Google Llc Feature based ranking adjustment
CN106844368B (zh) * 2015-12-03 2020-06-16 华为技术有限公司 用于人机对话的方法、神经网络***和用户设备
EP3188086B1 (en) * 2015-12-30 2020-02-19 Facebook, Inc. Identifying entities using a deep-learning model
US10402750B2 (en) 2015-12-30 2019-09-03 Facebook, Inc. Identifying entities using a deep-learning model
US10685281B2 (en) 2016-02-12 2020-06-16 Microsoft Technology Licensing, Llc Automated predictive modeling and framework
US10176232B2 (en) 2016-03-01 2019-01-08 Microsoft Technology Licensing, Llc Blending enterprise content and web results
US10909450B2 (en) 2016-03-29 2021-02-02 Microsoft Technology Licensing, Llc Multiple-action computational model training and operation
US10282411B2 (en) 2016-03-31 2019-05-07 International Business Machines Corporation System, method, and recording medium for natural language learning
KR20170118520A (ko) 2016-04-15 2017-10-25 삼성전자주식회사 인터페이스 뉴럴 네트워크
US10803127B2 (en) * 2016-06-06 2020-10-13 Salesforce.Com, Inc. Relevant information retrieval in record management systems
US9940544B2 (en) 2016-06-08 2018-04-10 Adobe Systems Incorporated Event image curation
US10467529B2 (en) * 2016-06-08 2019-11-05 Adobe Inc. Convolutional neural network joint training
US9940551B1 (en) * 2016-06-17 2018-04-10 Google Llc Image generation using neural networks
US10929977B2 (en) 2016-08-25 2021-02-23 Intel Corporation Coupled multi-task fully convolutional networks using multi-scale contextual information and hierarchical hyper-features for semantic image segmentation
US10909140B2 (en) 2016-09-26 2021-02-02 Splunk Inc. Clustering events based on extraction rules
US10685279B2 (en) * 2016-09-26 2020-06-16 Splunk Inc. Automatically generating field extraction recommendations
US10565265B2 (en) * 2016-10-12 2020-02-18 Salesforce.Com, Inc. Accounting for positional bias in a document retrieval system using machine learning
US10558687B2 (en) * 2016-10-27 2020-02-11 International Business Machines Corporation Returning search results utilizing topical user click data when search queries are dissimilar
US10592568B2 (en) 2016-10-27 2020-03-17 International Business Machines Corporation Returning search results utilizing topical user click data when search queries are dissimilar
US11361242B2 (en) * 2016-10-28 2022-06-14 Meta Platforms, Inc. Generating recommendations using a deep-learning model
CN106547871B (zh) * 2016-10-31 2020-04-07 北京百度网讯科技有限公司 基于神经网络的搜索结果的召回方法和装置
CN106776869B (zh) * 2016-11-28 2020-04-07 北京百度网讯科技有限公司 基于神经网络的搜索优化方法、装置以及搜索引擎
US10459928B2 (en) * 2016-12-14 2019-10-29 Microsoft Technology Licensing, Llc Dynamic tensor attention for information retrieval scoring
US10891673B1 (en) * 2016-12-22 2021-01-12 A9.Com, Inc. Semantic modeling for search
WO2018135881A1 (en) 2017-01-19 2018-07-26 Samsung Electronics Co., Ltd. Vision intelligence management for electronic devices
US10909371B2 (en) 2017-01-19 2021-02-02 Samsung Electronics Co., Ltd. System and method for contextual driven intelligence
CN110300979A (zh) * 2017-02-07 2019-10-01 卡塔尔大学 广义操作感知:新生人工神经网络
US11188824B2 (en) * 2017-02-17 2021-11-30 Google Llc Cooperatively training and/or using separate input and subsequent content neural networks for information retrieval
US11509794B2 (en) * 2017-04-25 2022-11-22 Hewlett-Packard Development Company, L.P. Machine-learning command interaction
JP6918140B2 (ja) * 2017-04-29 2021-08-11 グーグル エルエルシーGoogle LLC トレーニング済み生成モデルを用いたクエリ変異形の生成
US10380259B2 (en) 2017-05-22 2019-08-13 International Business Machines Corporation Deep embedding for natural language content based on semantic dependencies
CN107402954B (zh) * 2017-05-26 2020-07-10 百度在线网络技术(北京)有限公司 建立排序模型的方法、基于该模型的应用方法和装置
CN110945500A (zh) * 2017-06-08 2020-03-31 脸谱公司 键值记忆网络
US11521045B2 (en) 2017-06-14 2022-12-06 Knowm, Inc. Anti-Hebbian and Hebbian (AHAH) computing
US10255273B2 (en) 2017-06-15 2019-04-09 Microsoft Technology Licensing, Llc Method and system for ranking and summarizing natural language passages
US11899707B2 (en) * 2017-07-09 2024-02-13 Cortica Ltd. Driving policies determination
CN107368476B (zh) * 2017-07-25 2020-11-03 深圳市腾讯计算机***有限公司 一种翻译的方法、目标信息确定的方法及相关装置
KR102542049B1 (ko) * 2017-08-01 2023-06-12 삼성전자주식회사 인공지능 학습모델을 이용하여 요약 정보를 제공하기 위한 전자 장치 및 이의 제어 방법
US10699062B2 (en) * 2017-08-01 2020-06-30 Samsung Electronics Co., Ltd. Apparatus and method for providing summarized information using an artificial intelligence model
US11238339B2 (en) * 2017-08-02 2022-02-01 International Business Machines Corporation Predictive neural network with sentiment data
KR102054514B1 (ko) * 2017-08-07 2019-12-10 강준철 인공지능(ai)을 통한 딥러닝훈련모듈과, 순위화프레임워크모듈을 활용하여, 법률전문가에게 최적화된 모범답안을 제시하는 한편, 법률정보를 의미 벡터로 변환하여, 데이터베이스에 저장하고, 이에 대한 문자열 사전모듈을 활용한 온라인 법률정보사전을 제공하는 시스템 및 그 방법
CN107679082A (zh) * 2017-08-31 2018-02-09 阿里巴巴集团控股有限公司 问答搜索方法、装置以及电子设备
US10592542B2 (en) 2017-08-31 2020-03-17 International Business Machines Corporation Document ranking by contextual vectors from natural language query
US10956510B2 (en) * 2017-10-05 2021-03-23 International Business Machines Corporation Generate a knowledge graph using a search index
US11698936B2 (en) 2017-10-09 2023-07-11 Home Depot Product Authority, Llc System and methods for search engine parameter tuning using genetic algorithm
WO2019117958A1 (en) * 2017-12-15 2019-06-20 Intel Corporation Context-based search using spike waves in spiking neural networks
CN117912459A (zh) * 2017-12-15 2024-04-19 谷歌有限责任公司 训练和/或使用编码器模型确定自然语言输入的响应动作
CN110033338B (zh) * 2018-01-11 2024-06-07 北京搜狗科技发展有限公司 推荐方法和装置、用于推荐的装置
US20190251422A1 (en) * 2018-02-09 2019-08-15 Microsoft Technology Licensing, Llc Deep neural network architecture for search
US10977429B2 (en) 2018-02-27 2021-04-13 Sap Se Machine learning based document editing engine
CN108536791B (zh) * 2018-03-30 2019-07-30 北京百度网讯科技有限公司 基于神经网络的搜索方法、设备及存储介质
US10148525B1 (en) 2018-04-13 2018-12-04 Winshuttle, Llc Methods and systems for mitigating risk in deploying unvetted data handling rules
KR102063036B1 (ko) 2018-04-19 2020-01-07 한밭대학교 산학협력단 딥러닝과 문자인식으로 구현한 시각주의 모델 기반의 문서 종류 자동 분류 장치 및 방법
US11120333B2 (en) 2018-04-30 2021-09-14 International Business Machines Corporation Optimization of model generation in deep learning neural networks using smarter gradient descent calibration
CN110460882B (zh) * 2018-05-07 2020-07-17 中国科学院声学研究所 一种基于数据特征降维编码的流媒体内容分发方法
US10719661B2 (en) * 2018-05-16 2020-07-21 United States Of America As Represented By Secretary Of The Navy Method, device, and system for computer-based cyber-secure natural language learning
WO2019237298A1 (en) 2018-06-14 2019-12-19 Beijing Didi Infinity Technology And Development Co., Ltd. Systems and methods for on-demand services
RU2731658C2 (ru) 2018-06-21 2020-09-07 Общество С Ограниченной Ответственностью "Яндекс" Способ и система выбора для ранжирования поисковых результатов с помощью алгоритма машинного обучения
US11106859B1 (en) * 2018-06-26 2021-08-31 Facebook, Inc. Systems and methods for page embedding generation
US11657322B2 (en) * 2018-08-30 2023-05-23 Nec Corporation Method and system for scalable multi-task learning with convex clustering
US11461551B1 (en) * 2018-10-23 2022-10-04 Private AI Inc. Secure word search
KR102669026B1 (ko) * 2018-10-26 2024-05-27 삼성전자주식회사 전자 장치 및 이의 제어 방법
US11562011B2 (en) 2018-10-29 2023-01-24 EMC IP Holding Company LLC Incorporating data into search engines using deep learning mechanisms
CN109460427A (zh) * 2018-11-08 2019-03-12 广东工业大学 一种面向用户动态偏好挖掘的节目嵌入方法
RU2733481C2 (ru) 2018-12-13 2020-10-01 Общество С Ограниченной Ответственностью "Яндекс" Способ и система генерирования признака для ранжирования документа
CN109783805B (zh) * 2018-12-17 2020-04-24 北京邮电大学 一种网络社区用户识别方法、装置和可读存储介质
RU2744029C1 (ru) 2018-12-29 2021-03-02 Общество С Ограниченной Ответственностью "Яндекс" Система и способ формирования обучающего набора для алгоритма машинного обучения
US10664527B1 (en) * 2019-01-18 2020-05-26 PolyAI Limited Response retrieval system and method
US10943068B2 (en) * 2019-03-29 2021-03-09 Microsoft Technology Licensing, Llc N-ary relation prediction over text spans
US11170007B2 (en) 2019-04-11 2021-11-09 International Business Machines Corporation Headstart for data scientists
CN110689110B (zh) * 2019-08-28 2023-06-02 创新先进技术有限公司 处理交互事件的方法及装置
RU2019128026A (ru) * 2019-09-05 2021-03-05 Общество С Ограниченной Ответственностью «Яндекс» Способ и система для ранжирования множества цифровых документов
US11663280B2 (en) * 2019-10-15 2023-05-30 Home Depot Product Authority, Llc Search engine using joint learning for multi-label classification
US11769056B2 (en) 2019-12-30 2023-09-26 Affectiva, Inc. Synthetic data for neural network training using vectors
KR20210100446A (ko) * 2020-02-06 2021-08-17 삼성전자주식회사 대화의 맥락에 대응하는 발화를 제공하는 전자 장치 및 이의 동작 방법
US11360937B2 (en) 2020-03-20 2022-06-14 Bank Of America Corporation System for natural language processing-based electronic file scanning for processing database queries
US11657304B2 (en) * 2020-05-01 2023-05-23 Microsoft Technology Licensing, Llc Assessing similarity between items using embeddings produced using a distributed training framework
US11429792B2 (en) 2020-05-07 2022-08-30 Microsoft Technology Licensing, Llc Creating and interacting with data records having semantic vectors and natural language expressions produced by a machine-trained model
US11663273B2 (en) 2020-06-30 2023-05-30 International Business Machines Corporation Cognitive horizon surveillance
US20220164402A1 (en) * 2020-11-26 2022-05-26 Flipkart Internet Private Limited Enhancing the accuracy of search results
US11983208B2 (en) 2021-02-16 2024-05-14 International Business Machines Corporation Selection-based searching using concatenated word and context
US20220414128A1 (en) * 2021-06-23 2022-12-29 Servicenow Canada Inc. Method and system for interactive searching based on semantic similarity of semantic representations of text objects
US11409800B1 (en) 2021-07-23 2022-08-09 Bank Of America Corporation Generating search queries for database searching

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060026013A1 (en) 2004-07-29 2006-02-02 Yahoo! Inc. Search systems and methods using in-line contextual queries

Family Cites Families (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6574632B2 (en) 1998-11-18 2003-06-03 Harris Corporation Multiple engine information retrieval and visualization system
US6766316B2 (en) * 2001-01-18 2004-07-20 Science Applications International Corporation Method and system of ranking and clustering for document indexing and retrieval
US7284191B2 (en) * 2001-08-13 2007-10-16 Xerox Corporation Meta-document management system with document identifiers
US20050004905A1 (en) 2003-03-03 2005-01-06 Scott Dresden Search engine with neural network weighting based on parametric user data
US20050278362A1 (en) * 2003-08-12 2005-12-15 Maren Alianna J Knowledge discovery system
US7716216B1 (en) 2004-03-31 2010-05-11 Google Inc. Document ranking based on semantic distance between terms in a document
US7680659B2 (en) 2005-06-01 2010-03-16 Microsoft Corporation Discriminative training for language modeling
US7475072B1 (en) 2005-09-26 2009-01-06 Quintura, Inc. Context-based search visualization and context management using neural networks
US7822699B2 (en) 2005-11-30 2010-10-26 Microsoft Corporation Adaptive semantic reasoning engine
US7707204B2 (en) 2005-12-13 2010-04-27 Microsoft Corporation Factoid-based searching
US20070203869A1 (en) 2006-02-28 2007-08-30 Microsoft Corporation Adaptive semantic platform architecture
WO2008058218A2 (en) * 2006-11-08 2008-05-15 Seeqpod, Inc. Matching and recommending relevant videos and media to individual search engine results
US7685084B2 (en) 2007-02-09 2010-03-23 Yahoo! Inc. Term expansion using associative matching of labeled term pairs
US7873640B2 (en) 2007-03-27 2011-01-18 Adobe Systems Incorporated Semantic analysis documents to rank terms
WO2009003124A1 (en) * 2007-06-26 2008-12-31 Seeqpod, Inc. Media discovery and playlist generation
US7840569B2 (en) 2007-10-18 2010-11-23 Microsoft Corporation Enterprise relevancy ranking using a neural network
US7844555B2 (en) 2007-11-13 2010-11-30 Microsoft Corporation Ranker selection for statistical natural language processing
WO2009068072A1 (en) 2007-11-30 2009-06-04 Kinkadee Systems Gmbh Scalable associative text mining network and method
US8392436B2 (en) 2008-02-07 2013-03-05 Nec Laboratories America, Inc. Semantic search via role labeling
US8504361B2 (en) * 2008-02-07 2013-08-06 Nec Laboratories America, Inc. Deep neural networks and methods for using same
US7974974B2 (en) 2008-03-20 2011-07-05 Microsoft Corporation Techniques to perform relative ranking for search results
US8812493B2 (en) 2008-04-11 2014-08-19 Microsoft Corporation Search results ranking using editing distance and document information
US20090276414A1 (en) 2008-04-30 2009-11-05 Microsoft Corporation Ranking model adaptation for searching
US8364664B2 (en) * 2008-05-12 2013-01-29 Enpulz, L.L.C. Web browser accessible search engine that identifies search result maxima through user search flow and result content comparison
US8321431B2 (en) * 2008-08-28 2012-11-27 Frogzog, Llc Iterative and interactive context based searching
US8255412B2 (en) * 2008-12-17 2012-08-28 Microsoft Corporation Boosting algorithm for ranking model adaptation
US20100161641A1 (en) * 2008-12-22 2010-06-24 NBC Universal, Inc., a New York Corporation System and method for computerized searching with a community perspective
US8359282B2 (en) 2009-01-12 2013-01-22 Nec Laboratories America, Inc. Supervised semantic indexing and its extensions
US20100318531A1 (en) 2009-06-10 2010-12-16 Microsoft Corporation Smoothing clickthrough data for web search ranking
CN102056335B (zh) * 2009-11-06 2014-02-19 华为技术有限公司 移动搜索方法、装置和***
US20130166303A1 (en) * 2009-11-13 2013-06-27 Adobe Systems Incorporated Accessing media data using metadata repository
US9047283B1 (en) * 2010-01-29 2015-06-02 Guangsheng Zhang Automated topic discovery in documents and content categorization
US20110208735A1 (en) 2010-02-23 2011-08-25 Microsoft Corporation Learning Term Weights from the Query Click Field for Web Search
US8874432B2 (en) 2010-04-28 2014-10-28 Nec Laboratories America, Inc. Systems and methods for semi-supervised relationship extraction
US8161073B2 (en) * 2010-05-05 2012-04-17 Holovisions, LLC Context-driven search
US20110276390A1 (en) 2010-05-06 2011-11-10 Microsoft Corporation Selecting advertisements for presentation with search results
US20120036015A1 (en) 2010-07-06 2012-02-09 Sheikh Omar M Relevancy of advertising material through user-defined preference filters, location and permission information
US8645289B2 (en) 2010-12-16 2014-02-04 Microsoft Corporation Structured cross-lingual relevance feedback for enhancing search results
US20120233160A1 (en) * 2011-03-07 2012-09-13 Indus Techinnovations Llp System and method for assisting a user to identify the contexts of search results
US9507861B2 (en) 2011-04-01 2016-11-29 Microsoft Technolgy Licensing, LLC Enhanced query rewriting through click log analysis
US8732151B2 (en) 2011-04-01 2014-05-20 Microsoft Corporation Enhanced query rewriting through statistical machine translation
US9501759B2 (en) 2011-10-25 2016-11-22 Microsoft Technology Licensing, Llc Search query and document-related data translation
US10176168B2 (en) 2011-11-15 2019-01-08 Microsoft Technology Licensing, Llc Statistical machine translation based search query spelling correction
US9009148B2 (en) 2011-12-19 2015-04-14 Microsoft Technology Licensing, Llc Clickthrough-based latent semantic model
GB2499395A (en) 2012-02-14 2013-08-21 British Sky Broadcasting Ltd Search method
US9305050B2 (en) 2012-03-06 2016-04-05 Sergey F. Tolkachev Aggregator, filter and delivery system for online context dependent interaction, systems and methods
US9141906B2 (en) * 2013-03-13 2015-09-22 Google Inc. Scoring concept terms using a deep network
US9519859B2 (en) * 2013-09-06 2016-12-13 Microsoft Technology Licensing, Llc Deep structured semantic model produced using click-through data

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060026013A1 (en) 2004-07-29 2006-02-02 Yahoo! Inc. Search systems and methods using in-line contextual queries

Also Published As

Publication number Publication date
CN106415535B (zh) 2020-03-17
US20150293976A1 (en) 2015-10-15
KR20160144384A (ko) 2016-12-16
CN106415535A (zh) 2017-02-15
EP3132362A1 (en) 2017-02-22
US9535960B2 (en) 2017-01-03
WO2015160544A1 (en) 2015-10-22

Similar Documents

Publication Publication Date Title
KR102354716B1 (ko) 딥 러닝 모델을 이용한 상황 의존 검색 기법
EP3180742B1 (en) Generating and using a knowledge-enhanced model
JP7282940B2 (ja) 電子記録の文脈検索のためのシステム及び方法
CN107066464B (zh) 语义自然语言向量空间
US10055686B2 (en) Dimensionally reduction of linguistics information
US11138285B2 (en) Intent encoder trained using search logs
JP6799152B1 (ja) クリックグラフ上のベクトル伝播モデルに基づくインテリジェントなカスタマーサービス
US20180218080A1 (en) Conversational agent for search
JP6361351B2 (ja) 発話ワードをランク付けする方法、プログラム及び計算処理システム
US10445376B2 (en) Rewriting keyword information using search engine results
US20150363688A1 (en) Modeling interestingness with deep neural networks
US11455335B2 (en) Image retrieval using interactive natural language dialog
US11361028B2 (en) Generating a graph data structure that identifies relationships among topics expressed in web documents
US11429792B2 (en) Creating and interacting with data records having semantic vectors and natural language expressions produced by a machine-trained model
US11308146B2 (en) Content fragments aligned to content criteria
WO2023033942A1 (en) Efficient index lookup using language-agnostic vectors and context vectors
US20220366133A1 (en) Training a Model in a Data-Scarce Environment Using Added Parameter Information
CN114930316A (zh) 透明迭代多概念语义搜索
US11868380B1 (en) Systems and methods for large-scale content exploration

Legal Events

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