KR20190019962A - 컴퓨터 학습 및 이해를 위한 아키텍처 및 프로세스들 - Google Patents

컴퓨터 학습 및 이해를 위한 아키텍처 및 프로세스들 Download PDF

Info

Publication number
KR20190019962A
KR20190019962A KR1020187037504A KR20187037504A KR20190019962A KR 20190019962 A KR20190019962 A KR 20190019962A KR 1020187037504 A KR1020187037504 A KR 1020187037504A KR 20187037504 A KR20187037504 A KR 20187037504A KR 20190019962 A KR20190019962 A KR 20190019962A
Authority
KR
South Korea
Prior art keywords
story
semantic
structures
knowledge
engine
Prior art date
Application number
KR1020187037504A
Other languages
English (en)
Other versions
KR102414491B1 (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 KR20190019962A publication Critical patent/KR20190019962A/ko
Application granted granted Critical
Publication of KR102414491B1 publication Critical patent/KR102414491B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/027Frames
    • G06F17/2785
    • 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/22Indexing; Data structures therefor; Storage structures
    • 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/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • 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
    • G06F17/271
    • G06F17/28
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/211Syntactic parsing, e.g. based on context-free grammar [CFG] or unification grammars
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • G06F40/35Discourse or dialogue representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/40Processing or translation of natural language
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/006Artificial life, i.e. computing arrangements simulating life based on simulated virtual individual or collective life forms, e.g. social simulations or particle swarm optimisation [PSO]
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/26Speech to text systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Databases & Information Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • Biomedical Technology (AREA)
  • Human Computer Interaction (AREA)
  • Biophysics (AREA)
  • Algebra (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Machine Translation (AREA)
  • Electrically Operated Instructional Devices (AREA)

Abstract

아키텍처 및 프로세스들은 컴퓨터가 공동 문제 해결의 맥락에서 인간들과의 협력을 통해 임의의 자연 언어 텍스트의 이해를 학습하고 전개할 수 있게 한다. 아키텍처는 텍스트를 입수한 다음 그 텍스트를 구문론적으로 그리고 의미론적으로 처리하여 텍스트의 초기 이해를 추론한다. 초기 이해는 의미론 및 프레임 구조들의 스토리 모델에서 캡처된다. 그 다음에, 스토리 모델은 상호작용 대화 세션들을 통해 인간들에게 제기되는 컴퓨터 생성 질문들을 통해 테스트된다. 인간들로부터 모아진 지식은 컴퓨팅 시스템의 이해의 현재 세계 모델뿐만 아니라 스토리 모델을 업데이트하는데 이용된다. 프로세스는 시간의 경과에 따라 복수의 스토리들에 대해 반복되어, 컴퓨팅 시스템이 지식에서 성장할 수 있게 하고 이에 의해 점점 더 높은 독해 레벨들의 스토리들을 이해할 수 있게 한다.

Description

컴퓨터 학습 및 이해를 위한 아키텍처 및 프로세스들
관련 특허 출원들에 대한 상호 참조
본 출원은 "Architecture and Processes for Computer Learning and Understanding"이라는 명칭으로 2016년 6월 24일에 출원된 미국 특허 출원 제15/192,796호에 대한 우선권을 주장하며, 이 출원은 전체가 본 명세서에 참조로 포함된다.
세계는 인공 지능인 로봇들, 기계들 및 컴퓨터들을 오랫동안 꿈꾸어 왔다. 아서 씨. 클라크의 스페이스 오디세이 시리즈에서의 할 및 젯슨스 만화 시리즈에서의 로지로부터 스타 트렉 시리즈에서의 함상 컴퓨터 및 스타 워즈 영웅에서의 R2D2와 C3PO까지, 우리는 본질적으로 학습하고, 이해하며, 생각할 수 있는 기계들에 의해 매료되었다.
이것이 아주 좋은 오락거리를 만들고, 미래 세대들의 기계들에 대한 열망적인 목표들을 가질 수 있지만, 인공 지능 및 지능형 기계 구축과 연관된 문제들은 매우 복잡하다. 예를 들어, 임의의 텍스트에 걸쳐 인간들과의 개방형 대화에 충족스럽게 참여할 수 있는 시스템이 오늘날 존재하지 않으며, 하물며 이러한 상호작용들로부터 독립적으로 "학습"할 수 있고 복잡한 질문들에 대해 타당한 대답들을 설명할 수 있는 시스템은 존재하지 않는다.
이 분야에서는 진전이 있었다. IBM사의 왓슨(Watson)과 같은 잘 알려진 시스템들은 TV 게임 쇼 제파디에서 성공을 거두었으며, 애플사의 시리(Siri)는 확실히 애플사의 제품들에서 음악과 위치들을 쉽게 찾을 수 있게 하였다. 그러나, 이들 시스템들은 단지 대규모 데이터, 큰 훈련 세트들, 얕은 언어학적 기술들 및 기계 학습 기술들을 자동 질문 대답의 작업에 적용한다. 이들 시스템들은 깊은 이해가 부족하다. 독해 작업에 대한 보다 최근의 연구는 논리적 이해 및 유창한 설명에 대한 요건들보다는 좁은 대답 기반 메트릭들을 갖는 얕은 통계적 접근 방식들에 여전히 집중되어 있다. 그러나, 오늘날 어떤 컴퓨터 시스템도 심지어 임의의 2학년 텍스트의 논리적 이해와 설명을 자율적으로 판독, 구축 및 통신할 수 없다.
따라서, 학습 및 이해할 수 있는 더 스마트한 기계들에 대한 계속적인 요구가 존재한다.
상세한 설명이 첨부 도면들과 관련하여 개시되어 있다. 도면들에서, 참조 번호의 가장 좌측의 숫자(들)는 그 참조 번호가 처음으로 나오는 도면을 식별한다. 상이한 도면들에서 동일한 참조 번호들의 사용은 유사하거나 동일한 아이템들 또는 특징들을 나타낸다.
도 1은 컴퓨팅 기계들이 스토리들에서 발견되는 것과 같은 임의의 텍스트를 학습하고 이해하도록 대화를 통해 인간들과 관계되는 아키텍처 및 환경을 도시한다.
도 2a 및 도 2b는 도 1의 아키텍처에 의해 구현될 수 있는 인간 상호작용을 통해 학습하고 이해를 전개(develop)하기 위한 프로세스의 흐름도를 제공한다.
도 3은 사람들이 텍스트들에서 논의되는 토픽을 중심으로 컴퓨팅 시스템과의 대화에 참여하게 함으로써 사람들을 가르치기 위한 프로세스의 흐름도이다.
도 4는 도 1의 학습 및 이해 아키텍처에서의 선택 컴포넌트들의 예시적인 구현예를 도시하고, 어떤 프로세스들 및 데이터가 컴포넌트들 사이에서 어떻게 흐를 수 있는지를 나타낸다.
도 5는 컴퓨팅 시스템의 블록도이고, 컴퓨팅 시스템이 임의의 텍스트의 논리적 이해를 판독, 구축 및 통신할 수 있게 하기 위해 도 1의 아키텍처에 의해 실행되는 선택 모듈들을 도시한다.
도 6은 도 4의 아키텍처 컴포넌트들에 의해 구현될 수 있는 텍스트들을 학습하고 이해하기 위한 프로세스의 흐름도이다.
도 7은 도 1의 아키텍처에 의해 이용된 스토리 파싱 엔진의 하나의 예시적인 구현예의 블록도이다. 도 7은 언어학적 분석 결과들을 생성하기 위해, 스토리와 같은 텍스트 문자열을 구문론적으로 처리하는데 이용될 수 있는 선택 컴포넌트들의 하나의 구현예를 도시한다.
도 8은 스토리에서 문장들과 같은 텍스트 문자열들을 구문론적으로 처리하기 위한 프로세스의 흐름도이다.
도 9는 도 1의 아키텍처에 의해 이용되는 지식 통합 엔진의 하나의 예시적인 구현예의 블록도이다. 도 9는 스토리의 언어학적 분석 결과들을 의미론적으로 처리하는데 이용될 수 있는 선택 컴포넌트들을 도시한다.
도 10은 대응하는 텍스트 문자열(예를 들어, 문장)에 대한 의미의 범위들을 표현하도록 구성될 수 있는 생성 의미론적 프리미티브 구조들의 예시적인 세트를 도시한다.
도 11은 스토리의 이해를 개선시키기 위해 도 9의 지식 통합 엔진의 정렬 모듈이 프레임 의미론을 진화(evolve) 스토리 모델과 정렬시키는 방법을 나타내기 위한 예시적인 스토리, 예시적인 에피소드 및 예시적인 의미론적 구조들을 도시한다.
도 12는 스토리의 더 깊은 이해를 제공하기 위해 의미론적 정보를 추론하기 위한 프로세스의 흐름도이다.
도 13은 도 1의 아키텍처에서 발견되는 지식 도출 엔진의 하나의 예시적인 구현예의 블록도이다. 도 13은 스토리의 의미론적 정보의 추론을 돕기 위해 리소스들을 생성하도록 구현될 수 있는 선택 컴포넌트들을 도시한다.
도 14는 스토리에 대한 의미론적 정보를 추론할 때 보조하기 위해 스토리 내의 단어들/구들의 의미들 및 관계들에 대한 가능한 후보들을 제공하기 위한 프로세스의 흐름도이다.
도 15는 도 1의 아키텍처에서 발견되는 생각 표현 및 추리 프레임워크의 하나의 예시적인 구현예의 블록도이다. 도 15는 맥락 차별화 및 의미론적 프리미티브들을 위한 지식 표현 언어 및 추론 및 학습 메커니즘들을 포함하는, 아키텍처의 동작을 지원하는데 이용될 수 있는 프레임워크 내의 선택 컴포넌트들을 도시한다.
도 16은 도 1의 아키텍처에서 이용된 대화 엔진의 하나의 예시적인 구현예의 블록도이다. 도 16은 스토리의 시스템의 현재 이해를 챌린지 또는 검증하기 위해 사용자 질문들을 생성하고 시스템의 이해를 업데이트하기 위해 사용자 응답들을 수신하는 대화 엔진 내의 선택 컴포넌트들을 도시한다.
도 17은 한 명 이상의 인간 사용자에게 제기하기 위한 적절한 질문들을 생성하기 위해 대화 엔진에 의해 이용되는 의존 구조의 예를 도시한다.
도 18은 의미론적 구조들 및 프레임들에서 현재 반영된 대로 스토리의 시스템의 현재 이해를 검증하고 통보하기 위해 인간 사용자들에게 제출할 질문들을 생성하기 위한 프로세스의 흐름도이다.
도 19는 컴퓨팅 시스템과 인간 사용자 사이의 대화 세션 동안 사용자의 디바이스 상에 제시되고 사용자가 보는 대화 사용자 인터페이스의 스크린 렌더링을 도시한다.
도 20은 대화 세션에서 다음 질문을 예시하기 위해 도 19의 스크린 렌더링에 후속하여 사용자의 디바이스 상에 제시되는 대화 사용자 인터페이스의 제2 스크린 렌더링을 도시한다.
도 21은 대화 세션에서 또 다른 다음 질문을 예시하기 위해 도 20의 제2 스크린 렌더링에 후속하여 사용자의 디바이스 상에 제시되는 대화 사용자 인터페이스의 제3 스크린 렌더링을 도시한다.
도 22는 동일하거나 상이한 질문들을 복수의 인간 사용자들에게 동시에 분산하기 위한 분산형 대화 메커니즘의 구현예를 도시하는 개략적인 도해들을 갖는 블록도이다.
도 23은 복수의 사용자들을 포함하는 제1 예시적인 분산형 대화 세션의 개략도이다.
도 24는 복수의 사용자들을 포함하는 제2 예시적인 분산형 대화 세션의 개략도이다.
도 25는 복수의 사용자들에 걸쳐 대화 세션들 동안 질문들을 분산하기 위한 프로세스를 도시하는 흐름도이다.
도 26은 스토리 모델 및 스토리 모델에 포함된 데이터 구조들이 구문론적 처리, 의미론적 처리 및 인간 상호작용의 결과로서 시간의 경과에 따라 어떻게 진화하는지를 도시하는 블록도이다.
도 27은 점점 더 어려운 자연 언어 스토리들 및 인간 상호작용을 처리하고 추론함으로써 시간의 경과에 따라 컴퓨터 이해를 성장시키는 프로세스를 도시하는 흐름도이다.
도 28은 점점 더 어려운 더 많은 스토리들이 구문론적 처리, 의미론적 처리 및 대화를 통한 인간 평가를 받게 됨에 따라 현재 세계 모델에서 의미론적 구조들로서 구현되는 지식이 시간의 경과에 따라 성장하는 방법을 보여주는 개략도이다.
도 29는 확률적인 생각들의 네트워크를 증분적으로 공식화하고 그 전역적인 논리적 일관성을 반복적으로 개선하는 동적 프로세스를 도시하는 시각화들의 예시적인 세트를 도시한다.
본 개시내용은 컴퓨터 학습 및 이해를 위한 아키텍처 및 프로세스들을 설명한다. 아키텍처는 인간들과의 협력을 통해 임의의 텍스트의 이해를 학습하고 전개할 수 있게 한다. 이러한 협력은 공동 문제 해결의 맥락에서 또는 인간들이 시스템을 가르치거나 시스템이 판독 중인 텍스트를 이해하는 것을 돕는데 이용되는 경우에 있을 수 있다. 텍스트로부터의 지식을, 시스템이 추리하고, 진화하며, 의미 있게 대화하게 하는 형태로 독립적으로 획득 및 변환할 수 있는 아키텍처는, 작업 관련 지식에 대한 액세스를 크게 가속화하고 인간의 연구, 학습, 발견 및 문제 해결을 도움으로써 세계를 변화시킬 것이다.
컴퓨팅 아키텍처는 컴퓨터 시스템이 광범위한 자연 언어 텍스트의 논리적 이해 및 설명을 자율적으로 판독, 구축 및 통신할 수 있는 깊은 자연 언어 이해의 문제를 해결한다. 깊은 이해를 위해 필요한 것 중 많은 것은 그 텍스트(또는 임의의 텍스트)에 명시적으로 존재하지 않지만, 대신에 인간들과의 상호작용 대화를 통해 또는 세계와의 상호작용을 통해 암시적이고 학습된다. 본 명세서에서 설명된 프로세스들은, 컴퓨팅 시스템이 의도된 의미(상호작용에 의해 검증됨)를 점점 더 복잡한 언어로 지속적으로, 정확하게, 그리고 독립적으로 할당하기 위해 반복적으로 학습하도록, 독해와 같은 상호작용 문제 해결 작업에서 인간들과의 대화에 참여하는 것을 포함한다.
언어 자체가 어렵기 때문에 깊은 자연 언어 이해는 어렵다. 언어는 동일한 것을 말하는 많은 방식들이 있고 의미에서의 미묘한 차이들이 존재하기 때문에 무한하게 구성될 수 있다. 예를 들어, "터치다운"이라는 단어는 비행기 착륙 또는 미식 축구에서의 스코어를 지칭할 수 있다. 누군가 "너에 대해 화를 낼 수 있다" 또는 "너를 화나게 할 수 있다"는 2개의 완전히 상이한 의미들을 갖는다. 다음의 스크립트를 따라 컴퓨터와의 대화에 참여할 수 있는 것을 상상할 수 있다:
인간: 안녕, 질문이 있습니다.
컴퓨터: 안녕. 무엇을 도와드릴까요?
인간: 기술적 관점과 윤리적 관점 모두에서 장기 재생에서의 줄기 세포들의 역할에 대한 기사에 대해 논의하고 싶습니다.
컴퓨터: 알겠습니다. 이 기사는 줄기 세포들이 매우 효과적일 수 있음을 시사한다. 이러한 기술은 줄기 세포들이 ... 포함할 수 있기 때문에 작용하며, 개방형 질문들이 ... 관해 남아 있다.
인간: 줄기 세포들이 왜 부상 부위에 끌리는가?
컴퓨터: "왜"는 아마도 "어떻게"를 의미한다. 이것이 맞는가? 그렇다면, 줄기 세포들은 ... 화학적 메시징 시스템을 이용하여 부상 부위로 이동하고 그 부위에서 모인다.
아마도 이러한 대화가 두 명의 인간들 사이에서는 합리적이지만, 이러한 종류의 대화는 부정확한 언어에 의해 도입되는 복잡도의 많은 레벨들로 인해 컴퓨터들에 대해 어렵다. 단어 의미들, 문법 및 의도에 있어서 전반적인 모호성이 있다. 더욱이, 의미가 흔히 암시적이며, 중요한 정보가 언급되지 않고, 배경 정보가 가정된다.
이 점을 더 예시하기 위해, 다음의 짧은 스토리를 고려한다:
배트(bat)가 그를 향해 날아갔다.
빌리는 최대한 빨리 달렸다.
그는 집에 무사히 도착했다!
설정 또는 배경에 따라, 이 스토리를 이해하는 둘 이상의 방법이 있다. 날아 다니는 포유류를 의미하는 "박쥐"라는 단어로 한 번 이 스토리를 판독해 보자. 그 다음에, 이를 다시 판독하고 "배트"라는 단어가 야구 방망이를 의미한다고 하자.
인간들로서, 본 발명의 지식 및 경험들은 또한 우리가 텍스트 자체 내에 있지 않을 수 있는 스토리로부터의 의미를 파악하는 것을 돕는다. 다른 예로서, 아래의 아키텍처 및 프로세스들의 양태들은 다음과 같이 "엔조 및 조"라고 명명된 간단한 1학년 스토리를 참조하여 설명된다:
엔조와 조는 경주를 하고 있었다. 엔조가 넘어졌다. 그는 무릎을 다쳤다. 조가 돌아보았다. 조가 이기고 싶었다. 그녀가 계속 달리면 그녀는 이길 것이다. 조가 멈췄다. 그녀가 뒤로 달려갔다. 그녀는 엔조가 일어나는걸 도왔다.
다음과 같은 간단한 질문들을 고려한다: 조는 무엇을 보고 있었습니까? 조는 무엇을 멈췄습니까? 그녀는 어디로 달려갔습니까? 조가 이겼습니까? 날씨가 어땠습니까? 엔조와 조는 몇 살입니까? 컴퓨팅 기계들은 통상적으로 필수적인 경험들 및 지식으로 공백들 내를 채우기 시작하지 않으며, 이에 따라 본 명세서에서 설명된 프로세스들은 컴퓨팅 기계들이 인간의 참여를 위한 질문들을 공식화하고 표현하여 스토리의 더 풍부한 이해를 위해 이러한 학습을 얻을 수 있게 한다.
따라서, 본 명세서에서 설명된 아키텍처는, 스토리와 같은 주어진 텍스트에 관한 질문들에 대답하기 위해 자연 언어 대화를 이용하여 인간들과 협력함으로써 판독하는 것을 어떻게 이해하는지를 학습하는 컴퓨팅 시스템을 갖는다. 스토리는 다수의 독해 질문들을 수반할 수 있다. 시스템은 스토리의 의미론적 표현을 생성하며, 이는 특히 독해 질문들에 대답하는데 이용될 수 있다.
컴퓨팅 시스템은 먼저 스토리의 언어학적 분석을 수행하여, 문법적 파스, 술어 논항 구조, 엔티티 타입 할당 및 동일 지시어들 분석과 같은, 언어학적 분석 결과들을 생성한다. 이러한 언어학적 분석을 이용하여, 컴퓨팅 시스템은 스토리의 의미론적 표현을 생성하며, 여기서 스토리의 의미는 생성 의미론적 프리미티브들(GSP들)의 면에서 표현된다. GSP들은 시간, 공간, 논리, 번호, 변경, 야기, 연관성, 생각, 지각, 표현 및 의도와 같이, 세계에 관한 기본 사실들을 표현하는 구조들의 작은 세트이다. GSP들은 자연 언어의 매우 넓은 범위의 의미를 나타내도록 구성될 수 있다.
컴퓨팅 시스템은 세계에 대해 참인 것에 관한 그 생각들을 포함하는 현재 세계 모델을 유지하고 계속해서 업데이트한다. 현재 세계 모델은 프레임들의 집합으로 이루어질 수 있고, 여기서 각각의 프레임은 일부 공통 맥락에서 참이 될 가능성이 있는 GSP들과 같은 명제(proposition)들의 집합이다. 예를 들어, 엔조와 조 스토리에서, 프레임 구조들은 일반적으로 경주 동안 발생하는 것을 제공할 수 있다. 컴퓨팅 시스템은 그 현재 세계 모델에서의 지식 및 큰 언어 코퍼스들로부터 자동으로 도출되는 지식에 대해 그려지는 스토리 모델을 구성한다.
초기 스토리 모델이 구축된 후에, 컴퓨팅 시스템은 스토리를 또한 판독한 인간들과의 대화를 통해 스토리 모델을 테스트한다. 이 프로세스는 함께 독해 연습을 하고, 질문들에 대답하며, 유효한 설명들을 제공하는 것을 포함할 수 있다. 인간 대화는 컴퓨터 시스템이 스토리에 내재하는 추가의 암시적인 의미론적 그리고 배경 지식을 발견하는 것을 가능하게 하고, 이 암시적 지식을 이용하여 스토리 및 미래의 새로운 스토리들을 이해한다. 인간 응답들은 스토리 모델을 업데이트하고 컴퓨팅 시스템의 특정한 이해들의 선택을 조정하는데 이용될 수 있다. 모델에 대한 수정 후에, 새로운 이해는 인간들과의 추가 대화를 통해 추가로 테스트될 수 있다.
이러한 방식으로, 인간들과의 대화를 통해, 컴퓨팅 시스템은 연속적으로 더 어려운 독해 텍스트들에 대한 질문들에 대답하기 위해 시간의 경과에 따라 학습하고, 질문들에 대답하고 이들 대답들이 정확한 이유를 설명함으로써 판독하는 것을 이해하는 그 능력을 보여준다. 예를 들어, 시스템은 유치원 레벨에서 시작하여 더 높은 학년 레벨들까지 진행될 수 있다. 일부 애플리케이션들에서, 시스템은 또한 텍스트에 대해 적절한 학년 레벨에 있는 학생들과의 대화에 참여할 수 있다. 컴퓨터 시스템은 그 이해를 나타내는 논리적 모델에 언어를 어떻게 매핑하는지를 학습하기 위해 컴퓨터 시스템에 의해 그 대답들이 나중에 이용되는 인간들에게 질문들을 생성하여 문의한다.
또한, 컴퓨터 시스템은 상호작용 프로세스를 통해 사람들을 가르치도록 구성될 수 있다. 시스템은 인간 학생이 판독 중인 것의 논리적 모델을 구축하고, 시스템의 이해를 평가하고 시스템의 대답들을 논리적으로 검증함으로써 비판적으로 생각하도록 학습하여 궁극적으로 주어진 스토리의 상호 이해에 도달하는 것을 돕는다. 시스템은 컴퓨터 시스템이 배경 코퍼스들에서 검출하는 다른 유추적인 콘텐츠에 스토리 요소들을 연결하는 유추들을 생성하고 이들 유추들을 고려하고 검증하도록 학생들에게 요청함으로써 유추적인 추리들을 학습하고 가르친다. 복수의 이러한 상호작용들을 통해, 학생들은 어떻게 질문하고, 비판하고, 탐색하며 그들 자신의 지식을 확장하는지를 학습하며, 컴퓨터 시스템은 의도된 의미(상호작용에 의해 검증됨)를 점점 더 복잡한 언어로 지속적으로, 정확하게, 그리고 독립적으로 할당하도록 학습한다.
일부 상황들에서, 컴퓨팅 시스템은 인간 상호작용에 추가하여 다른 컴퓨팅 시스템들과의 대화에 추가로 참여할 수 있다. 예를 들어, 제1 컴퓨팅 시스템은 제2 컴퓨팅 시스템이 아직 마주치지 않은 스토리의 이해를 얻었을 수 있다. 제1 컴퓨팅 시스템 및 제2 컴퓨팅 시스템은 제1 컴퓨팅 시스템이 본질적으로 제2 컴퓨팅 시스템을 가르치도록 스토리에 걸쳐 대화에 참여할 수 있다. 이러한 방식으로, 컴퓨터 시스템들이 그 도메인들에서의 텍스트들을 학습하고 이해함으로써 상이한 도메인들에서의 전문지식을 전개하기 위해 시간의 경과에 따라 개별적으로 진화함에 따라, 컴퓨터 시스템들은 다른 시스템의 지식을 통합하기 위해 서로 학습할 수 있다. 컴퓨터 시스템들 사이의 대화는 그들 각각의 의미론적 표현들을 통신하는 것과 같이 매우 상이한 레벨에 있을 수 있다.
이 아키텍처는 지식 표현 및 기계 학습과 같이 인공 지능으로부터의 기술들을 이용한다. 또한, 이것은 구문론적 파싱, 술어 논항 구조, 엔티티 타입 할당, 동일 지시어 분석, 및 분산적 의미론(예를 들어, 잠재적 의미론적 분석, 랜덤 인덱싱 및 토픽 모델링)과 같은 통계적 기술들과 같이 자연 언어 처리로부터의 기술들을 이용한다.
예시적인 아키텍처 환경
도 1은 컴퓨팅 시스템들과 같은 기계들이 스토리들에서 발견되는 것과 같은 임의의 자연 언어를 학습하고 이해하기 위해 대화를 통해 인간들과 관계할 수 있는 예시적인 아키텍처(100)를 도시한다. 논의를 위해, 이러한 아키텍처는, 컴퓨팅 시스템이 학생들로부터 학습하고/하거나 학생들이 문의하는 질문들에 대답함으로써 이들을 가르치기 위해 다양한 레벨들의 학생들과 상호작용하는 교육의 예시적인 환경에서 부분적으로 설명된다. 그러나, 이러한 아키텍처는 본질적으로 임의의 환경에서 구현될 수 있고, 교육에 제한되도록 의도되지 않는다.
아키텍처(100)는 임의의 자연 언어를 입수하고 분석하고 인간들과의 협력적인 상호작용들을 통해 단어들 및 개념들의 의미를 학습 및 이해하도록 구성되는 학습 및 이해 컴퓨팅 시스템(102)을 포함한다. 인간 협력은 공동 문제 해결의 맥락에서 행해질 수 있거나, 또는 인간들이 시스템이 판독 중인 텍스트를 이해하는 것을 가르치거나 돕는데 이용되는 경우에 행해질 수 있다. 학습 및 이해 컴퓨팅 시스템(102)은 스토리들(106(1), ..., 106(T))과 같은 임의의 텍스트 문자열들의 형태일 수 있는 자연 언어 입력을 입수하기 위한 처리 및 저장 능력들을 갖는 하나 이상의 서버(104(1), 104(2), ..., 104(S)) 상에서 호스팅될 수 있다. 서버들(104(1)-(S))은 자연 언어 입력을 처리하고 인간들과 컴퓨팅 시스템 양쪽 모두에 대한 자연 언어 입력의 상호 이해를 개선하기 위해 사용자 인터페이스들을 통해 인간들과 관계한다. 서버들(104(1)-(S))은 단일 서버, 서버들의 클러스터, 서버 팜 또는 데이터 센터 등을 포함하는 임의의 수의 방식들로 구현될 수 있지만, 다른 서버 아키텍처들(예를 들어, 메인프레임 아키텍처)이 또한 이용될 수 있다.
도시된 구현예에서, 스토리들(106(1)-(T))은 학습 및 이해 컴퓨팅 시스템(102)에 입력되는 것으로 도시되어 있다. 일반적으로, 스토리들은 임의의 양상(음성, 텍스트, OCR 등)으로 기원될 수 있고, 궁극적으로 컴퓨팅 시스템(102)에 의한 처리를 위해 텍스트의 디지털 포맷 표현(예를 들어, ASCII)으로 변환된다. 스토리들은 다수의 독해 질문들을 수반할 수 있다. 스토리들은 컴퓨팅 시스템(102)에 의해 저장되고 언어의 더 깊은 이해를 얻기 위해 시스템(102)에 의해 이용될 수 있다. 이 예에서, 두 가지 스토리, 즉 "벤 및 아바" 스토리(106(1)) 및 "엔조 및 조" 스토리(106(T))가 도시되어 있다. 엔조 및 조 스토리(106(T))는 위에서 제공된다. 유사하게, 벤 및 아바 스토리(106(1))는 또한 다음과 같이 더 어린 학생에게 적합한 짧은 스토리이다:
아바가 들어왔다.
벤은 아바를 테이블로 안내했다.
아바가 앉았다.
벤은 아바에게 메뉴를 주었다.
아바는 스파게티를 주문했다.
벤은 음식을 아바에게 가져다주었다.
아바가 먹고 떠났다.
이러한 아키텍처(100)에 따르면, 컴퓨팅 시스템(102)은 스토리들(106(1)-(T))을 인간들과 공유하고, 스토리들의 시스템의 이해를 테스트하기 위해 때때로 사람들과의 대화에 참여한다. 학습 및 컴퓨팅 시스템(102)은 스토리의 초기 이해를 나타내기 위해 스토리의 의미론적 표현을 포함하는 초기 모델을 구축한다. 이 제1 모델은 본 명세서에서 "스토리 모델"로서 지칭되고 이하에서 더 상세히 설명된다. 일반적으로, 초기 스토리 모델은 구문론적 요소들 및/또는 생성 의미론적 프리미티브들(GSP들)의 세트들을 포함하는 데이터 구조들의 면에서 초기 이해를 표현한다. 생성 의미론적 프리미티브들은 세계에 대한 기본 사실들을 표현하고 자연 언어의 전체 범위의 의미를 나타내도록 구성될 수 있는 작은 세트의 구조들이다. 예를 들어, 문장 "벤은 음식을 아바에게 가져다주었다"에 대해, 구문론적 요소들은 동사로서 "가져다주었다"를 식별할 수 있고, 의미론적 프리미티브들은 벤이 음식이 아바 근처에 위치되게 하는 동작을 야기하거나 또는 벤의 의도가 아바가 음식을 점유하게 만드는 것과 같이 문장에서의 엔티티들에 대한 사실들을 포함할 수 있다. GSP들은 특히 독해 질문들에 대답하는데 이용될 수 있다.
언어 이해는 기입된 단어에서 명시적인 것보다 인간 경험의 일부이고 말하지 않은 것에 대해 더 많다. 전형적으로, 자연 언어 진술의 최상의 해석은 세계에 관한 본 발명의 지식을 참조하여 "가장 이해할 수 있는" 해석이다. 컴퓨팅 시스템(102)은 세계에 대해 참인 것에 관한 생각들을 포함하는 다른 모델을 유지하고 계속해서 업데이트한다. 이 제2 모델은 본 명세서에서 "현재 세계 모델"이라고 지칭되고 이하에서 더 상세히 설명된다. 현재 세계 모델은 프레임들의 집합으로 구성되고, 여기서 각각의 프레임은 일부 공통 맥락에서 참이 될 가능성이 있는 GSP들과 같은 명제들의 집합이다. 컴퓨팅 시스템(102)은 현재 세계 모델에서의 지식 및 큰 언어 코퍼스들과 같은 다른 소스들로부터 자동으로 도출되는 지식에 대해 그려지는 초기 스토리 모델을 구성한다.
초기 스토리 모델이 구성된 후에, 학습 및 이해 컴퓨팅 시스템(102)은 스토리를 또한 판독하는 사용자들과의 대화에 참여할 수 있다. 컴퓨팅 시스템(102)은 스토리의 이러한 초기 이해를 테스트하기 위해 인간들에게 제기할 하나 이상의 사용자 질문을 형성한다. 예를 들어, 컴퓨팅 시스템(102)은 스토리 모델이 불완전한 것으로 알려져 있거나, 시스템이 그 의미론적 표현에서 높은 신뢰도를 갖지 않거나, 또는 확신 있게 대답될 수 없는 독해 질문들이 있는 경우들에서 질문들을 생성할 수 있다. 시스템은 질문들을 하여 그 이해를 검증하거나 누락 지식을 획득할 수 있다. 예를 들어, 사용자 질문들은 초기 스토리 모델에서의 생성 의미론적 프리미티브들이 스토리의 정확한 의미를 전달하는지 여부를 챌린지하기 위해 생성 의미론적 프리미티브들의 다른 가능한 세트들을 제공할 수 있다. 사용자 질문들은 생성 의미론적 프리미티브들로부터 변환된 자연 언어로 제공되고 그 입력을 위해 인간 사용자들에게 전송된다. 질문들에 대한 사용자들의 응답들은 시스템(102)으로 회신되고, 현재 세계 모델을 증강시키고 스토리의 새롭고 향상된 이해를 나타내는 스토리 모델의 새로운 반복을 수정하거나 생성하는데 이용된다. 새로운 모델은 훨씬 더 많은 의미를 제공하는 프레임 구조들로 추가로 조립될 수 있는 상이한 세트의 생성 의미론적 프리미티브들을 연관시키는 데이터 구조들로서 새로운 이해를 표현한다. 이 프로세스는 컴퓨팅 시스템(102)이 다양한 시나리오들을 통해 작업될 때까지 복수 회 반복될 수 있고, 스토리의 그 이해는 인간 사용자들이 스토리를 이해하는 방법과 함께 정렬된다. 업데이트된 현재 세계 모델은 미래에 입수될 수 있는 다른 자연 언어 스토리들을 처리하는데 이용하기 위해 유지된다. 개별 스토리 모델들이 또한 저장될 수 있고, 필요하다면 나중에 재호출될 수 있다. 컴퓨팅 시스템이 복수의 스토리들에 대해 복수의 사용자 상호작용들을 통해 진행함에 따라, 현재 세계 모델은 각각의 상호작용에서 증분적으로 풍부해지고, 시스템은 자연 언어 텍스트에 대한 의미론적 표현들을 지속적으로, 정확하게, 그리고 독립적으로 결정하도록 학습한다. 시스템은 시간의 경과에 따라 점진적으로 더 어려운 스토리들, 문서들 및 다른 텍스트들을 판독할 수 있고, 점점 더 어려운 주제를 학습하고 이해하기 위해 인간들과 관계할 수 있다. 그 결과, 시스템은 새로운 GSP들 및 새로운 프레임들뿐만 아니라 시스템에서 이용되는 다른 리소스들로 현재 세계 모델(138)을 계속 구축하고 성장시킨다.
다시 도 1을 참조하면, 컴퓨팅 시스템(102)은 대화 프로세스의 일부로서 많은 인간 사용자들과 상호작용할 수 있고, 이들 사용자들은 시스템과 관계하기 위한 상이한 목적들을 가질 수 있다. 논의를 위해, 인간 학생 집단(112)에 속하는 것으로 예시된 인간 학생들(110(1), 110(2), ..., 110(L)), 및 인간 기반 협력 크라우드소싱 네트워크(116)에 속하는 인간 협력자들(114(1), ..., 114(C))을 포함하는 2개의 그룹의 인간 사용자들이 도시되어 있다. 학생들(110(1)-(L))은 컴퓨팅 시스템이 그들로부터 학습하는 것만큼 컴퓨팅 시스템(102)으로부터 학습하기 위해 컴퓨팅 시스템(102)과 상호작용한다. 학생들 및 컴퓨팅 시스템(102)은 이들이 스토리(106)를 통해 일할 때 공동 문제 해결 작업들에 참여하고, 이에 의해 프로세스를 통해 각각으로부터의 양태들을 학습한다. 학생들(110(1)-(L))은 임의의 연령, 판독 레벨 또는 본질적으로 임의의 인구통계학적으로 구성될 수 있다. 논의를 위해, 학생들(110) 중 두 명은 1학년 학생과 같은 문법 학생(110(1)), 및 대학생 또는 전문가와 같은 성인(110(2))을 포함한다. 일부 애플리케이션들에서, 컴퓨팅 시스템(102)은 텍스트에 대해 적절한 학년 레벨에 있는 학생들과의 대화에 참여할 수 있다.
인간 협력자들(114(1)-(C))은 스토리들(106(1)-(T))에서 발견되는 것들과 같은, 텍스트 문자열들의 시스템의 이해를 테스트하기 위해 주로 컴퓨팅 시스템(102)에 의해 관계된다. 인간 협력자들(114(1)-(C))은 정식 협력자들, 또는 컴퓨팅 시스템(102)에 의해 제기된 질문들에 단순히 대답하는 훈련받지 않은 사람들일 수 있다. 하나의 구현예에서, 협력자들(114)은 아마존사의 Mechanical TurkTM 크라우드소싱 플랫폼과 같은 조직화된 크라우드소싱 네트워크(116)의 일부일 수 있다. 크라우드 상호작용들의 이용은 아키텍처(100)의 협력적인 양태들이 스케일링되어 컴퓨팅 시스템이 더 빠른 속도로 더 많이 학습할 수 있게 한다.
학생들(110(1)-(L)) 및 인간 협력자들(114(1)-(C)) 모두는 분산될 수 있고, 서로 정식 관계를 갖지 않으며, 그들 자신의 전자 디바이스들을 이용하여 학습 및 이해 컴퓨팅 시스템(102)과 단지 상호작용할 수 있다. 일부 구현예들에서, 시스템(102)은 스토리(특히 더 긴 스토리들)를 상이한 부분들로 처리하고 상이한 부분들에 대한 상이한 사용자 질문들을 상이한 학생들 또는 협력자들에게 분산함으로써, 시스템이 단어들 및 개념들에 대해 동시에 학습하고 더 신속하게 스토리를 완전히 이해하게 할 수 있다.
학생들(110(1)-(L))은, 시스템(102)과 직접적으로 또는 네트워크(120)를 통해 시스템(102)과 통신하는 사용자 기반 전자 디바이스들(118(1), 118(2), ..., 118(D))(일괄하여, 디바이스들(118))을 통한 것과 같은 많은 방식들로 학습 및 이해 컴퓨팅 시스템(102)과 상호작용할 수 있다. 네트워크(120)는 인터넷, 케이블 네트워크들, 무선 네트워크들 및 유선 네트워크들과 같은 복수의 상이한 타입들의 네트워크들 중 임의의 하나 또는 그 조합을 나타낸다. 학생 디바이스들(118)은 학생들(110(1)-(L))이 시스템(102)과 상호작용할 수 있게 하는 처리, 저장, 네트워크 및 디스플레이/오디오 능력들을 갖는다. 디바이스들(118)은, 예를 들어, 컴퓨터(118(1)), 다기능 통신 디바이스(118(2)) 및 휴대용 컴퓨터(118(D))를 포함하는, 본질적으로 임의의 타입의 컴퓨팅 디바이스일 수 있다. 예시된 것들 외에도, 휴대용 디지털 보조기기들(PDA들), 셀룰러 전화기들, 휴대용 미디어 플레이어들, 태블릿 컴퓨터들, 넷북들, 노트북들, 데스크톱 컴퓨터들, 셋톱 박스들, 오락 디바이스들, 케이블 박스들, 게임 시스템들 등과 같은 다른 타입들의 전자 디바이스들이 이용될 수 있다.
학생들(110)은, 텍스트, 오디오 및/또는 시각적인 것을 포함하는 상이한 또는 복수의 양상들을 통해 학습 및 이해 컴퓨팅 시스템(102)과 상호작용할 수 있다. 도 1에 도시된 바와 같이, "엔조 및 조"에 관한 스토리(106(T))는 성인 학생(110(2))과 같이 학생들 중 한 명에 의한 판독을 위해 학생 디바이스(118(1))의 디스플레이 상에 서술될 수 있다.
유사하게, 학생(110(1))은 "벤 및 아바" 스토리(106(1))를 판독하고, 학생의 디바이스(118(D)) 상에 제시된 대화 사용자 인터페이스(122)에 의해 도시된 바와 같이, 학습 및 이해 컴퓨팅 시스템(102)과 스토리를 이제 논의하고 있다. 학생(110(1))은 더 일찍 동일 스크린 상에서 스토리를 판독하거나, 스피커를 통해 스토리의 오디오 표현을 출력하는 텍스트-음성 변환기를 통해 스토리에 청취하였을 수 있다. 스토리 동안 또는 그 완료 후에, 학생(110(1))은 질문들/코멘트들을 사용자 인터페이스(122)에 타이핑하거나 또는 디바이스(118(D))에 말하여 구두로 질문하거나 코멘트함으로써 스토리에 관해 질문할 수 있다. 도 1에서, 학생(110(1))은 풍선(124)에 도시된 "벤은 왜 아바에게 메뉴를 주었습니까?"의 구두 질문을 한다. 컴퓨터(118(D))는 그 오디오 질문을 텍스트 포맷으로 변환하고, 그 질문을 UI(122) 상에 텍스트 포맷으로 제시한다. 컴퓨터(118(D))는 또한 학생 질문을 네트워크(120)를 통해, 그 질문이 처리되는 컴퓨팅 시스템(102)에게 디지털 형태로 전송한다. 컴퓨팅 시스템(102)은 스토리 및 그 스토리의 이 특정한 요소의 그 현재 이해를 검사하고 학생에게 응답을 제공한다. 이 예의 학습 상호작용의 이 단계에서, 스토리가 벤이 메뉴 및 음식(스파게티)을 아바에게 가져다주는 것과 같은 동작들을 포함하는 것으로 컴퓨팅 시스템(102)이 인식했다고 가정한다. 컴퓨팅 시스템(102)은, 벤이 웨이터이고, 아바가 고객인 레스토랑을 포함할 수 있는 프레임에 가능하게 속하는 것으로 이러한 동작들을 식별한다. 따라서, 학습 및 이해 컴퓨팅 시스템(102)은 레스토랑의 암시를 가정하는 응답을 공식화한다. 도 1에서, 예시적인 응답은 디바이스(118(D))로 전송되고, "벤이 메뉴 및 음식을 아바에게 가져다주었다고 스토리가 말한다. 벤과 아바가 레스토랑에 있다고 생각한다."로서 UI(122)에 제시된다. 컴퓨팅 시스템은 또한 학생(110(1))을 가르치기 위할 뿐만 아니라 "당신은 동의하세요?"와 같은 제2 문구를 추가함으로써 시스템 자신의 이해를 평가하기 위해 이러한 상호작용을 이용할 수 있다. 시스템의 응답 설명이 학생에게 정확한 경우, 학생은 예를 들어 UI(122)에 도시된 바와 같이 "예"로 대답함으로써 그 이해를 확인할 수 있다.
이러한 방식으로, 학습 및 이해 컴퓨팅 시스템(102)은 학생들을 가르치고 또한 컴퓨팅 기계의 이해를 증가시키기 위해 이들로부터 학습하는 이중 목적들을 위해 인간 상호작용들을 이용할 수 있다. 학생의 관점에서, 인간 및 컴퓨터는 함께 학습하고 문제들을 해결하고 있다. 이 예는 초등 스토리를 가정하지만, 이러한 동일한 상호작용이 물리학, 생명 과학, 의학 및 음악 이론과 같은 복잡한 과목들에 대해 이루어질 수 있다고 고려한다. 학생(110)은 그 또는 그녀가 아무것도 알고 있지 않은 새로운 토픽을 학습하는 것에 관심이 있을 수 있다. 정보가 전통적인 검색들을 통해 발견될 수 있지만, 학생은 여전히 판독할 필요가 있고 이러한 검색들로부터의 무수한 결과들을 이해하려고 시도한다. 이 아키텍처(100)에서, 인간 학생은 토픽에 대한 다양한 텍스트들(예를 들어, 백서들, 연구 문서들 등)의 그 깊은 이해 프로세스들을 통해 그 토픽에 대한 전문가이거나 전문가가 되는 컴퓨팅 시스템(102)과 상호작용할 수 있다. 인간 학생은 자연 대화에서 시스템에게 질문할 수 있고 텍스트들에 관한 논의들을 통해 그 토픽에 관해 배울 수 있다.
다른 구현예에서, 아키텍처(100)는 협력자들(114(1)-(C))이 스토리들(106(1)-(T))을 이해하기 위해 학습하기 위한 프로세스의 일부로서 컴퓨팅 시스템(102)에 의해 제기된 질의들에 대답하게 할 수 있다. 협력자들(114(1)-(C)) 각각은 데스크톱 컴퓨터들, 랩톱들, 스마트 폰들, PDA들, 셋톱 박스들, 오락 디바이스들, 게임 시스템들 등과 같은 일부 종류의 컴퓨터 또는 전자 디바이스를 이용할 수 있다. 학습 및 이해 컴퓨팅 시스템(102)은 협력자들에게 지시하기 위한 것이 아니라 이해를 개선하기 위한 주요 목적을 위해 협력 네트워크(116)의 협력자들(114(1)-(C))과 상호작용한다. 따라서, 컴퓨팅 시스템(102)은 시스템의 이해를 확인하거나 챌린지하기 위해 질문들을 제기하는 협력자들(114(1)-(C))과 관계할 때 상이한 UI(126)를 제시할 수 있다. 이 예에서, UI(126)는 컴퓨팅 시스템(102)이 문장 "벤은 음식을 아바에게 가져다주었다"에 관한 벤 및 아바의 스토리(106(1))로부터의 발췌를 더 잘 이해하기 위해 시도하는 간단한 상호작용을 보여준다. UI(126)에서, (나비 아이콘에 의해 표시되는 바와 같이) 컴퓨팅 시스템(102)에 기인한 하나의 대화 상자(128(a))는 다음과 같이 사용자 질의를 제공한다:
이해하려고 하는 문장은 다음과 같습니다:
벤은 음식을 아바에게 가져다주었다.
아래의 어떤 선택이 위의 문장과 가장 유사하게 단어 "가져다주다"를 이용하는가?
컴퓨팅 시스템(102)은 또한 복수의 옵션들을 제공하고, (사용자 아이콘에 의해 표시되는 바와 같이) 협력자의 응답에 기인하는 제2 대화 상자(128(b))에서 이러한 옵션들을 제공한다. 시스템은 선택들 각각의 내부 신뢰도에 기반하여 생성된 질문에서의 대답 선택들을 순위화할 수 있다. 이 예에서, 협력자가 선택할 수 있는 3개의 옵션이 있다.
1. 무언가 또는 누군가를 어딘가로 가지고 간다.
2. 특정한 상태 또는 조건에 이르게 한다.
3. 법적으로 제시하거나 개시한다.
협력자(114(C))와 같이 협력자들 중 하나는 상자(128(a))에서의 시스템 생성된 사용자 질의 및 상자(128(b))에서의 선택들을 검토하고, 그 다음에 옵션을 클릭하거나 대답(예를 들어, 옵션 1)을 말함으로써 선택을 행한다. 응답은 컴퓨팅 시스템(102)으로 회신되고, 모델을 지원하는 의미론적 프리미티브들의 세트 및 스토리 모델을 잠재적으로 수정함으로써 그 스토리의 이해를 개선하는데 이용된다. 응답들은 미래에 판독되는 유사한 맥락들에서 단어 "가져다주다"와 같은 단어들 또는 구들의 미래의 해석들에 추가로 이용될 수 있다.
도 1에 도시된 바와 같이, 학습 및 이해 컴퓨팅 시스템(102)은 서버들(104(1)-(S)) 상에 저장되고 실행되는 복수의 모듈들(130)을 갖는다. 모듈들(130)은 본 명세서에서 설명된 컴퓨터 학습 및 이해 프로세스들을 구현하기 위한 프로그램들, 애플리케이션들, 데이터 구조들, 데이터 저장소들, 알고리즘들, 및 다른 처리 논리 및 메모리를 포함한다. 높은 레벨의 개요를 제공하기 위해 선택 모듈들이 도 1에 도시되어 있는 반면, 추가의 모듈들 및 더 상세한 논의들은 후술하는 도면들을 참조하여 본 명세서의 이하에서 제공된다.
학습 및 이해 모듈들(130)은 공동 추론 및 대화를 통해 인간들과 함께 동작하여 스토리들(106(1)-(T))과 같은 스토리를 정확하게 묘사하는 스토리 모델(132)을 생성한다. 스토리 모델(132)은 시간의 경과에 따라 스토리 내의 문장들의 초기의 구문론적 표현으로부터 스토리에 관한 더 높은 레벨들의 의미를 정확하게 전달하기 위해 의미론적 구조들로 구성된 인스턴스화된 생성 의미론적 프리미티브들 및 프레임 구조들을 포함하는 데이터 구조들로 진화한다.
모듈들(130)은 스토리(예를 들어, 스토리들(106(1)-(T)))를 수신하고 여러 언어학적 분석 결과들을 생성하기 위해 스토리 내의 문장들의 구문론적 분석을 수행하는 스토리 파싱 엔진(134)을 포함한다. 하나의 구현예에서, 언어학적 분석 결과들은 (1) 문장 구조를 제공하기 위한 구문론적 파스, (2) 술어 논항 구조(PAS), (3) 문장들 내의 각각의 엔티티에 타입을 할당하는 엔티티 타입 할당, 및 (4) 스토리의 동일 지시어 분석에 의해 생성된 동일 지시어 체인들을 포함한다. 잠재적으로, 언어가 일반적으로 모호하고 확실히 정확하게 되는 단일 분석을 결정하는 것이 가능하지 않을 수 있기 때문에, 복수 세트들의 언어학적 분석 결과들이 생성될 것이다. 언어학적 분석 결과들 및 이들이 생성되는 방법은 도 4 및 도 7을 참조하여 이하에서 더 상세히 설명된다.
지식 통합 엔진(136)은 스토리 파싱 엔진(134)으로부터의 언어학적 분석 결과들 및 스토리를 입력으로서 수신한다. 지식 통합 엔진(136)은 현재 세계 모델(138)에서 유지되는, 세계에 관한 시스템의 현재 지식과 관련하여 이해하는 스토리의 초기의 확률적인 의미론적 표현을 구축한다. 초기의 의미론적 표현은 스토리 모델(132)의 제1 버전을 형성하고, 이 제1 버전은 그 다음에 인간 상호작용 및 이전에 획득된 지식 리소스들의 이용을 통해 지식 통합 엔진(136)에 의해 시간의 경과에 따라 진화된다. 스토리에서, 정보는 흔히 추정하는 바와 같이 말하지 않은 채로 남겨지고, 불행하게도, 이것은 또한 모호한 의미들을 초래할 수 있다. 보다 상세히 후술되는 바와 같이, 지식 통합 엔진(136)은 말하지 않을 가능성이 있는 것을 효과적으로 예측하는 관련 의미론적 구조들을 추론하고, 이에 따라 시스템은 더 나은 지식 모델들을 형성하고 인간 학생들 또는 협력자들의 더 지능적인 질문들을 할 수 있다. 스토리가 "벤은 음식을 아바에게 가져다주었다"라고 말할 때, 지식 통합 엔진(136)은 "벤이 웨이터인가?", "아바가 레스토랑에 있는가?" 등과 같이 어떤 정보가 누락될 수 있는지를 평가한다.
지식 통합 엔진(136)은 메모리에 저장된 현재 세계 모델(138) 및 관련 의미론적 구조들을 추론하는 것을 돕기 위한 지식 도출 엔진(140)에 의존한다. 현재 세계 모델(138)은 시스템이 시간의 경과에 따라 학습되고 구축한 모든 의미론적 지식의 저장소이다. 현재 세계 모델(138)은 초기에 일반적이고 인스턴스화되지 않은 생성 의미론적 프리미티브들의 집합을 포함하거나 참조할 수 있다. 예를 들어, 이러한 생성 의미론적 프리미티브들은 임의의 추가 정보로 초기에 위치, 시간, 동작, 및 경험과 같은 간단한 개념들을 위한 미리 형성된 구조들을 포함할 수 있다. 지식 통합 엔진(136)은 현재 세계 모델(138)로부터 관련된 인스턴스화되지 않은 의미론적 프리미티브 구조들을 식별하고, 동사들(예를 들어, "가다", "가져다주다", "먹다" 등) 및 엔티티들(예를 들어, "벤", "아바", "메뉴", "스파게티")을 구조들에 매핑하는 것과 같이 스토리 내의 문장들의 구문론적 파스들에 포함된 단어들/구들로 이들을 인스턴스화한다. 현재 세계 모델(138)은 프레임들의 집합을 추가로 포함한다. 프레임은 특정한 맥락에서의 (GSP들을 포함하지만 이에 제한되지 않는) 명제들에 대한 확률 분포이다. 간단한 경우는, 전형적으로 특정한 장소(예를 들어, 레스토랑)에서 발생하는 동작들과 같이, 맥락에서 참이 될 가능성이 있는 명제들의 세트이다. 하나의 가능한 접근 방식에서, 지식 통합 엔진(136)은 추론된 의미론적 구조들 및 구문론적 분석의 출력을 구축하고 반복적으로 정렬하여, 알려진 프레임들에 잘 맞는 의미론적 구조들을 선호하는 스토리 모델(132)로 진화한다. 지식 통합 엔진(136)은 본질적으로 현재 세계 모델(138)에서 구현된 지식과 스토리 모델(132)을 반복적으로 정렬한다.
지식 통합 엔진(136)은 스마트 예측들을 행하는 것을 돕기 위해 지식 도출 엔진(140)에 질의한다. 지식 도출 엔진(140)은 큰 코퍼스들 및 다른 소스들을 오프라인으로 분석하고 본 명세서에서 "도출된 지식 리소스들"로서 지칭되는 리소스 저장소를 생성하도록 구성되며, 이는 스토리의 텍스트에 의해 암시되거나 잠재하는 정보를 캡처한다. 지식 도출 엔진(140)은 단어 의미 모호성 해소, 관계 검출, 의역 생성, 텍스트 함의, 장면 분석 및 누락 텍스트 생성을 포함하지만 이에 제한되지 않는 복수의 작업들을 구현하기 위해 도출된 지식 리소스들을 이용한다.
그 다양한 적용된 기술들 중에서, 지식 도출 엔진(140)은 단어의 의미의 모호성을 해소한다(예를 들어, 단어 "볼"은 정식 댄스 또는 스포츠 장비의 한 부분일 수 있다). 도출 엔진(140)은 단어들 및 구들이 재기입될 수 있지만 거의 동일한 의미(예를 들어, "군중 환호"가 "관중석에서의 박수갈채"와 거의 동일한가요?)를 가질 수 있는 의역들을 발견/인식할 수 있다. 지식 도출 엔진(140)은 단어들 또는 구들 사이의 관계들을 추가로 검출할 수 있다(예를 들어, "OPEC가 오일의 가격을 상승시켰다"라는 구에서, 구 "상승시켰다"는 양 증가의 관계를 갖는다). 지식 도출 엔진(140)은 다른 관련 지식을 검출 및 드러내기 위해 다른 형태들의 단어 및 구 분석을 수행할 수 있다. 이들 경우들 각각에서, 지식 도출 엔진(140)은 적합한 단어 의미들을 선택하고 의미를 스토리 모델(132) 내에 주입하는 정확한 의미론적 구조들 및 프레임들을 구축하기 위해 지식 통합 엔진(136)에 의해 이용되는 연관된 추론 확률들을 갖는 후보들의 순위화된 리스트를 지식 통합 엔진(136)에 회신한다. 지식 통합 엔진(136) 및 지식 도출 엔진(140)에 대한 더 상세한 논의는 적어도 도 4, 도 9 및 도 13을 참조하여 아래에 제공된다.
대화 엔진(142)은 스토리 모델(132)을 취하고, 의미론적 표현이 불완전하거나 시스템이 이러한 표현들에서 낮은 신뢰도를 갖는 영역들을 식별한다. 신뢰도 값들은 다양한 방식들로 계산될 수 있고, 작업에 관련되고 일반적으로 맥락 의존적이다. 대화 엔진(142)은 학생들(110(1)-(L)) 및/또는 협력자들(114(1)-(C))의 인간 집단이 이들이 가지고 있고 이러한 갭들을 채우는데 도움을 줄 정보로 질문들에 대답하도록 대화 질문들을 생성한다. 대화 엔진(142)은 스토리 모델(132)에 의해 표현된 바와 같이, 시스템의 현재 이해를 챌린지 또는 확인하기 위해 구조화된 질문들을 생성하고, 이들 질문들을 네트워크(120)를 통해 학생들(110(1)-(L)) 중 한 명 이상 및/또는 협력자들(114(1)-(C)) 중 하나 이상에 전송한다. 하나의 예시적인 질문이 UI(126)에 도시되어 있고, 여기서 대화 엔진(142)은 문장 "벤은 음식을 아바에게 가져다주었다"를 해석하는 방법에 대해 사용자 피드백을 구하는 질문을 만든다. 스토리 모델(132) 및 현재 세계 모델(138)이 질문에 대한 대답을 제공하기에 불충분한 갭들을 식별하는 것을 돕기 위해 독해 질문들이 또한 생성될 수 있다. 인간 학생/협력자는 네트워크(120)를 통해 컴퓨팅 시스템(102)으로 피드백을 회신하며, 여기서 그 결과들은 대화 엔진(142)에 의해 수집되고 분석을 위해 지식 통합 엔진(136)으로 전달된다.
대화 엔진(142)으로부터의 인간 상호작용 결과들에 기반하여, 지식 통합 엔진(136)은 수정된 또는 새로운 의미론적 구조들 및 스토리의 새로운/수정된 개념들을 나타내는 추가로 정의된 프레임 구조들로 현재 세계 모델(138)을 업데이트한다. 이러한 방식으로, 시스템(102)은 스토리 내의 언어의 더 깊은 이해를 계속 학습하고 얻는다. 또한, 지식 통합 엔진(136)은 업데이트된 현재 세계 모델(138)에 대해 스토리 모델(132)을 계속해서 반복적으로 개선한다. 지식 통합 엔진(136)은, 시스템이 스토리의 그 의미론적 표현에서 충분한 신뢰도를 갖는 것과 같이, 종료 조건이 도달될 때까지 대화 엔진(142)의 도움으로 인간들에 의해 그 이해를 계속 조사한다. 하나의 접근 방식에서, 지식 통합 엔진(136) 및 대화 엔진(142)은 현재의 이해가 스토리를 정확하게 묘사하는 높은 확률을 갖는다는 것을 시사하는 임계 신뢰도 레벨에 도달할 때까지 계속 반복한다. 임계값은 다양한 애플리케이션들 및 이용 맥락들에 따라 설정 및 조정될 수 있다.
신뢰도 레벨들은 주어진 상황의 목표들에 따라 다양한 방식들로 계산될 수 있다. 컴퓨팅 시스템(102)은, 예를 들어, 텍스트를 요약하거나 질문에 대답하는 것과 같이, 언어 이해를 포함하는 많은 목표들에 적용될 수 있다. 이러한 목표들을 달성하기 위한 전제 조건은 컴퓨팅 시스템(102)이 그 생각들 중 어떤 것이 참인지를 결정할 수 있어야 한다는 것이다. 하나의 구현예에서, 이러한 결정을 하기 위한 시스템에 의해 이용되는 메커니즘은 신뢰도 값을 각각의 생각에 할당하는 것이며, 여기서 신뢰도 값은 그 생각이 참인지를 컴퓨팅 시스템(102)이 얼마나 확신하는지를 나타낸다. 시스템(102)은 각각의 반복이 마지막 것보다 양호하도록 시스템(102)이 그 목표를 얼마나 잘 달성하는지에 기반하여 신뢰도 값들을 반복적으로 조정한다. 결국, 이 프로세스는 생각들의 현재 세트에 대해 그 목표에 대한 시스템의 성능을 최대화하는 생각들에 대한 신뢰도들의 세트를 찾는다. 이러한 접근 방식은 두 가지 전략으로 이어지고, 컴퓨팅 시스템(102)은 그 목표에 대한 그 성능을 개선하고 개선을 중단할 때를 결정하도록 전개할 수 있다.
첫째, 시스템은 그 목표들로부터 독립적으로 그 생각들을 검사할 수 있다. 즉, 시스템은 대화 엔진(142) 또는 지식 도출 엔진(140)으로부터 정보를 구하는 생각으로 전환하여 그 생각이 참이라는 그 신뢰도를 보정할 수 있다. 컴퓨팅 시스템(102)은 그 생각들의 세트를 소진했을 때 또는 새로운 정보로 인한 신뢰도 변화들이 통계적 유의성 레벨 아래로 떨어졌다는 것을 발견할 때 더 많은 정보를 구하는 것을 중단할 수 있다.
둘째, 컴퓨팅 시스템(102)은 적절한 또는 부적절한 것으로 목표를 달성하는 그 능력을 판단할 수 있고 그 다음에 그 결과에 대해 작용한다. 예를 들어, 시스템의 질문 대답 정확도가 60%였고, 시스템의 목표가 70%의 정확도를 달성하는 것이면, 시스템(102)은 그 목표가 달성될 때까지 그 생각들에서의 신뢰도를 개선시키기 위해 대화 엔진(142) 또는 지식 도출 엔진(140)으로부터 정보를 구할 것이다. 일단 그 목표가 달성되면, 컴퓨팅 시스템(102)은 개선을 멈출 수 있다. 대안적으로, 원한다면, 컴퓨팅 시스템(102)은 그 정확도에서의 변화들이 통계적 유의성 레벨 아래로 떨어졌을 때까지 추가로 계속 반복할 수 있다. 전자에 대한 이러한 후자의 접근 방식의 이점은 그것이 또한 당면한 목표에 대해 시스템에 새로운 생각들을 추가하는 유용성을 평가를 가능하게 한다는 것이다. 즉, 새로운 생각들이 목표에 대한 시스템의 성능을 개선시켰다면, 새로운 생각들의 유용성이 높다. 이러한 생각들이 영향을 주지 않거나 부정적인 영향을 준다면, 새로운 생각들의 유용성이 낮다.
지식 통합 엔진(136)이 스토리 모델(132)이 스토리(106)의 그럴듯한 이해를 나타내는 것으로 확신하면, 스토리 모델(132)은 미래의 검색 및 이용을 위해 저장되고 인덱싱될 수 있다. 스토리 모델(132)을 생성하기 위해 획득된 지식은 현재 세계 모델(138)에서 또한 캡처된다. 이러한 방식으로, 각각의 스토리에 대해 전개된 이해는 더 많은 정보가 학습됨에 따라 미래의 고려를 위해 그리고 아마도 훨씬 더 많은 개선을 위해 유지될 수 있다. 더욱이, 시스템이 복수의 스토리들에 대한 복수의 사용자 상호작용들을 통해 진행함에 따라, 현재 세계 모델(138)은 각각의 상호작용에서 점증적으로 풍부해진다. 더 많은 스토리들이 판독됨에 따라, 현재 세계 모델(138)은 더 많이 추론된 프레임들로 성장하고 점점 더 복잡한 주제의 이해를 보조할 수 있다. 대화 엔진(142)의 더 상세한 논의는 적어도 도 4, 도 16 및 도 22를 참조하여 아래에 제공된다.
도시된 구현예에서, 학습 및 이해 모듈들(130)은 스토리 모델(132) 및 현재 세계 모델(138)을 구현하기 위한 하나의 방식으로서 지식 모델들과 함께 작업하기 위한 시설을 제공하는 생각 표현 및 추리 프레임워크(144)를 더 포함한다. 지식 모델들은 "엔티티들" 및 "명제들"로 구성되는 지식 표현 언어(KRL)로 표현될 수 있는, 지식의 정식 구조화된 표현들이다. 엔티티는, 허구적인, 예를 들어 "페가수스" 또는 추상적인, 예를 들어 "철학적"인 사물들을 포함하는, 세계에서의 사물을 나타낸다. 명제는 참 또는 거짓일 수 있는 진술이다. 명제는 (엔티티의 한 종류인) 술어 및 논항들의 세트를 가지며, 여기서 각각의 논항은 엔티티들 또는 명제들일 수 있는 값 및 라벨(역할이라고 지칭됨)을 갖는다. 동일한 역할은 복수의 값들을 가질 수 있다. 생각은 약간의 확률로 에이전트(반드시 그렇지는 않지만 흔히 시스템 자체) 사고들이 참인 명제이다.
프레임워크(144)는 시스템 내의 다양한 모듈들에 의해 이용되는 기능 컴포넌트들을 포함한다. 프레임워크는 지식 표현 언어를 이용하고, 자연 언어 텍스트들의 의미를 표현하도록 구성될 수 있는 작은 세트의 구조들인 "맥락" 차별화 및 생성 의미론적 프리미티브들에 대한 추론 및 학습 메커니즘들을 제공한다. 보다 구체적으로, 프레임워크(144)의 컴포넌트들은 (1) 엔티티들 및 명제들을 표현하기 위한 정식 언어, (2) 빈번하게 이용될 것으로 예상되는 정의 명제 타입들의 세트를 제공하기 위한 공통 의미론적 컴포넌트들, (3) 지식 모델들의 지속적 저장을 제공하고 그 지식에 대한 질의들을 지원하기 위한 지식 저장소, 및 (4) 지식 모델들에 대해 상이한 추리 능력들을 제공하는 하나 이상의 추리 엔진을 포함할 수 있다. 도 4 및 도 15를 적어도 참조하여, 생각 표현 및 추리 프레임워크(144)의 더 상세한 논의가 아래에서 제공된다.
도 1은 학습 및 이해 컴퓨팅 시스템(102)에서의 선택 모듈들(130)의 개요를 제공한다. 더 상세한 설명들 및 예들은 도 4를 참조하기 시작하여 아래에서 제공된다. 그러나, 더 상세한 설명을 제공하기 전에, 학생들(110(1)-(L)) 및 협력자들(114(1)-(C))과 관계하는 아키텍처(100)에 의해 구현되는 높은 레벨의 프로세스들이 도 2 및 도 3을 참조하여 설명될 것이다.
또한, 도 1은 영어로 수행되는 인간들과의 예시적인 대화들을 도시한다. 그러나, 본 명세서에서 설명되는 아키텍처(100)는 언어에 상관 없으며 임의의 언어로 인간들과 상호작용하도록 구성될 수 있다는 점에 유의한다.
예시적인 일반 동작
도 2a 및 도 2b는 인간의 상호작용을 통해 텍스트들(예를 들어, 스토리들)에서 이용되는 언어의 이해를 학습하고 전개하기 위한, 도 1의 아키텍처(100)에 의해 구현되는 일반적인 프로세스(200)를 도시한다. 프로세스(200)(및 흐름도들을 참조하여 설명된 모든 후속 프로세스들)는 하드웨어, 소프트웨어, 또는 이들의 조합(예를 들어, 서버들(104(1)-(S))에 의해 제공되는 것과 같음)으로 구현될 수 있는 동작들의 시퀀스를 나타내는 논리적 흐름 그래프에서의 블록들의 집합으로서 도시된다. 소프트웨어의 맥락에서, 블록들은, 하나 이상의 프로세서에 의해 실행될 때, 인용되고 참조된 동작들을 수행하는 컴퓨터 실행가능한 명령어들을 나타낸다. 일반적으로, 컴퓨터 실행가능한 명령어들은 특정한 기능들을 수행하거나 특정한 추상적인 데이터 타입들을 구현하는 루틴들, 프로그램들, 오브젝트들, 컴포넌트들, 데이터 구조들 등을 포함한다. 프로세서들에 의해 실행될 때, 컴퓨팅 시스템은 스토리들에 제시된 바와 같이 텍스트 언어의 이해를 학습하고 획득하도록 특수하게 구성된 기계로 변환된다. 동작들이 설명되는 순서는 제한적인 것으로 해석되도록 의도되지 않으며, 임의의 수의 설명된 블록들은 프로세스를 구현하기 위해 임의의 순서로 및/또는 동시에 결합될 수 있거나 더 많은 증분적인 단계들의 더 많은 블록들로 추가로 분리될 수 있다.
논의를 위해, 프로세스(200)는 도 1의 아키텍처(100), 컴퓨팅 시스템(102), 및 사용자 디바이스들(114 및 118)을 참조하여 설명된다. 또한, 프로세스(200)는, 사용자 디바이스들(114 및 118)에 의해 수행되는 동작들과는 별도로 컴퓨팅 시스템(102)에 의해 수행되는 동작들을 일반적으로 도시하기 위해 2개의 열들로 도시된다.
도 2a를 참조하면, 202에서, 스토리가 학습 및 이해 컴퓨팅 시스템(102)에서 수신된다. 스토리는 짧은 "벤 및 아바" 스토리(106(1)) 및 짧은 "엔조 및 조" 스토리(106(T))에 의해 예시된 바와 같이, 복수의 텍스트 문장들로 형성된다. 스토리는 시스템(102)에 의해 디지털 포맷으로 입수되거나 변환된다. 204에서, 동일한 스토리가 사용자 디바이스(114/118)에 의해 수신되고, 206에서, 스토리를 판독할 그 또는 그녀를 위해 사용자에게 제시된다. 스토리는 사용자가 소비하도록 표시될 수 있고/있거나 오디오 출력으로 변환될 수 있다. 스토리는 다수의 독해 질문들을 수반할 수 있다.
208에서, 컴퓨팅 시스템(102)은 스토리의 제1 이해를 나타내기 위해 제1 또는 초기 스토리 모델을 생성한다. 제1 스토리 모델을 생성하는 것은 210에서, 각각의 문장에 대한 언어학적 분석 결과들(예를 들어, 구문론적 파스, 술어 논항 구조, 엔티티 타입 할당, 동일 지시어)을 생성하는, (스토리 파싱이라고 지칭되는) 구문론적 분석을 포함한다. 도 1을 참조하면, 스토리 파싱 엔진(134)은 이러한 파싱 동작을 수행하도록 구성된다. 파싱 동작은 문장 구조를 제공하기 위한 구문론적 파스, 술어 논항 구조(PAS), 엔티티 타입 할당들 및 동일 지시어 체인들을 포함하는 언어학적 분석 결과들의 세트를 생성한다. 파싱 동작 및 그 예들은 도 4 내지 도 8을 참조하여 아래에서 더 상세히 설명된다.
일단 언어학적 분석 결과들이 생성되면, 212에서, 컴퓨팅 시스템(102)은 파싱된 문장의 구문론적 표현을 의미론적으로 처리함으로써 각각의 파싱된 문장의 표현으로서 의미론적 구조를 추론한다. 지식 통합 엔진(136) 및 지식 도출 엔진(140)은 의미론적 구조를 추론하는 이러한 동작(212)을 지원하는 작업들을 수행한다. 그 결과의 제1 스토리 모델은, 예를 들어, 인스턴스화된 생성 의미론적 프리미티브들 및 프레임 구조들의 연관된 세트를 통해, 엔티티들 및 명제들의 지식 데이터 구조들로서 표현된다.
214에서, 시스템은 현재 세계 모델에 대해 스토리 모델을 평가한다. 시스템은 스토리 모델이 현재 세계 모델에서 알려진 프레임들과 잘 맞는 높은 신뢰도의 의미론적 표현을 포함하지 않는 영역들을 식별할 수 있다. 시스템은 또한 확신 있게 대답될 수 없는 독해 질문들이 있는 스토리 모델에서의 결함들을 식별할 수 있다. 216에서, 컴퓨팅 시스템(102)은 사용자의 스토리의 이해를 조사하고/하거나 시스템의 스토리의 이해를 개선, 테스트 또는 챌린지하기 위해 하나 이상의 사용자 질문을 생성한다. 사용자 질문들은 초기의 인스턴스화된 생성 의미론적 프리미티브들이 스토리의 정확한 의미를 전달하는지 여부를 챌린지하기 위해 상이한 세트들의 생성 의미론적 프리미티브들에 기반하여 다른 가능한 이해들을 제공하는 문의들을 포함한다. 대화 엔진(142)은 사용자 질문들을 생성하는데 이용될 수 있다.
218에서, 사용자 질문들은 인간 사용자에게 제시하기 위해 컴퓨터 시스템(102)으로부터 사용자 컴퓨팅 디바이스(114/118)로 전송된다. 220에서, 질문들은, 예를 들어 도 1의 UI(126)를 통해 사용자에게 수신되고 제시되거나, 또는 사용자가 들을 수 있도록 청각적으로 출력된다. 222에서, 사용자 디바이스는 UI를 통해 입력되었거나 말해졌을 수 있는 사용자 응답들을 캡처한다. 사용자가 206에서 제시된 스토리를 판독하였기 때문에, 사용자는 질문들에 대답하기 위한 스토리 맥락을 갖는다. 사용자는 그 또는 그녀의 지식, 배경, 및 질문들에 대답한 경험들에 의존하여, 잠재적으로 현재 세계 모델에 추가될 수 있는 새로운 정보를 제공한다. 컴퓨팅 시스템은 이전에 이 정보를 가지지 않았을 수 있거나, 또는 아마도 이 정보를 가졌다는 것을 완전히 인식하지 못했을 수 있다. 224에서, 사용자 디바이스는 사용자 응답들을 컴퓨팅 시스템(102)으로 다시 전송한다.
226에서, 질문들에 대한 사용자 응답들이 컴퓨팅 시스템(102)에서 수신된다. 컴퓨팅 디바이스(102)와 사용자 디바이스들(114/118) 사이의 상호작용들은 복수의 질문들을 전송하고 복수의 응답들을 수신하여 인간 사용자로부터 지식을 충분히 추출하는 것을 포함할 수 있다.
도 2b를 참조하면, 228에서, 스토리의 새로운 이해를 나타내기 위해 새로운 스토리 모델이 생성된다. 이 동작의 일부로서, 230에서, 사용자 응답들이 현재 세계 모델을 업데이트하는데 이용되고, 232에서, 원래의 스토리 모델(132)이 업데이트된 현재 세계 모델(138)과 정렬하도록 수정된다. 새로운 스토리 모델은 새로운 세트의 인스턴스화된 생성 의미론적 프리미티브들 및 프레임 구조들에 의해 표현되는 바와 같이, 엔티티들 및 명제들의 지식 데이터 구조로서 그 새로운 이해를 표현한다. 새로운 세트의 인스턴스화된 생성 의미론적 프리미티브들 및 프레임 구조들은 제1 세트의 인스턴스화된 생성 의미론적 프리미티브들 및 프레임 구조들에 비해 단지 약간일 수 있더라도 상이하다.
234에서, 새로운 스토리 모델(132)의 형성 후에, 그 스토리 모델이 업데이트된 현재 세계 모델에 대해 평가된다. 신뢰도 스코어들은 스토리 모델이 현재 세계 모델과 얼마나 잘 정렬되는지를 결정하기 위해 계산된다. 작은 수의 프레임들이 스토리로부터 추출된 많은 수의 생각들과 매칭될 때 더 높은 스코어들이 주어진다. 또한, 새롭게 예측된 생각들이 스토리에 관해 시스템의 다른 생각들과 모순되는 경우에 프레임 정렬들의 세트가 저조하게 스코어링한다. 236에서, 신뢰도 스코어들이 임계값과 비교된다. 신뢰도 스코어들이 미리 설정된 임계값을 충족시킬 때(즉, 236으로부터 "예" 분지)와 같이 종료 조건에 도달하였으면, 238에서 스토리 모델(132)은 스토리의 정확한 이해로서 출력된다. 반대로, 신뢰도 스코어들이 미리 설정된 임계값을 충족시키지 못할 때(즉, 236으로부터 "아니오" 분지)와 같이 종료 조건에 도달하지 않으면, 프로세스(200)는 216(도 2a)에서 새로운 스토리 모델의 이해를 추가로 테스트하기 위해 새로운 세트의 사용자 질문들을 생성하도록 복귀된다.
도 2a 및 도 2b의 예에서, 아키텍처(100)는, 시스템이 스토리들에 표현된 바와 같이 자연 언어들의 더 깊은 이해를 학습하고 획득하는 것을 돕기 위해 인간 집단과 관계하는 것으로서 설명된다. 컴퓨팅 시스템(100)은 애드혹 학습 환경에서 또는 시스템의 지식을 개선하기 위해 협력자들이 질문들을 제기하는 더 정식의 협력 환경에서 사용자들과 관계한다. 그러나, 아키텍처(100)는 시스템 자신의 지식 기반을 계속 개선하면서 텍스트 기반 작업들에서 설명되는 특정 토픽들에 대해 인간들을 가르치기 위해 교육 환경에서 이용될 수 있다. 이러한 하나의 예가 도 3을 참조하여 설명된다.
도 3은 해당 토픽을 중심으로 상호작용 대화에 참여함으로써 관심 있는 토픽에 대해 사람들을 가르치기 위한 예시적인 프로세스(300)를 도시한다. 302에서, 사람들은 그 또는 그녀의 디바이스(114/118)를 이용하여 컴퓨팅 시스템(102)과의 대화 세션을 시작한다. 사용자는 질문하거나, 관심 있는 토픽에 대해 진술을 하거나, 또는 논의할 텍스트 또는 기사를 참조하는 것을 포함하여, 임의의 수의 방식들로 대화 세션을 개시할 수 있다. 304에서, 컴퓨팅 시스템은 대화 세션에 대한 암시적인 요청을 인식하고, 특정한 토픽에 대해 사용자와 관계하고 아마도 사용자로부터 더 많은 정보를 추출하도록 설계된 트랜지션 응답을 생성한다. 트랜지션 응답은 많은 가능한 미리 설정된 그리고 미리 저장된 트랜지션 진술들(예를 들어, "무엇을 도와드릴까요?"; "당신이 알고 싶은 것에 대해 더 많이 말해줄 수 있습니까?"; "당신이 '비행기들'이라고 말했을 때, 어떤 종류들의 비행기들에 관심이 있습니까?" 등) 중 하나일 수 있다. 일부 구현예들에서, 시스템은 도 2a 및 도 2b와 동일한 프로세스를 이용하여 논의될 토픽을 찾기 위해 사용자와 대화할 수 있다. 시스템은 인간이 토픽의 학습을 시작하는 것을 돕도록 설계된 프레임을 가질 수 있고, 시스템은 이 프레임에 관한 정보를 추론하려고 시도한다. 변수가 추론될 수 없는 경우, 시스템은 이에 관해 인간에게 문의할 것이고, 전술한 일반적인 트랜지션 질문으로 이어진다.
306 및 308에서, 컴퓨팅 시스템 및 사용자는 그 또는 그녀의 사용자 디바이스를 통해 대화 세션에 참여하여 토픽을 정의한다. 310에서, 컴퓨팅 시스템은 토픽에 관련된 하나 이상의 텍스트를 식별한다. 텍스트는 기사, 백서, 제품 설명, 교육용 입문서, 책 발췌록 등과 같이 임의의 수의 형태들로 구현될 수 있다. 일단 식별되면, 312에서, 컴퓨팅 시스템은 텍스트로부터 토픽에 관한 지식 모델을 구축한다. 전술한 바와 같이, 이것은 314에서 텍스트를 파싱하고, 316에서 텍스트를 나타내는 의미론적 구조들을 추론하는 것을 포함할 수 있다.
이때, 컴퓨팅 시스템(102)은 사용자와 토픽을 논의할 준비가 된다. 시스템은 토픽에 대해 판독한 모든 관련 정보에 대한 요약을 생성할 수 있다. 320에서, 사용자는 토픽에 대해 디바이스(114/118)를 통해 질문할 수 있다. 322에서, 컴퓨팅 시스템(102)은 질문들은 수신하고 새롭게 생성된 토픽 모델 및 현재 세계 모델에 기반하여 컴퓨터 생성 응답들을 공식화한다. 응답들은 시스템이 현재 세계 모델이 정확한 것이라는 높은 신뢰도를 갖는 기본 정보를 제공할 수 있다. 대안적으로 또는 추가적으로, 응답은 논의되고 있는 주제의 지식 모델과 현재 세계 모델 사이의 차이들을 조정하도록 의도된 질문들의 형태일 수 있다. 응답들은 사용자 디바이스에 전송되고, 324에서 사용자가 응답들로부터 학습하도록 사용자에게 제시된다. 이러한 상호작용 교환을 통해, 컴퓨팅 시스템(102)은 토픽에 대해 사용자를 가르치고, 텍스트 및 현재 세계 모델에 기반하여 생성된 지식 모델을 정렬함으로써 토픽을 설명하는 텍스트의 더 깊은 이해를 추가로 학습하고 얻는다.
326에서, 프로세스(300)는 사용자가 그 또는 그녀가 토픽을 충분히 학습했음을 나타낼 때(즉, 326으로부터 "예" 분지)까지 계속된다. 그 또는 그녀가 종료하지 않은 경우(즉, 326으로부터 "아니오" 분지), 사용자는 320에서 토픽에 대해 추가 질문들을 할 수 있거나, 새로운 토픽으로 이동하고 302에서 프로세스를 재시작할 수 있다. 사용자가 종료하면(즉, 326으로부터 "예" 분지), 프로세스(300)가 완료될 수 있다.
예시적인 시스템 설계
도 4는 도 1의 학습 및 이해 아키텍처를 구현하는 선택된 모듈들(130)을 도시한다. 모듈들(130)은 학습 및 이해 컴퓨팅 시스템(102)에 의해 호스팅되는 것으로 도시되어 있다. 모듈들(130)은 도 1에 도입된 것들 및 추가적인 데이터 저장소들을 포함한다. 도 4는 컴퓨터 생성 스토리 모델이 스토리에서의 언어를 이해하기 위해 공동 추론 및 인간들과의 대화를 통해 드러남에 따라 아키텍처를 통한 프로세스 작업 흐름을 검증하기 위해 다양한 모듈들 사이의 데이터 흐름들을 또한 도시한다.
도 4에 도시된 바와 같이, 텍스트와 같은 자연 언어 입력은 학습 및 이해 컴퓨팅 시스템(102)에 의해 입수되고, 또한 인간 학생들/협력자들과 연관된 사용자 디바이스들(114/118)에 제공된다. 텍스트는 본질적으로 자연 언어로 작성되거나 말해진 임의의 디지털 형태의 단어들, 구들, 또는 문장들일 수 있고, 스토리(106)로서 도 4에 도시된다. 텍스트는 판독을 위해 사용자들의 디스플레이 스크린 상에 제시되거나 사용자들이 듣도록 청각적으로 재생될 수 있다.
스토리 파싱 엔진(134)은 주제 텍스트를 분석하고 언어학적 분석 결과들의 세트를 생성하도록 실행된다. 언어학적 분석 결과들 중에는 문장 구조에 관한 정보를 제공하는 구문론적 파스가 있다. 구문론적 파스는 학생들이 문법 학교에서 학습하는, 동사들, 명사들 등이 구조적으로 관련되는 문장 도해화와 유사하다. 스토리 파싱 엔진(134)은 또한 다른 분석 컴포넌트들이 동작하는 프리미티브 생각들로서 역할하는 술어들 및 그 인스턴스화된 논항들의 파서 중립 표현을 갖는 술어 논항 구조(PAS)를 결정한다. 예를 들어, 문장 "벤은 아바에게 음식을 가져다주었다"의 구문론적 파스에 이어서, PAS는 "벤"이 주어 논항이고, "음식"이 목적어 논항이고, "가져다주었다" 또는 어근 형태 "가져다주다"가 술어(또는 이 경우에는 술어 동사)인 것을 인식한다. 스토리 파싱 엔진(134)은 또한 문장 내의 다양한 단어들/구들에 엔티티 타입들을 할당하고, 동일하지 않지만, 동일한 것으로 지칭하는 단어들/구들의 동일 지시어 체인들을 도출한다.
스토리 파싱 엔진(134)의 동작을 예시하기 위해, 다음의 샘플 텍스트를 고려한다:
고온 액체 암석은 지면 아래에 있다. 화산들은 그 액체가 나올 수 있는 지면에서의 구멍들이다. 때때로, 화산들이 분출한다. 이것은 이들이 폭발하는 것을 의미한다. 연기 및 고온 액체 암석이 화산으로부터 나온다. 액체는 용암으로 불린다. 베수비오 산은 이탈리아의 유명한 화산이다.
문장 "연기 및 고온 액체 암석이 화산으로부터 나온다"에 대해, 스토리 파싱 엔진(134)은 주어 논항들로서 "연기" 및 "고온 액체 암석"과, "나오다"의 어근 술어를 갖는 PAS를 형성할 수 있다. 이러한 엔진은 또한 명사들로서 "연기", "암석" 및 "화산"을 식별하고, 명사 "암석"을 수식하는 형용사들로서 "고온" 및 "액체"를 식별하며, 또한 주어 명사들 "연기"와 "암석" 사이의 접속사로서 "및"을 인식한다. 엔진(134)은 또한 산 타입으로서 "베수비오 산" 및 국가 타입으로서 "이탈리아"로 주석을 다는 것과 같이 엔티티 타입들로 단어들에 주석을 단다. 스토리 파싱 엔진(134)은, 또한 용어들 "고온 액체 암석", "그 액체", "고온 액체 암석", "액체" 및 "용암"이 모두 동일한 것을 지칭하는 것으로서 동일하게 지시될 수 있음을 인식할 수 있다.
스토리 파싱 엔진(134)은 지식 통합 엔진(136)에게, 그 스토리와 함께, 언어학적 분석 결과들을 출력한다. 언어학적 분석 결과들은, 스토리(106)의 엔티티 타입들 및 동일 지시어들뿐만 아니라, 언어학적 구조를 함께 형성하는, 구문론적 파스 및 술어 논항 구조들을 포함할 수 있다. 스토리 파싱 엔진(134)의 하나의 구현예에 대한 더 상세한 설명이 도 7 및 도 8을 참조하여 아래에서 제공된다.
지식 통합 엔진(136)은 현재 세계 모델(138)에 포함된 바와 같이 세계에 관한 시스템의 현재 지식과 관련하여 "이해"하는 스토리 모델(132)의 초기의 확률적인 의미론적 표현을 구축하기 위해 스토리 및 언어학적 분석 결과들을 입력으로서 취한다. 지식 통합 엔진(136)은 스토리 모델(132)을 현재 세계 모델(138)과 정렬시키기 위해 공동 추론 및 인간 상호작용을 통해 시간의 경과에 따라 스토리 모델(132)을 진화시키는 실행가능한 컴포넌트들의 세트이다. 지식 통합 엔진(136)은, 생각 생성 컴포넌트들(402), 제약 컴포넌트들(404) 및 공동 추론 엔진(406)으로 구성가능한 매우 유연한 모듈이다. 생각 생성 컴포넌트들(402)은 생각들의 세트를 입력하고 입력 생각들이 주어지면 참일 수 있는 새로운 생각들에 대한 확률 분포를 출력한다. 앞서 논의된 바와 같이, 생각은 약간의 확률로 시스템 또는 다른 에이전트 사고들이 참인 명제이다. 제약 컴포넌트들(404)은 생각들의 세트를 입력하고, 그 생각들의 세트가 참인 확률을 나타내는 스코어를 출력한다. 공동 추론 엔진(406)은 생각 생성 컴포넌트들(402) 및 제약 컴포넌트들(404)로부터의 출력을 취하고, 생각들에 대한 공동 분산을 계산한다. 이것은 스토리 모델을 구성하는데 이용되는 각각의 생각의 주변 확률을 계산하는데 이용된다. 공동 추론 엔진(406)은 그 시간에 알려진 대로의 모든 생각들에 기반하여 가능한 생각들에 대한 조건부 확률들을 생성하도록 구성될 수 있다. 일부 맥락들에서, 생각 생성 컴포넌트들(402), 제약 컴포넌트들(404) 및 공동 추론 엔진(406)은 일반적으로 공동 추론 시스템으로서 지칭될 수 있다.
공동 추론 엔진(406)은 다양한 방식들로 동작할 수 있다. 하나의 구현예에서, 공동 추론 엔진은 복수의 가능한 세계들을 제안하고, 여기서 각각의 세계는 참인 것으로 고려되는 생각들의 세트를 갖는다. 생각 생성 컴포넌트들(402)은 세계들에 대해 반복적으로 실행되어, 참인 생각들을 관찰하고 새로운 생각들에 대한 분산들을 제안한다. 이러한 확률 분포들로부터 생각들을 이끌어 냄으로써 새로운 세계들이 생성된다. 제약 컴포넌트들(404)은 세계들의 확률을 평가하도록 실행된다. 프로세스가 종료될 때, 생각의 주변 확률은 그것이 참인 세계들의 확률의 합이다. 주변 확률들이 생각들의 확률들 사이의 관계들을 캡처하지 않을 수 있기 때문에, 세계들은 스토리 모델(132)의 일부로서 저장될 수 있다. 가능한 생각 생성 컴포넌트들의 더 상세한 구현예가 도 9를 참조하여 제공된다.
공동 추론에 있어서, 지식 통합 엔진(136)은 해석 레벨들을 결합한다. 즉, 엔진(136)은 다양한 레벨들의 개념적인 풍부함으로 텍스트를 해석한다. 더 높은 해석 레벨들은 더 강력하지만, 또한 더 암시적이며 따라서 추론하기에 더 어렵다. 하나의 구현예에서, 해석 레벨들은, 아마도 단어들(또는 때로는 일반적으로 "토큰들"이라고 불림)의 시퀀스로 표현되는, 본질적으로 자연 언어 텍스트인 제1 또는 기본 레벨을 포함한다. 제2 또는 다음 해석 레벨은 자연 언어 텍스트의 언어학적 분석을 포함한다. 이러한 언어학적 분석은 문법적 파스 및 통계적 단어 유사성(예를 들어, 임베딩)을 제공하도록 수행될 수 있다. 이러한 제2 해석 레벨은 스토리 파싱 엔진(134)에 의해 제공된다.
제3 레벨은 텍스트 언어에 관한 공간적, 시간적 및 인지적 사실들의 형태로 더 풍부한 의미를 제공하기 위한 생성 의미론적 프리미티브의 분석을 포함한다. 생성 의미론적 프리미티브들(GSP들)은 의미의 원자적인 구축 블록들로서 보여질 수 있어서, 스토리에서의 언어의 더 의미 있는 해석을 가능하게 한다. GSP들은 시간, 공간, 논리, 번호, 변경, 야기, 연관성, 생각, 지각, 표현 및 의도와 같이 세계에 관한 기본 사실들을 나타낸다. GSP들은 기계의 지식 및 경험 모두를 나타내기 위해 무수한 방식들로 인스턴스화되고 구성될 수 있다. GSP들은 술어 및 역할들을 갖는 KRL 명제들로서 표현된다. GSP는 스토리 엔티티들 및 다른 GSP 명제들이 이들 KRL 역할들을 채울 때 인스턴스화된다. (명시적으로 언급되거나 담론의 맥락에서 존재하는 것으로 암시되는) 스토리에서의 텍스트로부터의 엔티티들은 GSP에 대응하는 KRL 명제에서의 역할을 인스턴스화할 수 있다. 추가로, GSP들은 다른 GSP의 역할에서 하나의 GSP를 네스팅하는 것을 통해 구성될 수 있다. 이러한 구성은 시스템이 자연 언어 진술들의 의미에 대한 제한되지 않은 수의 사실들을 표현하게 할 수 있다. 이러한 방식으로, GSP 구조는 문장이 실제로 써지는 방법과 무관하게 벤 및 아바 스토리에서 벤이 일부 음식을 아바에게 가져다주는 의미 또는 의미론을 해석하기 위한 공통 방식을 제공한다. 예를 들어, 그 의미는 다음과 같이 유사하지만 동일하지 않은 방식들로 표현될 수 있다: "벤은 음식을 아바에게 가져다주었다"; "벤은 음식을 아바에게 가지고 갔다"; "벤은 음식을 아바에게 서빙하였다"; "벤은 음식을 아바에게 건네 주었다"; "아바는 벤으로부터 음식을 가져 갔다"; "아바는 벤으로부터 음식을 얻었다"; "벤은 음식을 아바에게 주었다"; "아바는 벤으로부터 음식을 받았다"; 및 "벤은 아바에게 음식을 가져 왔다". GSP들의 임의의 인스턴스화들은 자연 언어로 변환될 수 있어서, 인간들이 GSP들의 내부 표현에 노출되지 않고 텍스트의 시스템 표현과 직접적으로 상호작용하게 할 수 있다.
제4 및 최고 레벨은 논리적 또는 공통 의미 지식 스크립트들을 제공하는 프레임 의미론의 분석에 관한 것이고, 이에 의해 스토리에서 암시적일 수 있는 많은 것들을 채운다. 프레임은 특정한 맥락에서의 (GSP들과 같은) 명제들에 대한 확률 분포이다. 간단한 경우는, 전형적으로 특정한 장소에서 발생하는 동작들과 같은, 맥락에서 참이 될 가능성이 있는 명제들의 세트이다. 벤 및 아바 스토리에서, 예를 들어, "레스토랑" 프레임은 벤 및 아바가 레스토랑에 있다는 암시적 정보를 제공할 수 있고, 이에 의해 스토리에서 명시적 언어를 더 잘 이해하기 위해 그 안의 테마 또는 맥락을 제공한다. 스토리에 설명된 경험들이 그 프레임에 저장된 경험들과 매칭하기 때문에 레스토랑 프레임이 적용된다. 예를 들어, 레스토랑 프레임은 레스토랑의 맥락에서 발생할 가능성이 있는 다음의 동작들의 시퀀스를 위한 GSP들로 구성될 수 있다(여기서 이들은 자연 언어 표현으로 도시되어 있지만, 실제 프레임에서는 이들이 GSP들로서 표현될 것이다):
· 고객이 레스토랑에 들어간다.
· 고객이 테이블에 앉는다.
· 고객이 웨이터가 오기를 기다린다.
· 웨이터가 고객에게 메뉴를 가져다준다.
· 고객이 갖고 싶은 음식을 고른다.
· 웨이터가 음식을 고객에게 가져다준다.
· 고객이 음식을 먹는다.
· 웨이터가 계산서를 가져다준다.
· 고객이 계산을 한다.
· 고객이 레스토랑을 떠난다.
지식 통합 엔진(136)은 레스토랑 프레임을 벤 및 아바 스토리의 이해에 적용하는 것과 같이 스토리를 처리할 때 이런 프레임들을 이용한다.
지식 통합 엔진(136)은 스토리 파싱 엔진(134)에 의해 생성된 기본적인 언어학적 분석 결과들(즉, 제2 레벨 해석)을 취하고, 이어서 생성 의미론적 프리미티브들(즉, 제3 레벨 해석) 및 프레임 의미론(즉, 제4 레벨 해석)의 이용을 통해 의미를 추론함으로써 스토리 모델(132)을 진화시킨다.
그 동작의 일부로서, 지식 통합 엔진(136)은 생성 의미론적 프리미티브들 및 상위 레벨 프레임들 둘 다를 추론하기 위해 프레임 추론 프로세스를 수행한다. 프레임 추론 프로세스는 4개의 주요 양태들: 프레임 검색, 프레임 정렬, 생각 예측, 및 평가를 포함한다. 프레임 검색에서, 프레임들의 서브세트는 스토리에 관한 시스템의 현재 생각들에 관련될 수 있는 현재 세계 모델(138)로부터 식별된다. 프레임들은 또한 통계적 또는 룰 기반 기술들을 이용하여 스폿 상에서 동적으로 생성될 수 있다. 프레임 정렬은 프레임에서의 역할들(변수들)에 대한 스토리 내의 엔티티들의 할당들을 결정하는 것을 포함한다. 프레임 정렬은 통계적 및/또는 의미론적 기술들에 기반하여 다양한 매칭 알고리즘들을 이용하여 행해진다. 예를 들어, 하나의 구현예에서, 명제들이 텍스트 명제들인 경우, 컴퓨팅 시스템(102)은 통계적 텍스트 유사성 알고리즘(예를 들어, Word2Vec)을 이용하여 명제들을 정렬/매칭시킬 수 있다. 명제들이 타입 엔티티들 및 관계들을 포함하는 GSP 기반이면, 시스템은 온톨로지(예를 들어, WordNet)에 기반한 의미론적 매처를 이용하여 명제들을 정렬/매칭시킬 수 있다. 예를 들어, 벤은 웨이터로 정렬되고, 아바는 고객으로 정렬된다. 정렬에 이어서, 지식 통합 엔진(136)은 프레임들에 의해 예측된 생각들을 표명하며, 프레임 내에 있지만 스토리에서 언급되지 않은 각각의 의미론적 프리미티브 구조가 가능한 추론이다. 이어서, 엔진(136)은 프레임 정렬들의 세트가 얼마나 잘 스토리와 매칭하는지에 대한 스코어를 생성한다. 작은 수의 프레임들이 스토리로부터 추출된 많은 수의 생각들에 매칭될 때 더 높은 스코어가 주어진다. 또한, 프레임 정렬들의 세트는 대안적으로 프레임들에 의해 예측된 생각들이 스토리에 관한 시스템의 다른 생각들과 모순되는 경우 저조하게 스코어링될 수 있다.
프레임 추론은 복수의 해석 레벨들에서 발생할 수 있다. 문장 레벨에서, 프레임 추론은 문장 또는 절의 언어학적 구조에 대응하는 GSP들을 추론하는데 이용될 수 있다. 이 경우에, 각각의 프레임은 의미론적 프리미티브 구조들 및 언어학적 분석 결과들의 혼합을 포함한다. 하나의 예시적인 구성으로서, 스토리 내의 각각의 문장에 대해, 지식 통합 엔진(136)은 GSP 구조 인스턴스들을 생성하기 위해 언어학적 분석 결과로부터의 정보로 하나 이상의 GSP 구조를 인스턴스화한다. 벤 및 아바 스토리에서, 엔진(136)은, 가능하게는 단어 "가져다주다"(레이퍼: 스토리/가져다주다)에 의해 지칭되는 이벤트 엔티티로 레이퍼 역할을 채우고, 단어 "벤"(에이전트: 스토리/벤)에 의해 지칭되는 엔티티로 에이전트 역할을 채우며, 아바가 음식을 점유한다는 사실과 관련된 네스팅된 명제로 후 상태를 채움으로써 동작 GSP 구조 인스턴스를 인스턴스화할 수 있다. 이러한 네스팅된 명제는 단어 "아바"(점유자: 스토리/아바)에 의해 지칭되는 엔티티에 의한 점유자 역할을 가질 수 있고, 단어 "음식"(점유: 스토리/음식)에 의해 지칭되는 엔티티에 의한 점유 역할을 가질 수 있다.
에피소드 레벨에서, 어떤 세트들의 GSP들이 함께 잘 맞을 가능성이 있고 어떤 새로운 추론들이 이루어질 수 있는지를 결정하기 위해 프레임 추론이 이용될 수 있다. 예를 들어, 벤 및 아바 스토리에서, "레스토랑 프레임"은 스토리에서 언급된 동작들, 예를 들어 "벤이 아바에게 메뉴를 가져다주었다"에 대한 GSP들과 잘 맞는다. 벤이 웨이터로 정렬되고, 아바가 고객으로 정렬되는 경우에, "벤이 계산서를 가져다주었다" 및 "아바가 계산을 하였다"와 같은 새로운 추론들이 이루어질 수 있다.
이전에 언급된 바와 같이, 프레임들은 자체적으로 명제들이고 이에 따라 다른 더 높은 레벨의 프레임들에 의해 참조될 수 있다. 예를 들어, 아마도 나이프 및 포크 등을 이용하여 씹고 삼키는 동작들을 포함하는, 일반적으로 먹는 것에 관한 프레임이 있을 수 있고, 이러한 전체 프레임은 레스토랑 프레임에서 일부 확률로 포함될 것이다. 일반적으로, 프레임 추론 프로세스는 스토리를 "설명하는" 프레임들의 계층구조를 발견하기 위해 여러 번 반복될 수 있다.
하나의 구현예에서, 기본 레벨에서, 특정한 엔티티들의 발생들을 그 엔티티 타입들(사람 또는 고객 및 웨이터)로 대체함으로써 일반적인 프레임이 특정한 텍스트로부터 생성될 수 있다. 지식 통합 엔진(136)은 현재 세계 모델(138) 내의 프레임들의 라이브러리에 액세스하고, 스토리 내의 단어들/구들과 관련되는 높은 확률을 나타내는 하나 이상의 프레임을 선택할 수 있다. 예를 들어, 벤 및 아바 스토리에서, "메뉴", "음식", "테이블" 등과 같은 단어들은 "(웨이터)가 음식을 (고객)에게 가져다준다" 및 "(고객)이 음식을 갖는다"와 같이 GSP 구조 인스턴스들에 매핑될 수 있다. 그 다음에, 이러한 GSP 구조 인스턴스들은 프레임들에서 역할들을 정의하도록 그룹화될 수 있으며, 이 예에서, 이들 GSP 구조 인스턴스들은 레스토랑 프레임, 호텔 프레임 또는 펍 프레임과 같이 접객 장르에 관련된 프레임들에 적절할 수 있다. 이러한 프레임들은 집합체, 보다 일반적인 접객 서비스 프레임에 결합될 수 있다. 일단 선택되면, 지식 통합 엔진(136)은 프레임 내의 GSP 구조 인스턴스들이 스토리 모델 내의 GSP 구조 인스턴스들과 매칭하게 하는 프레임 내의 개념적 역할들(예를 들어, 아바는 고객이고, 벤은 웨이터이다)에 대한 스토리에서의 엔티티들의 정렬을 결정한다. 프레임 구조의 이러한 구성 및 인스턴스화를 통해, 지식 통합 엔진(136)은 프레임을 스토리의 언어학적 컴포넌트들과 정렬시킨다. 인스턴스화된 프레임 구조는 스토리의 새로운 이해를 제공하고, 현재 세계 모델(138)로 회신되어 그 안에 저장된 지식의 본체를 증가시킬 수 있다.
시간의 경과에 따라, 지식 통합 엔진(136)은 새로운 프레임들을 또한 도출하는데 이용될 수 있다. 프레임 도출은, 시스템이 더 많은 텍스트를 판독하고 이해함에 따라, 현재 세계 모델에 추가하기 위한 새로운 프레임들을 생성하는 프로세스이다. 시스템이 더 많은 텍스트들을 판독하고 대화에서 인간들과 관계함에 따라, 현재 세계 모델(136)은 새로운 프레임들의 추가와 함께 성장함으로써, 그 지식 및 더 복잡한 주제들을 이해하는 것을 돕는 능력을 증가시킨다. 하나의 구현예에서, 기본 레벨에서, 특정한 엔티티들의 발생들을 그 엔티티 타입들(사람 또는 고객 및 웨이터)로 대체함으로써 일반적인 프레임이 특정한 텍스트로부터 생성될 수 있다. 지식 통합 엔진(136)의 하나의 구현예에 대한 더 상세한 설명이 도 9 내지 도 12를 참조하여 아래에서 제공된다.
지식 통합 엔진(136)은 지식 도출 엔진(140)에 추가로 질의하여 스토리에서 발견된 단어들/구들에 대해 더 많이 학습할 수 있다. 지식 도출 엔진(140)은 큰 언어 코퍼스들(410) 및 다른 소스들을 분석하기 위해 오프라인으로 또는 다른 컴포넌트들과 별도로 실행될 수 있는 실행가능한 컴포넌트를 포함한다. 지식 도출 엔진(140)은 텍스트에 의해 암시되거나 텍스트 내에 잠재하는 정보를 캡처하는, 다수의 도출된 지식 리소스들을 도출하기 위해 다양한 기술들을 이용한다. 지식 통합 엔진(136)은 후속하여 저장소(412)에 질의하여 단어 의미 모호성 해소, 관계 검출, 의역 생성, 텍스트 함의, 장면 분석 및 누락 텍스트 생성과 같은 작업들을 수행할 수 있다.
지식 도출 엔진(140)의 하나의 구현예에 대한 더 상세한 설명이 도 13 및 도 14를 참조하여 아래에서 제공된다.
학습 및 이해 모듈들(130)은 다양한 모듈들(130) 전부에 의해 시스템(102) 전체에 걸쳐 이용되는 기본 컴포넌트들의 세트인, 생각 표현 및 추리 프레임워크(144)를 더 포함할 수 있다. 프레임워크(144)는 지식 표현 언어를 제공하고, 맥락 차별화 및 의미론적 프리미티브들을 위한 추론 및 학습 메커니즘들과 같은 더 높은 레벨의 기능을 가능하게 한다. 프레임워크(144)는 또한 시스템(102)이 시간의 경과에 따라 확률적인 명제들(또는 "생각들")을 저장, 인덱싱, 검색, 탐색 및 조작하게 하는 기본 동작들을 수행한다. 프레임워크(144)는 스토리 모델(132) 및 현재 세계 모델(138)에서 자연 언어를 표현하기 위해 GSP 구조들 및 프레임들을 정의하기 위한 메커니즘들을 제공한다. 프레임워크(144)는 또한 다양한 의미론적 관계들이 얼마나 스토리 문장의 적합한 해석을 위한 것인지를 표현하는 확률들을 생성할 수 있다.
하나의 구현예에서, 스토리 모델(132) 및 현재 세계 모델(138)은 엔티티들 및 명제들로 형성된 지식의 정식의 구조화된 표현들인 지식 모델들로서 구조화된다. 엔티티는 존재할 수 있는 사물(예를 들어, "개", "고양이", "트럭" 등)이거나 실제로 존재하지 않을 수 있는 사물(예를 들어, "페가수스", "셜록 홈즈")이다. 엔티티는 또한 추상 개념(예를 들어, "동물", "철학", "동작" 등)일 수 있다. 엔티티들은 이름들을 가질 수 있고 이들에 관해 알려진 모든 정보에 의해 정의된다. 명제는 참인 값을 가질 수 있는 진술이다. 모든 명제는 술어 및 논항들의 세트를 가지며, 이는 엔티티들 또는 명제들일 수 있다. 스토리 모델(132)은 시스템에 의해 판독되는 텍스트(스토리)의 특정한 부분에서 언급되는 것을 표현하도록 의도된 지식 모델이다. 현재 세계 모델(138)은 세계에서 참인 것에 관한 일반 지식을 표현하도록 의도된 지식 모델이다.
지식 모델들의 이러한 구현예에서, 프레임워크(144)는 지식 모델들과 함께 작업하기 위한 시설이다. 프레임워크(144)는 엔티티들 및 명제들을 표현하기 위한 정식 언어, 자주 이용될 것으로 예상되는 정의된 명제 타입들의 세트, 지식에 대한 액세스를 위해 질의될 수 있는 지식 모델들에 대한 지속적 저장소, 및 지식 모델들에 대해 상이한 추리 능력들을 제공하는 컴포넌트들의 세트를 포함한다.
프레임워크(144)의 하나의 구현예에 대한 더 상세한 설명이 도 15를 참조하여 아래에서 제공된다.
학습 및 이해 모듈들(130)은 스토리 모델에 표현된 바와 같이 스토리의 시스템의 이해를 테스트하거나 검증하기 위해 인간 사용자들과의 질문 및 대답 대화 세션들을 용이하게 하기 위한 대화 엔진(142)을 더 포함할 수 있다. 대화 엔진(142)은 스토리 모델(132) 및 현재 세계 모델(138)을 입력으로서 취하고, 사용자에 대한 질문들을 생성하고/하거나 사용자로부터의 질문들에 대답하기 위한 기반으로서 이들을 이용하며, 사용자 상호작용을 통해 획득된 지식을 통합한 후에 업데이트된 스토리 모델 및 업데이트된 현재 세계 모델을 출력한다. 대화 프로세스는 또한 사용자 질문들/응답들을 해석하고 시스템 질문들/응답들을 공식화하는 것을 돕기 위해 지식 통합 엔진(136) 및 지식 도출 엔진(140)과 같은 다른 시스템 컴포넌트들을 활용한다. 예를 들어, 벤 및 아바 스토리에서, 시스템은 처음에는 음식이 스파게티를 지칭하는 것을 식별할 수 없어서, 의미론적 구조의 일부가 채워지지 않을 수 있다. 대화 엔진(142)은 음식이 스파게티일 가능성이 있는지 여부를 사용자에게 묻기 위해 하나 이상의 질문을 생성할 수 있다.
다른 경우들에서, 시스템은 그 현재 가정들을 확신하지 못할 수 있다. 예를 들어, 지식 도출 엔진(140)은 스토리에서 이용되는 바와 같이 단어 "가져다주다"의 두 가지 의미들이 거의 정확할 동일한 확률들을 낳는다고 예측하는 것으로 가정한다. 지식 통합 엔진(136)은 의미들 중 하나를 선택할 수 있다. 시스템이 이 선택을 완전히 확신하지 않기 때문에, 대화 엔진(142)은 특정한 문장 또는 스토리에서 이러한 단어 의미 선택의 정확도에 관한 질문들을 문의할 수 있다.
대화 엔진(142)은 단일 사용자들과의 선형 대화 세션들에 참여하거나 또는 질문들을 더 큰 그룹의 사용자들에게 동시에 분산할 수 있다. 이 분산형 접근 방식에서, 예를 들어, 대화 엔진은 질문들을 상이한 세트들로 논리적으로 분리하고 상이한 사용자들에게 상이한 질문 세트들을 문의할 수 있다. 분산형 대화 세션들은 컴퓨터 시스템이 사용자들의 집단에 걸쳐 스케일링하게 하고, 복수의 사용자들과의 동시화된 상호작용을 통해 학습 프로세스의 레이턴시를 감소시키게 한다.
질문들은 임의의 수의 방식들 및 양상들로 사용자(들)에게 제시될 수 있다. 사용자들은 질문들을 고려하고 응답들을 제공한다. 대화 엔진(142)은 응답들을 이용하여 사용자에게 어떤 후속 질문들을 문의할지를 결정한다. 추가로, 대화 엔진(142)은 응답들을 처리하여 현재 세계 모델 및 스토리 모델에서의 의미론적 구조들 및 프레임들을 업데이트함으로써, 스토리의 시스템의 이해를 개선한다.
대화 세션들은, 지식 통합 엔진(136)이 현재 세계 모델에서 알려진 프레임들과 잘 맞는 스토리의 의미론적 표현에서 충분한 신뢰도 레벨을 달성할 때와 같이 종료 조건이 충족될 때까지 반복될 수 있다. 하나의 구현예에서, 대화 엔진(142)은 정확도에 관한 최종 검증을 위해 사용자에게 그 이해를 표현하도록 작업이 주어질 수 있다. 종료 조건이 도달되면, 스토리 모델(132)은 미래의 이용을 위해 저장되고 인덱싱될 수 있으며, 업데이트된 현재 세계 모델(138)은 다른 스토리들을 처리하는데 이용하기 위해 유지된다.
도 5는 아키텍처(100)의 하나의 예시적인 구현예를 보다 상세히 도시하며, 학습 및 이해 시스템(102)은 서버들(104(1)-(S)) 상에서 구현되고, 사용자 디바이스들은 전자 디바이스(114/118)로서 구현된다. 서버들(104(1)-(S))은 처리 능력들(502) 및 메모리(504)를 총괄적으로 제공한다. 메모리(504)는 컴퓨터 판독가능한 명령어들, 데이터 구조들, 프로그램 모듈들, 또는 다른 데이터와 같이, 정보의 저장을 위한 임의의 타입 또는 기술로 구현되는 휘발성 및 비휘발성 메모리, 이동식 및 비이동식 매체를 포함할 수 있다. 이러한 메모리는 RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, DVD 또는 다른 광학 저장소, 자기 카세트들, 자기 테이프, 자기 디스크 저장소 또는 다른 자기 저장 디바이스들, RAID 저장 시스템들, 또는 원하는 정보를 저장하는데 이용될 수 있고 컴퓨팅 디바이스에 의해 액세스될 수 있는 임의의 다른 매체를 포함하지만, 이들로 제한되지는 않는다.
데이터 구조들, 데이터 세트들, 스토리들과 같은 텍스트 문자열들, 언어 코퍼스들 등을 유지하기 위한 복수의 데이터베이스들을 정의하는 시스템 데이터 저장소들(506)이 메모리(504)에 저장된다. 이 예에서, 데이터 저장소들(506)은 스토리 모델(132), 현재 세계 모델(138), 의미론적 프리미티브들의 데이터베이스(408), 큰 언어 코퍼스들(410), 도출된 지식 리소스 저장소(412), 및 다른 가능한 데이터 저장소들(508)을 포함한다.
학습 및 이해 모듈들(130)은 메모리(504)에 저장되고 프로세서(502)에 의해 실행가능한 소프트웨어 모듈들로서 구현되는 것으로 도시되어 있다. 학습 및 이해 모듈들(130)은 스토리 파싱 엔진(134), 지식 통합 엔진(136), 지식 도출 엔진(140), 대화 엔진(142), 및 생각 표현 및 추리 프레임워크(144)를 포함한다. 각각의 모듈은 시스템 데이터 저장소들(506) 중 하나로부터 가져온 데이터를 처리하거나 시스템 데이터 저장소들(506) 중 하나에 다시 저장되는 출력 데이터를 생성하기 위해 별도로 호출되고 실행될 수 있다.
서버들(104(1)-(S))은 도 5에서 디바이스(114/118)로서 표현된 바와 같이 하나 이상의 협력자 디바이스(114(1)-(C)) 및/또는 하나 이상의 학생 디바이스(118(1)-(D))와 통신한다. 디바이스(114/118)는 프로세서(510) 및 메모리(512)(예를 들어, 휘발성, 비휘발성 등)를 갖는다. 운영 체제(514), 판독자 사용자 인터페이스(UI)(516) 및 음성/텍스트 변환기(518)는 메모리(512)에 저장되고 프로세서(510)에 의해 실행된다. 전자 디바이스(114/118)는 판독자 UI(516)를 도시하기 위한 디스플레이(520)를 포함하여, 인간 사용자는 스토리들을 판독할 수 있고 사용자들이 컴퓨팅 시스템(102)에게 질문하고 컴퓨팅 시스템이 사용자들에게 질문하는 대화 세션 동안 컴퓨팅 시스템(102)과 상호작용할 수 있다.
디바이스(114/118)는 음성/텍스트 변환기(518)에서 텍스트를 음성으로 변환하고 스피커(522)를 통해 오디오를 출력함으로써 청각적으로 스토리들을 제시하는 것을 포함하는 다른 상호작용 모드들을 지원할 수 있다. 이어서, 사용자는 이를 판독하기보다는 스토리를 청취할 수 있다. 사용자는 또한 마이크로폰(524)에 의해 캡처되고 음성/텍스트 변환기(518)에 의해 텍스트 문자열들로 변환되는 응답들을 말함으로써 질문들 및 대답들을 말로 표현할 수 있다. 스크린들, 키보드들, 스피커들/마이크로폰들이 논의되지만, 이러한 디바이스는 인간과 컴퓨터 시스템 사이의 상호작용을 용이하게 하기 위한 임의의 다른 I/O 디바이스를 본질적으로 포함할 수 있다.
도 6은 아키텍처(100)에 의해, 더 구체적으로는, 텍스트 기반 스토리들을 입수하고, 그러한 스토리들의 이해를 추론하며, 스토리들의 이해를 테스트하기 위해 인간들과의 대화에 참여하기 위한, 도 4 및 도 5의 학습 및 이해 모듈들(130)에 의해 구현되는 예시적인 프로세스(600)를 도시한다. 602에서, 스토리(또는 텍스트 문자열)가 컴퓨팅 시스템에 의해 수신된다. 604에서, 동일한 스토리가 또한 사용자와 공유되고 사용자 디바이스 상에 제시된다. 논의를 위해, 컴퓨팅 시스템과 사용자 양쪽 모두에 의해 판독된 스토리가 벤 및 아바 스토리(106(1))인 것으로 가정한다.
606에서, 이 스토리는 스토리의 구문론적 표현을 생성하도록 파싱된다. 구문론적 파싱은 문장들, 문장 내의 절들, 또는 다른 다중 단어 텍스트 문자열들에 대해 수행될 수 있다. 아키텍처(100)에서, 스토리 파싱 엔진(134)은 구문론적 파스를 수행하고, 단어들을 설명하는 구문론적 라벨들 및 단어들 사이의 관계들을 정의하는 술어 논항 구조에 의해 태깅되거나 주석이 달린 문장의 단어들을 보유하는 언어학적 구조를 포함하는 언어학적 분석 결과들을 출력한다. 언어학적 분석 결과들은 문장 내의 단어들에 할당된 엔티티 타입들 및 동일 지시어 체인들을 더 포함할 수 있다. 본 발명의 스토리 예에서, 구문론적 파스는 문장 내에서 술어 동사인, 어근 형태 "가져다주다"를 갖는 것으로 단어 "가져다주었다"를 식별하는 언어학적 구조를 생성할 수 있다. 단어 "벤"은 주어 논항인 것으로 결정되고, 단어 "음식"은 목적어 논항이다. 또한, "벤"은 사람으로서 타입화되고, "음식"은 (예를 들어) 영양으로서 타입화된다. 마지막으로, 단어들 "음식" 및 "스파게티"는 공통 동일 지시어 체인에 속하는 것으로서 평가될 수 있다.
608에서, 의미론적 구조들 및 이들을 포함하는 프레임들은 스토리의 가능한 해석들을 나타내도록 추론된다. 하나의 구현예에서, 지식 통합 엔진(136)은 미리 설정된 배경 지식의 관점에서 구문론적 파스로부터 수신된 언어학적 분석 결과들을 의미론적으로 처리함으로써 의미론적 구조들을 추론한다. 예를 들어, 배경 지식은 파싱된 문장에서 발견되는 단어들/구들에 대한 공통 연관성들 또는 관계들을 제공하는 데이터베이스(408)에 저장된 생성 의미론적 프리미티브들의 미리 형성된 인스턴스화되지 않은 구조들로서 부분적으로 구현될 수 있다. 인스턴스화되지 않은 GSP 구조들은 데이터베이스로부터 선택되고, 구문론적으로 파싱된 문장으로부터의 요소들을 이용하여 인스턴스화된다. 지식 통합 엔진(136)은 훨씬 더 높은 레벨의 해석을 제공하기 위해 복수의 인스턴스화된 GSP 구조 인스턴스들로 각각 구성되는 프레임들을 추가로 선택하고 인스턴스화할 수 있고, 이에 의해 잠재적으로 더 깊은 이해를 가능하게 한다.
벤 및 아바 스토리의 예를 계속하면, 동작에 대응하는 인스턴스화되지 않은 GSP 구조가 선택되고, 구문론적으로 파싱된 문장으로부터의 정보로 인스턴스화될 수 있다. 예를 들어, GSP 구조의 레이퍼 역할은 단어 "가져다주다"(레이퍼: 스토리/가져다주다)에 의해 지칭되는 이벤트 엔티티로 채워질 수 있고, 에이전트 역할은 단어 "벤"(에이전트: 스토리/벤)에 의해 지칭되는 엔티티로 채워질 수 있으며, 후 상태는 아바가 음식을 점유한다는 사실과 관련된 네스팅된 명제로 채워질 수 있다. 이러한 네스팅된 명제는 그 자체가 점유의 개념에 대응하는 GSP이고, 단어 "아바"(점유자: 스토리/아바)에 의해 지칭되는 엔티티에 의한 점유자 역할을 가질 수 있고, 단어 "음식"(점유: 스토리/음식)에 의해 지칭되는 엔티티에 의한 점유 역할을 가질 수 있다. GSP 구조들의 일반성은 그 구성에 기인하며, 이는 부분적으로 시스템이 하나의 GSP 구조를 다른 것 내에 네스팅하는 능력에 의존한다. 이러한 예로부터 명백한 바와 같이, 문장의 현재의 언어학적 해석은, 누가 무엇을 누구에게 가져다주었고 그 동작 후의 상태가 무엇인지에 대한 가능성 있는 관계들에서 추가함으로써 더 깊은 레벨의 이해로 향상된다. 이러한 추가적인 의미론적 정보는 더 풍부한 이해를 제공한다.
스토리의 문장들에 대해 다른 GSP 구조들이 인스턴스화됨에 따라, 관련 프레임들이 검색되고 스토리와 정렬되는 프레임 추론 프로세스가 수행된다. 예를 들어, 벤 및 아바 스토리에서, 레스토랑 프레임이 검색될 수 있고, 벤은 웨이터로 정렬되고, 아바는 고객으로 정렬될 수 있다. 그 다음에, 예를 들어 벤이 계산서를 가져다주었고 아바가 계산을 하였다와 같이, 새로운 생각들이 그 프레임으로부터 표명된다. 프레임 정렬들의 세트는 작은 수의 프레임들이 스토리로부터 추출된 많은 수의 생각들과 매칭될 때 더 높은 스코어가 주어지도록 평가된다. 또한, 프레임 정렬들의 세트는 대안적으로 프레임들에 의해 예측된 생각들이 스토리에 관한 시스템의 다른 생각들과 모순되는 경우 저조하게 스코어링될 수 있다.
610에서, 추론 동작의 일부로서, 문장 내의 단어들/구들에 관한 다른 의미론적 정보가 단어들/구들을 해석하기 위해 하나 이상의 가능한 방식을 제공하도록 생성될 수 있다. 예를 들어, 하나의 접근 방식에서, 지식 통합 엔진(136)은 단어 의미, 의역들, 관계들, 장면 분석 등으로서 이러한 의미론적 정보를 제공하기 위해 지식 도출 엔진(140)에 질의할 수 있다. 생성된 결과들은 연관된 확률들로 회신될 수 있어서, 지식 통합 엔진(136)은 더 정확한 추론들을 하기 위해 더 가능성 있는 후보들을 선택할 수 있고, 대화 엔진(142)은 외견상 잘못된 또는 비지능적 질문들을 문의하는 것을 회피하기 위해 낮은 확률 후보들의 이용을 제거할 수 있다.
벤 및 아바 스토리에서, 지식 도출 엔진(140)은 단어 "가져다주었다" 또는 그 어근 형태 "가져다주다"에 대한 단어 의미 모호성 해소를 수행할 수 있다. 모호성 해소를 통해, 단어 "가져다주다"의 몇 가지 가능한 의미들이 (1) 무언가 또는 누군가를 어딘가로 가지고 간다; (2) 특정한 상태 또는 조건에 이르게 한다; 또는 (3) 법적으로 제시하거나 개시한다와 같이 발견될 수 있다. 다른 분석들은 구 "식사를 서빙하였다"가 "음식을 가져다주었다"의 의역일 수 있는 것과 같이 다른 리소스들을 제공할 수 있다. 지식 도출 엔진(140)은 또한 이들 결과들과 연관된 확률들을 제공하여 적절한 것을 선택하는 것을 보조할 수 있다. 단어 "가져다주다"는, 예를 들어, 코퍼스들에서 나타날 때 제3 의미(즉, 법적으로 제시하거나 개시한다)와 대조적으로 제1 의미(즉, 무언가 또는 누군가를 어딘가로 가지고 간다)와 연관될 가능성이 더 높을 수 있다.
612에서, 스토리는 현재 세계 모델로부터 검색된 프레임들에 대해 평가되어, 스토리 모델이 현재 세계 모델에서 알려진 프레임들과 잘 맞는 높은 신뢰도의 의미론적 표현을 포함하지 않는 영역들을 발견하거나, 인간 사용자들에 의해 검증되어야 하는 낮은 확률들을 갖는 추론들을 식별한다. 이러한 방식으로, 스토리에 현재 알려져 있는 것과 인스턴스화된 프레임들에 표현되는 것 사이에 존재할 수 있는 가능한 갭들이 확인될 수 있어서, GSP 구조 또는 프레임에 추가되어야 하거나 추가될 수 있는 정보를 드러낼 수 있다. 예를 들어, 벤 및 아바 스토리와 관련하여, 정렬 동작은 선택할 것에 대한 의심을 상승시키는 충분한 가능성 스코어들을 갖고 (스토리에서 동사 "가져다주었다"에 대해) "가져다주다"의 복수의 의미들이 존재한다는 것을 발견할 수 있다. 이러한 상황들에서, 인간들과의 협의는 의심을 제거하는 것을 도울 수 있다.
614에서, 갭들을 해결하거나 추론들을 챌린지하기 위해 하나 이상의 질문이 공식화될 수 있다. 질문들은, 사용자에게 문의될 때, 특히 컴퓨터 시스템이 그 현재의 이해에 덜 확신이 있는 경우들에서, 현재의 의미론적 구조들 및 프레임들이 스토리를 얼마나 잘 나타내는지를 평가하도록 의도된다. 이 동작은, 예를 들어, 지식 통합 엔진(136)과 협력하여 작동하는 대화 엔진(142)에 의해 수행될 수 있다. 예를 들어, 벤 및 아바 스토리에서, 지식 통합 엔진(136)은 문장 "벤은 아바에게 음식을 가져다주었다"가 동사 "가져다주다"를 포함하는 동작 의미론적 구조를 포함한다고 초기에 결정하는 것으로 가정한다. 공식화될 수 있는 하나의 질문은 동사 "가져다주다"가 동작으로 고려되어야 하고, 이에 따라 동작 의미론적 구조와 연관되어야 하는지 여부를 사람에게 묻는 것이다. 이 질문은, 예를 들어, "나는 '가져다주다'가 동작을 지칭하므로, 가져다주는 동작이 발생한 후에는 무언가가 다르다고 생각한다. 맞는가?"와 같이 만들어 질 수 있다. 다른 상황들에서, 단어 의미에 대해 명확성이 부족할 수 있다. 예를 들어, 지식 도출 엔진(140)은, 질의될 때, 위에서 언급한 바와 같이, 단어 "가져다주다"가 복수의 의미들을 갖는다는 것을 지식 통합 엔진(136)에게 알릴 수 있다. 따라서, 대화 엔진(142)은 이 문제를 해결하려고 시도하는 질문을 공식화할 수 있다. 하나의 적합한 질문은 다음과 같이, 도 1에서의 UI(126)에 도시된 것과 유사하게 만들어 질 수 있다:
이해하려고 하는 문장은 다음과 같습니다:
벤은 음식을 아바에게 가져다주었다.
아래의 어떤 선택이 위의 문장과 가장 유사하게 단어 "가져다주다"를 이용하는가?
1. 무언가 또는 누군가를 어딘가로 가지고 간다.
2. 특정한 상태 또는 조건에 이르게 한다.
3. 법적으로 제시하거나 개시한다.
616에서, 사용자와의 대화 세션이 열린다. 이 세션 동안, 구조화된 질문들은 618에서 컴퓨팅 시스템(102)으로부터 사용자 디바이스(114/118)로 제출된다. 620에서, 질문들은 인간 사용자에 의한 (예를 들어, 시각적으로 및 청각적으로) 소비를 위해 제시된다. 사용자는 질문들을 검사하고, 622에서, 캡처되고 컴퓨팅 시스템(102)에 회신되는 그 또는 그녀의 입력을 제공한다. 예를 들어, 사용자는 위의 질문을 검토할 수 있고, 옵션 1(즉, 무언가 또는 누군가를 어딘가로 가지고 간다)이 정확한 응답이라고 결정할 수 있다. 624에서, 사용자 응답들은 사용자 디바이스로부터 컴퓨팅 시스템에 의해 수신되고 처리된다.
626에서, 의미론적 구조들 및/또는 프레임들 중 하나 이상은 스토리의 상이한 해석을 전개하기 위해 인간 사용자로부터 수신된 응답들에 기반하여 수정된다. 그 다음에, 스토리 모델은 수정된 의미론적 구조들 및 프레임들(동작(612)) 및 다른 대화 세션(동작(616))에 대해 생성된 새로운 질문들(동작(614))과 재정렬될 수 있다.
프로세스(600)는 정렬된 스토리 모델에 대해 충분한 신뢰도 레벨이 계산될 때까지 계속될 수 있다. 하나의 구현예에서, 신뢰도 스코어들은 스토리에서 각각의 단어/구의 의미론적 표현을 제공하는 인스턴스화된 의미론적 구조들에 대해 계산된다. 각각이 사용자와의 대화에 참여함으로써 다양한 의미론적 구조들 내에서 테스트됨에 따라, 신뢰도 스코어들은 개선되는 경향이 있다. 이때, 스토리 모델(132)은 스토리의 정확한 이해로서 출력될 수 있다. 이는 스토리의 완전한 의미론적 표현을 포함하고, 시스템은 미래의 재호출 또는 다른 텍스트들을 이해하는데 이용하기 위해 스토리를 인덱싱할 수 있다.
예시적인 스토리 파싱 엔진
도 7은 스토리와 같은 텍스트 문자열을 처리하는데 이용될 수 있는 선택 컴포넌트들을 예시하는, 스토리 파싱 엔진(134)의 하나의 구현예를 도시한다. 스토리 파싱 엔진(134)은 복수의 가능한 언어학적 분석 결과들을 제안하고, 공동 추론을 이용하여 결과들에 대한 공동 분산을 계산하는 지식 통합 엔진에 그 결과들을 전달하도록 구성된다. 스토리 파싱 엔진(134)은 스토리(106)를 입수하고, 스토리(106)의 디지털 표현을 자연 언어 처리(NLP)를 위한 언어학적 분석기(702)로 전달한다. 언어학적 분석기(702)는 스토리(106)를 수신하고, 그 스토리를 단어들, 구들, 문장들, 또는 다른 정의가능한 텍스트 문자열들과 같이 이해가능한 세그먼트들로 분해한다. 언어학적 분석기(702)는 텍스트 문자열들에 대해 다양한 언어 분석들을 수행하는 NLP 컴포넌트들의 세트를 갖는다. 구문론적 파서(704)는 단어들의 음성의 부분들 및 문장 내의 이들 사이의 문법적 관계들을 식별한다. 하나의 구현예에서, 구문론적 파서(704)는 구문론적 파싱을 위한 스탠포드 CoreNLP 패키지를 이용하여 부분적으로 구현된다.
일부 구현예들에서, 스토리 엔진(134)은 문장에 대한 복수의 가능한 파스들을 출력하는 단일 파서를 이용하거나 파싱 다양성을 제공하기 위해 복수의 파서들(706)을 이용할 수 있다. 파스 선택기(708)는 원하는 애플리케이션들에 따라 파스 결과들을 선택하거나 병합하여 궁극적으로 주어진 애플리케이션들에 대한 파스 정확도를 개선하는데 이용될 수 있다. 다른 구현예들에서는, 파스 선택기가 없을 수 있지만, 오히려 복수의 파스 결과들이 지식 통합 엔진(136)으로 전달될 것이고, 이는 이하에서 더 상세히 설명되는 바와 같이, 각각의 파스 결과에서의 신뢰도를 의미론 및 프레임 구조들에서의 신뢰도와 공동으로 결정할 것이다.
스토리 파싱 엔진(134)의 언어학적 분석기(702)는 또한 다른 분석 컴포넌트들이 동작하는 프리미티브 생각들로서 역할하는 술어들 및 그 인스턴스화된 논항들의 파서 중립 표현을 생성하는 술어 논항 구조(PAS) 모듈(710)을 포함한다. PAS 모듈(710)은 상이한 파서들에 의해 생성된 문법 정보가 시스템에서 상호작용할 수 있도록 술어들 및 논항들의 공통 표현으로 문법적 관계들의 파서 특정 표현을 변환한다. 변환 프로세스에서, PAS 모듈(710)은 또한 수동 음성을 능동으로 변경하는 것과 같은 특정한 정규화 절차들을 수행하고, 문장들의 처리에 있어서 중심이 되지 않는 특정한 문법적 관계들을 제거함으로써 표현을 단순화한다. 예를 들어, 스토리(106)에서 문장 "벤은 아바에게 음식을 가져다주었다"의 구문론적 파스에 후속하여, PAS 모듈(710)은 "가져다주었다" 또는 그 어근 형태 "가져다주다"가 주 술어(이 경우에는 술어 동사)이고, "벤"이 주어 논항이며, "음식"이 목적어 논항이라는 것을 인식한다. PAS 모듈(710)은 이들 단어들을 적절한 라벨들로 태깅 또는 아니면 마킹한다. 하나의 특정한 구현예에서, PAS 모듈(710)은 구문론적 파서(704)의 상단부에 구성되고, 다른 구현예들에서, 구문론적 파서(704) 및 PAS 모듈(710)은 공통 실행가능한 모듈로서 구현될 수 있다.
도 7에 도시된 바와 같이, 언어학적 분석기(702)는 스토리 엔진으로부터 지식 통합 엔진(136)에 입력으로서 전달될 언어학적 분석 결과들(712)의 세트를 출력한다. 언어학적 분석 결과들(712)의 하나의 부분은 언어학적 분석기(702)의 구문론적 파서(704) 및 PAS 모듈(710)에 의해 생성되는 언어학적 구조(714)이다. 언어학적 구조(714)는 문장의 단어들, 단어들의 구문론적 라벨들, 및 단어들 간의 PAS 관계들을 포함하는 데이터 구조로서 구현된다. 데이터 구조(714)는 핵심어들이 노드들로서 표현되고 그 관계들이 상호연결 분지들에 의해 표현되는 트리형 시각화를 이용하여 도 7에 도시되어 있다. 예시적인 문장 "벤은 아바에게 음식을 가져다주었다"를 계속하면, 단어 "가져다주다"(즉, "가져다주었다"의 기본 형태)는 노드(716)로서 도시되고 술어 동사로서 식별된다. 단어 "벤"은 노드(718)로서 표현되고, 술어 동사 "가져다주다"에 대해 주어 논항으로서 태깅된다. 단어 "음식"은 노드(720)로서 표현되고, 술어 동사 "가져다주다"에 대해 목적어 논항으로서 마킹된다. 단어 "아바"는, 아바가 가져다주는 술어의 대상임을 나타내는, 술어 동사 "가져다주다"에 대한 관계를 갖는 노드(722)에 의해 표현된다.
언어학적 분석기(702)는 엔티티 타입들을 문장 내의 다양한 단어들에 할당하기 위한 엔티티 할당 모듈(724)을 더 포함한다. 이러한 타입들은 하나 이상의 적용가능한 온톨로지로부터의 미리 결정된 카테고리들이다. 본질적으로 임의의 의미론적 타입이 정의될 수 있지만, 공통 타입들은 사람, 국가, 위치, 가구, 스포츠 등을 포함할 수 있다. 본 발명의 예에서, 엔티티 할당 모듈(724)은 엔티티 타입 데이터 구조(726)에 예시된 바와 같이 "사람" 타입을 단어 "벤"에 할당하고 "영양" 타입을 단어 "음식"에 할당한다. 하나의 구현예에서, 엔티티 할당 모듈(724)은 엔티티 타입들에 자동으로 주석을 다는데 이용되는, 스탠포드 CoreNLP 패키지로 명명된 엔티티 인식기를 이용하여 구현될 수 있다. 다른 구현예는 문장 내의 단어들에 대한 WordNet 계층구조에 기반하여 타입들을 할당하는 단어 의미 모호성 해소 컴포넌트의 이용을 포함할 수 있다.
또한, 언어학적 분석기(702)는 문장 내의 단어들/구들의 동일 지시어들을 식별하는 동일 지시어 모듈(728)을 갖는다. 동일 지시어들은 반드시 사전적으로 동일하지는 않지만, 동일한 실제 세계 엔티티를 지칭하는 단어들/구들이다. 이 예에서, 스토리(106)는 단어들 "음식", "식사" 및 "스파게티"를 포함하는 다른 문장들을 가지고 있다고 가정한다. 동일 지시어 모듈(728)은 동일한 것을 의미하는 것으로서 이들 단어들/구들을 식별할 수 있고, 일부 방식으로 단어들/구들을 연관시키는 데이터 구조(730)를 생성한다. 동일 지시어 모듈(728)은 이벤트 동일 지시어들뿐만 아니라 엔티티 동일 지시어들을 식별할 수 있다. 언어학적 분석 결과들(712)은 도 9를 참조하여 더 상세히 설명되는 지식 통합 엔진(136)에 전달된다.
다른 구현예에서, 언어학적 분석 결과들(712)이 스토리 모델에 통합됨에 따라, 공동 추론 엔진(406)은 또한 이들이 자연 언어 처리(NLP) 분석에 적용될 때 업스트림 결과들의 가능성을 재계산하기 위해 언어학적 분석 결과들을 다운스트림에 활용할 수 있다. 스토리 파싱 엔진(134)은 전체 스토리에 대해 추론된 프레임 레벨 지식으로부터 도출되는 대안 파스들을 스코어링하는데 있어서 더 높은 레벨의 의미론적 정보 및 세계 지식을 고려한다. 즉, 스토리 파싱 엔진(134)은 대안 파스들의 가능성을 재계산하기 위해 더 높은 레벨의 다운스트림 지식을 이용할 수 있다. 또한, 시스템이 현재 세계 모델(138)에 더 많은 지식을 축적함에 따라 가능성을 동적으로 재계산하는 이러한 능력이 시간의 경과에 따라 강화된다.
도 8은 들어오는 스토리를 구문론적으로 처리하기 위해 스토리 파싱 엔진(134)에 의해 실행되는 예시적인 프로세스(800)를 도시한다. 프로세스(800)는 도 1, 도 4, 도 5 및 도 7의 시스템 아키텍처(100) 및 스토리 파싱 엔진(134)을 참조하여 설명된다. 802에서, 텍스트 문자열이 수신된다. 텍스트 문자열은 스토리의 일부일 수 있고 스토리 내의 하나 이상의 자연 언어 문장을 나타낼 수 있다. 804에서, 텍스트 문자열이 언어학적으로 분석된다. 하나의 접근 방식에서, 이것은 동작들(804(1)-(4))에 의해 표현되는 복수의 서브 동작들을 포함한다.
804(1)에서, 텍스트 문자열은 문장들 내의 단어들의 구문론적 표현을 전개하기 위해 구문론적으로 분석된다. 도 7을 참조하면, 언어학적 분석기(702)는 하나 이상의 구문론적 파서(704)를 호출하여 텍스트 문자열을 파싱하고, 이에 의해 단어들 사이의 문법 관계들을 제공하는 언어학적 구조(714)를 생성한다. 804(2)에서, 파스 표현을 파서 중립 PAS 표현으로 변환하기 위해 술어 논항 구조(PAS) 분석이 수행된다. 하나의 접근 방식으로서, 술어 논항 구조 모듈(710)은 술어 및 하나 이상의 논항으로서 문장 내의 특정한 단어들을 태깅하거나 아니면 마킹한다. 이러한 지정들은 언어학적 구조(714)의 데이터 계층구조에 저장되고 반영된다.
804(3)에서, 적절한 온톨로지로부터의 엔티티 타입들이 텍스트 문자열 내의 단어들에 할당된다. 엔티티 타입들(예를 들어, 사람, 장소, 사물 등)은 미리 정의된다. 엔티티 할당 모듈(724)은 맥락 및 온톨로지 정보에 기반하여 텍스트 문자열 내의 각각의 단어에 대한 가능한 엔티티 타입들을 식별하고, 그 단어를 엔티티 타입으로 태깅한다. 엔티티 할당들은 언어학적 분석 결과들의 일부를 형성하는 데이터 구조(726)에서 유지된다.
804(4)에서, 텍스트 문자열 내의 임의의 동일 지시어 체인들이 또한 결정된다. 각각의 문장 또는 논리적 텍스트 세그먼트가 연관된 언어학적 구조를 가질 수 있는 반면, 동일 지시어 체인들은 공통의 실제 세계 엔티티들을 지칭하는 단어들/구들을 찾기 위해 전체 스토리를 검사함으로써 형성된다. 이 동작(804(4))은, 예를 들어, 텍스트 문자열 전체에 걸쳐 단어들 및 구들을 검사하고 의미론 및 맥락 정보에 기반하여 동일 지시어 체인들을 형성하는 단어들을 식별함으로써 동일 지시어 모듈(728)에 의해 수행될 수 있다. 임의의 발견된 동일 지시어들은 데이터 구조(730)에 저장된다.
이와 함께, 804(1)-(4)에서의 언어학적 분석들은, 언어학적 구조(714), 엔티티 타입 구조(726) 및 동일 지시어 구조(730)를 포함하는 언어학적 분석 결과들(712)의 세트를 생성한다. 또한, 일부 구현예들에서, 언어학적 분석기(702)는 동일한 문장에 대해 복수의 언어학적 분석 결과들을 생성할 수 있다는 점에 유의한다. 예를 들어, 분석기(702)가 문장 "고양이는 그것이 영리하였기 때문에 쥐를 잡았다"를 처리하고 있다고 가정한다. 구문론적 추리들을 위해 또는 동일 지시어 체인들을 위해 용어 "그것"을 특징화하려고 할 때, "그것"은 "고양이" 또는 "쥐"를 지칭할 수 있기 때문에 둘 이상의 대답이 있을 수 있다. 이 단계에서, 아직 추가적인 의미론적 지식이 없기 때문에, 스토리 파싱 엔진은 지식 통합 엔진에 의해 다운스트림에서 해결될 가능성들 모두를 출력할 수 있다.
단계(806)에서, 언어학적 분석 결과들(712)이 지식 통합 엔진(136)에 입력될 수 있다. 언어학적 분석 결과들(712)은 전체 스토리(106)를 설명하기 위해 일괄적으로 완료되거나 전송되기 때문에 증분적으로 출력될 수 있다. 언어학적 분석 결과들은 후속하여 의미론적으로 분석되어 생성 의미론적 프리미티브들의 세트를 포함하는 초기 스토리 모델을 생성한다.
예시적인 지식 통합 엔진
도 9는 스토리(106)의 언어학적 분석 결과들(712)을 의미론적으로 처리하는데 이용될 수 있는 선택 컴포넌트들을 예시하는, 지식 통합 엔진(136)의 예시적인 구현예를 도시한다. 언어학적 분석 결과들(712)은 스토리 파싱 엔진(134)에 의해 입수된 스토리로부터 생성되고, 스토리를 나타내는 스토리 모델(132)을 초기에 구축하기 위해 (스토리(106)와 함께) 지식 통합 엔진(136)에 전달된다. 지식 통합 엔진(136)은 현재 세계 모델(138)에서 캡처된 대로 시스템의 현재 지식에 대해 이해하는 스토리의 확률적인 의미론적 표현으로서 스토리 모델(132)을 구축한다.
지식 통합 엔진(136)은 스토리 모델(132)을 현재 세계 모델(138)과 정렬함으로써 스토리의 의미를 전개하기 위해 공동 추론 및 인간 상호작용을 통해 시간의 경과에 따라 스토리 모델(132)을 진화시키는 고도로 구성가능하고 유연적인 실행가능한 컴포넌트들의 세트이다. 지식 통합 엔진(136)은 스토리 내의 문장들의 언어학적 분석 결과들(712)을 포함하고 그 문장들에 대한 의미를 제공하기 시작하는 관련 의미론적 구조들을 추론한다. 공동 추론에 의해, 지식 통합 엔진(136)은 복수의 해석 레벨들을 결합함으로써, 다양한 레벨들의 개념적 풍부함으로 텍스트를 해석한다. 위에서 언급한 바와 같이, 더 높은 해석 레벨들이 더 풍부하지만 더 많이 암시적이며, 이에 따라 발견하는 것이 더 어렵다. 제1 해석 레벨은 스토리에서 발견되는 명시적 자연 언어 텍스트의 인식이다. 제2 해석 레벨은 스토리 파싱 엔진(134)에 의해 수행되는 언어학적 분석에 관한 것이다. 다음의 2개의 해석 레벨들, 즉 생성 의미론적 프리미티브들(즉, 레벨 3) 및 프레임 의미론(즉, 레벨 4)을 제공하기 위한 의미론적 분석 레벨들은 (지식 도출 엔진(140), 대화 엔진(142) 및 프레임워크(144)의 도움으로) 지식 통합 엔진(136)에 의해 수행되어 스토리에서 암시적인 의미를 발견한다.
도 9에서, 지식 통합 엔진(136)은 다양한 방식들로 동작할 수 있는 공동 추론 엔진(406)을 갖는다. 하나의 구현예에서, 공동 추론 엔진(406)은 복수의 가능한 "세계들"을 제안하고, 각각의 세계는 참인 것으로 고려되는 생각들의 세트를 갖는다. 생각 생성 컴포넌트들(402)은 세계들에 대해 반복적으로 실행되어, 참인 생각들을 관찰하고 새로운 생각들에 대한 분산들을 제안한다. 이러한 확률 분포들로부터 생각들을 이끌어 냄으로써 새로운 세계들이 생성된다. 제약 컴포넌트들(404)은 세계들의 확률을 평가하도록 실행된다. 프로세스가 종료될 때, 생각의 주변 확률은 그것이 참인 세계들의 확률의 합이다. 주변 확률들이 생각들의 확률들 사이의 관계들을 캡처하지 않기 때문에, 시스템은 또한 스토리 모델(132)의 일부로서 세계들 자체를 저장될 수 있다. 또한, 이것은 대안적으로 예를 들어, 마르코프 체인 또는 몬테카를로 샘플링과 같은 기술들을 통해 달성될 수 있다.
하나의 비제한적인 접근 방식에서, 생각 생성 컴포넌트들(402)은, 술어 논항 구조(PAS), 단어 의미들, 엔티티 타입들 및 동일 지시어들과 같이, 언어학적 분석 결과들(712) 내의 각각의 문장 또는 구의 언어학적 구조를 표현하는 생각들에 대해 확률 분포들을 생성하는 언어학적 분석기(904)를 포함한다. 예를 들어, 언어학적 분석기(904)는 텍스트 "배트가 그를 향해 날아갔다"가 참인 것이었다는 생각을 포함하는 세계를 수신할 수 있고, 배트가 80% 확률로 동물이었고 20% 확률로 야구 방망이였다는 생각을 포함하는 확률 분포를 출력할 수 있다.
생각 생성 컴포넌트들(402)은, PAS 및 단어 의미들과 같은 정보에 기반하여, 텍스트의 가능한 의미론적 해석들을 나타내는 인스턴스화된 GSP들에 대한 확률 분포들을 생성하는 언어-GSP 매퍼(906)를 더 포함할 수 있다. 이러한 언어-GSP 매퍼(906)는, 각각이 언어학적 분석 결과 명제들 및 GSP 명제들의 혼합을 포함하는 현재 세계 모델(138)로부터의 프레임들을 이용하는, 위에서 논의한 프레임 추론 프로세스를 이용할 수 있다. 이전의 예를 계속하면, 언어-GSP 매퍼(906)는, 배트가 동물이었고 동사 "날아가다"의 주어였던 세계를 수신할 수 있고, 배트가 날아가는 동작의 에이전트였던 GSP에서 99% 확률을 가지고 배트가 날아가는 동작의 에이전트가 아니였던 1% 확률을 가지는 확률 분포를 생성할 수 있다(즉, 야구 방망이 경우에서와 같이, 일부 다른 수단에 의해 그것이 그를 향해 나아갔다). 도 9에 나타낸 바와 같이, 현재 세계 모델(138)은 인스턴스화되지 않은 GSP 구조들(910(1)-(G))의 GSP 라이브러리(908) 및 일반 프레임 구조들(914(1)-(F))의 프레임 라이브러리(912)를 포함하는, 그 인스턴스화되지 않은 상태에서 초기에 GSP 및 프레임 의미론적 구조들의 라이브러리들을 유지한다.
GSP 라이브러리(908) 내의 GSP 구조들(910(1)-(G))은 다양한 사실들, 상황들 또는 환경들의 의미를 캡처하도록 미리 정의될 수 있다. 예를 들어, 하나의 GSP 구조는 동작을 표현할 수 있고, 그 구조는 레이퍼, 에이전트, 그 동작 전에 일어나는 것, 및 그 후에 일어나는 것(즉, 레이퍼, 에이전트, 전, 후의 요소들)과 같은 동작을 정의하는 역할들을 포함한다. 다른 GSP 구조들은 경험(에이전트, 경험 관계(예를 들어, 보기, 듣기 등) 및 자극의 역할들을 가짐), 공간적 위치(위치 관계, 엔티티 1, 엔티티 2의 역할들을 가짐), 시간적 위치(시간 관계, 이벤트 1, 이벤트 2의 역할들을 가짐) 및 점유(소유자, 점유의 역할들을 가짐)를 표현할 수 있다.
GSP 구조들(910(1)-(G))은 기본 종류의 사실에 대응하는 인스턴스화되지 않은 개념들로서 시작된다. 예를 들어, 인스턴스화될 때 공간적 위치에 대한 사실의 의미를 제공하는 공간적 위치에 대한 GSP 구조가 있다. 인스턴스화될 때 시간 관계들에 대한 사실을 의미하는 시간 관계에 대한 GSP 구조가 있다. 각각의 인스턴스화되지 않은 GSP 구조(910)는 스토리에서 명시적이거나 암시적인 정보로 완료될 그 자신의 특정한 세트의 역할들을 갖는다. 공간 관계에 대한 GSP 구조는 제1 대상 또는 위치에 대한 하나의 역할, 제2 대상 또는 위치에 대한 다른 역할, 및 제1 대상과 제2 대상 사이의 공간 관계(예를 들어, 근방, 상에, 내에, 위에, 아래에 등)를 지정하기 위한 제3 역할을 갖는다.
스토리로부터의 단어 또는 구는 GSP 구조의 둘 이상의 인스턴스에 대응할 수 있다. 예를 들어, 단일 단어는 각각의 단어 의미에 대해 상이한 GSP 구조 인스턴스를 가질 수 있다. 단어 "떨어진다"는, (예를 들어, 문장 "큰 빗방울이 클로에의 얼굴 위로 떨어졌다"에서 발견되는 것과 같이) 하나의 의미에 대한 GSP 구조의 하나의 인스턴스를 가질 수 있고, (예를 들어, 문장 "클로에가 미끄러져서 진흙탕에 넘어졌다"에서 발견되는 것과 같이) 다른 의미에 대한 제2 GSP 구조 인스턴스를 가질 수 있으며, (예를 들어, 문장 "온도가 10도 떨어졌다"에서 발견되는 것과 같이) 또 다른 의미에 대한 제3 GSP 구조 인스턴스를 가질 수 있다.
구조의 적어도 하나의 역할이 다른 GSP 구조로 채워지는 경우에 복합 GSP 구조들이 또한 정의될 수 있다. 예로서, 통신을 위한 GSP 구조(예를 들어, 에이전트, 수신자, 메시지의 역할들) 및 목표를 위한 제2 GSP 구조(예를 들어, 에이전트, 목표의 역할들)가 있다고 가정한다. 통신 GSP 구조에서의 "메시지"의 역할은 목표 GSP 구조에 의해 채워질 수 있다. 이것은 통신되는 메시지 그 자체가 일부 에이전트의 목표에 대한 것인 통신들에 관한 사실들을 나타내는 복합 GSP 구조를 형성한다. 이러한 복합 GSP는, 예를 들어, 자연 언어 문장들 "앨리스는 캐롤이 티켓을 원한다고 밥에게 말했다" 또는 "'옥수수를 건네달라'고 댄이 말했다"에 대응할 수 있다. 특정한 구조들과 관련하여 위에서 논의된 네스팅된 관계들은 복합 GSP 구조들의 예들이다.
도 10은 대응하는 텍스트 문자열(예를 들어, 문장)에 대한 의미의 범위들을 표현하도록 구성될 수 있는 GSP 구조들(910)의 예시적인 세트(1000)를 도시한다. 구조들이 의미를 표현하도록 조직화되어야 하는 방법을 설정하는 많은 방식들이 있다. 이 예시적인 세트(1000)에서, 기본 구조들은 제시간에 사실들의 변화를 표현하기 위한 동작 구조(1002)를 포함할 수 있으며, 이는 전, 그 시간 및 후의 요소들 또는 역할들을 포함한다. 위치, 엔티티 1 및 엔티티 2의 요소들 또는 역할들을 포함하는 장소들에서 발견되는 것들을 표현하기 위한 위치 구조(1004)가 있을 수 있다. 또 다른 예로서, 에이전트, 생각 및 신임의 역할들로 에이전트가 어떤 사실들을 믿는지를 표현하는 생각 구조(1006)가 있을 수 있다.
도 9를 다시 참조하면, 프레임(914)은 특정한 맥락에서의 (GSP들과 같은) 명제들에 대한 확률 분포이다. 간단한 경우는, 전형적으로 특정한 장소에서 발생하는 동작들과 같이, 맥락에서 참이 될 가능성이 있는 명제들의 세트이다. 프레임은 다양한 참여자들, 동작들, 속성들, 및 전형적으로 맥락과 연관된 다른 개념적인 역할들을 지칭한다. 프레임(914)은 함께 관련된 경험들을 그룹화함으로써 형성되는 것으로 생각될 수 있다. 일반적으로, 프레임들은 상이한 추상화 레벨들에 존재한다. 프레임은 엔티티들이 특정한 사람들을 지칭하는 특정한 에피소드를 나타낼 수 있고, 동등하게 프레임은 엔티티들에 대해 거의 알려져 있지 않은 친화성과 같은 매우 추상적인 개념을 나타낼 수 있다. 프레임들에서, GSP 구조들의 역할들 중 일부에서 지칭되는 엔티티들은 스토리에서 벤 및 아바와 같은 특정한 엔티티들이 아닐 수 있고, 오히려 고객 및 웨이터와 같이 더 일반적인 프레임 특정 역할들이 될 수 있다. 예를 들어, 레스토랑 프레임은 고객에 대한 하나의 동작 인스턴스(레이퍼:앉다; 에이전트:고객; 후:테이블에서의 위치의 인스턴스화된 역할들을 가짐) 및 웨이터에 대한 다른 동작 인스턴스(레이퍼:가져다주다, 에이전트:웨이터, 후:고객에서의 메뉴 또는 음식의 위치의 인스턴스화된 역할들을 가짐)를 포함하는 동작의 2개의 GSP 구조 인스턴스들을 포함할 수 있다.
프레임들(914)은 또한 다른 프레임들을 지칭할 수 있다. 레스토랑 프레임은, 예를 들어, 음식 및 음료를 소비하는 경험을 위한 GSP 구조 인스턴스들의 집합을 정의하는 식사 프레임을 지칭할 수 있다. 프레임들은 또한 프레임이 그 부모 프레임으로부터 참여자들, 동작들 및 속성들을 물려 받을 수 있는 계층구조로 배열될 수 있다. 하나의 예로서, 패스트푸드 레스토랑 프레임은 레스토랑 프레임의 자식일 수 있고 레스토랑 프레임의 특정한 양태들을 물려 받을 수 있다. 프레임들은 또한 충돌 패턴으로 구성될 수 있다. 예를 들어, 레스토랑 프레임에서, 손님은 식사를 지불한다. 그러나, 생일 프레임에서, 손님들은 그들의 식사를 지불하지 않는다. 또한, 이 후자의 예에서, 프레임들은 또한 명제들이 낮은 확률을 갖는다고 말할 수 있다. 예를 들어, 보다 구체적인 생일 프레임은 당신이 계산할 낮은 확률을 시사할 수 있고, 이 확률은 단골 레스토랑 프레임에서 훨씬 더 높다.
현재 세계 모델(138)은 초기에 라이브러리 "VerbNet"와 같이 수동으로 큐레이팅된 의미론적 프레임들의 라이브러리를 포함할 수 있다. 시스템을 프라이밍하기 위해, 예를 들어, VerbNet 라이브러리에서 성문화된 동사들의 세트(예를 들어, 어린이가 먼저 학습하는 100개의 동사들)가 현재 세계 모델(138) 내로 유입될 수 있다. 불행하게도, 이러한 핸드 큐레이팅된 리소스들은 스케일링되지 않는다. 따라서, 컴퓨팅 시스템이 학습하는 바와 같이, 현재 세계 모델(138)은 더 이상 수동으로 생성되지 않고, 그 대신에, 처리 배경 코퍼스들로부터 그리고 인간 학생들 및 협력자들과의 대화를 통해 학습한다.
도 9에서, 언어-GSP 매퍼(906)는 프레임 추론 프로세스를 수행하여, 프레임들에서 함께 잘 맞을 가능성이 있는 현재 세계 모델(138)에 저장된 인스턴스화되지 않은 GSP 구조들(910(1)-(G))의 서브세트를 식별하고, GSP 구조들에서 변수들에 대한 스토리에서의 엔티티들의 할당들을 결정한다. 목표는 언어가 지칭하는 다양한 엔티티들을 정의하고 어떤 GSP 구조들이 그 엔티티들에 대해 참으로 유지하는지를 결정함으로써 언어학적 구조로부터 GSP 구조로 언어를 매핑하는 것이다. 도시된 예에서, 언어학적 구조(714)는 동작을 위해 인스턴스화되지 않은 GSP 구조(910)와 가장 밀접하게 매칭하는 것으로 결정될 수 있는 술어 동사 "가져다주다"를 갖는다. 매치는 핵심어 매치를 통해(예를 들어, 언어학적 구조(714)에서의 "가져다주다"는 이러한 특정한 동작 GSP 구조(910)에서의 단어 "가져다주다"와 매칭함) 또는 유사성, 개념 등과 같은 다른 검색 전략들을 통해 결정될 수 있다. 도시된 바와 같이, 동작 GSP 구조(910)는 점유자 역할(점유자:사람 2)가 연관된 점유 역할(점유:사물)을 갖는다는 사실과 관련된 네스팅된 명제를 가진, 레이퍼 이름(레이퍼:가져다주다), 에이전트(에이전트:사람 1) 및 후-상태(후:갖다)에 대한 역할들을 포함한다. 일부 구현예들에서, 모듈(914)은 언어학적 구조(714)와 매칭할 수 있는 복수의 인스턴스화되지 않은 GSP 구조들을 식별하고 선택할 수 있다. 선택 프로세스 동안, 관련성 또는 신뢰도 스코어들이 계산될 수 있다. 더 높은 스코어의 GSP 구조들은 언어학적 구조(714)와 더 밀접하게 매칭하는 구조들을 나타낸다.
하나 이상의 인스턴스화되지 않은 GSP 구조(910)를 식별한 후에, 언어-GSP 매퍼(906)는 언어학적 구조(714)로부터의 정보로 GSP 구조를 인스턴스화하여 GSP 구조 인스턴스(916)를 생성한다. 여기서, 벤 및 아바 스토리에서의 레이퍼 역할은 "가져다주다"(레이퍼:가져다주다)로 식별되고, 에이전트 역할은 "벤"(에이전트:벤)으로 식별되고, 점유자 역할은 "아바"(점유자:아바)로 식별되며, 점유 역할은 "음식"(점유:음식)으로 식별된다. GSP 구조 인스턴스(916)는 가능한 한 스토리로부터의 많은 정보로 인스턴스화된 버전이다.
일부 경우들에서, 구조를 완전히 인스턴스화하기 위한 정보 모두가 존재하지 않을 수 있고, 이는 누락 요소들을 발견하는 것을 돕기 위해 스토리의 그 이해에 관한 인간 사용자들에의 질문을 위한 기반을 형성하는 불확실성을 야기한다. 또한, 일부 경우들에서, 스토리 발췌의 상이하고 가능한 의미들을 제공하기 위해 둘 이상의 GSP 구조 인스턴스가 상이한 GSP 구조들(910)로부터 인스턴스화된다. 복수의 GSP 구조 인스턴스들이 동일한 스토리 발췌로부터 생성되고 이들 인스턴스들이 유사한 신뢰도 스코어들을 갖는 경우, 이는 또한 시스템이 어떤 가능한 의미가 스토리에서 더 적절할 수 있는지에 관해 인간 사용자들에게 질의하고 이에 의해 사용자들이 그 발췌를 어떻게 이해하는지에 관한 지식을 얻도록 프롬프팅한다.
다른 예로서, 텍스트 판독들 "소년이 공원에 있다"를 가정한다. 언어-GSP 매퍼(906)는 대상, 관계 및 위치의 역할들을 갖는 위치 GSP 구조와 같이, "소년" 및 "공원"이라고 불리는 엔티티들을 처리하는 GSP 구조를 선택할 수 있다. 위치 GSP 구조는 텍스트 정보(예를 들어, 대상:소년; 관계:에서; 위치:공원)로 역할들을 채움으로써 텍스트의 의미를 캡처하도록 인스턴스화된다. 이러한 문장이 "소년이 공원에 갔다"로 약간 수정되면, 언어-GSP 매퍼(906)는 에이전트 "소년" 및 효과를 갖는 제1 동작 GSP 구조를 가진 네스팅된 구조를 선택할 수 있으며, 여기서 효과는 네스팅된 위치 GSP 구조를 참조한다. 문장 "소녀가 그녀의 엄마에게 자전거를 부탁했다"를 고려한다. 이 문장은 통신 GSP 구조의 인스턴스화된 복합 GSP 구조(예를 들어, 에이전트:소녀; 수신자:엄마; 메시지:goal_structure), 목표 GSP 구조(예를 들어, 에이전트:소녀; 목표:possession_structure) 및 점유 GSP 구조(예를 들어, 점유자:소녀; 점유:자전거)를 갖는 캐스케이딩 네스트 배열에 가장 잘 매핑될 수 있다.
도 9에서, 생각 생성 컴포넌트들(402)은, 스토리의 현재의 생각들에 관련될 수 있는 현재 세계 모델(138)로부터 하나 이상의 인스턴스화되지 않은 프레임(914(1)-(F))을 검색하기 위해 프레임 추론 프로세스를 구현하는 에피소드 프레임 추론 모듈(918)을 더 포함할 수 있다. 프레임들은 텍스트의 가능한 의미론적 해석을 나타내도록 식별되는 GSP 구조 인스턴스들(916)의 서브세트에 부분적으로 기반하여 추론된다. 에피소드 프레임 추론 모듈(918)은 에피소드 프레임들에 대한 확률 분포들을 제안하고, 프레임에서의 역할들에 스토리에서의 엔티티들을 정렬하며, 새로운 생각들이 프레임들로부터 추론된다. 이 프로세스는 스토리를 설명하는 프레임 계층구조를 발견하기 위해 반복적으로 발생할 수 있다. 벤 및 아바 스토리에서, 예를 들어, 레스토랑 프레임(920)은, 예를 들어 벤 및 아바가 레스토랑에 있다는 암시적 정보를 제공할 수 있고, 이에 의해 스토리에서 명시적 언어를 더 잘 이해하는 테마 또는 맥락을 제공할 수 있다. 레스토랑 프레임(920)은 이 목적을 위해, 호텔들 또는 펍들을 위한 가능한 다른 프레임들과 비교하여, 사람들, 메뉴, 음식 및 테이블들을 포함하는 스토리와 관련될 가능성이 더 높은 것으로 선택될 수 있다.
레스토랑 프레임(920)은 그 다음에 스토리에 관한 복수의 GSP 구조 인스턴스들(916)을 포함하도록 에피소드 프레임 추론 모듈(918)에 의해 인스턴스화된다. 레스토랑 프레임은, 인스턴스화되지 않은 상태에서, "고객", "웨이터" 등에 대한 일반적인 참조들을 갖는다. 에피소드 프레임 추론 모듈(918)은 스토리로부터의 정보를 이용하여 이 프레임에 대한 필드들을 채우고, 그에 따라 고객이 아바로 정렬되고, 웨이터가 벤이다.
벤 및 아바 스토리 예에서, 스토리에 7개의 문장이 있고, 7개의 문장은 적어도 7개, 그리고 아마도 그 이상의 대응하는 GSP 구조 인스턴스들(916(1)-(7+))로 표현될 수 있다. 스토리 내의 제1 문장(즉, "아바가 들어왔다")은 일차 동작 용어 "들어오다"가 예시되어 있는 GSP 구조 인스턴스(916(1))에 의해 표현된다. 제2 문장 형태의 스토리(즉, 벤이 아바를 테이블로 안내했다)는 일차 동작 용어 "안내하다"가 예시되어 있는 GSP 구조 인스턴스(916(2))에 의해 표현된다. 각각의 예시된 인스턴스들(916(1), 916(2), ..., 916(6) 및 916(7))에서, 일차 동작(즉, "들어오다", "안내하다", "가져다주다" 및 "먹었다")만이 도시되지만, 이것은 스토리로부터의 다른 사실들로 인스턴스화된 전체 구조를 전하는 것을 의미한다.
하나의 구현예에서, 에피소드 프레임 추론 모듈(918)은 다양한 관련성을 갖는 복수의 프레임들을 검색하고 식별할 수 있다. 각각의 검색은 하나 이상의 프레임을 선택하는데 이용될 수 있는 신뢰도 또는 관련성 스코어를 회신한다. 궁극적으로 선택될 프레임들은 스토리를 가장 잘 설명하는 방식으로 스토리 내의 요소들과 정렬할 것으로 예상된다. 예를 들어, 스토리가 사람들, 메뉴들, 음식 및 테이블들을 포함하기 때문에 레스토랑 프레임이 선택될 수 있다. 그러나, 모듈(918)은 또한 사람들, 메뉴들, 음식 및 테이블들을 포함하는 스토리와 또한 관련될 수 있는 호텔 프레임을 식별할 수 있다. 따라서, 에피소드 프레임 추론 모듈(918)은 레스토랑 프레임 및 호텔 프레임 둘 다를 선택할 수 있고, 아마도 레스토랑 프레임이 호텔 프레임보다 더 높은 관련성 스코어를 갖지만, 둘 모두가 수용 임계값을 초과하는 스코어들을 갖는다. 이러한 상황들에서, 둘 모두의 프레임들은 선택되고 인스턴스화된 다음, 인간 사용자들이 최상의 선택일 수 있는 것을 더 잘 이해하기 위한 질문들을 생성하는데 이용된다.
생각 생성 컴포넌트들(402)은, 스토리 모델에 이미 있는 GSP들이 주어지면, 텍스트의 추가적인 의미론적 해석들을 나타내는 인스턴스화된 GSP들에 대한 새로운 확률 분포들을 생성하는 공통 의미 추리 모듈(922)을 더 포함할 수 있다. 예를 들어, 이러한 추리는 계수 및 산술과 같은 수치적 추리, 이벤트 순서화와 같은 시간적 추리, 및 물리적 대상들의 부분들 및 크기들에 대한 물리적 추리를 포함할 수 있다. 공통 의미 추리 모듈(922)에서 이용되는 알고리즘들은 특정한 GSP들(예를 들어, 다양한 타입들의 스토리 모델에서 엔티티들의 수를 계수하기 위한 알고리즘들)에 전문화될 수 있거나, 연역적 규칙들을 검색하고 적용하기 위한 프레임 추론 프로세스의 일반적인 애플리케이션일 수 있다. 스토리들이 더 복잡해짐에 따라, 많은 프레임들이 스토리를 나타내는데 이용될 수 있다는 점에 또한 유의해야 한다. 이것은 완전한 스토리를 형성하도록 합쳐지는 장면들 또는 에피소드들과 유사하다.
지식 통합 엔진(136)은 가능한 프레임들 및 GSP들이 그 안에서 스토리를 얼마나 잘 나타내는지를 검사하는 프레임 추론 프로세스의 평가 단계를 구현하는 제약 컴포넌트들(404)을 더 포함한다. 하나의 구현예에서, 제약 컴포넌트들(404)은 프레임 정렬들의 세트가 스토리와 얼마나 잘 매칭하는지에 대한 스코어를 생성한다. 적은 수의 프레임들이 스토리로부터 추출된 많은 수의 언어학적 분석 생각들과 매칭할 때 더 높은 스코어가 주어진다. 반대로, 추론된 생각들이 스토리에 관한 시스템의 다른 생각들과 모순되는 경우 스코어들이 더 낮다.
공동 추론 엔진(406)은 상이한 해석 레벨들을 효과적으로 결합하기 위해 시스템 내의 모든 컴포넌트들의 출력을 결합한다. 공동 추론 엔진(406)은 생각 생성 컴포넌트들(402) 및 제약 컴포넌트들(404)로부터의 출력을 취하고, 생각들에 대한 공동 분산을 계산한다. 공동 추론 엔진(406)은 스토리 모델을 구성 및 진화시키는데 이용되는 각각의 생각의 주변 확률을 계산한다. 공동 추론 엔진(406)은 그 시간에 알려진 대로의 모든 생각들에 기반하여 가능한 생각들에 대한 조건부 확률들을 생성하도록 구성될 수 있다.
전술한 모든 컴포넌트들의 결과들을 결합함으로써, 공동 추론 엔진(406)은 상이한 해석 레벨들을 결합한다. 예를 들어, 스토리 파싱 엔진(134)이 술어 논항 구조 생각들에 대한 확률 분포를 생성하고, 술어 논항 구조 생각들 중 하나가 낮은 확률을 갖는 경우를 고려한다. 언어-GSP 매퍼(906)는 술어 논항 구조 생각을 이용하는 GSP가 스토리의 나머지와도 맞는 에피소드 프레임과 잘 맞는 것으로 결정하면, 공동 추론 엔진에 의한 높은 주변 확률이 주어질 것이다.
이 프로세스를 통해 생성된 GSP 구조 인스턴스들(916) 및 프레임 인스턴스들(920)은 현재 세계 모델(138)의 저장소(924)에 저장되어 컴퓨팅 시스템의 지식을 계속 구축할 수 있다. 이들 인스턴스들은 또한 스토리의 이해를 구축하는데 있어서의 미래의 이용을 위한 새로운 GSP 구조들 및 프레임들을 구축하는데 이용될 수 있다.
도 11은 지식 통합 엔진(136)이 스토리의 이해를 개선하기 위해 프레임 추론을 어떻게 이용하는지를 도시한다. 이 예에서, 벤 및 아바 스토리(106)는 통합된 테마 또는 개념 내의 에피소드를 설명하기 위해 인스턴스화되지 않은 레스토랑 프레임 구조(1104)에 의해 표현될 수 있는 추상적인 레스토랑 스크립트 또는 에피소드(1102)와 함께 도시된다. 여기서, 에피소드(1102)는 다음과 같이 레스토랑에서 발생하는 것의 배경 지식을 제공한다:
레스토랑은 고객이 음식을 먹기 위해 가는 장소이다.
레스토랑에서, 고객은 테이블에 앉아서 웨이터가 오기를 기다린다.
웨이터는 고객에게 메뉴를 준다.
고객은 메뉴를 판독한다.
고객은 먹고 싶은 음식을 고른다.
고객은 그 선택들을 웨이터에게 말하고, 웨이터는 음식을 고객에게 가져다준다.
고객이 음식을 먹은 후에, 웨이터는 계산서를 고객에게 가져다준다.
고객은 계산을 한 다음에 떠난다.
레스토랑 프레임(1104)은 에피소드(1102)의 문장들에 관련된 복수의 생성 의미론적 프리미티브들로 구성된다. 도 11에서, 3개의 인스턴스화되지 않은 동작 GSP 구조들(1106, 1108 및 1110)이 논의를 위해 도시되어 있다. 동작 GSP 구조들(1106, 1108 및 1110)은 메모리 위치(1112)에 의해 표현된 바와 같이, 현재 세계 모델(138)의 메모리 위치들에서 유지되는 데이터 구조들로서 구현된다. 제1 동작 GSP 구조(1106)는, "레스토랑은 고객이 음식을 먹기 위해 가는 장소이다"라고 말하는, 에피소드(1102) 내의 개방형 문장의 일부를 나타낸다. 동작 GSP 구조(1106)는 데이터 구조의 어근 노드에서의 동작 역할 "가다"(레이퍼:가다), 제1 의존 노드에서의 에이전트 역할 "고객"(에이전트:고객), 및 제2 의존 노드에서의 위치 역할 "레스토랑"(위치:레스토랑)을 포함한다. 동작 GSP 구조(1108)는, "... 웨이터는 음식을 고객에게 가져다준다"로 판독되는, 에피소드(1102)의 여섯 번째 문장의 두 번째 절을 나타낸다. 동작 GSP 구조(1108)는 데이터 구조의 어근 노드에서의 동작 역할 "가져다주다"(레이퍼:가져다주다), 제1 의존 노드에서의 에이전트 역할 "웨이터"(에이전트:웨이터), 제2 의존 노드에서의 점유 역할 "음식"(점유:음식), 및 제3 의존 노드에서의 점유자 역할 "고객"(점유자:고객)을 포함한다. 세 번째 예시된 GSP 구조(1110)는, "고객이 음식을 먹은 후에 ..."로 판독되는, 에피소드(1102)의 일곱 번째 문장의 첫 번째 절을 나타낸다. 동작 GSP 구조(1110)는 데이터 구조의 어근 노드에서의 동작 역할 "먹다"(레이퍼:먹다), 제1 의존 노드에서의 에이전트 역할 "고객"(에이전트:고객), 및 제2 의존 노드에서의 대상 역할 "음식"(위치:음식)을 갖는다. 다양한 동작 GSP 구조들(1106, 1108 및 1110)이 데이터 구조의 다양한 노드들(예를 들어, 고객, 웨이터, 음식 등)에서 일반적인 라벨들로 시작한다는 점에 유의한다.
지식 통합 엔진(136)은 스토리(106)의 이해를 개선시키기 위해 스토리 모델 해석(1114)과 프레임(1104) 내의 프레임 의미론을 정렬한다. 이 예에서, 프레임 구조는 벤 및 아바 스토리(106)로부터의 세부사항들로 인스턴스화되어, 각각 인스턴스화되지 않은 GSP 구조들(1106, 1108 및 1110)에 대응하는 인스턴스화된 GSP 구조 인스턴스들(1116, 1118 및 1120)을 형성한다. 인스턴스화된 GSP 구조 인스턴스(1116)에서, 에이전트 역할의 논항은 일반 가주어 "고객" 대신에 스토리 엔티티 "아바"이다. 레스토랑의 타입 또는 이름에 대해 스토리에서 더 이상의 특정한 정보가 없기 때문에, 위치 역할은 일반 라벨 "레스토랑"을 유지한다.
인스턴스화된 GSP 구조 인스턴스(1118)에 대해, 일반 가주어 "웨이터"의 에이전트 역할은 스토리 특정 엔티티 "벤"으로 대체된다. 점유자 역할은 일반 라벨 "고객" 대신에 스토리 특정 엔티티 "아바"를 가정한다. 스토리 엔티티 "스파게티"는 또한 점유 역할에서 일반 라벨 "음식"을 대체한다. 유사하게, 인스턴스화된 GSP 구조 인스턴스(1120)에 대해, "웨이터"의 에이전트 역할은 "아바"로 대체되고, "음식"의 대상 역할은 "스파게티"로 대체된다. 지식 통합 엔진(136)은 복수의 가능한 정렬들을 고려할 수 있다는 점에 유의한다. 지식 통합 엔진(136)은 각각의 정렬이 스토리와 맞는 신뢰도 스코어들을 추정한다. 예를 들어, 고객으로서의 아바 및 웨이터로서의 벤과의 정렬은 웨이터로서의 아바 및 고객으로서의 벤보다 스토리에 더 잘 맞는다. 더 구체적으로, 작은 수의 프레임들이 스토리로부터 추출된 많은 수의 생각들과 매칭될 때 더 높은 스코어들이 주어진다. 또한, 새롭게 예측된 생각들이 스토리에 관해 시스템의 다른 생각들과 모순되는 경우에 프레임 정렬들의 세트가 저조하게 스코어링될 것이다. 신뢰도 스코어들을 추정하기 위한 접근 방식들은 맥락 의존적이고 작업 관련적이며, 이에 따라 상황에 따라 달라질 수 있다. 인스턴스화된 GSP 구조 인스턴스들(1116, 1118 및 1120)은 메모리 위치(1122)에 의해 표현된 바와 같이, 현재 세계 모델(138)의 메모리 위치들에 유지되는 데이터 구조들로서 구현된다.
컴퓨팅 시스템의 스토리의 이해가 이제 기본 구문론적 파스보다 더 풍부하지만, 여전히 스토리에 대해 학습할 것이 더 있을 수 있다. 지식 통합 엔진(136)은 지식 도출 엔진(140)에 의해 제공되는 도출된 지식 리소스들에 액세스하여 스토리에서 이용되는 단어들 및 구들에 대해 계속 더 학습할 수 있다. 추가로, 지식 통합 엔진(136)은 또한, 인스턴스화된 데이터 구조들에서 임의의 불일치들 또는 갭들을 해결하는 것을 돕거나 스토리를 타당하게 설명할 수 있는 복수의 가능한 의미론적 구조들 중에서 최종적으로 선택하기 위해 인간 사용자들과 관계하도록 대화 엔진(142)을 호출할 수 있다. 지식 통합 엔진(136)은 또한, 스토리 언어학적-의미론적 매핑 훈련 및 인간 사용자들로부터의 임의의 피드백에 의해 학습된 것에 기반하여 현재 세계 라이브러리(138) 내에 유지되는 GSP 구조들 및 프레임들의 수정되고 더 새로운 버전들을 구축하기 위해 프레임워크(144)와 함께 동작할 수 있다. 예를 들어, 시스템은 또한 새로운 프레임들을 추출하고 구성하기 위해 상이한 계층화된 메커니즘을 이용하여 구조화되거나, 반구조화되거나 또는 구조화되지 않은 데이터(예컨대, 텍스트 코퍼스들, 이미지 또는 비디오 집합들, 의미론적 데이터베이스들 등)의 큰 코퍼스들을 탐색할 수 있다. 이러한 메커니즘들은 통계적으로 의미 있는 프레임들을 추출하기 위한 통계적인 감독된, 반감독된 및 감독되지 않은 기계 학습 및 데이터 마이닝 기술들, 이미 저장된 프레임들로부터 연역적 또는 귀추적(abductive) 프로세스들을 통해 새로운 프레임들을 생성하기 위한 논리적 및 확률적 추리, 및 대화 엔진을 통해 새로운 프레임들의 직접 지식을 획득하기 위한 사용자들과의 상호작용을 포함하지만 이들로 제한되지는 않는다. 도출된 프레임의 유용성은 특정한 개별 텍스트들을 예측하는 그 능력에 의해 평가될 수 있다.
도 12는 스토리의 더 깊은 이해를 위해 의미론적 정보를 추론하도록 지식 통합 엔진(136)에 의해 실행되는 예시적인 프로세스(1200)를 도시한다. 프로세스(1200)는 도 1, 도 4, 도 5 및 도 9의 시스템 아키텍처(100) 및 지식 통합 엔진(136)을 참조하여 설명된다. 1202에서, 구문론 및 PAS 주석들을 갖는 언어학적 구조를 포함하는 언어학적 분석 결과들이 수신된다. 도 4를 참조하면, 언어학적 분석 결과들은 스토리 파싱 엔진(134)으로부터 수신될 수 있다.
1204에서, 더 높은 해석 레벨들을 제공하는 하나 이상의 의미론적 구조로 언어학적 구조를 변환함으로써 프레임 추론들이 이루어진다. 하나의 접근 방식에서, 추론 동작은 동작들(1204(1)-(2))에 의해 표현되는 복수의 서브 동작들을 포함한다.
1204(1)에서, 생성 의미론적 프리미티브 구조들의 인스턴스들은 텍스트가 의미할 수 있는 것의 제1의 더 높은 해석 레벨을 제공하도록 형성된다. 이러한 형성의 일부로서, 1204(1)(A)에서, 하나 이상의 기존의 인스턴스화되지 않은 GSP 구조가 이러한 구조들의 라이브러리로부터 식별될 수 있다. 인스턴스화되지 않은 GSP 구조들은 현재 세계 모델(138)에 저장될 수 있고, 구조들이 언어학적 구조 내의 단어들/구들과 관련되는 확률들에 기반하여 식별될 수 있다. 복수의 인스턴스화되지 않은 GSP 구조들은 프리미티브들이 텍스트의 가능성 있는 의미를 나타내는 충분한 확률을 나타내면 선택될 수 있다. 확률들은 선택 프로세스를 돕기 위해 미리 결정된 임계값과 비교될 수 있다. 1204(1)(B)에서, 선택된 GSP 구조(들)는 언어학적 분석 결과들로부터의 데이터로 인스턴스화된다. 일단 인스턴스화되면, 이러한 GSP 구조 인스턴스(들)는 보다 강건한 범위의 의미를 제공하며, 사실들과 추론들 간의 논리적 연결들을 제공한다.
1204(2)에서, 프레임 추론 동작은 텍스트가 의미할 수 있는 것의 제2의 더 높은 해석 레벨을 제공하기 위해 프레임 구조들을 형성하는 것을 더 포함한다. 1204(2)(A)에서, 이러한 구조들의 라이브러리로부터, 텍스트의 테마들 또는 에피소드 생각들을 표현하는 하나 이상의 인스턴스화되지 않은 프레임 구조가 식별될 수 있다. 인스턴스화되지 않은 프레임 구조들은 또한 현재 세계 모델(138)에 저장될 수 있고, 이러한 구조들이 언어학적 구조 내의 단어들/구들에 대한 관련성을 나타내는 확률들에 기반하여 선택될 수 있다. 복수의 인스턴스화되지 않은 프레임 구조들은 프레임들이 텍스트(예를 들어, 벤 및 아바 스토리를 이해하기 위한 레스토랑 또는 호텔 프레임들)를 이해하기 위한 관련 테마들을 나타내는 충분한 확률을 보이는 경우 식별될 수 있다.
하나의 접근 방식에서, 프레임 선택 동작(1204(2)(A))은 어떤 프레임들이 주어진 텍스트/스토리에 적용되는지를 결정하는 것을 돕기 위한 추가적인 프레임 귀추 프로세스들을 포함할 수 있다. 이 서브 프로세스는, 이전에 도 9 및 도 11에 대해 설명된 프레임 정렬 프로세스를 포함할 뿐만 아니라, 이전의 상황들에서 프레임을 적용하는 것으로부터 발생하는 더 많고 새로운 추론들을 도출하는 연역적 프로세스를 추가로 포함할 수 있다. 이전의 상황들에서의 적용된 프레임들은 앞선 배경 지식을 고려하여 정렬들 및 추론들이 함께 얼마나 잘 맞는지를 평가하기 위해 호환성/일관성에 대해 검토 및 분석될 수 있다.
1204(2)(B)에서, 선택된 프레임 구조(들)는 GSP 구조 인스턴스들의 집합으로 인스턴스화되거나 구성된다. 도 9에 예시된 바와 같이, 예를 들어, 레스토랑 프레임 구조는 벤 및 아바 스토리(106)의 7개의 문장들로부터 형성된 GSP 구조 인스턴스들(916(1)-(7))로 인스턴스화된다. 일단 구성되면, 프레임 구조(들)는 텍스트의 보다 완전한 이해를 제공한다.
1206에서, 의미론적 구조들(즉, GSP 구조들 및 프레임 구조들)이 스토리 모델의 현재 표현과의 그 가능한 정렬에 대해 평가된다. 이러한 평가는 프레임들 및 GSP 구조들이 얼마나 밀접하게 스토리와 정렬되는지를 나타내는 스코어의 계산을 포함할 수 있다.
1208에서, 생각들에 대한 공동 분산이 계산된다. 하나의 구현예에서, 공동 추론 엔진(406)은 스토리 모델을 구성하고 진화시키는데 이용되는 각각의 생각의 주변 확률을 계산한다. 공동 추론 엔진(406)은 그 시간에 알려진 대로의 모든 생각들에 기반하여 가능한 생각들에 대한 조건부 확률들을 생성하도록 구성될 수 있다.
1210에서, 가장 적절한 프레임들 및 GSP들이 스토리를 표현하도록 선택되고, 스토리 모델이 업데이트된다. 현재 세계 모델은 또한 프레임 추론 프로세스로부터 학습된 임의의 정보로 업데이트될 수 있다.
예시적인 지식 도출 엔진
도 13은 텍스트 문자열 또는 스토리에 대한 의미론적 정보를 추론할 때 지식 통합 엔진(136) 및 대화 엔진(142)을 돕는 선택 컴포넌트들을 예시하는, 지식 도출 엔진(140)의 예시적인 구현예를 도시한다. 지식 도출 엔진(140)은, 다른 컴포넌트들에 의한 용이한 액세스를 위해 도출된 지식 리소스 저장소(412)에 저장될 수 있는 리소스들을 생성하기 위해 학습 및 이해 모듈들(130)에서 오프라인 또는 다른 컴포넌트들과는 독립적으로 실행하도록 구현될 수 있다.
묘사들은 암묵적이다. 정보는 말해지지 않고, 가정되며 모호하게 남아 있다. 컴퓨터 시스템은 암묵적인 주제들, 동작들, 관계들을 예측하고, 그렇지 않으면 언어를 이해하는데 어려움을 가질 것이다. 지식 도출 엔진(140)은 저자가 기존 리소스들로부터 스토리에서 암시적이며 말해지지 않은 채로 남길 수 있는 지식을 식별하거나 예측하는 것을 돕고, 지식 통합 엔진(136) 및 대화 엔진(142)과 같은 다른 시스템 컴포넌트들에게 서비스들을 제공하는 컴포넌트들의 세트를 갖는다. 지식 도출 엔진(140)은 이러한 갭들을 채우려고 시도하므로, 지식 통합 엔진(136)은 더 양호한 지식 모델들을 형성할 수 있고, 대화 엔진(142)은 인간 학생들 또는 협력자들에 대한 더 지능적인 질문들을 표현할 수 있다. 예를 들어, 스토리가 "학생은 그가 대학에 온 바를 얻었다"라고 할 때, 지식 도출 엔진(140)은 이 문장이 그 학생이 학위를 받았거나, 그가 과목에 대한 학점을 취득하였거나, 또는 그 학생이 교육을 받았다는 것을 의미하는지 여부를 예측하기 위해 대안적인 의미들을 찾는다. 이들 대안들 각각은 각각의 대안이 얼마나 가능성 있게 스토리의 더 넓은 맥락 내에 있는지의 확률 값들을 수반할 수 있다.
높은 레벨에서, 지식 도출 엔진은 지식 축적 컴포넌트(1302) 및 지식 도출 서비스 엔진(1304)을 포함한다. 지식 축적 컴포넌트(1302)는 기존 지식(예를 들어, 텍스트, 이미지들, 오디오 등과 같은 구조화되지 않은 데이터 및 지식 기반들, 기존의 논리들 등과 같은 구조 데이터)을 통합하는 것, 대화들을 통해 지식을 축적하는 것, 지식 도출 서비스 엔진(1304) 내의 컴포넌트들을 이용하여 데이터로부터의 지식을 텐서 분해 및 마이닝하는 것과 같은 기술들을 이용하는 자동 지식 기반 완료를 포함하는, 다양한 방식들을 통해 데이터(라벨링되고 라벨링되지 않은 둘 다)를 축적한다. 지식 축적 컴포넌트(1302)는 데이터를 처리하고, 데이터에 의해 암시되거나 데이터에 잠재하는 정보를 캡처하는 도출된 리소스들, 즉 도출된 지식 리소스들(412)의 세트를 생성한다.
지식 통합 엔진(136) 및 대화 엔진(142)으로부터의 요청들은 요청된 지식이 이용가능한 경우 도출된 지식 리소스들(412) 및 지식 축적 컴포넌트(1302)에 의해 제공된다. 그렇지 않으면, 지식 도출 서비스 엔진(1304)은 즉시 원하는 지식을 생성하도록 호출된다. 서비스들은 후술되는 모듈들(1306-1330)을 포함하지만 이에 제한되지 않는 다수의 모듈들을 포함한다.
지식 도출 엔진(140)의 하나의 컴포넌트는 단어 의미들의 모호성을 해소하도록 실행될 수 있는 단어 의미 모호성 해소기(1306)이다. 문장, 절 또는 다른 텍스트 문자열이 주어지면, 단어 의미 모호성 해소기(1306)는 명사들, 동사들, 형용사들, 부사들 및 전치사들의 의미들을 식별한다. 예를 들어, 명사들의 경우에, 단어 의미 모호성 해소기(1306)는 단어 "볼"을 정식 댄스 또는 스포츠 장비의 일부로 구별할 수 있거나, 또는 단어 "배트"를 날아 다니는 포유류 또는 스포츠 장비의 다른 부분으로 구별할 수 있다. 모호성 해소기(1306)는, 예를 들어, 훈련 데이터, 큰 텍스트 코퍼스들(410)에서의 모호하지 않은 단어 의미들, 및 큰 텍스트 코퍼스들(410) 상에서 알고리즘들을 실행하는 것으로부터 도출된 샘플 단어 의미들을 포함하는 다양한 방식들로 컴파일링된 의미 주석 달린 리소스들을 이용할 수 있다. 다른 구현예들에서, 단어 의미 모호성 해소기(1306)는 또한 명사들, 동사들, 형용사들 및 부사들 또는 공중 이용가능한 전치사 의미 인벤토리를 위한 WordNet과 같은 기존의 제3자 의미 인벤토리들에 액세스할 수 있다.
하나의 구현예에서, 단어 의미 모호성 해소기(1306)는 벡터 계산기(1308) 및 의미 계산기(1310)를 포함하는 프로그램 소프트웨어 모듈들로서 구현된다. 벡터 계산기(1308)는 의미 정의에서의 각각의 구문론적 토큰에 대한 상이한 벡터 표현들을 생성하고, 이러한 벡터들을 합산하여 의미 벡터를 생성한다. 벡터 계산기(1308)는 또한 단어/구 없는 문장을 맥락으로 처리함으로써 단어/구에 대한 맥락 벡터를 계산하고, 축소된 문장을 파싱하며, 벡터 표현을 구문론적 토큰들로부터 생성한다. 일 실시예에서, 임베딩 알고리즘은 (단어들보다는) 토큰들 상에서 동작하는 단어 임베딩과 같은, 각각의 구문론적 토큰에 대한 벡터들을 생성하는데 이용된다.
의미 계산기(1310)는 큰 언어 코퍼스들(410)과 같은 훈련 데이터에서 발견되는 것과 같이 빈도 정보로부터 각각의 의미에 대한 프라이어를 추정하기 위해 제공된다. 의미 계산기(1310)는 의미 벡터, 맥락 벡터 및 프라이어의 함수로서 단어/구에 대한 의미를 도출한다. 하나의 구현예에서, 의미 계산기(1310)는 의미 벡터 및 맥락 벡터에 코사인 유사 함수를 적용하고 3개의 입력들, 즉 의미 벡터, 맥락 벡터 및 프라이어 각각에 가중치를 부여할 수 있다.
지식 도출 서비스 엔진(1304)은 문장 또는 텍스트 문자열 내의 의역들을 찾고 인식하기 위한 의역 검출기(1312)를 더 포함할 수 있다. 단어 또는 구의 의역은 다르게 기입되지만 거의 동일한 의미를 갖는 다른 단어 또는 구이다. 예를 들어, 구 "군중 환호"는 다른 구 "관중석에서의 박수갈채"와 거의 동일하다. 의역 검출기(1308)는 유사한 구들을 인식하기 위해 큰 언어 코퍼스들(410) 및 다른 소스들로부터의 배경 지식을 이용한다.
지식 도출 서비스 엔진(1304)의 또 다른 컴포넌트는 단어들 또는 구들 사이의 관계들을 검출하기 위한 관계 검출기(1314)이다. 관계 검출기(1314)는 관계들을 가질 수 있는 단어들/구들을 예측하기 위해, 코퍼스들(410)과 같이 태깅된 리소스들로부터의 배경 지식을 활용한다. 하나의 예에서, 구 "가스 가격들이 계속 떨어진다"에서, 구 "계속 떨어진다"는 양을 감소시키는 관계를 갖는다.
텍스트 함의 검출기(1316)는 또한, 텍스트의 하나의 부분이 다른 하나를 함의하는지를 결정하기 위해 지식 도출 서비스 엔진(1304)으로서 구현될 수 있다. 엔티티 검출기(1318)는 단어의 타입을 분류하기 위해 포함될 수 있다. 누락 텍스트 생성기(1320)는 스토리에서 암시되지만 명백하게 언급되지 않은 텍스트를 식별하고 생성한다. 텍스트 임베더(1322)는 단어/문장/관사를 벡터들로 변환하는데 이용될 수 있는 다른 서비스이다. 룰 마이닝 툴(1324)은 텍스트로부터 추론 규칙들을 학습하는 서비스이다. 하나의 구현예에서, 룰 마이닝 툴(1324)은 상이한 타입들의 추론 규칙들, 예를 들어, 텍스트 명제들만을 포함하는 규칙들, GSP들만을 포함하는 규칙들, 이 둘(즉, 지식 매핑 규칙들에 대한 언어)을 혼합하는 규칙들을 마이닝한다. (빈번한 서브 그래프 마이닝 접근 방식에 기반한) 예시적인 구현예는 큰 언어 코퍼스들로부터 빈번하게 함께 발생하는 진술들의 세트를 취하고, (예를 들어, 단어 의미 모호성 해소를 이용하여) 타입들로 인스턴스들을 일반화하고, 일반화된 텍스트 명제들을 이용하여 잠재적인 추론 규칙 후보들을 생성하며, 인간 사용자와의 대화에 의해 검증한다. 텍스트 매처(1326)는 텍스트의 2개의 부분들을 매칭시키는데 이용될 수 있는 서비스이다.
지식 도출 서비스 엔진(1304)은 어떤 타입의 장면들이 텍스트들로부터 추론될 수 있는지를 예측하기 위한 장면 분석기(1328)를 더 포함할 수 있다. 장면 분석기(1328)는 특정한 장면들 하에서 가장 인기 있는 구들을 식별하기 위해 알려진 코퍼스들(410) 및 다른 소스들을 탐색한다. 하나의 예로서, 텍스트 "나는 약간의 음식을 주문했고, 그 다음에 커피를 마셨다"라고 판독되는 것을 가정한다. 장면 분석기(1328)는 "음식", "커피", "주문했다", "약간의 음식을 주문했다" 및 "커피를 마셨다"와 같은 단어들/구들을 포함하는 장면들을 검출하기 위해 배경 지식 소스들을 탐색할 수 있다. 이 예에서, 장면 분석기(1328)는 "커피점", "작은 식당", "매점", "집", "베란다", "카페" 및 "파티오"와 같이 가능한 장면들의 순위화된 리스트를 회신할 수 있다.
지식 도출 서비스 엔진(1304)은 배경 지식으로부터 미래의 의미론적 프리미티브들을 예측하기 위해 코퍼스들(410) 및 다른 소스들(예를 들어, 위키피디아와 같이 제약되지 않은 소스들) 상에서 훈련하는 배경 통지된 코퍼스 기반 추론 모듈(1330)을 더 갖는다. 논의를 위한 하나의 예로서, 추론 모듈(1330)은 코퍼스들(410) 내의 주어-동사-목적어(또는 PAS) 조합들을 검사하고, 다른 조합들이 목표 조합과 가장 근접하게 유사한 것을 탐색한다. 유사성은 다양한 방식들로, 예컨대 텍스트에서 관련성 또는 근접 가능성을 계산하는 스코어링 알고리즘에 의해 결정될 수 있다. 예를 들어, "데이브가 음식을 먹는다"가 포함된 주어-동사-구조를 가정한다. 다른 결과들은 순위화된 순서로, "데이브가 몸무게를 늘린다"(4의 스코어), "데이브가 몸무게를 뺀다"(3의 스코어), "데이브가 비난을 받는다"(3의 스코어), "데이브가 파운드를 잃는다"(2.5의 스코어), "데이브가 와인을 마신다"(2.5의 스코어) 및 "데이브가 긴장감을 극복한다"(2.5의 스코어)를 포함할 수 있다. 다른 예로서, "나는 차를 산다"가 포함된 주어-동사-구조를 가정한다. 다른 결과들은 순위화된 순서로, "나는 달러를 준다"(6의 스코어), "반복 구매 차"(6의 스코어), "나는 보증금을 준다"(6의 스코어), "나는 증거를 낸다"(5의 스코어), 및 "나는 차를 가져간다"(4.5의 스코어)를 포함할 수 있다.
지식 도출 엔진(140)에서, 지식은 지식 축적 컴포넌트(1302)의 일부로서 지식 텐서들(1332)에 저장된다. 텐서는 다차원 큐브이다. 차원들은 하나 또는 복수의 엔티티 차원, 하나 또는 복수의 관계 차원, 하나 또는 복수의 프레임 차원, 하나 또는 복수의 시간 차원, 하나 또는 복수의 공간 차원 및 하나 또는 복수의 장면 차원을 포함(이에 제한되지 않음)한다. 지식 축적 컴포넌트(1302)는 지식 텐서들(1332)을 정의하고 군집하는 지식 획득 및 군집 모듈(1334)을 더 포함한다. 도 13에서, 3차원 큐브 텐서(1336)는 2개의 축을 따라 표현되는 2개의 엔티티 차원(예를 들어, 보통 명사들, 의미론적 타입들 등) 및 제3 축을 따른 하나의 관계 차원(예를 들어, 공통 동사들)을 갖는 것으로 도시되어 있다. 큐브 텐서(1336) 내의 포인트는 주어진 관계가 2개의 엔티티들 사이에서 유지될 가능성을 포함한다. 이 예에서, 하나의 엔티티가 개이고, 다른 엔티티가 다람쥐인 것으로 가정한다. 이제, 동사 "뒤쫓다"로 표현되는 관계를 나타내는 텐서가 이들 2개의 엔티티에 적용된다고 가정한다. 다람쥐를 뒤쫓는 개의 결과가 높은 확률로 야기될 가능성이 있다. 반대로, 텐서는 동사 "뒤따르다"에 의해 표현되는 관계를 나타내고, 그 결과는 개가 다람쥐를 뒤따른다고 가정한다. 이는 여전히 가능한 결과이지만, "뒤쫓다"보다 낮은 확률로 평가될 수 있으며, 그 이유는 개가 실제로 다람쥐를 뒤따르는 동안, 개는 다람쥐를 잡으려는 의도로 실제로 다람쥐를 뒤쫓고 있기 때문이다.
하나의 구현예에서, 지식 도출 엔진(140)은 각각의 개별 애플리케이션을 커버하기 위해 모든 이용가능한 지식 및 애플리케이션 지향 텐서들의 세트를 포함하도록 하나의 텐서를 포함한다.
하나의 접근 방식에서, 텐서는 텍스트의 큰 데이터 볼륨들로부터 가능성이 있는 공통 의미 지식을 검색하는데 이용될 수 있다. 구 "학생들이 ... 받는다"에서, 텐서 질의 툴은 "학점", "학위" 등과 같이 텍스트로부터 몇 개의 공통 후보들을 식별할 수 있다. 구 "플레이어들이 ... 올린다"에서, 텐서 질의 툴은 "포인트들", "돈" 등과 같이 텍스트로부터 다른 공통 후보들을 식별할 수 있다. 이러한 후보들이 발견되면, 용어들 및 용어 쌍들의 유사성들이 계산될 수 있고, 여기서 각각의 용어는 텐서 내의 슬라이스로서 표현되고, 각각의 용어 쌍은 텐서 내의 컬럼으로서 표현된다. 연관된 추론 확률들을 갖는 후보들의 순위화된 리스트들은 스토리 모델(132)을 현재 세계 모델(138)과 정렬시키는 것을 돕기 위해 지식 통합 엔진(136)에 의한 질의를 위해 도출된 지식 리소스 저장소(412)에 저장될 수 있다.
도 14는 지식 도출 엔진(140)에 의해 실행되어 지식 통합 엔진(136)에 의해 이루어지는 의미론적 추론들을 돕기 위해 스토리 내의 단어들/구들의 의미들 및 관계들에 대한 개연성 있는 후보들을 제공하는 프로세스(1400)를 도시한다. 프로세스(1400)는 도 1, 도 4, 도 5 및 도 13의 시스템 아키텍처(100) 및 지식 도출 엔진(140)을 참조하여 설명된다. 1402에서, 스토리(또는 텍스트 문자열)에서 발견되는 단어들/구들을 분석하기 위한 질의들이 수신된다. 아키텍처(100)에서, 지식 통합 엔진(136)은 의미론적으로 처리되었거나 처리될 스토리에 제공된 단어들에 대한 질의들을 제출할 수 있다. 질의들은 단어들 또는 구들, 단어들/구들의 토큰화된 버전들, 또는 단어들/구들의 다른 표현들을 포함할 수 있다.
1404에서, 단어들/구들의 가능한 해석들을 추론하기 위해 질의들에서 수신된 단어들/구들에 대해 몇 가지 분석들이 수행될 수 있다. 이 동작들이 오프라인으로 수행될 수 있으므로, 특정한 단어 구들에 대한 분석들은 이미 수행되었을 수 있고, 용이한 액세스를 위해 결과들이 저장된다. 다른 상황들에서, 분석들은 즉시 또는 실용화 즉시 수행될 수 있다. 다양한 형태들의 분석들이 예시적인 동작들(1406, 1408 및 1410)에 의해 표현된다.
1406에서, 단어 의미 분석은 가능한 의미들을 결정하기 위해 단어들/구들에 대해 수행된다. 각각의 단어/구에 대해, 의미 정의들을 이용하여 상이한 벡터 표현들이 생성되고, 가능한 의미들이 그 벡터 표현들의 함수로서 계산된다. 보다 구체적으로, 단어 의미 분석(1406)의 하나의 구현예가 동작들(1406(1)-(4))로서 도시되어 있다. 1406(1)에서, 각각의 단어/구에 대해 의미 벡터가 생성된다. 의미 벡터는, 먼저 단어/구에 대응하는 의미 정의들을 파싱하여 각각의 의미 정의의 구문론적 토큰들을 생성함으로써 계산된다. 이러한 의미 정의들은 코퍼스들(410) 또는 도출된 지식 리소스들(412)의 일부일 수 있는 규칙들 또는 정의 데이터 저장소에서 유지될 수 있다. 그 후, 각각의 의미 정의에 대한 토큰들은 알고리즘적으로 처리되어 대응하는 벡터들을 생성하고, 이들 벡터들은 합산되어 의미 벡터를 생성한다.
1406(2)에서, 각각의 의미에 대한 프라이어가 추정된다. 큰 언어 코퍼스들(410)과 같은 훈련 데이터로부터의 빈도 정보는 프라이어들을 추정하는데 이용될 수 있다. 1406(3)에서, 각각의 단어/구에 대해 맥락 벡터가 생성된다. 하나의 접근 방식에서, 호스트 문장으로부터 단어/단계를 제거한 후 단어/구가 없는 문장을 구문론적으로 파싱하는 것에 의해 맥락이 형성된다. 그 후, 구문론적 파스는 예를 들어, 임베딩 함수를 이용하여 맥락 벡터로 변환된다. 1406(4)에서, 단어/구에 대한 의미는 의미 벡터, 맥락 벡터 및 프라이어의 함수로서 도출된다. 하나의 구현예에서, 코사인 유사 함수는 의미 벡터 및 맥락 벡터에 적용될 수 있다. 가중은 이들 3개의 입력들에 추가로 적용될 수 있다. 가중은 로지스틱 회귀와 같은 감독 학습 알고리즘을 이용하여 학습될 수 있다.
1408에서, 질의들 내의 단어들/구들은 의역들, 관계들 및/또는 엔티티 타입들을 검출하기 위해 분석될 수 있다. 큰 코퍼스들(410) 또는 다른 소스들과 같은 태깅된 리소스들로부터의 배경 지식은 분석 중인 단어들/구들에 적용될 수 있는 하나 이상의 의역, 관계 및/또는 엔티티 타입을 식별하기 위해 검사될 수 있다. 1410에서, 하나 이상의 다른 서비스, 즉 텍스트 함의 검출, 누락 텍스트 생성, 장면 분석, 텍스트 임베딩, 텍스트 매처 등이 수행될 수 있다.
1412에서, 의미론적 프리미티브들은 큰 언어 코퍼스들과 같은 배경 지식 소스들로부터 예측된다. 배경 프로세스로서, 도출 엔진(140)은 다른 조합들이 이들에 관련될 수 있는 것에 대해 다양한 주어-동사-목적어(또는 PAS) 조합들을 검사하기 위해 코퍼스들을 분석할 수 있다. 관련성의 값들은 관련된 이들 조합들이 큰 코퍼스들에 있을 경향이 있는 방법에 기반하여 계산될 수 있다. 1414에서, 1404에서의 분석들을 통해 달리 생성되지 않는 정도까지, 분석에 의해 발견된 복수의 해석 후보들의 순위화를 돕기 위해 확률들이 계산된다. 확률들은 질의들에 응답하여 다시 전달될 수 있고, 의미론적 및 프레임 레벨 이해를 추론할 때 적절한 해석들을 선택하기 위해 지식 통합 엔진(136)에 의해 이용될 수 있다.
1418에서, 지식은 지식 리소스들의 세트를 생성하기 위해 축적된다. 연관된 확률들이 따르는 이들 리소스들 중 일부는 시스템 내의 다른 모듈들에 의해 쉽게 소비될 수 있는 포맷 또는 구조이다. 하나의 접근 방식에서, 3차원 텐서 구조가 이용된다. 텐서 구조에 의해, 3개의 파라미터(예를 들어, 2개의 엔티티 및 동작; 하나의 엔티티, 하나의 사물, 하나의 위치 등)가 상이한 요소들 또는 값들을 이용하여 평가될 수 있고, 확률들이 이들 반복들 각각에 대해 계산될 수 있다. 위의 예에서 언급한 바와 같이, 2개의 엔티티 및 하나의 동작 관계를 갖는 텐서는 개(제1 엔티티) 및 다람쥐(제2 엔티티)를 포함하는 스토리가 아마도 "개가 다람쥐를 뒤따르다"보다는 "개가 다람쥐를 뒤쫓다"로서 이들 사이의 관계를 표현하는 더 높은 확률을 갖는다는 것을 발견하는데 이용될 수 있다.
1420에서, 리소스들은 도출된 지식 리소스 저장소(412)와 같은 액세스가능한 데이터 저장소에 저장된다.
예시적인 프레임워크
도 15는 맥락 차별화 및 의미론적 프리미티브들을 위한 지식 표현 언어 및 추론 및 학습 메커니즘들과 같이 시스템 전체에 걸쳐 이용되는 기본 컴포넌트들의 세트인, 생각 표현 및 추리 프레임워크(144)의 예시적인 구현예를 도시한다. 프레임워크(144)는 시스템이 시간의 경과에 따라 확률적인 명제들(또는 "생각들")을 저장, 인덱싱, 검색, 탐색 및 조작할 수 있게 한다.
일반적으로, 프레임워크(144)는 생각 관리 시스템(1502), 지식 데이터베이스(1504), 및 지식 표현(KR) 언어 정의 모듈(1506)을 갖는다. 생각 관리 시스템(1502)은 KR 언어 정의 모듈(1506)에 따라 표현되는 명제들(또는 "생각들")을 저장 및 질의하기 위한 소프트웨어 기반 함수들의 집합이다. 지식 데이터베이스(1504)는 지식 및 추리를 데이터로서 처리하고 온톨로지적으로 독립적인 간단하고 빠른 데이터 구조들로서 이들을 노출시키는 특징 저장소, 그래프 데이터베이스, 지식 기반 등이다. 하나의 구현예에서, 지식 데이터베이스(1504)는 고속 자바 가상 기계 기반의 메모리 내 개념 데이터베이스로서 구현된다.
KR 언어 정의 모듈(1506)은 공통 구문, 최소 의미론, 명제들 간의 연관 정도 및 공통 타입들의 명제들에 대한 공통의 의미론적 모듈들을 포함하는, 엔티티들 및 명제들을 표현하기 위한 정의된 언어에 대한 규칙들을 유지한다. KR 언어는 2개의 부문, 즉 핵심 표현 언어(1508) 및 공통 의미론적 모듈들(1510)로 구성된다. 핵심 표현 언어(1508)는 엔티티들 및 명제들을 표현하는 방법에 대한 구문론 및 최소 의미론, 및 명제들 사이의 연관 정도를 정의한다. 공통 의미론적 모듈들(1510)은 빈번한 작업들에 이용되는 명제들의 타입들이다. 하나의 구현예에서, 공통 의미론적 모듈들(1510)은 다음을 포함할 수 있다:
· 논리 연산자들: 및, 또는, 부정, 암시, 필요충분조건.
· 설명들 및 역할들: 엔티티는 다른 엔티티들(인스턴스들)을 포함하는 설명(클래스)의 역할을 할 수 있다. KR 언어에서의 임의의 술어에 대해, 역할들이 선언될 수 있고, 역할을 채우는 개념의 예상된 클래스에 관해 정보가 제공될 수 있다.
· 이름들: 임의의 개념이 이름을 가질 수 있다.
· 집합들: 엔티티는 다른 엔티티들의 집합을 나타낼 수 있다. 이것은 사물들의 임의의 집합(외연)과 멤버들을 기술하는 설명(내포) 사이에 대응관계가 있다는 점에서 설명들과 관련된다.
· 불확실성: 참인 명제의 연관된 확률을 측정한다.
· 시간: 명제들이 참인 것으로 평가되는 표시자.
· 생각들: 명제 에이전트들이 무엇을 언제 믿는지의 표현.
예시적인 대화 엔진
도 16은 스토리의 시스템의 현재 이해를 챌린지 및/또는 확인하기 위해 사용자 질문들을 생성하고, 시스템의 이해를 수정하기 위해 의미론적 구조들 및 프레임들에서 구현된 해석들을 수정하고 확장하기 위한 사용자 응답들을 수신하는데 이용될 수 있는 선택 컴포넌트들을 예시하는, 대화 엔진(142)의 예시적인 구현예를 도시한다. 대화 시스템(142)은 컴퓨터 시스템(102)이 개별적인 인간 사용자들과의 확장된 대화 세션들에 참여하게 한다. 각각의 대화 세션은 한 명의 사용자만을 포함하는 연속 선형 대화로서 또는 동시에 질문들을 복수의 인간 사용자들에게 분산하기 위한 분산형 방식으로 수행될 수 있다. 분산형 대화는 상이한 사용자들에게 질문하기 위해 대화 세션의 콘텐츠를 분해하고 결과들을 재조립하여 선형 대화와 본질적으로 동일하거나 유사한 학습 결과를 달성하는데 유연한 대화 관리를 적용한다. 분산형 대화 세션들은 컴퓨터 시스템(102)이 사용자들의 집단에 걸쳐 질문들의 인지 부하를 관리함으로써 스케일링되게 하고, 이에 의해 복수의 사용자들과의 동시화된 상호작용들을 통해 학습 프로세스의 레이턴시를 감소시킨다.
협력 학습 프로세스에서의 대화 상호작용은 두 가지 목적들 중 하나를 제공할 수 있다. 첫 번째는 시스템 학습을 지원하는 것이고, 두 번째는 사용자 학습을 지원하는 것이다. 첫 번째의 경우에, 시스템은 충분한 신뢰도를 갖는 GSP들에 스토리를 적절하게 매핑하지 않을 수 있거나, 스토리를 완전히 이해하는데 필요한 추론을 하지 못할 수 있다. 이들 경우들에서, 시스템은 작업을 완료하기 위해 누락 정보를 요청하기 위한 질문들을 사용자들에게 제기한다. 이 학습 프로세스를 통해, 시스템은 지식의 미래의 애플리케이션에서 정확성을 보장하도록 학습된 것을 일반화하거나, 전문화하거나, 확인하기 위해 추가의 탐색 질문들을 할 수 있다. 시스템 학습 전략들의 예들은 요청, 확인 및 일반화/전문화를 포함한다. 요청은 대화 엔진이 시스템 이해를 완료하기 위해 갭들을 채우도록 사용자에게 요청하는 전략이다. 예를 들어, 시스템은 "스토리는 '벤이 아바를 테이블로 안내했다'고 말한다. 이 맥락에서 "안내하다"가 무엇을 의미하는지 설명해 줄 수 있나요?"라고 물을 수 있다. 이 경우에, 도움이 되는 사용자는 "그것은 '벤이 아바를 테이블로 데리고 갔다'를 의미한다"와 같이 시스템이 이해하는 것을 돕기 위해 보다 간단한 용어들로 문장을 바꾸어 말할 것이다.
확인은 시스템이 덜 신뢰도를 갖는 스토리에 대해 이루어진 해석들/추론들을 확인하거나 검증하기 위한 전략이다. 예를 들어, 시스템은 "'벤이 아바를 테이블로 데리고 갔다'가 '벤과 아바가 걸어 갔고, 그들은 테이블 근처에 있다'를 의미한다. 맞는가?"라고 문의할 수 있거나, 또는 벤 및 아바 스토리에서, 시스템은 "나는 아바가 계산을 했다고 생각한다. 맞는가?"와 같이 추론된 동작들을 확인할 수 있다. 일반화/전문화는 시스템이 일부 새로운 정보를 학습한 후 시스템의 이해를 개선시키기 위해 추가의 탐색 질문들을 요청하려고 시도하는 전략이다. 예를 들어, 시스템은 "아바가 고객이기 때문에 계산을 했는가?" (예), "고객들이 항상 스파게티를 먹는가?" (아니오), "고객들이 항상 음식을 먹는가?" (레스토랑에서는 예), "고객들이 항상 계산을 하는가?" (예)를 문의할 수 있다. 일반화 및 전문화로부터 획득되는 이러한 추가적인 지식은 시스템이 미래에 적절한 환경들에서 지식을 적용하는 것을 돕는다.
사용자 학습을 지원하는 경우에, 시스템의 역할은 사용자가 그것에 대한 스토리 또는 이유를 더 잘 이해하는데 도움을 줄 질문들을 하는 것이다. 시스템이 여기서 묻는 질문들의 일부는 이전에 논의한 것과 유사할 수 있고, 이제 시스템이 이들 질문들에 대한 대답들을 알고 있다는 것이 주요 차이점이라는 점에 유의한다. 사용자 학습을 위한 일부 예시적인 전략들은 비교/차별화, 일반화/전문화 및 추론을 포함한다. 시스템은 사용자의 능력에 대한 그 판독 능력에 따라 이러한 2개의 동작 모드들 사이에서 자동으로 전환할 수 있다.
비교/차별화에서, 대화 엔진은 사용자가 유사한 경우들 간을 차별화하는 것을 돕기 위해 질문들을 한다. 예를 들어, 시스템은 "'벤은 아바를 테이블로 안내했다'는 '벤과 아바가 테이블로 걸어 갔다'를 의미한다. '벤은 아바를 테이블로 안내했다'가 무엇을 의미하는지 말해줄 수 있나요?"라고 물을 수 있다. 일반화/전문화에서, 시스템은 사용자가 그 지식을 일반화/전문화하는 것을 돕기 위한 질문들을 한다. 예를 들어, 시스템은 "스토리에서 언급되지 않은 그 밖에 무엇을 고객이 레스토랑에서 합니까?" 또는 "모든 레스토랑들에는 웨이터들이 있는가?"라고 물을 수 있다. 추론 전략에 있어서, 시스템은 사용자들이 스토리에 암시적인 추론들을 하는 것을 돕기 위한 질문들을 할 수 있다. 예를 들어, "아바는 계산을 하고 벤에게 상당한 팁을 남겼다"를 판독한 후, 시스템은 "당신은 아바가 웨이터로서 벤의 서비스에 왜 만족했다고 생각하나요?"라고 물을 수 있다.
다시 도 16을 참조하면, 대화 엔진(142)은 스토리 모델(132)과 현재 세계 모델(138) 사이의 갭들을 해결하기 위해 지식 통합 엔진(136)으로부터 요청들(1602)을 수신한다. 요청들은 해결될 갭들, 확인될 낮은 신뢰도 해석들, 또는 시스템이 현재의 스토리를 더 잘 이해하는 것을 도울 수 있는 다른 양태들에 관한 정보를 포함할 수 있다. 특정한 단어 의미에 관한 질문이 있을 때, 예를 들어, 요청은 단어, 단어를 포함하는 문장, 단어가 가질 수 있는 복수의 의미들을 포함할 수 있고, 그 의미들의 확률들은 문장에서의 정확한 옵션, 스토리 아이덴티티 등이다. 벤 및 아바 스토리(106)에서 문장 "벤은 음식을 아바에게 가져다주었다"를 고려한다. 지식 통합 엔진(136)은 단어 "가져다주었다" 또는 그 어근 형태 "가져다주다"에 대해 어떤 단어 의미가 가장 적절한 것일 수 있는지에 대해 더 학습하길 원한다고 가정한다. 요청(1602)은 완전한 문장, 단어 "가져다주다", "가져다주다"의 다양한 의미들 등을 포함할 수 있다.
지식 통합 엔진(136)으로부터 요청들이 수신됨에 따라, 대화 엔진(142)은 학생(110) 및 그/그녀의 디바이스(118) 및 그/그녀의 디바이스(114)를 갖는 협력자에 의해 표현되는 바와 같이, 인간 사용자들과의 하나 이상의 대화 세션(1604)을 시작한다. 대화 세션(1604) 동안, 대화 엔진(142)은 인간 사용자들에 의한 고려 및 입력을 위해 사용자 디바이스들에 대한 질문들을 생성하고 전송하며, 인간 사용자들에 의해 사용자 디바이스들에 입력된 응답들을 수신 및 처리한다.
도 16의 도시된 구현예에서, 대화 엔진(142)은 현재 세계 모델(138)과의 스토리 모델(132)의 시도된 정렬에 기반하여 질문들을 공식화하고, 이들 질문들에 대한 대답들을 획득하기 위해 한 명 이상의 인간 사용자와 상호작용하는 실행가능한 컴포넌트들의 세트이다. 사용자 질문들은 시스템이 현재 스토리 모델(132)에서 충분한 신뢰도를 갖지 않거나, 스토리 모델(132)을 현재 세계 모델(138)과 아직 확신 있게 정렬할 수 없거나, 또는 지식의 미래의 애플리케이션을 용이하게 하기 위해 새로운 정보를 일반화/전문화하려고 시도하는 곳에서 발생하는 갭들을 채우거나 해결하기 위해 공식화된다. 대화 엔진(142)은, 또한 시스템의 현재 스토리 모델 및 현재 세계 모델이 그 맥락에서 스토리를 완전히 이해하기에 불충분한 갭들을 식별하는데 이런 질문들이 유용할 수 있기 때문에, 독해 질문들을 활용하고/하거나 스토리에 대한 새로운 질문들을 생성할 수 있다.
대화 엔진(142)은 대화 세션(1604) 동안 인간 사용자에게 제기될 질문들을 공식화하기 위한 사용자 질문 생성기(1606)를 갖는다. 사용자 질문 생성기(1606)는 지식 통합 엔진(136)으로부터의 요청(1602)과 같은 요청들을 수신하고 그 요청들에 관련된 정보를 발견하기 위한 질문들을 만든다. 하나의 구현예에서, 사용자 질문 생성기(1606)는 자연 언어 생성 엔진(1607) 및 의존 구조 구축기(1608)를 갖는다. 자연 언어 생성 엔진(1607)은 자연 언어로 스토리 모델 및 현재 세계 모델로부터의 생각들을 렌더링하는데 이용된다. 자연 언어 생성 엔진(1607)은 비전문 사용자가 이해할 수 있는 자연 언어를 생성하기 위해 구문론적 정보, GSP들과 연관된 자연 언어 템플릿들, 및 지식 통합 엔진(136)으로부터의 배경 코퍼스 정보를 이용한다. 의존 구조 구축기(1608)는 요청(1602) 내의 데이터로부터 의존 구조(1610)를 구성하도록 제공된다. 의존 구조(1610)는 시스템이 서로 독립적이고 동시에 추구될 수 있는 대화의 부분들을 결정할 수 있게 하는 방식으로 대화를 표현하는데 이용될 수 있다. 의존 구조는 또한 시스템이 분산형 대화 설정에서 중요한 질문을 해석하고 대답하기 위한 대화 맥락을 추론하도록 허용한다. 이 구조에서, 어근 노드는 부모 질문을 나타내고, 어근 노드로부터 분지하는 각각의 자식 노드는 부모 질문에 대한 대답에 기반하는 가능한 후속 질문을 나타낸다. 이 표현을 이용하여, 자식 노드들은 형제 노드들이 서로 독립적이면서 그 부모 노드들에 의존한다.
도시된 예에서, 어근 노드는 요청(1602)에서 수신된 대로의 단어 "가져다주다"의 단어 의미(WS)의 질문에 관련된다. 이 어근 노드로부터, "가지고 간다"(즉, 의미 옵션 1: "무언가 또는 누군가를 어딘가로 가지고 간다"), "이르게 한다"(즉, 의미 옵션 2: "특정한 상태 또는 조건에 이르게 한다"), 및 "법적"(즉, 의미 옵션 3: "법적으로 제시하거나 개시한다")을 포함하는, 요청에서 수신된 3개의 의미에 대해 3개의 자식 노드가 도시되어 있다. 따라서, 의존 구조(1610)의 어근 질문(RQ)은 문장 "벤은 음식을 아바에게 가져다주었다"에서 단어 "가져다주다"의 어떤 의미가 가장 가능성이 있는가?라고 단순히 물을 수 있다. 그 대답에 따라, 질문들(Q1-Q6)로 표현되는 후속 질문들은 인간 사용자가 초기에 선택하는 단어 의미에 따라 이루어질 수 있다. 사용자가 "가지고 간다" 옵션을 선택한 경우, 후속 질문들은 Q1 및 Q2일 것이고, 동작 전의 그 상태가 어떠하였고 동작 후의 그 상태가 어떠한지에 대한 질문들을 포함할 수 있다.
도 17은 (도 16에서의 구조(1610)와 같은) 의존 구조(1700)의 다른 예를 보다 상세히 도시하지만, 이번에는 예시적인 문장 "큰 빗방울이 클로에의 얼굴 위로 떨어졌다"를 이용한다. 이 예에서, 의존 구조(1700)는 문장에서의 단어 "떨어졌다"의 의미와 같이 문장 자체에 관한 질문들을 하도록 구성된다. 부모 노드(1702)는 문장 내의 "떨어졌다"의 어근 형태로서 동사 "떨어진다"를 포함한다. 연관된 단어 의미들은 부모 노드로부터 가능한 분지들을 형성한다. 제1 분지(1704)는 "중력의 영향으로 자유 낙하로 하강한다"를 의미하는, 단어 "떨어진다"의 제1 의미에 대응한다. 샘플 문장에 대한 정확한 단어 의미를 나타내는 제1 분지(1704)는 자유 낙하의 대응하는 단어 의미에서 암시적인 가능한 사실들 또는 관계들에 관한 질문들을 제안하는 제1 자식 노드(1706)로 이어진다. 여기서, 제1 자식 노드(1706)는 빗방울이 떨어지기 전에 발생한 것에 관한 질문들(즉, 질문: 전 상태 - "빗방울이 떨어지기 전에 어디에 있었는가?")뿐만 아니라 빗방울이 떨어진 후에 발생한 것에 관한 질문들(즉, 질문: 후 상태 - "빗방울이 떨어진 후에 어디에 있는가?")을 하도록 제안한다.
제2 분지(1708)는 "패배한다"라는 의미를 가진 단어 "패배하다"의 제2 의미에 대응한다. 이러한 분지(1708)는 패배한다의 대응하는 단어 의미에서 암시적인 가능한 사실들 또는 관계들에 관한 질문들을 제안하는 제2 자식 노드(1710)로 이어진다. 제2 자식 노드(1710)는 "누가 패배하였는가?"(즉, 질문: 누가) 및 "이들이 어떻게 패배하였는가?"(즉, 질문: 어떻게)와 같은 질문들을 하도록 제안할 수 있다. 제3 분지(1712)는 "분류되거나 포함되는"것을 의미하는 단어 "속하다"의 제3 의미에 대응한다. 제3 자식 노드(1714)는 제3 분지(1712)를 종료하고, "어떤 대상이 분류되고 있는가?"(즉, 질문: 대상) 및 "클래스가 무엇인가?"(즉, 질문: 클래스)와 같이 분류에 관련된 후속 질문들을 하도록 제안한다. 제4 분지(1716)는 "지정된 시간 또는 장소에서 발생하는" 것을 의미하는 단어 "넘어지다"의 제4 의미에 대응한다. 이 제4 분지(1716)는 시간 또는 장소에서 발생하는 대응하는 단어 의미에서 암시적인 가능한 사실들 또는 관계들에 관련된 질문들을 제안하는 제4 자식 노드(1718)로 이어진다. 제4 자식 노드(1718)는 "어떤 이벤트가 발생하였는가?"(즉, 질문: 이벤트), "그것이 언제 발생하였는가?"(즉, 질문: 시간), 또는 "그것이 어디서 발생하였는가?"(즉, 질문: 위치)와 같은 질문들을 하도록 제안할 수 있다.
상이한 시나리오에서, 사용자에 대한 시스템의 질문은 단일 문장이 해석되어야 하는 방법과 직접 관련되지 않을 수 있고, 오히려 문장에서 전달되는 정보가 전체 스토리의 시스템의 이해에 어떻게 통합되어야 하는지에 대한 것일 수 있다. 예를 들어, 이 경우의 부모 노드는 "클로에의 위치"일 수 있고, 대응하는 질문은 "클로에가 실내 또는 실외에 있는가?"이다. 사용자가 "실내"를 선택한 후의 후속 질문은 "실내에서 비가 내리는 이유는 무엇인가?"(클로에가 스토리에서 열대 우림에 있는 것으로 나타남)일 수 있으며, 사용자가 "실외"를 선택할 때의 후속 질문은 "나는 스토리에서 비가 내리고 있다고 생각한다. 맞는가?"일 수 있다. 의존 구조들은 시스템이 스토리로부터 학습된 정보를 확인하고, 요청하고, 일반화하며, 전문화하려고 시도하는 시나리오들에 대해 유사하게 구축될 수 있다.
따라서, 의존 구조들(1700)은 지식 통합 엔진(136)으로부터 수신된 다양한 요청들 각각에 대해 구성될 수 있다. 의존 구조들(1700)은 추구되는 정보의 일부라고 알려진 다양한 요소들 간의 관계들을 제공하고, 이에 의해 대화 엔진이 인간 사용자와 관계하기 위해 적절한 질문들을 공식화하게 한다.
도 16을 다시 참조하면, 의존 구조 구축기(1608)에 의해 구축된 의존 구조들(1610)은 사용자들과의 대화 세션들(1604)에 대한 구조들을 조직화하는 질문 큐잉 엔진(1612)에 제공된다. 질문 큐잉 엔진(1612)은 구조(1610(1))에서의 질문들 Q1-Qn 및 구조(1610(Q))에서의 질문들 Q1-Qm에 의해 표현되는 바와 같이, 큐에 저장된 복수의 의존 구조들(1610(1)-(Q))을 갖는 것으로 도시되어 있고, 각각의 의존 구조는 그 안에 하나 이상의 질문을 갖는다. 각각의 의존 구조는 1602와 같은 요청들의 전부 또는 일부를 수행하기 위해 사용자로부터 정보를 요청하기 위한 시스템의 시도를 나타낸다. 질문들은 사용자들에게 제시하는데 이용가능할 수 있는 순서화된 리스트(1614)에서 유지될 수 있다.
큐잉 엔진(1612)은 그 순서화된 리스트(1614) 내의 질문들을 대화 세션(1604) 동안 인간 사용자들에게 제출하기 위해 질문 디스패처(1616)에게 제공한다. 세션(1614) 동안, 질문 디스패처(1616)는 질문들을 사용자 디바이스들(114/118)에 전송한다. 질문 디스패처(1616)는 리스트(1614)로부터의 질문들을 선형 교환으로 단일 사용자에게 또는 동시 방식으로 복수의 사용자들에게 계속해서 디스패칭한다. 질문 디스패처(1616)는 단일 사용자와의 세션들을 용이하게 하는 선형 디스패처(1618)를 포함한다. 하나의 예로서, 선형 디스패처(1618)는 벤 및 아바 스토리의 콘텐츠에 관해 단일 협력자와 관계할 수 있다. 선형 디스패처(1618)는 의존 구조(1610)의 어근 노드로부터 도출된 대로 단어 "가져다주다"의 의미에 관한 첫 번째 질문을 공식화할 수 있다. 이러한 질문은 다음과 같이 디스패칭되고 사용자 디바이스(UI) 상에 제시될 수 있다:
이해하려고 하는 문장은 다음과 같습니다:
벤은 음식을 아바에게 가져다주었다.
아래의 어떤 선택이 위의 문장과 가장 유사하게 단어 "가져다주다"를 이용하는가?
1. 무언가 또는 누군가를 어딘가로 가지고 간다.
2. 특정한 상태 또는 조건에 이르게 한다.
3. 법적으로 제시하거나 개시한다.
이것은, 예를 들어, 대화 UI(126)로서 도 1에 도시된다. 이 초기 질문 후에, 사용자는 옵션 1의 대답을 회신한다고 가정한다.
질문 디스패처(1616)에 의해 사용자들로부터 수신된 응답들은 후속 질문을 하기 위한 분석을 위해 큐잉 엔진(1612)으로 회신된다. 사용자가 옵션(예를 들어, 동사 "가져다주다"에 대한 단어 의미"가지고 간다")을 선택할 때, 큐잉 엔진(1612)은 새로운 질문을 결정하기 위해 선택된 옵션에 대한 분지를 따라 적절한 의존 구조를 횡단한다. 그 다음에, 새로운 질문은 디스패처(1616)가 사용자들에게 전송하기 위해 대화 리스트(1614)에 추가된다. 벤 및 아바 스토리를 계속하면, 동일한 협력자에게 다시 제시될 적절한 후속 질문들은 다음과 같을 수 있다:
음식이 아바에게 가져다주기 전에 어디에 있는가?
음식이 아바에게 가져다준 후에 어디에 있는가?
선택들이 추론될 수 있다면, 이러한 질문들 각각에 대해 복수의 선택 대답들이 제공될 수 있거나, 또는 사용자가 단순히 대답을 추가하기 위해 개방형 대화 상자가 제공될 수 있다. UI들의 하나의 예시적인 세트가 도 19 내지 도 21과 관련하여 도시되어 있으며 이하에서 보다 상세히 설명된다.
질문 디스패처(1616)는 대안적으로 분산형 디스패처(1620)를 통해 복수의 사용자들에게 질문들을 동시에 분산할 수 있다. 분산형 디스패처(1620)는 질문들을 분리하고 이들을 복수의 사용자들에게 동시에 분산한다. 분산형 디스패처(1620)는 복수의 사람들에게 동일한 질문을 하거나 상이한 사람들에게 상이한 질문들을 할 수 있다. 분산형 대화 세션들의 예들이 도 22 내지 도 24를 참조하여 더 상세히 아래에서 제공된다.
"큰 빗방울이 클로에의 얼굴 위로 떨어졌다"의 도 17에 도시된 문장을 이용하는 후속 질문들의 다른 예는 예를 들어 다음을 포함할 수 있다:
대화 엔진: "큰 빗방울이 클로에의 얼굴 위로 떨어졌다"에서 "떨어진다"의 의미가 무엇인가? (복수의 선택 옵션들을 제공함)
사용자: 옵션 1 - 중력의 영향으로 하강한다.
대화 엔진: "떨어지기" 전의 빗방울의 상태는 어떠한가?
사용자: 하늘에 있었다.
대화 엔진: "떨어진" 후의 빗방울의 상태는 어떠한가?
사용자: 클로에의 얼굴 위에 있다.
떨어지기 전후의 빗방울의 상태에 관련된 2개의 후속 질문들은 선형 대화 디스패처(1618)에 의해 동일한 사람에게 선형으로 디스패칭될 수 있거나 분산형 대화 디스패처(1620)에 의해 두 명의 상이한 사람들에게 동시에 디스패칭될 수 있다.
질문 디스패처(1616)는 또한 사용자들로부터의 응답들을 대답 집합기(1622)로 전송하고, 이 대답 집합기는 대화 세션(1604)으로부터 회신된 질문/응답 쌍들로부터 획득된 정보를 계속해서 집합시킨다. 질문/응답 쌍들은 주어진 응답들과 문의된 질문들을 연관시키는 데이터 구조들(1624)로서 저장될 수 있다. 도시된 예에서, 데이터 구조들(1604)은 질문/응답 쌍을 형성하기 위해 각각의 질문(1626)을 응답(1628)과 연관시킬 수 있고, 이는 또한 스토리 아이덴티티(1630)와 연관된다. 사용자 참조 아이덴티티, 날짜/시간 스탬프, 이용된 양상 등과 같은 추가 정보가 또한 기록될 수 있다. 대화 세션(1604)이 완료될 때, 질문/응답 데이터 구조들(1624)에 구현되는 집합된 정보는 인간들과의 상호작용으로부터 학습된 결과들에 대응한다. 질문/응답 데이터 구조들(1624)은 현재 세계 모델(138)로의 통합 및 스토리 모델(132)과의 추가 정렬을 위해 지식 통합 엔진(136)으로 회신된다.
대화 시스템(142)은 시스템이 더 많이 학습함에 따라 복수의 문장들 또는 복수의 스토리들에 걸쳐 동작하는 질문들을 추가로 구성할 수 있다. 예를 들어, 위의 클로에 예에서, 대화 시스템(142)은 문장 "큰 빗방울이 클로에의 얼굴 위로 떨어졌다"에서 이용된 바와 같이 단어 "떨어진다"의 의미를 중심으로 하나의 세트의 질문들을 문의하였다. 그러나, 클로에에 대한 스토리가 다른 문장 "클로에가 미끄러져서 진흙탕에 넘어졌다"를 갖는다고 가정한다. 지식 통합 엔진(136)은 이 문장에서 단어 "넘어졌다"의 이용을 검사하고 이를 첫 번째 문장에서의 단어 "떨어졌다"의 이용과 대조하기를 원할 수 있다. 이 두 번째의 클로에 문장에 대한 의존 구조가 구성될 수 있고, 대화 엔진은 다음과 같이 사용자가 계속적인 선형 대화 세션에 참여하는 질문들을 문의할 수 있다:
대화 엔진: "클로에가 미끄러져서 진흙탕에 넘어졌다"에서의 "넘어진다"가 "큰 빗방울이 클로에의 얼굴 위로 떨어졌다"에서와 동일한 방식으로 이용되는가?
사용자: 아니오
대화 엔진: "클로에가 미끄러져서 진흙탕에 넘어졌다"에서의 "넘어진다"의 의미가 무엇인가? (복수의 선택 질문들이 제공됨)
사용자: 서 있는 위치를 갑자기 잃는 것이다.
대화 엔진: "넘어지기" 전의 클로에의 상태는 어떠한가?
사용자: 그녀는 서 있었다.
대화 엔진: "넘어진" 후의 클로에의 상태는 어떠한가?
사용자: 그녀는 지면 위의 진흙탕에 있다.
시스템이 학습하고, 지식 통합 엔진이 단어들/구들, 의미론 및 프레임들 사이의 점점 더 많은 관계들을 발견함에 따라, 대화 엔진에 대한 요청들은 더 복잡해질 수 있다. 대화 엔진(142)은 이들 요청들을 이용하여 점점 더 복잡한 질문들을 만들 수 있다. 단어 의미들 및 사실들과 관계들을 채우는 것을 넘어서, 대화 엔진(142)은 스토리 내의 프레임들의 완전성을 탐색하기 시작하는 질문들을 문의할 수 있다.
따라서, 하나의 구현예에서, 대화 엔진(142)은, 단어 및 프레임 의미론적 표현들을 획득하기 위한 기본 학습 모드로부터 그 사이의 복잡성들과의 다른 상호작용 모드들뿐만 아니라 인간 학생들과 함께 스토리를 판독하고 스토리의 어려운 구절들에 직면할 때 질문을 하기 위한 상호작용 모드까지의 범위에 있는, 복수의 동작 모드들을 갖는 시스템 주도형 대화 시스템으로서 구현될 수 있다. 학습 모드에서, 지식 통합 엔진(136) 및 대화 엔진(142)은 사용자들과 관계하여 문장들 및 기본 프레임 표현들 내의 개별 단어들의 기본 의미들을 학습한다. 이것은 가장 통상적으로 이용되는 단어들, 예컨대 연령이 6-7세의 문법 학생들에 의해 보통 알려진 상급 동사들 및 명사들을 학습하는 것으로 시작한다. 이러한 단어들은 그 의미들을 갖는 단어들이 대개 문법적으로 작동하는 방법과 함께 적절한 단어 의미들이 학습되는 것을 보장하기 위해 샘플 문장들의 맥락에서 학습된다. 그 다음에, 이들 목표 단어들에 대한 학습된 의미론적 표현들은 일반화 프로세스를 통해 진행하여, 미래의 문장들을 해석하기 위한 기반이 되는 목표 단어들에 대한 일반적인 의미론적 표현들을 생성한다.
학습 모드는 기본 프레임 표현들을 발견하는데 추가로 이용될 수 있다. 이것을 수행하기 위해, 대화 엔진(142)은, 이러한 이해가 명시적으로 개시되지 않더라도, 사용자가 스토리에서 발생하고 있는 것을 이해하는 것에 대한 인간 사용자들과의 논의에 참여한다. 대화 엔진(142)은, 누가 관련되는지, 스토리가 어디서 일어나고 있는지, 스토리 요소들이 어떻게 펼쳐지거나 작동하고 있는지, 스토리가 언제 펼쳐지는지 등과 같이 스토리에 관한 일반적인 질문들을 만들 수 있다. 예를 들어, 벤 및 아바 스토리에서, 대화 엔진(142)은 "이 스토리를 판독한 후, 벤과 아바는 어디에 있었는지를 말해줄 수 있나요?"와 같은 질문을 제기할 수 있다. 사용자는 "레스토랑" 또는 "펍"에 있었다라고 대답할 수 있다. 대화 엔진은 이러한 응답을 이용하여 "그 곳이 레스토랑(또는 펍)이었음을 어떻게 아셨나요?"와 같은 또 다른 질문을 만들어 낼 수 있다. 사용자는 "벤이 아바를 테이블로 안내했고, 그녀에게 메뉴를 주었으며, 그녀에게 음식을 가져다주었기 때문에"라고 추가로 대답할 수 있다.
이러한 인간 상호작용으로부터, 컴퓨팅 시스템(102)은, 한 사람이 두 번째 사람을 테이블로 안내하고, 두 번째 사람에게 메뉴를 주며, 두 번째 사람에게 음식을 가져다주는 경우, 이것이 첫 번째 사람과 두 번째 사람이 레스토랑에 있을 가능성이 있다는 것을 의미함을 학습할 수 있다. 지식 통합 엔진(136)은 프레임 표현들을 수정 및 업데이트하기 위해 이 학습된 정보를 이용한다. 일부 경우들에, 지식 통합 엔진(136)은 조직화되어 에피소드들로 그룹화될 수 있는 프레임들을 구축함으로써 추상적인 스크립트들 또는 에피소드들(예를 들어, 도 11에서의 에피소드(1102))을 기입하기 위해 이 사용자 피드백을 활용할 수 있다. 하나의 접근 방식에서, 추상적인 프레임이 모든 명사에 대해 구축될 수 있고, 이어서 복수의 프레임들이 에피소드 내에서 이용될 수 있다.
프레임 의미론에 대해 더 높은 레벨의 정보를 뽑아내도록 설계된 더 일반적인 질문들을 만드는 하나 이상의 예로서, 도 1에서 스토리(106(T))로서 도입된 엔조 및 조 스토리를 다시 고려한다. 스토리는 다음과 같다:
엔조와 조는 경주를 하고 있었다. 엔조가 넘어졌다. 그는 무릎을 다쳤다. 조가 돌아보았다. 그녀는 거의 결승선에 있었다. 그녀는 이기고 싶었다. 그녀가 계속 달리면 그녀는 이길 것이다. 엔조는 그녀의 친구였다. 조가 멈췄다. 그녀가 엔조에게로 달려갔다. 그녀는 그가 일어나는걸 도왔다. 엔조가 "고마워"라고 말했다. 조가 "천만에. 내가 넘어졌으면 너가 나를 돕기를 원했을 거야. 너를 도울 수 있어서 기뻐"라고 말했다.
이 스토리로부터, 지식 통합 엔진(136)은 "경주"가 일반적으로 무엇인지에 관해 더 알기 위해 요청들을 할 수 있다. 이 요청에서, 지식 통합 엔진(136)은 "경주"에 대한 단어 의미들, 용어 "경주"를 이용하는 임의의 의미론적 구조들 및 프레임들 등과 같이, 알고 있는 만큼의 정보를 제공할 수 있다. 이로부터, 대화 엔진(142)은 사용자로부터 지식을 추출하기 위해 하나 이상의 질문의 세트를 생성한다. 예를 들어, 하나의 예시적인 질문 세트는 다음의 질문들 Q1, Q2 및 Q3을 포함할 수 있다.
Q1: 나는 이 스토리가 경주에 관해 말하고 있는 것으로 알고 있다. 이들 중 어떤 것이 통상적으로 경주와 연관되는가?
a. 참여자
b. 경주의 우승자
c. 경주의 끝을 표시하는 결승선
이들 선택들은 지식 통합 엔진(136)으로부터의 요청에서 다른 스토리들, 프레임들, 기업 등에서 단어 "경주"의 다른 이용들로부터 알려져 있는 대로 제공될 수 있다.
Q2: 이 스토리 내의 누가 이런 것들을 하는가?
a. 참여자
b. 우승자
이들 선택들은 지식 도출 엔진(138)의 타입 정보 및 도출 프로세스로부터 생성될 수 있다.
Q3: 이들 동작들 중 어떤 것이 통상적으로 경주들에서 발생하는가?
a. 참여자들이 경주를 한다.
b. 참여자들이 이기기를 원한다.
c. 참여자들이 넘어진다.
d. 참여자들이 결승선을 넘음으로써 경주를 마친다.
이들 선택들은 두 번째 질문 Q2에 대답할 때 사용자에 의해 제공되는 정보를 이용하거나, 또는 큰 배경 코퍼스들로부터 통계적 연관성들을 마이닝함으로써 개념들/역할들로 스토리에서의 명명된 엔티티들을 대체함으로써 생성될 수 있다.
이러한 상호작용에 이어서, 시스템은 이와 연관된 전형적인 에이전트들 및 동작들과 같이 경주 프레임에 관한 새로운 지식을 갖는다. 경주 프레임은 완료되지 않을 수 있지만 여전히 유용하다. 경주 프레임은 시스템이 경주들을 언급하는 다른 스토리들을 직면할 때 추가로 구성되고 채워질 수 있다.
도 18은 의미론적 구조들 및 프레임들에서 현재 반영되는 바와 같은 스토리의 컴퓨팅 시스템의 현재의 이해를 챌린지하기 위해 인간 사용자들에게 제출하기 위한 질문들을 생성하기 위한 프로세스(1800)를 도시한다. 프로세스(1800)는 도 1, 도 4, 도 5 및 도 16의 시스템 아키텍처(100) 및 대화 엔진(142)을 참조하여 설명된다. 전술한 바와 같이, 프로세스(1800)는 사용자 디바이스들(114 및 118)에 의해 수행되는 동작들과는 별도로 시스템(102)에 의해 수행되는 동작들을 일반적으로 도시하기 위해 2개의 컬럼들로 도시되어 있다.
1802에서, 지식 통합 엔진(136)으로부터 요청이 수신되어 위에서 논의한 바와 같이 질문 공식화를 트리거링할 수 있는 정보를 식별한다. 이러한 인자들은 스토리 모델과 현재 세계 모델 사이의 갭들을 해결할 뿐만 아니라 시스템의 현재 해석에서의 시스템의 신뢰도를 개선하는데 이용될 수 있는 누락 정보를 포함할 수 있다. 요청은 단어 또는 의미론적 구조에 관한 알려진 정보 또는 현재 가정들을 제공하지만, 시스템의 현재 해석을 검증하기 위해 사용자로부터 추가 정보를 구한다.
1804에서, 요청에 관련된 누락 또는 검증 정보를 발견하기 위한 하나 이상의 질문이 생성된다. 하나의 구현예에서, 1806에서, 질문 생성은 시스템이 질문을 해석하고 대답하기 위해 대화 맥락을 추론하게 하는 의존 구조를 구축하는 것을 포함한다. 의존 구조는, 대화 엔진이 구조를 논리적으로 횡단하여 개방형 및 후속 질문들을 문의하게 하고, 어근 노드들 및 자식 노드들에 대한 분지들을 갖는 트리형 데이터 구조로서 구현될 수 있다. 이러한 하나의 의존 구조는 도 17과 관련하여 도시되고 설명된다. 1807에서, 자연 언어 생성 엔진(1607)은 구문론적 정보, GSP들과 연관된 자연 언어 템플릿들, 및 지식 통합 엔진으로부터 전달된 배경 코퍼스 정보를 이용하여 스토리 모델 및 현재 세계 모델로부터 생각들을 렌더링한다. 이러한 방식으로, 질문들은 비전문 사용자가 이해할 수 있는 자연 언어로 형성된다.
1808에서, 의존 구조들에 의해 지원되는 질문들은 사용자들에게 나중의 분산하기 위해 큐잉된다. 질문들은 또한 질문들이 순서 있는 방식으로 문의되고, 대답들이 수신됨에 따라, 특정한 의존 질문들이 더 이상 문의할 필요가 없기 때문에 리스트로부터 제거될 수 있도록 리스트에서 우선순위화될 수 있다. 질문에 대한 대답을 획득하는 유용성과 같은 다양한 메트릭들에 기반하여 질문들이 순위화될 수 있다. 질문들에 대한 대답들은 또한 응답 선택에서의 시스템의 신뢰도와 같은 다양한 메트릭들에 기반하여 순위화될 수 있다.
1810에서, 네트워크를 통해 컴퓨팅 시스템(102)으로부터의 질문들을 사용자의 디바이스(114/118)에 전송함으로써 하나 이상의 질문이 사용자에게 제기된다. 1812에서, 대화 UI에서와 같이 질문들이 사용자에게 제시된다. 1814에서, 사용자 입력이 수집되고, 응답이 사용자 디바이스로부터 컴퓨팅 시스템(102)으로 회신된다.
1816에서, 응답은 다음에 어떤 질문들이 문의될 수 있는지를 결정하도록 응답이 처리된다. 추가로, 1818에서, 응답들이 집합되고 현재 세계 모델을 업데이트하는데 이용하기 위해 지식 통합 엔진으로 회신된다.
다른 구현예에서, 대화 접근 방식은 어떤 인스턴스화된 GSP 구조들 및 프레임 구조들이 스토리 모델(132)에 추가되어야 하는지 또는 현재 세계 모델(138)에 대한 업데이트들로서 결정하는데 이용될 수 있다. 지식 통합 엔진(136)은 어떤 GSP 구조들 및 프레임 구조들이, 구성 문법에 따라 GSP 구조들의 라이브러리를 결합함으로써 가능한 인스턴스화되지 않은 GSP 구조들의 공간을 검색하여 스토리에서 자연 언어 텍스트의 진정한 해석들인지를 결정한다. 이어서, 이러한 GSP 구조들은 스토리로부터의 엔티티들뿐만 아니라 지식 도출 엔진을 통해 액세스된 배경 코퍼스들로부터 제안된 엔티티들로 인스턴스화된다. 인스턴스화된 GSP 구조들은 자연 언어 생성 엔진(1607)을 이용하여 자연 언어로 렌더링된다. 인스턴스화된 GSP 구조들의 자연 언어 렌더링들은, 지식 도출 엔진(140)으로부터, 예를 들어 텍스트 함의 검출기(1316)와 같은 텍스트 함의 또는 n-그램 리소스들을 포함하는 다양한 리소스들을 이용하여 필터링된다.
원래의 텍스트는, 인스턴스화된 GSP 구조들의 필터링된 자연 언어 렌더링들과 함께, 대화 엔진(142)을 통해 한 명 이상의 사용자에게 제시된다. 지식 통합 엔진(136)은 사용자 응답들을 분석하여 신뢰도, 확률 및 임계값 분석을 수행하고 어떤 GSP 인스턴스화된 구조들이 어떤 신뢰도들을 갖는 스토리 모델(132)에 추가되어야 하는지를 결정한다. 그 다음에, 그 결과의 생각들은 일반화되고 현재 세계 모델(138)에 통합될 수 있다. 이러한 방식으로, 지식 통합 엔진(136)은 GSP 구조들 및 프레임 구조들을 인스턴스화하는 것을 통해 지식에 언어/텍스트를 매핑하기 위한 일반화된 규칙들을 자동으로 생성하고, 스코어링하며, 개선하기 위한 접근 방식을 구현한다. 지식 통합 엔진(136)은 또한 GSP 언어로 및/또는 프레임들로서 어휘-구문론-의미론적인 언어 매핑 규칙들을 인코딩하기 위한 메커니즘을 제공할 수 있다. 대화 세션들 동안 도출된 사용자 피드백은 언어 매핑 규칙들을 평가 및 수정하는데 이용될 수 있다.
텍스트 해석 및 텍스트-GSP 규칙들 이외에, 시스템(102)은 공통 의미 추리 규칙들을 추출하기 위한 방법을 이용한다. 암시들 및 연관성들은 주어진 텍스트의 진정한 해석들로서 확인된 GSP 구조들 사이에서 가설화된다. 암시들 및 연관성들은 확인을 위해 일반적인 형태로 사용자에게 제시된다. 이러한 일반적인 명제들이 확인되면, 추가의 예들이 검색되고 추가의 확인 및 개선을 위해 사용자에게 제시된다.
예시적인 대화 사용자 인터페이스들
도 19는 컴퓨팅 시스템과 사용자 사이의 상호작용을 용이하게 하는 대화 사용자 인터페이스(UI)(1900)를 도시한다. 도 19에 도시된 UI 및 다음의 다른 것들은 논의 목적을 위해 제공된 예들이다. 다양한 타입들의 질문들이 생성됨에 따라, 실제 인터페이스는 도 19에서의 외관과 다를 수 있다. 예를 들어, 하나 이상의 그래픽 특징은 상이하게 나타날 수 있거나, 질문들, 어떤 정보가 구해지고 있는지, 사용자의 스크린의 크기/타입 등에 따라 완전히 생략될 수 있다.
도 19에서, 대화 UI(1900)는, 협력자의 디바이스(114(1))와 같은 사용자의 디바이스 상에 표시될 수 있고, 컴퓨팅 시스템(102)과 인간 사용자 사이의 대화 세션(1604) 동안 사용자가 볼 수 있는 제1 스크린 렌더링(1902)으로서 도시되어 있다. 스크린 렌더링(1902)은 브라우저 내에 렌더링된 웹 페이지로서 도시되어 있다. 그러나, 전술한 바와 같이, 이것은 단지 하나의 가능한 구현예일 뿐이며, 질문들의 제시 및 전자 사용자 엔트리를 용이하게 하기 위한 다른 기술들이 이용될 수 있다.
스크린 렌더링(1902)은 좌측을 따라 그래픽 대화 인터페이스(1906)를 포함하는 주 영역(1904)을 포함한다. 그래픽 대화 인터페이스(1906)는 상자들(1908 및 1910)과 같은 일련의 대화 상자들을 갖는다. 대화 상자들은 그래픽 표시를 통해 소스에 기인하는 것으로 도시되어 있으며, 상단 상자(1908)는 (다른 심볼들이 이용될 수 있지만 나비 아이콘에 의해 표시되는 바와 같이) 컴퓨터 시스템에서 비롯되는 것으로 되어 있고, 하단 상자(1910)는 (사용자 아이콘에 의해 표시되는 바와 같이) 사용자에서 비롯되는 것으로 되어 있다. 이 예에서, 시스템은 예시적인 벤 및 아바 스토리에서 문장 "벤은 음식을 아바에게 가져다주었다"로부터 단어 "가져다주었다"를 이해하려고 시도하고 있다. 단어 "가져다주었다"의 의미에 대해 학습하고자 하는 질문은 다음과 같이 상단 대화 상자(1908)에 제공된다:
이해하려고 하는 문장은 다음과 같습니다:
벤은 음식을 아바에게 가져다주었다.
아래의 어떤 선택이 위의 문장과 가장 유사하게 단어 "가져다주다"를 이용하는가?
그 다음에, 가능한 대답들에 대한 복수의 선택들을 제공하는 응답 템플릿이 두 번째 대화 상자(1910) 내에 배치된다. 이 예에서, 옵션들은 다음을 포함한다:
1. 무언가 또는 누군가를 어딘가로 가지고 간다.
2. 특정한 상태 또는 조건에 이르게 한다.
3. 법적으로 제시하거나 개시한다.
(사용자 아이콘에 의해 시각적으로 표시되는 바와 같이) 사용자에 기인하는 동안, 대화 상자(1910)는 컴퓨터 시스템으로부터 수신된 복수의 선택 콘텐츠로 채워진다. 사용자 기인은 사용자가 단어 "가져다주었다"에 대한 단어 의미의 이러한 토픽에 대해 컴퓨터 시스템에게 다시 응답을 제공하기 위한 옵션들 중 하나를 선택하고 있다는 것을 전달한다. 응답 대화 상자(1910)는 또한 다른 옵션들을 요청하기 위한 "기타"의 일반적인 동작 아이템들, 스토리가 이 시점에서 분명하지 않다는 것을 나타내기 위한 "명시되지 않음", 및 사용자가 질문에 대한 대답이 불확실할 때의 "스킵"을 포함한다.
또한, 주 영역(1904)에는 우측을 따라 정렬된 임의의 그래픽 상자들이 있다. 그래픽 상자들은 어떤 스토리가 논의되고 있는지를 식별하기 위한 스토리 설명 상자(1912) 및 고려되는 스토리의 시스템의 현재 이해를 요약하기 위한 스토리 이해 상자(1914)를 포함할 수 있다.
이 예에서, "무언가 또는 누군가를 어딘가로 가지고 간다"를 의미하는 것으로 "벤은 음식을 아바에게 가져다주었다"에서 이용되는 바와 같은 단어 "가져다주다"의 의미를 제공하는 옵션 1을 사용자가 선택하는 것으로 가정한다. 대화 엔진은 이 대답을 수신하는 경우 연관된 의존 구조를 횡단하여 다음 질문을 식별한다. 그 다음에, 이러한 다음 질문은 도 20에 도시된 바와 같이 사용자에게 제시하기 위해 사용자 디바이스로 회신된다.
도 20은 대화 세션의 다음 질문을 예시하기 위해 도 19의 스크린 렌더링(1902)에 후속하여 사용자의 디바이스 상에 제시된 대화 UI(1900)의 제2 스크린 렌더링(2002)을 도시한다. 이 예에서, 대화 인터페이스(1906)는 마지막 대화 상자(1910)의 에지가 주 영역(1904)의 상단에서 부분적으로 보이도록 시각적으로 위쪽으로 시프트되었다. 이 대화 상자(1910) 아래에는 이전 질문에 대한 사용자 응답에 기반하여 연결된 다음 질문을 포함하는 새로운 대화 상자(2004)가 있다. 사용자가 옵션 1로 대답하였기 때문에, 다음 질문은 다음과 같다:
알았습니다. 나의 다음 질문은 다음과 같습니다.
나는 "가져다주다"가 동작, 즉 어떤 종류의 변경에 대해 말하는 것으로 생각한다. 즉, 동작이 발생한 후에는 무언가가 달라진다. 맞는가?
응답 대화 상자(2006)는 또한 "예" 및 "아니오"의 응답 옵션들을 사용자에게 제시한다. 사용자가 그 진술에 동의하고, 대화 상자(2006)에서 "예"라고 대답한다고 가정한다. 이 응답은 대화 엔진으로 회신되고, 이 대화 엔진은 다음 질문을 식별하기 위해 연관된 의존 구조를 다시 횡단한다. 그 다음에, 이 다음 질문은 도 21에 도시된 바와 같이 사용자에게 제시하기 위해 사용자 디바이스로 회신된다.
또한, 도 20에서의 주 영역(1904)에는 사용자 응답에 의해 부분적으로 확인된 정보를 반영하기 위해 스토리 이해 상자(2008)의 업데이트된 버전이 도시되어 있다. 여기서, "벤"이 주어로서 식별되고, "가져다주었다"가 동사로서 식별되며, "음식"이 목적어로서 식별되도록 구문론적 역할들이 문장에 추가된다.
도 21은 대화 세션에서의 또 다른 다음 질문을 예시하기 위해 도 20의 제2 스크린 렌더링에 후속하여 사용자의 디바이스 상에 제시된 대화 사용자 인터페이스(1900)의 제3 스크린 렌더링(2102)을 도시한다. 마지막 응답에서 동작을 나타내는 단어 "가져다주다"의 시스템의 이해를 사용자가 확인하였기 때문에, 대화 상자(2104)에 제시된 다음 질문은 사용자가 스토리에 대해 이해하였을 수 있는 추가 지식을 조사한다. 이 예에서, 질문은 다음과 같을 수 있다:
알았습니다. 우리가 판독한 문장은 다음과 같습니다:
벤은 음식을 아바에게 가져다주었다.
이 시점에서, 나는 다음과 같이 이해한다:
벤은 가져다주는 동작이 발생하게 만든다.
나의 다음 질문은 다음과 같습니다:
가져다주는 동작으로 인해 어떤 종류의 것이 변경되었나요?
응답 대화 상자(2106)는 또한 가능한 대답들에 대한 복수의 선택들을 사용자에게 제시한다. 이 예에서, 5개의 옵션이 제시된다:
1. 음식은 어딘가에 위치한다.
2. 벤은 어딘가에 위치한다.
3. 아바는 음식을 갖는다.
4. 음식은 아바와 어떤 관계로 위치한다.
5. 벤은 아바와 어떤 관계로 위치한다.
사용자는 이러한 옵션들 중 하나 이상, 또는 다른 옵션들을 요청하기 위한 "기타"의 상자(2106) 내의 일반적인 동작 아이템들, 스토리가 이 시점에서 분명하지 않다는 것을 나타내기 위한 "명시되지 않음", 및 대답을 시스템에 다시 전송하기 위한 "제출" 중 하나를 선택할 수 있다.
스토리 이해 상자(2108)의 업데이트된 버전은 주 영역(1904)에 제공되어 이전 사용자 응답에 의해 부분적으로 확인된 정보를 반영한다. "가져다주다가 무언가 또는 누군가를 어딘가로 가지고 간다를 의미한다"의 확인된 의미는 스토리에서 문장의 개선된 이해를 보여주기 위해 제공된다.
대화 엔진은 의존 구조에 표현된 관련 질문들 모두가 소진될 때까지 더 많은 질문들을 계속해서 문의한다. 대화 엔진은 개방형 독해 질문들을 추가로 문의할 수 있다. 스토리 이해 상자(2108)에 표현된 것과 같은 지식의 이 본체는 대답 집합기(1622)에 의해 집합되고 추가 처리를 위해 지식 통합 엔진(136)으로 회신된다.
예시적인 분산형 대화 시스템
이전에 도입된 바와 같이, 대화 엔진(142)은 스토리의 자연 언어 텍스트를 논의하기 위해 선형 방식으로 단일 사용자와의 대화 세션들을 확립할 수 있다. 이러한 대화 세션들은 흔히, 복수의 정보 부분들이 구해지고, 나중에 교환들이 앞선 질문들에 대한 대답들에 의존할 수 있다는 점에서 원-샷 교환들을 넘어 확장된다. 예를 들어, 컴퓨팅 시스템이 문장 "개구리들은 그 피부를 통해 호흡한다"에 대해 작동하고 있을 때, 대화 엔진(142)은 지식 통합 엔진(136)에 의해, 사용자와의 대화 세션에 참여하여 호흡이 공기를 들어마시고 내쉬는 순환 프로세스이고, 그 목적은 개구리 몸이 필요로 하는 산소를 얻는 것이며, 대부분의 동물들은 그 피부를 통하기 보다는 그 코들을 통해 호흡한다는 것을 학습하도록 작업이 주어질 수 있다. 일부 경우들에서, 단일 사용자와의 이러한 확장된 상호작용들은 사용자에 대해 높은 인지 부하를 줄 수 있으며, 대화 세션의 연속 특성은 실행하는데 시간이 걸린다.
학습 프로세스를 가속화하기 위해, 대화 세션들은 복수의 사용자들과 동시에 관계하도록 확장될 수 있다. 대화 세션들은 스토리에 관한 논의 내의 특정한 개별 질문들이 다른 것들과 독립적으로 사용자들에 의해 대답될 수 있는 서브 대화들로 분할된다. 예를 들어, 개구리 대화 세션에서, 호흡의 메커니즘 및 목적은 관련된 장기들과 독립적으로 탐구될 수 있다. 복수의 사용자들에 걸쳐 질문 및 대답 세션들을 분산하고, 사용자들과 동시에 관계하는 것은 컴퓨팅 시스템이 더 빠르게 학습하게 한다.
따라서, 특정한 구현예들에서, 대화 엔진(142)은 대화 세션들을 서브 대화 세션들로 분할하고 이들 서브 대화 세션들을 사용자들의 더 넓은 청중에 동시에 분산하기 위해 분산형 대화 디스패처(1620)를 이용한다. 하나의 구현예에서, 분산형 대화 디스패처(1620)는 문장 또는 텍스트 문자열과 연관된 의존 구조를 활용하여 대화 세션들을 분할하여, 시스템이 그 질문들을 복수의 사용자들에게 분산시킴으로써 사용자에게 주어진 인지 부하를 유연하게 관리할 수 있게 한다. 이러한 방식으로, 시스템은 그 부하가 실제로 복수의 사용자들에게 분산되는 단일의 대화 세션을 논리적으로 갖는다.
도 22 내지 도 24는 분산형 대화 시스템의 하나의 예시적인 구현예를 보다 상세히 도시한다. 도 22는 분산형 대화 디스패처(1620)가 네트워크(120)를 통해 협력자들(114(1)-(C))과 같은 복수의 사용자들에게 질문들(2202(1), 2202(2), ..., 2202(P))을 분산하는 대화 엔진(142)을 도시한다. 동일한 질문들이 복수의 사람들에게 제기될 수 있거나, 또는 상이한 질문들이 상이한 사용자 세트들에 분산될 수 있다. 협력자들(114(1)-(C))은 Amazon Mechanical TurkTM과 같은 서비스를 통해 비공식적으로 모집되거나 정식으로 조직화된 사용자들의 집단으로서 볼 수 있다. 사용자들은 질문들을 검토하고 그 응답들(2204(1), 2204(2), ..., 2204(P))을 대화 엔진(142)에 회신한다.
분산형 대화 디스패처(1620)는 다음 질문을 식별하기 위해 사용자 응답들에 기반하여, 의존 구조(1610)와 같은 의존 구조들 또는 대화 리스트(1614) 내의 그 순서화된 표현을 통해 반복하기 위한 구조 크롤러(2206)를 포함한다. 구조 크롤러(2206)는 이전의 질문으로부터의 사용자 응답을 이용하여 적절한 분지를 선택하고 그 밖에 학습될 필요가 있는 것을 발견한다. 일부 경우들에서, 의존 구조(1610)는 흔히 데이터 구조 내의 형제 노드들로서 표현되는 복수의 가능한 후속 질문들로 이어진다. 이것이 발생할 때, 다음 질문들에 대한 상이한 옵션들이 상이한 협력자들에게 동시에 제시될 수 있다.
사용자 선택기(2208)는 이어서 하나 이상의 사람 그룹을 선택하여 후속 질문들을 전송할 수 있다. 사용자 선택기(2208)는 협력자들(114(1)-(2))에 의해 표현되는 그룹과 같은 복수의 사람들에게 동일한 질문을 전송하도록 선택할 수 있다. 대안적으로, 사용자 선택기(2208)는 상이한 질문을 상이한 사용자들 또는 사용자들의 세트들에게 전송하도록 결정할 수 있다. 예를 들어, 도 22에 도시된 바와 같이, 사용자 선택기(2208)는 상이한 질문들(2202(1)-(P))을 협력자들(114(1)-(C))과 같은 상이한 사용자들에게 전송하도록 선택할 수 있다. 이러한 방식으로, 많은 사용자들에 의해 질문들이 평가되고 동시에 대답될 수 있다. 이것은 컴퓨팅 시스템이 스케일링하고 더 빠르게 학습할 수 있게 한다. 컴퓨팅 시스템은 임의의 수의 책들을 동시에 판독하고 임의의 수의 사람들과 동시에 관계함으로써 시스템이 더 신속하게 이해를 얻는 것을 허용할 수 있다.
사용자 선택기(2208)는 누가 질문들을 수신해야 하는지를 결정하기 위해 휴리스틱 및 프로파일 정보를 이용할 수 있다. 하나의 구현예에서, 협력자들은 연령, 판독 레벨, 예컨대 그들이 판독하는 책들 등과 같이 이들에 관한 정보를 제공하는 프로파일들을 가질 수 있다. 유사하게, 스토리들 또는 텍스트는 판독 또는 학년 레벨, 어휘 등급 등과 같은 연관된 프로파일 정보를 가질 수 있다. 사용자 선택기(2208)는 사용자들에 대한 프로파일들을 스토리들과 비교하고, 둘 사이에서 적절한 레벨들을 매핑하려고 시도할 수 있다. 예를 들어, 텍스트가 고등학교 판독 레벨에 적합한 경우, 사용자 선택기(2208)는 고등학교 판독 레벨 이상으로 사용자들을 식별할 수 있다.
도 23은 복수의 사용자들을 포함하는 하나의 예시적인 분산형 대화 세션을 도시한다. 이 예에서, 대화 엔진(142)은 문장 "큰 빗방울이 클로에의 얼굴 위로 떨어졌다"와 함께 작동하고 있다. 대화 세션에 대한 목표 정보는, 동사 "떨어진다"의 단어 의미에서 시작하여, 이 문장의 적절한 의미론적 해석을 발견하거나 확인하는 것이다. 분산형 대화 디스패처(1620)는, 대화 상자(2304)에 표현된 바와 같이, ""큰 빗방울이 클로에의 얼굴 위로 떨어졌다"에서 "떨어진다"의 의미가 무엇인가?"의 개방형 질문을 제1 세트의 사용자들(2302)에게 문의할 수 있다. 제1 세트 내의 사용자들의 대부분 또는 모두로부터의 응답이 대화 상자(2306)에 의해 표현된 바와 같이, 옵션 1, "중력의 영향으로 하강한다"인 것으로 가정한다.
이 응답에 기반하여, 구조 크롤러(2206)는 빗방울의 전후 상태들에 관한 2개의 가능한 후속 질문들이 있다는 것을 의존 구조로부터 발견한다. 또한, 2개의 후속 질문들은 의존 구조 내의 형제 노드들에 의해 표현되고, 이에 따라 질문들은 상이한 사용자들에게 동시에 문의될 수 있다. 따라서, 사용자 선택기(2208)는 대화 상자(2308)에 의해 표현되는 첫 번째 후속 질문을 동일한 제1 사용자 세트(2302)에게 전송하도록 선택한다. 첫 번째 후속 질문은 "'큰 빗방울이 클로에의 얼굴 위로 떨어졌다' 전의 빗방울의 상태는 어떠한가?"라고 문의하는 것이다. 동시에, 사용자 선택기(2208)는 대화 상자(2310)에 의해 표현되는 두 번째 후속 질문을 상이한 사용자 세트(2312)에 전송한다. 두 번째 후속 질문은 "'큰 빗방울이 클로에의 얼굴 위로 떨어졌다' 후의 빗방울의 상태는 어떠한가?"라고 문의하는 것이다.
그 다음에, 사용자들의 각각의 세트는 이들 질문들을 동시에 대답할 수 있다. 첫 번째 후속 질문(2308)에 대해, 제1 그룹(2302) 내의 사용자들의 대부분 또는 모두가 대화 상자(2314)에 의해 표현된 바와 같이 빗방울의 전 상태로서 옵션 3, "하늘에 있다"를 선택한다고 가정한다. 유사하게, 두 번째 후속 질문(2310)에 대해, 제2 그룹(2312) 내의 사용자들의 대부분 또는 모두가 대화 상자(2316)에 의해 표현된 바와 같이 빗방울의 후 상태로서 옵션 2, "클로에의 얼굴 위에 있다"를 선택한다고 가정한다. 이 예에 도시된 바와 같이, 질문들은 2개의 그룹으로 분산되지만, 시스템은 2개의 질문들을 동일한 사람에게 순차적으로 문의하는 것처럼 동일한 결과를 달성한다. 그러나, 동일한 결과가 더 적은 시간에 달성되었고 각각의 개별 사용자에 대해 더 적은 부하를 주었다.
도 24는 복수의 사용자들을 포함하는 다른 예시적인 분산형 대화 세션을 도시한다. 이 예에서, 대화 엔진(142)은 텍스트 "엔조와 조는 경주를 하고 있었다. 엔조가 넘어졌다"와 함께 작동하고 있다. 대화 세션에 대한 목표 정보는 단어 "넘어지다"의 단어 의미에서 시작하여 2개의 문장들의 정확한 의미론적 해석을 발견하거나 확인하는 것이다. 분산형 대화 디스패처(1620)는 대화 상자(2402)에 표현된 바와 같이, "'엔조가 넘어졌다'에서의 '넘어지다'가 클로에가 미끄러져서 진흙탕에 넘어졌다에서와 동일한 방식으로 이용되는가?"와 같은 개방형 질문을 제1 세트의 사용자들(2302)에게 문의할 수 있다. 동시에, 분산형 대화 디스패처(1620)는, 대화 상자(2404)에 표현된 바와 같이, "'엔조가 넘어졌다'에서의 '넘어지다'의 의미가 무엇인가?"와 같은 상이한 개방형 질문을 제2 세트의 사용자들(2312)에게 문의할 수 있다.
도 24에서, 제2 세트의 사용자들(2312)이 일반적으로 대화 상자(2406)에 의해 표현된 바와 같이 대답 "서 있는 위치를 갑자기 잃는 것이다"로 두 번째 개방형 질문(2404)에 응답한다고 가정한다. 이 응답(R1)에 기반하여, 대화 상자들(2408 및 2410)에 의해 표현되는 바와 같이 2개의 다른 후속 질문들이 생성된다. 분산형 대화 디스패처(1620)는 대화 상자(2408)에 의해 표현된 바와 같이, "'클로에가 미끄러져서 진흙탕에 넘어졌다' 전에 클로에는 서 있었다. '엔조가 넘어졌다' 전에 엔조도 서 있었는가?"를 문의하는 첫 번째 후속 질문(2408)을 제1 그룹의 사용자들(2302)에게 분산한다. 동시에, 분산형 대화 디스패처(1620)는 대화 상자(2410)에 의해 표현된 바와 같이, "'클로에가 미끄러져서 진흙탕에 넘어졌다' 후에 클로에는 지면 위의 진흙탕에 있다. '엔조가 넘어졌다' 후에 엔조는 지면 위의 진흙탕에 있는가?"를 문의하는 두 번째 후속 질문(2410)을 제2 그룹의 사용자들(2312)에게 분산한다. 이들 질문들이 서로 독립적으로 문의될 수 있고, 이에 따라 상이한 사용자 그룹들이 다른 질문들 및 이들에 대답하는 그룹들에 대해 알 필요 없이 질문들에 대한 응답들을 제공할 수 있다는 점에 유의한다. 설명된 구현예에서, 이러한 후속 질문들은 의존 구조 내의 형제 노드들에서 발견되고, 분산형 대화 디스패처는 이들을 상이한 사용자들에게 자유롭게 분산한다.
두 번째 후속 질문(2410)에 대한 응답이 일반적으로, 대화 상자(2412)에 의해 표현되는 바와 같이, 엔조는 지면 위에 있지만 진흙탕에 있지는 않다는 것으로 가정한다. 이러한 응답(R2)에 기반하여, 2개 이상의 후속 질문들이 생성되어 사용자 그룹에 동시에 분산될 수 있다. 제1 그룹의 사용자들(2302)에 대해, 분산형 대화 디스패처(1620)는 대화 상자(2414)에 의해 표현된 바와 같이, "모든 사람들이 넘어진 후에 지면 위에 있는 것이 사실인가?"를 문의하는 후속 질문을 분산한다. 제2 그룹의 사용자들(2312)에 대해, 분산형 대화 디스패처(1620)는 대화 상자(2416)에 의해 표현된 바와 같이, "누군가가 넘어진 후에 진흙탕에 있는 때는 언제인가?"를 문의하는 다른 후속 질문을 분산한다.
사용자들은 이러한 후속 질문들에 응답할 수 있고, 대화 세션은 지식 통합 엔진(136)으로부터의 지시 하에 대화 엔진(142)이 스토리에 관한 질문들 모두를 문의할 때까지 계속될 수 있다. 응답들은 집합되고 현재 세계 모델(138)을 수정하는데 이용하고 스토리 모델(132)을 수정된 현재 세계 모델에 정렬하기 위해 지식 통합 엔진(136)으로 회신된다. 질문들이 소진되고 스토리가 더 깊게 이해된 후에, 스토리 모델은 도 26을 참조하여 다음 섹션에서 설명되는 바와 같이 완료된 것으로 간주된다.
도 25는 대화 세션들 동안 복수의 사용자들에게 질문들을 분산하기 위한 프로세스(2500)를 도시한다. 프로세스(2500)는 도 1, 도 4, 도 5, 도 16 및 도 22의 시스템 아키텍처(100) 및 대화 엔진(142)을 참조하여 설명된다. 프로세스(2500)는 컴퓨팅 시스템(102)에 의해, 구체적으로는 대화 엔진(142)에 의해 실행될 수 있다.
단계(2502)에서, 목표 텍스트 문자열 및 연관된 의존 구조가 수신된다. 텍스트 문자열은, 예를 들어, 문장, 또는 다른 구 또는 절일 수 있다. 의존 구조는, 부모 노드에 대한 대답들에 따라, 자식 노드들이 가능한 후속 질문들을 나타내는 트리형 데이터 구조이다. 하나의 의존 구조가 도 17에서 논의 목적으로 도시되어 있다.
2504에서, 의존 구조 내에서 어근 또는 부모 노드가 먼저 발견되어 대화 세션 동안 문의될 질문들의 시퀀스 또는 시리즈들에서의 개방형 질문을 식별한다. 예를 들어, 도 23을 참조하면, 대화 엔진은 "떨어진다"의 단어 의미를 발견하기 위해 대화 세션을 개시할 수 있고, 대응하는 의존 구조에서의 하나의 부모 노드는 "'큰 빗방울이 클로에의 얼굴 위로 떨어졌다'에서 '떨어진다'의 의미는 무엇인가?"의 개방형 질문을 나타낼 수 있다. 2506에서, 대화 엔진은 그 질문을 한 명 이상의 사용자에게 전송할지 여부를 결정한다. 한 명의 사용자(즉, 2506으로부터 "아니오" 분지)인 경우, 2508에서, 질문 디스패처는 질문을 단일 사용자에게 전송한다. 한편, 복수의 사용자들(즉, 2506으로부터 "예" 분지)인 경우, 2510에서, 질문 디스패처는 동일한 질문을 복수의 사용자들에게 전송한다. 예를 들어, 질문들이 많은 가능한 대답들을 갖는 복수의 선택 대답들을 제공하고 있을 때와 같이, 시스템이 사용자들을 조사하기를 원하는 상황들에서 복수의 사용자들이 선택될 수 있다. 하나의 선택의 대부분은 적절한 대답으로서 역할을 할 수 있다.
2512에서, 사용자(들)로부터 하나 이상의 응답이 수신되고 분석된다. 이들 대답들에 기반하여, 2514에서, 대화 엔진의 구조 크롤러는 하나 이상의 후속 질문을 찾기 위해 의존 구조를 횡단한다. 일부 경우들에서, 이것은 트리형 구조를 부모 노드로부터 하나 이상의 자식 노드로 아래로 이동시키는 것을 포함한다. 복수의 자식 노드들이 동일한 분지에 있다면, 연관된 후속 질문들은 서로 독립적으로 고려될 수 있다. 따라서, 2516에서, 의존 구조에 표현된 후속 질문들이 형제 노드들과 연관되어 있는지 여부가 결정된다. 이들이 (즉, 2516으로부터 "아니오" 분지)인 경우, 2518에서 질문은 한 명 이상의 사용자에게 전송될 수 있다. 반대로, 복수의 형제 노드들이 있다면(즉, 2516으로부터 "예" 분지), 2520에서, 상이한 후속 질문들이 세트마다 한 명 이상의 사용자의 상이한 세트들로 분산될 수 있다.
2522에서, 사용자들로부터 하나 이상의 응답이 수신되고 추가로 분석된다. 더 많은 질문들이 동일한 문장 또는 텍스트 문자열에 대해 문의될 수 있는 경우, 프로세스(2500)는 2514에서 의존 구조를 계속 더 횡단한다. 의존 구조 내의 모든 질문들이 추구되었다면, 프로세스(2500)는 2502에서 새로운 텍스트 문자열로 계속될 수 있다.
예시적인 스토리 모델
모든 사용자 질문들이 문의되고 응답들이 처리된 후에, 지식 통합 엔진(136)은 현재 세계 모델과의 스토리 모델의 최종 정렬을 수행한다. 지식 통합 엔진(136)은 충분한 정도의 신뢰도를 획득하고, 저장 및 인덱싱을 위해 스토리 모델(132)을 출력할 준비가 된다. 스토리 모델(132)은 프로세스 전체에 걸쳐 그 최종 상태로 진화하며, 이에 대해서는 이제 도 26을 참조하여 설명할 것이다.
도 26은 스토리 모델(132)의 예시적인 도해 및 본 명세서에서 설명된 프로세스들의 결과로서 스토리 모델이 시간의 경과에 따라 어떻게 진화하는지를 도시한다. 각각의 스토리에 대해, 스토리 모델(132)은 처음에 스토리의 구문론적 파스로부터 도출된 언어학적 구조들(714), 엔티티 타입들(726) 및 동일 지시어 체인들(730)을 포함하는 언어학적 분석 결과들(712)로 채워진다. 이것은 도 26의 설명을 위해 "버전 1"로서 예시된다. 의미론적 처리, 추론 및 인간 대화 세션들을 통해, 스토리에 관한 추가 정보가 학습된다. 더 많은 노드들을 채우고 더 많은 관계들을 추가하기 위해 스토리를 나타내는 의미론적 구조들 및 프레임들이 반복적으로 수정된다. 이것은 버전들 2 내지 FV-1(즉, 마지막 최종 버전에서 두 번째)에 의해 도 26에 나타나 있다. 초기에, 예를 들어 버전 2에서, 시스템은 "걷다"에 대한 동작이 사람이 걸었던 곳 및 그/그녀가 가는 곳에 관한 정보를 포함한다는 것을 발견할 수 있다. 따라서, 의미론적 구조가 생성되고, 노드들을 채우기 위한 정보가 추구된다. 시간의 경과에 따라, 시스템은 또한 사람, 아바가 레스토랑에 들어 갔고, 그 레스토랑이 이탈리아식 레스토랑이였다는 것을 학습할 수 있다.
의미론적 구조들 및 프레임들의 대부분 또는 전부가 채워지고, 의미론적 구조들 및 프레임들에 대한 신뢰도들이 충분한 임계값으로 증가하며, 사용자가 가정들의 상당수 또는 전부를 확인한 후, 최종 버전은 도 26에서 버전 FV(최종 버전)에 의해 표현된 바와 같이 생성될 수 있다. 최종 버전 FV는 완전히 채워진 완성된 의미론적 구조들 및 프레임들을 포함한다. 단어들은 그 정확한 의미를 갖고, 이들 사이의 관계들은 참이고 정확하다. 또한, 스토리에 암시적이지 않은 정보가 추론되고 추가되었다. 이때, 스토리 모델은 현재 세계 모델과 만족스럽게 정렬되는 것으로 간주된다. 추가의 신뢰도를 위해, 시스템은 시스템의 이해가 정확한지 여부를 확인할 수 있도록 사용자들에게 독해 질문을 추가로 제기할 수 있다. 스토리의 최종 버전이 저장되고 인덱싱된다. 그 지식 모두가 또한 더 많은 스토리들이 소비됨에 따라 계속 진화하는 현재 세계 모델에 포함된다.
컴퓨팅 시스템의 이해의 성장
도 27은 시스템의 이해를 평가, 개선 및 검증하기 위해 점점 더 어려운 자연 언어 스토리들 및 인간들의 관계의 반복 처리를 통해 시간의 경과에 따라 컴퓨터 이해를 성장시키기 위한 프로세스(2700)를 도시한다. 프로세스(2700)는 학습 및 이해 컴퓨팅 시스템(102)에 의해 수행된다. 일반적으로, GSP들 및 프레임 구조들과 같은 의미론적 구조들은 스토리들의 표현들을 생성하기 위해 전술한 추론 프로세스들을 이용하여 추론된다. 추론 프로세스는 현재 세계 모델(138)에 유지된 정보뿐만 아니라 시스템 전체에 걸친 다른 리소스들(GSP 데이터베이스(408), 도출된 지식 리소스들(412) 등)을 이용한다. 대화 세션들은 스토리들의 이해들로서 의미론적 구조들을 평가하기 위해 한 명 이상의 인간 사용자와 함께 수행된다. 추론 프로세스 및 인간 대화를 통해 학습된 임의의 지식은 수정되고 확장된 의미론적 구조들로서 현재 세계 모델에 저장된다. 보다 많은 스토리들이 입수되고 처리됨에 따라, 현재 세계 모델은 시간의 경과에 따라 확장하여, 시스템의 이해를 증가시킨다. 확장된 지식으로, 컴퓨팅 시스템은 더 높은 독해 레벨들로 더 어려운 주제를 처리할 수 있게 된다.
하나의 구현예에 따르면, 2702에서, 초기 독해 레벨의 복수의 스토리들이 제1 기간에 걸쳐 컴퓨팅 시스템(102)에 의해 수신된다. 예를 들어, 컴퓨팅 시스템(102)은 미취학, 유치원 또는 초기 학년들의 초기 단계 판독 레벨들과 같이, 시작하기 용이한 텍스트들을 입수할 수 있다. 스토리들은 다수의 독해 질문들을 수반할 수 있다. 2704에서, 각각의 스토리에 대해, 스토리 모델이 스토리를 나타내도록 전개된다. 스토리 모델의 전개는 전술한 프로세스들을 포함한다. 예를 들어, 2706에서, 스토리는 스토리를 구문론적으로 분석하여 각각의 문장에 대한 언어학적 분석 결과들(예를 들어, 구문론적 파스, 술어 논항 구조, 엔티티 타입 할당, 동일 지시어)을 생성하도록 파싱된다. 이것은, 예를 들어, 스토리 파싱 엔진(134)에 의해 수행될 수 있다.
2708에서, 파싱된 문장의 구문론적 표현을 의미론적으로 처리함으로써 각각의 파싱된 문장의 표현으로서 하나 이상의 의미론적 구조가 추론된다. 하나의 구현예에서, 지식 통합 엔진(136), 지식 도출 엔진(140), 및 생각 표현 및 추리 프레임워크(144)는 이러한 동작(2708)을 지원하는 다양한 작업을 수행하여, 작은 수의 의미론적 프리미티브들의 관점에서, 언어학적 분석 결과들을 이용하여 초기 의미론적 표현을 생성한다. 이러한 모듈들은 더 상세하게 전술한 바와 같이, 세계에 대해 참인 것의 현재 세계 모델(138), GSP 데이터베이스(408), 및 큰 언어 코퍼스들(410)로부터 자동으로 도출되는 도출된 지식 리소스들(412)과 같은 시스템 리소스들을 이용한다. 2710에서, 진화하는 스토리 모델은 현재 세계 모델에 대해 평가되어, 스토리 모델이 현재 세계 모델(138) 내의 알려진 프레임들과 잘 맞는 높은 신뢰도의 의미론적 표현을 포함하지 않는 곳을 부분적으로 결정한다.
2712에서, 스토리의 사용자의 이해를 탐색하고/하거나 스토리의 시스템의 이해를 개선, 테스트 또는 챌린지하기 위해 스토리를 또한 판독한 한 명 이상의 인간 사용자와의 대화 세션이 설정된다. 질문들은 사용자 디바이스들(114/118)에 제출되고, 검토 및 고려를 위해 사용자에게 제시된다. 2714에서, 응답들은 사용자 디바이스들로부터 수신되고 의미론적 구조들을 수정하는데 이용된다. 사용자의 대답들은 세계에 대해 참인 것의 현재 세계 모델(138)에서 표현된 스토리의 시스템의 이해를 업데이트하는데 적용될 수 있다. 대화 엔진(142)은 대화 세션을 용이하게 하는데 이용될 수 있고, 지식 통합 엔진(136)은 사용자 피드백에 따라 의미론적 구조들을 수정하는데 이용될 수 있다.
2716에서, 현재 세계 모델(138)은 대화 세션으로부터 학습된 임의의 새로운 지식 및 의미론적 구조들에 대한 임의의 수정들로 업데이트된다. 이 지식은 GSP 데이터베이스(408)에 저장되는 새로운, 인스턴스화되지 않은 GSP 구조들을 추가로 생성하는데 이용될 수 있다. 컴퓨팅 시스템(102)이 더 많은 스토리들을 판독하고 처리함에 따라, (인스턴스화되지 않은 그리고 인스턴스화된 모두의) 더 많은 GSP 구조들이 시간의 경과에 따라 생성되고, GSP 데이터베이스(408) 내의 리소스들 및 현재 세계 모델(138)에서의 지식이 시간의 경과에 따라 증가한다. 현재 세계 모델(138)은 (GSP들을 포함하지만 이에 제한되지 않는) 명제들에 대한 확률 분포들인 프레임들의 집합으로 구성될 수 있다. 컴퓨팅 시스템(102)은 더 많은 텍스트를 판독하고 이해함에 따라 스토리들을 해석하는데 이용되는 새로운 프레임들을 생성한다.
2718에서, 현재 스토리에 대한 스토리 모델은 스토리 모델 데이터 저장소(132)에 저장되고 컴퓨팅 시스템(102)에 의해 유지된다. 스토리 모델들은 다른 스토리들을 추론 또는 이해하기 위해 미래에 이용될 수 있고, 일부는 더 높은 독해 레벨들을 갖는다.
2720에서, 컴퓨팅 시스템(102)은 다음 독해 레벨까지 스테핑하는 것과 같이 증가하는 복잡성의 추가적인 스토리들을 수신하고 처리하는 것을 계속한다. 각각의 입수된 새로운 스토리에 의해, 컴퓨팅 시스템(102)은 스토리로부터 의미를 추론하고 인간들과의 그 이해를 테스트하는 것을 포함하는 (2704에서) 스토리 모델을 다시 전개한다. 스토리 모델이 전개됨에 따라, 시스템(102)은 (2716에서) 현재 세계 모델(138)을 새로운 지식으로 업데이트하고, (2718에서) 미래의 이용을 위해 스토리 모델을 저장한다. 이러한 프로세스는, 시간의 경과에 따라 학습 및 이해 컴퓨팅 시스템(102)이, 예를 들어 인스턴스화된 생성 의미론적 프리미티브들 및 프레임 구조들의 연관된 세트를 통해, 엔티티들 및 명제들의 지식 데이터 구조들로서 표현된 크고 점점 더 복잡한 지식 기반을 구축하도록 거듭 반복된다.
도 28은 증가하는 독해 레벨들의 더 많은 스토리들이 구문론적 처리, 의미론적 처리 및 대화를 통한 인간 평가를 받게 됨에 따라 현재 세계 모델(138) 내의 의미론적 구조들로서 구현되는 지식이 시간의 경과에 따라 성장하는 방법을 보여주는 개략도(2800)이다. 타임라인(2802)을 따른 처음 또는 초기 인스턴스에서, 학습 및 이해 컴퓨팅 시스템(102)은 초기 또는 엔트리 레벨 독해를 갖는 비교적 용이한 스토리들 S1-Si(일반적으로 106으로서 참조됨)를 판독한다. 이러한 스토리들은, 예를 들어, 유치원생들 또는 초기 초등학교 학생들에 적절할 수 있다. 현재 세계 모델(138)은 일부 의미론적 구조들로 미리 채워지거나 처음부터 구축될 수 있다. 시간 T1에서, 현재 세계 모델(138(T1))은 비교적 더 작은 세트의 인스턴스화된 GSP 구조들(2804(T1)) 및 프레임 구조들(2806(T1))을 갖는 것으로 도시되어 있다.
시간의 경과에 따라, 시스템(102)은 엔트리 레벨 스토리들 S1-Si보다 더 복잡한 더 많은 스토리들 Sj-Sm을 판독하고 처리한다. 예를 들어, 스토리들 Sj-Sm은 더 위의 초등학교 또는 아마도 중학교 및 하급 고등학교와 같이 중간 독해 레벨로 고려될 수 있다. 시간 T2에서, 현재 세계 모델(138(T2))은 실질적으로 더 많은 세트들의 인스턴스화된 GSP 구조들(2804(T2)) 및 프레임 구조들(2806(T2))에 의해 도시된 바와 같이, 더 많은 지식으로 확장한다.
유사하게, 시간의 경과에 따라 계속되는 경우, 시스템(102)은 이전의 스토리들 S1-Sm보다 더 복잡한 훨씬 더 많은 스토리들 Sn-Sz를 판독하고 처리한다. 이들 스토리들 Sn-Sz는 고등학교 또는 대학 레벨에서 발견되는 것들과 같이 더 높은 독해 레벨들의 텍스트들을 나타낼 수 있다. 시간 T3에서, 현재 세계 모델(138(T3))이 확장되어 상당히 더 많은 세트들의 인스턴스화된 GSP 구조들(2804(T3)) 및 프레임 구조들(2806(T3))을 수용한다.
따라서, 컴퓨팅 시스템의 언어의 이해는 이들 의미론적 구조들을 통해 표현되는 바와 같은 생각들의 시간 의존적인 확률적 네트워크이다. 네트워크는 컴퓨팅 시스템이 더 많은 스토리들을 판독하고 이해함에 따라 시간의 경과에 따라 확장한다. 시스템의 이해는 많은 상이한 형태들의 시각화를 통해 표현될 수 있으며, 이는 최종 사용자들 및 전개자들이 시스템의 이해를 탐구하고 시스템이 작동하는 방법에 대해 더 많이 학습하게 한다.
도 29는 확률적인 생각들의 네트워크를 증분적으로 공식화하고 그 전역적인 논리적 일관성을 반복적으로 개선하는 동적 프로세스를 도시하는 시각화들(2900)의 하나의 예시적인 세트를 도시한다. 하나의 구현예에서, 학습 및 이해 컴퓨팅 시스템(102)은 시스템의 이해의 시각화들을 생성하는 시각화 모듈(2902)을 포함한다. 이들 시각화들은 단일 스토리에 관한 생각들의 네트워크를 도시하는 제1 또는 스토리 레벨 시각화(2904), 및 스토리들의 많은 성상군들 간의 관계들을 도시하는 스토리 갤럭시 시각화(2906)를 포함한다. 시각화 모듈(2902)은 사용자가 단일 스토리 뷰(2904)(또는 심지어 그 안의 노드들)로 줌 인하거나 그 사이의 임의의 범위의 뷰들뿐만 아니라, 단일 스토리 뷰(2904)로부터 갤럭시 시각화(2906)로 줌 아웃할 수 있게 하는 줌 제어와 같은 사용자 제어들을 가능하게 한다.
도시된 예에서, 단일 스토리 시각화(2904)는 노드들(2910) 및 아크들(2912)의 계층들 또는 링들로 구성된다. 각각의 노드(2910)는 어떤 생각이 참인지에 관한 논리적 가설을 나타낸다. 각각의 아크(2912)는 한 쌍의 노드들 사이에서 확장하고, 하나의 생각이 일부 확률로 다른 하나의 진리를 지원하는 것을 나타내는 관계를 전달한다. 노드들은 상이한 클래스들의 생각들을 나타내기 위해 계층들 또는 링들(2914)로 배열된다. 예를 들어, 묘사 내의 특정한 문장들의 존재에 관한 생각들이 하나의 링일 수 있다. 단어들 또는 구들의 가능한 의미들에 관한 생각들은 다음 링일 수 있다. 이러한 링들의 존재를 보여주기 위해 내부 링(2914(1)) 및 외부 링(2914(2))이 도 29에 도시되어 있다. 노드들(2910), 아크들(2912) 및 링들(2914)은 또한 시각화들을 통해 이들을 차별화하도록 컬러 코딩될 수 있다.
다른 구현예에서, 각각의 계층 또는 링은 그 계층 또는 링 내의 임의의 수의 생각들(노드들) 및 지원들(아크들)을 예시하는 것을 허용하기 위해 하나 이상의 서브 링 또는 하위 구조를 갖는다. 하나의 구현예에서, 계층 또는 링 내의 노드들 및 그 부착된 아크들은, 새로운 데이터가 모듈들(130) 중 하나 내의 기본 드라이버 또는 알고리즘에 의해 고려됨에 따라 새로운 가설적인 생각들이 네트워크 링에 추가되는 것을 예시하기 위해 애니메이팅한다. 예를 들어, 링들은 더 많은 가설들을 허용하기 위해 그 노드 밀도를 회전, 분할, 붕괴 및/또는 변경할 수 있다.
노드(2910) 또는 아크(2912)의 외관의 변화는, 예를 들어 그것이 믿어지는 신뢰도를 나타낼 수 있다. 예를 들어, 노드 또는 에지의 불투명도는 대응하는 생각이 참이라는 시스템의 신뢰도의 함수일 수 있다. 절대적으로 참인 것으로 고려되는 생각들은 완전히 불투명한 것일 수 있는 반면, 절대적으로 거짓인 것으로 고려되는 생각들은 완전히 보이지 않을 것이다. 이들 두 극단들 사이의 어딘가에서 고려되는 생각들은 대응하는 투명도를 가질 것이다.
외관의 변화는 또한 시스템의 추론 프로세스를 예시할 수 있다. 예를 들어, 노드(2910(H))와 같은 노드 주위의 할로 하이라이트는, 어떤 다른 생각들이 암시되는지를 탐구하기 위해 그것이 참인 것으로 고려될 수 있음을 나타낼 수 있으며, 아크 상의 유사한 하이라이트가 암시 자체를 예시할 수 있다.
도시된 예에서, 갤럭시 시각화(2906)는 복수의 포인트들(2920)을 포함하고, 각각의 포인트는 특정한 언어 문제에 대한 스토리 시각화(2904)의 줌 아웃 뷰를 나타낸다. 갤럭시 뷰(2906)로 줌 아웃하고 이어서 단일 스토리 뷰(2904)로 되돌아가는 애니메이션을 통해, 시스템이 어떻게 많은 언어 문제들의 이해를 한 번에 추구하고 시각화가 그 초점을 변경할 수 있다는 것을 보고 학습할 수 있다.
결론
주제가 구조적 특징들 및/또는 방법론적 동작들에 특유한 언어로 설명되었지만, 첨부된 청구항들에서 정의된 주제는 반드시 설명된 특정한 특징들 또는 동작들로 제한되지는 않는다는 것을 이해해야 한다. 오히려, 특정한 특징들 및 동작들은 청구항들을 구현하는 예시적인 형태들로서 개시된다.

Claims (26)

  1. 컴퓨터에 의해 구현되는 방법으로서,
    자연 언어 입력에 대해, 컴퓨팅 시스템에 의해,
    상기 자연 언어 입력을 수신하는 단계;
    상기 자연 언어 입력의 구문론적 분석을 수행하여 하나 이상의 언어학적 분석 결과를 생성하는 단계;
    상기 하나 이상의 언어학적 분석 결과 및 큰 언어 코퍼스들로부터 도출된 지식을 이용하여 부분적으로 상기 자연 언어 입력을 나타내기 위해 복수의 의미론적 구조들을 생성하는 단계;
    상기 컴퓨팅 시스템에 의한 이용을 위해 인간 사용자로부터 입력을 수신하여 상기 자연 언어 입력의 이해로서 상기 의미론적 구조들을 평가하기 위해 상기 인간 사용자와의 대화 세션에 참여하는 단계;
    상기 인간 사용자로부터의 응답들에 기반하여 상기 의미론적 구조들을 수정함으로써 상기 자연 언어 입력의 이해를 개선하는 단계
    를 포함하는 프로세스를 수행하는 단계; 및
    상기 컴퓨팅 시스템에 의해, 상기 프로세스를 반복하여 후속 자연 언어 입력들에 대한 추가적인 의미론적 구조들을 형성하는 단계
    를 포함하는, 컴퓨터에 의해 구현되는 방법.
  2. 제1항에 있어서,
    상기 후속 자연 언어 입력들은 점점 더 높은 독해 레벨들을 갖는, 컴퓨터에 의해 구현되는 방법.
  3. 제1항에 있어서,
    상기 하나 이상의 언어학적 분석 결과는 상기 자연 언어 입력의 구문론적 파스, 술어 논항 구조, 엔티티 타입, 또는 동일 지시어(co-reference)들 중 적어도 하나를 포함하는, 컴퓨터에 의해 구현되는 방법.
  4. 제1항에 있어서,
    상기 복수의 의미론적 구조들을 생성하는 단계는 상기 하나 이상의 언어학적 분석 결과, 생성 의미론적 프리미티브(generative semantic primitive: GSP) 구조들이 상기 자연 언어 입력을 얼마나 정확히 나타내는지에 대한 신뢰도들을 표현하는 현재 세계 모델에서 유지되는 데이터, 및 상기 큰 언어 코퍼스들로부터 도출된 상기 지식을 이용하여 복수의 GSP 구조들을 형성하는 단계를 포함하는, 컴퓨터에 의해 구현되는 방법.
  5. 제4항에 있어서,
    상기 인간 사용자로부터의 상기 응답들에 기반하여 상기 GSP 구조들을 수정하는 단계 및 상기 인간 사용자로부터 학습되거나 상기 GSP 구조들을 수정하는데 이용되는 정보로 상기 현재 세계 모델을 업데이트하는 단계를 더 포함하는, 컴퓨터에 의해 구현되는 방법.
  6. 제1항에 있어서,
    상기 복수의 의미론적 구조들을 생성하는 단계는,
    복수의 생성 의미론적 프리미티브(GSP) 구조들을 형성하는 단계; 및
    하나 이상의 GSP 구조로 구성된 복수의 프레임 구조들을 형성하는 단계
    를 포함하는, 컴퓨터에 의해 구현되는 방법.
  7. 제1항에 있어서,
    상기 대화 세션에 참여하는 단계는,
    상기 의미론적 구조들을 평가하기 위해 인간 사용자가 대답할 하나 이상의 질문을 생성하는 단계;
    컴퓨터 사용자 인터페이스를 통해 제시하기 위해 상기 하나 이상의 질문을 상기 인간 사용자에게 제출하는 단계; 및
    상기 인간 사용자로부터 하나 이상의 응답을 수신하는 단계
    를 포함하는, 컴퓨터에 의해 구현되는 방법.
  8. 제1항에 있어서,
    상기 대화 세션에 참여하는 단계는 복수의 인간 사용자들과의 복수의 대화 세션들에 참여하는 단계를 포함하는, 컴퓨터에 의해 구현되는 방법.
  9. 컴퓨터에 의해 구현되는 방법으로서,
    컴퓨팅 시스템에 의해, 제1 기간에 걸쳐 제1 독해 레벨의 복수의 제1 자연 언어 스토리들을 수신하는 단계;
    상기 복수의 제1 자연 언어 스토리들의 각각의 스토리에 대해, 이해 프로세스를 수행함으로써 상기 스토리의 스토리 모델 표현을 전개(develop)하는 단계 - 상기 스토리의 스토리 모델 표현을 전개하는 단계는,
    상기 컴퓨팅 시스템에 의해, 상기 스토리의 구문론적 표현을 생성하기 위해 상기 스토리를 파싱하는 단계;
    상기 컴퓨팅 시스템에 의해, 상기 스토리의 상기 구문론적 표현을 적어도 부분적으로 이용하여 상기 스토리의 의미론적 표현으로서 하나 이상의 의미론적 구조를 추론하는 단계;
    상기 컴퓨팅 시스템에 의해, 상기 스토리를 나타내는 상기 하나 이상의 의미론적 구조를 평가하기 위해 인간 사용자가 대답할 하나 이상의 질문을 사용자 컴퓨팅 디바이스에게 제출하는 단계;
    상기 인간 사용자로부터의 하나 이상의 응답에 응답하여 상기 하나 이상의 의미론적 구조를 수정하는 단계;
    하나 이상의 최종 의미론적 구조가 정의될 때까지 상기 이해 프로세스를 반복하는 단계 - 상기 스토리 모델의 최종 버전은 상기 하나 이상의 최종 의미론적 구조를 포함함 -
    를 포함함 -;
    상기 컴퓨팅 시스템에 의해, 상기 제1 독해 레벨의 상기 복수의 제1 자연 언어 스토리들에 대한 복수의 스토리 모델들을 저장하는 단계;
    상기 컴퓨팅 시스템에 의해, 제2 기간에 걸쳐 제2 독해 레벨의 복수의 제2 자연 언어 스토리들을 수신하는 단계; 및
    상기 복수의 제2 자연 언어 스토리들의 각각의 스토리에 대해, 상기 이해 프로세스를 수행하고 부분적으로 상기 복수의 제1 자연 언어 스토리들에 대한 상기 스토리 모델들 중 하나 이상의 스토리 모델의 상기 이해 프로세스를 수행하는 것으로부터 학습된 정보를 이용함으로써 상기 스토리의 연관된 스토리 모델 표현을 전개하는 단계
    를 포함하는, 컴퓨터에 의해 구현되는 방법.
  10. 제9항에 있어서,
    상기 제1 및 제2 자연 언어 스토리들과 함께 독해 질문들을 수신하는 단계를 더 포함하는, 컴퓨터에 의해 구현되는 방법.
  11. 제9항에 있어서,
    상기 스토리를 파싱하는 단계는 상기 스토리를 구문론적으로 분석하여 상기 스토리의 구문론적 파스, 술어 논항 구조, 엔티티 타입, 또는 동일 지시어들 중 적어도 하나를 포함하는 하나 이상의 언어학적 분석 결과를 생성하는 단계를 포함하는, 컴퓨터에 의해 구현되는 방법.
  12. 제9항에 있어서,
    상기 스토리의 의미론적 표현으로서 하나 이상의 의미론적 구조를 추론하는 단계는 언어학적 분석 결과들, 생성 의미론적 프리미티브(GSP) 구조들이 상기 스토리에서 상기 자연 언어를 얼마나 정확히 나타내는지에 대한 신뢰도들을 표현하는 현재 세계 모델에서 유지되는 데이터, 및 큰 언어 코퍼스들로부터 도출된 지식을 이용하여 복수의 GSP 구조들을 생성하는 단계를 포함하는, 컴퓨터에 의해 구현되는 방법.
  13. 제12항에 있어서,
    상기 스토리의 의미론적 표현으로서 하나 이상의 의미론적 구조를 추론하는 단계는 상기 GSP 구조들의 서브세트들로 구성된 복수의 프레임 구조들을 형성하는 단계를 더 포함하는, 컴퓨터에 의해 구현되는 방법.
  14. 제9항에 있어서,
    상기 하나 이상의 최종 의미론적 구조가 정의될 때까지 상기 하나 이상의 의미론적 구조를 수정하는 단계는 상기 사용자에게 질문들을 반복적으로 제출하는 단계 및 종료 조건이 도달될 때까지 상기 의미론적 구조들을 수정하기 위해 사용자 응답들을 수신하는 단계를 포함하며, 상기 종료 조건은 상기 의미론적 구조들이 상기 스토리와 얼마나 잘 맞는지를 표현하도록 계산되는 신뢰도 값의 함수인, 컴퓨터에 의해 구현되는 방법.
  15. 제9항에 있어서,
    상기 제2 자연 언어 스토리들은 상기 제1 자연 언어 스토리들보다 더 높은 독해 레벨을 갖는, 컴퓨터에 의해 구현되는 방법.
  16. 제9항에 있어서,
    상기 제2 자연 언어 스토리들을 넘는 더 높은 독해 레벨들의 자연 언어 스토리들을 계속 수신하고, 상기 더 높은 독해 레벨들의 자연 언어 스토리들에 대해 상기 이해 프로세스를 수행하는 단계를 더 포함하는, 컴퓨터에 의해 구현되는 방법.
  17. 컴퓨팅 시스템으로서,
    데이터베이스에서 유지되는 현재 세계 모델;
    상기 데이터베이스에서 유지되는 상기 현재 세계 모델에 액세스하기 위한 하나 이상의 프로세서; 및
    상기 하나 이상의 프로세서에 결합된 메모리
    를 포함하며,
    상기 메모리는 컴퓨터 실행가능한 명령어들을 저장하고,
    상기 명령어들은, 상기 하나 이상의 프로세서에 의해 실행될 때,
    시간의 경과에 따라 변하는 독해 레벨들의 복수의 자연 언어 스토리들을 처리하는 것 - 상기 처리하는 것은 상기 현재 세계 모델에서 유지되는 정보를 이용하여 부분적으로 상기 스토리들의 표현들로서 의미론적 구조들을 추론하고, 상기 스토리들의 이해들로서 상기 의미론적 구조들을 평가하기 위해 한 명 이상의 인간 사용자와의 대화 세션들을 수행하는 것을 포함함 -; 및
    상기 자연 언어 스토리들로부터 추론되고 상기 한 명 이상의 인간 사용자에 의해 평가되는 상기 의미론적 구조들을 포함하도록 시간의 경과에 따라 상기 데이터베이스 내의 상기 현재 세계 모델을 확장하는 것
    을 포함하는 동작들을 수행하는 컴퓨팅 시스템.
  18. 제17항에 있어서,
    시간의 경과에 따라 처리되는 자연 언어 스토리들은 점점 더 높은 독해 레벨들로 이루어지는 컴퓨팅 시스템.
  19. 제17항에 있어서,
    상기 메모리는,
    상기 자연 언어 스토리들에 대해 구문론적 분석을 수행하여 언어학적 분석 결과들을 생성하는 것;
    상기 언어학적 분석 결과들, 상기 현재 세계 모델에서 유지되는 정보, 및 큰 언어 코퍼스들로부터 도출된 지식을 이용함으로써 부분적으로 상기 자연 언어 스토리들을 나타내기 위해 복수의 생성 의미론적 프리미티브(GSP) 구조들을 생성하는 것; 및
    복수의 GSP 구조들로 구성된 프레임 구조들을 형성하는 것
    을 포함하는 추가 동작들을 수행하는 명령어들을 저장하는 컴퓨팅 시스템.
  20. 제17항에 있어서,
    상기 대화 세션들을 수행하는 것은,
    상기 의미론적 구조들을 평가하기 위해 인간 사용자가 대답할 하나 이상의 질문을 생성하는 것;
    컴퓨터 사용자 인터페이스를 통해 제시하기 위해 상기 하나 이상의 질문을 상기 인간 사용자에게 제출하는 것; 및
    상기 인간 사용자로부터 하나 이상의 응답을 수신하는 것
    을 포함하는 컴퓨팅 시스템.
  21. 제20항에 있어서,
    상기 대화 세션들을 수행하는 것은 독해 질문들을 상기 인간 사용자에게 제출하는 것을 더 포함하는 컴퓨팅 시스템.
  22. 제20항에 있어서,
    상기 메모리는,
    상기 인간 사용자로부터의 응답들에 기반하여 상기 의미론적 구조들을 수정하는 것; 및
    상기 인간 사용자로부터 학습되거나 상기 의미론적 구조들을 수정하는데 이용되는 정보로 상기 현재 세계 모델을 업데이트하는 것
    을 포함하는 추가 동작들을 수행하는 명령어들을 저장하는 컴퓨팅 시스템.
  23. 컴퓨팅 시스템으로서,
    자연 언어가 어떻게 이해되는지에 관한 생각들을 표현하는 현재 세계 모델을 포함하는 데이터 저장소;
    하나 이상의 프로세서;
    상기 하나 이상의 프로세서에 결합된 메모리
    를 포함하며,
    상기 메모리는 컴퓨터 실행가능한 모듈들을 저장하고,
    상기 모듈들은,
    자연 언어 스토리를 구문론적으로 분석하여 언어학적 분석 결과들을 생성하기 위한 스토리 파싱 엔진;
    큰 언어 코퍼스들로부터 정보를 도출하기 위한 지식 도출 엔진;
    상기 스토리의 의미론적 표현을 제공하는 의미론적 구조들을 형성하기 위한 지식 통합 엔진 - 상기 지식 통합 엔진은 상기 언어학적 분석 결과들, 상기 현재 세계 모델로부터의 정보 및 도출된 정보를 이용하여 상기 의미론적 구조들을 형성함 -;
    하나 이상의 질문을 생성하고 이를 인간 사용자에 의해 이용되는 컴퓨팅 디바이스에게 제출하고, 상기 인간 사용자로부터의 입력을 나타내는 하나 이상의 응답을 상기 컴퓨팅 디바이스로부터 수집함으로써 상기 인간 사용자와의 대화 세션을 용이하게 하는 대화 엔진
    을 포함하고,
    상기 지식 통합 엔진은 상기 인간 사용자로부터의 상기 하나 이상의 응답에 기반하여 상기 의미론적 구조들을 수정하고 상기 데이터 저장소 내의 상기 현재 세계 모델을 업데이트하고,
    상기 스토리 파싱 엔진, 상기 지식 통합 엔진 및 상기 대화 엔진은 시간의 경과에 따라 복수의 스토리들을 처리하여 상기 현재 세계 모델에서 정보를 구축하는 컴퓨팅 시스템.
  24. 제23항에 있어서,
    상기 의미론적 구조들은 생성 의미론적 프리미티브(GSP) 구조들 및 복수의 GSP 구조들로 구성된 프레임 구조들을 포함하는 컴퓨팅 시스템.
  25. 제23항에 있어서,
    상기 지식 통합 엔진은 종료 조건이 도달될 때까지 상기 의미론적 구조들을 계속 수정하고, 상기 종료 조건은 상기 의미론적 구조들이 상기 스토리와 얼마나 잘 맞는지를 표현하도록 계산되는 신뢰도 값의 함수인 컴퓨팅 시스템.
  26. 제23항에 있어서,
    상기 지식 도출 엔진은 단어 의미들의 모호성을 해소하기 위한 단어 의미 모호성 해소기(disambiguator)를 포함하는 컴퓨팅 시스템.
KR1020187037504A 2016-06-24 2017-05-24 컴퓨터 학습 및 이해를 위한 아키텍처 및 프로세스들 KR102414491B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/192,796 2016-06-24
US15/192,796 US10606952B2 (en) 2016-06-24 2016-06-24 Architecture and processes for computer learning and understanding
PCT/US2017/034323 WO2017222738A1 (en) 2016-06-24 2017-05-24 Architecture and processes for computer learning and understanding

Publications (2)

Publication Number Publication Date
KR20190019962A true KR20190019962A (ko) 2019-02-27
KR102414491B1 KR102414491B1 (ko) 2022-06-28

Family

ID=60675069

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187037504A KR102414491B1 (ko) 2016-06-24 2017-05-24 컴퓨터 학습 및 이해를 위한 아키텍처 및 프로세스들

Country Status (6)

Country Link
US (9) US10606952B2 (ko)
EP (1) EP3475838A4 (ko)
JP (1) JP7178995B2 (ko)
KR (1) KR102414491B1 (ko)
CN (1) CN109478205B (ko)
WO (1) WO2017222738A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11727302B2 (en) * 2017-06-13 2023-08-15 Beijing Baidu Netcom Science And Technology Co., Ltd. Method and apparatus for building a conversation understanding system based on artificial intelligence, device and computer-readable storage medium

Families Citing this family (104)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8977255B2 (en) 2007-04-03 2015-03-10 Apple Inc. Method and system for operating a multi-function portable electronic device using voice-activation
KR20150104615A (ko) 2013-02-07 2015-09-15 애플 인크. 디지털 어시스턴트를 위한 음성 트리거
US20190129941A2 (en) 2013-05-21 2019-05-02 Happify, Inc. Systems and methods for dynamic user interaction for improving happiness
US10813584B2 (en) * 2013-05-21 2020-10-27 Happify, Inc. Assessing adherence fidelity to behavioral interventions using interactivity and natural language processing
US9338493B2 (en) 2014-06-30 2016-05-10 Apple Inc. Intelligent automated assistant for TV user interactions
US10460227B2 (en) 2015-05-15 2019-10-29 Apple Inc. Virtual assistant in a communication session
US10747498B2 (en) 2015-09-08 2020-08-18 Apple Inc. Zero latency digital assistant
US10691473B2 (en) 2015-11-06 2020-06-23 Apple Inc. Intelligent automated assistant in a messaging environment
US10268674B2 (en) * 2017-04-10 2019-04-23 Dell Products L.P. Linguistic intelligence using language validator
JP6745402B2 (ja) * 2017-05-02 2020-08-26 株式会社Nttドコモ 質問推定装置
DK179496B1 (en) 2017-05-12 2019-01-15 Apple Inc. USER-SPECIFIC Acoustic Models
DK201770429A1 (en) 2017-05-12 2018-12-14 Apple Inc. LOW-LATENCY INTELLIGENT AUTOMATED ASSISTANT
US10565196B2 (en) 2017-07-29 2020-02-18 Splunk Inc. Determining a user-specific approach for disambiguation based on an interaction recommendation machine learning model
US11170016B2 (en) 2017-07-29 2021-11-09 Splunk Inc. Navigating hierarchical components based on an expansion recommendation machine learning model
US11120344B2 (en) 2017-07-29 2021-09-14 Splunk Inc. Suggesting follow-up queries based on a follow-up recommendation machine learning model
CN107688614B (zh) * 2017-08-04 2018-08-10 平安科技(深圳)有限公司 意图获取方法、电子装置及计算机可读存储介质
JP6791825B2 (ja) * 2017-09-26 2020-11-25 株式会社日立製作所 情報処理装置、対話処理方法及び対話システム
EP4303059A3 (en) * 2017-10-03 2024-03-13 Google Llc Vehicle function control with sensor based validation
WO2019092672A2 (en) * 2017-11-13 2019-05-16 Way2Vat Ltd. Systems and methods for neuronal visual-linguistic data retrieval from an imaged document
US11087097B2 (en) * 2017-11-27 2021-08-10 Act, Inc. Automatic item generation for passage-based assessment
US11074269B2 (en) * 2018-01-10 2021-07-27 Reservoir Labs, Inc. Systems and methods for configuring system memory for extraction of latent information from big data
US11625531B2 (en) * 2018-02-07 2023-04-11 Nec Corporation Information processing apparatus, information processing method, and computer-readable recording medium
JP6984474B2 (ja) * 2018-02-14 2021-12-22 トヨタ自動車株式会社 情報処理装置および情報処理方法
EP3762841A4 (en) * 2018-03-08 2022-01-05 Pajo, Erind PROCEDURES, SYSTEMS, DEVICES AND SOFTWARE FOR THE MANAGEMENT AND SHARING OF KNOWLEDGE
US11023684B1 (en) * 2018-03-19 2021-06-01 Educational Testing Service Systems and methods for automatic generation of questions from text
US10713441B2 (en) 2018-03-23 2020-07-14 Servicenow, Inc. Hybrid learning system for natural language intent extraction from a dialog utterance
US10679010B2 (en) 2018-03-28 2020-06-09 Wipro Limited Method and system of generating dialogue responses for users in real-time
US11232260B2 (en) * 2018-04-19 2022-01-25 Entigenlogic Llc Updating a document utilizing trusted new information
US10360912B1 (en) * 2018-04-30 2019-07-23 Sorenson Ip Holdings, Llc Presentation of indications with respect to questions of a communication session
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
EP3576084B1 (de) * 2018-05-29 2020-09-30 Christoph Neumann Effiziente dialoggestaltung
US11194968B2 (en) * 2018-05-31 2021-12-07 Siemens Aktiengesellschaft Automatized text analysis
US10942919B2 (en) 2018-06-29 2021-03-09 Entigenlogic Llc Generating further knowledge to process query
WO2020009709A1 (en) * 2018-07-06 2020-01-09 Google Llc User-specific text record-based format prediction
CA3106636A1 (en) * 2018-07-16 2020-01-23 W/You, Inc. System for choosing apparel and related methods
US10482181B1 (en) 2018-08-01 2019-11-19 United States Of America As Represented By The Secretary Of The Navy Device, method, and system for expert case-based natural language learning
WO2020031242A1 (ja) * 2018-08-06 2020-02-13 富士通株式会社 評価プログラム、評価方法および情報処理装置
EP3847643A4 (en) 2018-09-06 2022-04-20 Coffing, Daniel L. DIALOG GUIDANCE PROVIDING SYSTEM
US10909324B2 (en) * 2018-09-07 2021-02-02 The Florida International University Board Of Trustees Features for classification of stories
EP3850781A4 (en) 2018-09-14 2022-05-04 Coffing, Daniel L. FACT MANAGEMENT SYSTEM
US11144337B2 (en) * 2018-11-06 2021-10-12 International Business Machines Corporation Implementing interface for rapid ground truth binning
US11194973B1 (en) * 2018-11-12 2021-12-07 Amazon Technologies, Inc. Dialog response generation
RU2743898C1 (ru) 2018-11-16 2021-03-01 Общество С Ограниченной Ответственностью "Яндекс" Способ выполнения задач
US10943070B2 (en) * 2019-02-01 2021-03-09 International Business Machines Corporation Interactively building a topic model employing semantic similarity in a spoken dialog system
US11328007B2 (en) * 2019-02-04 2022-05-10 International Business Machines Corporation Generating a domain-specific phrasal dictionary
CN111694962A (zh) * 2019-03-15 2020-09-22 阿里巴巴集团控股有限公司 数据处理方法和装置
US11442993B2 (en) * 2019-04-03 2022-09-13 Entigenlogic Llc Processing a query to produce an embellished query response
RU2744032C2 (ru) 2019-04-15 2021-03-02 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для определения результата выполнения задачи в краудсорсинговой среде
CN110110066B (zh) * 2019-05-09 2023-01-06 腾讯科技(深圳)有限公司 一种交互数据处理方法、装置以及计算机可读存储介质
CA3081150A1 (en) * 2019-05-21 2020-11-21 Royal Bank Of Canada System and method for machine learning architecture with variational autoencoder pooling
RU2744038C2 (ru) 2019-05-27 2021-03-02 Общество С Ограниченной Ответственностью «Яндекс» Способ и система для определения результата для задачи, выполняемой в краудсорсинговой среде
US11227599B2 (en) 2019-06-01 2022-01-18 Apple Inc. Methods and user interfaces for voice-based control of electronic devices
CN110136697B (zh) * 2019-06-06 2021-03-30 深圳市数字星河科技有限公司 一种基于多进程/线程并行运算的英语朗读练习系统
US11501753B2 (en) * 2019-06-26 2022-11-15 Samsung Electronics Co., Ltd. System and method for automating natural language understanding (NLU) in skill development
US11205052B2 (en) 2019-07-02 2021-12-21 Servicenow, Inc. Deriving multiple meaning representations for an utterance in a natural language understanding (NLU) framework
US11487945B2 (en) 2019-07-02 2022-11-01 Servicenow, Inc. Predictive similarity scoring subsystem in a natural language understanding (NLU) framework
US11157707B2 (en) * 2019-07-23 2021-10-26 International Business Machines Corporation Natural language response improvement in machine assisted agents
US20210035132A1 (en) * 2019-08-01 2021-02-04 Qualtrics, Llc Predicting digital survey response quality and generating suggestions to digital surveys
US11138383B2 (en) * 2019-08-21 2021-10-05 International Business Machines Corporation Extracting meaning representation from text
RU2019128272A (ru) 2019-09-09 2021-03-09 Общество С Ограниченной Ответственностью «Яндекс» Способ и система для определения производительности пользователя в компьютерной краудсорсинговой среде
US11734701B2 (en) * 2019-09-11 2023-08-22 International Business Machines Corporation Cognitive dynamic goal survey
CN110929027B (zh) * 2019-09-30 2022-08-12 珠海格力电器股份有限公司 提示系统、提示方法、计算机及废物容纳装置
TW202127364A (zh) * 2019-10-09 2021-07-16 香港商Ai機器人技術有限公司 用於創新,創意和學習即服務的系統和方法
RU2019135532A (ru) 2019-11-05 2021-05-05 Общество С Ограниченной Ответственностью «Яндекс» Способ и система для выбора метки из множества меток для задачи в краудсорсинговой среде
CN110955764B (zh) * 2019-11-19 2021-04-06 百度在线网络技术(北京)有限公司 场景知识图谱的生成方法、人机对话方法以及相关设备
CN111241282B (zh) * 2020-01-14 2023-09-08 北京百度网讯科技有限公司 文本主题生成方法、装置及电子设备
US20210240941A1 (en) * 2020-02-03 2021-08-05 Ardis AI INC. Systems and methods for simulation model of language
RU2020107002A (ru) 2020-02-14 2021-08-16 Общество С Ограниченной Ответственностью «Яндекс» Способ и система приема метки для цифровой задачи, исполняемой в краудсорсинговой среде
US11822889B2 (en) * 2020-03-20 2023-11-21 At&T Intellectual Property I, L.P. Personal conversationalist system
CN111460118B (zh) * 2020-03-26 2023-10-20 聚好看科技股份有限公司 一种人工智能冲突语义识别方法及装置
US11651156B2 (en) * 2020-05-07 2023-05-16 Optum Technology, Inc. Contextual document summarization with semantic intelligence
US11061543B1 (en) 2020-05-11 2021-07-13 Apple Inc. Providing relevant data items based on context
CN111832277B (zh) * 2020-06-04 2024-03-26 北京百度网讯科技有限公司 阅读理解模型的训练方法及阅读理解处理方法
CN111797241B (zh) * 2020-06-17 2023-08-22 北京北大软件工程股份有限公司 基于强化学习的事件论元抽取方法及装置
US11449535B2 (en) * 2020-07-13 2022-09-20 Servicenow, Inc. Generating conversational interfaces based on metadata
US11490204B2 (en) 2020-07-20 2022-11-01 Apple Inc. Multi-device audio adjustment coordination
CN111858857B (zh) * 2020-07-31 2021-03-30 前海企保科技(深圳)有限公司 一种跨文档长文本的分层融合阅读理解方法及系统
US20220036007A1 (en) * 2020-07-31 2022-02-03 International Business Machines Corporation Bootstrapping relation training data
CN112084299B (zh) * 2020-08-05 2022-05-31 山西大学 一种基于bert语义表示的阅读理解自动问答方法
WO2022043675A2 (en) * 2020-08-24 2022-03-03 Unlikely Artificial Intelligence Limited A computer implemented method for the automated analysis or use of data
US11935141B2 (en) 2020-08-31 2024-03-19 Nancy Bordier Decision assisting artificial intelligence system for voter electoral and legislative consensus building
US20220067078A1 (en) * 2020-09-02 2022-03-03 Medoid AI PC Aggregation system, Response Summary Process, and Method of Use
CN112052685B (zh) * 2020-09-11 2024-06-04 河南合众伟奇云智科技有限公司 一种基于二维时序网络的端到端文本实体关系识别方法
CA3193435A1 (en) * 2020-09-25 2022-03-31 Mark Sagar Event representation in embodied agents
CN112395876B (zh) * 2021-01-21 2021-04-13 华东交通大学 基于知识蒸馏和多任务学习的篇章关系识别方法与装置
US20220237565A1 (en) * 2021-01-25 2022-07-28 James M. Dzierzanowski Systems and methods for project accountability services
CN112948558B (zh) * 2021-03-10 2022-09-20 中国人民解放军国防科技大学 面向开放域对话系统的上下文增强的问题生成方法及装置
CN113010676B (zh) * 2021-03-15 2023-12-08 北京语言大学 一种文本知识提取方法、装置及自然语言推断系统
KR102286620B1 (ko) * 2021-04-07 2021-08-04 유희경 판매 교육 시스템
US20220343066A1 (en) * 2021-04-15 2022-10-27 Apple Inc. Digital assistant handling of personal requests
CN113221564B (zh) * 2021-04-29 2024-03-01 北京百度网讯科技有限公司 训练实体识别模型的方法、装置、电子设备和存储介质
CN113139059B (zh) * 2021-05-13 2022-07-15 八维(杭州)科技有限公司 一种基于人机对话的意向分级方法
CN112989016B (zh) * 2021-05-17 2021-08-10 南湖实验室 用于检测对话策略学习中模拟用户经验质量的方法和系统
CN113569020B (zh) * 2021-06-22 2023-10-10 复旦大学 智能会话系统中融合知识推理及知识导向的对话管理方法
US11797611B2 (en) * 2021-07-07 2023-10-24 International Business Machines Corporation Non-factoid question answering across tasks and domains
US20230009946A1 (en) * 2021-07-12 2023-01-12 International Business Machines Corporation Generative relation linking for question answering
US11977854B2 (en) 2021-08-24 2024-05-07 Unlikely Artificial Intelligence Limited Computer implemented methods for the automated analysis or use of data, including use of a large language model
US11989507B2 (en) 2021-08-24 2024-05-21 Unlikely Artificial Intelligence Limited Computer implemented methods for the automated analysis or use of data, including use of a large language model
US11989527B2 (en) 2021-08-24 2024-05-21 Unlikely Artificial Intelligence Limited Computer implemented methods for the automated analysis or use of data, including use of a large language model
CN114090771A (zh) * 2021-10-19 2022-02-25 广州数说故事信息科技有限公司 一种基于大数据的传播主张和消费者故事分析方法及系统
WO2023069396A1 (en) * 2021-10-21 2023-04-27 Cognizer, Inc. Semantic frame identification using transformers
US11869128B2 (en) * 2021-12-14 2024-01-09 Fujitsu Limited Image generation based on ethical viewpoints
US11971887B2 (en) 2022-03-28 2024-04-30 International Business Machines Corporation Identifying and replacing logically neutral phrases in natural language queries for query processing
CN115293465B (zh) * 2022-10-09 2023-02-14 枫树谷(成都)科技有限责任公司 一种人群密度预测方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080154581A1 (en) * 2001-03-13 2008-06-26 Intelligate, Ltd. Dynamic natural language understanding
US20110123967A1 (en) * 2009-11-24 2011-05-26 Xerox Corporation Dialog system for comprehension evaluation
US20140257794A1 (en) * 2013-03-11 2014-09-11 Nuance Communications, Inc. Semantic Re-Ranking of NLU Results in Conversational Dialogue Applications
US20140316764A1 (en) * 2013-04-19 2014-10-23 Sri International Clarifying natural language input using targeted questions
US20150149177A1 (en) * 2013-11-27 2015-05-28 Sri International Sharing Intents to Provide Virtual Assistance in a Multi-Person Dialog

Family Cites Families (181)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2997469B2 (ja) * 1988-01-11 2000-01-11 株式会社日立製作所 自然言語理解方法および情報検索装置
JPH01309179A (ja) * 1988-02-04 1989-12-13 Hitachi Ltd 自然言語解析方式
JP2571599B2 (ja) * 1988-03-22 1997-01-16 富士通株式会社 データベース検索方式
CA2084443A1 (en) * 1992-01-31 1993-08-01 Leonard C. Swanson Method of item selection for computerized adaptive tests
JP2856618B2 (ja) * 1993-01-28 1999-02-10 日本電気株式会社 自然言語インタフェース方式
US5748841A (en) * 1994-02-25 1998-05-05 Morin; Philippe Supervised contextual language acquisition system
US5836771A (en) * 1996-12-02 1998-11-17 Ho; Chi Fai Learning method and system based on questioning
US20050005266A1 (en) * 1997-05-01 2005-01-06 Datig William E. Method of and apparatus for realizing synthetic knowledge processes in devices for useful applications
US5960384A (en) * 1997-09-03 1999-09-28 Brash; Douglas E. Method and device for parsing natural language sentences and other sequential symbolic expressions
US20030050927A1 (en) * 2001-09-07 2003-03-13 Araha, Inc. System and method for location, understanding and assimilation of digital documents through abstract indicia
US6604094B1 (en) * 2000-05-25 2003-08-05 Symbionautics Corporation Simulating human intelligence in computers using natural language dialog
US6618715B1 (en) * 2000-06-08 2003-09-09 International Business Machines Corporation Categorization based text processing
WO2001098942A2 (en) * 2000-06-19 2001-12-27 Lernout & Hauspie Speech Products N.V. Package driven parsing using structure function grammar
US6675159B1 (en) * 2000-07-27 2004-01-06 Science Applic Int Corp Concept-based search and retrieval system
US6778986B1 (en) 2000-07-31 2004-08-17 Eliyon Technologies Corporation Computer method and apparatus for determining site type of a web site
US8340955B2 (en) 2000-11-15 2012-12-25 International Business Machines Corporation System and method for finding the most likely answer to a natural language question
US7436947B2 (en) * 2002-05-14 2008-10-14 Avaya Inc. Method and apparatus for automatic notification and response based on communication flow expressions
US8015143B2 (en) * 2002-05-22 2011-09-06 Estes Timothy W Knowledge discovery agent system and method
US20040034633A1 (en) * 2002-08-05 2004-02-19 Rickard John Terrell Data search system and method using mutual subsethood measures
US20050015363A1 (en) * 2003-07-15 2005-01-20 International Business Machines Corporation Method and structure for representing complex query elements in a modelling tool
US7295981B1 (en) * 2004-01-09 2007-11-13 At&T Corp. Method for building a natural language understanding model for a spoken dialog system
US20050165607A1 (en) 2004-01-22 2005-07-28 At&T Corp. System and method to disambiguate and clarify user intention in a spoken dialog system
US20070018953A1 (en) * 2004-03-03 2007-01-25 The Boeing Company System, method, and computer program product for anticipatory hypothesis-driven text retrieval and argumentation tools for strategic decision support
US7908143B2 (en) 2004-04-28 2011-03-15 International Business Machines Corporation Dialog call-flow optimization
US20060053000A1 (en) 2004-05-11 2006-03-09 Moldovan Dan I Natural language question answering system and method utilizing multi-modal logic
US20050256700A1 (en) * 2004-05-11 2005-11-17 Moldovan Dan I Natural language question answering system and method utilizing a logic prover
US7584100B2 (en) * 2004-06-30 2009-09-01 Microsoft Corporation Method and system for clustering using generalized sentence patterns
DE602004028005D1 (de) * 2004-07-27 2010-08-19 Sony France Sa Ein automatisiertes System zur Aktionsanwahl, sowie das Verfahren und dessen Anwendung, um Prognosemaschinen auszubilden und die Entwicklung sich selbst entwickelnder Geräte zu unterstützen
US20060036430A1 (en) 2004-08-12 2006-02-16 Junling Hu System and method for domain-based natural language consultation
US7716056B2 (en) * 2004-09-27 2010-05-11 Robert Bosch Corporation Method and system for interactive conversational dialogue for cognitively overloaded device users
US8849860B2 (en) * 2005-03-30 2014-09-30 Primal Fusion Inc. Systems and methods for applying statistical inference techniques to knowledge representations
US20080195601A1 (en) * 2005-04-14 2008-08-14 The Regents Of The University Of California Method For Information Retrieval
US8764455B1 (en) * 2005-05-09 2014-07-01 Altis Avante Corp. Comprehension instruction system and method
US20070106499A1 (en) * 2005-08-09 2007-05-10 Kathleen Dahlgren Natural language search system
US7949529B2 (en) * 2005-08-29 2011-05-24 Voicebox Technologies, Inc. Mobile systems and methods of supporting natural language human-machine interactions
US8060534B1 (en) * 2005-09-21 2011-11-15 Infoblox Inc. Event management
US8533169B1 (en) * 2005-09-21 2013-09-10 Infoblox Inc. Transactional replication
US8290910B2 (en) * 2005-09-21 2012-10-16 Infoblox Inc. Semantic replication
JP2007141090A (ja) * 2005-11-21 2007-06-07 Fuji Xerox Co Ltd 質問応答システム、およびデータ検索方法、並びにコンピュータ・プログラム
US8321220B1 (en) * 2005-11-30 2012-11-27 At&T Intellectual Property Ii, L.P. System and method of semi-supervised learning for spoken language understanding using semantic role labeling
US20140134588A1 (en) * 2006-01-26 2014-05-15 Richard William Capone Educational testing network
US8204751B1 (en) * 2006-03-03 2012-06-19 At&T Intellectual Property Ii, L.P. Relevance recognition for a human machine dialog system contextual question answering based on a normalization of the length of the user input
US9318108B2 (en) * 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US20160004766A1 (en) * 2006-10-10 2016-01-07 Abbyy Infopoisk Llc Search technology using synonims and paraphrasing
AU2007339735A1 (en) * 2007-01-04 2008-07-10 Thinking Solutions Pty Ltd Linguistic analysis
US8091070B2 (en) * 2007-01-08 2012-01-03 Microsoft Corporation Deep embedding of program languages
US20090012842A1 (en) * 2007-04-25 2009-01-08 Counsyl, Inc., A Delaware Corporation Methods and Systems of Automatic Ontology Population
US7899666B2 (en) * 2007-05-04 2011-03-01 Expert System S.P.A. Method and system for automatically extracting relations between concepts included in text
US8411935B2 (en) * 2007-07-11 2013-04-02 Behavioral Recognition Systems, Inc. Semantic representation module of a machine-learning engine in a video analysis system
US9063975B2 (en) * 2013-03-15 2015-06-23 International Business Machines Corporation Results of question and answer systems
US8280721B2 (en) * 2007-08-31 2012-10-02 Microsoft Corporation Efficiently representing word sense probabilities
US8463593B2 (en) * 2007-08-31 2013-06-11 Microsoft Corporation Natural language hypernym weighting for word sense disambiguation
US8521766B1 (en) * 2007-11-12 2013-08-27 W Leo Hoarty Systems and methods for providing information discovery and retrieval
US7809664B2 (en) * 2007-12-21 2010-10-05 Yahoo! Inc. Automated learning from a question and answering network of humans
AU2009299102B2 (en) * 2008-09-30 2015-07-09 National Ict Australia Limited Measuring cognitive load
US8335754B2 (en) 2009-03-06 2012-12-18 Tagged, Inc. Representing a document using a semantic structure
CN101872349B (zh) 2009-04-23 2013-06-19 国际商业机器公司 处理自然语言问题的方法和装置
US9502025B2 (en) * 2009-11-10 2016-11-22 Voicebox Technologies Corporation System and method for providing a natural language content dedication service
US20110119047A1 (en) * 2009-11-19 2011-05-19 Tatu Ylonen Oy Ltd Joint disambiguation of the meaning of a natural language expression
US20110125734A1 (en) * 2009-11-23 2011-05-26 International Business Machines Corporation Questions and answers generation
US20110161073A1 (en) * 2009-12-29 2011-06-30 Dynavox Systems, Llc System and method of disambiguating and selecting dictionary definitions for one or more target words
US10679605B2 (en) * 2010-01-18 2020-06-09 Apple Inc. Hands-free list-reading by intelligent automated assistant
US8700620B1 (en) * 2010-04-27 2014-04-15 Jeremy Lieberman Artificial intelligence method and apparatus
US9110882B2 (en) 2010-05-14 2015-08-18 Amazon Technologies, Inc. Extracting structured knowledge from unstructured text
US8990135B2 (en) * 2010-06-15 2015-03-24 The Regents Of The University Of Michigan Personalized health risk assessment for critical care
US9235806B2 (en) * 2010-06-22 2016-01-12 Primal Fusion Inc. Methods and devices for customizing knowledge representation systems
US10474647B2 (en) * 2010-06-22 2019-11-12 Primal Fusion Inc. Methods and devices for customizing knowledge representation systems
US8682921B2 (en) * 2010-07-07 2014-03-25 Johnson Controls Technology Company Query engine for building management systems
US8452770B2 (en) 2010-07-15 2013-05-28 Xerox Corporation Constrained nonnegative tensor factorization for clustering
US8301640B2 (en) * 2010-11-24 2012-10-30 King Abdulaziz City For Science And Technology System and method for rating a written document
US8856050B2 (en) * 2011-01-13 2014-10-07 International Business Machines Corporation System and method for domain adaption with partial observation
US20120209606A1 (en) * 2011-02-14 2012-08-16 Nice Systems Ltd. Method and apparatus for information extraction from interactions
US11068954B2 (en) * 2015-11-20 2021-07-20 Voicemonk Inc System for virtual agents to help customers and businesses
US9047567B2 (en) * 2011-07-15 2015-06-02 International Business Machines Corporation Utilizing failures in question and answer system responses to enhance the accuracy of question and answer systems
US8838434B1 (en) 2011-07-29 2014-09-16 Nuance Communications, Inc. Bootstrap call router to other languages using selected N-best translations
US9015031B2 (en) 2011-08-04 2015-04-21 International Business Machines Corporation Predicting lexical answer types in open domain question and answering (QA) systems
US20130132308A1 (en) 2011-11-22 2013-05-23 Gregory Jensen Boss Enhanced DeepQA in a Medical Environment
US20150039295A1 (en) * 2011-12-20 2015-02-05 Alona Soschen Natural language processor
CN103186523B (zh) * 2011-12-30 2017-05-10 富泰华工业(深圳)有限公司 电子设备及其自然语言分析方法
US9275341B2 (en) * 2012-02-29 2016-03-01 New Sapience, Inc. Method and system for machine comprehension
WO2013155619A1 (en) 2012-04-20 2013-10-24 Sam Pasupalak Conversational agent
WO2013168154A1 (en) * 2012-05-07 2013-11-14 Bar Ilan University A cognitive training method for semantic skills enhancement
JP5389273B1 (ja) * 2012-06-25 2014-01-15 株式会社東芝 文脈解析装置および文脈解析方法
US20140024008A1 (en) * 2012-07-05 2014-01-23 Kumar R. Sathy Standards-based personalized learning assessments for school and home
GB2505218A (en) * 2012-08-23 2014-02-26 Ibm Logical contingency analysis for domain-specific languages
US9264391B2 (en) * 2012-11-01 2016-02-16 Salesforce.Com, Inc. Computer implemented methods and apparatus for providing near real-time predicted engagement level feedback to a user composing a social media message
MX2015010582A (es) * 2013-02-15 2017-01-11 Voxy Inc Sistemas y metodos de aprendizaje de idiomas.
US9594745B2 (en) * 2013-03-01 2017-03-14 The Software Shop, Inc. Systems and methods for improving the efficiency of syntactic and semantic analysis in automated processes for natural language understanding using general composition
WO2014160379A1 (en) * 2013-03-14 2014-10-02 Advanced Search Laboratories, Inc. Dimensional articulation and cognium organization for information retrieval systems
US9875237B2 (en) * 2013-03-14 2018-01-23 Microsfot Technology Licensing, Llc Using human perception in building language understanding models
US20140280072A1 (en) * 2013-03-14 2014-09-18 Advanced Search Laboratories, lnc. Method and Apparatus for Human-Machine Interaction
US9311294B2 (en) * 2013-03-15 2016-04-12 International Business Machines Corporation Enhanced answers in DeepQA system according to user preferences
WO2014182820A2 (en) * 2013-05-07 2014-11-13 Haley Paul V System for knowledge acquisition
WO2014183089A1 (en) * 2013-05-09 2014-11-13 Metavana, Inc. Hybrid human machine learning system and method
US9772994B2 (en) * 2013-07-25 2017-09-26 Intel Corporation Self-learning statistical natural language processing for automatic production of virtual personal assistants
US9268861B2 (en) * 2013-08-19 2016-02-23 Yahoo! Inc. Method and system for recommending relevant web content to second screen application users
US9336204B1 (en) * 2013-09-18 2016-05-10 Amazon Technologies, Inc. Techniques for modifying the complexity of literary content
US9058374B2 (en) 2013-09-26 2015-06-16 International Business Machines Corporation Concept driven automatic section identification
US9189742B2 (en) 2013-11-20 2015-11-17 Justin London Adaptive virtual intelligent agent
US10073835B2 (en) * 2013-12-03 2018-09-11 International Business Machines Corporation Detecting literary elements in literature and their importance through semantic analysis and literary correlation
US9460085B2 (en) * 2013-12-09 2016-10-04 International Business Machines Corporation Testing and training a question-answering system
RU2579699C2 (ru) * 2013-12-19 2016-04-10 ООО "Аби ИнфоПоиск" Разрешение семантической неоднозначности при помощи не зависящей от языка семантической структуры
JP5904559B2 (ja) * 2013-12-20 2016-04-13 国立研究開発法人情報通信研究機構 シナリオ生成装置、及びそのためのコンピュータプログラム
KR20150082783A (ko) * 2014-01-08 2015-07-16 한국전자통신연구원 텍스트 빅데이터 기반 의미 프레임 운용 방법 및 이를 지원하는 장치
US20150243176A1 (en) * 2014-02-24 2015-08-27 Mindojo Ltd. Virtual course boundaries in adaptive e-learning datagraph structures
US20150248398A1 (en) * 2014-02-28 2015-09-03 Choosito! Inc. Adaptive reading level assessment for personalized search
US9378273B2 (en) * 2014-03-13 2016-06-28 International Business Machines Corporation System and method for question answering by reformulating word problems
US20150309965A1 (en) * 2014-04-28 2015-10-29 Elwha Llc Methods, systems, and devices for outcome prediction of text submission to network based on corpora analysis
US9659005B2 (en) 2014-05-16 2017-05-23 Semantix Technologies Corporation System for semantic interpretation
US10726831B2 (en) * 2014-05-20 2020-07-28 Amazon Technologies, Inc. Context interpretation in natural language processing using previous dialog acts
CN105279145B (zh) * 2014-05-27 2018-01-09 王楠 一种计算机语义工程系统
EP3158691A4 (en) * 2014-06-06 2018-03-28 Obschestvo S Ogranichennoy Otvetstvennostiyu "Speactoit" Proactive environment-based chat information system
US9323742B2 (en) * 2014-06-09 2016-04-26 Xerox Corporation Method and apparatus for providing semantic data architecture
CN104050256B (zh) * 2014-06-13 2017-05-24 西安蒜泥电子科技有限责任公司 基于主动学习的问答方法及采用该方法的问答系统
US11100420B2 (en) * 2014-06-30 2021-08-24 Amazon Technologies, Inc. Input processing for machine learning
US10452992B2 (en) * 2014-06-30 2019-10-22 Amazon Technologies, Inc. Interactive interfaces for machine learning model evaluations
US9767794B2 (en) 2014-08-11 2017-09-19 Nuance Communications, Inc. Dialog flow management in hierarchical task dialogs
US9760626B2 (en) 2014-09-05 2017-09-12 International Business Machines Corporation Optimizing parsing outcomes of documents
US10783900B2 (en) * 2014-10-03 2020-09-22 Google Llc Convolutional, long short-term memory, fully connected deep neural networks
GB2531720A (en) * 2014-10-27 2016-05-04 Ibm Automatic question generation from natural text
US9946763B2 (en) * 2014-11-05 2018-04-17 International Business Machines Corporation Evaluating passages in a question answering computer system
KR102033395B1 (ko) * 2014-11-20 2019-10-18 한국전자통신연구원 심층 자연어 질문 분석 기반 구조화된 지식베이스 질의응답 시스템 및 그 방법
US10515314B2 (en) * 2014-12-03 2019-12-24 Educational Testing Service Computer-implemented systems and methods for generating a supervised model for lexical cohesion detection
US9626622B2 (en) 2014-12-15 2017-04-18 International Business Machines Corporation Training a question/answer system using answer keys based on forum content
US9704103B2 (en) * 2014-12-16 2017-07-11 The Affinity Project, Inc. Digital companions for human users
US9373086B1 (en) 2015-01-07 2016-06-21 International Business Machines Corporation Crowdsource reasoning process to facilitate question answering
US10885803B2 (en) * 2015-01-23 2021-01-05 Massachusetts Institute Of Technology System and method for real-time analysis and guidance of learning
RU2592396C1 (ru) 2015-02-03 2016-07-20 Общество с ограниченной ответственностью "Аби ИнфоПоиск" Способ и система для машинного извлечения и интерпретации текстовой информации
US10169489B2 (en) * 2015-03-02 2019-01-01 International Business Machines Corporation Query disambiguation in a question-answering environment
US9911412B2 (en) * 2015-03-06 2018-03-06 Nuance Communications, Inc. Evidence-based natural language input recognition
US10133728B2 (en) 2015-03-20 2018-11-20 Microsoft Technology Licensing, Llc Semantic parsing for complex knowledge extraction
US20160293045A1 (en) * 2015-03-31 2016-10-06 Fujitsu Limited Vocabulary learning support system
US9720738B2 (en) * 2015-04-09 2017-08-01 International Business Machines Corporation Datacenter scheduling of applications using machine learning techniques
US20160306791A1 (en) * 2015-04-15 2016-10-20 International Business Machines Corporation Determining User-Friendly Information to Solicit in a Question and Answer System
US9672814B2 (en) * 2015-05-08 2017-06-06 International Business Machines Corporation Semi-supervised learning of word embeddings
US10108603B2 (en) * 2015-06-01 2018-10-23 Nuance Communications, Inc. Processing natural language text with context-specific linguistic model
US20160358488A1 (en) * 2015-06-03 2016-12-08 International Business Machines Corporation Dynamic learning supplementation with intelligent delivery of appropriate content
US10210484B2 (en) * 2015-06-05 2019-02-19 International Business Machines Corporation Altering a functional characteristic of a computer used by an invitee to a meeting
US10628735B2 (en) * 2015-06-05 2020-04-21 Deepmind Technologies Limited Reading comprehension neural networks
US9946924B2 (en) * 2015-06-10 2018-04-17 Accenture Global Services Limited System and method for automating information abstraction process for documents
US10496749B2 (en) * 2015-06-12 2019-12-03 Satyanarayana Krishnamurthy Unified semantics-focused language processing and zero base knowledge building system
US9880999B2 (en) * 2015-07-03 2018-01-30 The University Of North Carolina At Charlotte Natural language relatedness tool using mined semantic analysis
US20170018268A1 (en) * 2015-07-14 2017-01-19 Nuance Communications, Inc. Systems and methods for updating a language model based on user input
US10170014B2 (en) * 2015-07-28 2019-01-01 International Business Machines Corporation Domain-specific question-answer pair generation
US20170031893A1 (en) * 2015-07-30 2017-02-02 Pat Inc. Set-based Parsing for Computer-Implemented Linguistic Analysis
US10255921B2 (en) * 2015-07-31 2019-04-09 Google Llc Managing dialog data providers
US10628413B2 (en) * 2015-08-03 2020-04-21 International Business Machines Corporation Mapping questions to complex database lookups using synthetic events
US20170039873A1 (en) * 2015-08-05 2017-02-09 Fujitsu Limited Providing adaptive electronic reading support
JP6544131B2 (ja) * 2015-08-14 2019-07-17 富士ゼロックス株式会社 情報処理装置及び情報処理プログラム
US10108702B2 (en) * 2015-08-24 2018-10-23 International Business Machines Corporation Topic shift detector
US9715498B2 (en) * 2015-08-31 2017-07-25 Microsoft Technology Licensing, Llc Distributed server system for language understanding
JP6678930B2 (ja) * 2015-08-31 2020-04-15 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 分類モデルを学習する方法、コンピュータ・システムおよびコンピュータ・プログラム
WO2017044415A1 (en) * 2015-09-07 2017-03-16 Voicebox Technologies Corporation System and method for eliciting open-ended natural language responses to questions to train natural language processors
US20170075877A1 (en) * 2015-09-16 2017-03-16 Marie-Therese LEPELTIER Methods and systems of handling patent claims
US9767381B2 (en) * 2015-09-22 2017-09-19 Xerox Corporation Similarity-based detection of prominent objects using deep CNN pooling layers as features
US10289740B2 (en) 2015-09-24 2019-05-14 Searchmetrics Gmbh Computer systems to outline search content and related methods therefor
US10490094B2 (en) * 2015-09-25 2019-11-26 International Business Machines Corporation Techniques for transforming questions of a question set to facilitate answer aggregation and display
US10445656B2 (en) * 2015-09-29 2019-10-15 Cognitive Scale, Inc. Cognitive machine learning system
US20170132371A1 (en) * 2015-10-19 2017-05-11 Parkland Center For Clinical Innovation Automated Patient Chart Review System and Method
US10339160B2 (en) * 2015-10-29 2019-07-02 Qualtrics, Llc Organizing survey text responses
US10585984B2 (en) * 2015-11-10 2020-03-10 International Business Machines Corporation Techniques for improving input text processing in a data processing system that answers questions
US10521410B2 (en) * 2015-11-20 2019-12-31 International Business Machines Corporation Semantic graph augmentation for domain adaptation
US9727554B2 (en) * 2015-11-24 2017-08-08 International Business Machines Corporation Knowledge-based editor with natural language interface
US9971831B2 (en) * 2015-11-25 2018-05-15 International Business Machines Corporation Managing complex queries with predicates
US9984050B2 (en) 2015-12-01 2018-05-29 International Business Machines Corporation Ground truth collection via browser for passage-question pairings
RU2626555C2 (ru) * 2015-12-02 2017-07-28 Общество с ограниченной ответственностью "Аби Продакшн" Извлечение сущностей из текстов на естественном языке
US9754504B2 (en) * 2015-12-14 2017-09-05 International Business Machines Corporation Generating multiple choice questions and answers based on document text
KR102019757B1 (ko) * 2015-12-15 2019-09-10 한국전자통신연구원 언어 분석 오류 보정 장치 및 방법
US9519871B1 (en) * 2015-12-21 2016-12-13 International Business Machines Corporation Contextual text adaptation
US10262062B2 (en) * 2015-12-21 2019-04-16 Adobe Inc. Natural language system question classifier, semantic representations, and logical form templates
US20170185919A1 (en) * 2015-12-29 2017-06-29 Cognitive Scale, Inc. Cognitive Persona Selection
US10789539B2 (en) * 2015-12-31 2020-09-29 Nuance Communications, Inc. Probabilistic ranking for natural language understanding
US11520813B2 (en) 2016-01-04 2022-12-06 International Business Machines Corporation Entailment knowledge base in natural language processing systems
US9858336B2 (en) * 2016-01-05 2018-01-02 International Business Machines Corporation Readability awareness in natural language processing systems
US10755195B2 (en) * 2016-01-13 2020-08-25 International Business Machines Corporation Adaptive, personalized action-aware communication and conversation prioritization
US9858927B2 (en) * 2016-02-12 2018-01-02 Amazon Technologies, Inc Processing spoken commands to control distributed audio outputs
US10380258B2 (en) * 2016-03-31 2019-08-13 International Business Machines Corporation System, method, and recording medium for corpus pattern paraphrasing
US10643488B2 (en) * 2016-06-23 2020-05-05 Lystnr, Llc System and method of assessing depth-of-understanding
US10346401B2 (en) * 2016-07-07 2019-07-09 Accenture Global Solutions Limited Query rewriting in a relational data harmonization framework
US20180018322A1 (en) * 2016-07-15 2018-01-18 Intuit Inc. System and method for automatically understanding lines of compliance forms through natural language patterns
US11222266B2 (en) * 2016-07-15 2022-01-11 Intuit Inc. System and method for automatic learning of functions

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080154581A1 (en) * 2001-03-13 2008-06-26 Intelligate, Ltd. Dynamic natural language understanding
US20110123967A1 (en) * 2009-11-24 2011-05-26 Xerox Corporation Dialog system for comprehension evaluation
US20140257794A1 (en) * 2013-03-11 2014-09-11 Nuance Communications, Inc. Semantic Re-Ranking of NLU Results in Conversational Dialogue Applications
US20140316764A1 (en) * 2013-04-19 2014-10-23 Sri International Clarifying natural language input using targeted questions
US20150149177A1 (en) * 2013-11-27 2015-05-28 Sri International Sharing Intents to Provide Virtual Assistance in a Multi-Person Dialog

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11727302B2 (en) * 2017-06-13 2023-08-15 Beijing Baidu Netcom Science And Technology Co., Ltd. Method and apparatus for building a conversation understanding system based on artificial intelligence, device and computer-readable storage medium

Also Published As

Publication number Publication date
CN109478205A (zh) 2019-03-15
US10496754B1 (en) 2019-12-03
JP7178995B2 (ja) 2022-11-28
CN109478205B (zh) 2023-11-14
US20200034420A1 (en) 2020-01-30
US10621285B2 (en) 2020-04-14
EP3475838A4 (en) 2020-02-19
US10614166B2 (en) 2020-04-07
US10628523B2 (en) 2020-04-21
US20200034421A1 (en) 2020-01-30
US20200034422A1 (en) 2020-01-30
JP2019526139A (ja) 2019-09-12
US20170371861A1 (en) 2017-12-28
KR102414491B1 (ko) 2022-06-28
US10599778B2 (en) 2020-03-24
US20200034423A1 (en) 2020-01-30
US20200034427A1 (en) 2020-01-30
US20200034428A1 (en) 2020-01-30
US10606952B2 (en) 2020-03-31
US10650099B2 (en) 2020-05-12
EP3475838A1 (en) 2019-05-01
US10657205B2 (en) 2020-05-19
US20200034424A1 (en) 2020-01-30
WO2017222738A1 (en) 2017-12-28
US10614165B2 (en) 2020-04-07

Similar Documents

Publication Publication Date Title
KR102414491B1 (ko) 컴퓨터 학습 및 이해를 위한 아키텍처 및 프로세스들
Galitsky Developing enterprise chatbots
Chen et al. Gunrock: Building a human-like social bot by leveraging large scale real user data
Serban et al. A deep reinforcement learning chatbot
Carberry Techniques for plan recognition
US11645479B1 (en) Method for AI language self-improvement agent using language modeling and tree search techniques
Galitsky et al. Chatbot components and architectures
Dsouza et al. Chat with bots intelligently: A critical review & analysis
Raundale et al. Dialog prediction in institute admission: A deep learning way
US11948560B1 (en) Method for AI language self-improvement agent using language modeling and tree search techniques
US11797610B1 (en) Knowledge acquisition tool
Cingillioglu et al. Neural logic framework for digital assistants
Hassani Commonsense Knowledge for 3D Modeling: A Machine Learning Approach
Basu Natural Language Understanding and Commonsense Reasoning Using Answer Set Programming and Its Applications
Abdul-Kader An investigation on question answering for an online feedable Chatbot
Bizuayehu Amharic chatbot on Ethiopian civil code law using a deep learning approach
Bjørkås Automatic Encoding From Natural Language to First-Order Horn Clauses
Altuama Chatbot for Improving Marketing Activities Using Deep Learning
Ross Learning Language with Multimodal Models
Papaioannou Designing coherent and engaging open-domain conversational AI systems
RACHNA Towards Interactive Responses in Conversational Systems
Deriu Evaluation of Dialogue Systems
Lundell Vinkler et al. Conversational Chatbots with Memory-based Question and Answer Generation
Oltramari TMEO–Tutoring Methodology for Enrichment of Ontologies
Zhang Affect sensing and contextual affect modeling from improvisational interaction

Legal Events

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