KR102197023B1 - 다음 사용자 프롬프트 유형 선택하기 - Google Patents

다음 사용자 프롬프트 유형 선택하기 Download PDF

Info

Publication number
KR102197023B1
KR102197023B1 KR1020197007548A KR20197007548A KR102197023B1 KR 102197023 B1 KR102197023 B1 KR 102197023B1 KR 1020197007548 A KR1020197007548 A KR 1020197007548A KR 20197007548 A KR20197007548 A KR 20197007548A KR 102197023 B1 KR102197023 B1 KR 102197023B1
Authority
KR
South Korea
Prior art keywords
knowledge graph
user
dimension
prompt
natural language
Prior art date
Application number
KR1020197007548A
Other languages
English (en)
Other versions
KR20190039572A (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 이베이 인크.
Priority to KR1020207037188A priority Critical patent/KR102395988B1/ko
Publication of KR20190039572A publication Critical patent/KR20190039572A/ko
Application granted granted Critical
Publication of KR102197023B1 publication Critical patent/KR102197023B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • 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/338Presentation of query results
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0282Rating or review of business operators or products

Landscapes

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

Abstract

멀티-턴 상호작용 대화에서 사용자로부터의 추가 데이터를 위한 생성된 프롬프트의 유형을 선택하기. 하나의 시나리오에서, 사용자 입력과 기계-생성된 프롬프트의 처리되는 시퀀스가 전자 시장에서의 구매 가능한 가장 관련성 있는 아이템의 검색을 개선한다. 프롬프트의 횟수는 지정 최대 값으로 제한될 수 있다. 프롬프트 생성은 사용자 의도 추론을 보조하는 세계 지식을 지식 그래프에 포함시킴으로써 최소화된다. 프롬프트 생성은, 검색이 프롬프트에 대한 대답이 어떠한 만족스러운 검색 결과로 도출하지 않을 것임을 지시하는 경우 억제될 수 있다. 프롬프트는 모든 질의 제한을 충족하거나, 모든 질의 제한을 충족하는 어떠한 검색 결과도 이용 가능하지 않는다고 검색이 지시하는 경우 일부 질의 제한만 충족하는 이용 가능한 검색 결과에 대한 제안을 제공할 수 있다. 프롬프트는 긍정 또는 부정 대답을 통해 검색 결과를 개선할 가능성이 높도록 제안되는 기민한 대답 구문을 제공할 수 있다.

Description

다음 사용자 프롬프트 유형 선택하기
관련 출원
이 국제 출원은 그 전체가 본 명세서에 참조로서 포함되는 2016년 08월 16일에 출원된 미국 출원 번호 15/238,666, 발명의 명칭 "Selecting Next User Prompt Types In An Intelligent Online Personal Assistant Multi-Turn Dialog"의 우선권의 이익을 주장한다.
전통적인 검색은 비개인적(impersonal)이다. 전통적인 브라우징 엔진에 보통의 언어로 말할 수 없다. 종래의 검색은 시간 소모적이며, 지나치게 많은 선택이 있으며 결과 페이지를 브라우징하는 데 많은 시간이 낭비될 수 있다. 종래의 툴의 기술적 한계에 갇혀 사용자가 의도(intent)를 통신하는 것이 어려우며, 예를 들면, 사용자는 검색을 돕기 위해 제품의 사진을 공유할 수 없다. 수십억 개의 온라인 아이템으로의 선택 벌룬(selection balloons)으로서, 비교 검색이 어느 때보다 중요해졌지만, 현재의 솔루션은 이 규모로 설계되어 있지 않다. 무관한 결과가 종종 나타나고 최상의 결과는 제공되지 않는다. 비교 검색의 전통적인 형태(검색+상세검색+브라우징)가 더는 유용하지 않다.
하나의 예시에서, 지능형 개인 어시스턴트 시스템은 지능형 온라인 개인 어시스턴트(또는 "봇")를 제공하도록 기존 메시징 플랫폼의 패브릭으로 침부하는 확장형 인공 지능(AI)을 포함한다. 시스템은 기존 재고 및 큐레이션된 데이터베이스를 활용해 인간 사용자와 지능형 온라인 개인 어시스턴트 간 통신의 예상 차례에서 지능적이고, 개인화된 대답을 제공할 수 있다. 지능형 개인 어시스턴트 시스템의 하나의 예시로서 지식 그래프를 포함한다. 머신 러닝 구성요소가 사용자 의도를 지속적으로 식별하고 이로부터 학습하여, 사용자 신원 및 이해가 시간의 흐름에 따라 보강될 수 있다. 따라서 제공되는 사용자 경험은 고무적이며, 직관적이고, 독특하며, 특정 연령 그룹, 가령, 밀레니엄 세대의 사용 및 행동 패턴에 집중할 수 있다.
도면은 일반적으로 한정이 아니라 예시로서 본 명세서에서 언급되는 다양한 실시예를 도시한다. 임의의 특정 요소 또는 동작의 설명을 더 용이하게 식별하기 위해, 도면 번호의 최상위 숫자가 요소가 최초 등장한 도면 번호를 지칭한다.
도 1은 일부 실시예에 따르는 네트워킹된 시스템을 도시한다.
도 2는 일부 실시예에 따르는 지능형 개인 어시스턴트 시스템의 일반적인 아키텍처를 도시한다.
도 3a 및 3b는 일부 실시예에 따르는 음성 인식 구성요소의 구성요소들을 도시한다.
도 4는 본 명세서에 기재된 다양한 하드웨어 아키텍처와 함께 사용될 수 있는 대표적 소프트웨어 아키텍처를 도시한다.
도 5는 기계 판독형 매체(가령, 컴퓨터 판독형 저장 매체)로부터 명령을 판독할 수 있고 본 명세서에 언급된 방법 중 임의의 하나 이상을 수행할 수 있는, 일부 실시예에 따르는, 기계의 구성요소를 도시한다.
도 6은 일부 실시예에 따르는 지능형 온라인 개인 어시스턴트가 배치될 수 있는 예시적 환경을 도시한다.
도 7은 일부 실시예에 따르는, 전자 시장에서 자연어 사용자 입력을 처리하여 아이템 추천을 생성하는 지능형 개인 어시스턴트 시스템의 개요를 도시한다.
도 8은 일부 실시예에 따르는 자연어 이해(NLU) 구성요소, 이의 하위-구성요소, 및 상호작용하는 그 밖의 다른 구성요소를 도시한다.
도 9는 일부 실시예에 따르는 다양한 분석의 결과를 도시한다.
도 10은 일부 실시예에 따르는 지식 그래프를 도시한다.
도 11a 및 11b는 일부 실시예에 따르는 아이템 카테고리, 일부 아이템 속성, 및 일부 아이템 속성 값을 갖는 간결한 지식 그래프를 도시한다.
도 12는 일부 실시예에 따르는 자연어 사용자 입력을 처리하여 제안 프롬프트를 생성하는 지능형 개인 어시스턴트 시스템의 개요를 도시한다.
도 13은 일부 실시예에 따르는 자연어 사용자 입력을 처리하여 아이템 추천을 생성하기 위한 방법의 흐름도를 도시한다.
본 명세서에서 "반송파 신호"는 기계에 의해 실행되기 위한 명령을 저장, 인코딩 또는 반송할 수 있는 임의의 무형의 매체를 지칭하며, 디지털 또는 아날로그 통신 신호 또는 이러한 명령의 통신을 촉진시키기 위한 그 밖의 다른 무형의 매체를 포함한다. 명령은 전송 매체를 이용해 네트워크 인터페이스 디바이스를 통해 그리고 여러 공지된 전송 프로토콜 중 임의의 것을 이용해 네트워크를 통해 전송 또는 수신될 수 있다.
본 명세서에서 "클라이언트 디바이스"는 통신 네트워크로 인터페이싱하여 하나 이상의 서버 시스템 또는 그 밖의 다른 클라이언트 디바이스로부터 자원을 획득할 수 있는 임의의 기계를 지칭한다. 클라이언트 디바이스의 비제한적 예를 들면, 모바일 전화기, 데스크톱 컴퓨터, 랩톱, 휴대용 디지털 어시스턴트(PDA), 스마트 폰, 태블릿, 울트라 북, 넷북, 랩톱, 멀티-프로세서 시스템, 마이크로프로세서-기반 도는 프로그램 가능 소비자 전자기기, 게임 콘솔, 셋-톱 박스, 또는 사용자가 네트워크를 액세스하기 위해 사용할 수 있는 그 밖의 다른 임의의 통신 디바이스가 있다.
본 명세서에서 "통신 네트워크"는 애드 혹(ad hoc) 네트워크, 인트라넷, 익스트라넷, 가상 사설 네트워크(VPN), 로컬 영역 네트워크(LAN), 무선 LAN(WLAN), 광역 네트워크(WAN), 무선 WAN(WWAN), 도시권 영역 네트워크(MAN), 인터넷, 인터넷의 일부분, 공중 교환 전화 네트워크(PSTN)의 일부분, 기존 전화 서비스(POTS) 네트워크, 셀룰러 전화기 네트워크, 무선 네트워크, Wi-Fi® 네트워크, 또 다른 유형의 네트워, 또는 둘 이상의 이러한 네트워크의 조합일 수 있는 네트워크의 하나 이상의 부분을 지칭한다. 예를 들어, 네트워크 또는 네트워크의 일부분은 무선 또는 셀룰러 네트워크를 포함할 수 있고, 연결은 코드 분할 다중 접속(CDMA) 연결, GSM(Global System for Mobile communication) 연결, 또는 그 밖의 다른 유형의 셀룰러 또는 무선 연결일 수 있다. 이 예시에서, 연결은 다양한 유형의 데이터 전송 기술, 가령, 1xRTT(Single Carrier Radio Transmission Technology), EVDO(Evolution-Data Optimized) 기술, GPRS(General Packet Radio Service) 기술, EDGE(Enhanced Data rates for GSM Evolution) 기술, 3GPP(third Generation Partnership Project), 예컨대, 3G, 4세대 무선(4G) 네트워크, UMTS(Universal Mobile Telecommunications System), HSPA(High Speed Packet Access), WiMAX(Worldwide Interoperability for Microwave Access), LTE(Long Term Evolution) 표준, 다양한 표준 설정 기관에 의해 정의된 그 밖의 다른 것, 그 밖의 다른 장거리 프로토콜, 또는 그 밖의 다른 데이터 전송 기술 중 임의의 것을 구현할 수 있다.
본 명세서에서 "구성요소"는 특정 처리 또는 제어 기능의 구획 또는 모듈화를 제공하는 기능 또는 서브루틴 호출, 분기 포인트, API(application program interface), 또는 그 밖의 다른 기술에 의해 정의된 경계를 갖는 디바이스, 물리적 개체 또는 로직을 지칭한다. 구성요소는 타 구성요소와 자신의 경계를 통해 조합되어 기계 프로세스를 수행할 수 있다. 구성요소는 타 구성요소와 함께 사용되도록 설계된 패키징된 기능 하드웨어 유닛 또는 관련 기능의 특정 기능을 일반적으로 수행하는 프로그램의 일부일 수 있다. 구성요소는 소프트웨어 구성요소(가령, 기계-판독형 매체 상에서 구현되는 코드) 또는 하드웨어 구성요소가 될 수 있다. "하드웨어 구성요소"는 특정 동작을 수행할 수 있는 유형의(tangible) 유닛이며 특정 물리적 방식으로 설정 또는 배열될 수 있다. 다양한 예시적 실시예에서, 하나 이상의 컴퓨터 시스템(가령, 자립형 컴퓨터 시스템, 클라이언트 컴퓨터 시스템, 또는 서버 컴퓨터 시스템) 또는 컴퓨터 시스템(가령, 프로세서 또는 프로세서들의 그룹)의 하나 이상의 하드웨어 구성요소가 소프트웨어(가령, 애플리케이션 또는 애플리케이션 부분)에 의해, 본 명세서에 기재된 바와 같이 특정 동작을 수행하도록 동작하는 하드웨어 구성요소로서 설정될 수 있다. 하드웨어 구성요소는 또한 기계적으로, 전자적으로, 또는 이들의 임의의 적합한 조합으로 구현될 수 있다. 예를 들어, 하드웨어 구성요소는 특정 동작을 수행하도록 영구 설정된 적용 회로 또는 로직을 포함할 수 있다. 하드웨어 구성요소는 특수 목적 프로세서, 가령, 현장 프로그램 가능 게이트 어레이(FPGA) 또는 주문형 집적 회로(ASIC)일 수 있다. 하드웨어 구성요소는 또한 특정 동작을 수행하도록 소프트웨어에 의해 임시 설정된 프로그램 가능 로직 또는 회로를 포함할 수 있다. 예를 들어, 하드웨어 구성요소는 범용 프로세서 또는 그 밖의 다른 프로그램 가능 프로세서에 의해 실행되는 소프트웨어를 포함할 수 있다. 이러한 소프트웨어에 의해 설정되면, 하드웨어 구성요소는 설정된 기능을 수행하도록 고유하게 맞춤 구성된 특정 기계(또는 기계의 특정 구성요소)가 되며 더는 범용 프로세서가 아니다. 영구 설정된 전용 회로에서, 또는 (가령, 소프트웨어 의해 설정된) 임시 설정된 회로에서 하드웨어 구성요소를 기계적으로 구현하기 위한 결정이 비용과 시간을 고려하여 추진될 수 있다. 따라서, "하드웨어 구성요소" (또는 "하드웨어로 구현된 구성요소")는 유형의 개체, 특히 본 명세서에 기재된 특정 방식으로 동작하도록 또는 특정 동작을 수행하도록 물리적으로 구성된, 영구 설정된(가령, 하드와이어링된), 또는 임시 설정된(가령, 프로그램된) 개체를 포함하는 것으로 이해되어야 한다. 하드웨어 구성요소가 임시 설정된(가령, 프로그램된) 실시예를 고려할 때, 하드웨어 구성요소 각각은 임의의 한 때에 설정되거나 인스턴스화될 필요가 없다. 예를 들어, 하드웨어 구성요소가 소프트웨어에 의해 특수 프로세서가 되도록 설정된 범용 프로세서를 포함하는 경우, 범용 프로세서는 상이한 때에 각각 상이한 특수 목적 프로세서(가령, 상이한 하드웨어 구성요소를 포함함)로서 설정될 수 있다. 따라서 소프트웨어는 특정 프로세서 또는 프로세서들을, 가령, 한 시점에서는 특정 하드웨어 구성요소가 되고 다른 시점에서는 다른 하드웨어 구성요소가 되도록 설정할 수 있다. 하드웨어 구성요소는 타 하드웨어 구성요소로 정보를 제공하고 이로부터 정보를 수신할 수 있다. 따라서 기재된 하드웨어 구성요소는 통신 가능하게 연결된 것으로 간주될 수 있다. 복수의 하드웨어 구성요소가 동시에 존재하는 경우, 둘 이상의 하드웨어 구성요소 간 신호 전송을 통해(가령, 적절한 회로 및 버스를 통해) 통신이 이뤄질 수 있다. 복수의 하드웨어 구성요소가 상이한 시점에서 설정되거나 인스턴스화되는 경우, 이러한 하드웨어 구성요소들 간 통신은, 예를 들어, 복수의 하드웨어 구성요소가 액세스할 수 있는 메모리 구조로의 정보의 저장 및 불러오기를 통해 이뤄질 수 있다. 예를 들어, 하나의 하드웨어 구성요소가 동작을 수행하고 이 동작의 출력을 자신이 통신 가능하게 연결된 메모리 디바이스에 저장할 수 있다. 그 후 또 다른 하드웨어 구성요소가, 차후에, 저장된 출력을 불러오고 처리하기 위해 메모리 디바이스를 액세스할 수 있다. 하드웨어 구성요소는 또한 입력 또는 출력 디바이스와의 통신을 개시할 수 있고, 자원(가령, 정보의 집합)을 조작할 수 있다. 본 명세서에 기재되는 예시적 방법의 다양한 동작이, 적어도 부분적으로, 관련 동작을 수행하도록 (가령, 소프트웨어에 의해) 임시 설정된 또는 영구 설정된 하나 이상의 프로세서에 의해 수행될 수 있다. 임시 설정되거나 또는 영구 설정되거나에 무관하게, 이러한 프로세서는 본 명세서에 기재된 하나 이상의 동작 또는 기능을 수행하도록 동작하는 프로세스-구현 구성요소가 될 수 있다. 본 명세서에서 사용될 때, "프로세서-구현 구성요소(processor-implemented component)"는 하나 이상의 프로세서를 이용해 구현되는 하드웨어 구성요소를 지칭한다. 마찬가지로, 본 명세서에 기재된 방법은 적어도 부분적으로 프로세서-구현될 수 있으며, 이때, 특정 프로세서 또는 프로세서들이 하드웨어의 예시이다. 예를 들어, 방법의 동작들 중 적어도 일부가 하나 이상의 프로세서 또는 프로세서-구현 구성요소에 의해 수행될 수 있다. 덧붙여, 하나 이상의 프로세서는 또한 "클라우드 컴퓨팅" 환경 또는 "서비스형 소프트웨어"(SaaS: software as a service)에서 관련 동작의 수행을 지원하도록 동작할 수 있다. 예를 들어, 동작들 중 적어도 일부가 컴퓨터들의 그룹(가령, 프로세서를 포함하는 기계)에 의해 수행될 수 있으며, 이때 이들 동작은 네트워크(가령, 인터넷) 및 하나 이상의 적절한 인터페이스(가령, API(Application Program Interface))를 통해 액세스 가능하다. 동작 중 일부의 수행이 단일 기계 내에 상주하는 프로세서뿐 아니라 복수의 기계에 걸쳐 배치된 프로세스 간에 분산될 수 있다. 일부 예시적 실시예에서, 프로세서 또는 프로세서-구현 구성요소는 단일 지리적 위치(가령, 가정 환경, 사무실 환경, 또는 서버 팜 내)에 위치할 수 있다. 또 다른 실시예에서, 프로세서 또는 프로세서-구현 구성요소는 복수의 지리적 위치에 걸쳐 분산될 수 있다.
본 명세서에서 "기계 판독형 매체"는 명령 및 데이터를 임시 또는 영구적으로 저장할 수 있는 구성요소, 디바이스 또는 그 밖의 다른 유형의 매체를 지칭하며, 비제한적 예를 들면, 랜덤 액세스 메모리(RAM), 리드-온리 메모리(ROM), 버퍼 메모리, 플래시 메모리, 광학 매체, 자기 매체, 캐시 메모리, 그 밖의 다른 유형의 저장장치(가령, 소거 프로그램 가능 리드-온리 메모리(EEPROM)) 및/또는 임의의 적합한 이들의 조합이 있다. "기계 판독형 매체"라는 용어는 명령을 저장할 수 있는 단일 매체 또는 복수의 매체(가령, 중앙집중형 또는 분산형 데이터베이스, 또는 연관된 캐시 및 서버)를 포함하는 것으로 이해될 것이다. "기계 판독형 판독형 매체"라는 용어는 또한, 명령이 기계의 하나 이상의 프로세서에 의해 실행될 때 기계로 하여금 본 명세서에 기재된 방법들 중 임의의 하나 이상을 수행하게 하도록, 기계에 의해 실행되도록 명령(가령, 코드)을 저장할 수 있는 임의의 매체, 또는 복수의 매체의 조합을 포함하도록 이해될 것이다. 따라서 "기계 판독형 판독형 매체"는 단일 저장 장치 또는 디바이스뿐 아니라 복수의 저장 장치 또는 디바이스를 포함하는 "클라우드-기반" 저장 시스템 또는 저장 네트워크까지 지칭한다. "기계 판독형 저장 매체"라는 용어는 신호 자체는 배제한다. 기계 판독형 매체는 기계 판독형 저장 매체 및 전송 매체 또는 반송파 신호를 포함한다.
본 명세서에서 "프로세서"는 제어 신호(가령, "명령어", "연산 코드", "기계 코드" 등)에 따라 데이터 값을 조작하고 기계를 동작시키도록 적용되는 대응하는 출력 신호를 생성하는 임의의 회로 또는 가상 회로(실제 프로세서 상에서 실행되는 로직에 의해 에뮬레이션되는 물리 회로)를 지칭한다. 프로세서는 예를 들어, 중앙 처리 장치(CPU), 간소 명령 세트 컴퓨팅(RISC: Reduced Instruction Set Computing) 프로세서, 복잡 명령 세트 컴퓨팅(CISC: Complex Instruction Set Computing) 프로세서, 그래픽 처리 장치(GPU), 디지털 신호 프로세서(DSP), 주문형 집적 회로(ASIC), 라디오-주파수 집적 회로(RFIC) 또는 이들의 임의의 조합일 수 있다. 프로세서는 또한 동시에 명령을 실행시킬 수 있는 둘 이상의 독립적인 프로세서(때때로 "코어"라고 지칭됨)를 갖는 멀티-코어 프로세서일 수 있다.
본 특허 명세서의 개시내용의 일부는 저작권 보호의 대상이 되는 사항을 포함하고 있다. 저작권 소유자는 특허상표청의 특허 파일이나 기록에서 등장하는 경우에, 임의의 사람에 의한 특허 문서 또는 특허 개시내용의 팩시밀리 복제에 어떠한 반대도 하지 않지만, 그 밖의 다른 경우에서는 모든 저작권의 권리를 주장한다. 다음의 통지사항은 이하에서 기재되고 본 명세서의 일부를 형성하는 도면에 도시된 소프트웨어 및 데이터에 적용된다: Copyright 2016, eBay Inc, All Rights Reserved.
이하의 기재는 본 발명의 실시예를 구현하는 시스템, 방법, 기법, 명령 시퀀스, 및 컴퓨팅 기계 프로그램 프로덕트를 포함한다. 이하의 기재에서, 설명 목적으로, 본 발명의 주제 사항의 다양한 실시예의 이해를 제공하기 위해 많은 특정한 세부사항이 제공된다. 그러나 해당 분야의 통상의 기술자라면, 본 발명의 실시예가 이들 특정 세부사항 없이 실시될 수 있음을 알 것이다. 일반적으로 공지된 명령 인스턴스, 프로토콜, 구조, 및 기법은 반드시 상세히 기재된 것은 아니다.
도 1을 참조하면, 하이-레벨 SaaS 네트워크 아키텍처(100)의 실시예가 도시되어 있다. 네트워킹된 시스템(116)이 네트워크(110)(가령, 인터넷 또는 광역 네트워크(WAN))를 통해 클라이언트 디바이스(108)로 서버측 기능을 제공한다. 웹 클라이언트(102) 및 프로그램된 클라이언트(programmatic client)가, 애플리케이션(104)의 예시적 형태로, 클라이언트 디바이스(108) 상에서 호스팅되고 실행된다. 네트워킹된 시스템(116)은 애플리케이션 서버(122)를 포함하며, 상기 애플리케이션 서버는 네트워킹된 시스템(116)을 액세스하는 애플리케이션(104)으로 복수의 기능과 서비스를 제공하는 지능형 개인 어시스턴트 시스템(106)을 호스팅한다. 애플리케이션(104)은 또한 클라이언트 디바이스(108)의 사용자에게 추적 및 분석 동작의 결과를 제공하는 본 명세서에 기재된 복수의 인터페이스를 제공한다.
클라이언트 디바이스(108)는 사용자가 네트워킹된 시스템(116)을 액세스하고 이와 상호작용하는 것을 가능하게 한다. 예를 들어, 사용자는 클라이언트 디바이스(108)로 입력(가령, 터치 스크린 입력 또는 문자 및 숫자 입력)을 제공하고, 상기 입력이 네트워크(110)를 통해 네트워킹된 시스템(116)으로 통신된다. 이 예시에서, 네트워킹된 시스템(116)은, 사용자로부터의 입력을 수신한 것에 응답하여, 네트워크(110)를 통해 정보를 다시 클라이언트 디바이스(108)로 통신하여 사용자에게 표시되도록 한다.
애플리케이션 프로그램 인터페이스(API) 서버(118) 및 웹 서버(120)가 애플리케이션 서버(122)에 연결되며, 상기 애플리케이션 서버로 프로그램된 인터페이스 및 웹 인터페이스를 각각 제공한다. 애플리케이션 서버(122)는 구성요소 또는 애플리케이션을 포함하는 지능형 개인 어시스턴트 시스템(106)을 호스팅한다. 이제, 애플리케이션 서버(122)는, 정보 저장 레포지토리(가령, 데이터베이스/클라우드(126))로의 액세스를 촉진시키는 데이터베이스 서버(124)로 연결되어 있는 것을 볼 수 있다. 하나의 실시예에서, 데이터베이스/클라우드(126)는 지능형 개인 어시스턴트 시스템(106)에 의해 액세스되고 생성되는 정보를 저장하는 저장 디바이스를 포함한다.
덧붙여, 제3자 서버(112) 상에서 실행되는 제3자 애플리케이션(114)이 애플리케이션 프로그램 인터페이스(API) 서버(118)에 의해 제공된 프로그램된 인터페이스를 통해 네트워킹된 시스템(116)에 대한 프로그램된 액세스 권한을 갖는 것을 볼 수 있다. 예를 들어, 제3자 애플리케이션(114)은, 네트워킹된 시스템(116)으로부터 불러와진 정보를 이용해, 제3자에 의해 호스팅된 웹사이트 상의 하나 이상의 특징 또는 기능을 지원할 수 있다.
클라이언트 디바이스(108)에 의해 호스팅되는 애플리케이션을 구체적으로 살펴보면, 웹 클라이언트(102)가 웹 서버(120)에 의해 지원되는 웹 인터페이스를 통해 다양한 시스템(가령, 지능형 개인 어시스턴트 시스템(106))을 액세스할 수 있다. 마찬가지로, 애플리케이션(104)(가령, "앱(app)")이 애플리케이션 프로그램 인터페이스(API) 서버(118)에 의해 제공되는 프로그램된 인터페이스를 통해 지능형 개인 어시스턴트 시스템(108)이 제공하는 다양한 서비스 및 기능을 액세스한다. 애플리케이션(104)은, 예를 들어, 사용자가 네트워킹된 시스템(116) 상의 데이터를 오프라인으로 액세스하고 입력할 수 있게 하고 프로그램된 클라이언트 애플리케이션(104)과 네트워킹된 시스템 네트워킹된 시스템(116) 간 일괄-모드 통신(batch-mode communication)을 수행할 수 있게 하도록 디바이스(108) 상에서 실행되는 "앱", 가령, iOS 또는 Android OS 애플리케이션일 수 있다.
덧붙여, 도 1에 도시된 SaaS 네트워크 아키텍처(100)가 클라이언트-서버 아키텍처를 채용하지만, 물론 본 발명은 이러한 아키텍처에 한정되지 않고, 가령, 분산, 피어-투-피어, 아키텍처 시스템에도 마찬가지로 적용될 수 있다. 지능형 개인 어시스턴트 시스템(106)은 네트워킹 기능을 반드시 갖는 것은 아닌 독립형 소프트웨어 프로그램으로서도 구현될 수 있다.
도 2는 일부 실시예에 따르는, 지능형 개인 어시스턴트 시스템(106)의 일반적인 아키텍처를 보여주는 블록도이다. 구체적으로, 지능형 개인 어시스턴트 시스템(106)은 지능형 개인 어시스턴트 시스템(106)이 SaaS 네트워크 아키텍처(100) 내 타 시스템과 (가령, 네트워크(110)를 통해) 통신하게 하는 프론트 엔드 구성요소(202)(FF)를 포함하는 것을 볼 수 있다. 프론트 엔드 구성요소(202)는 기존 메시징 시스템의 패브릭(fabric)과 통신할 수 있다. 본 명세서에서 사용될 때, 메시징 패브릭이라는 용어는 제3자 플랫폼, 가령, Facbook 메신저, Microsoft Cortana 및 그 밖의 다른 "봇(bot)"을 사용할 수 있게 하는 API 및 서비스의 모음을 지칭한다. 하나의 예시에서, 메시징 패브릭은 사용자가 상업적 의도와 상호작용할 수 있도록 하는 온라인 상거래 생태계를 지원할 수 있다. 프론트 엔드 구성요소(202)의 출력이 클라이언트 디바이스, 가령, 도 1의 클라이언트 디바이스(108)의 디스플레이에서, 지능형 개인 어시스턴트를 갖는 인터페이스, 즉 "봇"의 일부로서 렌더링될 수 있다.
지능형 개인 어시스턴트 시스템(106)의 프론트 엔드 구성요소(202)는 프론트 엔드 구성요소(202)를 인공 지능 프레임워크(128)와 연결하도록 동작하는 프론트 엔드에 대한 백 엔드 구성요소(204)(BFF)에 연결된다. 인공 지능 프레임워크(128)는 이하에서 기재될 복수의 구성요소를 포함할 수 있다. 다양한 구성요소 간 교환되는 데이터 및 각각의 구성요소의 기능은, 특정 구현예에 따라, 다소 달라질 수 있다.
지능형 개인 어시스턴트 시스템(106)의 일례에서, AI 오케스트레이터(206)가 인공 지능 프레임워크(128) 내외부의 구성요소들 간 통신을 오케스트레이션(orchestrate)한다. AI 오케스트레이터(206)를 위한 입력 양식(Input modality)이 가령, 컴퓨터 비전 구성요소(208), 음성 인식 구성요소(210), 및 음성 인식 구성요소(210)의 일부를 형성할 수 있는 텍스트 정규화 구성요소로부터 얻어질 수 있다. 컴퓨터 비전 구성요소(208)는 시각적 입력(가령, 사진)으로부터 대상 및 속성을 식별할 수 있다. 음성 인식 구성요소(210)는 오디오 신호(가령, 구두 어터런스(spoken utterance))를 텍스트로 변환할 수 있다. 텍스트 정규화 구성요소는 가령, 이모티콘을 텍스트로 렌더링함으로써 입력 정규화, 가령, 언어 정규화를 이루도록 동작할 수 있다. 그 밖의 다른 정규화가 가능하며, 예컨대, 맞춤법 정규화, 외국어 정규화, 대화형 텍스트 정규화 등이 있다.
인공 지능 프레임워크(128)는 사용자 의도(intent) 및 다양한 의도 파라미터를 추출하도록 동작하는 자연어 이해 즉 NLU 구성요소(214)를 더 포함한다. NLU 구성요소(214)는 도 8부터 더 상세히 기재된다.
인공 지능 프레임워크(128)는 (예를 들어, 입력, 가령, 검색 질의어 또는 어터런스(untterance)의) "특이성의 완전함(completeness of specificity)"을 이해하고 다음 동작 유형 및 관련 파라미터(가령, "검색" 또는 "사용자에게 추가 정보 요청")에 대해 결정하도록 동작하는 대화 관리자(216)를 더 포함한다. 편의상, 이 기재에서 모든 사용자 입력은, 텍스트, 음성, 또는 이미지-관련 포맷인지에 무관하게, "어터런스"로 지칭될 수 있다.
하나의 예시에서, 대화 관리자(216)는 컨텍스트 관리자(218) 및 자연어 생성(NLG: Natural Language Generation) 구성요소(212)와 연계하여 동작한다. 컨텍스트 관리자(218)는 지능형 온라인 개인 어시스턴트(또는 "봇") 및 어시스턴트의 연관된 인공 지능에 대한 사용자의 컨텍스트 및 통신을 관리한다. 컨텍스트 관리자(218)는 사용자 상호작용(user interaction)의 단기 히스토리를 보유한다. 사용자 선호의 장기 히스토리는 이하에서 기재될 바와 같이 신원 서비스(222)에 보유될 수 있다. 이들 히스토리 중 하나 또는 둘 모두의 데이터 항목은 가령, 관련 의도 및 특정 입력, 봇 상호작용, 또는 통신 차례의 모든 파라미터 및 모든 관련 결과를 포함할 수 있다. NLG 구성요소(212)는 AI 메시지로부터 자연어 어터런스를 구성하여, 지능형 봇과 상호작용 중인 사용자에게 표시하도록 동작한다.
검색 구성요소(220)가 또한 인공 지능 프레임워크(128) 내에 포함된다. 검색 구성요소(220)는 프론트 및 백엔드 유닛을 가질 수 있다. 백 엔드 유닛은 아이템 또는 제품 재고를 관리하고, 사용자 의도 및 의도 파라미터의 특정 튜플에 대해 최적화된, 재고에 대한 검색 기능을 제공하도록 동작할 수 있다. 검색 구성요소(220)는 매우 큰 고품질 재고에서 전세계적으로 하루에 수십억개의 질의를 수행하도록 설계된다. 검색 구성요소(220)는 텍스트, 또는 인공 지능(AI) 인코딩된 음성 및 이미지 입력을 수용할 수 있고, 명시적 및 파생된 질의 의도를 기초로 사용자에게 관련 재고 아이템을 식별할 수 있다.
신원 서비스(identity service)(222)는 사용자 프로필, 가령, 사용자 속성의 형태로 된 명시적 정보, 가령, "이름", "나이", "성별", "위치"뿐 아니라 "사용자 관심", 또는 "유사한 페르소나" 등 같은 "정보 증류(information distillates)" 형태의 묵시적 정보까지 관리하도록 동작한다. 인공 지능 프레임워크(128)는 신원 서비스(222)의 일부를 포함하거나 이와 연계하여 동작할 수 있다. 신원 서비스(222)는 정책의 세트, API, 및 모든 사용자 정보를 부드럽게 중앙집중화하는 서비스를 포함하여, 인공 지능 프레임워크(128)가 사용자 의도를 "지능적으로" 통찰하는 것을 돕는다. 신원 서비스(222)는 온라인 판매상 및 사용자를 개인 정보의 위조 또는 악의적 사용으로부터 보호할 수 있다.
본 발명의 신원 서비스(222)는 많은 이점을 제공한다. 신원 서비스(222)는 사용자 신원 및 프로필 데이터를 포함하는 단일 중앙 레포지토리이다. 이는 지속적으로 사용자 프로필을 새로운 통찰과 업데이트로 풍부하게 만들 수 있다. 이는 회사, 가정, 그 밖의 다른 계정(가령, 코어 계정)뿐 아니라 사용자의 사람과 관계의 소셜 그래프와 사용자의 관계를 매핑하기 위해 계정 연결 및 신원 연합을 이용한다. 신원 서비스(222)는 사용자가 원하는 모든 유일한 정보를 이들이 선택한 시간과 매체로 통신하는 풍부한 알림 시스템을 발달시킨다.
하나의 예시에서, 신원 서비스(222)는 검색, AI, 판매 및 머신 러닝 모델을 위해 가능한 많은 사용자 정보를 중앙 정보 센터(clearinghouse)로 일원화하여 각각의 구성요소가 각각 사용자에게 통찰력을 제공할 수 있는 능력을 최대화하는 데 집중한다. 단일 중앙 레포지토리가 사용자 신원 및 프로필 데이터를 상세한 스키마로 포함한다. 온보딩 단계(onboarding phase)에서, 신원 서비스(222)는 봇 애플리케이션에서 필수 인증에 의해 사용자 프로필 및 이해를 준비시킨다. 인증의 출처(가령, 소셜 미디어)로부터 이용 가능한 임의의 공개 정보가 로딩될 수 있다. 사이드보딩 단계(sideboarding phase)에서, 신원 서비스(222)는 프로필을 공개 출처로부터 수집된 사용자에 대한 정보, 사용자 행동, 상호작용, 및 사용자가 AI에게 말한 목적(가령, 쇼핑 미션, 영감, 선호)의 명시적 세트로 증강시킬 수 있다. 사용자가 인공 지능 프레임워크(128)와 상호작용할 때, 신원 서비스(222)는 사용자에 대해 더 수집하고 추론하며 명시적 데이터를 저장하고, 그 밖의 다른 통계적 추론의 확률 및 추정을 업테이트한다. 시간이 흐름에 따라, 프로필 보강 단계에서, 신원 서비스(222)는 파생된 정보, 가령, 취향, 선호 및 쇼핑 범주에 대한 행동 데이터, 가령, 클릭, 노출(impression), 및 브라우징 활동을 또한 마이닝(mine)한다. 신원 연합 및 계정 연결 단계에서, 통신 또는 추론될 때, 신원 서비스(222)는 사용자의 가정, 고용주, 그룹, 소속, 소셜 그래프, 및 그 밖의 다른 계정, 가령, 공유 계정을 업데이트한다.
인공 지능 프레임워크(128)의 기능이 복수의 부분, 가령, 의사결정 및 컨텍스트 부분으로 그룹화될 수 있다. 하나의 예시에서, 의사결정 부분은 AI 오케스트레이터(206), NLU 구성요소(214), 대화 관리자(216), NLG 구성요소(212), 컴퓨터 비전 구성요소(208) 및 음성 인식 구성요소(210)에 의한 동작을 포함한다. AI 기능의 컨텍스트 부분은 사용자 주의의 (묵시적 및 명시적) 파라미터 및 통신된 의도(가령, 특정 재고에 관한 것 또는 그 밖의 다른 것)와 관련된다. 시간에 따른 AI 품질을 측정하고 개선하기 위해, 인공 지능 프레임워크(128)는 샘플 질의(가령, dev set)이용해 훈련되고 상이한 질의 세트(가령, eval set)로 테스트되며, 두 세트 모두 인간 큐레이션에 의해 개발될 수 있다. 또한 인공 지능 프레임워크(128)는 숙련된 큐레이션 전문가 또는 인간 테이스트메이커(tastemaker)의 무시 규칙(224)에 의해 정의된 트랜잭션 및 상호작용 흐름 상에서 훈련될 수 있다. 인공 지능 프레임워크(128)의 다양한 구성요소 내에서 인코딩되는 흐름 및 로직이 식별된 사용자 의도에 기초하여 지능형 어시스턴트가 만드는 후속 어터런스 또는 표시(가령, 질문, 결과 세트)를 정의한다.
지능형 개인 어시스턴트 시스템(106) 내 지능형 온라인 개인 어시스턴트 또는 봇의 예시적 입력 양식에 대해 더 참조된다. 지능형 개인 어시스턴트 시스템(108)은 사용자의 의도(가령, 타깃 검색, 비교, 쇼핑/브라우징 등) 및 임의의 필수 파라미터(가령, 제품, 제품 카테고리, 아이템 등) 및/또는 선택사항적 파라미터(가령, 아이템/제품의 속성 같은 명시적 정보, 행사 등)뿐 아니라 묵시적 정보(가령, 위치, 개인 선호, 나이, 및 성별 등)을 이해하고 사용자에게 심사숙고된, 즉, "지능형" 응답을 하려 한다. 명시적 입력 양식은 텍스트, 음성, 및 시각적 입력을 포함할 수 있으며 사용자에 대한 묵시적 지식(가령, 위치, 이전 브라우징 히스토리 등)으로 보강될 수 있다. 출력 양식은 텍스트(가령, 음성, 또는 자연어 문장, 또는 제품-관련 정보), 및 스마트 디바이스, 가령, 클라이언트 디바이스(108)의 스크린 상의 이미지를 포함할 수 있다. 따라서 입력 양식은 사용자가 봇과 통신할 수 있는 여러 다른 방식을 지칭한다. 입력 양식은 또한 키보드 또는 마우스 내비게이션, 터치-감응성 제스처 등을 포함할 수 있다.
컴퓨터 비전 구성요소(208)를 위한 양식과 관련하여, 사진이 종종 사용자가 찾고 있는 것을 텍스트보다 더 잘 나타낼 수 있다. 사용자는 아이템의 명칭을 모를 수 있거나, 전문가만이 알 수 있는 상세한 정보, 가령, 의복의 복잡한 패턴 또는 특정 가구 스타일에 대해 텍스트를 이용하는 것이 어렵거나 심지어 불가능할 수 있다. 또한 모바일 전화기에서 복잡한 텍스트 질의를 타이핑하는 것이 불편하며, 긴 텍스트 질의는 일반적으로 기억해내기 어렵다. 따라서 컴퓨터 비전 구성요소(208)의 핵심 기능은 이미지 또는 비디오로부터의 비주얼 큐(visual cue)를 기초로 대상 측위(object localization), 대상 인식(object recognition), 광학 문자 인식(OCR) 및 재고 매칭을 포함할 수 있다. 컴퓨터 비전이 가능한 봇은 내장 카메라를 갖는 모바일 디바이스 상에서 실행될 때 유리하다. 강력한 딥 신경 네트워크가 컴퓨터 비전 애플리케이션을 활성화하는 데 사용될 수 있다.
하나의 예시에서, 대화 관리자(216)는 하위-구성요소인 컨텍스트 관리자(218) 및 NLG 구성요소(212)를 가진다. 앞서 언급된 바와 같이, 대화 관리자(216)는 "특이성의 완전함"을 이해하고 다음 액션 유형 및 파라미터(가령, "검색" 또는 "사용자에게 추가 정보 요청")에 대해 결정하도록 동작한다. 컨텍스트 관리자(218)는 컨텍스트 및 봇 및 이의 AI로의 특정 사용자의 통신을 관리하도록 동작한다. 컨텍스트 관리자(218)는 다음의 2개의 부분을 포함한다: 장기 히스토리 및 단기 메모리. 각각의 컨텍스트 관리자 항목은 관련 의도 및 모든 파라미터 및 모든 관련 결과를 기술할 수 있다. 컨텍스트는 재고에 대한 것뿐 아니라 그 밖의 다른 미래의 지식 출처에 대한 것이다. NLG 구성요소(212)는 AI 메시지로부터 자연어 어터런스를 구성하여 지능형 봇과 상호작용 중인 사용자에게 표시하도록 동작한다.
인간과 기계 간 유창하고, 자연스러우며, 정보가 있고, 심지어 즐거운 대화는 지난 세기 동안 오래 연구되어 온 어려운 기술적 문제이지만, 아직도 해결되지 않은 채 남아 있다. 그러나 최근의 AI 개발에 의해, SiriTM 및 AlexaTM 같은 유용한 대화 시스템이 제작됐다.
지능형 봇의 전자상거래 예시에서, 이 문제를 해결하기 위한 초기의 매우 유용한 요소가 거대한 전자상거래 데이터의 세트를 활용하는 것이다. 이 데이터의 일부는 사설 데이터베이스 또는 클라우드, 가령, 데이터베이스/클라우드(126)에 유지되어 있을 수 있다. 이 데이터에 대한 통계가 컨텍스트로서 검색 구성요소(220)로부터 대화 관리자(216)로 통신될 수 있다. 인공 지능 프레임워크(128)는 음성 인식 구성요소(210), 그 후 NLU 구성요소(214)를 통과해 실행되고 그 후 컨텍스트 관리자(218)에게 준-피싱된 데이터(semi-parsed data)로서 전달될 수 있는 사용자로부터의 어터런스에 직접 대응해 동작할 수 있다. 따라서 NLG 구성요소(212)는 대화 관리자(216)가 사용자에게로의 텍스트 또는 음성으로 된 인간형 질문 및 응답을 생성하는 데 도움이 될 수 있다. 컨텍스트 관리자(218)는 사용자와 인공 지능 프레임워크(128) 간 멀티-턴 장기간 담론의 일관성을 유지한다.
방대한 전자상거래 데이터세트에서 관련성이 있는 유용한 정보만 폴링하도록 차별화(discrimination)가 권장될 수 있다. 하나의 예시에서, 인공 지능 프레임워크(128)가 검색 구성요소(220)로부터의 결과 및 검색 구성요소(220) 내 지능을 이용해 이 정보를 제공할 수 있다. 이 정보는 컨텍스트 관리자(218)로부터의 상호작용의 히스토리와 조합될 수 있다. 그 후 인공 지능 프레임워크(128)는 대화의 다음 차례에서, 가령, 질문이어야 하는지 또는 가령, 기존 이해 또는 사용자 의도를 검증하기 위한 "기초 서술"이어야 하는지, 또는 아이템 추천이어야 하는지(또는 이들 세 가지의 임의의 조합)를 결정할 수 있다. 이들 결정은 데이터세트, 사용자의 채팅 히스토리, 및 사용자의 이해의 모델의 조합에 의해 이뤄질 수 있다. NLG 구성요소(212)는 이들 결정을 기초로 사용자에게로의 텍스트형 또는 구두 대답을 위한 언어를 생성할 수 있다.
본 발명에 의해 제공된 기술 솔루션에 의해 사용자는 자연어 대화로 지능형 온라인 개인 어시스턴트와 통신할 수 있다. 어시스턴트는 시간의 흐름에 따라 특정 사용자 선호를 점점 더 많이 이해하고 다양한 제품에 대해 잘 알게 되기 때문에 효율적이 된다. 다양한 편리한 입력 양식이 있지만, 사용자는 사진을 공유할 수 있거나, 음성 또는 텍스트를 이용할 수 있으며, 보조되는 사용자 경험은 예를 들어 고품격 상점의 신뢰 가는 지식이 풍부한 인간 쇼핑 어시스턴트에게 말하는 것과 유사할 수 있다.
기존에는, 온라인 쇼핑 시스템에서 사용되는 방식 및 데이터가 단기 수익을 최대화하기 위해 무디고 단순화된 가정을 갖는 정체불명의 인구 통계학적 구매자 그룹을 타깃으로 삼는다. 종래의 사이트 및 앱은 사용자가 원하는 알림 방식, 이유 및 때를 이해하지 않는다. 알림은 성가시고, 부적절하며, 비개인적이며,각각의 사용자의 선호를 지각하지 못할 수 있다. 한 사람이 하나의 계정과 동일하지 않다. 사람들은 계정과 디바이스를 공유한다. 패스워드는 플랫폼을 안전하게 만들지도 않고 사용하기 용이하게 만들지도 않는다. 약한 온라인 신원의 문제와 주위 신호(가령, 디바이스, 위치, 이례적인 행동 후의 알림)의 무시가 시장에서 사기를 저지르기 쉽게 만든다.
도 3a를 참조하여, 음성 인식 구성요소(210)의 예시적 구성요소가 지금부터 기재된다. 특징 추출 구성요소가 원시 오디오 파형을 사운드를 나타내는 수의 일부 차원 벡터로 변환하도록 동작한다. 이 구성요소는 딥 러닝을 이용해 원시 신호를 고차원 시맨틱 공간으로 투영할 수 있다. 음향 모델 구성요소가 음성 단위, 가령, 음소 및 이음의 통계 모델을 호스팅하도록 동작한다. 이들은 가우시안 혼합 모델(GMM: Gaussian Mixture Model)을 포함할 수 있지만, 딥 신경 네트워크(Deep Neural Network)의 사용이 가능하다. 언어 모델 구성요소는 문법의 통계 모델을 이용해 한 문장에서 단어들이 어떻게 함께 놓이는지를 정의할 수 있다. 이러한 모델은 단어 삽입(word embedding)에 추가로 n-gram-기반 모델 또는 딥 신경 네트워크를 포함할 수 있다. 음성-텍스트(STT: speech-to-text) 디코더 구성요소가 특징 추출 구성요소, 음향 모델 구성요소, 및 은닉 마르코프 모델(HMM: Hidden Markov Model) 프레임워크 내 언어 모델 구성요소를 이용해 원시 신호로부터 얻어진 특징들을 일반적으로 활용해 특징 시퀀스로부터 단어 시퀀스를 얻어냄으로써 음성 어터런스를 단어들의 시퀀스로 변환할 수 있다. 하나의 예시에서, 클라우드(가령, 데이터베이스/클라우드(126))에서의 음성-텍스트 서비스는 이들 구성요소가 클라우드 프레임워크에 배치되게 하며, 이때 API가 오디오 샘플이 음성 어터런스에 대해 게시되게 하고 대응하는 워드 시퀀스를 불러온다. 제어 파라미터가 음성-텍스트 프로세스를 커스텀화하거나 이에 영향을 미치는 데 이용 가능하다.
인공 지능 프레임워크(128)의 하나의 예시에서, 음성 인식 구성요소(210)에 대한 2개의 추가 부분, 즉, 화자 적응 구성요소(speaker adaptation component) 및 언어 모델(LM) 적응 구성요소가 제공된다. 화자 적응 구성요소에 의해 STT 시스템의 클라이언트(가령, 음성 인식 구성요소(210))는 특정 추출 구성요소 및/또는 음향 모델 구성요소를 각각의 화자/사용자에 맞춰 커스텀화할 수 있다. 이는 대부분의 음성-텍스트 시스템이 타깃 지역으로부터의 화자의 대표 세트로부터의 데이터를 기초로 훈련되며, 일반적으로 시스템의 정확도는 타깃 화자가 훈련 풀(training pool) 내 화자들과 얼마나 잘 매칭되는지에 매우 의존되기 때문에 중요할 수 있다. 화자 적응 구성요소에 의해, 사용자의 억양, 발음, 액센트, 및 그 밖의 다른 음성 인자의 개성을 지속적으로 학습하고 이들을 음성-종속적 구성요소, 가령, 특징 추출 구성요소, 및 음향 모델 구성요소에 적용함으로써, 음성 인식 구성요소(210)(그리고 따라서 인공 지능 프레임워크(128))가 화자 편차(speaker variation)에 강건(robust)할 수 있다. 이 방식은 각각의 화자에 대해 작은 목소리 프로필이 생성되고 유지될 것을 필요로 하지만, 일반적으로 정확성이라는 가능한 이점이 저장공간 단점보다 훨씬 더 크다.
LM 적응 구성요소는 타깃 영역, 가령, 재고 카테고리 또는 사용자 페르소나로부터의 새로운 단어 및 대표적 문장으로 언어 모델 구성요소 및 음성-텍스트 어휘집(speech-to-text vocabulary)을 커스텀화하도록 동작한다. 이 기능에 의해, 새로운 카테고리 및 페르소나가 지원될 때 인공 지능 프레임워크(128)가 확장 가능할 수 있다.
도 3b는 인공 지능 프레임워크(128)에서의 텍스트 정규화를 위한 흐름 시퀀스(302)를 보여준다. 하나의 예시에서 흐름 시퀀스(302)를 수행하는 텍스트 정규화 구성요소는 음성 인식 구성요소(210)에 포함된다. 흐름 시퀀스(302) 내 핵심 기능은 (구두점, 숫자, 격 등을 취급하기 위한) 맞춤법 정규화(orthographic normalization), (두문자어, 약어, 불완전한 문장, 속어 등을 갖는 비형식적 채팅-유형 텍스트를 취급하기 위한) 대화 텍스트 정규화, 및 (외국어 단어의 정규화된 시퀀스를 동작 언어, 비제한적 예를 들면, 영어의 단어의 시퀀스로 변환하기 위한) 기계 번역을 포함한다.
인공 지능 프레임워크(128)는 현대의 통신을 촉진시킨다. 예를 들어, 밀레니엄 세대들은 종종 사진, 음성, 및 텍스트로 통신하기를 원한다. 복수의 양식을 이요할 수 있는 인공 지능 프레임워크(128)의 기술적 능력에 의해, 단지 텍스트만이 아닌 의도의 통신이 가능해진다. 인공 지능 프레임워크(128)는 기술적 솔루션을 제공하고 효율적이다. 많은 경우에서 텍스트 대신 음성 명령어 또는 사진을 이용해 스마트 개인 어시스턴트와 상호작용하는 것이 더 빠르다.
도 4는 본 명세서에 기재된 다양한 하드웨어 아키텍처와 함께 사용될 수 있는 예시적 소프트웨어 아키텍처(406)를 도시하는 블록도이다. 도 4은 소프트웨어 아키텍처의 비제한적 예시에 불과하며, 본 명세서에 기재된 기능을 촉진시키기 위해 그 밖의 다른 많은 아키텍처가 구현될 수 있음이 자명할 것이다. 소프트웨어 아키텍처(406)는 하드웨어, 가령, 프로세서(504), 메모리(514) 및 입/출력(I/O) 구성요소(518) 등을 포함하는 도 5의 기계(500) 상에서 실행 중일 수 있다. 대표적 하드웨어 계층(452)이 도시되어 있으며 예를 들어 도 5의 기계(500)를 나타낼 수 있다. 대표적 하드웨어 계층(452)은 연관된 실행 명령(404)을 갖는 처리 장치(454)를 포함한다. 실행 명령(404)은 소프트웨어 아키텍처(406), 가령, 본 명세서에 기재된 방법, 구성요소 등의 구현을 나타낸다. 하드웨어 계층(452)은 또한 실행 명령(404)을 갖는 메모리 및/또는 저장 모듈 메모리/저장장치(456)를 포함한다. 하드웨어 계층(452)은 그 밖의 다른 하드웨어(4458)를 더 포함할 수 있다.
도 4의 예시적 아키텍처에서, 소프트웨어 아키텍처(406)는 각각의 계층이 특정 기능을 제공하는 계층 스택으로서 개념화될 수 있다. 예를 들어, 소프트웨어 아키텍처(406)는 계층, 가령, 운영 체제(402), 라이브러리(420), 애플리케이션(416) 및 표현 계층(presentation layer)(414)을 포함할 수 있다. 동작될 때, 계층 내 애플리케이션(416) 및/또는 그 밖의 다른 구성요소가 소프트웨어 스택을 통해 애플리케이션 프로그래밍 인터페이스(API) 콜(408)을 불러올 수 있으며 API 콜(408)에 대한 응답으로서 응답을 수신할 수 있다. 도시된 계층은 대표적인 것이며 모든 소프트웨어 아키텍처가 모든 계층을 갖는 것은 아니다. 예를 들어, 일부 모바일 또는 특수 목적 운영 체제가 프레임워크/미들웨어(418)를 제공할 수 없고, 반면에 또 다른 모바일 또는 특수 목적 운영 체제가 이러한 계층을 제공할 수 있다. 그 밖의 다른 소프트웨어 아키텍처는 추가적인 또는 상이한 계층을 포함할 수 있다.
운영 체제(402)는 하드웨어 자원을 관리할 수 있고 공통 서비스를 제공할 수 있다. 운영 체제(402)는 예를 들어 커넬(422), 서비스(424) 및 드라이버(426)를 포함할 수 있다. 커넬(422)은 하드웨어와 그 밖의 다른 소프트웨어 계층 간 추상화 계층으로서 역할을 할 수 있다. 예를 들어, 커넬(422)은 메모리 관리, 프로세서 관리(가령, 스케줄링), 구성요소 관리, 네트워킹, 보안 설정 등을 수행할 수 있다. 서비스(424)는 그 밖의 다른 소프트웨어 계층에 대한 그 밖의 다른 공통 서비스를 제공할 수 있다. 드라이버(426)는 기저 하드웨어를 제어 또는 이와 인터페이싱하는 역할을 수행할 수 있다. 예를 들어, 드라이버(426)는 하드웨어 설정에 따라 디스플레이 드라이버, 카메라 드라이버, Bluetooth® 드라이버, 플래시 메모리 드라이버, 직렬 통신 드라이버(가령, USB(Universal Serial Bus) 드라이버), Wi-Fi® 드라이버, 오디오 드라이버, 전력 관리 드라이버 등을 포함할 수 있다.
라이브러리(420)는 애플리케이션(416) 및/또는 그 밖의 다른 구성요소 및/또는 계층에 의해 이용될 수 있는 공통 인프라구조를 제공할 수 있다. 라이브러리(420)는 그 밖의 다른 소프트웨어 구성요소가 기저 운영 체제(402) 기능(가령, 커넬(422), 서비스(424) 및/또는 드라이버(426))과 직접 인터페이싱하는 것보다 작업을 더 쉬운 방식으로 수행할 수 있게 하는 기능을 제공한다. 라이브러리(420)는 함수, 가령, 메모리 할당 함수, 문자열 조작 함수, 수학 함수 등을 제공할 수 있는 시스템 라이브러리(444)(가령, C 표준 라이브러리)를 포함할 수 있다. 덧붙이자면, 라이브러리(420)는 API 라이브러리(446), 가령, 미디어 라이브러리(가령, 다양한 알려진 미디어 포맷, 가령, MPREG4, H.264, MP3, AAC, AMR, JPG 및 PNG의 표시 및 조작을 지원하기 위한 라이브러리), 그래픽 라이브러리(가령, 디스플레이 상에 2D 및 3D 그래픽 콘텐츠를 렌더링하는 데 사용될 수 있는 OpenGL 프레임워크), 데이터베이스 라이브러리(가령, 다양한 관계 데이터베이스 기능을 제공할 수 있는 SQLite), 웹 라이브러리(가령, 웹 브라우징 기능을 제공할 수 있는 WebKit) 등을 포함할 수 있다. 라이브러리(420)는 또한 그 밖의 다른 많은 API를 애플리케이션(448) 및 그 밖의 다른 소프트웨어 구성요소/모듈로 제공하기 위한 다양한 그 밖의 다른 라이브러리(416)를 포함할 수 있다.
프레임워크 프레임워크/미들웨어(418)(때때로 미들웨어라고도 지칭됨)가 애플리케이션(416) 및/또는 그 밖의 다른 소프트웨어 구성요소/모듈에 의해 사용될 수 있는 더 하이-레벨 공통 인프라구조를 제공할 수 있다. 예를 들어, 프레임워크/미들웨어(418)는 다양한 그래픽 사용자 인터페이스(GUI) 기능, 하이-레벨 자원 관리, 하이-레벨 측위 서비스 등을 제공할 수 있다. 프레임워크/미들웨어(418)는 애플리케이션(416) 및/또는 그 밖의 다른 소프트웨어 구성요소/모듈에 의해 사용될 수 있는 그 밖의 다른 API의 넓은 스펙트럼을 제공할 수 있으며, 이들 중 일부는 특정 운영 체제 또는 플랫폼에 특정될 수 있다.
애플리케이션(416)은 빌트-인 애플리케이션(438) 및/또는 제3자 애플리케이션(440)을 포함할 수 있다. 대표적 빌트-인 애플리케이션(438)의 비제한적 예로는, 연락처 애플리케이션, 브라우저 애플리케이션, 책읽기 애플리케이션, 측위 애플리케이션, 미디어 애플리케이션, 메시징 애플리케이션 및/또는 게임 애플리케이션이 있을 수 있다. 제3자 애플리케이션(440)은 특정 플랫폼의 판매회사가 아닌 다른 개체에 의해 ANDROID™ 또는 IOS™ 소프트웨어 개발 키트(SDK)를 이용해 개발된 애플리케이션 중 임의의 것을 포함할 수 있고 모바일 운영 체제, 가령, IOS™, ANDROID™, WINDOWS® Phone, 또는 그 밖의 다른 모바일 운영 체제 상에 실행되는 모바일 소프트웨어일 수 있다. 제3자 애플리케이션(440)은 모바일 운영 체제(가령, 운영 체제(402))에 의해 제공되는 API 콜(408)을 호출하여 본 명세서에 기재된 기능을 촉진시킬 수 있다.
애플리케이션(416)은 빌트-인 운영 체제 기능(가령, 커넬(422), 서비스(424) 및/또는 드라이버(426)), 라이브러리(420), 및 프레임워크/미들웨어(418)를 이용해 시스템의 사용자와 대화하기 위한 사용자 인터페이스를 생성할 수 있다. 대안으로, 또는 추가로, 일부 시스템에서, 사용자와의 대화가 표현 계층, 표현 계층(414)을 통해 발생할 수 있다. 이들 시스템에서, 애플리케이션/구성요소 "로직"은 사용자와 대화하는 애플리케이션/구성요소의 양태로부터 분리될 수 있다.
일부 소프트웨어 아키텍처는 가상 머신을 이용한다. 도 4의 예시에서, 이는 가상 머신(410)에 의해 도시된다. 가상 머신(410)은 하드웨어 기계(가령, 도 5의 기계) 상에서 실행되고 있는 것처럼 애플리케이션/구성요소가 실행될 수 있는 소프트웨어 환경을 생성한다. 가상 머신(410)은 호스트 운영 체제(도 4의 운영 체제(OS)(436))에 의해 호스팅되고, 항상은 아니더라도 일반적으로, 가상 머신의 동작을 관리하고 호스트 운영 체제(가령, 운영 체제(402))와 인터페이싱하는 가상 머신 모니터(460)를 가진다. 소프트웨어 아키텍처는 가상 머신, 가령, 운영 체제(OS)(430), 라이브러리(434), 프레임워크(432), 애플리케이션(430) 및/또는 표현 계층(428) 내에서 실행된다. 가상 머신(410) 내에서 실행되는 소프트웨어 아키텍처의 이들 계층은 앞서 기재된 대응하는 계층과 동일하거나 상이할 수 있다.
도 5는 기계 판독형 매체(가령, 기계 판독형 저장 매체)로부터 명령을 판독하고 본 명세서에 기재된 방법 중 임의의 하나 이상을 수행할 수 있는 일부 실시예에 따르는 기계(500)의 구성요소를 도시하는 블록도이다. 구체적으로, 도 5은 기계(500)가 본 명세서에 기재된 방법 중 임의의 하나 이상을 수행할 수 있게 하는 명령(510)(가령, 소프트웨어, 프로그램, 애플리케이션, 애플릿, 앱, 또는 그 밖의 다른 코드)이 실행될 수 있는 컴퓨터 시스템의 예시적 형태로 된 기계(500)의 개략적 표현을 나타낸다. 예를 들어, 명령은 본 명세서에 기재된 모듈 또는 구성요소를 구현하도록 사용될 수 있다. 명령은 일반적인 프로그램되지 않은 기계를 기재된 방식으로 기재되고 도시된 기능을 수행하도록 프로그램된 특정 기계로 변환한다. 대안 실시예에서, 기계(500)는 자립형 디바이스로서 동작하거나 또 다른 기계로 연결(가령, 네트워킹)될 수 있다. 네트워킹된 배치에서, 기계(500)는 서버-클라이언트 네트워크 환경에서 서버 기계 또는 클라이언트 기계로서 동작하거나, 피어-투-피어(peer-to-peer)(또는 분산) 네트워크 환경에서 피어(peer) 기계로서 동작할 수 있다. 기계(500)의 비제한적 예를 들면, 서버 컴퓨터, 클라이언트 컴퓨터, 개인 컴퓨터(PC), 태블릿 컴퓨터, 랩톱 컴퓨터, 넷북, 셋-톱 박스(STB), 개인 디지털 어시스턴트(PDA), 엔터테인먼트 미디어 시스템, 셀룰러 전화기, 스마트 폰, 모바일 디바이스, 웨어러블 디바이스(가령, 스마트 시계), 스마트 가정용 디바이스(가령, 스마트 가전기기), 그 밖의 다른 스마트 디바이스, 웹 어플라이언스, 네트워크 라우터, 네트워크 스위치, 네트워크 브리지, 또는 기계(500)에 의해 수행될 동작을 특정하는 명령(510)을 순차적으로 또는 그 밖의 다른 방식으로 실행하는 임의의 기계가 있을 수 있다. 또한 하나의 기계(500)만 도시되어 있지만, 용어 "기계"는 본 명세서에서 언급된 방법 중 임의의 하나 이상을 수행하도록 명령(510)을 개별적으로 또는 공동으로 실행하는 기계(500)의 집합을 포함하는 것으로도 이해될 것이다.
기계(500)는 가령 버스(502)를 통해 서로 통신하도록 구성될 수 있는 프로세서(504), 메모리/저장장치(506), 및 I/O 구성요소(518)를 포함할 수 있다. 메모리/저장장치(506)는 메모리(514), 가령, 메인 메모리, 또는 그 밖의 다른 메모리 저장장치와, 저장 유닛(516)을 포함할 수 있으며, 둘 모두 가령 버스(502)를 통해 프로세서(504)에 의해 액세스 가능하다. 저장 유닛(516) 및 메모리(514)는 본 명세서에 기재된 방법 또는 기능 중 임의의 하나 이상을 구현하는 명령(510)을 저장한다. 명령(510)은 또한 기계(500)에 의해 실행되는 동안 메모리(514), 저장 유닛(516), 프로세서(504) 중 적어도 하나(가령, 프로세서의 캐시 메모리), 또는 이들의 임의의 적합한 조합 내에 완전히 또는 부분적으로 위치할 수 있다. 따라서 메모리(514), 저장 유닛(516) 및 프로세서(504)의 메모리가 기계 판독형 매체의 예시이다.
I/O 구성요소(518)는 입력을 수신, 출력을 제공, 출력을 생성, 정보를 전송, 정보를 교환, 측정치를 캡처 등을 위한 다양한 구성요소를 포함할 수 있다. 특정 기계 내에 포함되는 특정 I/O 구성요소(518)는 기계의 유형에 따라 달라질 것이다. 예를 들어, 휴대용 기계, 가령, 모바일 폰이 터치 입력 디바이스, 또는 그 밖의 다른 이러한 입력 수단을 포함할 가능성이 높을 것이며, 반면에 헤드리스 서버 기계(headless server machine )는 이러한 터치 입력 디바이스를 포함하지 않을 가능성이 높을 것이다. I/O 구성요소(518)는 도 5에 도시되지 않는 그 밖의 다른 많은 구성요소를 포함할 수 있다. I/O 구성요소(518)는 단지 이하의 설명을 단순화하기 위한 목적으로 기능에 따라 그룹화되지만, 그룹으로 한정되는 것은 아니다. 다양한 실시예에서 I/O 구성요소(518)는 출력 구성요소(526) 및 입력 구성요소(528)를 포함할 수 있다. 출력 구성요소(526)는 시각적 구성요소(가령, 디스플레이, 가령, PDP(plasma display panel), LED(light emitting diode) 디스플레이, LCD(liquid crystal display), 프로젝터, 또는 CRT(cathode ray tube), 음향 구성요소(가령, 스피커), 햅틱 구성요소(가령, 진동 모터, 저항성 수단), 그 밖의 다른 신호 생성기 등을 포함할 수 있다. 입력 구성요소(528)는 문자 및 숫자 입력 구성요소(가령, 키보드, 문자 및 숫자 입력을 수신하도록 구성된 터치 스크린, 광학 키보드, 또는 그 밖의 다른 문자 및 숫자 입력 구성요소), 포인트-기반 입력 구성요소(가령, 마우스, 터치패드, 트랙볼, 조이스틱, 모션 센서, 또는 그 밖의 다른 포인팅 기구), 촉감 입력 구성요소(가령, 물리적 버튼, 터치 또는 터치 제스처의 위치 및/또는 힘을 제공하는 터치 스크린, 또는 그 밖의 다른 촉감 입력 구성요소), 오디오 입력 구성요소(가령, 마이크로폰) 등을 포함할 수 있다.
또 다른 실시예에서, I/O 구성요소(518)는 생체측정 구성요소(530), 모션 구성요소(534), 주위 환경 구성요소(536), 또는 위치 구성요소(538) 등 그 밖의 다른 여러 구성요소를 포함할 수 있다. 예를 들어, 생체측정 구성요소(530)는 표현, 가령, 손 표현, 표정 표현, 목소리 표현, 바디 제스처, 또는 안구 추적)의 검출, 생체 신호(가령, 혈압, 심박수, 체온, 발한, 또는 뇌파)의 측정, 개인의 식별(가령, 음성 식별, 홍채 식별, 안면 식별, 지문 식별, 또는 뇌전도 기반 식별) 등을 위한 구성요소를 포함할 수 있다. 모션 구성요소(534)는 가속 센서 구성요소(가령, 가속도계), 중력 센서 구성요소, 회전 센서 구성요소(가령, 자이로스코프) 등을 포함할 수 있다. 환경 구성요소(536)는 예를 들어, 조명 센서 구성요소(가령, 광도계), 온도 센서 구성요소(가령, 주위 온도를 검출하는 하나 이상의 온도계), 습도 센서 구성요소, 압력 센서 구성요소(가령, 기압계), 음향 센서 구성요소(가령, 배경 노이즈를 검출하는 하나 이상의 마이크로폰), 근접도 센서 구성요소(가령, 근처 물체를 검출하는 적외선 센서), 가스 센서(가령, 안전을 위해 위험한 가스의 농도를 검출하거나 대기 중 오염물질을 측정하기 위한 가스 검출 센서), 또는 주위 물리 환경에 대응하는 지시, 측정치, 또는 신호를 제공할 수 있는 그 밖의 다른 구성요소를 포함할 수 있다. 위치 구성요소(538)는 측위 센서 구성요소(가령, GPS(Global Position System) 수신기 구성요소), 고도 센서 구성요소(가령, 고도계 또는 고도가 얻어질 수 있는 곳에서의 공기압을 검출하는 기압계), 배향 센서 구성요소(가령, 자기력계) 등을 포함할 수 있다.
다양한 기법을 이용해 통신이 구현될 수 있다. I/O 구성요소(518)는 기계(500)를 각각 연결(522) 및 연결(524)을 통해 네트워크(532) 또는 디바이스(520)로 연결하도록 동작하는 통신 구성요소(540)를 포함할 수 있다. 예를 들어, 통신 구성요소(764)는 네트워크 인터페이스 구성요소 또는 그 밖의 다른 적절한 디바이스를 포함해 네트워크(532)와 인터페이싱할 수 있다. 또 다른 예시에서, 통신 구성요소(540)는 유선 통신 구성요소, 무선 통신 구성요소, 셀룰러 통신 구성요소, 근거리장 통신(NFC) 구성요소, Blutooth® 구성요소(가령, Bluetooth(알) Low Energy), Wi-Fi® 구성요소, 및 그 밖의 다른 방식을 통해 통신을 제공하기 위한 그 밖의 다른 통신 구성요소를 포함할 수 있다. 디바이스(520)는 또 다른 기계 또는 다양한 주변 디바이스 중 임의의 것(가령, USB(Universal Serial Bus)를 통해 연결된 주변 디바이스)일 수 있다.
덧붙여, 통신 구성요소(540)는 식별자를 검출하거나 식별자를 검출하도록 동작 가능한 구성요소를 포함할 수 있다. 예를 들어, 통신 구성요소 프로세서의 통신 구성요소(540)는 RFID(Radio Frequency Identification) 태그 판독기 구성요소, NFC 스마트 태그 검출 구성요소, 광학 판독기 구성요소(가령, 1차원 바코드, 가령, UPC(Universal Product Code) 바코드, 다차원 바코드, 가령, QR(Quick Response) 코드, Aztec 코드, Data Matrix, Dataglyph, MaxiCode, PDF417, Ultra Code, UCC RSS-2D 바코드 및 그 밖의 다른 광학 코드를 검출하기 위한 광학 센서), 또는 음향 검출 구성요소(가령, 태깅된 오디오 신호를 식별하기 위한 마이크로폰)을 포함할 수 있다. 덧붙여, 통신 구성요소(540)를 통해 다양한 정보가 얻어질 수 있는데, 가령, IP(Internet Protocol) 지오로케이션을 통한 위치, Wi-Fi® 신호 삼각측량을 통한 위치, 특정 위치를 가리킬 수 있는 NFC 비컨 신호를 검출함에 따른 위치 등이 얻어질 수 있다.
이제 도 6을 참조하면, 지능형 개인 어시스턴트 시스템(106)이 제공하는 지능형 온라인 개인 어시스턴트가 배치될 수 있는 예시적 환경(600)이 도시된다. 환경(600)의 중심에, AI를 가진 지능형 봇(602)이 나타난다. 봇은 컴퓨터 비전 구성요소(208), 음성 인식 구성요소(210), NLU 구성요소(214), 대화 관리자(216), NLG 구성요소(212), 검색 구성요소(220), 및 신원 서비스(2220)를 이용해 사용자를 효율적이고 흥미로우며 효과적인 대화에 개입시켜, 그들의 의도를 해독하고 개인화된 결과를 전달할 수 있다.
연관된 애플리케이션(604)은 매력적인 모바일 디자인 기능 및 요소로 봇(602')의 전체 파워 및 지능을 나타낼 수 있다. 패브릭(606)은 (예시로서) Facebook MessengerTM, SkypeTM 및 CortanaTM과 통합되어, 사용자가 자신이 이미 시간을 보내는 곳에서 거래하게 할 수 있다. 스마트 알림(610) 플랫폼이 임의의 개수의 채널(가령, SMS, 푸시 알림, 이메일, 메시징)을 통해 사용자에게 적시에 적절한 정보를 전달하여, 사용자가 봇(602) 및 연관된 시장에 개입하게 할 수 있다. 커뮤니티(608) 기능이, 사용자가 이미 시간을 보내고 있는 동일한 메시징 시스템을 이용해 사용자가 자신의 친구, 테이스트메이커, 및 브랜드와 연결, 어울리고, 상호작용하게 한다. 그 밖의 다른 기능이 그룹 구매 및 선물 구매를 포함한다. 보상(612) 플랫폼이 사용자가 봇(602)과 더 깊이 어울리도록 인센티브를 준다. 보상은 제품에 대한 대폭의 할인, 특별한 재고로의 접근, 및 점수, 레벨 등을 통한 앱 내 인식을 포함할 수 있다. 마케팅(614)에서, 전통적인, 사회적, 및 그 밖의 다른 마케팅이 수행되어 일부 계층(가령, 밀레니엄 세대)의 집중을 더 개인적인 방식으로 얻을 수 있다. 종래의 기법은 새로운 사용자와 기존 사용자를 타깃으로 하는 머천다이징, 이메일, 검색 엔진 최적화(SEO), 및 검색 엔진 마케팅(SEM)뿐 아니라 실험적 기법, 가령, 소셜 광고, 바이럴 쿠폰 등을 포함할 수 있다.
도 7은 전자 시장에서 자연어 사용자 입력을 처리하여 아이템 추천을 생성하는 지능형 개인 어시스턴트 시스템(106)의 개요를 도시한다. 지능형 개인 어시스턴트 시스템(106)이 이러한 사용 시나리오에 제한되지 않지만, 이 상황에서 특히 유용할 수 있다. 앞서 기재된 바와 같이, 텍스트, 이미지, 및 음성 데이터의 임의의 조합이 인공 지능 프레임워크(128)에 의해 수신될 수 있다. 이미지 데이터느 컴퓨터 비전 구성요소(208)에 의해 처리되어 이미지 속성 데이터를 제공할 수 있다. 음성 데이터는 음성 인식 구성요소(210)에 의해 텍스트로 처리될 수 있다.
이들 입력 및 그 밖의 다른 입력 모두 분석되도록 NLU 구성요소(214)로 제공될 수 있다. NLU 구성요소(214)는 사용자 입력을 파싱(parse)하고 사용자 의도 및 의도-관련 파라미터를 결정하는 것을 돕도록 동작할 수 있다. 예를 들어, NLU 구성요소(214)는 사용자 관심의 주요 대상, 및 상기 주요 대상과 관련된 다양한 속성 및 속성 값을 구별할 수 있다. NLU 구성요소(214)는 또한 그 밖의 다른 파라미터, 가령, 사용자 입력 유형(가령, 질문인지 서술문인지) 및 타깃된 아이템 수신자를 결정할 수 있다. NLU 구성요소(214)는 추출된 데이터를 대화 관리자(216)뿐 아니라 앞서 나타낸 AI 오케스트레이터(206)에게도 제공할 수 있다.
일반적으로 NLU 구성요소(214)는 형식 및 비형식적 자연어 사용자 입력을 사용자의 질의의 더 형식적이며, 기계-판독 가능한, 구조화된 표현으로 변환할 수 있다. 이러한 형식화된 질의가 대화 관리자(216)에 의해 더 보강될 수 있다. 하나의 시나리오에서, NLU 구성요소(214)는 멀티-턴 상호작용 대화에서 본래의 질의와 대화 관리자(216)로부터의 기계-생성 프롬프트에 대해 응답하여 사용자가 제공한 추가 데이터를 포함하는 사용자 입력의 시퀀스를 처리한다. 이 사용자-기계 상호작용은 전자 시장에서의 구매에 이용 가능한 가장 관련성 있는 아이템에 대한 하나 이상의 자동화된 검색의 효율 및 정확도를 개선할 수 있다. 검색은 검색 구성요소(220)에 의해 수행될 수 있다.
사용자 의도를 추출하는 것은 AI 봇이 필요한 추가 동작을 결정할 때 매우 도움이 된다. 하나의 전자상거래-관련 예시에서, 매우 하이 레벨에서, 사용자 의도가 쇼핑, 수다, 농담, 날씨 등일 수 있다. 사용자 의도가 쇼핑인 경우, 특정 쇼핑 미션의 추구, 사용자가 아닌 다른 타깃 수신자에게 아이템을 선물하는 것, 또는 단지 구매 가능한 아이템의 재고를 브라우징하는 것과 관련될 수 있다. 하이 레벨 의도가 식별되면, 인공 지능 프레임워크(128)는 사용자가 찾는 것이 무엇인지 결정하는 작업을 부여받는다.: 즉, 필요한 것이 넓은 범위(가령, 신발, 드레스)인지, 또는 더 구체적인 것(가령, 신제품 검은색 NikeTM 치수 10 스니커즈)인지, 또는 그 중간(가령, 검은색 스니커즈)인지?
이 분야의 종래 기술에 비해 구별되는 신규한 개선에서, 인공 지능 프레임워크(128)는 사용자 요청을 원하는 가용 아이템을 가장 잘 특징화하는 특정 주요 차원, 가령, 카테고리, 속성, 및 속성 값으로 매핑할 수 있다. 이는 필요에 따라 검색 제약을 더 상세화하기 위해 사용자와 어울릴 수 있는 능력을 봇에게 제공한다. 예를 들어, 사용자가 봇에게 드레스에 대한 정보를 요청한 경우, 구체화를 필요로 하는 최상위 속성은 색상, 재료, 및 스타일일 수 있다. 또한, 시간에 따라, 머신 러닝은 더 깊은 시맨틱(deeper semantic) 및 더 넓은 "세계 지식(world knowledge)"을 시스템에 추가하여, 사용자 의도를 더 잘 이해할 수 있다. 예를 들어, 입력 "이탈리아에서 6월에 있는 결혼식을 위한 드레스를 찾고 있습니다"는 드레스가 특정 시간 및 장소에서 특정 날씨 조건에 적절해야 함을 의미하고 공식적인 상황에 적절해야 함을 의미한다. 또 다른 예시는 사용자가 봇에게 "남조카를 위한 선물"을 묻는 것을 포함할 수 있다. 인공 지능 프레임워크(128)는 훈련될 때 선물이 특수한 유형의 의도임을 이해하고, "남조카"의 의미를 토대로 타깃 수신자가 남자이며, 타깃 수신자의 속성, 가령, 나이, 상황, 및 취미/좋아하는 것이 파악되어야 함을 이해할 것이다.
도 8은 일부 실시예에 따라, NLU 구성요소(214), 이의 하위-구성요소, 및 상호작용하는 그 밖의 다른 구성요소를 도시한다. 일부 실시예에서, 사용자 의도를 추출하는 것은 LNU 구성요소(214)에 의해 복잡한 기술적 문제를 복수의 부분으로 종종 분할함으로써 수행된다. 사용자 의도를 추출하는 전체 문제의 다양한 부분 각각은 NLU 구성요소(214)의 특정 하위-구성요소에 의해, 때때로 개별적으로 때때로 조합하여, 처리될 수 있다.
하위-구성요소는 예를 들어, 철자 교정기(스펠러)(802), 기계 번역기(MT)(804), 파서(parser)(806), 지식 그래프(knowledge graph)(808), 개체명 인식(NER: Named Entity Recognition) 하위-구성요소(810), 단어 의미 검출기(WSD: Word Sense Detector)(812), 의도 검출기(813), 및 해석기(814)를 포함할 수 있다. NLU 구성요소(214)는 하나의 실시예에서 텍스트, 시각적 선택자, 및 이미지 속성을, 가령, AI 오케스트레이터(206)를 통해 수신할 수 있고, 각각을 따로따로 또는 조합하여 처리한다. 시각적 선택자는 일반적으로 사용자가 제공한 그래픽 선택, 가령, 복수의 표시된 컬러 샘플 중 한 색상의 선택, 또는 연관된 따라서 선택된 정신 상태를 갖는 이모티콘의 선택이다. NLU 구성요소(214)는 기재될 바와 같이, 하나의 실시예에서 자신의 다양한 출력을 AI 오케스트레이터(206)에게 제공하여, 인공 지능 프레임워크(128)의 타 구성요소, 가령, 대화 관리자(216)에게 분산시킬 수 있다.
NLU 구성요소(214)에 의해 고려되는 또 다른 입력은 (가령, 컨텍스트 관리자(218)로부터의) 대화 컨텍스트(816), (가령, 신원 서비스(222)로부터의) 사용자 신원 정보(818), (전자 시장의 코어 검색 엔진(220) 기능으로부터의) 아이템 재고-관련 정보(820), 및 외부 세계 지식(822)을 포함하여 사용자 입력으로부터의 사용자 의도의 시맨틱 추론을 개선할 수 있다. 이들 입력의 상이한 유형의 분석이 각각 지식 그래프(808)를 통해 총체적으로 해석되고 조정될 수 있는 결과를 산출할 수 있다. 지식 그래프(808)는 예를 들어, 과거 사용자의 상호작용, 재고-관련 데이터, 또는 둘 모두를 기초로 할 수 있다.
스펠러(802)는 사용자-입력 텍스트에서 철자 실수를 식별하고 교정할 수 있다. 사용자 텍스트의 비제한적 예를 들면, 질의 및 아이템 타이틀이 있다. 기계 번역기(804)는 선택적으로 사용자 입력을 사용자의 자연어로부터 동작 언어, 비제한적 예를 들면, 영어로 번역할 수 있다. 스펠러(802) 및 기계 번역기(804)는 또한 그 밖의 다른 정규화 하위-구성요소 및/또는 파서(806)와 협동하여 약어, 두문자어, 및 속어를 더 형식적인 데이터로 처리하여 분석을 개선할 수 있다.
파서(또는 종속성 파서(dependency parser))(806)는 사용자의 입력 질의의 주요 대상을 찾음으로써 사용자의 의도를 검출하는 것을 보조할 수 있다. 이 프로세스는 파서가 사용자 입력에서 가령, 멀티-턴 대화로부터의 사용자 입력에서, 전치사와 직접 목적어 및 간접 목적어, 동사 및 긍정 및 부정을 포함하는 명사구를 식별하고 분석하는 것을 포함할 수 있다. 긍정 및 부정은 일부 실시예에서 의도 검출기 하위-구성요소(183)에서 검출되거나, 상이한 하위-구성요소, 가령, 단어 의미 검출기(812)에 의해 검출될 수 있다.
하나의 실시예에서, 파서(806)는 완전히 분해될 수 있는 사용자 입력의 가장 긴 조각으로부터 사용자 관심의 주요 대상을 찾는다. 파서(806)는 또한 저빈도의 사용자 입력 단어, 가령, "안녕" 및 "도와줄 수 있니" 등을 폐기하거나, 및/또는 이들을 기계가 덜 혼란스러워 하는 구문으로 대체할 수 있다. 파서(806)는 또한 다양한 상황(가령, 결혼식, 어머니의 날 등)을 인식할 수 있다.
의도 검출기(813)는 관심 있는 주요 대상(이는 보통 아이템 카테고리이나 항상 그런 것은 아님) 및 파서(806)에 의해 제안된 결과에 대한 각각의 최상의 속성의 식별에 의해 사용자 의도의 식별을 더 구체화할 수 있다. 예를 들어, 사용자 의도가 특정 아이템을 쇼핑하는 것이라면, 지식 그래프(808)가 매핑된 특정 아이템 재고(가령, eBay 재고, 또는 데이터베이스/클라우드(126))에서 주요 아이템 카테고리를 이용할 수 있다. 지식 그래프(808)는 또한 해당 아이템 카테고리와 관련된 주요(가령, 최빈도 사용자-질의 또는 아이템 재고에서의 최빈도 발생) 속성 및 이들 속성에 대한 주요 값을 이용할 수 있다. 따라서, NLU 구성요소(214)는 자신의 출력으로서 주요 대상, 사용자 의도, 및 형식화된 지식 그래프(808)를 사용자 질의와 관련성 있을 가능성이 높은 차원과 함께 제공할 수 있다. 이 정보는 사용자 질의를 아이템 추천으로 완전히 해결하고 따라서 추가 입력을 통해 사용자의 요건을 더 상세화하기 위해 사용자에게 프롬프트할지 여부(그리고 방식)를 해결하는 데 필요한 정보가 없는 경우, 도움이 될 수 있다.
지식 그래프(808)에 대한 배경 정보가 수작업 카탈로그와 과거 사용자 행동(가령, 시간 주기 동안 전자 시장과의 이전의 모든 상호작용의 히스토리) 으로부터 추출된 정보로부터 얻어진 정보의 혼합으로서 아이템 재고로부터 추출될 수 있다. 지식 그래프는 또한 외부 공급원, 가령, 인터넷 백과사전(가령, Wikipedia), 온라인 사전, 유의어 사전, 및 어휘 데이터베이스(lexical database)(가령, WordNet)으로부터 추출된 세계 지식을 더 포함할 수 있다. 예를 들어, 용어 유사성 및 관계에 관한 데이터가 용어 소녀, 딸, 여동생, 여성, 고모, 여조카, 할머니, 및 어머니가 모두 여성을 지칭하고 상이한 특정 친척 관계를 나타낸다고 결정하는 데 이용될 수 있다. 이들 추가 연관은 사용자 질의어의 의미를 명확히 하고, 봇을 교육시킬 수는 있지만 사용자를 성가시게 하는 프롬프트의 생성을 막는데 도움이 된다. 포커스 그룹 연구가 일부 사용자는 프롬프트에 대해 지정 횟수, 가령, 3회 이상의 대답을 제공하기를 원치 않음을 보였으며, 따라서 이들 프롬프트 각각은 가능한 기민할 필요가 있다.
일부 실시예에서 가령, AI 오케스트레이터(206)에 의해 지식 그래프(808)가 동적으로 업데이트될 수 있다. 즉, 아이템 재고가 변하거나 새로운 사용자 행동 또는 새로운 세계 지식 데이터가 성공적인 사용자 검색을 이끄는 경우, 지능형 온라인 개인 어시스턴트(106)는 미래의 사용자 검색을 위해 이들 변화를 이용할 수 있다. 학습하는 어시스턴트는 특히, 광범위한 대화를 하는 경향이 적인 사용자에 대해 추가 사용자 상호작용을 발전시킬 수 있다. 따라서 실시예는 지식 그래프(808)가 자신이 갖고 있고 NLU 구성요소(214) 내 타 하위-구성요소와 그리고 외부와, 가령, 대화 관리자(216)와 공유하는 정보를 조정하도록 수정할 수 있다.
NER 하위-구성요소(810)는 파싱된 사용자 입력(가령, 브랜드명, 치수 정보, 색상, 및 그 밖의 다른 기술어)로부터 더 깊은 정보를 추출할 수 있고 사용자 자연어 질의를 이러한 파싱된 데이터 요소를 포함하는 구조화된 질의로 변환하는 것을 보조할 수 있다. NER 하위-구성요소는 또한 세계 지식을 활용해 추출된 단어에 대한 의미를 해결하는 데 도움이 될 수 있다. 예를 들어, "보르도(bordeaux)"에 대한 질의가 온라인 사전 및 백과사전으로부터 상기 질의어는 아이템 카테고리(와인), 속성(유형, 색, 원산지), 및 각자의 대응하는 속성 값(보르도, 적색, 프랑스)을 지칭할 수 있음을 더 성공적으로 결정할 수 있다. 마찬가지로, 장소명(가령, 타호호(Lake Tahoe))이 사용자가 관련 아이템을 찾는 데 도움이 될 수 있는 특정 지리적 위치, 날씨 데이터, 문화 정보, 환율, 및 인기 활동에 대응할 수 있다. 구조화된 질의 심도(가령, 특정 사용자 어터런스(utterance) 길이에 대해 분해되는 태그의 수)가 대화 관리자(216)가 검색 구성요소(220)에 의해 수행된 검색에서 순위를 개선하는 데 취해져야 할 추가 동작을 선택하는 데 도움이 될 수 있다.
단어 의미 검출기(812)가 다의어, 즉, 맥락에 따라 달라지는 복수의 의미를 갖는 단어를 처리할 수 있다. 예를 들어, "bank"라는 입력어는 지리적 의미로 "강의 가장자리"를 지칭하거나 구매 거래 지불 의미로 "금융 기관"을 지칭한다. 단어 의미 검출기(812)는 이러한 단어를 검출하고 단어 의미가 모호하다면 대화 관리자(216)를 트리거하여 사용자로부터 추가 해법을 구하게 할 수 있다. 단어 의미 검출기(812) 또는 의도 검출기 하위-구성요소(813)는 또한 비제한적 예시적 구문 "더 보여줄래" 또는 "아니, 나는 그거 마음에 안 들어" 등으로부터 긍정문과 부정문을 구별할 수 있다. 파서(804), 의도 검출기(813) 및 단어 의미 검출기(812)의 기능은 특정 구현예에 따라 다소 겹치거나 상호작용할 수 있다.
해석기(814)는 다양한 NLU 하위-구성요소로부터 온 분석된 정보들을 조화시키고 출력을 준비한다. 출력은 예를 들어 사용자 질의의 주요 대상뿐 아니라 관련 지식 그래프 차원에 대해 해결된 정보(가령, 아이템 카테고리, 아이템 속성, 아이템 속성 값), 사용자의 의도(가령, 쇼핑의 경우, 특정 아이템을 쇼핑할지, 선물을 찾을지, 또는 일반적인 브라우징인지 여부), 인식된 사용자 서술의 유형, 의도된 타깃 수신자 등을 포함할 수 있다. 공유되고, 증강되며, 처리된 사용자 입력에 대해 수행된 개별 분석의 조합을 통해, 인공 지능 프레임워크(128)의 구성요소가 사용자 의도를 이해하면서 광범위한 제품에 대한 지식을 갖는 신뢰 가는 개인 쇼퍼(봇)을 제공한다. 따라서 NLU 구성요소(214)는 자연어 사용자 질의를 구조화된 질의로 변환하여 사용자에게 가장 관련성 있는 결과를 제공하는 것을 보조할 수 있다.
따라서 NLU 구성요소(214)는 실수를 줄이고, 사용자 질의 기저의 사용자 의도를 올바르게 맞출 가능성을 높이며, 빠르고 우수한 타깃 검색 및 아이템 추천을 산출함으로써 지능형 개인 어시스턴트 시스템(106)의 동작을 전반적으로 개선한다. NLU 구성요소(214)는, 특히 멀티-턴 대화 시나리오에서 대화 관리자(216)와 함께, 더 많은 사용자 상호작용 히스토리-집중 및/또는 아이템 재고-집중형 검색 질의를 제공하여 실행되게 함으로써, 검색 구성요소(220)의 동작을 효과적으로 통제한다. 이 구별되는 기능은 기재된 요소들의 특정 순서 조합을 통해 현재의 기술 상태를 넘어 서는 것이다.
사용자로부터의 입력 데이터를 처리하기 위한 더 일반적인 NLU 구성요소(214) 및 지능형 개인 어시스턴트 시스템(106)의 사용 예시가 이하에서 기재된다. 사용자는 구두 서술어(서술문), 가령, "내 아내를 위한 선글라스를 찾고 있습니다(I am looking for a pair of sunglasses for my wife)"를 제공할 수 있다. NLU 구성요소(214)가 이 자연어 사용자 입력을 처리하여 검색 엔진(220) 및/또는 대화 관리자(216)에게 제공될 더 형식적인 질의를 생성할 수 있다. 더 형식적인 질의는 대응하는 분해된 값을 갖는 하나 이상의 분해된 핸들(handle)과 각각 연관되는 태그의 그룹을 포함할 수 있다. 예를 들어, 더 형식적인 질의는 "<intent:gifting, 서술문-type:서술문, dominant-object:sunglasses, target:wife, target-gender:female>"를 포함할 수 있다. 검색 엔진은 이들 태그의 검색을 기초로, 본래 제출된 사용자 입력의 검색으로부터의 결과보다 더 관련성 있는 결과를 제공할 수 있다.
이 예시에서, 지능형 개인 어시스턴트 시스템(106)은 사용자 의도가 선물(자체 쇼핑 또는 브라우징과 대비)임을 결정하고, 사용자가 서술문(질문과 대비)을 제공했으며 사용자의 관심의 주요 대상은 선글라스임을 결정한다. 사용자가 쇼핑 중이더라도, 의도는 특정 타깃 아이템 수신자인 그의 아내에게 아이템을 선물하는 것이다. 선물 미션은 일반적인 재고 브라우징 또는 사용자 자신을 위한 쇼핑과 다소 다르게 취급될 수 있는 쇼핑 미션의 특수 유형으로 알려져 있다.
지능형 개인 어시스턴트 시스템(106)은 또한, 개체명 인식 하위-구성요소(810)에 의해, "아내"가 여성을 지칭하는 것임을 구별할 수 있다. 타깃 아이템 수신자인 특정 개인은 가령 신원 서비스(212)에 의해 제공된 데이터로부터 발견될 수 있다. 또한 세계 지식의 사용을 통해, 지능형 개인 어시스턴트 시스템(106)은 용어 "아내"가 결혼한 여성을 지칭하고, 아이들은 일반적으로 결혼하지 않음을 결정할 수 있다. 이 정보는 다른 유형의 선글라스(가령, 남성용 선글라스, 아이용 선글라스)에 비해, 성인 여성용 선글라스로 검색을 제한하여, 동일한 정보를 획득하기 위해 사용자 프롬프트를 요구하지 않고, 더 관련성 있는 아이템 추천을 생성할 수 있게 한다.
도 9는 일부 실시예에 따른느 다양한 분석의 결과를 도시한다. 하나의 실시예에서, 사용자는 텍스트 입력 "안녕, 빨간 색 nikey 신발을 찾는 것을 도와 줄 수 있나요?(Hi, can you find me a pair of red nikey shoes?)"을 타이핑할 수 있다. 최종 형식적 질의는 "<intent:shopping, statement-type:question, dominant-object:shoes, target:self, color:red, brand:nike>"를 포함할 수 있다. 여기서 사용자 입력은 질문(question)이고 사용자는 특정 아이템을 쇼핑하는 중(아이템 재고를 브라우징하는 것 또는 누군가를 위한 선물을 찾는 것과 대비)이다. 파서(806)는 "Hi, can you find me"가 크게 도움이 되는 내용을 제공하지 않고 따라서 폐기될 수 있다고 결정할 수 있다.
스펠러 하위-구성요소(802)가 "nikey"가 "nike"의 알려진 오자라고 결정할 수 있으며 적절한 교정을 할 수 있다. 파서 하위-구성요소(806)가 동사, 전치사 및 명사구를 식별함으로써 정규화된 입력 데이터를 문법적으로 분석할 수 있다. 개별 단어들 간 문법적 관계는 하나의 단어가 다른 단어에 종속되거나 다른 단어를 수정하는 방식을 설명할 수 있으며, 이 정보는 사용자 질의를 변환하기 위한 단서를 제공할 수 있다.
파서 하위-구성요소(806)는 또한 명사구 청킹(chunking)을 수행하고 가장 긴 파싱된 질의 조각 "빨간 색 Nike 신발"로부터 사용자의 관심의 주요 대상은 신발임을 구별할 수 있다. 즉, 신발이 가장 많은 수식어의 목적어라고 결정되며 최종 청킹 구조의 가장 깊은 레벨에 있다. 주요 대상이 종종 아이템 카테고리이지만, 항상 그럴 필요는 없다. 여기서 주요 대상은 또한 개체명 인식기(810)가 색상 및 브랜드와 각각 관련된다고 결정할 수 있는 수식어("빨간색" 및 "nike")로 기술된다.
또한 이 예시에서, 2개의 속성(색상, 브랜드) 및 대응하는 속성 값(빨간색, Nike)이 주요 대상에 대해 제공되지만, 이전 예시에는 하나의 속성만 제공되었다(가령, 성인여성의 선글라스가 추론에 의해 간접적으로 특정됨). 대화 관리자(216)는 사용자의 본래 질의가 충분히 제한된 결과로서, 적절한 프롬프트가 사용자에게 다음 검색을 더 좁힐 추가 제한사항을 묻는 질문이 아니라 하나 이상의 아이템 추천일 수 있다고 결정할 수 있다. 이와 달리, 이전 질의의 경우 성인여성용 선글라스에 대한 훨씬 더 많은 상세사항이 필요할 수 있으며, 따라서 대화 관리자(216)는 멀티-턴 대화에서 종료될 때까지 복수의 프롬프트를 생성할 수 있다. 그러나 일부 사용자는 많은 수의 프롬프트를 성가셔하며, 자신의 차례마다 더 많은 정보를 추출할 수 있는 봇을 다루기를 선호할 것이다. 따라서 각각의 사용자 어터런스로부터 가능한 많은 정보를 얻음으로써 멀티-턴 대화에서 차례의 수를 최소화하는 것이 바람직하다.
예를 들어, NLU 구성요소(214)는 검색된 아이템 재고에서 빨간색 Nike 신발에 대한 여러 다른 리스팅이 존재한다고 및/또는 이전 사용자의 상호작용이 사용자가 아이템 선택을 하기 전에 추가 속성 값을 결정했다고 결정할 수 있다. 따라서 NLU 구성요소(214)는 지식 그래프(808)를 참고해 이 사용자 관심의 주요 대상에 대한 가장 유용한 속성을 결정할 수 있다. 지식 그래프(808)는 아이템 카테고리 "신발"에 대해 가장 유용한 및/또는 자주 특정된 속성이 색상, 브랜드, 및 치수임을 지시하는 정보를, 상대적 상관 또는 연관 강도를 나타내는 대응하는 조건부 확률 또는 관련 아이템을 찾기 위한 각각의 중요성의 조건부 확률 값과 함께 가질 수 있다. 아마도 질의가 검색 성공을 도출하도록 충분히 특정적이라고 간주되도록 이들 속성 모두 파라미터화될 필요가 있을 수 있다. 그러나 이용 가능한 연관의 지정 퍼센티지를 적절하게 커버하는 제한된 수의 속성만 파라미터화될 필요가 있을 수도 있다.
사용자는 이 예시에서 색상 및 브랜드에 대한 속성 값을 제공했지만, 치수는 제공하지 않았기 때문에, 대화 관리자(216)는 사용자에게 "어떤 치수를 원하나요?"라고 묻고 추가 사용자 입력을 기다린다. 사용자가 "10을 원합니다"라고 대답한다고 가정하자. 이 것이 무엇을 의미하는가? 지능형 개인 어시스턴트 시스템(106)응 "10을 원합니다"를 사용자가 이전에 특정된 빨간색 Nike 신발의 10을 원하는 의미로 해석할 수 있다. 세계 지식이 신발은 일반적으로 쌍으로 존재한다는 정보를 제공할 수 있고, 따라서 사용자의 응답을 프롬프트로 재해석하는 것이 사용자가 빨간색 Nike 신발 10개를 원한다는 생각으로 다소 정제될 수 있다. 그러나 대화의 컨텍스트를 고려하지 않았기 때문에 해석을 올바르지 않다. 즉, "10을 원합니다"라는 사용자 입력은 이전 어터런스에 대한 추가 정보(이 경우 치수 속성에 대한 값)를 모으기 위해 생성됐던 프롬프트에 대한 대답이다. 지능형 개인 온라인 어시스턴트(106)가 대답을 임의의 이전 사용자 입력과 연관시킬 수 없는 경우, 대화 콘텍스트를 풀수 없다는 에러 서술문을 출력할 수 있다.
컨텍스트 관리자(218)는 사용자 상호작용의 장기 히스토리뿐 아니라 특정 쇼핑 미션에 대한 현재 사용자의 상호작용의 단기 메모리까지 추적함으로써 이러한 혼란을 방지할 수 있다. 멀티-턴 대화 내 프롬프트에 대한 대답은 반드시 고립된 사용자 어터런스인 것은 아니며 일반적으로 대화 내 이전 사용자 어터런스와 이전 프롬프트(존재한다면)와 맥락적으로 관련되어 있다. 따라서 지능형 개인 어시스턴트 시스템(106)은 사용자 대화에 적응되며, 추천될 관련 아이템을 찾는 데 더 성공적일 정제된 검색 질의를 만들기에 충분한 누적된 검색 제한사항을 야기할 수 있다.
그러나 일부 경우, NLU 구성요소(214)는 사용자가 이전 질의 미션을 포기했고 이제는 다른 것을 찾는 데 관심이 있다고 결정할 수 있다. 따라서 대화 관리자(216)는 일부 실시예에서 NLU 구성요소(214)로부터의 이러한 결정의 지시자를 수신할 수 있고 자신의 행동을 이에 따라 변경할 수 있다. 이러한 대화 관리자(216)의 행동은 가령 나중에 사용될 가능성을 위해 현재 검색 미션에 대한 상호작용을 저장하는 것 및 이전 검색 미션과 관련된 컨텍스트 정보는 전혀 사용하지 않고 현재 사용자 어터런스를 기초로 새로운 대화를 시작하는 것을 포함할 수 있다. 하나의 실시예에서, NLU 구성요소(214)는 새로운 사용자 관심의 주요 대상이 검출될 때 이러한 미션 변경이 발생했다고 결정할 수 있다.
도 10은 일부 실시예에 따르는 지식 그래프(808)를 도시한다. 지식 그래프(808)는 일반적으로 여기서는 타원으로 나타나는 복수의 노드를 나타내는 데이터베이스 또는 파일이다. 각각의 노드는 자연어 사용자 입력을 처리하여 아이템 추천을 생성하는 예시적 시나리오에서 아이템 카테고리, 아이템 속성, 또는 아이템 속성 값을 나타낼 수 있다. 이 예시에서, 아이템 카테고리는 "남성용 운동화", "자동차 및 트럭", 및 "여성용 운동화"를 포함한다. 각각의 아이템 카테고리에는 가령, 재고 추적 시스템 또는 지능형 개인 어시스턴트 시스템(106)에 의해 식별 번호가 할당됐을 수 있다.
이 예시에서의 지식 그래프(808)에서 나타나는 아이템 속성은 "제품 라인", "브랜드", "색상", 및 "스타일"을 포함한다. 아이템 속성은 종종 아이템 카테고리와 직접 연결되지만, 반드시 그럴 필요는 없다. 이 예시에서 지식 그래프(808)에서 나타나는 아이템 속성은 "에어 조단", "코비 브라이언트", "에어 포스 1", "아식스", "Nike", "뉴 발런스", "아디다스", "파란색", "흰색", "빨간색", "검은색", "금속성 검은색", "러닝화", "농구화", 및 "스니커즈"를 포함한다. 아이템 속성 값은 종종 아이템 속성과 직접 연결되지만, 반드시 그럴 필요는 없다.
지식 그래프(808) 노드들 간에 보이는 링크는 2개의 특정 노드 간 관계의 강도를 지시하는 연관된 상관 또는 연관 값을 가질 수 있는 방향성 에지이다. 지식 그래프(808)의 상관 값 중 일부가 도 10에 지시되어 있다. 상관 값은 다양한 방식으로 생성될 수 있으며 다양한 목적을 위해 사용될 수 있다.
예를 들어, 하나의 실시예에서, 상관 값은 구매될 수 있는 아이템의 재고로부터 얻어질 수 있다. 재고는 현재 또는 과거의 것일 수 있다. 판매자가 판매용 아이템을 리스팅할 때, 판매자는 하나 이상의 아이템 카테고리, 속성 및/또는 속성 값을, 아이템을 설명하며, 따라서 아이템을 구매하려 찾고 있는 사용자에 의해 제공될 수 있는 유용한 검색어인 메타데이터로서 특정할 수 있다. 일부 경우, 전자 시장은 가령, 판매자에게 이용 가능한 지정 아이템 카테고리 및 흔히 사용되는 설명어를 기술하는 가이드를 제공함으로써, 판매자의 아이템을 다양한 방식으로 분류할 수 있다.
예를 들어, 판매자는 판매할 신발을 가질 수 있고 이들이 아디다스가 만든 남성용 파란색 운동 러닝화라고 특정할 수 있다. 판매자는 시장에 아이템 카테고리는 "남성용 운동화"라고 특정할 수 있고, 판매자는 아이템 속성을, 가령, 아이템 속성의 리스트로부터 특정하도록 프롬프트될 수 있다. 또는, 전자 시장이 판마자가 복수의 아이템 속성 값을 제공했다고 식별하고, 이들 아이템 속성 값을 다양한 아이템 속성, 가령, 메타데이터에서 특정 가능성으로서 이들 값을 갖는 속성과 자동으로 관련시킬 수 있다. 판매자 또는 전자 시장은 상기 카테고리에 대해 하위 카테고리 또는 속성을 정의했기 때문에 전자 시장은 예를 들어, "남성용 운동화"가 실제로 더 넓은 카테고리인 "신발"의 하위 카테고리 또는 속성이라고 결정할 수 있다.
전자 시장은 주기적으로 판매될 수 있는 아이템의 자신의 재고를 분석하고 상기 재고를 지식 그래프(808)의 형태로 기술하는 요약 데이터를 제공할 수 있다. 이러한 방식으로, 예시적 지식 그래프(808)가 카테고리 "남성용 신발" 내 모든 재고 아이템 중, 아이템의 30퍼센트(또는 0.3)가 아이템 속성 "브랜드"에 의해 특징지어지고, 아이템의 20퍼센트(0.2)가 아이템 속성 "색상"에 의해 특징지어짐을 알릴 수 있다. 도시된 바와 같이, 아이템 속성 "제품 라인"에 의해 특징지어진 아이템들 중 20퍼센트(또는 0.2)가 "코비 브라이언트"의 아이템 속성 값을 갖고 10퍼센트(또는 0.1)가 "에어 포스 1"의 아이템 속성 값을 가진다. 따라서 이 실시예에서, 지식 그래프(808)는 이용 가능한 아이템의 실제 재고를 기재하는 항목을 포함할 수 있다.
수십만개의 구매 가능한 아이템을 갖는 매우 큰 전자 시장의 경우, 전체 아이템 재고, 특히, 임의의 특정 순간에서의 이의 상태의 상세한 분석이 계산상 비쌀 수 있다(computationally expensive). 따라서 이러한 분석은 가끔 또는 주기적으로만 수행될 수 있다. 통계 샘플링 방법이 또한 아이템 재고의 특징의 대략 추정치를 기술하는 지식 그래프(808)를 생성할 수 있다.
사용자 질의의 처리 동안, 사용자 질의로부터의 파싱된 입력 데이터 요소가 지식 그래프(808)의 차원에 대해 매칭되어, 사용자의 요구를 이용 가능한 아이템 공급과 매칭하는 데 도움이 될 수 있다. 지식그래프(808)의 차원은 구매 가능한 아이템을 기술하는 아이템 카테고리, 아이템 속성, 및 아이템 속성 값을 포함할 수 있다. 사용자가 남성용 운동화에 관심을 표한 경우, 사용자는 지능형 개인 어시스턴트 시스템(106)이 자신이 구매 가능한 아이템의 재고로부터 관련 아이템을 찾는 것을 도울 것이라고 기재한다. 구매 가능하지 않는 아이템을 찾는 것은 사용자가 쇼핑 전체에 대한 관심을 잃는 것을 초래할 수 있으므로 큰 우려가 된다. 따라서 상관 값이 특정 아이템 속성에 의해 기술되거나 특정 아이템 속성 값을 갖는 특정 아이템 카테고리 내 아이템의 상대 개수를 나타낼 수 있다. 상관 값은 조건부 확률, 가령, 특정 아이템 속성이 특정된다고 가정하면, 특정 아이템 속성 값이 특정될 확률은 얼마인지를 기초로 할 수 있다.
상이한 실시예에서, 지식 그래프(808)는 한 시간 주기 동안의 전자 시장과 모든 사용자의 과거 상호작용을 기초로 할 수 있다. 즉, 노드는 많은 이전 사용자가 자신의 어터런스로 제공한 검색어 또는 시장에서의 내비게이션 히스토리를 포함할 수 있다. 앞서 기재된 바와 같이 재고를 분석하는 것이 아니라, 이 방식은 사용자 행동, 가령, 구매자가 재고에서 관련 아이템을 찾기 위해 시장과 상호작용하는 중일 때 구매자가 무엇을 말하고 무엇을 하는지를 분석한다.
이 실시예에서, 도 10에 도시된 상관 값은 조건부 확률의 항으로 가장 우세하거나 빈번하게 발생하는 사용자 상호작용을 지시할 수 있다. 예를 들어 사용자가 여성용 운동화에 관심을 나타낸 경우, 지식 그래프(808)는 이러한 구매자 상호작용의 30퍼센트(또는 0.3)에서, 구매자는 "스타일"의 아이템 속성을 특정하고, 이러한 구매자 상호작용의 20퍼센트(또는 0.2)에서 구매자는 "브랜드"의 아이템 속성을 특정하며, 이러한 구매자 사용작용의 30퍼센트(0.3)에서, 구매자는 "색상"의 아이템 속성을 특정함을 지시할 수 있다. 따라서, 이용 가능한 재고와 무관하게, 지식 가이드(808)가 사용자의 검색 행동, 가령, 사용자가 관련 아이템을 찾기 위해 어떻게 시도하는가를 특징화한다.
이전 실시예에서처럼, 사용자 질의의 처리 동안, 사용자 질의로부터의 파싱된 입력 데이터 요소가 지식 그래프(808)의 차원에 대해 매칭되어 사용자의 요구를 아이템의 이용 가능한 공급과 매칭시키는 것을 도울 수 있다. 그러나 지식 그래프(808)의 차원은 이제, 사용자가 구매할 관련 아이템을 찾을 때 이전 사용자의 질의 입력에 의해 제공된 카테고리, 속성, 및 속성 값을 포함할 수 있다. 예를 들어 사용자가 여성용 운동화에 관심을 표현하는 경우, 지능형 개인 어시스턴트 시스템(106)은 타 사용자는 어떻게 구매 가능한 아이템 재고로부터 여성용 운동화 아이템 관련 아이템을 찾지 시작했는지를 결정함으로써 가장 잘 진행할 수 있다. 따라서 지식 그래프(808) 내 상관 값 또는 점수가 특정 카테고리, 특정 속성, 또는 특정 속성 값이 만족스러운 검색 결과를 이끄는 데 사용된 상대 횟수를 나타낼 수 있다. 다시 말하면 상관 값은 지식 그래프(808)에서 하나의 검색어에서 또 다른 검색어로 순회하는 사용자 상호작용 경로의 특정 부분이 얼마나 "다져졌는지"에 대한 척도를 효과적으로 나타낼 수 있다.
지식 그래프(808)가 형식화되는 방식에 무관하게, 사용자 입력어와 지식 그래프 차원(가령, 아이템 카테고리, 아이템 속성, 및 아이템 속성 값) 간 매칭이 사용되어 본래의 사용자 질의를 개선된 질의로 변환할 수 있다. 매칭은 예를 들어, 멀티-턴 대화에서 관련성 있는 검색 결과를 가장 잘 찾기 위해 사용자를 위해 생성되는 프롬프트가 존재하는 경우 어떤 프롬프트가 생성되어야 하는지를 결정하는 것을 도울 수 있다. 따라서 NLU 구성요소(214)는 이러한 목적으로 지식 그래프(808)로부터 대화 관리자(216)로 정보를 제공할 수 있다. 즉, NLU 구성요소(214)는 차원이 일부 관련성을 갖는 간결한 지식 그래프(808)를, 사용자 관심의 주요 대상, 사용자 의도, 및 관련 파라미터와 함께, 대화 관리자(216)에게 전달할 수 있다.
도 11a 및 11b는 일부 실시예에 따르는 아이템 카테고리, 일부 아이템 속성, 및 일부 아이템 속성 값을 갖는 간결한 지식 그래프(808)를 도시한다. 각각의 도면은 명료성을 위해 따로 따로 도시되고 설명되지만, 다 함께 두 도면에 공통적인 지식 그래프(808)를 지칭할 수 있다. 도 11a에서, 앞서 기재된 바와 같이 정규화되고 파싱된 사용자 질의가 사용자 관심의 주요 대상 "신발"에 대해 <color:red, brand:nike>의 아이템 속성/값 태그를 제공했다. 지식 그래프(808)는 "신발"과 "남성용 운동화" 간에 40퍼센트(0.4)의 상관관계가 있고, "남성용 운동화"와 "브랜드" 간에 40퍼센트(0.4)의 상관관계가 있으며, "남성용 운동화"와 "색상" 간에 20퍼센트(0.2)의 상관관계가 있음을 지시한다. 또한 "남성용 운동화"와 "제품 라인" 간에 30퍼센트(0.3)의 상관관계가 있으며 다양한 아이템 속성 값(가령, "에어 조단", "코비 브라이언트", 및 "에어 포스 1")에 대한 다양한 상관관계를 알 수 있다. 따라서 재고를 기초로 하거나 사용자 행동을 기초로 하거나에 무관하게, 미특정된 질의어 "남성용 운동화" 및 "제품 라인"이 성공적인 검색과 상당한 연관을 가진다. 따라서 대화 관리자(216)는 이들의 연관 또는 상관 값에 따라, 또는 지식 그래프(808) 계층 구조 내 이들의 상대적 위치에 따라, 또는 이 둘의 조합에 따라 사용자 프롬프트를 통해 이들 미특정된 가능성의 파라미터화를 순위화 및 우선순위화할 수 있다.
마찬가지로, 도 11b의 경우, 지식 그래프(808)는 "신발"과 "여성용 운동화" 간에 30퍼센트(0.3)의 상관관계가 있고, "여성용 운동화"와 "스타일" 간에 30퍼센트(0.4)의 상관관계가 있음을 지시한다. "여성용 운동화"와 "스타일" 모두 사용자에 의해 특정되지 않았으며 "스타일"에 대한 관련 아이템 속성 값(가령, "농구화", "러닝화", 및 "스니커즈")도 특정되지 않았다. 따라서 대화 관리자(216)는 이들의 등작 또는 상관 값에 따라, 또는 지식 그래프(808) 계층구조 내 이들의 상대적 위치에 따라, 또는 이 둘의 조합에 따라, 사용자 프롬프트를 통해 이들 미특정된 가능성의 파라미터화를 우선순위화할 수 있다.
한 가지 프롬프트 생성 전략으로, 대화 관리자(216)는 가장 넓은 카테고리부터 하위 카테고리로 또는 속성으로, 그 후 속성 값으로 진행하여 그 순서로 프롬프트 주제의 시퀀스를 결정할 수 있다. 즉, "신발"의 카테고리가 특정됐다고 가정하면, 대화 관리자(216)는 바로 사용자가 "남성용 운동화"에 관심이 있는지 또는 "여성용 운동화"에 관심이 있는지를 해결하도록 진행할 수 있는데, 왜냐하면 두 가능성이 지식 그래프(808) 내에서 가장 높은(또는 유일한) 이용 가능한 연관 강도를 갖기 때문이다. 이 계층구조에 의해 안내되는 검색 방식은 관련 아이템에 대해 적은 횟수 내지 0회 프롬프트 이하로 대답하기를 원하지 않는 사용자에게 매력적일 수 있다.
또 다른 프롬프트 생성 전략으로, 대화 관리자(216)는 지식 그래프(808)에서 나타나는 모든 비특정된 속성 및 속성 값 중에서 랜덤하게 프롬프트 주제를 선택할 수 있다. 이 방식이 다소 비지향적이지만, 사용자가 특정 쇼핑 미션을 수행 중이 아니라 재고를 브라우징하는 중일 때, 적절할 수 있다. 지능형 개인 어시스턴트 시스템(106)에 의한 채팅을 성가셔 하지 않는 사용자는 지식 그래프(808)의 가능성들을 어느 정도 순회하는 이러한 더 탐색적이거나 대화적 방식을 선호할 수 있다.
도 11a 및 11b에서, 추가 사용자 입력에 대한 후보 프롬프트가 사용자가 남성용 운동화와 여성용 운동화 중 어느 것에 더 관심이 있는지에 따라, 따라서 사용자가 특정 제품 라인과 스타일 중 어느 것에 관심이 있는지에 따라 선택될 수 있다. 지식 그래프(808)의 더 좁은 속성(이 경우 제품 라인 또는 스타일)이 각각의 후보가 처분되는 방식에 따라 어떤 상황에서는 사용자 프롬프트에 대한 더 나은 후보일 수 있다. 즉, 스타일과 제품 라인은 각각 동일하게 지식 그래프(808) 내 이들 각각 위에 있는 각자의 아이템 속성 또는 하위 카테고리와 연관되지만, 제품 라인 속성 값 가능성에 대해서는 이용 가능한 데이터가 더 많이 있다. 따라서 사용자가 에어 조단 신발에 관심이 있는지 여부를 묻는 프롬프트는 또한 묵시적으로 사용자가 특정 제품 라인 및 남성용 운동화에 관심이 있는지 묻는다. 따라서 사용자에 의한 단일 긍정문 또는 부정문이 한 번에 복수의 가능성(가령, 속성 및 속성 값)을 수락하거나 거절하는 용어로 사용자의 의도를 구별하는 데 도움이 될 수 있다.
도 12는 일부 실시예에 따르는 지능형 개인 어시스턴트 시스템(106)이 자연어 사용자 입력을 처리하여 제안 프롬프트를 생성하는 개요를 도시한다. 사용자에게로의 기민한(가령, 사용자에게 질문하지 않고 결정될 수 있는 정보를 제공하는) 프롬프트가 아닌 것은 일부 사용자를 성가시게 할 수 있다고 알려져 있기 때문에, 일부 실시예는 사용자에 의해 명시적으로 제공될 가능한 검색 제한의 필드를 좁히기 위해 추가 데이터를 사용할 수 있다. 예를 들어, NLU 구성요소(214)는 사용자가 빨간색 Nike 신발을 쇼핑하는 데 관심이 있다고 구별했고, 지식 그래프(808)는 (다른 것들 중에) 남성용 운동화와 여성용 운동화가 가능한 프롬프트 주제임을 지시한다.
그러나 묻지 않고 사용자가 남성용 운동화에 관심에 있는지 또는 여성용 운동화에 관심이 있는지를 지시하는 추가 데이터가 이용 가능할 수 있다. 전자 시장과의 현재 사용자의 상호작용 히스토리가 사용자의 구매의 대부분 또는 전부가 여성과 연관된 아이템에 대한 것이라고 지시할 수 있다. 이는 예컨대 현재 사용자가 또 다른 쇼핑 미션을 수행하는 여성이기 때문에, 또는 아마도 현재 사용자가 의도된 타깃 수신자가 여성인 선물 미션을 수행하기 때문일 수 있다. 또한 세계 지식 또는 그 밖의 다른 가능한 관련 외부 컨텍스트 정보가 대화 관리자(216)에 의한 프롬프트 가능성의 가중치를 조절할 수 있다. 예를 들어, 위치, 날씨, 비용, 문화, 및 상황과 관련된 외부 데이터가 최대 기민함(incisiveness)을 위해 다음 프롬프트의 결정을 조절하는 데 유사한 역할을 할 수 있다.
따라서 지능형 개인 어시스턴트 시스템(106)은 확인하기 위한 프롬프트를 생성하지 않고, 사용자는 남성용 운동화보다 여성용 운동화에 더 관심이 있을 수 있다고 결론 내릴 수 있다. 따라서 대화 관리자(216)는 처리된 사용자 입력 및 지식 그래프(808)를 기초로 다음의 가장 가능성 높은 기민한 프롬프트 주제로 진행할 수 있다. 도 11b의 예시에서 사용자가 여성용 운동화에 관심이 있고 브랜드 및 색상의 속성에 대해 이미 특정된 값을 가진다고 가정할 때, 최상의 후보 프롬프트는 미특정된 속성, 스타일에 관련된 것일 수 있다.
따라서 대화 관리자(216)는 사용자에게 "어느 스타일을 선호하십니까?"라고 단순하게 질문할 수 있다. 그러나 이 방식은 아이템 재고 데이터로부터이거나 지난 사용자 상호작용 데이터로부터이거나에 무관하게 지식 그래프(808) 내 아이템 속성 값과 관련된 추가 지식을 이용하지 않는다. 따라서 하나의 실시예에서, 대화 관리자는 지식 그래프(808) 내에서 이용 가능하거나 및/또는 지식 그래프(808) 내 이용 가능한 연관 값을 가질 수 있는 대안을 또한 서술하는 추가 사용자 입력을 위한 프롬프트를 생성할 수 있다.
예를 들어, 프롬프트(1202)는 대신 사용자에게 "어느 스타일을 선호하십니까, 예를 들면 스니커즈 또는 러닝화?"라고 물을 수 있다. 이러한 유형의 질문 프롬프트 형식은 성공적은 검색과 관련성 있을 수 있는 제안(가령, 재고 또는 지난 사용자 상호작용 행동으로 인한)을 사용자에게 알리고 추가 사용자 입력을 모을 수 있다. 지식 그래프 내 알려진 아이템 속성 모두 제안될 필요가 있는 것은 아니며 항목들 간 모든 방향성 에지가 특정된 점수 값을 가질 수는 없다. 앞서와 같이, 지능형 개인 어시스턴트 시스템(106)은 그 밖의 다른 데이터를 이용해 가능성들을 더 분별력 있는 것들로 거를 수 있다.
또한, 대화 관리자(216)는 대답으로 사용될 때 관련성 있는 검색 결과를 이끌 가능성이 높은 제안되는 정확한 사용자 입력 구문을 제공할 수도 있다. 예를 들어, 프롬프트(1202)는 사용자에게 "'스니커즈 스타일' 또는 '러닝화 스타일' 중 어느 것이 좋은가요?"라고 물을 수 있다. 이러한 구문 제안은 나머지 모든 미특정된 제한이 쉽게 처리되는 형태로 만드는 대답(특히, 구두 대답)을 이끌 수 있다(가령, "스니커즈 스타일"은 스니커즈의 속성 값과 스타일의 속성을 모두 특정한다).
또 다른 예를 들면, 대화 관리자(216)는 사용자 입력의 분석 및 그 밖의 다른 데이터로부터, 제안성 아이템 추천을 만드는 프롬프트를 생성하기에 충분한 데이터를 가질 수 있다. 이 경우, 대화 관리자는 사용자가 스니커즈에 관심이 있을 수 있다고 지시하는 데이터를 가질 수 있다. 직접 확인 받기 위한 질문 유형의 프롬프트를 이용하지 않고, 대화 관리자(216)는 검색을 진행하고 몇 가지 가능한 관련성 있는 재고 아이템의 이미지 및/또는 텍스트를 사용자에게 출력할 수 있다. 따라서 프롬프트(1204)는 "이러한 스니커즈를 찾았습니다:"라고 말하고 구매 가능한 특정 아이템 또는 아이템 그룹의 이미지(또는 더 일반적으로 이들을 특징화하는 이미지)를 보여준다. 이 방식에 의해 덜 제한된 질의를 제공한 사용자가 단일 제안 유형 프롬프트를 긍정 또는 부정하는 것이 용이하다. 긍정은 예를 들어 구두 대답이거나 디스플레이된 특정 아이템의 선택일 수 있다.
또 다른 예시에서, 대화 관리자(216)는 검증 서술문, 가령, "빨간색 Nike 신발을 찾기를 원하다고 이해했습니다" 또는 "네 빨간색 Nike 운동화를 찾는 것을 도와줄 수 있습니다"를 포함하는 프롬프트를 선택하여, 사용자 관심의 주요 대상의 추가 확인 및 계시적 언급을 제공할 수 있다. 이 프롬프트 유형에 의해 사용자는 혼란을 초래할 수 있는 질문 프롬프트를 묻지 않고는 지능형 개인 어시스턴스 시스템(106)이 자동으로 해결할 수 없었던 모호함을 해결할 수 있다. 이 모호함은 예를 들어 사용자 텍스트 입력에 일반적이지 않은 많은 철자 오류가 있거나, 사용자의 음성이 잡음 많은 환경에서 수신되어, 정규화가 잘 작동하지 않았던 경우에 발생할 수 있다.
검증 서술문 유형은 또한 사용자가 사용자 관심의 변화를 지시하는 어터런스를 제공했을 때 특히 유용할 수 있다. 즉, 봇은 사용자가 새로운 검색 미션이 시작됐음을 확인하고, 이전 검색 미션의 컨텍스트는 더는 적용되지 않는다고 확인할 수 있도록 검증 서술문을 만들 수 있다. 예를 들어, 이전에 빨간색 Nike 운동화를 찾았던 봇이 우산에 대한 사용자 입력에 "좋아요 지금부터 빨간색 Nike 운동화 대신 우산을 찾아봅시다"라고 응답할 수 있다. 사용자가 관심을 변경하도록 의도하지 않았던 경우, 사용자가 봇을 "다시 타깃으로" 가져갈 관련 질의어를 요약한 더 상세한 대답을 제공할 좋은 기회이다.
또 다른 예시에서, 대화 관리자(216)는 모든 특정된 검색 제한을 충족하는 어떠한 아이템도 재고에서 발견되지 않았음을 지시할 뿐 아니라 특정된 검색 제한 중 일부 또는 대부분을 충족하는 아이템이 검색을 통해 이용 가능하다고 발견됐음을 지시하는 프롬프트를 생성할 수 있다. 예를 들어, 사용자 질의의 빨간 Nike 신발이 재고에 없는 경우, 대화 관리자(216)는 "빨간 Nike 신발이 현재 이용 가능하지 않지만, 파란색 또는 초록색의 Nike 신발이 현재 이용 가능합니다"라고 말할 수 있다. 따라서 이 프롬프트 방식은 사용자가 검색에 완전히 관심을 잃게 할 수 있는 막다른 검색 결과를 피하고 사용자가 성공할 가능성이 높을 것으로 이미 결정된 다소 넓어지거나 수정된 검색을 수행하도록 유도한다. 대화 관리자(216)는 사용자가 관련 아이템 속성 값, 아이템 속성, 또는 심지어 아이템 카테고리를 통해 "되짚고(backtrack)" 검색을 계속하도록 유도할 수 있다. 이 프롬프트 생성 방식은 잘 알려져 있지 않은 선호를 갖는 타깃 수신자를 위해 선물을 브라우징 또는 검색 중인 사람에게 특히 유용할 수 있다.
마찬가지로, 사용자가 검은 Nike 신발을 찾는 중이지만 검색에 의해 빨간색, 파란색, 및 초록색 Nike 신발만 재고에서 이용 가능하다고 결정된 경우, 사용자가 검은 Nike 신발에 관심이 있는 경우 사용자에게 묻는 프롬프트는 역효과를 낳고 실제로 성가신 일이다. 따라서 하나의 실시예에서, 사용자의 대답에 의해 확정될 때 이러한 프롬프트가 재고에 이용 가능하지 않은 아이템을 도출할 경우 대화 관리자(216)에 의해 어떠한 유형의 프롬프트도 생성되지 않는다. 즉, 지능형 온라인 개인 어시스턴트(106)의 이 버전은 실제로 사용자를 막다른 길로 몰지 않는다.
도 13은 일부 실시예에 따라 자연어 사용자 입력을 처리하여 아이템 추천을 생성하는 방법의 흐름도를 도시한다. 이 방법은 앞서 기재된 구조적 요소를 통해서뿐 아니라 컴퓨팅 기계에서 프로세서에 의해 실행되는 명령을 통해서도 구현될 수 있다. (1302)에서, 방법은 사용자로부터 입력 데이터를 수신할 수 있다. (1304)에서, 방법은 수신된 입력 데이터를 정규화할 수 있다. (1306)에서, 방법은 정규화된 입력 데이터를 파싱하여, 가령, 파싱된 입력 데이터로부터 사용자 관심의 주요 대상 및 관련 파라미터를 식별할 수 있다.
(1308)에서, 방법은 파싱된 입력 데이터를 분석하여 지식 그래프(808)의 차원과 주요 대상 및 관련 파라미터 간 매칭을 찾을 수 있다. (1310)에서, 방법은 분석 결과를 검색을 위한 형식적 질의로 집합할 수 있다. (1312)에서, 방법은 선택적으로 사용자로부터의 추가 입력 데이터를 위한 하나 이상의 사용자 프롬프트를 생성할 수 있다.
본 발명이 특정 실시예를 참조하여 기재되었지만, 개시된 본 발명의 광의 범위 내에서 이들 실시예의 다양한 수정 및 변경이 가능함이 자명할 것이다. 따라서 명세서 및 도면은 한정이 아니라 설명으로 간주되어야 한다. 본 명세서의 일부를 형성하는 첨부된 도면은 본 발명이 실시될 수 있는 특정 실시예를 한정이 아니라 설명으로 도시한다. 설명되는 실시예는 해당 분야의 통상의 기술자가 본 명세서에 개시된 설명을 실시할 수 있을 정도로 충분히 상세히 기재되었다. 본 발명의 범위 내에서 구조적 및 논리적 치환 및 변경이 이뤄질 수 있도록 그 밖의 다른 실시예가 사용되고 이로부터 파생될 수 있다. 따라서 본 명세서는 한정으로 간주되어서는 안 되고 다양한 실시예의 범위는 이하의 청구항 및 이러한 청구항에 수반되는 전체 범위의 균등예에 의해서만 정의된다.
본 발명의 이러한 실시예는, 실제로 둘 이상이 개시된 경우 본 출원의 범위를 임의의 하나의 방법 또는 발명 개념으로 자발적으로 제한하려는 의도가 아니고 단지 편의상, 본 명세서에서, 용어 "발명'으로 개별적으로 및/또는 총체적으로 지칭된다. 따라서 특정 실시예가 본 명세서에서 도시되고 기재되더라고, 동일한 목적을 이루기 위해 계산되는 임의의 배열이 도시된 특정 실시예에 치환될 수 있음을 알아야 한다. 본 개시는 다양한 실시예의 임의의 그리고 모든 변형 또는 변경을 포함하도록 의도됐다. 상기의 실시예의 조합 및 본 명세서에 특정하게 기재되지 않은 그 밖의 다른 실시예가 상기 기재를 읽은 해당 분야의 통상의 기술자에게 자명할 것이다.
이하의 넘버링된 예시가 실시예이다.
1. 멀티-턴 대화(multi-turn dialog)에서 추가 자연어 입력을 위한 프롬프트를 생성하기 위한 방법으로서,
지식 그래프 내 차원과 사용자 질의 데이터의 분석의 결과 간 순위화된 매칭을 수신하는 단계 - 상기 지식 그래프 차원은 카테고리, 속성, 및 속성 값 중 적어도 하나를 포함하며, 상기 결과는 사용자 관심의 주요 대상(dominant object), 사용자 의도, 및 관련 파라미터를 포함함 - ,
재고를 검색하고 검색 결과를 지식 그래프에 포함시키는 단계,
상기 분석의 결과와 상기 주요 대상에 직접적으로 또는 간접적으로 연결된 지식 그래프 차원 간 매칭의 사전 지정된 충분 레벨이 획득되었는지 여부를 결정하는 단계, 및
매칭의 상기 충분 레벨이 획득되지 않은 경우, 적어도 하나의 미특정된 연결된 지식 그래프 차원을 기초로 질문 유형 프롬프트를 생성 및 출력하는 단계를 포함하는,
추가 자연어 입력을 위한 프롬프트를 생성하기 위한 방법.
2. 제1 예시에 있어서,
어떠한 대답도 만족스러운 검색 결과를 도출할 수 없는 경우 질문 프롬프트를 억제(suppress)하는 단계를 더 포함하는,
추가 자연어 입력을 위한 프롬프트를 생성하기 위한 방법.
3. 제1 예시 또는 제2 예시에 있어서,
상기 질문 프롬프트는 연관 강도 값을 기초로 연결된 지식 그래프 차원의 선택을 제안하는,
추가 자연어 입력을 위한 프롬프트를 생성하기 위한 방법.
4. 제1 예시 내지 제3 예시 중 어느 한 예시에 있어서,
상기 질문 프롬프트는 연결된 지식 그래프 차원들 중 적어도 하나를 기초로 제안된 대답 구문을 제공하는,
추가 자연어 입력을 위한 프롬프트를 생성하기 위한 방법.
5. 제1 예시 내지 제4 예시 중 어느 한 예시에 있어서,
모든 사용자 검색 제한을 충족하는 지식 그래프 차원이 없는 경우 모든 사용자 검색 제한을 충족하는 것은 아닌 지식 그래프 차원을 알리는 상이한 질문 프롬프트를 대신 생성하는 단계를 더 포함하는,
추가 자연어 입력을 위한 프롬프트를 생성하기 위한 방법.
6. 제1 예시 내지 제5 예시 중 어느 한 예시에 있어서,
매칭의 상기 충분 레벨이 획득되지 않은 경우, 지식 그래프 요소 연관 강도 값, 및 지식 그래프 차원 유형의 지정 순서 중 적어도 하나를 기초로 연결된 미특정 지식 그래프 차원에 대한 질문 유형 프롬프트를 생성 및 출력하는 단계를 더 포함하는,
추가 자연어 입력을 위한 프롬프트를 생성하기 위한 방법.
7. 제1 예시 내지 제6 예시 중 어느 한 예시에 있어서,
매칭의 상기 충분 레벨이 획득되지 않은 경우, 긍정 또는 부정 유형 대답에 의해 얻어지는 연결된 지식 그래프 데이터 요소의 심도, 및 미특정된 지식 그래프 차원 선택의 랜덤 정도(degree of randomness) 중 적어도 하나를 기초로 연결된 미특정된 지식 그래프 차원에 대한 질문 유형 프롬프트를 생성 및 출력하는 단계를 더 포함하는,
추가 자연어 입력을 위한 프롬프트를 생성하기 위한 방법.
8. 명령의 세트가 내장된 컴퓨터 판독형 저장 매체로서, 상기 명령은 컴퓨터의 하나 이상의 프로세서에 의해 실행될 때, 상기 컴퓨터로 하여금, 멀티-턴 대화에서 추가 자연어 입력을 위한 프롬프트를 생성하기 위한 동작을 실행하게 하며, 상기 동작은
지식 그래프 내 차원과 사용자 질의 데이터의 분석의 결과 간 순위화된 매칭을 수신하는 동작 - 상기 지식 그래프 차원은 카테고리, 속성, 및 속성 값 중 적어도 하나를 포함하며, 상기 결과는 사용자 관심의 주요 대상(dominant object), 사용자 의도, 및 관련 파라미터를 포함함 - ,
재고를 검색하고 검색 결과를 지식 그래프에 포함시키는 동작,
상기 분석의 결과와 상기 주요 대상에 직접적으로 또는 간접적으로 연결된 지식 그래프 차원 간 매칭의 사전 지정된 충분 레벨이 획득되었는지 여부를 결정하는 동작, 및
매칭의 상기 충분 레벨이 획득되지 않은 경우, 적어도 하나의 미특정된 연결된 지식 그래프 차원을 기초로 질문 유형 프롬프트를 생성 및 출력하는 동작을 포함하는,
컴퓨터 판독형 저장 매체.
9. 제8 예시에 있어서,
어떠한 대답도 만족스러운 검색 결과를 도출할 수 없는 경우 질문 프롬프트를 억제(suppress)하는 동작을 더 포함하는,
컴퓨터 판독형 저장 매체.
10. 제8 예시 또는 제9 예시에 있어서,
상기 질문 프롬프트는 연관 강도 값을 기초로 연결된 지식 그래프 차원의 선택을 제안하는,
컴퓨터 판독형 저장 매체.
11. 제8 예시 내지 제10 예시 중 어느 한 예시에 있어서,
상기 질문 프롬프트는 연결된 지식 그래프 차원들 중 적어도 하나를 기초로 제안된 대답 구문을 제공하는,
컴퓨터 판독형 저장 매체.
12. 제8 예시 내지 제11 예시 중 어느 한 예시에 있어서,
모든 사용자 검색 제한을 충족하는 지식 그래프 차원이 없는 경우 모든 사용자 검색 제한을 충족하는 것은 아닌 지식 그래프 차원을 알리는 상이한 질문 프롬프트를 대신 생성하는 동작을 더 포함하는,
컴퓨터 판독형 저장 매체.
13. 제8 예시 내지 제12 예시 중 어느 한 예시에 있어서,
매칭의 상기 충분 레벨이 획득되지 않은 경우, 지식 그래프 요소 연관 강도 값, 및 지식 그래프 차원 유형의 지정 순서 중 적어도 하나를 기초로 연결된 미특정 지식 그래프 차원에 대한 질문 유형 프롬프트를 생성 및 출력하는 동작을 더 포함하는,
컴퓨터 판독형 저장 매체.
14. 제8 예시 내지 제13 예시 중 어느 한 예시에 있어서,
매칭의 상기 충분 레벨이 획득되지 않은 경우, 긍정 또는 부정 유형 대답에 의해 얻어지는 연결된 지식 그래프 데이터 요소의 심도, 및 미특정된 지식 그래프 차원 선택의 랜덤 정도(degree of randomness) 중 적어도 하나를 기초로 연결된 미특정된 지식 그래프 차원에 대한 질문 유형 프롬프트를 생성 및 출력하는 동작을 더 포함하는,
컴퓨터 판독형 저장 매체.
15. 멀티-턴 대화에서 추가 자연어 입력을 위한 프롬프트를 생성하기 위한 시스템으로서,
지식 그래프 내 차원과 사용자 질의 데이터의 분석의 결과 간 순위화된 매칭을 제공하도록 구성된 자연어 이해 구성요소 - 상기 지식 그래프 차원은 카테고리, 속성, 및 속성 값 중 적어도 하나씩을 포함하며, 상기 결과는 사용자 관심의 주요 대상(dominant object), 사용자 의도, 및 관련 파라미터를 포함함 - ,
재고를 검색하고 검색 결과를 지식 그래프에 포함시키도록 구성된 검색 구성요소,
상기 분석의 결과와 상기 주요 대상에 직접적으로 또는 간접적으로 연결된 지식 그래프 차원 간 매칭의 사전 지정된 충분 레벨이 획득되었는지 여부를 결정하도록 구성된 대화 관리자 구성요소를 포함하며,
매칭의 상기 충분 레벨이 획득되지 않은 경우, 대화 관리자가 적어도 하나의 미특정된 연결된 지식 그래프 차원을 기초로 질문 유형 프롬프트를 생성 및 출력하는,
추가 자연어 입력을 위한 프롬프트를 생성하기 위한 시스템.
16. 제15 예시에 있어서,
어떠한 대답도 만족스러운 검색 결과를 도출할 수 없는 경우 상기 질문 프롬프트는 억제되는,
추가 자연어 입력을 위한 프롬프트를 생성하기 위한 시스템.
17. 제15 예시 또는 제16 예시에 있어서,
상기 질문 프롬프트는 연관 강도 값을 기초로 연결된 지식 그래프 차원의 선택을 제안하는,
추가 자연어 입력을 위한 프롬프트를 생성하기 위한 시스템.
18. 제15 예시 내지 제17 예시 중 어느 한 예시에 있어서,
상기 질문 프롬프트는 연결된 지식 그래프 차원들 중 적어도 하나를 기초로 제안된 대답 구문을 제공하는,
추가 자연어 입력을 위한 프롬프트를 생성하기 위한 시스템.
19. 제15 예시 내지 제18 예시 중 어느 한 예시에 있어서,
모든 사용자 검색 제한을 충족하는 지식 그래프 차원이 없는 경우 모든 사용자 검색 제한을 충족하는 것은 아닌 지식 그래프 차원을 알리는 상이한 질문 프롬프트를 상기 대화 관리자 구성요소가 대신 생성하는,
추가 자연어 입력을 위한 프롬프트를 생성하기 위한 시스템.
20. 제15 예시 내지 제19 예시 중 어느 한 예시에 있어서,
매칭의 상기 충분 레벨이 획득되지 않은 경우, 지식 그래프 요소 연관 강도 값, 지식 그래프 차원 유형의 지정 순서, 긍정 또는 부정 유형 대답에 의해 얻어지는 연결된 지식 그래프 데이터 요소의 심도, 및 미특정된 지식 그래프 차원 선택의 랜덤 정도(degree of randomness) 중 적어도 하나를 기초로 연결된 미특정 지식 그래프 차원에 대한 질문 유형 프롬프트를 상기 대화 관리자 구성요소가 생성 및 출력하는,
추가 자연어 입력을 위한 프롬프트를 생성하기 위한 시스템.
21. 컴퓨터의 하나 이상의 프로세서에 의해 실행될 때, 컴퓨터로 하여금 제 예시 내지 제7 예시 중 어느 한 항에 따르는 방법을 수행하게 하는 명령의 세트를 지니는 기계 판독형 매체.

Claims (21)

  1. 멀티-턴 대화(multi-turn dialog)에서 추가 자연어 입력을 위한 프롬프트를 생성하기 위한 방법으로서,
    지식 그래프 내 차원과 사용자 질의 데이터의 분석의 결과 간 순위화된 매칭을 수신하는 단계 - 상기 지식 그래프 차원은 카테고리, 속성, 및 속성 값 중 적어도 하나를 포함하며, 상기 결과는 사용자 관심의 주요 대상(dominant object), 사용자 의도, 및 관련 파라미터를 포함함 - ,
    재고를 검색하고 검색 결과를 지식 그래프에 포함시키는 단계,
    상기 분석의 결과와 상기 주요 대상에 직접적으로 또는 간접적으로 연결된 지식 그래프 차원 간 매칭의 사전 지정된 충분 레벨이 획득되었는지 여부를 결정하는 단계, 및
    매칭의 상기 충분 레벨이 획득되지 않은 경우, 적어도 하나의 미특정된 연결된 지식 그래프 차원을 기초로 질문 유형 프롬프트를 생성 및 출력하는 단계를 포함하는,
    추가 자연어 입력을 위한 프롬프트를 생성하기 위한 방법.
  2. 제1항에 있어서,
    어떠한 대답도 만족스러운 검색 결과를 도출할 수 없는 경우 상기 질문 유형 프롬프트를 억제(suppress)하는 단계를 더 포함하는,
    추가 자연어 입력을 위한 프롬프트를 생성하기 위한 방법.
  3. 제1항에 있어서,
    상기 질문 유형 프롬프트는 연관 강도 값을 기초로 연결된 지식 그래프 차원의 선택을 제안하는,
    추가 자연어 입력을 위한 프롬프트를 생성하기 위한 방법.
  4. 제1항에 있어서,
    상기 질문 유형 프롬프트는 연결된 지식 그래프 차원들 중 적어도 하나를 기초로 제안된 대답 구문을 제공하는,
    추가 자연어 입력을 위한 프롬프트를 생성하기 위한 방법.
  5. 제1항에 있어서,
    모든 사용자 검색 제한을 충족하는 지식 그래프 차원이 없는 경우 모든 사용자 검색 제한을 충족하는 것은 아닌 지식 그래프 차원을 알리는 상이한 질문 유형 프롬프트를 대신 생성하는 단계를 더 포함하는,
    추가 자연어 입력을 위한 프롬프트를 생성하기 위한 방법.
  6. 제1항에 있어서,
    매칭의 상기 충분 레벨이 획득되지 않은 경우, 지식 그래프 요소 연관 강도 값, 및 지식 그래프 차원 유형의 지정 순서 중 적어도 하나를 기초로 연결된 미특정 지식 그래프 차원에 대한 질문 유형 프롬프트를 생성 및 출력하는 단계를 더 포함하는,
    추가 자연어 입력을 위한 프롬프트를 생성하기 위한 방법.
  7. 제1항에 있어서,
    매칭의 상기 충분 레벨이 획득되지 않은 경우, 긍정 또는 부정 유형 대답에 의해 얻어지는 연결된 지식 그래프 데이터 요소의 심도, 및 미특정된 지식 그래프 차원 선택의 랜덤 정도(degree of randomness) 중 적어도 하나를 기초로 연결된 미특정된 지식 그래프 차원에 대한 질문 유형 프롬프트를 생성 및 출력하는 단계를 더 포함하는,
    추가 자연어 입력을 위한 프롬프트를 생성하기 위한 방법.
  8. 명령의 세트가 내장된 컴퓨터 판독형 저장 매체로서,
    상기 명령은 컴퓨터의 하나 이상의 프로세서에 의해 실행될 때, 상기 컴퓨터로 하여금, 멀티-턴 대화에서 추가 자연어 입력을 위한 프롬프트를 생성하기 위한 동작을 실행하게 하며,
    상기 동작은
    지식 그래프 내 차원과 사용자 질의 데이터의 분석의 결과 간 순위화된 매칭을 수신하는 동작 - 상기 지식 그래프 차원은 카테고리, 속성, 및 속성 값 중 적어도 하나를 포함하며, 상기 결과는 사용자 관심의 주요 대상(dominant object), 사용자 의도, 및 관련 파라미터를 포함함 - ,
    재고를 검색하고 검색 결과를 지식 그래프에 포함시키는 동작,
    상기 분석의 결과와 상기 주요 대상에 직접적으로 또는 간접적으로 연결된 지식 그래프 차원 간 매칭의 사전 지정된 충분 레벨이 획득되었는지 여부를 결정하는 동작, 및
    매칭의 상기 충분 레벨이 획득되지 않은 경우, 적어도 하나의 미특정된 연결된 지식 그래프 차원을 기초로 질문 유형 프롬프트를 생성 및 출력하는 동작을 포함하는,
    컴퓨터 판독형 저장 매체.
  9. 제8항에 있어서,
    어떠한 대답도 만족스러운 검색 결과를 도출할 수 없는 경우 상기 질문 유형 프롬프트를 억제(suppress)하는 동작을 더 포함하는,
    컴퓨터 판독형 저장 매체.
  10. 제8항에 있어서,
    상기 질문 유형 프롬프트는 연관 강도 값을 기초로 연결된 지식 그래프 차원의 선택을 제안하는,
    컴퓨터 판독형 저장 매체.
  11. 제8항에 있어서,
    상기 질문 유형 프롬프트는 연결된 지식 그래프 차원들 중 적어도 하나를 기초로 제안된 대답 구문을 제공하는,
    컴퓨터 판독형 저장 매체.
  12. 제8항에 있어서,
    모든 사용자 검색 제한을 충족하는 지식 그래프 차원이 없는 경우 모든 사용자 검색 제한을 충족하는 것은 아닌 지식 그래프 차원을 알리는 상이한 질문 유형 프롬프트를 대신 생성하는 동작을 더 포함하는,
    컴퓨터 판독형 저장 매체.
  13. 제8항에 있어서,
    매칭의 상기 충분 레벨이 획득되지 않은 경우, 지식 그래프 요소 연관 강도 값, 및 지식 그래프 차원 유형의 지정 순서 중 적어도 하나를 기초로 연결된 미특정 지식 그래프 차원에 대한 질문 유형 프롬프트를 생성 및 출력하는 동작을 더 포함하는,
    컴퓨터 판독형 저장 매체.
  14. 제8항에 있어서,
    매칭의 상기 충분 레벨이 획득되지 않은 경우, 긍정 또는 부정 유형 대답에 의해 얻어지는 연결된 지식 그래프 데이터 요소의 심도, 및 미특정된 지식 그래프 차원 선택의 랜덤 정도(degree of randomness) 중 적어도 하나를 기초로 연결된 미특정된 지식 그래프 차원에 대한 질문 유형 프롬프트를 생성 및 출력하는 동작을 더 포함하는,
    컴퓨터 판독형 저장 매체.
  15. 멀티-턴 대화에서 추가 자연어 입력을 위한 프롬프트를 생성하기 위한 시스템으로서,
    지식 그래프 내 차원과 사용자 질의 데이터의 분석의 결과 간 순위화된 매칭을 제공하도록 구성된 자연어 이해 구성요소 - 상기 지식 그래프 차원은 카테고리, 속성, 및 속성 값 중 적어도 하나씩을 포함하며, 상기 결과는 사용자 관심의 주요 대상(dominant object), 사용자 의도, 및 관련 파라미터를 포함함 - ,
    재고를 검색하고 검색 결과를 지식 그래프에 포함시키도록 구성된 검색 구성요소,
    상기 분석의 결과와 상기 주요 대상에 직접적으로 또는 간접적으로 연결된 지식 그래프 차원 간 매칭의 사전 지정된 충분 레벨이 획득되었는지 여부를 결정하도록 구성된 대화 관리자 구성요소를 포함하며,
    매칭의 상기 충분 레벨이 획득되지 않은 경우, 대화 관리자가 적어도 하나의 미특정된 연결된 지식 그래프 차원을 기초로 질문 유형 프롬프트를 생성 및 출력하는,
    추가 자연어 입력을 위한 프롬프트를 생성하기 위한 시스템.
  16. 제15항에 있어서,
    어떠한 대답도 만족스러운 검색 결과를 도출할 수 없는 경우 상기 질문 유형 프롬프트는 억제되는,
    추가 자연어 입력을 위한 프롬프트를 생성하기 위한 시스템.
  17. 제15항에 있어서,
    상기 질문 유형 프롬프트는 연관 강도 값을 기초로 연결된 지식 그래프 차원의 선택을 제안하는,
    추가 자연어 입력을 위한 프롬프트를 생성하기 위한 시스템.
  18. 제15항에 있어서,
    상기 질문 유형 프롬프트는 연결된 지식 그래프 차원들 중 적어도 하나를 기초로 제안된 대답 구문을 제공하는,
    추가 자연어 입력을 위한 프롬프트를 생성하기 위한 시스템.
  19. 제15항에 있어서,
    모든 사용자 검색 제한을 충족하는 지식 그래프 차원이 없는 경우 모든 사용자 검색 제한을 충족하는 것은 아닌 지식 그래프 차원을 알리는 상이한 질문 유형 프롬프트를 상기 대화 관리자 구성요소가 대신 생성하는,
    추가 자연어 입력을 위한 프롬프트를 생성하기 위한 시스템.
  20. 제15항에 있어서,
    매칭의 상기 충분 레벨이 획득되지 않은 경우, 지식 그래프 요소 연관 강도 값, 지식 그래프 차원 유형의 지정 순서, 긍정 또는 부정 유형 대답에 의해 얻어지는 연결된 지식 그래프 데이터 요소의 심도, 및 미특정된 지식 그래프 차원 선택의 랜덤 정도(degree of randomness) 중 적어도 하나를 기초로 연결된 미특정 지식 그래프 차원에 대한 질문 유형 프롬프트를 상기 대화 관리자 구성요소가 생성 및 출력하는,
    추가 자연어 입력을 위한 프롬프트를 생성하기 위한 시스템.
  21. 컴퓨터의 하나 이상의 프로세서에 의해 실행될 때, 컴퓨터로 하여금 청구항 제1항 내지 제7항 중 어느 한 항에 따르는 방법을 수행하게 하는 명령의 세트를 지니는 기계 판독형 저장 매체.
KR1020197007548A 2016-08-16 2017-08-10 다음 사용자 프롬프트 유형 선택하기 KR102197023B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020207037188A KR102395988B1 (ko) 2016-08-16 2017-08-10 다음 사용자 프롬프트 유형 선택하기

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/238,666 US20180052913A1 (en) 2016-08-16 2016-08-16 Selecting next user prompt types in an intelligent online personal assistant multi-turn dialog
US15/238,666 2016-08-16
PCT/US2017/046243 WO2018034928A1 (en) 2016-08-16 2017-08-10 Selecting next user prompt types

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020207037188A Division KR102395988B1 (ko) 2016-08-16 2017-08-10 다음 사용자 프롬프트 유형 선택하기

Publications (2)

Publication Number Publication Date
KR20190039572A KR20190039572A (ko) 2019-04-12
KR102197023B1 true KR102197023B1 (ko) 2020-12-30

Family

ID=61191862

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020207037188A KR102395988B1 (ko) 2016-08-16 2017-08-10 다음 사용자 프롬프트 유형 선택하기
KR1020197007548A KR102197023B1 (ko) 2016-08-16 2017-08-10 다음 사용자 프롬프트 유형 선택하기

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020207037188A KR102395988B1 (ko) 2016-08-16 2017-08-10 다음 사용자 프롬프트 유형 선택하기

Country Status (7)

Country Link
US (1) US20180052913A1 (ko)
EP (1) EP3500949A4 (ko)
JP (1) JP6806879B2 (ko)
KR (2) KR102395988B1 (ko)
CN (1) CN109716334B (ko)
AU (1) AU2017312818B2 (ko)
WO (1) WO2018034928A1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210018318A (ko) * 2016-08-16 2021-02-17 이베이 인크. 다음 사용자 프롬프트 유형 선택하기
US11004131B2 (en) 2016-10-16 2021-05-11 Ebay Inc. Intelligent online personal assistant with multi-turn dialog based on visual search
US11604951B2 (en) 2016-10-16 2023-03-14 Ebay Inc. Image analysis and prediction based visual search
US11748978B2 (en) 2016-10-16 2023-09-05 Ebay Inc. Intelligent online personal assistant with offline visual search database

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10412076B2 (en) * 2016-09-30 2019-09-10 Facebook, Inc. Identifying users based on federated user identifiers
US11200273B2 (en) 2016-10-16 2021-12-14 Ebay Inc. Parallel prediction of multiple image aspects
US10970768B2 (en) 2016-11-11 2021-04-06 Ebay Inc. Method, medium, and system for image text localization and comparison
US10758159B2 (en) * 2017-01-03 2020-09-01 Sensie, LLC Measuring somatic response to stimulus utilizing a mobile computing device
US10270746B2 (en) 2017-01-25 2019-04-23 Facebook, Inc. People-based user synchronization within an online system
US11151992B2 (en) 2017-04-06 2021-10-19 AIBrain Corporation Context aware interactive robot
US10839017B2 (en) * 2017-04-06 2020-11-17 AIBrain Corporation Adaptive, interactive, and cognitive reasoner of an autonomous robotic system utilizing an advanced memory graph structure
US10963493B1 (en) 2017-04-06 2021-03-30 AIBrain Corporation Interactive game with robot system
US10929759B2 (en) 2017-04-06 2021-02-23 AIBrain Corporation Intelligent robot software platform
US10810371B2 (en) 2017-04-06 2020-10-20 AIBrain Corporation Adaptive, interactive, and cognitive reasoner of an autonomous robotic system
EP3561686A1 (en) * 2018-04-23 2019-10-30 QlikTech International AB Adaptive analytics user interfaces
EP3576084B1 (de) * 2018-05-29 2020-09-30 Christoph Neumann Effiziente dialoggestaltung
US11170032B2 (en) * 2018-10-03 2021-11-09 Walmart Apollo, Llc Method and apparatus for determining responses to digital inquiry related questions
GB201818234D0 (en) 2018-11-08 2018-12-26 Polyal A dialogue system and a dialogue method
GB201818237D0 (en) * 2018-11-08 2018-12-26 Polyal A dialogue system, a dialogue method, a method of generating data for training a dialogue system, a system for generating data for training a dialogue system
KR20200094853A (ko) 2019-01-25 2020-08-10 삼성전자주식회사 전자 장치 및 이의 제어 방법
CN109976743B (zh) * 2019-04-09 2022-07-12 苏州浪潮智能科技有限公司 一种代码提示的方法及装置
CN110046227B (zh) * 2019-04-17 2023-07-18 腾讯科技(深圳)有限公司 对话系统的配置方法、交互方法、装置、设备和存储介质
JP7229847B2 (ja) * 2019-05-13 2023-02-28 株式会社日立製作所 対話装置、対話方法、及び対話コンピュータプログラム
US11057320B2 (en) * 2019-06-27 2021-07-06 Walmart Apollo, Llc Operation for multiple chat bots operation in organization
US11929066B2 (en) * 2019-10-08 2024-03-12 PwC Product Sales LLC Intent-based conversational knowledge graph for spoken language understanding system
US10970493B1 (en) * 2019-10-18 2021-04-06 Clinc, Inc. Systems and methods for slot relation extraction for machine learning task-oriented dialogue systems
CN113254756B (zh) * 2020-02-12 2024-03-26 百度在线网络技术(北京)有限公司 广告召回方法、装置、设备和存储介质
CN111552818A (zh) * 2020-04-27 2020-08-18 中国银行股份有限公司 一种客服知识库查询方法及装置
CN111339283B (zh) * 2020-05-15 2020-08-21 支付宝(杭州)信息技术有限公司 针对用户问题提供客服答案的方法及装置
JP7080922B2 (ja) * 2020-05-21 2022-06-06 Necパーソナルコンピュータ株式会社 ネットワークシステム、ホスト装置、及びネットワーク制御方法
CN111782965B (zh) 2020-06-29 2023-08-11 北京百度网讯科技有限公司 意图推荐方法、装置、设备及存储介质
CN112102029B (zh) * 2020-08-20 2022-10-14 浙江大学 一种基于知识图谱的长尾推荐计算方法
CN112182373B (zh) * 2020-09-25 2023-06-02 中国人民大学 一种基于上下文表示学习的性化搜索方法
CN112529615A (zh) * 2020-11-30 2021-03-19 北京百度网讯科技有限公司 自动生成广告的方法、装置、设备和计算机可读存储介质
CN112364148B (zh) * 2020-12-08 2022-05-24 吉林大学 一种基于深度学习方法的生成型聊天机器人
US11650980B2 (en) 2021-01-29 2023-05-16 Walmart Apollo, Llc Methods and apparatus for retrieving information via an intermediate representation
US11429188B1 (en) * 2021-06-21 2022-08-30 Sensie, LLC Measuring self awareness utilizing a mobile computing device
US11430446B1 (en) 2021-08-12 2022-08-30 PolyAI Limited Dialogue system and a dialogue method

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120016678A1 (en) 2010-01-18 2012-01-19 Apple Inc. Intelligent Automated Assistant
JP5752245B2 (ja) 2011-05-26 2015-07-22 株式会社日立製作所 情報検索方法、情報検索装置及び記憶媒体
US20150269176A1 (en) 2014-03-21 2015-09-24 Microsoft Corporation User Interface Mechanisms for Query Refinement
US20160117593A1 (en) 2013-11-20 2016-04-28 Justin London Adaptive Virtual Intelligent Agent

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2005202353B2 (en) * 1999-11-23 2007-05-17 Hyperknowledge Management Services Ag Methods and apparatus for storing and retrieving knowledge
WO2001067225A2 (en) * 2000-03-06 2001-09-13 Kanisa Inc. A system and method for providing an intelligent multi-step dialog with a user
US6578022B1 (en) * 2000-04-18 2003-06-10 Icplanet Corporation Interactive intelligent searching with executable suggestions
JP2009193532A (ja) * 2008-02-18 2009-08-27 Oki Electric Ind Co Ltd 対話管理装置、方法及びプログラム、並びに意識抽出システム
US9405841B2 (en) * 2009-10-15 2016-08-02 A9.Com, Inc. Dynamic search suggestion and category specific completion
KR20120071877A (ko) * 2010-12-23 2012-07-03 삼성전기주식회사 이색 볼 제조장치 및 이색 볼 제조 방법
US20130080423A1 (en) * 2011-09-23 2013-03-28 Ebay Inc. Recommendations for search queries
US9465833B2 (en) * 2012-07-31 2016-10-11 Veveo, Inc. Disambiguating user intent in conversational interaction system for large corpus information retrieval
KR20140050217A (ko) * 2012-10-18 2014-04-29 에스케이플래닛 주식회사 키워드 연관 관계 시각화 제공 시스템 및 방법과, 이를 지원하는 장치
US9171542B2 (en) * 2013-03-11 2015-10-27 Nuance Communications, Inc. Anaphora resolution using linguisitic cues, dialogue context, and general knowledge
US10489842B2 (en) * 2013-09-30 2019-11-26 Ebay Inc. Large-scale recommendations for a dynamic inventory
US9652451B2 (en) * 2014-05-08 2017-05-16 Marvin Elder Natural language query
US10540347B2 (en) * 2014-10-27 2020-01-21 Nuance Communications, Inc. Contextual search disambiguation
US11321759B2 (en) * 2016-06-30 2022-05-03 International Business Machines Corporation Method, computer program product and system for enabling personalized recommendations using intelligent dialog
US20180052913A1 (en) * 2016-08-16 2018-02-22 Ebay Inc. Selecting next user prompt types in an intelligent online personal assistant multi-turn dialog
US10347244B2 (en) * 2017-04-21 2019-07-09 Go-Vivace Inc. Dialogue system incorporating unique speech to text conversion method for meaningful dialogue response

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120016678A1 (en) 2010-01-18 2012-01-19 Apple Inc. Intelligent Automated Assistant
JP5752245B2 (ja) 2011-05-26 2015-07-22 株式会社日立製作所 情報検索方法、情報検索装置及び記憶媒体
US20160117593A1 (en) 2013-11-20 2016-04-28 Justin London Adaptive Virtual Intelligent Agent
US20150269176A1 (en) 2014-03-21 2015-09-24 Microsoft Corporation User Interface Mechanisms for Query Refinement

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210018318A (ko) * 2016-08-16 2021-02-17 이베이 인크. 다음 사용자 프롬프트 유형 선택하기
KR102395988B1 (ko) * 2016-08-16 2022-05-09 이베이 인크. 다음 사용자 프롬프트 유형 선택하기
US11004131B2 (en) 2016-10-16 2021-05-11 Ebay Inc. Intelligent online personal assistant with multi-turn dialog based on visual search
US11604951B2 (en) 2016-10-16 2023-03-14 Ebay Inc. Image analysis and prediction based visual search
US11748978B2 (en) 2016-10-16 2023-09-05 Ebay Inc. Intelligent online personal assistant with offline visual search database
US11804035B2 (en) 2016-10-16 2023-10-31 Ebay Inc. Intelligent online personal assistant with offline visual search database
US11836777B2 (en) 2016-10-16 2023-12-05 Ebay Inc. Intelligent online personal assistant with multi-turn dialog based on visual search
US11914636B2 (en) 2016-10-16 2024-02-27 Ebay Inc. Image analysis and prediction based visual search

Also Published As

Publication number Publication date
AU2017312818B2 (en) 2020-09-10
KR102395988B1 (ko) 2022-05-09
EP3500949A1 (en) 2019-06-26
JP6806879B2 (ja) 2021-01-06
EP3500949A4 (en) 2019-07-31
CN109716334B (zh) 2023-08-04
KR20190039572A (ko) 2019-04-12
US20180052913A1 (en) 2018-02-22
CN109716334A (zh) 2019-05-03
AU2017312818A1 (en) 2019-03-14
KR20210018318A (ko) 2021-02-17
JP2019530920A (ja) 2019-10-24
WO2018034928A1 (en) 2018-02-22

Similar Documents

Publication Publication Date Title
KR102197023B1 (ko) 다음 사용자 프롬프트 유형 선택하기
US11836777B2 (en) Intelligent online personal assistant with multi-turn dialog based on visual search
US11804035B2 (en) Intelligent online personal assistant with offline visual search database
US11392598B2 (en) Applying a quantitative range for qualitative terms
US20180052884A1 (en) Knowledge graph construction for intelligent online personal assistant
US20180052842A1 (en) Intelligent online personal assistant with natural language understanding
US20180052885A1 (en) Generating next user prompts in an intelligent online personal assistant multi-turn dialog
US20210224877A1 (en) Intelligent online personal assistant with image text localization
US20220020375A1 (en) Detection of mission change in conversation
US20180068031A1 (en) Enhancing user queries using implicit indicators
US20200005375A1 (en) Virtual assistant guidance based on category familiarity
US20180121560A1 (en) Preview and optimization of publication for target computing device

Legal Events

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