KR20220103147A - 대조적인 시간 패턴들에 대한 가상 에이전트 대화 시스템의 대화 로그들 검색 - Google Patents

대조적인 시간 패턴들에 대한 가상 에이전트 대화 시스템의 대화 로그들 검색 Download PDF

Info

Publication number
KR20220103147A
KR20220103147A KR1020227020625A KR20227020625A KR20220103147A KR 20220103147 A KR20220103147 A KR 20220103147A KR 1020227020625 A KR1020227020625 A KR 1020227020625A KR 20227020625 A KR20227020625 A KR 20227020625A KR 20220103147 A KR20220103147 A KR 20220103147A
Authority
KR
South Korea
Prior art keywords
records
pattern
dialog
cluster
parsed
Prior art date
Application number
KR1020227020625A
Other languages
English (en)
Inventor
슈밤 아가왈
크리스찬 뮤즈
요셉 김
Original Assignee
인터내셔널 비지네스 머신즈 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 인터내셔널 비지네스 머신즈 코포레이션
Publication of KR20220103147A publication Critical patent/KR20220103147A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9032Query formulation
    • G06F16/90332Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • 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
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/289Phrasal analysis, e.g. finite state techniques or chunking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • G06F40/35Discourse or dialogue representation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)
  • Machine Translation (AREA)

Abstract

대조적인 시간 패턴들에 대한 가상 에이전트 대화 시스템의 대화 로그들 검색(Searching Conversation Logs of a Virtual Agent Dialog System for Contrastive Temporal Patterns)
자동화된 가상 대화 에이전트를 채용하는 대화 시스템의 성능을 개선하기 위한 컴퓨터 시스템, 컴퓨터 프로그램 제품, 및 머신-구현 방법에 관한 실시예들이 제공된다. 실시예들은 다이얼로그 대화 로그들의 기록들을 세트들로 모으는 단계와 상기 세트들 사이의 하나 혹은 그 이상의 대조적 시간 패턴들에 대한 기록들을 검색하는 단계를 포함한다.

Description

대조적인 시간 패턴들에 대한 가상 에이전트 대화 시스템의 대화 로그들 검색
[0001] 본 발명의 실시예들은, 예를 들어, "챗봇(chatbot)"과 같은, 자동화된 가상 대화 에이전트(an automated virtual dialog agent)를 채용하는 가상 대화 에이전트 시스템(a virtual dialog agent system), 및 관련된 컴퓨터 프로그램 제품 및 컴퓨터-구현 방법에 관한 것이다. 특정 예시적인 실시예들에서, 상기 시스템으로부터의 대화 로그 파일들(conversation log files)은 자동화된 가상 대화 에이전트의 성능을 개선하는 데 사용된다.
[0002] 챗봇은 자동화된 가상 대화 에이전트와, 일반적으로, 소비자와 같은 사용자 사이에 트랜잭션(a transaction)을 수행하기 위한 플랫폼으로서 인공 지능(AI)을 사용하는 컴퓨터 프로그램이다. 상기 트랜잭션에는 제품 판매들, 고객 서비스, 정보 획득 또는 기타 유형들의 트랜잭션들이 포함될 수 있다.
챗봇들은 종종 텍스트로(예를 들어, 온라인 또는 텍스트에 의해) 또는 음성으로(예를 들어, 전화에 의해), 대화를 통해 사용자와 상호 작용한다.
[0003] 본 발명의 실시 예들은 대화 시스템의 성능을 개선하기 위한 시스템, 컴퓨터 프로그램 제품, 및 방법을 포함하고, 특정 실시 예들에서 개선들은 시스템의 자동화된 가상 대화 에이전트의 성능에 관한 것이다.
[0004] 일 실시 예에서, 처리 유닛, 예를 들어, 프로세서와 인공 지능(AI) 플랫폼을 포함하는 컴퓨터 시스템과 사용하기 위한 시스템이 제공된다. 상기 처리 유닛은 대화 시스템의 자동화된 가상 대화 에이전트와의 상호작용들에 관한 복수의 대화 로그 파일들을 수신하기 위해 메모리에 작동 가능하게 결합되고, 상기 대화 로그 파일들 각각은 하나 혹은 그 이상의 대화 이벤트들의 기록(a trace)을 포함한다. 상기 AI 플랫폼은 상기 처리 유닛과 통신하고 기록 관리자(a trace manager) - 상기 기록 관리자는 상기 대화 로그 파일들의 기록들의 대화 이벤트들을 복수의 파싱된 이벤트들로 파싱하고 그리고 상기 기록들로부터 각각의 행동 특성들을 추출하여 각 행동 특성 값들을 상기 기록들에 할당함-; 클러스터 관리자(a cluster manager) - 상기 클러스터 관리자는 상기 기록 관리자에 작동 가능하게 결합되어, 각 결과 값들에 대한 상기 기록들의 각 행동 특성 값들의 근접성에 기초하여 상기 기록들을 복수의 클러스터들로 모으고, 상기 복수의 클러스터들은 제1 결과를 나타내는 제1 결과 값에 근접한 상기 각 행동 특성 값들을 갖는 상기 기록들의 제1 클러스터와 상기 제1 결과와 다른 제2 결과를 나타내는 제2 결과 값에 근접한 상기 각 행동 특성 값들을 갖는 상기 기록들의 제2 클러스터를 포함함-; 검색 관리자(a search manager) - 상기 검색 관리자는 상기 클러스터 관리자에 작동 가능하게 결합되어, 대조 패턴(a contrastive pattern)에 대해 상기 복수의 파싱된 이벤트들을 검색하되, 상기 복수의 파싱된 이벤트들 중 적어도 하나의 파싱된 이벤트에 시간적 조건을 수반하는 패턴 스펙을 적용하는 단계를 포함함-를 포함하며; 그리고 상기 적어도 하나의 파싱된 이벤트에 대해, 상기 검색 관리자는 상기 대조 패턴이 대조 임계값을 충족하는지를 결정하고, 상기 대조 패턴은 상기 패턴 스펙이 유효한(hold true) 제1 클러스터의 기록들의 제1 비율 및 상기 패턴 스펙이 유효하지 않는(hold not true) 제2 클러스터의 기록들의 제2 비율에 기초한다. 상기 AI 플랫폼으로부터의 출력은 상기 대화 시스템의 성능을 향상시키기 위해 적어도 상기 적어도 하나의 파싱된 이벤트에 대응하는 대화 이벤트와 관련하여 상기 자동화된 가상 대화 에이전트에 적용된다.
[0005] 다른 실시 예에서, 가상 대화 에이전트 시스템의 성능을 향상시키기 위한 컴퓨터 프로그램 제품이 제공된다. 상기 컴퓨터 프로그램 제품은 프로그램 코드가 구현된 컴퓨터 판독 가능 저장 매체를 포함한다. 상기 프로그램 코드는 프로세서에 의해 실행 가능하며, 방법을 수행하도록 구성되고, 상기 방법은: 대화 시스템의 자동화된 가상 대화 에이전트와의 상호작용들에 관한 복수의 대화 로그 파일들을 수신하는 단계 - 상기 대화 로그 파일들은 하나 혹은 그 이상의 대화 이벤트들을 포함하는 각각의 기록들을 포함함-; 상기 수신된 대화 로그 파일들을 학습 프로그램을 포함하는 인공 지능(AI) 플랫폼에 적용하는 단계를 포함하며, 상기 학습 프로그램을 포함하는 인공 지능(AI) 플랫폼은 동작들을 수행하고, 상기 동작들은: 상기 대화 로그 파일들의 기록들의 대화 이벤트들을 복수의 파싱된 이벤트들로 파싱하는 단계; 상기 기록들로부터 각각의 행동 특성들을 추출하고 각각의 행동 특성 값들을 상기 기록들에 할당하는 단계; 각각의 결과 값들에 대한 상기 기록들의 각각의 행동 특성들 값들의 근접성에 기초하여 상기 기록들을 복수의 클러스터들로 모으는 단계(cluster) - 상기 복수의 클러스터들은 제1 결과를 나타내는 제1 결과 값에 근접한 각각의 행동 특성 값들을 갖는 상기 기록들의 제1 클러스터와 상기 제1 결과와는 다른 제2 결과를 나타내는 제2 결과 값에 근접한 각각의 행동 특성 값들을 갖는 기록들의 제2 클러스터를 포함함 - ; 대조 패턴에 대해 상기 복수의 파싱된 이벤트들을 검색하는 단계 - 상기 검색하는 단계는 상기 복수의 파싱된 이벤트들 중 적어도 하나의 파싱된 이벤트에 대해 시간 조건을 수반하는 패턴 스펙을 적용하는 단계를 포함함 -; 및 상기 적어도 하나의 파싱된 이벤트에 대해, 상기 대조 패턴이 대조 임계값을 충족하는지를 결정하는 단계를 포함하고, 상기 대조 패턴은 상기 패턴 스펙이 유효한(hold true) 제1 클러스터의 기록들의 제1 비율 및 상기 패턴 스펙이 유효하지 않는(hold not true) 제2 클러스터의 기록들의 제2 비율에 기초한다. 상기 AI 플랫폼으로부터의 출력은 상기 대화 시스템의 성능을 향상시키기 위해 적어도 상기 적어도 하나의 파싱된 이벤트에 대응하는 대화 이벤트와 관련하여 상기 자동화된 가상 대화 에이전트에 적용된다.
[0006] 또 다른 실시 예에서, 대화 시스템의 성능을 개선하기 위한 컴퓨터-구현 방법이 제공된다. 상기 방법은: 대화 시스템의 자동화된 가상 대화 에이전트와의 상호작용들에 관한 복수의 대화 로그 파일들을, 컴퓨팅 디바이스의 프로세서에 의해, 수신하는 단계 - 상기 대화 로그 파일들은 하나 혹은 그 이상의 대화 이벤트들을 포함하는 각각의 기록들을 포함함-; 상기 수신된 대화 로그 파일들을 학습 프로그램을 포함하는 인공 지능(AI) 플랫폼에, 상기 프로세서에 의해, 적용하는 단계를 포함하며, 상기 적용하는 단계는: 상기 대화 로그 파일들의 기록들의 대화 이벤트들을 복수의 파싱된 이벤트들로 파싱하는 단계; 상기 기록들로부터 각각의 행동 특성들을 추출하고 각각의 행동 특성 값들을 상기 기록들에 할당하는 단계; 각각의 결과 값들에 대한 상기 기록들의 각각의 행동 특성들 값들의 근접성에 기초하여 상기 기록들을 복수의 클러스터들로 모으는 단계(clustering) - 상기 복수의 클러스터들은 제1 결과를 나타내는 제1 결과 값에 근접한 각각의 행동 특성 값들을 갖는 상기 기록들의 제1 클러스터와 상기 제1 결과와는 다른 제2 결과를 나타내는 제2 결과 값에 근접한 각각의 행동 특성 값들을 갖는 기록들의 제2 클러스터를 포함함 - ; 대조 패턴에 대해 상기 복수의 파싱된 이벤트들을 검색하는 단계 - 상기 검색하는 단계는 상기 복수의 파싱된 이벤트들 중 적어도 하나의 파싱된 이벤트에 대해 시간 조건을 수반하는 패턴 스펙을 적용하는 단계를 포함함 -; 및 상기 적어도 하나의 파싱된 이벤트에 대해, 상기 대조 패턴이 대조 임계값을 충족하는지를 결정하는 단계 - 상기 대조 패턴은 상기 패턴 스펙이 유효한(hold true) 제1 클러스터의 기록들의 제1 비율 및 상기 패턴 스펙이 유효하지 않는(hold not true) 제2 클러스터의 기록들의 제2 비율에 기초한다. 상기 방법은 또한 상기 대화 시스템의 성능을 향상시키기 위해 적어도 상기 적어도 하나의 파싱된 이벤트에 대응하는 대화 이벤트와 관련하여 상기 자동화된 가상 대화 에이전트를 개량하는 단계(refining)를 포함한다.
[0007] 이들 및 다른 특징들 및 이점들은 첨부 도면들과 함께 취해진 현재 예시적인 실시예(들)의 다음의 상세한 설명으로부터 명백해질 것이다.
[0008] 여기에서 참조된 도면들은 본 명세서의 일부를 형성하고 참조로서 본 명세서에 통합된다. 도면들에 도시된 특징들은 달리 명시적으로 표시되지 않는 한, 모든 실시예들이 아니라, 일부 실시예들만을 예시함을 의미한다.
[0009] 도 1은 네트워크 환경에서 인공지능 플랫폼 컴퓨팅 시스템을 나타내는 시스템도이다.
[0010] 도 2는, 도 1에 도시되고 설명된, 인공 지능 플랫폼 도구들과 그들의 연관된 애플리케이션 인터페이스들을 예시하는 블록도를 도시한다.
[0011] 도 3은 대화 로그들의 기록들을 모으는 방법의 실시예를 예시하는 플로차트를 도시한다.
[0012] 도 4는 모아진 기록들을 검색하는 방법의 실시예를 예시하는 플로차트를 도시한다.
[0013] 도 5는 대조 임계값이 충족되었는지를 결정하는 방법의 실시예를 예시하는 플로차트를 도시한다.
[0014] 도 6은 클라우드 기반 지원 시스템의 컴퓨터 시스템/서버의 예를 도시하는 블록도를 도시하고, 도 1-5와 관련하여 위에서 설명한 시스템 및 프로세스를 구현한다.
[0015] 도 7은 클라우드 컴퓨터 환경을 나타내는 블록도이다.
[0016] 도 8은 클라우드 컴퓨팅 환경에 의해 제공되는 기능적 추상화 모델 층들의 세트를 예시하는 블록도를 도시한다.
[0017] 본 발명의 실시 예들의 컴포넌트들은 본 명세서의 도면들에 일반적으로 설명되고 예시된 바와 같이, 매우 다양한 다른 환경 설정들로 배열되고 설계될 수 있다는 것이 쉽게 이해될 것이다, 따라서, 본 발명의 실시 예들의 장치, 시스템, 방법, 및 컴퓨터 프로그램 제품의 실시예들에 대한 다음의 상세한 설명은, 도면들에 제공된 바와 같이, 청구된 실시 예들의 범위를 제한하려는 것이 아니라, 선택된 실시예들을 대표할 뿐이다.
[0018] 본 명세서 전반에 걸쳐 "선택된 실시예", "하나의 실시예" 또는 "일 실시예"에 대한 참조는 상기 실시예와 관련하여 설명된 특정 특징, 구조, 또는 특성이 적어도 하나의 실시예에 포함된다는 것을 의미한다. 따라서, 본 명세서 전반에 걸쳐 다양한 위치들에서 "선택된 실시예", "하나의 실시예에서," 또는 "일 실시예에서"라는 문구들이 사용된다고 해서 반드시 동일한 실시예를 지칭하는 것은 아니다.
[0019] 예시된 실시 예들은 도면들을 참조하여 가장 잘 이해될 것이며, 여기서 유사한 부분들은 전체에 걸쳐 동일한 번호들로 지정된다. 다음 설명은 단지 예로서 의도된 것이며, 여기에 청구된 실시예들과 일치하는 특정 디바이스들의 선택된 실시예들, 시스템들, 및 프로세스들을 간단히 설명한다.
[0020] 인공지능 컴퓨터 시스템들 분야에서는, 자연어 시스템들(IBM Watson?? 인공 지능 컴퓨터 시스템 또는 다른 자연어 시스템들과 같은)은 상기 시스템에 의해서 습득된 지식에 기초하여 자연어를 처리한다. 자연어를 처리하기 위해, 상기 시스템은 데이터베이스 또는 지식 모음으로부터 제공된 데이터로 훈련될 수 있지만, 최종 결과는 다양한 이유들로 부정확(incorrect)하거나 정확성이 떨어질(inaccurate) 수 있다.
[0021] 인공 지능(AI)의 서브세트인, 머신 러닝(ML)은, 알고리즘들을 사용하여 데이터로부터 학습하고 이 데이터에 기초하여 예측들을 생성한다. AI는 머신들이 정보를 바탕으로, 주어진 주제에서 성공의 기회를 최대화하는, 결정들을 내릴 수 있을 때의 지능을 말한다. 보다 구체적으로는, AI는 데이터 세트로부터 학습하여 문제들을 해결하고 관련된 추천들을 제공할 수 있다. 인지 컴퓨팅(Cognitive computing)은 컴퓨터 과학과 인지 과학의 혼합이다. 인지 컴퓨팅은 최소 데이터, 시각적 인식, 및 자연어 처리를 사용하여 문제들을 해결하고 인간 프로세스들을 최적화하는 자가 학습 알고리즘들(self-teaching algorithms)을 이용한다.
[0022] AI 및 연관된 추론(associated reasoning의 핵심에는 유사성 개념(the concept of similarity)이 있다. 자연어와 객체들을 이해하는 프로세스는 도전적일 수 있는 관계적 관점에서 추론(reasoning from a relational perspective)이 필요하다. 정적 구조들 및 동적 구조들을 포함하는, 구조들은, 주어진 확정 입력(a given determinate input)에 대해 결정된 출력 또는 조치(action)를 지시한다(dictate). 보다 구체적으로, 결정된 출력 또는 조치는 구조 내에서 명시적이거나 고유한 관계(an express or inherent relationship)에 기초한다. 이 배열(arrangement)은 특정 상황들과 조건들에 만족스러울 수 있다. 하지만, 동적 구조들은 본질적으로 변경될 수 있으며, 그에 따라 출력 또는 조치가 변경될 수 있음을 이해해야 한다. 객체들을 효율적으로 식별하고, 자연어를 이해하며, 식별 및 이해에 대한 내용 반응(content response)을 처리하고, 구조들의 변경을 처리하기 위한 기존 솔루션들은 실용적인 수준에서 매우 어렵다.
[0023] 챗봇은 미리-계산된 문구들과 음성 또는 텍스트-기반 신호들을 사용하여 대화형 인간 대화(interactive human conversation)를 시뮬레이션하는 인공 지능(AI) 프로그램이다. 챗봇들은 고객 서비스 지원을 위한 전자 플랫폼에서 점점 더 많이 사용된다. 일 실시예에서, 챗봇은 지능형 가상 에이전트로(an intelligent virtual agent)서 기능할 수 있다. 각 챗봇 경험은 사용자 조치들 및 대화 시스템 조치들로 구성된 통신들 세트로 구성되며, 상기 경험은 차별적인 행동 패턴(a discriminative behavior pattern)을 가진다. 미래의 챗봇 경험을 개선하기 위한 변경들을 보증할 수 있는 챗봇의 엘리멘트들을 확인하기 위해 챗봇 대화들이 평가되고 진단될 수 있음을 이해해야 한다. 그러한 평가들은 행동 패턴들을 식별한다. 이들 패턴들을 연구하고, 보다 구체적으로 패턴들의 다양한 특성들을 식별함으로써, 챗봇 메트릭스 및 미래 챗봇 경험들을 개선하기 위해 챗봇 프로그램이 개선되거나 수정될 수 있다.
[0024] 챗봇 평가의 한 예는 기본 대화를 검사(examination)하여 행동안에서 대화들의 세트들이 어떻게 달라지는지를 식별하는 것이다. 대화는 일련의 통신들로 구성되고, 이 통신들에서 대화 기록, 예를 들어 기록(trace)이 대화의 특성(a characterization of the dialog)이다. 일 실시예에서, 대화들은 그들의 기록에 기초하여 클러스터 된다(clustered). 상기 검사는 대응하는 설명을 생성하는데, 한 세트의 대화들에는 수반되지만, 다른 세트의 대화들에는 수반되지 않는, 로직 스펙들(logical specifications)을 발견함으로써 생성한다. 일 실시예에서, 상기 검사는 수정되거나 개선될 수 있는 챗봇 플랫폼의 이상들(anomalies)을 검출할 수 있다. 따라서, 대응하는 도면들과 함께 여기에 상세하게 설명된 시스템, 컴퓨터 프로그램 제품, 및 방법은 챗봇 플랫폼의 실패를 완화하고 대화 경험을 개선하기 위해 다수의 대화들 사이에서 차이점들을 설명하고, 대화 프로그램 코드를 개량(refining) 하는 데 중점을 둔다.
[0025] 도 1을 참조하면, 인공 지능(AI) 플랫폼 및 대응하는 시스템(100)의 개략도가 도시되어 있다. 도시된 바와 같이, 서버(110)는 네트워크 연결, 예를 들어, 컴퓨터 네트워크(105)을 통해 복수의 컴퓨팅 디바이스들(180), (182), (184), (186), (188), 및 (190)과 통신하도록 제공된다. 서버(110)는 버스를 통해 메모리와 통신하는 처리 유닛, 예를 들어, 프로세서로 구성된다. 서버(110)에는 대화 시스템(160)에 작동 가능하게 결합된 AI 플랫폼(150)이 도시되고, 여기에는 또한 가상 대화 에이전트(162)가, 챗봇으로서 함께 도시되며, 지식 베이스(170)도 도시된다. 컴퓨터 스크린 또는 스마트폰과 같은, 시각적 디스플레이(130)는, 사용자가 가상 에이전트, 예를 들어, 챗봇(132)의 표현과 디스플레이(130) 상에서 인터페이스 할 수 있도록 제공된다. 시각적 디스플레이가 도 1에 도시되어 있지만, 디스플레이(130)는 오디오 인터페이스(예를 들어, 마이크 및 스피커), 오디오-비디오 인터페이스 등과 같은 다른 인터페이스(들)로 대체되거나 보완될 수 있다는 것을 이해해야 한다.
[0026] AI 플랫폼(150)은 하나 혹은 그 이상의 컴퓨팅 디바이스들(180), (182), (184), (186), (188), 및 (190)로부터 가상 대화 에이전트(162)와의 상호작용을 지원하기 위해 네트워크(105)에 작동 가능하게 연결된다. 보다 구체적으로, 컴퓨팅 디바이스들 (180), (182), (184), (186) 및 (188)은 하나 혹은 그 이상의 유선 및/또는 무선 데이터 통신 링크들을 통해 서로 및 다른 디바이스들 또는 컴포넌트들과 통신하며, 각각의 통신 링크는 와이어들, 라우터들, 스위치들, 송신기들, 수신기들 등 중 하나 혹은 그 이상을 포함할 수 있다. 이 네트워크 배열에서, 서버(110)와 네트워크 연결(105)은 통신 검출, 인식, 및 해결을 가능하게 한다. 서버(110)의 다른 실시예들은 여기에 도시된 것 이외의 컴포넌트들, 시스템들, 서브-시스템들 및/또는 디바이스들과 함께 사용될 수 있다.
[0027] AI 플랫폼(150)은, 다양한 소스들로부터 입력(102)을 수신하도록 구성된, 대화 시스템(160)에 작동 가능하게 결합된 것으로 여기에서 도시된다. 예를 들어, 대화 시스템(160)은 네트워크(105)를 통해 입력을 수신하고, 출력 또는 응답 콘텐츠를 생성하기 위해, 여기에서 지식 베이스 또는 정보 코퍼스라고도 하는 데이터 소스(170)를 이용할 수 있다.
[0028] 도시된 바와 같이, 데이터 소스(170)는 대화 로그 파일들(레코드들이라고도 함)의 라이브러리(172A)로 구성되며, 각 로그 파일(log file)은 가상 대화 에이전트와의 상호작용들(interactions)을 기록한다. 일 예시적인 실시예에 따르면, 각각의 대화 로그, 예를 들어, 로그 파일은, 사용자와 가상 에이전트 사이의 전자 플랫폼에서의 대화를 포함하는, 챗봇으로부터 제공되는 (역사적) 기록(trace)의 모음(recording)이다. 상기 기록은 상태 변수들(state variables)이라고 하는, 하나 혹은 그 이상의 대화 이벤트들(dialog events)을 포함한다. 예를 들어, 휴가 예약을 위한 챗봇 플랫폼의 맥락에서, 대화 이벤트들 또는 상태 변수들은 출발 날짜 및 시간과 같은 필드를 포함할 수 있고, 상태 변수 실체화(the state variable instantiation)는 출발 날짜 및 시간에 대해 사용자가 입력한 정보 또는 데이터일 수 있다. 그러한 챗봇의 다른 상태 변수들에는 귀환 날짜 및 시간, 목적지 위치, 차량 대여, 호텔 예약, 등이 포함될 수 있다.
[0029] 여기에서 도시된 바와 같이, 제1 라이브러리A(172A)는 로그 파일0(174A,0) 및 로그 파일1(174A,1)을 포함하는 복수의 로그 파일들을 포함한다. 두 개의 로그 파일들만 표시된다고 해서, 파일들 수가 제한되는 것으로 간주해서는 안 된다. 실제로, 상기 라이브러리A(172A)는 수백 또는 수천 개의 로그 파일들을 포함할 수 있다. 로그 파일0(174A,0) 및 로그 파일1(174A,1)은, 대응하는 기록들과 함께 도시되는데, 여기서는 기록0(176A,0) 및 기록1(176A,1)로, 각각, 도시된다. 유사하게, 각 기록(each trace)은 동작 특성 값(a behavior characteristic value: BCV)과 하나 혹은 그 이상의 대화 이벤트들(상태 변수 실체화들 포함)을 포함한다. 예를 들어, 기록0(176A,0) 및 기록1(176A,1)은 대응하는 동작 특성 값들 BVC0(176A,0,B) 및 BCV1(176A,0,B)과 함께, 각각, 도시된다. 도 1에서, 기록0(176A,0)은 대화 이벤트(들)0(178A,0)과 함께 도시되고, 기록1(176A,1)은, 대화 이벤트(들)1(178A,1)과 함께 도시된다. 자동화된 가상 대화 에이전트(162)는 상태 변수들 각각을 사용자에게 쿼리로 제시(pose)할 수 있으며, 사용자는 상태 변수 실체화의 형태로 응답을 제공한다.
[0030] 도 1에 도시된 바와 같이, 데이터 소스(170)는 제2 라이브러리B(172B) 및 제3 라이브러리C(172C)로 더 구성된다. 데이터 소스(170)가 3개의 라이브러리들(172A, 172B 및 172C)과 함께 도시되었지만, 라이브러리들은 임의의 수의 라이브러리들로 결합되거나 분할될 수 있으며, 추가 라이브러리들이 액세스될 수 있음을 이해해야 한다. 예를 들어, 라이브러리B(172B) 및 라이브러리C(172C)는 단일 라이브러리로 결합될 수 있다. 대안적으로, 라이브러리B(172B) 및 라이브러리C(172C) 중 하나 또는 둘 모두는 복수의 라이브러리들을 포함할 수 있다. 라이브러리B(172B)는 복수의 파일들을 포함할 수 있고, 복수의 파일들 각각은 패턴 스펙(a pattern specification)을 포함할 수 있으며, 선택적으로 패턴 스펙과 연관된 가중치(a weighted value: WV)를 포함할 수 있다. 도시된 바와 같이, 라이브러리B(172B)는 연관된 가중치 WVB,0(176B,0)를 갖는 패턴 스펙0(174B,0), 연관된 가중치 WVB,1(176B,1)를 갖는 패턴 스펙1(174B,1), 및 연관된 가중치 WVB,N(176B,N)을 갖는 패턴 스펙N(174B,N)을 포함한다. 라이브러리C(172C)는 복수의 파일들을 포함하고, 이들은 변수 스펙들(variable specifications)을 포함하며, 선택적으로 변수 스펙들과 연관된 가중치들(WV)을 포함한다. 도시된 바와 같이, 라이브러리C(172C)는 연관된 가중치 WVC,0(176C,0)을 갖는 변수 스펙0(174C,0), 연관된 가중치 WVC,1(176C,1)을 갖는 변수 스펙1(174C,1), 및 연관된 가중치 WVC,N(176C,N)을 갖는 변수 스펙N(174C,N)을 포함한다. 3개의 파일들로 도시되었지만, 라이브러리B(172B) 및 라이브러리C(172C) 각각은 더 적거나 더 많은 파일들을 포함할 수 있는데, 예를 들어, 수십, 수백 또는 수천 개의 파일들을 포함할 수 있다.
[0031] 라이브러리B(172B)의 파일들의 패턴 스펙들(예를 들어, 패턴 스펙0(174B,0), 패턴 스펙1(174B,1), 패턴 스펙N(174B,N))은 시간 조건(a temporal condition)을 수반할 수 있으며, 예를 들어 시간 로직(temporal logic)을 채용할 수 있다. 예시적인 실시예들에서, 선형 시간 로직(LTL)은 라이브러리B(172B)의 하나 또는 그 이상의 패턴 스펙들(174B,0, 174B,1, 174B,N), 각각은 아니지만, 하나 혹은 그 이상에 대해 채용된다. 예를 들어, 상기 LTL은 대화 기록(the conversation trace)을 통해 항상 유지되는 조건, 다른 조건이 뒤따르거나 앞에 오는 조건, 또는 LTL의 다른 예들일 수 있다. 라이브러리C(172C) 파일들의 변수 스펙들(174C,0, 174C,1, … 174C,N)은 일반적으로 챗봇과 같은 가상 에이전트와의 상호 작용 또는 트랜잭션과 관련된 정보 필드들(또는 상태 변수들)을 포함할 수 있다. 라이브러리B(172B) 및 라이브러리C(172C) 파일들의 가중치들(WVs)은 선택 사항이다. 예시적인 실시예들에서, 연관된 패턴 스펙 또는 변수 스펙의 인지된 중요성에 따라 다양한 가중치 값들이 다양한 패턴 스펙들 및 변수 스펙들에 할당된다. 예시적인 실시예에서, 상기 가중치들은 0 내지 1의 범위에 있고, 그 사이의 모든 10분의 1 및/또는 100분의 1을 포함할 수 있다.
[0032] 네트워크(105)와 통신하는 다양한 컴퓨팅 디바이스들(180), (182), (184), (186), (188) 및 (190)은 대화 시스템(160)에 대한 액세스 포인트들을 포함할 수 있다. 네트워크(105)는 다양한 실시 예들에서 로컬 네트워크 연결들 및 원격 연결들을 포함할 수 있어, AI 플랫폼(150)은, 예를 들어, 인터넷과 같은 로컬 및 글로벌을 포함하는, 모든 크기의 환경들에서 동작할 수 있다. 또한, AI 플랫폼(150)은 문서들, 네트워크 액세스 가능한 소스들 및/또는 구조화된 데이터 소스들에서 추출되거나 표현된 다양한 지식을 이용할 수 있도록 하는 백-엔드 시스템(a back-end system)으로서 역할을 한다. 이러한 방식으로, 일부 프로세스들은 AI 플랫폼(150)을 구성하는데, AI 플랫폼(150)이 또한 요청들을 수신하고 그에 따라 응답하기 위한 입력 인터페이스들도 포함할 수 있게 구성한다.
[0033] 도시된 바와 같이, 콘텐츠는 지식 베이스(170)를 통해 AI 플랫폼(150)에 작동 가능하게 결합된 하나 혹은 그 이상의 로그 파일들("레코드들"과 교환 가능하게 사용됨)의 형태일 수 있다. 콘텐츠 사용자들은 네트워크(105)에 대한 네트워크 연결 또는 인터넷 연결을 통해 AI 플랫폼(150) 및 작동 가능하게 결합된 대화 시스템(160)에 액세스하여, AI 플랫폼(150)에 자연어 입력을 제출할 수 가 있고, AI 플랫폼(150)은 입력과 관련된 출력 응답을 효과적으로 결정할 수 있는데, AI 플랫폼(150)을 구성하는 지식 베이스(170) 및 도구들을 활용하여 그렇게 할 수 있다.
[0034] AI 플랫폼(150)이 여기에 도시되는데, 대화 시스템(160) 및 대응하는 가상 에이전트(예: 챗봇)(162)를 지원하기 위한 여러 도구들과 함께 도시되며, 더 구체적으로, 대화 시스템(160) 및 가상 에이전트(162) 경험의 성능을 개선하기 위한 도구들과 함께 도시된다. AI 플랫폼(150)은 가상 에이전트(162)와 인터페이스하고 성능 향상을 지원하기 위해 복수의 도구들을 채용한다. 그러한 도구들에는 기록 관리자(a trace manager)(152), 클러스터 관리자(a cluster manager)(154), 샘플링 관리자(a sampling manager)(156), 검색 관리자(a search manager)(158) 및 출력 관리자(an output manager)(164)가 포함된다.
[0035] 기록 관리자(152)는 대화 로그 파일들의 기록들의 대화 이벤트들을 상태 변수 실체화들(state variable instantiations)을 포함하는 복수의 파싱된(parsed) 이벤트로 파싱한다(parses). 기록 관리자(152)는 기록들로부터 행동 특성들(behavioral characteristics)을 더 추출하고 각각의 행동 특성 값을 기록들 각각에 할당한다. 여기에 도시된 바와 같이, 기록0(176A,0)은 대응하는 행동 특성 값(BCV0)(176A,0,B)과 함께 도시되고, 기록1(176A,1)은 대응하는 행동 특성 값(BCV1)(176A,1,B)와 함께 도시된다.
[0036] 클러스터 관리자(154)는 기록들(traces)의 각 결과 값들(respective outcome values)에 대한 기록들의 각 행동 특성들 값들의 근접성에 기초하여 기록들을 복수의 클러스터들(또는 그룹들)로 모은다(cluster). 상기 복수의 클러스터들은 제1 결과를 나타내는 제1 결과 값과 연관된 제1 클러스터 및 제1 결과와는 상이한(선택적으로 반대인) 제2 결과를 나타내는 제2 결과 값과 연관된 제2 클러스터를 포함한다. 제1 및 제2 결과들은, 각각, 예를 들어, 상호작용의 성공적인 완료 및 상호작용의 성공하지 못한 완료일 수 있다. 제1 클러스터에 모아진 기록들은 제1 결과 값에 근접한(예: 동일한) 각 행동 특성 값들을 갖는 반면, 제2 클러스터에 모아진 기록들은 제2 결과 값에 근접한(예: 동일한) 각 행동 특성 값을 갖는다. 예를 들어, 휴가 예약을 위해 챗봇이 사용된 경우에, 제1 결과 값은 휴가가 성공적으로 예약된 결과(행동 특성 값이 0임)를 나타내는 반면, 제2 결과 값은 휴가가 성공적으로 예약되지 않은 결과(행동 특성 값이 1임)를 나타낼 수 있다. 예시적인 실시예에서, 제1 및 제2 결과 값들은 0 및 1이다. 위의 예에는 두 가지 결과들이 포함되어 있지만, 실시예들은 3개 혹은 그 이상의 결과들, 예를 들어, 목적지 숙박 시설들(예를 들어, 리조트)이 성공적으로 예약되었지만 여행 예약들(예를 들어, 항공편들)이 예약되지 않은 제3 결과를 포함할 수 있음을 이해해야 한다.
[0037] 일 실시예에 따르면, 샘플링 관리자(156)는 추가 처리를 위해 제1 클러스터의 기록들 서브세트 및 제2 클러스터의 기록들 서브세트를 선택한다. 샘플링 관리자(156)는 많은 수의 대화 로그 파일의 기록들이 모여 있는 경우 특히 유용하다. 샘플링 관리자(156)는 랜덤 샘플링을 포함하여, 모든 샘플링 기술들을 사용하여 샘플링 할 수 있다. 샘플링 관리자들은 당업계에 알려져 있으므로 더 자세히 논의하지는 않는다.
[0038] 검색 관리자(158)는 샘플링 된 기록들의 복수의 파싱된 이벤트들(또는 상태 변수들)을 탐색한다(explore). 예시적인 실시예에서, 검색 관리자(158)는 선호 모듈(a preference module)(158A) 및 대조 검사기(a contrast checker)(158B)를 포함한다. 선호 모듈(158A)은 라이브러리B(172B)를 액세스하여 패턴 스펙 및 연관된 가중치(예를 들어, 연관된 WVB,0(176B,0)를 갖는 패턴 스펙0(174B,0))을 선택하고 라이브러리C(172C)를 액세스하여 변수 스펙 및 연관된 가중치(예를 들어, 연관된 WVC,0(176C,0)를 갖는 변수 스펙0(174C,0))를 선택한다. 검색 관리자(158)의 선호 모듈(158A)은 시간 조건을 수반하는 선택된 패턴 스펙 및 선택된 변수 스펙을 제1 클러스터의 샘플 기록들의 파싱된 이벤트들에 적용하는데, 이는 선택된 변수 스펙에 대응하는 파싱된 이벤트(들)가 선택된 패턴 스펙의 시간 조건을 충족하는 제1 클러스터의 샘플 기록들의 제1 비율을 결정하기 위해서이다. 검색 관리자(158)의 선호 모듈(158A)은 동일 시간 조건을 수반하는 동일 선택된 패턴 스펙 및 동일 선택된 변수 스펙을 제2 클러스터의 샘플 기록들의 파싱된 이벤트들에 적용하는데, 이는 상기 선택된 변수 스펙에 대응하는 상기 파싱된 이벤트(들)가 상기 선택된 패턴 스펙의 시간 조건을 충족하는 제2 클러스터의 샘플 기록들의 제2 비율을 결정하기 위해서이다.
[0039] 검색 관리자(158)의 대조 검사기(158B)는 제1 클러스터의 기록들의 제1 비율과 제2 클러스터의 기록의 제2 비율에 기초하여 대조 임계값(일반적으로 0과 1 사이의 값이고, 프로그래머에 의해 선택적으로 미리 결정되며, 0과 1사이의 임의의 10분의 1 또는 100분의 1을 포함함)이 충족되는 지를 결정한다. 대조 임계값의 충족에 관한 결정은, 예시적인 실시예에 따라, 프로덕트(a product)를 계산하기 위해 제1 비율과 제2 비율을 곱하는 단계(multiplying)와, 상기 계산된 프로덕트가 대조 임계값과 같거나 또는 그 이상인지를 평가하는 단계(assessing)를 포함한다. 만일 하나 혹은 그 이상의 가중치들이 고려되어야 한다면, 상기 대조 임계값의 충족에 관한 결정은, 다른 예시적인 실시예에 따라, 가중된 프로덕트를 계산하기 위해 제1 비율, 제2 비율, 및 가중치(들)를 함께 곱하는 단계, 및 상기 계산된 가중된 프로덕트가 상기 대조 임계값과 같거나 또는 그 이상인지를 평가하는 단계를 포함한다.
[0040] 일 예시적인 실시예에 따라 출력 관리자(164)는 시각적 디스플레이(130) 상에서 판독(readout)을 위해 출력(164A)을 제공한다. 다른 실시예에 따르면, 출력 관리자(164)는, 검색 관리자(158)에 의한 검색에 사용되는 변수 스펙과 관련하여, 대화 시스템(160)을 자동으로 개량하는데(refine), 일 예시적인 실시예에서, 대화 시스템(160)의 자동화된 가상 대화 에이전트(162)를 개량한다. 일 실시예에 따라, 대화 시스템(160)의 개량은 검색 관리자(158)에 의한 검색에 사용되는 변수 스펙과 관련하여 대화 내에 체크포인트를 선택적으로 부과하는 단계(imposing)를 포함한다. 다른 실시예에 따라, 대화 시스템(160)의 개량은 가상 에이전트(162)에 의해 제기된 쿼리들을 변경하는 단계(changing)를 포함한다. 상기 개량은 출력 관리자(164)에 의해 자동으로 구현될 수 있거나 프로그래머에 의해 구현될 수 있다.
[0041] 로그 파일(레코드)이 수신되면, 기록 관리자(152)는 다양한 프로토콜들을 사용하여 수신된 로그 파일의 대응 기록의 대화 이벤트들을 파싱할 수 있으며, 이에는 단어들, 구문들, 기호들, 및 심볼들과 같은, 기표들(signifiers)과, 이들이 의미하는 것, 그 외연들, 또는 내포(their denotations, or connotation) 사이의 관계에 기초하여 기록 내의 콘텐츠를 식별하는 것이 포함된다. 기록 관리자(152)는 여기서 인공 지능 플랫폼(150) 내에 내장된 도구로서 도시되고, 일 실시예에 따라, 자연어 처리 프로토콜들을 이용한다.
[0042] 수신된 로그 파일들의 기록들(traces)은 IBM Watson® 서버(110), 및 대응하는 인공지능 플랫폼(150)에 의해서 처리될 수 있다. 여기에 도시된 바와 같이, 기록 관리자(152)는 다양한 추론 알고리즘들을 사용하여 기록(trace)의 언어에 관한 분석을 수행한다. 수백 또는 수천 개의 추론 알고리즘들이 적용될 수 있으며, 각각은, 다양한 분석들을 수행하는데, 예를 들어, 비교들을 수행한다. 예를 들어, 일부 추론 알고리즘들은 수신된 기록의 언어 내에서 그리고 데이터 코퍼스(corpus)의 발견된 부분들 내에서 용어들 및 동의어들의 매칭(matching)을 찾을 수 있다. 일 실시예에서, 기록 관리자(152)는 전자 통신을 단어 벡터 표현들로 처리하여 통신 내의 특징들을 식별하고 추출할 수 있다. 단어 벡터 표현들의 사용을 통해서, 또는 전자 레코드들을 처리하기 위한 대체 플랫폼의 사용을 통해서 던지, 기록 관리자(152)는 파싱된 이벤트들 및 기록의 행동 특성을 식별하기 위한 노력으로 전자 레코드를 처리한다. 일 실시예에서, 상기 플랫폼은 전자 레코드들에서 명사들, 동사들, 형용사들, 구두법, 구두점들, 등과 같은 문법적 컴포넌트들을 식별한다. 유사하게, 일 실시예에서, 하나 혹은 그 이상의 추론 알고리즘들은 전자 레코드들의 언어에서 시간적 또는 공간적 특징들을 살펴 볼 수 있다.
[0043] 일부 예시적인 실시예들에서, 서버(110)는, 이후에 설명되는 예시적인 실시예들의 메커니즘들로 보강된, 뉴욕주 아몽크의 인터내셔널 비즈니스 머신즈 코포레이션으로부터 구입 가능한 IBM Watson® 시스템일 수 있다.
[0044] 샘플링 매니저(156)는 형성된 클러스터들로부터 기록들에 관하여 샘플링을 실시한다. 샘플링은 무작위일 수 있거나, 당업계에 공지된 것을 포함하는, 모든 샘플링 기술을 포함할 수 있다. 일 실시예에서, 샘플 기록들의 제1 선택 수량은 제1 클러스터에 할당되고 샘플 기록들의 제2 선택 수량은 제2 클러스터, 클러스터1에 할당된다.
[0045] 검색 관리자(158)는 클러스터 형성 및 평가(evaluation)에서 활용된 정보가 대조 임계값을 충족하는지를 평가한다(assess). 대조 검사기(158B)는 제1 및 제2 클러스터의 비율들을 서로 곱하여 프로덕트 값(a product value)을 제공하도록 작동한다. 선택적으로, 대조 검사기(158B)는 프로덕트 값에 하나 혹은 그 이상의 가중 요소들(weighting factors)을 곱하여 가중된 프로덕트를 결정한다. 예시적인 실시예들에 따라, 상기 가중 요소들 각각은 0 내지 1의 범위에 있고, 이들 사이에 모든 1/10 또는 1/100을 포함한다. 일 실시예에 따라, 가중 요소는, 예를 들어, 패턴 스펙에 할당된 중요도에 기초한 패턴 스펙 가중 요소이다. 다른 실시예에 따라, 상기 가중 요소는, 예를 들어, 변수 스펙에 할당된 중요도에 기초한 변수 스펙 가중 요소다. 예를 들어, 출발 날짜들의 충족과 관련된 변수 스펙은 프로그래머에게 매우 중요할 수 있으므로, 따라서 1에 가까운 가중치가 할당되고, 한편 차량 렌탈 만족도와 관련된 변수 스펙은 중요도가 낮을 수 있으므로, 따라서 0에 가까운 가중치가 할당된다. 일 실시예에서, 패턴 스펙 및/또는 변수 스펙에 대한 가중치 적용은 생략되거나 1로 설정될 수 있다. 유사하게, 일 실시예에서, 가중치의 값은 구성 가능할 수 있다.
[0046] 대조 임계값이 할당된다. 선택적으로, 대조 검사기(158B)는 대조 임계값을 할당하지만 프로그래머에 의해 할당될 수 있다. 예시적인 실시예들에서, 대조 임계값은 0 내지 1 범위의 값이고, 0 내지 1 범위 내의 임의의 증분(예를 들어, 10분의 1, 100분의 1 등)을 포함할 수 있다. 검색 관리자(158)의 대조 검사기(158B)는 가중된 프로덕트가, 예를 들어, 대조 임계값과 같거나 큰지를 결정한다.
[0047] 만일 가중된 프로덕트가 대조 임계값을 충족한다면, 출력 관리자(164)는 대화 시스템의 성능을 개선하기 위해 파싱된 이벤트(들)와 연관해서 가상 에이전트에 대한 개량에 대응하는 출력을 생성한다. 반면에, 만일 가중된 프로덕트가 대조 임계값을 충족하지 않는다면, AI 플랫폼(150) 또는 프로그래머는, 계속하기 위해 다양한 단계들을 취할 수 있는데, 이들은, 예를 들어, 새로운 대조 임계값을 할당하고 단계(412) 및 (432)로 돌아가는 단계; 다른 패턴 스펙 및/또는 변수 스펙을 선택하는 단계; 및 프로세스를 종료하는 단계를 포함할 수 있다.
[0048] 이하에서 AI 도구들이라 하는 기록 관리자(152), 클러스터 관리자(154), 샘플링 관리자(156), 검색 관리자(158) 및 출력 관리자(164)는 서버(110)의 인공 지능 플랫폼(150)에 구현되거나 또는 서버(110)의 인공 지능 플랫폼(150) 내에 통합되는 것으로 도시된다. AI 도구들은 네트워크(105)를 통해 서버(110)에 연결된 별도의 컴퓨팅 시스템(예를 들어, 190)에서 구현될 수 있다. 구현된 모든 곳에서, AI 도구들은 대화 로그 레코드들을 평가하고(evaluate), 대화 로그 레코드들의 기록들(traces)의 대화 이벤트들을 파싱된 이벤트들로 파싱하며(parse), 기록들로부터 행동 특성들을 추출하여(extract) 그 행동 특성들에 값들을 할당하고(assign), 기록들을 모으며(cluster), 모아진 기록들을 샘플링하고(sample), 그 샘플된 기록들에 대해 대조 임계값이 충족되는지를 결정하는 기능을 수행한다.
[0049] 선택된 예시적인 실시예들에서, 기록 관리자(152)는 수신된 대화 로그 레코드들의 기록들의 행동 특성들을 식별하기 위해 NL(자연어) 처리를 적용하도록 구성될 수 있다. 예를 들어, 기록 관리자(152)는 문장 구조 분석을 수행할 수 있으며, 상기 분석은 주제 문장(들)의 파싱(parse) 및 문법 용어들 및 품사들을 파악하기 위한 파싱을 수반한다. 일 실시예에서, 기록 관리자(152)는 파싱을 수행하기 위해 SGL(Slot Grammar Logic) 파서를 사용할 수 있다. 기록 관리자(152)는 또한 검출된 콘텐츠를 알려진 콘텐츠에 매칭하여 행동 특성에 대한 값을 결정하고 할당하기 위해 하나 혹은 그 이상의 학습 방법들을 적용하도록 구성될 수 있다.
[0050] 인공 지능 플랫폼(150)을 이용할 수 있는 정보 처리 시스템들의 유형들은 핸드헬드 컴퓨터/모바일 전화(180)와 같은 소형 핸드헬드 디바이스들에서, 메인프레임 컴퓨터(182)와 같은, 대형 메인프레임 시스템들에 이르기까지 다양하다. 핸드헬드 컴퓨터(180)의 예들은 PDA(개인정보 단말기), MP4 플레이어와 같은, 개인 엔터테인먼트 디바이스들, 휴대용 텔레비전들 및 컴팩트 디스크 플레이어들을 포함한다. 정보 처리 시스템의들 다른 예들은 펜, 또는 태블릿 컴퓨터(184), 랩톱, 또는 노트북 컴퓨터(186), 개인용 컴퓨터 시스템(188), 및 서버(190)를 포함한다. 도시된 바와 같이, 다양한 정보 처리 시스템들은 컴퓨터 네트워크(105)를 사용하여 함께 네트워크화될 수 있다. 다양한 정보 처리 시스템을 상호 연결하는 데 사용할 수 있는 컴퓨터 네트워크(105)의 유형들에는 근거리 통신망들(LANs), 무선 근거리 통신망들(WLANs), 인터넷, PSTN(공중 교환 전화망), 기타 무선 네트워크들, 및 정보 처리 시스템들을 상호 연결하는 데 사용할 수 있는 기타 네트워크 토폴로지가 있다. 많은 정보 처리 시스템들은, 하드 드라이브들 및/또는 비휘발성 메모리와 같은, 비휘발성 데이터 저장소들을 포함한다. 일부 정보 처리 시스템들은 별도의 비휘발성 데이터 저장소들(예를 들어, 서버(190)는 비휘발성 데이터 저장소(190A)를 이용하고, 메인프레임 컴퓨터(182)는 비휘발성 데이터 저장소(182A)를 이용한다)을 사용할 수 있다. 비휘발성 데이터 저장소(182A)는 다양한 정보 처리 시스템들의 외부에 있는 컴포넌트일 수 있거나 정보 처리 시스템들 중 하나의 내부에 있을 수 있다.
[0051] 인공 지능 플랫폼(150)을 지원하기 위해 사용되는 정보 처리 시스템은 많은 형태들을 취할 수 있으며, 그 중 일부가 도 1에 도시되어 있다. 예를 들어, 정보 처리 시스템은 데스크탑, 서버, 휴대용, 랩탑, 노트북 또는 기타 폼 팩터 컴퓨터 또는 데이터 처리 시스템의 형태를 취할 수 있다. 또한, 정보 처리 시스템은 개인 휴대 정보 단말기(PDA), 게이밍 디바이스, ATM 머신, 휴대용 전화 디바이스, 통신 디바이스 또는 프로세서 및 메모리를 포함하는 기타 디바이스들과 같은 다른 폼 팩터들(form factors)을 취할 수 있다. 게다가, 정보 처리 시스템은 노스 브리지/사우스 브리지 컨트롤러 아키텍처를 반드시 구현할 필요는 없으며, 다른 아키텍처도 채용될 수 있음이 이해될 것이다.
[0052] API(애플리케이션 프로그래밍 인터페이스)는 당업계에서 둘 혹은 그 이상의 애플리케이션들 사이의 소프트웨어 중개자로 이해된다. 도 1에 도시되고 설명된 인공지능 플랫폼(150)에 대하여, 하나 혹은 그 이상의 API들은 도구들(152), (154), (156), (158), 및 (164) 중 하나 혹은 그 이상 및 이들의 연관된 기능을 지원하기 위해 사용될 수 있다. 도 2를 참조하면, 도구들(152), (154), (156), (158), 및 (164), 및 이들의 연관된 API들을 예시하는 블록도(200)가 제공된다. 도시된 바와 같이, 다수의 도구들이 AI 플랫폼(205) 내에 내장되고, API0(212)과 관련된 기록 관리자(252)를 포함하는 도구들, API1(222)과 연관된 클러스터 관리자(254), API2(232)와 연관된 샘플링 관리자(256), API3(242)와 연관된 검색 관리자(258), 및 API4(262)와 연관된 출력 관리자(264)를 포함한다. 각각의 API들은 하나 혹은 그 이상의 언어들 및 인터페이스 스펙들로 구현될 수 있다. API0(212)은 기록(trace)의 대화 이벤트들을 파싱하고 기록들의 동작 특성들을 결정하기 위한 기능 지원을 제공한다; API1(222)은 기록들을 모으기(cluster) 위한 기능 지원을 제공한다; API2(232)는 기록들을 샘플링하기 위한 기능 지원을 제공한다; API3(242)는 검색을 위한 기능적 지원을 제공하며, 예를 들어, 파싱된 이벤트들을 탐색한다; API4(262)는 출력에 대한 기능적 지원을 제공하며, 이는 대화 시스템을 개량하는 단계(refining)를 포함한다. 도시된 바와 같이, API들(212), (222), (232), (242), 및 (262) 각각은, 오케스트레이션 층(an orchestration layer)으로 알려진, API 오케스트레이터(260)에 작동 가능하게 결합되고, 이는 개별 API들을 투명하게 함께 스레드하는(thread together) 추상화 층으로 기능하는 것으로 당업계에서 이해된다. 일 실시예에서, 개별 API들의 기능은 결합(joined)되거나 조합(combined)될 수 있다. 따라서, 여기에 도시된 API들의 구성이 제한적인 것으로 간주되어서는 안 된다. 그러므로, 본 명세서에 도시된 바와 같이, 도구들의 기능은 그들의 각 API들에 의해 구현되거나 지원될 수 있다.
[0053] 도 3을 참조하면, 챗봇 플랫폼과 같은, 대화 시스템의 대화 로그 파일들(여기에서 레코드들이라고도 함)을 처리하고, 대응 기록들을 클러스터링 프로세스에 적용하기 위한 프로세스를 설명하기 위해 플로차트(300)가 제공된다. 도시된 바와 같이, 대화 로그 파일들 형태의 입력이 처리를 위해 수신된다(302). 대화 로그 파일들은, 예를 들어, 제품 판매, 서비스들의 구매, 고객 서비스, 정보 획득, 등을 포함하는, 다양한 유형들의 트랜잭션들, 상호 작용들, 및 활동들과 관련될 수 있다. 일 예시적인 실시예에 따라, 각 대화 로그 파일은, 사용자와 가상 에이전트 사이의 전자 플랫폼에서의 대화를 포함하는, 챗봇으로부터의 기록의 레코딩이다. 이 레코딩은 텍스트, 오디오, 비디오, 오디오-비디오, 등과 같은 다양한 형식들이 될 수 있다.
[0054] 상기 기록은, 상태 변수 실체화들(또는 값들)이라고도 하는, 하나 혹은 그 이상의 대화 이벤트들을 포함한다. 예를 들어, 휴가 예약을 위한 챗봇 플랫폼의 맥락에서, 상태 변수는 출발 날짜 및 시간, 귀환 날짜 및 시간, 목적지 위치, 호텔 숙박 시설들, 차량(예: 자동차) 대여 등과 같은 필드일 수 있다. 상기 기록들은 출발 날짜 및 시간, 귀환 날짜 및 시간, 목적지 위치, 호텔 숙박 시설들, 차량 대여들 등에 대해 사용자가 입력한 정보 또는 데이터를 나타내는 대화 이벤트들(또는 상태 변수 실체화)를 포함한다. 예를 들어, 자동화된 가상 대화 에이전트는 사용자가 각 상태 변수를 쿼리로 사용자에게 제시하고, 사용자는 응답 또는 실체화를 제공할 수 있다.
[0055] 대화 로그들은 로그들의 모음(clustering)을 용이하게 하고 가능하게 하기 위해 인공 지능(AI) 플랫폼(도 1의 AI 플랫폼(150)과 같은)에 의해 처리될 수 있다. 보다 구체적으로, 예시적인 일 실시예에 따라 AI 플랫폼은 대화 로그 파일들의 기록들의 대화 이벤트들(또는 상태 변수 실체화)을 파싱된 이벤트들로 파싱하고(304), 상기 기록들로부터(예를 들어, 상기 파싱된 이벤트들로부터(304) 또는 전체 기록으로부터) 행동 특성 값을 추출하여 행동 특성 값을 상기 기록들 각각에 할당한다(306). 일 실시예에 따라, 상기 행동 특성은 트랜잭션, 상호작용, 또는 다른 활동의 성공적인 완료(또는 성공적이지 못한 완료)이다.
[0056] AI 플랫폼은 기록들의 행동 특성 값들과 결과 값들의 근접성에 기초하여 클러스터링 프로세스에 기록을 추가로 적용한다(308). 예시적인 일 실시예에 따라, 단계(308)에서 형성된 각각의 클러스터는 상기 클러스터들 중 하나의 각 결과 값과 동일하거나 유사한 행동 특성 값들을 갖는 대화 로그들로 채워진다. 출력은, 예를 들어, 클러스터0, 클러스터1, … 클러스터N(310)과 같은, 복수의 클러스터들이다. 일 예시적인 실시예에서, 형성된 클러스터들의 수는 적어도 2개이고, 바람직하게는 2개이지만, 이 것으로 제한되는 것은 아니다.
[0057] 도 4를 참조하면, 도 3에 형성된 클러스터들을 검색하기 위한 프로세스, 더 구체적으로는 클러스터들에 할당된 기록들의 파싱된 이벤트들을 평가하기 위한 프로세스를 설명하기 위해 플로차트(400)가 제공된다. 도 4의 목적을 위해, 두 개의 클러스터들, 즉, 클러스터0 및 클러스터1이 도시된다. 형성된 클러스터들 중 하나에 할당된 기록들의 양은 상당히 많을 수 있고(extensive), 이에 따라, 기록들의 샘플링이 클러스터 분석에 적용될 수 있음을 이해해야 한다. 이에 따라, AI 학습 프로그램이 검색 분석을 위해 클러스터0 및 클러스터1 각각으로부터 기록들의 샘플링을 식별하는데 활용될 수 있(402). 일 예시적인 실시예에서, 검색 분석은 도 3의 플로차트(300)(예를 들어, 단계(310) 참조)에 따라 형성된 클러스터0 및 클러스터1에 대해서 수행되는데, 각 클러스터의 기록들 또는 기록들의 샘플링이 분석 대상이다. 도 4에 예시된 바와 같이, 클러스터들의 분석은 병렬로 일어날 수 있다. 대안적인 실시예에서, 클러스터들의 분석은, 직렬 방식 또는 일부 다른 방식 또는 시퀀스로 발생할 수 있으며, 이는 제1 및 제2 클러스터들로부터 기록들을 교대로 또는 무작위로 선택하고 평가하는 것을 포함할 수 있다.
[0058] 단계들(404) 및 (424)에서, 예를 들어, 클러스터0 및 클러스터1과 같은, 클러스터로부터 기록들이, 샘플링 된다. 샘플링은 무작위일 수 있거나 당업계에 알려진 기술들을 포함하는, 모든 샘플링 기술을 포함할 수 있다. 일 실시예에서, 샘플 기록들의 제1 선택 량이 제1 클러스터, 클러스터0에 할당되고(404), 샘플 기록들의 제2 선택 량이 제2 클러스터, 클러스터1에 할당된다(424). 제1 클러스터와 관련하여, 제1 클러스터 클러스터0의 샘플 기록들에 대한 제1 샘플 기록 카운팅 변수, W가, 초기화된다(406). 제1 클러스터 클러스터0에 할당된 샘플 기록들의 양이 식별되어 변수 WTotal(408)에 할당된다. 그 후, 제1 클러스터에 대한 대응하는 기록 평가 변수는 단계(410)에서 초기화된다. 단계(410) 다음에 제1 클러스터에 대한 패턴 스펙 평가가 수행되며, 변수 X는 적용될 대응하는 시간 로직을 충족하는 제1 클러스터의 샘플 기록들의 양을 나타내고, 변수 Z는 적용될 대응하는 시간 로직을 충족하지 않는 제2 클러스터의 샘플 기록들의 양을 나타낸다.
[0059] 제1 클러스터와 유사하게, 제2 클러스터도 처리된다. 도시된 바와 같이, 제2 클러스터 클러스터1의 샘플 기록들에 대한 제2 샘플 기록 카운팅 변수 Y가 초기화된다(426). 제2 클러스터 클러스터1에 할당된 샘플 기록들의 양이 식별되어 변수 YTotal(428)에 할당된다. 그 후, 상기 샘플링으로부터의 기록들이 각 클러스터들에 할당되고, 대응하는 클러스터 및 로직 변수들이 정의되며, 초기화된다.
[0060] 단계(412)에서 제1 클러스터의 평가에 대해서는 두 가지 측면들이 있는데, 이들은 시간 조건(a temporal condition)을 수반하는 패턴 스펙과 파싱된 이벤트에 대응하는 가변 스펙을 선택하는 단계와, 상기 선택된 패턴 스펙의 시간 조건에 관하여 상기 선택된 변수 스펙에 대응하는 상기 파싱된 이벤트를 평가하는 단계를 포함한다. 일 실시예에서, 단계(412)에서의 평가는 선택된 패턴 스펙의 선형 시간 로직(LTL) 형태의 조건(또는 속성)을 검색하기 위해 샘플링-기반 추론(sampling-based inference)을 채용한다. 단계(412)에서 패턴 스펙 평가는 대화 기록(the conversation trace)을 통해 항상 유지하는 조건, 다른 조건 다음에 오거나 또는 다른 조건을 선행하는 조건, 등과 같은, 추출할 시간 조건들(temporal conditions to extract)의 유형들을 선언하는 단계(asserting)를 포함한다. 패턴 스펙은 패턴 스펙들의 라이브러리로부터 선택될 수 있다. 라이브러리 내의 패턴 스펙들 각각은, 예를 들어, 확률 분포와 같은, 가중치와 연관될 수 있다. 유사하게, 변수 스펙은 동일 또는 다른 라이브러리로부터 선택될 수 있다. 일 실시예에서, 고려할 패턴 스펙 및 변수 스펙과 관련된 가중치(예를 들어, 선호도)의 선택은, 예를 들어, 검색된 속성들에서, 확률 분포를 통해, 구성 가능하다.
[0061] 제1 클러스터 클러스터0과 관련하여, 단계(412)에서, 선택된 패턴 스펙의 시간 조건이, 샘플 기록, 예를 들어, 기록W(TraceW)에 대한 선택된 변수 스펙에 대응하는 적어도 하나의 파싱된 이벤트에 대해 유효한지에 관한 결정이 내려진다. 예를 들어, 선택된 변수 스펙에 대응하는 파싱된 이벤트(들)에 적용된 선택된 패턴 스펙은 상기 파싱된 이벤트(들)(또는 상태 변수)에 대한 선형 시간 로직(linear temporal logic: LTL)의 구현을 수반할 수 있다. 상기 실시예에 따라, 상기 패턴 스펙은 대화 이벤트의 성공적인 완료와 같은 제1 조건이 클러스터0의 결과로 이어지는지 여부일 수 있다. 예를 들어, 단계(412)는 여행 출발 시간의 사용자 스펙(상태 변수 실체화)을 충족시키는 것이 제1 클러스터 클러스터0의 샘플 기록들의 결과(예를 들어 성공적인 예약)와 관련하여 유효한지(hold)에 관한 결정을 포함할 수 있다.단계(412)에서의 결정에 대한 응답이 긍정적이면 기록 로직 카운팅 변수 X(414)는 증가하게 되며, X는 패턴 스펙의 로직을 충족하는 클러스터0의 샘플 기록들을 나타낸다. 하지만, 단계(412)에서의 결정에 대한 응답이 부정적이면, 기록 로직 카운팅 변수 X(414)에서 증가되지 않는다. 단계(412)에서의 부정적인 응답 다음에, 또는 단계(412)에서 긍정적인 응답의 경우에 단계(414) 다음에, 기록 카운팅 변수 W는 증가된다(416). 그런 다음 제1 클러스터의 샘플 기록들 각각이 평가되었는지가 결정된다(418). 단계(418)에서 부정적인 응답은 제1 클러스터 클러스터0로부터 샘플링 된 기록들의 계속된 처리를 위해 단계(412)로 되돌아간다. 하지만, 단계(418)에서 응답이 긍정적이면 제1 클러스터 클러스터0에 할당된 기록들의 샘플링이 클러스터 패턴 스펙 및 변수 스펙과 관련하여 평가되었다는 것을 표시한다. 도시된 바와 같이, 제1 클러스터0에 대한 비율, 비율0은 평가되고(420), 여기서 패턴 스펙 X를 충족하는 샘플 기록들 수량과 제1 클러스터에 할당된 샘플 기록들 수량 값의 몫, 즉 X/WTotal로 표시된다. 예시적인 실시예들에서, 비율0은 0 내지 1의 범위에 있고, 그 사이의 모든 1/10 또는 1/100을 포함한다.
[0062] 제1 클러스터와 유사하게, 제2 클러스터 클러스터1로부터 샘플링된 기록들은 제1 클러스터 클러스터0의 기록과 동일한 패턴 스펙 및 동일한 변수 스펙을 따르며, 다만, 이 경우에는 선택된 변수 스펙에 대응하는 선택된 파싱된 이벤트가 패턴 스펙을 충족하지 않는 제2 클러스터 클러스터1에 할당된 샘플 기록들의 비율을 식별하기 위해서 그렇게 한다. 제2 클러스터 클러스터1에 관해, 단계(432)에서, 선택된 패턴 스펙(즉, 단계(412)의 동일 패턴 스펙)이 단계(412)에서 선택된 동일 변수 스펙에 대응하는 파싱된 이벤트(들)에 대해 유효하지 않는지를 평가하기 위한 결정이 수행된다. 예를 들어, 선택된 변수 스펙에 대해 적용된 패턴 스펙은 선택된 변수 스펙에 대응하는 파싱된 이벤트(들)에 대한 선형 시간 로직(LTL)의 구현을 포함할 수 있다. 상기 실시예에 따라, 상기 패턴 스펙은 대화 이벤트의 성공적인 완료와 같은 제1 조건이 클러스터1의 결과가 될 것인지에 관한 것일 수 있다. 예를 들어, 단계(432)는 사용자의 여행 출발 시간 스펙(상태 변수 실체화)을 충족시키는 것이 제2 클러스터 클러스터1의 샘플 기록들의 결과에 관하여 유효하지 않은 지에 대한 결정을 포함할 수 있으며, 상기 결과는, 예를 들어¸ 성공하지 못한 예약일 수 있다.
[0063] 단계(432)에서의 결정(예를 들어, 사용자의 여행 출발 날짜에 관한 사용자의 스펙의 충족이 성공하지 못한 예약 결과들과 관련하여 유효하지 않다는)에 대한 응답이 긍정적이면 기록 로직 카운팅 변수 Z(434)는 증가되고(increment), Z는 샘플 기록들이 패턴 스펙의 로직을 충족하지 않음을 나타낸다. 하지만, 단계(432)에서의 결정에 대한 응답이 부정적이면 기록 로직 카운팅 변수 Z는 증가되지 않는다. 단계(432)에서의 부정적인 응답 다음에 또는 단계(434)에서의 증가 다음에, 기록 카운팅 변수 Y는 증가된다(436). 그 다음, 제2 클러스터 클러스터1의 모든 샘플 기록들이 평가되었는지가 결정된다(438). 단계(438)에서 응답이 부정적이면 단계(432)로 되돌아가서 제2 클러스터 클러스터1에 할당된 샘플 기록들을 계속 처리한다. 하지만, 단계(438)에서 응답이 긍정적이면 제2 클러스터로부터 샘플링된 기록들이 클러스터 패턴 스펙 및 변수 스펙과 관련하여 평가가 완료되었음을 표시한다. 도시된 바와 같이, 제2 클러스터 클러스터1에 대한 비율1은 단계(440)에서 평가되는데, 여기서는 선택된 변수 스펙에 대해 선택된 패턴 스펙을 충족하지 않는 샘플 기록들 수량과 제2 클러스터 클러스터1에 할당된 샘플 기록들 수량의 값의 몫, 즉 Z/YTotal으로 표시된다. 일 예시적인 실시예에서, 비율1은 0 내지 1의 범위에 있으며, 그 사이의 모든 1/10 또는 1/100을 포함한다.
[0064] 도 4의 플로차트(400)는 하나의 선택된 패턴 스펙 및 하나의 선택된 변수 스펙에 대해 위에서 설명되었다. 일 실시예에서, 플로차트(400)의 단계들은 패턴 및 변수 스펙들의 다른 조합들에 대해서도 반복될 수 있다.
[0065] 도 5를 참조하면, 플로차트(500)은 대조 임계값을 충족하는 대조 패턴이 기록들에 있는지를 결정하고, 만일 있다면, 가상 대화 에이전트를 개량하기 위한 클러스터 형성 및 평가를 활용하는 프로세스를 설명하기 위해 제공된다. 상기 대조 패턴은, 도 4에서 평가된 바와 같은, 제1 클러스터, 클러스터0의 제1 비율, 비율0과 제2 클러스터, 클러스터1의 제2 비율, 비율1에 기초하는 값을 갖는다. 일 예시적인 실시예에서, 상기 제1 및 제2 비율들은 프로덕트 값(a product value)을 제공하기 위해 서로 곱해진다(502). 단계(504)에서, 단계(502)의 프로덕트 값은, 상기 대조 패턴의 값을 나타내는, 가중된 프로덕트를 결정하기 위해, 하나 혹은 그 이상의 가중 요소들(weighting factors)에 의해서 곱해진다. 예시적인 실시예들에 따라, 상기 가중 요소들 각각은, 0 내지 1의 범위에 있고, 그 사이의 모든 1/10 또는 1/100을 포함한다. 일 실시예에 따라, 가중 요소는, 예를 들어, 패턴 스펙에 할당된 중요도에 기초한, 패턴 스펙 가중 요소이다. 다른 실시예에 따라, 상기 가중 요소는, 예를 들어, 가변 스펙에 할당된 중요도에 기초한, 가변 스펙 가중 요소이다. 예를 들어, 출발 날짜들의 충족과 관련된 변수 스펙은 프로그래머에게 매우 중요할 수 있으며, 따라서 1에 가까운 가중치가 할당될 수 있고, 한편 차량 렌탈 만족도와 관련된 변수 스펙은 중요도가 낮을 수 있으며, 따라서 0에 가까운 가중치가 할당될 수 있다. 일 실시예에서, 패턴 스펙 및/또는 변수 스펙에 대한 가중치 적용은 생략되거나 1로 설정될 수 있다. 유사하게, 일 실시예에서, 가중치의 값은 구성 가능할 수 있다.
[0066] 단계(506)에서, 대조 임계값이 할당된다. 예시적인 실시예들에서, 대조 임계값은 0 내지 1 범위의 값으로서 선택되고, 0 내지 1 범위 내의 모든 증가(예를 들어, 10분의 1, 100분의 1 등)를 포함할 수 있다. 대조 임계값은 프로그래머 또는 AI 플랫폼(150)에 의해 선택될 수 있다. 그 다음, 일 예시적인 실시예에서 가중된 프로덕트로서 위에서 설명된, 대조 패턴 값이 대조 임계값(508)을 충족하는 지(예를 들어, 같거나 더 큼)가 결정된다. 결정(508)에 대한 응답이 긍정적이면 대화 시스템(510)의 성능을 개선하기 위해 파싱된 이벤트(들)와 관련하여 가상 에이전트에 대한 개선에 대응하는 출력을 생성한다. 단계(508)에서의 결정에 대한 응답이 부정적이면 하나 또는 그 이상의 선택들(options)로 진행하도록 결정한다(512). 선택들은, 예를 들어, 새로운 대조 임계값을 할당하고 단계(508)로 복귀하는 단계; 다른 패턴 스펙 및/또는 변수 스펙을 선택하고 도 4의 플로차트(400)로 복귀하는 단계; 그리고 프로세스를 종료하는 단계를 포함한다.
[0067] 대조 임계값은, 예를 들어, 충족과 복잡성(satisfaction and complexity을 포함하는, 다양한 요소들에 기초할 수 있다. 상기 충족은 검색된 속성들이 입력 대화 기록들과 정렬되는 정도를 계산하는 단계(calculating)를 포함하며, 일 실시예에서, 입력 세트들에 걸쳐 모든 차이들을 강조하는 단계(highlighting)를 최대화한다. 또한, 상기 충족은 입력 기록들에 관한 LTL 속성들의 정렬 및 비-정렬을 체크하는 단계(checking)도 포함한다. 대조 평가의 복잡성 때문에 제안들(propositions) 수가 더 적을 수 있다는 점에서 복잡성이 낮은 스펙들이 장려되고, 또한 검색된 속성들 내에서 간결성과 해석 가능성도 장려된다.
[0068] 여기서 기술된 예시적인 방법들은, 도 3-5의 플로차트들에 예시된 것들을 포함하고, 기록들 세트들 간의 차이점들을 설명하는 시간 속성들(temporal properties)의 형태로 출력을 생성한다. 열거된 단계들을 수행한 후, 예시적인 실시예에 따라, 계획 언어, 예를 들어, PDDL, 와 같은, 기록들이 생성되는 방식을 설명하는 도메인 지식의 가용성을 평가하기 위한 결정이 수행된다. 위에서 논의된 바와 같이, 예시적인 실시예들은 인지된 중요도에 따라 패턴 스펙들 및 변수 스펙들에 가중치들을 할당하는 것을 수반한다. PDDL은 계획 문제들을 작성하는 데 일반적으로 사용되는 계획 언어의 한 예이다. PDDL은, 시작 상태와 목표 상태를 포함하는, 일련의 상태들을 갖는 환경으로 구성된다. 상기 모델은 시작 상태에서 목표 상태까지의 경로(path), 예를 들어, 기록(trace)을 찾는 것을 목표로 한다. 이에 따라, 여기서 소개한 바와 같이, 그룹 행동들 간의 구별 패턴들(discriminative patterns)이 자동으로 추출되고, 이에 상응하는 대조 설명들이 검색되어 선택적 수정을 위해 챗봇 플랫폼에 적용된다.
[0069] 여기에 도시되고 설명된 실시예들은, 특히 대화 시스템의 성능 개선과 관련하여, 대화(conversation) 다이얼로그(dialog) 레코드들을 처리 및 분석하기 위한 지능형 컴퓨터 플랫폼과 함께 사용하기 위한 컴퓨터 시스템의 형태일 수 있다. 처리 유닛은 메모리에 작동 가능하게 결합되고 인공 지능 플랫폼과 통신한다.
[0070] 도 1 내지 도 5에 도시된 대화 로그 파일 및 기록 처리의 실시 예들은, 도 1에서 도시되고 설명된 바와 같이, 하나 이상의 기능적 도구들을 채용한다. 기능적 도구들(152, 154, 156, 158, 및 164)의 실시 예들 및 그들의 연관된 기능은 단일 위치의 컴퓨터 시스템/서버에 구현될 수 있거나, 또는 일 실시예에서, 컴퓨팅 자원들을 공유하는 클라우드 기반 시스템에 구성될 수 있다. 도 6을 참조하면, 도 3- 도 5와 관련하여 위에서 기술된 프로세스들을 구현하기 위해, 클라우드 기반 시스템과 통신하는, 이하 호스트(602)라 하는, 컴푸터 시스템/서버(602)의 예를 예시하는 블록도(600)가 제공된다. 호스트(602)는, 수많은 다른 범용 또는 특수 목적 컴퓨팅 환경들 또는 구성들과 함께 운영된다. 호스트(602)와 함께 사용하기에 적합할 수 있는 잘 알려진 컴퓨팅 시스템들, 환경들, 및/또는 구성들의 예들은, 개인용 컴퓨터 시스템들, 서버 컴퓨터 시스템들, 씬 클라이언트들, 씩 클라이언트들, 핸드헬드 또는 랩탑 디바이스들, 멀티-프로세서 시스템들, 마이크로프로세서-기반 시스템들, 셋톱 박스들, 프로그래밍 가능한 소비자 전자 제품들, 네트웍 PC들, 미니 컴퓨터 시스템들, 메인프레임 컴퓨터 시스템들, 및 상기 시스템들, 디바이스들 또는 그들의 균등물들 중 하나를 포함하는 파일 시스템들(예를 들어, 분산 스토리지 화경들, 분산 클라우드 컴퓨팅 환경들)을 포함하나, 이에 국한하는 것은 아니다.
[0071] 호스트(602)는, 컴퓨터 시스템에 의해 실행되는, 프로그램 모듈들과 같은, 컴퓨터 시스템-실행 가능한 명령들의 일반적인 컨텍스트로 기술될 수 있다. 일반적으로 프로그램 모듈들은 특정 작업들을 수행하거나 또는 특정 추상 데이터 유형들을 구현하는 루틴들, 프로그램들, 객체들, 컴포넌트들, 로직, 데이터 구조들 등을 포함할 수 있다. 호스트(602)는 통신 네트웍을 통해 링크되는 원격 처리 디바이스들에 의해 작업들이 수행되는 분산 클라우드 컴퓨팅 환경에서 실시될 수 있다. 분산 클라우드 컴퓨팅 환경에서, 프로그램 모듈들은 메모리 스토리지 디바이스들을 포함하는 로컬 및 원격 컴퓨터 시스템 스토리지 매체 모두에 위치할 수 있다.
[0072] 도 6에서 도시된 바와 같이, 호스트(602)는 범용 컴퓨터 디바이스의 형태로 도시된다. 호스트(602)의 컴포넌트들은 하나 또는 그 이상의 프로세서들 또는 처리 유닛들(604), 시스템 메모리(606), 및 시스템 메모리(606)를 포함하는 다양한 시스템 컴포넌트들을 프로세서(604)에 연결하는 버스(608)를 포함할 수 있지만, 이에 국한되지 않는다. 버스(608)는, 다양한 버스 아키텍처들 중 하나를 사용하는, 메모리 버스 또는 메모리 컨트롤러, 주변 버스, 가속 그래픽 포트, 및 프로세서 또는 로컬 버스를 포함하는, 버스 구조들의 여러 유형들 중 하나 또는 그 이상을 나타낸다. 예를 들어, 그러한 아키텍처들은 ISA(include Industry Standard Architecture) 버스, MCA(Micro Channel Architecture) 버스, EISA(Enhanced ISA) 버스, VESA(Video Electronics Standards Association) 로컬 버스 및 PCI(Peripheral Component Interconnect) 버스를 포함하나, 이에 국한되지는 않는다. 호스트(602)는 일반적으로 다양한 컴퓨터 시스템 판독 가능한 매체를 포함한다. 그러한 매체는 호스트(602)에 의해 액세스 가능한 모든 이용 가능한 매체일 수 있으며 , 휘발성 및 비휘발성 매체, 착탈식 및 비-착탈식 매체를 모두 포함한다.
[0073] 시스템 메모리(606)은, 예컨대 랜덤 액세스 메모리(RAM)(630) 및/또는 캐시 메모리(632)와 같은, 휘발성 메모리의 형태의 컴퓨터 시스템 판독 가능한 매체를 포함할 수 있다. 단지 예로서, 스토리지 시스템(634)이 비착탈식, 비휘발성 자기 매체(도시되지 않고 일반적으로 "하드 드라이브"라고 함)로부터 읽고 쓰기 위해 제공될 수 있다. 도시되지는 않았지만, 착탈가능 비휘발성 자기 디스크(예: "플로피 디스크") 에서 읽고 쓰기 위한 자기 디스크 드라이브 및, CD-ROM, DVD-ROM 또는 기타 광학 매체와 같은, 착탈가능 비휘발성 광학 디스크에서 읽거나 쓰기 위한 광학 디스크 드라이브가 제공될 수 있다. 그러한 경우들에서, 각각은 하나 또는 그 이상의 데이터 매체 인터페이스들에 의해 버스(608)에 연결될 수 있다.
[0074] 프로그램 모듈들의 (적어도 하나)세트(642)를 갖는, 프로그램/유틸리티(640)는, 예를 들어, 메모리(606)에 저장될 수 있지만, 이에 국한되는 것은 아니다. 운영 체제, 하나 또는 그 이상의 애플리케이션 프로그램들, 기타 프로그램 모듈들, 및 프로그램 데이터 또는 이들의 조합은 네트워킹 환경의 구현을 포함할 수 있다. 프로그램 모듈들(642)은 일반적으로 자동화된 가상 대화 에이전트의 성능을 개선하기 위해 레버리지 로직, 예를 들어 일시적 로직에 대한 실시 예들의 기능들 및/또는 방법들을 수행한다. 예를 들어, 프로그램 모듈들(642) 세트는 도 1에서 기술된 바와 같은 툴들(152, 154, 156, 158, 및 164)을 포함할 수 있다.
[0075] 호스트(602)는 또한 키보드, 포인팅 디바이스 등 과 같은 하나 또는 그 이상의 외부 디바이스들(614); 디스플레이(624); 사용자가 호스트(602)와 상호작용할 수 있게 하는 하나 또는 그 이상의 디바이스들; 및/또는 호스트(602)가 하나 또는 이상의 다른 컴퓨팅 디바이스들과 통신할 수 있게 하는 모든 디바이스들(예를 들어, 네트워크 카드, 모뎀 등)과 통신할 수 있습다. 그러한 통신은 입력/출력(I/O) 인터페이스들(622)를 통해 발생할 수 있다. 여전히, 호스트(602)는 네트워크 어댑터(620)를 통해 근거리 통신망(LAN), 일반 광역 통신망(WAN) 및/또는 공공 네트워크(예: 인터넷)와 같은 하나 이상의 네트워크와 통신할 수 있다. 도시된 바와 같이, 네트워크 어댑터(620)는 버스(608)를 통해 호스트(602)의 다른 컴포넌트들과 통신한다. 일 실시예에서, 분산 파일 시스템의 복수의 노드들(미도시)은 I/O 인터페이스(622) 또는 네트워크 어댑터(620)를 통해 호스트(602)와 통신한다. 도시되지는 않았지만, 다른 하드웨어 및/또는 소프트웨어 컴포넌트들이 호스트(602)와 함께 사용될 수 있음을 이해해야 한다. 예들에는: 마이크로코드, 디바이스 드라이버들, 중복 처리 유닛들, 외부 디스크 드라이브 어레이들, RAID 시스템들, 테이프 드라이브들 및 데이터 보관 스토리지 시스템들, 등이 포함되지만 이에 국한되지는 않는다.
[0076] 본 명세서에서 "컴퓨터 프로그램 매체", "컴퓨터 사용 가능 매체" 및 "컴퓨터 판독 가능 매체"라는 용어들은 일반적으로 다음과 같은 매체를 말한다: RAM(630)을 포함하는, 주 메모리(606), 캐시(632) 그리고 착탈가능 저장 드라이브 및 하드 디스크 드라이브에 설치된 하드 디스크와 같은, 스토리지 시스템(634).
[0077] 컴퓨터 프로그램들(컴퓨터 컨트롤 로직이라고도 함)은 메모리(606)에 저장된다. 컴퓨터 프로그램들은 또한, 네트워크 어댑터(620)와 같은, 통신 인터페이스를 통해 수신될 수도 있다. 그러한 컴퓨터 프로그램들은, 실행될 때, 컴퓨터 시스템이, 여기에서 논의된 바와 같은, 본 발명의 실시 예들의 특징들을 수행할 수 있게 한다. 특히, 상기 컴퓨터 프로그램들은, 실행될 때, 처리 유닛(604)가 컴퓨터 시스템의 특징들을 수행할 수 있도록 한다. 따라서, 그러한 컴퓨터 프로그램들은 컴퓨터 시스템의 컨트롤러들을 나타낸다.
[0078] 상기 컴퓨터 판독 가능 스토리지 매체는 명령 실행 장치에 의해 사용될 명령들을 유지 및 저장할 수 있는 유형의(tangible) 디바이스일 수 있다. 상기 컴퓨터 판독 가능 스토리지 매체는, 예를 들면, 전자 스토리지 디바이스, 자기 스토리지 디바이스, 광 스토리지 디바이스, 전자기 스토리지 디바이스, 반도체 스토리지 디바이스, 또는 전술한 것들의 모든 적절한 조합일 수 있으며, 그러나 이에 한정되지는 않는다. 컴퓨터 판독 가능 스토리지 매체의 더 구체적인 예들의 비포괄적인 목록에는 다음이 포함될 수 있다: 휴대용 컴퓨터 디스켓, 하드 디스크, 랜덤 액세스 메모리(RAM), 판독-전용 메모리(ROM), 소거 및 프로그램가능 판독-전용 메모리(EPROM 또는 플래시 메모리), 정적 랜덤 액세스 메모리(SRAM), 휴대용 컴팩트 디스크 판독-전용 메모리(CD-ROM), 디지털 다용도 디스크(DVD), 메모리 스틱, 플로피 디스크, 천공-카드들 또는 명령들이 기록된 홈에 있는 융기된 구조들 같이 머신적으로 인코드 된 장치, 및 전술한 것들의 모든 적절한 조합. 본 명세서에서 사용될 때, 컴퓨터 판독 가능 스토리지 매체는 무선 전파들이나 다른 자유롭게 전파되는 전자기파들, 도파관이나 기타 전송 매체(예를 들어, 광섬유 케이블을 통해 전달되는 광 펄스들)를 통해 전파되는 전자기파들, 또는 선(wire)을 통해 전송되는 전기 신호들 같이 그 자체로 일시적인(transitory) 신호들로 해석되지는 않는다.
[0079] 본 명세서에 기술되는 컴퓨터 판독 가능 명령들은, 예를 들어, 인터넷, 근거리 통신망, 광역 통신망 및/또는 무선 네트워크 등의 통신망(네트워크)을 통해 컴퓨터 판독 가능 스토리지 매체로부터 각각 컴퓨팅/처리 디바이스들로 또는 외부 스토리지 디바이스로부터 외부 컴퓨터로 다운로드 될 수 있다. 상기 통신망은 구리 전송 케이블들, 광 전송 섬유들, 무선 전송, 라우터들, 방화벽들, 스위치들, 게이트웨이 컴퓨터들 및/또는 엣지 서버들을 포함할 수 있다. 각 컴퓨팅/처리 유닛 내 네트워크 어댑터 카드 또는 네트워크 인터페이스는 상기 통신망으로부터 컴퓨터 판독 가능 프로그램 명령들을 수신하고 그 컴퓨터 판독 가능 프로그램 명령들을 각각의 컴퓨팅/처리 디바이스 내의 컴퓨터 판독 가능 스토리지 매체에 저장하기 위해 전송한다.
[0080] 본 발명의 연산들을 실행하기 위한 컴퓨터 판독 가능 프로그램 명령들은 Smalltalk, C++ 또는 그와 유사 언어 등의 객체 지향 프로그래밍 언어와 "C" 프로그래밍 언어 또는 그와 유사한 프로그래밍 언어 등의 종래의 절차적 프로그래밍 언어들을 포함하여, 하나 또는 그 이상의 프로그래밍 언어들을 조합하여 작성된(written) 어셈블러 명령들, 명령-세트-아키텍처(ISA) 명령들, 머신 명령들, 머신 종속 명령들, 마이크로코드, 펌웨어 명령들, 상태-셋팅 데이터, 집적회로를 위한 구성 데이터, 또는 소스 코드나 목적 코드일 수 있다. 상기 컴퓨터 판독 가능 프로그램 명령들은 전적으로 사용자의 컴퓨터상에서, 부분적으로 사용자의 컴퓨터상에서, 독립형(stand-alone) 소프트웨어 패키지로서, 부분적으로 사용자의 컴퓨터상에서 그리고 부분적으로 원격 컴퓨터상에서 또는 전적으로 원격 컴퓨터나 서버상에서 실행될 수 있다. 위에서 마지막의 경우에, 원격 컴퓨터는 근거리 통신망(LAN) 또는 광역 통신망(WAN)을 포함한 모든 종류의 네트워크를 통해서 사용자의 컴퓨터에 접속될 수 있고, 또는 이 접속은 (예를 들어, 인터넷 서비스 제공자를 이용한 인터넷을 통해서) 외부 컴퓨터에 이루어질 수도 있다. 일부 실시 예들에서, 예를 들어 프로그램 가능 로직 회로, 필드-프로그램 가능 게이트 어레이들(FPGA), 또는 프로그램 가능 로직 어레이들(PLA)을 포함한 전자 회로는 본 발명의 실시 예들을 수행하기 위해 전자 회로를 맞춤화하도록 상기 컴퓨터 판독 가능 프로그램 명령들의 상태 정보를 활용하여 상기 컴퓨터 판독 가능 프로그램 명령들을 실행할 수 있다.
[0081] 일 실시예에서, 호스트(602)는 클라우드 컴퓨팅 환경의 노드이다. 당업계에 알려진 바와 같이, 클라우드 컴퓨팅은, 최소한의 관리 노력 또는 서비스 제공자와의 상호작용으로 빠르게 제공되고 해제될 수 있는, 구성 가능한(configurable) 컴퓨팅 자원들(예를 들어, 네트워크들, 네트워크 대역폭, 서버들, 처리, 메모리, 스토리지, 애플리케이션들, 가상 머신들, 및 서비스들)의 공유 풀에 대한 편리한 주문형(on-demand) 네트워크 액세스를 가능하게 하는 서비스 전달 모델이다. 이 클라우드 모델은 적어도 5가지의 특성(characteristics), 적어도 3가지 서비스 모델(service models), 및 적어도 4가지 배치 모델(deployment models)을 포함할 수 있다. 클라우드 컴퓨팅 특성들은 다음과 같다:
[0082] 주문형 셀프-서비스(On-demand self-service): 클라우드 소비자는, 서비스 제공자와의 인적 상호작용을 필요로 하지 않고 필요한 만큼 자동적으로, 서버 시간(server time) 및 네트워크 스토리지 같은 컴퓨팅 용량들을 일방적으로 제공(provision)할 수 있다.
[0083] 광역 네트워크 액세스(Broad network access): 혼성의 씬 또는 씩 클라이언트 플랫폼들(heterogeneous thin or thick client platforms)(예를 들어, 모바일폰들, 랩탑들, 및 PDA들)에 의한 사용을 장려하는 표준 메커니즘들을 통해 액세스되는 기능들을 네트워크를 통해서 이용할 수 있다.
[0084] 자원 풀링(Resource pooling): 제공자의 컴퓨팅 자원들은, 각기 다른 물리적 및 가상 자원들을 요구(demand)에 따라 동적으로 할당 및 재할당하는, 멀티-테넌트 모델(a multi-tenant model)을 사용하는 다수의 소비자들에게 서비스할 수 있도록 풀에 넣어둔다(pooled). 소비자는 일반적으로 제공된 자원들의 정확한 위치를 제어할 수 없거나 그에 대한 지식이 없지만 더 높은 추상 수준에서(예를 들어, 국가, 주, 또는 데이터센터) 위치를 명시할 수 있다는 점에서 위치 독립성이 있다.
[0085] 기민한 탄력성(Rapid elasticity): 용량들(capabilities)이 기민하게 탄력적으로 제공되어 (어떤 경우엔 자동으로) 신속히 규모를 확장할 수도 있고(scale out) 그리고 탄력적으로 해제되어 신속히 규모를 축소할 수도 있다(scale in). 소비자에게 제공할 수 있는 가능성이 종종 무제한이고 언제든지 원하는 수량으로 구매할 수 있는 것처럼 보인다.
[0086] 측정 가능한 서비스(Measured service): 클라우드 시스템들은 자원 사용을 자동으로 제어하고 최적화하는데, 서비스의 유형(예를 들어, 스토리지, 처리, 대역폭, 및 활성 사용자 계정)에 적절한 추상화 수준에서(at some level of abstraction) 계측 기능을 이용하여서 그렇게 한다. 자원 사용량은 모니터 되고, 제어되고, 그리고 보고될 수 있으며 이로써 이용하는 서비스의 제공자와 사용자 모두에게 투명성을 제공한다.
[0087] 서비스 모델들(Service Models)은 다음과 같다:
[0088] 소프트웨어 서비스(Software as a Service)(SaaS): 소비자에게 제공되는 서비스는 클라우드 하부구조 상에서 실행되는 제공자의 애플리케이션들을 사용하게 해주는 것이다. 애플리케이션들은 웹 브라우저(예를 들어, 웹기반 이메일) 같은 씬(thin) 클라이언트 인터페이스를 통해 여러 클라이언트 장치들에서 액세스 가능하다. 소비자는 네트워크, 서버들, 운영 체제들, 스토리지, 또는 개별 애플리케이션 능력들을 포함하는 하부 클라우드 하부구조를 관리하거나 제어하지 않는다. 단, 제한된 사용자-특정 애플리케이션 구성 세팅들은 예외로서 가능하다.
[0089] 플랫폼 서비스(Platform as a Service)(PaaS): 소비자에게 제공되는 서비스는 제공자에 의해 지원되는 프로그래밍 언어들 및 도구들을 이용하여 생성된 소비자-생성 또는 획득 애플리케이션들을 클라우드 하부구조에 배치하게 해주는 것이다. 소비자는 네트워크, 서버들, 운영 체제들, 또는 스토리지를 포함하는 하부 클라우드 하부구조를 관리하거나 제어하지 않는다. 그러나 배치된 애플리케이션들에 대해서 그리고 가능한 경우 애플리케이션 호스팅 환경 구성들에 대해서 제어할 수 있다.
[0090] 하부구조 서비스(Infrastructure as a Service)(IaaS): 소비자에게 제공되는 서비스는 처리, 스토리지, 네트워크, 및 기타 기본 컴퓨팅 자원들을 제공하여 주는 것이며, 여기서 소비자는 임의의 소프트웨어를 배치 및 실행할 수 있고, 이 소프트웨어에는 운영 체제들과 애플리케이션들이 포함될 수 있다. 소비자는 하부 클라우드 하부구조를 관리하거나 제어하지 않지만, 운영 체제들, 스토리지, 배치된 애플리케이션들, 및 가능한 경우 선택된 네트워킹 컴포넌트들의 제한적인 제어(예를 들어, 호스트 방화벽들)에 대하여 제어할 수 있다.
[0091] 배치 모델들(Deployment Models)은 다음과 같다:
[0092] 사설 클라우드(Private cloud): 클라우드 하부구조는 오직 한 조직(an organization)을 위해서 운영되고, 그 조직 또는 제3자에 의해 관리될 수 있으며 옥내(on-premises) 또는 옥외(off-premises)에 위치할 수 있다.
[0093] 커뮤니티 클라우드(Community cloud): 클라우드 하부구조는 여러 조직들에 의해 공유되고 관심사(예를 들어, 선교, 보안 요건, 정책, 및 규정 준수 심사)를 공유하는 특정 커뮤니티를 지원한다. 클라우드 하부구조는 여러 조직들 또는 제3자에 의해 관리될 수 있으며 옥내(on-premises) 또는 옥외(off-premises)에 위치할 수 있다.
[0094] 공공 클라우드(Public cloud): 클라우드 하부구조는 일반 대중 또는 대규모 산업 집단에서 이용할 수 있으며 클라우드 서비스를 판매하는 조직이 소유한다.
[0095] 하이브리드 클라우드(Hybrid cloud): 클라우드 하부구조는 둘 또는 그 이상의 클라우드들(사설, 커뮤니티, 또는 공공)이 혼합된 구성이며, 이들은 고유한 주체들로 있지만 데이터 및 애플리케이션 이식가능성(portability)을 가능하게 해주는 표준화된 또는 소유권 있는 기술(예를 들어, 클라우드들 사이의 부하 균형을 위한 클라우드 버스팅(cloud bursting))에 의해 서로 결합되어 있다.
[0096] 클라우드 컴퓨팅 환경은 무국적(statelessness), 낮은 결합(low coupling), 모듈 방식(modularity), 및 의미적 상호운용성(semantic interoperability)에 집중하는 서비스를 지향한다. 클라우드 컴퓨팅의 중심에는 상호 연결된 노드들의 네트워크를 포함하는 하부구조가 있다.
[0097] 이제 도 7을 참조하면, 예시적인 클라우드 컴퓨팅 환경(700)이 도시된다. 도시된 바와 같이, 클라우드 컴퓨팅 네트워크(700)는 클라우드 소비자에 의해 사용되는 로컬 컴퓨팅 디바이스가 통신할 수 있는 하나 또는 그 이상의 클라우드 컴퓨팅 노드들(710)을 갖는 클라우드 컴퓨팅 환경(750)을 포함한다. 이들 로컬 컴퓨팅 디바이스들의 예들에는 개인 휴대 정보 단말기(PDA) 또는 셀룰러 전화(754A), 데스크톱 컴퓨터(754B), 랩톱 컴퓨터(754C) 및/또는 자동차 컴퓨터 시스템(754N)이 포함되지만 이에 국한되지는 않는다. 노드들(710) 내의 개별 노드들은 서로 통신할 수 있다. 그들은 여기에 기술된 바와 같은 사설, 커뮤니티, 공공, 또는 하이브리드 클라우드들 또는 이들의 조합 등의 하나 또는 그 이상의 네트워크들에서 물리적으로 또는 가상으로 그룹화될 수 있다(도시되지 않음). 이것은 클라우드 소비자가 로컬 컴퓨팅 디바이스 상에 자원들을 유지할 필요가 없게 클라우드 컴퓨팅 환경(700)이 하부구조, 플랫폼들 및/또는 소프트웨어를 서비스로서 제공할 수 있게 해준다. 도 7에 도시된 컴퓨팅 디바이스들(754A-N)의 유형들은 단지 예시의 목적으로 기술한 것이며 클라우드 컴퓨팅 환경(750)은 모든 유형의 네트워크 및/또는 네트워크 주소지정가능 연결을 통해서 (예를 들어, 웹 브라우저를 사용하여) 모든 유형의 컴퓨터화 된 디바이스와 통신할 수 있다는 것을 이해해야 한다.
[0098] 이제 도 8를 참조하면, 도 7의 클라우드 컴퓨팅 환경에 의해 제공되는 일 세트의 기능별 추상화 층들(800)이 도시된다. 도 8에 도시된 컴포넌트들, 층들, 및 기능들은 단지 예시의 목적이며 실시 예들에 한정되지 않는다는 것을 미리 이해해야 한다. 도시된 바와 같이, 다음의 층들과 그에 대응하는 기능들이 제공된다: 하드웨어 및 소프트웨어 층(810), 가상화 층(820), 관리 층(830), 및 워크로드 층(840).
[0099] 하드웨어 및 소프트웨어 층(810)은 하드웨어 및 소프트웨어 컴포넌트들을 포함한다. 하드웨어 컴포넌트들의 예들에는: 메인프레임들(일 예로 IBM® zSeries® systems); RISC(Reduced Instruction Set Computer) 아키텍처 기반 서버들(일 예로 IBM pSeries® systems); IBM xSeries® systems ; IBM BladeCenter® systems; 스토리지 디바이스들의 예들에는 네트워크 애플리케이션 서버 소프트웨어(일 예로는 IBM WebSphere® 애플리케이션 서버 소프트웨어) 및 데이터베이스 소프트웨어(일 예로는 IBM DB2® 데이터베이스 소프트웨어)가 포함된다 (IBM, zSeries, pSeries, xSeries, BladeCenter, WebSphere, 및 DB2 인터내셔널 비즈니스 머신즈 코포레이션의 전 세계 많은 국가들에서 등록된 상표들이다).
[00100] 가상화 층(820)은 추상화 층을 제공하며 이로부터 다음의 가상 주체들의 예들이 제공될 수 있다: 가상 서버들; 가상 스토리지; 가상 사설 네트워크를 포함하는, 가상 네트워크들; 가상 애플리케이션들 및 운영 체제들; 및 가상 클라이언트들.
[00101] 한 예에서, 관리 층(830)은 아래에 기술하는 기능들을 제공한다: 자원 제공(Resource provisioning), 계측 및 가격 책정(Metering and Pricing), 사용자 포털(User portal), 서비스 수준 관리(Service level management), 그리고 서비스 수준 협약서(SLA) 기획 및 충족(planning and fulfillment). 자원 제공(Resource provisioning)은 클라우드 컴퓨팅 환경 내에서 작업들을 수행하는 데 이용되는 컴퓨팅 자원들 및 기타 자원들의 동적 조달을 제공한다. 계측 및 가격 책정(Metering and Pricing)은 자원들이 클라우드 컴퓨팅 환경 내에서 이용될 때 비용 추적, 및 이 자원들의 소비에 대한 요금 청구 또는 송장을 제공한다. 한 예에서, 이 자원들은 애플리케이션 소프트웨어 라이센스를 포함할 수 있다. 보안(Security)은 데이터 및 기타 자원들에 대한 보호뿐만 아니라 클라우드 소비자들과 작업들에 대한 신원 확인을 제공한다. 사용자 포털(User portal)은 소비자들 및 시스템 관리자들에게 클라우드 컴퓨팅 환경에 대한 액세스를 제공한다. 서비스 수준 관리(Service level management)는 요구되는 서비스 수준이 충족되도록 클라우드 컴퓨팅 자원 할당 및 관리를 제공한다. 서비스 수준 협약서(SLA) 기획 및 충족(planning and fulfillment)은 SLA에 부합하는 예상되는 미래 요건에 맞는 클라우드 컴퓨팅 자원들의 사전-배치(pre-arrangement) 및 조달(procurement)을 제공한다.
[00102] 워크로드 층(840)은 클라우드 컴퓨팅 환경이 이용될 수 있는 기능들의 예들을 제공한다. 이 층에서 제공될 수 있는 워크로드들과 기능들의 예들은: 맵핑 및 네비게이션; 소프트웨어 개발 및 라이프사이클 관리; 가상 교실 교육 전달; 데이터 분석 처리; 트랜잭션 처리; 및 가상 대화 에이전트 관리를 포함하나, 이에 국한되지 않는다.
[00103] 자연 언어 입력을 평가하고, 대응하는 통신에서 질문을 검출하며, 답변으로 검출된 질문을 해결하고 및/또는 콘텐츠 처리 대화 로그 기록들을 지원하며 대화 시스템의 성능을 향상시키는 데 사용할 수 있는 출력을 생성하기 위한 시스템, 방법, 장치 및 컴퓨터 프로그램 제품이 여기에 개시되어 있음을 이해할 것이다.
[00104] 본 발명의 실시 예들 중 특정 실시 예들이 도시되고 설명되었지만, 본 발명의 기술적 사상들에 기초하여, 상기 실시 예들 및 그들의 더 넓은 특징들을 벗어나지 않고 변경들 및 수정들이 이루어질 수 있음이 당업자에게 명백할 것이다. 따라서, 첨부된 청구범위는 상기 실시 예들의 진정한 정신 및 범위 내에 있는 모든 그러한 변경들 및 수정들을 그 범위 내에 포함해야 한다. 또한, 상기 실시 예들은 첨부된 청구범위에 의해서만 정의되는 것으로 이해되어야 한다. 만일 도입된 청구항 엘리멘트에 특정 수의가 의도되었다면, 그러한 의도는 청구항에서 명시적으로 인용될 것이고 그러한 언급이 없는 경우 그러한 제한이 존재하지 않는다는 것이 당업자에 의해 이해될 것이다. 비제한적인 예로서, 이해를 돕기 위해 다음의 첨부된 청구범위는 청구 엘리멘트들을 도입하기 위해 "적어도 하나" 및 "하나 또는 그 이상"이라는 소개 문구들의 사용을 포함한다. 그러나 그러한 문구들의 사용은, 동일 청구항이 "하나 또는 그 이상" 또는 "적어도 하나"라는 도입 문구들 및 단수표현을 포함하고 있을 때에도, 단수표현에 의한 청구항 엘리멘트의 도입이 그러한 도입된 청구항 엘리멘트를 포함하는 특정 청구항을 그러한 엘리멘트를 오직 하나만 포함하는 실시 예들로 제한한다는 것을 의미하는 것으로 해석되어서는 안 된다.
[00105] 본 발명의 실시 예들은 시스템, 방법, 및/또는 컴퓨터 프로그램 제품이 될 수 있다. 또한, 본 발명의 실시 예들의 선택된 실시 예들은 전체 하드웨어 실시예, 전체 소프트웨어 실시예(펌웨어, 상주 소프트웨어, 마이크로코드 등 포함) 또는 일반적으로 여기에서 "회로", "모듈" 또는 "시스템"이라고 하는 소프트웨어 및/또는 하드웨어 실시 예들 결합한 실시예의 형태를 취할 수 있다. 또한, 본 발명의 실시예들의 특징들은 프로세서로 하여금 본 발명의 실시예들 특징들을 수행하게 하기 위한 컴퓨터 판독가능 프로그램 명령을 갖는 컴퓨터 판독가능 스토리지 매체(또는 매체)에 구현된 컴퓨터 프로그램 제품의 형태를 취할 수 있다. 따라서, 구현되었을 때, 본 발명의 개시된 시스템, 방법, 및/또는 컴퓨터 프로그램 제품은 의도 식별 및 식별된 의도와 관련된 대응 응답으로 질문들을 해결하기 위해 인공 지능 플랫폼의 기능 및 동작을 개선하도록 동작한다.
[00106] 상기 컴퓨터 판독 가능 스토리지 매체는 명령 실행 장치에 의해 사용될 명령들을 유지 및 저장할 수 있는 유형의(tangible) 디바이스일 수 있다. 상기 컴퓨터 판독 가능 스토리지 매체는, 예를 들면, 전자 스토리지 디바이스, 자기 스토리지 디바이스, 광 스토리지 디바이스, 전자기 스토리지 디바이스, 반도체 스토리지 디바이스, 또는 전술한 것들의 모든 적절한 조합일 수 있으며, 그러나 이에 한정되지는 않는다. 컴퓨터 판독 가능 스토리지 매체의 더 구체적인 예들의 비포괄적인 목록에는 다음이 포함될 수 있다: 휴대용 컴퓨터 디스켓, 하드 디스크, 랜덤 액세스 메모리(RAM), 판독-전용 메모리(ROM), 소거 및 프로그램가능 판독-전용 메모리(EPROM 또는 플래시 메모리), 정적 랜덤 액세스 메모리(SRAM), 휴대용 컴팩트 디스크 판독-전용 메모리(CD-ROM), 디지털 다용도 디스크(DVD), 메모리 스틱, 플로피 디스크, 천공-카드들 또는 명령들이 기록된 홈에 있는 융기된 구조들 같이 머신적으로 인코드 된 장치, 및 전술한 것들의 모든 적절한 조합. 본 명세서에서 사용될 때, 컴퓨터 판독 가능 스토리지 매체는 무선 전파들이나 다른 자유롭게 전파되는 전자기파들, 도파관이나 기타 전송 매체(예를 들어, 광섬유 케이블을 통해 전달되는 광 펄스들)를 통해 전파되는 전자기파들, 또는 선(wire)을 통해 전송되는 전기 신호들 같이 그 자체로 일시적인(transitory) 신호들로 해석되지는 않는다.
[00107] 본 명세서에 기술되는 컴퓨터 판독 가능 명령들은, 예를 들어, 인터넷, 근거리 통신망, 광역 통신망 및/또는 무선 네트워크 등의 통신망(네트워크)을 통해 컴퓨터 판독 가능 스토리지 매체로부터 각각 컴퓨팅/처리 디바이스들로 또는 외부 스토리지 디바이스로부터 외부 컴퓨터로 다운로드 될 수 있다. 상기 통신망은 구리 전송 케이블들, 광 전송 섬유들, 무선 전송, 라우터들, 방화벽들, 스위치들, 게이트웨이 컴퓨터들 및/또는 엣지 서버들을 포함할 수 있다. 각 컴퓨팅/처리 유닛 내 네트워크 어댑터 카드 또는 네트워크 인터페이스는 상기 통신망으로부터 컴퓨터 판독 가능 프로그램 명령들을 수신하고 그 컴퓨터 판독 가능 프로그램 명령들을 각각의 컴퓨팅/처리 디바이스 내의 컴퓨터 판독 가능 스토리지 매체에 저장하기 위해 전송한다.
[00108] 본 발명의 연산들을 실행하기 위한 컴퓨터 판독 가능 프로그램 명령들은 Smalltalk, C++ 또는 그와 유사 언어 등의 객체 지향 프로그래밍 언어와 "C" 프로그래밍 언어 또는 그와 유사한 프로그래밍 언어 등의 종래의 절차적 프로그래밍 언어들을 포함하여, 하나 또는 그 이상의 프로그래밍 언어들을 조합하여 작성된(written) 어셈블러 명령들, 명령-세트-아키텍처(ISA) 명령들, 머신 명령들, 머신 종속 명령들, 마이크로코드, 펌웨어 명령들, 상태-셋팅 데이터, 집적회로를 위한 구성 데이터, 또는 소스 코드나 목적 코드일 수 있다. 상기 컴퓨터 판독 가능 프로그램 명령들은 전적으로 사용자의 컴퓨터상에서, 부분적으로 사용자의 컴퓨터상에서, 독립형(stand-alone) 소프트웨어 패키지로서, 부분적으로 사용자의 컴퓨터상에서 그리고 부분적으로 원격 컴퓨터상에서 또는 전적으로 원격 컴퓨터나 서버상에서 실행될 수 있다. 위에서 마지막의 경우에, 원격 컴퓨터는 근거리 통신망(LAN) 또는 광역 통신망(WAN)을 포함한 모든 종류의 네트워크를 통해서 사용자의 컴퓨터에 접속될 수 있고, 또는 이 접속은 (예를 들어, 인터넷 서비스 제공자를 이용한 인터넷을 통해서) 외부 컴퓨터에 이루어질 수도 있다. 일부 실시 예들에서, 예를 들어 프로그램 가능 로직 회로, 필드-프로그램 가능 게이트 어레이들(FPGA), 또는 프로그램 가능 로직 어레이들(PLA)을 포함한 전자 회로는 본 발명의 실시 예들을 수행하기 위해 전자 회로를 맞춤화하도록 상기 컴퓨터 판독 가능 프로그램 명령들의 상태 정보를 활용하여 상기 컴퓨터 판독 가능 프로그램 명령들을 실행할 수 있다.
[00109] 본 발명의 특징들이 본 발명의 실시 예들에 따른 방법들, 장치들(시스템들), 및 컴퓨터 프로그램 제품들의 플로 차트 예시도들 및/또는 블록도들을 참조하여 기술된다. 플로 차트 예시도들 및/또는 블록도들의 각 블록과 플로 차트 예시도들 및/또는 블록도들 내 블록들의 조합들은 컴퓨터 판독 가능 프로그램 명령들에 의해 구현될 수 있다는 것을 이해할 수 있을 것이다.
[00110] 이들 컴퓨터 판독 가능 프로그램 명령들은 범용 컴퓨터, 특수목적용 컴퓨터, 또는 기타 프로그램가능 데이터 처리 유닛의 프로세서에 제공되어 머신(machine)을 생성하고, 그렇게 하여 그 명령들이 상기 컴퓨터 또는 기타 프로그램가능 데이터 처리 유닛의 프로세서를 통해서 실행되어, 상기 플로 차트 및/또는 블록도의 블록 또는 블록들에 명시된 기능들/동작들을 구현하기 위한 수단을 생성할 수 있다. 이들 컴퓨터 판독 가능 프로그램 명령들은 또한 컴퓨터 판독 가능 스토리지 매체에 저장될 수 있으며, 컴퓨터, 프로그램가능 데이터 처리 유닛 및/또는 기타 디바이스들에 지시하여 명령들이 저장된 상기 컴퓨터 판독 가능 스토리지 매체가 상기 플로 차트 및/또는 블록도의 블록 또는 블록들에 명시된 기능/동작의 특징들을 구현하는 명령들을 포함하는 제조품(an article of manufacture)을 포함하도록 특정한 방식으로 기능하게 할 수 있다.
[00111] 상기 컴퓨터 판독 가능 프로그램 명령들은 또한 컴퓨터, 기타 프로그램가능 데이터 처리 유닛, 또는 다른 디바이스에 로드 되어, 상기 컴퓨터, 기타 프로그램가능 장치 또는 다른 디바이스에서 일련의 동작 단계들이 수행되게 하여 컴퓨터 구현 프로세스를 생성하며, 그렇게 하여 상기 컴퓨터, 기타 프로그램가능 장치, 또는 다른 디바이스 상에서 실행되는 명령들이 플로 차트 및/또는 블록도의 블록 또는 블록들에 명시된 기능들/동작들을 구현할 수 있다.
[00112] 도면들 내 플로 차트 및 블록도들은 본 발명의 여러 실시 예들에 따른 시스템들, 방법들 및 컴퓨터 프로그램 제품들의 가능한 구현들의 아키텍처, 기능(functionality), 및 연산(operation)을 예시한다. 이와 관련하여, 상기 플로 차트 또는 블록도들 내 각 블록은 상기 명시된 로직 기능(들)을 구현하기 위한 하나 또는 그 이상의 실행 가능한 명령들을 포함한 모듈, 세그먼트 또는 명령들의 일부분을 나타낼 수 있다. 일부 다른 실시 예들에서, 상기 블록에 언급되는 기능들은 도면들에 언급된 순서와 다르게 일어날 수도 있다. 예를 들면, 연속으로 도시된 두 개의 블록들은 실제로는 사실상 동시에 실행될 수도 있고, 또는 이 두 블록들은 때때로 관련된 기능에 따라서는 역순으로 실행될 수도 있다. 블록도들 및/또는 플로 차트 예시도의 각 블록, 및 블록도들 및/또는 플로 차트 예시도 내 블록들의 조합들은 특수목적용 하드웨어 및 컴퓨터 명령들의 명시된 기능들 또는 동작들, 또는 이들의 조합들을 수행하는 특수목적용 하드웨어-기반 시스템들에 의해 구현될 수 있다는 것에 또한 주목해야 한다.
[00113] 특정 실시 예들이 예시의 목적으로 여기에 설명되었지만, 상기 실시 예들의 정신 및 범위를 벗어나지 않고 다양한 수정들이 이루어질 수 있음을 이해할 것이다. 특히, 자연어 처리는 다양한 컴퓨팅 플랫폼들에 의해 또는 여러 디바이스들에 걸쳐 수행될 수 있다. 또한 데이터 스토리지 및/또는 말뭉치(corpus)는 로컬에 위치하거나, 원격에 위치하거나 또는 여러 시스템들에 걸쳐 분산될 수 있다. 따라서, 본 발명의 실시 예들의 보호 범위는 다음 청구범위 및 그 균등물에 의해서만 제한된다.

Claims (18)

  1. 컴퓨터 시스템에 있어서, 상기 컴퓨터 시스템은:
    대화 시스템의 자동화된 가상 대화 에이전트와의 상호작용들에 관한 복수의 대화 로그 파일들을 수신하기 위해 메모리에 작동 가능하게 결합된 처리 유닛 - 상기 대화 로그 파일들 각각은 하나 혹은 그 이상의 대화 이벤트들의 기록(a trace)을 포함함-;
    상기 처리 유닛과 통신하는 인공 지능(AI) 플랫폼을 포함하고, 상기 AI 플랫폼은:
    기록 관리자(a trace manager) - 상기 기록 관리자는 상기 대화 로그 파일들의 기록들의 대화 이벤트들을 복수의 파싱된 이벤트들로 파싱하고 그리고 상기 기록들로부터 각각의 행동 특성들을 추출하여 각 행동 특성 값들을 상기 기록들에 할당함-;
    클러스터 관리자(a cluster manager) - 상기 클러스터 관리자는 상기 기록 관리자에 작동 가능하게 결합되어, 각 결과 값들에 대한 상기 기록들의 각 행동 특성 값들의 근접성에 기초하여 상기 기록들을 복수의 클러스터들로 모으고(cluster), 상기 복수의 클러스터들은 제1 결과를 나타내는 제1 결과 값에 근접한 상기 각 행동 특성 값들을 갖는 상기 기록들의 제1 클러스터와 상기 제1 결과와 다른 제2 결과를 나타내는 제2 결과 값에 근접한 상기 각 행동 특성 값들을 갖는 상기 기록들의 제2 클러스터를 포함함-;
    검색 관리자(a search manager) - 상기 검색 관리자는 상기 클러스터 관리자에 작동 가능하게 결합되어, 대조 패턴(a contrastive pattern)에 대해 상기 복수의 파싱된 이벤트들을 검색하되, 상기 복수의 파싱된 이벤트들 중 적어도 하나의 파싱된 이벤트에 시간적 조건을 수반하는 패턴 스펙을 적용하는 단계를 포함함-를 포함하며, 그리고
    상기 적어도 하나의 파싱된 이벤트에 대해, 상기 검색 관리자는 상기 대조 패턴이 대조 임계값을 충족하는지를 결정하고, 상기 대조 패턴은 상기 패턴 스펙이 유효한(hold true) 제1 클러스터의 기록들의 제1 비율 및 상기 패턴 스펙이 유효하지 않는(hold not true) 제2 클러스터의 기록들의 제2 비율에 기초하며; 그리고
    상기 AI 플랫폼으로부터의 출력은 상기 대화 시스템의 성능을 향상시키기 위해 적어도 상기 적어도 하나의 파싱된 이벤트에 대응하는 대화 이벤트와 관련하여 상기 자동화된 가상 대화 에이전트에 적용되는
    컴퓨터 시스템.
  2. 제1항에 있어서, 상기 대조 패턴이 대조 임계값을 충족하는지를 결정하기 위해 상기 검색 관리자는 상기 제1 비율에 상기 제2 비율을 곱하여 대조 패턴 값을 계산하고 상기 계산된 대조 패턴 값을 대조 임계값과 비교하도록 구성되는
    컴퓨터 시스템.
  3. 제1항에 있어서, 상기 대조 패턴이 대조 임계값을 충족하는지를 결정하기 위해 상기 검색 관리자는 상기 제1 및 제2 비율들의 프로덕트에 0 내지 1 범위의 가중치를 곱하여 대조 패턴 값을 계산하고 상기 계산된 대조 패턴 값을 대조 임계값과 비교하도록 구성되는
    컴퓨터 시스템.
  4. 제1항에 있어서, 상기 행동 특성들은 상기 대화 시스템에 의한 성공적인 트랜잭션 및 상기 대화 시스템에 의한 성공적이지 못한 트랜잭션을, 각각, 포함하는
    컴퓨터 시스템.
  5. 제1항에 있어서, 시간 조건을 수반하는 패턴 스펙을 적용하기 위해 상기 검색 관리자는, 제1 라이브러리에 저장된, 복수의 패턴 스펙들로부터 상기 패턴 스펙을 선택하도록 구성되는
    컴퓨터 시스템.
  6. 제5항에 있어서, 상기 복수의 파싱된 이벤트들 중 적어도 하나의 파싱된 이벤트에 대해 시간적 조건을 수반하는 패턴 스펙을 적용하기 위해 상기 검색 관리자는 제2 라이브러리에 저장된 복수의 변수 스펙들로부터 적어도 하나의 파싱된 이벤트에 대응하는 변수 스펙을 선택하도록 구성되고, 상기 제1 및 제2 라이브러리들은 동일하거나 상이한 라이브러리들일 수 있는
    컴퓨터 시스템.
  7. 가상 대화 에이전트 시스템의 성능을 향상시키기 위한 컴퓨터 프로그램 제품에 있어서, 상기 컴퓨터 프로그램 제품은 프로그램 코드가 구현된 컴퓨터 판독 가능 저장 매체를 포함하고, 상기 프로그램 코드는 프로세서에 의해 실행 가능하며, 방법을 수행하도록 구성되고, 상기 방법은:
    대화 시스템의 자동화된 가상 대화 에이전트와의 상호작용들에 관한 복수의 대화 로그 파일들을 수신하는 단계 - 상기 대화 로그 파일들은 하나 혹은 그 이상의 대화 이벤트들을 포함하는 각각의 기록들을 포함함-;
    상기 수신된 대화 로그 파일들을 학습 프로그램을 포함하는 인공 지능(AI) 플랫폼에 적용하는 단계를 포함하며, 상기 학습 프로그램을 포함하는 인공 지능(AI) 플랫폼 동작들을 수행하고, 상기 동작들은:
    상기 대화 로그 파일들의 기록들의 대화 이벤트들을 복수의 파싱된 이벤트들로 파싱하는 단계;
    상기 기록들로부터 각각의 행동 특성들을 추출하고 각각의 행동 특성 값들을 상기 기록들에 할당하는 단계;
    각각의 결과 값들에 대한 상기 기록들의 각각의 행동 특성들 값들의 근접성에 기초하여 상기 기록들을 복수의 클러스터들로 모으는 단계(cluster) - 상기 복수의 클러스터들은 제1 결과를 나타내는 제1 결과 값에 근접한 각각의 행동 특성 값들을 갖는 상기 기록들의 제1 클러스터와 상기 제1 결과와는 다른 제2 결과를 나타내는 제2 결과 값에 근접한 각각의 행동 특성 값들을 갖는 기록들의 제2 클러스터를 포함함 - ;
    대조 패턴에 대해 상기 복수의 파싱된 이벤트들을 검색하는 단계 - 상기 검색하는 단계는 상기 복수의 파싱된 이벤트들 중 적어도 하나의 파싱된 이벤트에 대해 시간 조건을 수반하는 패턴 스펙을 적용하는 단계를 포함함 -; 및
    상기 적어도 하나의 파싱된 이벤트에 대해, 상기 대조 패턴이 대조 임계값을 충족하는지를 결정하는 단계를 포함하고, 상기 대조 패턴은 상기 패턴 스펙이 유효한(hold true) 제1 클러스터의 기록들의 제1 비율 및 상기 패턴 스펙이 유효하지 않는(hold not true) 제2 클러스터의 기록들의 제2 비율에 기초하며; 그리고
    상기 AI 플랫폼으로부터의 출력은 상기 대화 시스템의 성능을 향상시키기 위해 적어도 상기 적어도 하나의 파싱된 이벤트에 대응하는 대화 이벤트와 관련하여 상기 자동화된 가상 대화 에이전트에 적용되는
    컴퓨터 프로그램 제품.
  8. 제7항에 있어서, 상기 프로그램 코드는 상기 대조 패턴이 대조 임계값을 충족하는지를 결정하기 위해 상기 제1 비율에 상기 제2 비율을 곱하여 대조 패턴 값을 계산하고 상기 계산된 대조 패턴 값을 대조 임계값과 비교하도록 구성되는 상기 프로세서에 의해 실행가능한 프로그램 코드를 포함하는
    컴퓨터 프로그램 제품.
  9. 제7항에 있어서, 상기 프로그램 코드는 상기 대조 패턴이 대조 임계값을 충족하는지를 결정하기 위해 상기 제1 및 제2 비율들의 프로덕트에 0 내지 1 범위의 적어도 하나의 가중치를 곱하여 대조 패턴 값을 계산하고 상기 계산된 대조 패턴 값을 대조 임계값과 비교하도록 구성되는 상기 프로세서에 의해 실행가능한 프로그램 코드를 포함하는
    컴퓨터 프로그램 제품.
  10. 제7항에 있어서, 상기 행동 특성들은 상기 대화 시스템에 의한 성공적인 트랜잭션 및 상기 대화 시스템에 의한 성공하지 못한 트랜잭션을, 각각, 포함하는
    컴퓨터 프로그램 제품.
  11. 제7항에 있어서, 상기 프로그램 코드는 시간 조건을 수반하는 패턴 스펙을 적용하기 위해 제1 라이브러리에 저장된 복수의 패턴 스펙들로부터 상기 패턴 스펙을 선택하도록 구성되는 상기 프로세서에 의해 실행가능한 프로그램 코드를 포함하는
    컴퓨터 프로그램 제품.
  12. 제11항에 있어서, 상기 복수의 파싱된 이벤트들 중 적어도 하나의 파싱된 이벤트에 대해 시간적 조건을 수반하는 패턴 스펙을 적용하기 위해 상기 프로그램 코드는 제2 라이브러리에 저장된 복수의 변수 스펙들로부터 적어도 하나의 파싱된 이벤트에 대응하는 변수 스펙을 선택하도록 구성되는 상기 프로세서에 의해 실행가능한 프로그램 코드를 포함하고, 상기 제1 및 제2 라이브러리들은 동일하거나 상이한 라이브러리들일 수 있는
    컴퓨터 프로그램 제품.
  13. 대화 시스템의 성능을 개선하기 위한 머신-구현 방법에 있어서, 상기 방법은:
    대화 시스템의 자동화된 가상 대화 에이전트와의 상호작용들에 관한 복수의 대화 로그 파일들을, 컴퓨팅 디바이스의 프로세서에 의해, 수신하는 단계 - 상기 대화 로그 파일들은 하나 혹은 그 이상의 대화 이벤트들을 포함하는 각각의 기록들을 포함함-;
    상기 수신된 대화 로그 파일들을 학습 프로그램을 포함하는 인공 지능(AI) 플랫폼에, 상기 프로세서에 의해, 적용하는 단계를 포함하며, 상기 적용하는 단계는:
    상기 대화 로그 파일들의 기록들의 대화 이벤트들을 복수의 파싱된 이벤트들로 파싱하는 단계;
    상기 기록들로부터 각각의 행동 특성들을 추출하고 각각의 행동 특성 값들을 상기 기록들에 할당하는 단계;
    각각의 결과 값들에 대한 상기 기록들의 각각의 행동 특성들 값들의 근접성에 기초하여 상기 기록들을 복수의 클러스터들로 모으는 단계(clustering) - 상기 복수의 클러스터들은 제1 결과를 나타내는 제1 결과 값에 근접한 각각의 행동 특성 값들을 갖는 상기 기록들의 제1 클러스터와 상기 제1 결과와는 다른 제2 결과를 나타내는 제2 결과 값에 근접한 각각의 행동 특성 값들을 갖는 기록들의 제2 클러스터를 포함함 - ;
    대조 패턴에 대해 상기 복수의 파싱된 이벤트들을 검색하는 단계 - 상기 검색하는 단계는 상기 복수의 파싱된 이벤트들 중 적어도 하나의 파싱된 이벤트에 대해 시간 조건을 수반하는 패턴 스펙을 적용하는 단계를 포함함 -; 및
    상기 적어도 하나의 파싱된 이벤트에 대해, 상기 대조 패턴이 대조 임계값을 충족하는지를 결정하는 단계 - 상기 대조 패턴은 상기 패턴 스펙이 유효한(hold true) 제1 클러스터의 기록들의 제1 비율 및 상기 패턴 스펙이 유효하지 않는(hold not true) 제2 클러스터의 기록들의 제2 비율에 기초함-; 그리고
    상기 대화 시스템의 성능을 향상시키기 위해 적어도 상기 적어도 하나의 파싱된 이벤트에 대응하는 대화 이벤트와 관련하여 상기 자동화된 가상 대화 에이전트를 개량하는 단계(refining)를 포함하는
    머신-구현 방법.
  14. 제13항에 있어서, 상기 대조 패턴이 대조 임계값을 충족하는지를 결정하는 단계는 상기 제1 비율에 상기 제2 비율을 곱하여 대조 패턴 값을 계산하고 상기 계산된 대조 패턴 값을 대조 임계값과 비교하는 단계를 포함하는
    머신-구현 방법은.
  15. 제13항에 있어서, 상기 대조 패턴이 대조 임계값을 충족하는지를 결정하는 단계는 상기 제1 및 제2 비율들에 0 내지 1 범위의 가중치를 곱하여 대조 패턴 값을 계산하고 상기 계산된 대조 패턴 값을 대조 임계값과 비교하는 단계를 포함하는
    머신-구현 방법은.
  16. 제13항에 있어서, 상기 행동 특성들은 상기 대화 시스템에 의한 성공적인 트랜잭션 및 상기 대화 시스템에 의한 성공적이지 못한 트랜잭션을, 각각, 포함하는
    머신-구현 방법.
  17. 제13항에 있어서, 시간 조건을 수반하는 패턴 스펙을 적용하는 단계는 제1 라이브러리에 저장된 복수의 패턴 스펙들로부터 상기 패턴 스펙을 선택하는 단계를 포함하는,
    머신-구현 방법.
  18. 제17항에 있어서, 상기 머신-구현 방법은:
    상기 복수의 파싱된 이벤트들 중 적어도 하나의 파싱된 이벤트에 대해 시간 조건을 수반하는 패턴 스펙을 적용하는 단계는 제2 라이브러리에 저장된 복수의 변수 스펙들로부터 상기 파싱된 적어도 하나의 이벤트에 대응하는 변수 스펙을 선택하는 단계를 포함하고, 상기 제1 및 제2 라이브러리들은 동일하거나 상이한 라이브러리들일 수 있는
    머신-구현 방법.
KR1020227020625A 2020-01-15 2020-12-17 대조적인 시간 패턴들에 대한 가상 에이전트 대화 시스템의 대화 로그들 검색 KR20220103147A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/743,211 2020-01-15
US16/743,211 US11409965B2 (en) 2020-01-15 2020-01-15 Searching conversation logs of a virtual agent dialog system for contrastive temporal patterns
PCT/IB2020/062080 WO2021144638A1 (en) 2020-01-15 2020-12-17 Searching conversation logs of virtual agent dialog system for contrastive temporal patterns

Publications (1)

Publication Number Publication Date
KR20220103147A true KR20220103147A (ko) 2022-07-21

Family

ID=76763341

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227020625A KR20220103147A (ko) 2020-01-15 2020-12-17 대조적인 시간 패턴들에 대한 가상 에이전트 대화 시스템의 대화 로그들 검색

Country Status (8)

Country Link
US (1) US11409965B2 (ko)
JP (1) JP2023510241A (ko)
KR (1) KR20220103147A (ko)
CN (1) CN115004174A (ko)
AU (1) AU2020422535B2 (ko)
DE (1) DE112020005296T5 (ko)
GB (1) GB2607482A (ko)
WO (1) WO2021144638A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11768835B2 (en) * 2020-01-31 2023-09-26 Salesforce, Inc. Merging multiple unsynchronized streams of related events and multi-tenant support
WO2023212271A1 (en) * 2022-04-28 2023-11-02 Theai, Inc. Observation-based training of artificial intelligence character models

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6346879B1 (en) 2000-05-05 2002-02-12 Lucent Technologies, Inc. Verification of message sequence charts
US8539359B2 (en) 2009-02-11 2013-09-17 Jeffrey A. Rapaport Social network driven indexing system for instantly clustering people with concurrent focus on same topic into on-topic chat rooms and/or for generating on-topic search results tailored to user preferences regarding topic
US20110161310A1 (en) 2009-12-30 2011-06-30 Wei Tang Database query plan analysis and difference processing
EP2839391A4 (en) 2012-04-20 2016-01-27 Maluuba Inc CONVERSATION AGENT
US9390208B2 (en) 2013-06-14 2016-07-12 Synopsys, Inc. Formal verification of temporal properties expressed using local variables
WO2015100362A1 (en) 2013-12-23 2015-07-02 24/7 Customer, Inc. Systems and methods for facilitating dialogue mining
CN104809325B (zh) 2014-01-26 2018-06-01 国际商业机器公司 用于检测事件日志和过程模型之间的区别的方法和装置
KR101594500B1 (ko) 2015-08-12 2016-02-16 주식회사 스캐터랩 채팅내용에 기반하여 필요정보를 제공하는 인공지능 채팅 방법
DE102016124588A1 (de) 2016-12-16 2018-06-21 Vdm Metals International Gmbh Verwendung einer nickel-chrom-molybdän-legierung
CN106997375B (zh) 2017-02-28 2020-08-18 浙江大学 基于深度学习的客服回复推荐方法
US10498898B2 (en) 2017-12-13 2019-12-03 Genesys Telecommunications Laboratories, Inc. Systems and methods for chatbot generation
KR101881744B1 (ko) 2017-12-18 2018-07-25 주식회사 머니브레인 대화형 ai 에이전트 시스템을 위한 계층적 대화 흐름 관리 모델을 자동으로 구축 또는 갱신하는 방법, 컴퓨터 장치 및 컴퓨터 판독가능 기록 매체
CN109986569B (zh) 2017-12-29 2022-08-23 微软技术许可有限责任公司 具有角色化和性格化的聊天机器人
US10515155B2 (en) 2018-02-09 2019-12-24 Digital Genius Limited Conversational agent
US10997222B2 (en) * 2018-06-29 2021-05-04 International Business Machines Corporation Conversational agent dialog flow user interface
CN109002515A (zh) 2018-07-04 2018-12-14 网宿科技股份有限公司 一种智能应答的方法和装置

Also Published As

Publication number Publication date
GB2607482A (en) 2022-12-07
WO2021144638A1 (en) 2021-07-22
AU2020422535B2 (en) 2023-11-23
JP2023510241A (ja) 2023-03-13
AU2020422535A1 (en) 2022-06-09
GB202211294D0 (en) 2022-09-14
DE112020005296T5 (de) 2022-08-25
CN115004174A (zh) 2022-09-02
US20210216724A1 (en) 2021-07-15
US11409965B2 (en) 2022-08-09

Similar Documents

Publication Publication Date Title
US10789552B2 (en) Question answering system-based generation of distractors using machine learning
US20210117627A1 (en) Automated Testing of Dialog Systems
US10621074B2 (en) Intelligent device selection for mobile application testing
US11237806B2 (en) Multi objective optimization of applications
US10185753B1 (en) Mining procedure dialogs from source content
CN114730383A (zh) 使用循环神经网络融合多模态数据
US20230092274A1 (en) Training example generation to create new intents for chatbots
US11126646B2 (en) Implicit and explicit cognitive analyses for data content comprehension
AU2020422535B2 (en) Searching conversation logs of virtual agent dialog system for contrastive temporal patterns
US11099107B2 (en) Component testing plan considering distinguishable and undistinguishable components
US11144727B2 (en) Evaluation framework for intent authoring processes
US11714855B2 (en) Virtual dialog system performance assessment and enrichment
US20230127907A1 (en) Intention identification in dialogue system
US11677692B2 (en) Conversational systems content related to external events
JP2023002475A (ja) コンピュータシステム、コンピュータプログラムおよびコンピュータで実装される方法(因果関係知識の識別および抽出)
US11288322B2 (en) Conversational agents over domain structured knowledge
US20230252067A1 (en) Ranking explanatory variables in multivariate analysis
US10984028B2 (en) Temporal sensitive cognitive interface
US20230316101A1 (en) Knowledge Graph Driven Content Generation
CN116956901A (zh) 虚拟对话系统动态上下文收集

Legal Events

Date Code Title Description
A201 Request for examination