KR102582513B1 - 자동 내비게이션을 용이하게 하기 위한 웹 페이지 분석 - Google Patents

자동 내비게이션을 용이하게 하기 위한 웹 페이지 분석 Download PDF

Info

Publication number
KR102582513B1
KR102582513B1 KR1020217008316A KR20217008316A KR102582513B1 KR 102582513 B1 KR102582513 B1 KR 102582513B1 KR 1020217008316 A KR1020217008316 A KR 1020217008316A KR 20217008316 A KR20217008316 A KR 20217008316A KR 102582513 B1 KR102582513 B1 KR 102582513B1
Authority
KR
South Korea
Prior art keywords
user
web page
candidate
implementations
interactive
Prior art date
Application number
KR1020217008316A
Other languages
English (en)
Other versions
KR20210035319A (ko
Inventor
괴칸 바키르
안드레 엘리시프
토르스텐 마렉
다 실바 주앙 파울로 파가임
마티아스 칼렌
다나 리터
루카스 수더
어니스트 갤브룬
매튜 스토크스
마르신 노왁-프리지고즈키
무구렐 이오누트 안드레이카
마리우스 두미트란
Original Assignee
구글 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 구글 엘엘씨 filed Critical 구글 엘엘씨
Priority to KR1020237032242A priority Critical patent/KR102643444B1/ko
Publication of KR20210035319A publication Critical patent/KR20210035319A/ko
Application granted granted Critical
Publication of KR102582513B1 publication Critical patent/KR102582513B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/954Navigation, e.g. using categorised browsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/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
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9532Query formulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/16Sound input; Sound output
    • G06F3/167Audio in a user interface, e.g. using voice commands for navigating, audio feedback
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/30Semantic analysis
    • G06F40/35Discourse or dialogue representation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S715/00Data processing: presentation processing of document, operator interface processing, and screen saver display processing
    • Y10S715/978Audio interaction as part of an operator interface

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

예를 들어, 자동화된 어시스턴트 또는 다른 사용자 인터페이스를 통해 이러한 웹 사이트의 호스트로부터 최소한의 노력으로 이러한 웹 사이트와의 자동 참여를 촉진하기 위해 기존의 인터렉티브 웹 사이트를 분석하기 위한 구현이 여기에 설명되어 있다. 예를 들어, 다양한 구현에서, 여기에 설명된 기술은 다양한 인터렉티브 웹 사이트를 탐색하는 데 사용할 수 있는 개별 액션 및 액션의 "트레이스"를 추상화, 검증, 유지, 일반화, 확장 및/또는 배포하는 데 사용될 수 있다. 추가로, 제3자 웹 사이트와의 상호작용 양태를 자동화하기 위해 이러한 액션 및/또는 트레이스를 활용하기 위한 기술이 여기에 설명되어 있다. 예를 들어, 일부 구현에서, 여기에 설명된 기술은 사용자가 제3자 웹 사이트와 직접 시각적으로 상호작용하도록 요구하지 않고 제3자가 자신의 제3자 에이전트를 구현하도록 요구하지 않고 제3자 웹 사이트와 상호작용하기 위해 (말하거나 입력한 대화 세션을 통해) 자동화된 어시스턴트와 상호작용할 수 있게 한다.

Description

자동 내비게이션을 용이하게 하기 위한 웹 페이지 분석
본 명세서는 자동 내비게이션을 용이하게 하기 위한 웹 페이지 분석에 관한 것이다.
인간은 여기에서 "자동화된 어시스턴트"("챗봇", "인터렉티브 개인 어시스턴트", "지능형 개인 어시스턴트", "개인 음성 어시스턴트", "대화 에이전트", "가상 어시스턴트" 등이라고도 함)라고 하는 인터렉티브 소프트웨어 애플리케이션을 사용하여 인간 대 컴퓨터 대화에 참여할 수 있다. 예를 들어, 인간(자동 어시스턴트와 상호작용할 때 "사용자"라고 할 수 있음)은 텍스트로 변환된 음성 발화를 포함할 수 있는 자유 형식 자연어 입력을 사용하여 명령, 쿼리 및/또는 요청(통칭하여 "쿼리"라고 함)을 제공한 다음 처리 및/또는 형식화된 자유 형식 자연어 입력을 제공할 수 있다. 자동화된 어시스턴트는 사용자의 의도(intent)를 식별하고 이에 응답하기 위해 자연어 처리, 구문 처리, 의미 처리 등과 같은 자연어 입력에 대해 다양한 유형의 처리(프로세싱)를 수행할 수 있다.
자동화된 어시스턴트는 자동화된 어시스턴트 자체가 완전히 응답할 수 없는 일부 유형의 사용자 의도에 응답하기 위해 타사 소프트웨어 에이전트 또는 "제3자 에이전트"와 상호작용할 수 있다. 예를 들면, 레스토랑, 라이드 셰어(ride share) 서비스 등과 같은 벤더는 예를 들어, 자동화된 어시스턴트가 사용자와 제3자 에이전트 간의 연락(liaison) 역할을 할 수 있도록 자동화된 어시스턴트의 애플리케이션 프로그래밍 인터페이스(API")와 상호작용하도록 구성된 자체 제3자 에이전트를 설계할 수 있다. 그러나 이러한 개발 패러다임은 확장 속도가 느릴 수 있다. 각 벤더는 먼저 자동화된 어시스턴트의 API와 호환되는 제3자 에이전트를 생성해야 한다. 이를 위해서는 많은 벤더가 처분할 수 있는 것보다 더 많은 리소스 및/또는 기술적 정교함이 필요할 수 있다. 더욱이 많은 벤더는 사용자가 다양한 아이템 및/또는 서비스를 조달하기 위해 상호작용할 수 있는 인터렉티브 웹 페이지 및/또는 모바일 애플리케이션("앱")을 이미 구축했다. 이러한 벤더가 자동화된 어시스턴트와 호환되는 또 다른 인터페이스를 설계하도록 요구하면 적어도 벤더의 관점에서 보면 노력의 중복으로 보일 수 있다.
예를 들어, 자동화된 어시스턴트 또는 다른 사용자 인터페이스를 통해 이러한 웹 사이트의 호스트(예를 들어, 벤더)로부터 최소한의 노력으로 이러한 웹 사이트와의 자동 참여를 촉진하기 위해 기존의 인터렉티브 웹 사이트(해당 웹 사이트를 구성하는 개별 HTML, XML, CSS 및/또는 JavaScript 웹 페이지 포함)를 분석하기 위한 기술이 여기에 설명되어 있다. 예를 들어, 다양한 구현에서, 여기에 설명된 기술은 다양한 인터렉티브 웹 사이트를 탐색(내비게이션)하는 데 사용할 수 있는 개별 액션(동작) 및 액션의 "스크립트"(즉, 액션 시퀀스)를 추상화, 검증, 유지, 일반화, 확장 및/또는 배포하는 데 사용될 수 있다. 추가로, 제3자 웹 사이트와의 상호작용 양태를 자동화하기 위해 이러한 액션 및/또는 트레이스(trace)를 활용하기 위한 기술이 여기에 설명되어 있다. 예를 들어, 일부 구현에서, 사용자가 제3자 웹 사이트와 직접 시각적으로 상호작용하도록 요구하지 않고 그리고 제3자가 자신의 제3자 에이전트를 구현하도록 요구하지 않고 제3자 웹 사이트와 상호작용하기 위해 사용자가 자동화된 어시스턴트와 (말하거나 입력한 대화 세션을 통해) 상호작용할 수 있도록 하는 기술이 사용될 수 있다.
사용자가 자동화된 어시스턴트가 일부 벤더를 사용하여 일부 액션(예: 품목 또는 서비스 조달)을 수행하도록 요청한다고 가정한다. 특정 벤더가 아직 자동화된 어시스턴트가 직접 상호작용할 수 있는 제3자(타사) 에이전트를 생성하지 않았지만 사용자가 아이템 또는 서비스를 조달(procure)하기 위해 조작할 수 있는 하나 이상의 인터렉티브 요소가 있는 일련의 웹 페이지가 있는 인터렉티브 웹 사이트가 벤더에 있다고 가정한다. 여기에 설명된 기술을 사용하여, 인터렉티브 웹 사이트의 제1 웹 페이지(예: 오프닝 웹 페이지)는 분석 및/또는 처리(프로세싱)되어 사용자와 연관된 현재 사용자 상태를 생성할 수 있다. 이 현재 사용자 상태는 의미가 풍부한 특징 벡터(semantically-rich feature), 잠재 공간(latent space)에 임베딩 등과 같은 다양한 방식으로 표현될 수 있다. 현재 사용자 상태는 또한 사용자에 의해 제공되는 하나 이상의 파라미터(예: 자연어 입력의 일부로), 사용자의 하나 이상의 선호도(예: 선호하는 피자 토핑 또는 크러스트 스타일), 사용자에 의한 이전 액션(예: 사용자가 어떻게 여기에 왔는지, 사용자의 이전 검색, 어시스턴트에 대한 이전 요청, 자동화된 어시스턴트와의 활발한 대화 주제, 이전 사용자 상태 등) 등과 같은 다른 정보를 포함할 수 있다. 일부 구현에서, 현재 사용자 상태는 또한 현재 웹 페이지의 각각의 인터렉티브 요소(예: 라디오 버튼, 입력 필드, 제출 버튼, 검색 버튼, 드롭 다운 목록(리스트), 좌석 배치도 등)에 대한 컨텍스트 클루(contextual clues)를 포함하는 "유니버설(범용) 식별자 매트릭스"로 지칭될 하나 이상의 것을 포함할 수 있다. 범용 식별자 매트릭스에 대해서는 자세히 설명될 것이다.
다양한 구현에서, 현재 사용자 상태는 예를 들어 하나 이상의 후보 사용자 상태를 식별하기 위해 하나 이상의 데이터베이스에 포함된 복수의 과거 사용자 상태와 비교될 수 있다. 이러한 과거 사용자 상태는 동일한 웹 사이트 또는 다른 웹 사이트(들)과의 이전 상호작용 중에 생성된 사용자 상태를 나타낼 수 있으며 현재 사용자 상태에 포함된 것과 유사한 정보를 포함할 수 있다. 이러한 과거 사용자 상태에는 하나 이상의 라디오 박스 확인, 드롭 다운 메뉴에서 특정 아이템 선택, 특정 파라미터 등으로 특정 입력 필드 채우기와 같이 이전 상호작용(인터랙션) 중에 수행된 인터렉티브 요소에 해당하는 관련 액션도 포함될 수 있다.
후보 사용자 상태는 다양한 기준에 따라 식별될 수 있다. 예를 들어, 일부 구현에서, 후보 사용자 상태는 그들과 현재 사용자 상태 사이의 유사성 측정치(예를 들어, 유클리드(Euclidian) 거리, 유사한 범용 식별자 매트릭스 등)에 기초하여 과거 사용자 상태의 더 큰 수퍼세트(superset)로부터 식별될 수 있다. 일부 구현에서, 일부 유사성 임계값을 만족하는 현재 사용자 상태에 대한 유사성 측정치를 갖는 과거 사용자 상태만이 (즉, 시간이 지남에 따라 커질 수 있는 모든 과거 사용자 상태에서 검색 공간을 줄이기 위해) 후보 사용자 상태로 간주될 수 있다. 유사성 측정치를 사용하는 한 가지 이점은 후보 사용자 상태가 현재 사용자 상태와 유사 할 가능성이 있다는 것이다. 결과적으로 후보 과거 사용자 상태를 생성하는 데 사용된 웹 페이지에서 성공적으로 수행된 액션은 현재 사용자 상태에서 성공할 가능성이 높다.
후보 사용자 상태가 식별되면 일부 구현에서, 예를 들어, 각각의 범용 식별자 매트릭스와 현재 사용자 상태가 생성되는 현재 웹 페이지의 유사성 등에 기초하여, 현재 사용자 상태에 대한 각각의 유사성 측정치에 기초하여 순위가 매겨(순위화)질 수 있다. 그 다음, 최상위 순위 후보 사용자 상태가 선택될 수 있고, 최상위 순위 상태와 연관된 하나 이상의 액션이 예를 들어 현재 웹 페이지의 하나 이상의 인터렉티브 요소와 (즉, 명시적인 사용자 입력없이) 자동으로 상호작용하기 위해 수행될 수 있다. 하나 이상의 수행된 액션이 성공하지 못한 것으로 판명되면, 일부 구현에서, 다음으로 높은 순위의 후보 사용자 상태가 선택될 수 있고, 그와 연관된 액션 중 하나 이상이 수행될 수 있는 등의 방식으로 수행될 수 있다. 일부 구현들에서, 특정 후보 사용자 상태의 성공 또는 실패는 예를 들어, 앞으로 나아가는(moving forward) 다른 후보 사용자 상태들 중에서 후보 사용자 상태를 순위화하기 위한 신호로서 사용될 수 있다.
후보 사용자 상태와 연관된 액션(들)의 성공적인 수행은 사용자가 웹 페이지와 상호작용하여 모든 필수 인터렉티브 요소에 값을 입력하고 "submit(제출)"을 눌렀는지에 해당할 수 있다. 웹 페이지 컨텍스트에서, 사용자의 브라우저는 인터렉티브 웹 사이트를 구성하는 하나 이상의 웹 페이지 스크립트에서 다음 웹 페이지로 이동하며, 이때 사용자는 하나 이상의 추가 인터렉티브 요소에 추가 입력을 제공하도록 요청받을 수 있다. 유사하게, 본 개시 내용의 맥락에서, 하나의 후보 사용자 상태와 연관된 액션(들)의 성공적인 수행 후에, 현재 사용자 상태는 인터렉티브 웹 사이트의 인터렉티브 웹 페이지의 스크립트에서 다음 웹 페이지에 기초하여 업데이트될 수 있다. 그런 다음 프로세스가 반복될 수 있다. 업데이트된 현재 사용자 상태(즉, 사용자가 브라우저를 사용하여 두 번째 웹 페이지에 도달 한 시점에 해당)와 가장 유사한 후보 사용자 상태가 식별될 수 있다. 이러한 업데이트된 후보 사용자 상태는 순위가 매겨질 수 있거나 순위가 매겨지지 않을 수 있으며, 업데이트된 후보 사용자 상태 중 하나와 연관된 액션(들)이 성공할 때까지 하나 이상의 업데이트된 후보 사용자 상태와 연관된 액션(들)이 수행될 수 있다. 이 프로세스는 거래가 완료될 때까지, 즉 자동화된 어시스턴트가 인터렉티브 웹 사이트를 통해 전체 스크립트를 성공적으로 탐색하고 원하는 아이템 또는 서비스를 조달할 때까지 계속될 수 있다.
추가적으로 또는 대안적으로, 일부 구현에서, 여기에 설명된 기술을 사용하여 웹 사이트를 자동으로 탐색하는 프로세스는 강화 학습(reinforcement learning)과 유사하게 작동할 수 있다. 강화 학습에서는 정책(예: 신경망 또는 기타 통계 모델)에 따라 현재 상태를 조사하여 복수의 후보 액션 중에서 선택한다. 유사하게, 본 명세서에 설명된 기술로, 현재 사용자 상태는 수행할 하나 이상의 액션을 선택하기 위해 하나 이상의 정책에 따라 조사될 수 있다. 예를 들어, 일부 구현에서, 현재 사용자 상태가 생성되면 모든 유효성 검사 액션(액션 및 스크립트 유효성 검사 프로세스가 설명됨)을 사용할 수 있다. 하지만 엄청난 수의 잠재적인 액션이 있을 수 있으며 대부분은 현재 사용자 상태와 관련이 없을 수 있다(예: 영화 티켓 구매와 연관된 액션은 라이드 쉐어 구매와 관련이 없을 수 있음). 따라서, 다양한 구현에서, 사용 가능한 액션의 목록(리스트)을 현재 사용자 상태와 관련하여 의미있는 것으로 효과적으로 좁히는 정책이 존재할 수 있다. 예를 들어, 일부 구현에서 적용 가능한 정책은 현재 사용자 상태에 대한 적합성을 기반으로 사용 가능한 액션의 순위를 지정할 수 있다. 수행된 액션 중 하나 이상이 성공할 때까지(예: 스크립트의 다음 웹 페이지로 네비케이팅(navigate)) 가장 높은 순위(예: 순위 순)의 액션이 먼저 시도될 수 있다.
인터렉티브 웹 페이지(예: HTML, XML 등)에서 HTML 또는 XML 노드(예: 인터렉티브 요소)는 일반적으로 주변의 용어 및/또는 이미지 세트에서 사람이 식별할 수 있다. 그렇지 않으면 사용자가 페이지를 약간 위아래로 스크롤 한 후 읽을 내용이나 클릭할 위치를 식별하기가 어렵다. 즉, 웹 페이지의 각 인터렉티브 요소에는 고유한 "시각적" 또는 "기하학적" 컨텍스트가 있다.
여기에 설명된 기술은 이러한 기하학적 컨텍스트를 활용하여 새로운 웹 사이트에 적응하고 및/또는 이전에 분석된 웹 사이트를 통해 스크립트를 업데이트할 수 있다. 앞서 언급했듯이 일부 구현에서, "범용(유니버설) 식별자 매트릭스"는 웹 페이지(고려중인 현재 웹 페이지 및/또는 과거 사용자 상태를 생성하는 데 사용되는 웹 페이지)의 각 인터렉티브 요소에 대해 생성될 수 있다. 소정의 인터렉티브 요소에 대한 범용 식별자 매트릭스는 소정의 인터렉티브 요소(예: 드롭 다운 메뉴, 입력 박스, 라디오 버튼 등과 같은 유형)와 웹 페이지가 렌더링될 때(예: 웹 브라우저 애플리케이션에서 렌더링되는 것과 같음) 소정의 인터렉티브 요소를 즉시 서라운딩하는 웹 페이지의 다른 시각적 콘텐츠를 모두 나타내는 데이터를 포함할 수 있다. 즉, 범용 식별자 매트릭스는 인간이 보거나 이해할 수 있는 시각적/기하학적 컨텍스트와 유사하게, 웹 페이지의 각 인터렉티브 요소에 대해 "시각적" 또는 "기하학적"컨텍스트를 제공한다. "범용"이라는 용어는 기본 문서 개체 모델(DOM: document object model) 트리에서 범용 식별자 매트릭스의 독립성을 나타낸다.
인터랙티브 요소를 범용 식별자 매트릭스로 분할하면 다양한 이점이 있다. 웹 페이지는 시간이 지남에 따라 변경될 수 있지만 개별 인터렉티브 요소 및 렌더링된 웹 페이지 내의 기하학적 컨텍스트(예: 가까이, 아래, 위에 표시되는 텍스트 또는 기타 DOM 요소)는 비교적 일정하게 유지될 수 있다. 결과적으로, 웹 페이지가 변경될 때, 각각의 범용 식별자 매트릭스에 의해 제공되는 컨텍스트 클루에 기초하여 새로운 위치 및/또는 새로운 배열에서 동일한 인터렉티브 요소를 찾을 수 있다. 그런 다음 웹 페이지를 변경하기 전에 수행한 것과 동일한 인터렉티브 요소에 대해 동일한 액션을 수행할 수 있다.
범용 식별자 매트릭스는 다양한 형태를 취할 수 있다. 일부 구현에서 이들은 소정의 인터렉티브 요소와 연관된 <location, text> 쌍의 세트로 정의될 수 있다. <location>은 관심있는 인터렉티브 요소의 중심에 있는 경계 사각형(bounding rectangle)(또는 다른 모양)의 중심에 상대적인 위치일 수 있다. 관심 요소의 인터렉티브를 둘러싼(서라운딩하는) 각 요소는 인터렉티브 요소에 대한 위치에 따라 분류될 수 있다. 예를 들어, <(-10, 10): "first", "name">은 관심있는 인터렉티브 요소인 왼쪽으로 10 픽셀(또는 다른 거리 단위), 위 10 픽셀(또는 다른 거리 단위)에 있는 텍스트 "first name"을 참조할 수 있다. 이러한 방식으로 구성된 두 개의 범용 식별자 매트릭스를 비교할 때, 두 개의 범용 식별자 매트릭스 간의 전체적인 유사성을 결정하기 위해 다양한 쌍 사이의 거리가 계산될 수 있다.
덜 세분화된 또 다른 접근 방식은 중앙 셀에 관심있는 인터렉티브 요소가 포함되어 있고 주변 셀이 관심있는 인터렉티브 요소를 즉시 둘러싼(immediately surrounding) 웹 페이지 콘텐츠 조각을 포함하는 n 개의 셀 그리드(예: 3x3 또는 9 개의 셀)로 범용 식별자 매트릭스를 정의하는 것이다. 이러한 그리드에서 구성된 범용 식별자 매트릭스를 비교하면 그리드의 셀 수에 따라 선형적으로 확장될 수 있다.
이전에 언급한 바와 같이, 과거 사용자 상태(및 해당 액션)의 데이터베이스를 현재 사용자 상태와 비교할 수 있다. 이러한 과거 사용자 상태는 다양한 방식으로 생성되거나 "학습(learned)"될 수 있다. 예를 들어 실제 사용자와 웹 페이지 간의 상호작용(인터랙션)을 기반으로 생성될 수 있다(즉, 과거 사용자 상태의 코퍼스는 유한한 수의 인간 상호작용에서 부트 스트랩될 수 있음). 추가적으로 또는 대안적으로 웹 페이지와의 자동화된 상호작용(인터랙션)을 기반으로 생성될 수 있다.
그러나 앞서 언급했듯이 웹 페이지는 시간이 지남에 따라 변경될 수 있다(예: 새로운 기능 추가, 미적(aesthetic) 업데이트 등). 따라서, 다양한 구현에서, 과거 사용자 상태는 예를 들어 각각의 인터렉티브 웹 사이트를 통해 유효한 스크립트의 일부로서 여전히 기능하는지 확인하기 위해 주기적으로 "검증" 또는 "테스트"될 수 있다. 예를 들어, 이전에 학습된 웹 페이지와 연관된 URL(uniform resource locator)은 웹 페이지를 주기적으로(예를 들어, 매시간, 매일, 매주 등) 재로드(reload)하는 데 사용될 수 있다. 웹 페이지의 이전 버전(들)에서 이전에 생성된 하나 이상의 범용 식별자 매트릭스는 예를 들어 이전에 알려진 범용 식별자 매트릭스와 업데이트된 웹 페이지 간의 매핑을 개발하기 위해 업데이트된 웹 페이지로부터 생성된 범용 식별자 매트릭스와 비교될 수 있다. 웹 페이지가 상당히 많이 변경된 경우, 적절한 매핑을 생성하지 못할 수 있으며 URL과 연관된 과거 사용자 상태가 더 이상 유효하지 않은 것으로 표시될 수 있다(또는 경우에 따라 단순히 데이터베이스에서 삭제됨).
반면에, 이전 범용 식별자 매트릭스와 새로운 범용 식별자 매트릭스 사이의 매핑이 성공적으로 식별되면, 다양한 구현에서 과거 사용자 상태와 연관된 다양한 액션이 수행되어 업데이트된 웹 페이지에 대해 여전히 유효한지 여부를 결정할 수 있다. 동일하거나 유사한 액션이 여전히 수행 가능한 경우 업데이트된 웹 페이지의 유효성이 검사된 것으로 간주될 수 있다. 어떤 경우에는 업데이트된 웹 페이지에 대해 새로운 사용자 상태가 생성되고 나중에 사용하기 위해 데이터베이스에 저장될 수 있다. 동일하거나 유사한 액션을 더 이상 성공적으로 수행할 수 없는 경우, URL과 연결된 과거 사용자 상태가 더 이상 유효하지 않은 것으로 플래그가 지정될 수 있다(또는 경우에 따라 단순히 데이터베이스에서 삭제됨).
일부 구현에서, 소정의 후보 상태에 대해 수행될 액션을 선택할 때, 다른 기준이 고려될 수 있다. 예를 들어, 일부 구현에서, 현재 웹 페이지의 범용 식별자 매트릭스에 매칭될 수 있는 범용 식별자 매트릭스와 연관된 액션만이 수행될 수 있거나 다른 잠재적 액션보다 먼저 수행될 수 있다. 추가적으로 또는 대안적으로, 일부 구현에서, 웹 사이트를 형성하는 일련의 웹 페이지를 통해 성공적인 내비게이션 또는 "트레이스(추적)"가 감지(검출)되면(성공적인 추적이 사람에 의해 생성되었는지 또는 여기에 설명된 기술을 사용하여 자동으로 생성되었는지 여부), 그 추적은 예를 들어 해당 추적에서 생성된 개별 사용자 상태와 연관된 액션과 관련하여 지속될 수 있다. 이후 이러한 액션은 "검증된" 것으로 간주될 수 있으며 아직 검증이 발생하지 않았거나 적어도 자주 또는 최근에 발생하지 않은 다른 액션보다 선호될 수 있다.
앞서 언급한 바와 같이, 웹 페이지의 입력 요소는 피자 토핑, 영화관/비행기 좌석 선택, 승차 공유 목적지 등과 같은 파라미터를 제공하도록 사용자에 의해 작동될 수 있다. 이러한 파라미터의 대부분은 자동화된 어시스턴트와 연결할 때 사용자가 미리 제공할 수 있다. 예를 들어 사용자는 "OK Assistant, order me a thin crust pepperoni pizza from Hypothetical Pizza Shop"(오케이 어시스턴트, "Hypothetical Pizza Shop"에서 얇은 크러스트 페퍼로니 피자를 주문해줘)와 같이 말할 수 있다. "Hypothetical Pizza Shop"에 자동화된 어시스턴트와 직접 상호작용할 액티브 제3자 에이전트가 없다고 가정하면, 여기에 설명된 기술을 사용하여 요청에 따라 피자를 조달하기 위해 "Hypothetical Pizza Shop"의 인터렉티브 웹 사이트를 자동으로 탐색할 수 있다. 하지만 사용자가 주문을 완료하는 데 필요한 파라미터를 제공하지 않았다고 가정한다. 이러한 누락된 파라미터는 다양한 방법으로 획득할 수 있다.
일부 구현에서, (예: 사용자의 인터랙션을 계산한 기록에서 학습된) 사용자의 선호도 또는 사용자의 프로필과 연관된 다른 정보와 같은 사용자의 프로필의 양태는 공백(blanks)을 채우는 데 사용될 수 있다. 예를 들어 "Hypothetical Pizza Shop"의 웹 사이트에 배송 주소가 필요할 수 있다. 사용자에게 해당 정보를 요청하는 대신 사용자의 주소는 예를 들어 사용자의 프로필 및/또는 사용자가 휴대하는 장치가 제공하는 위치 좌표에 따라 자동으로 결정될 수 있다. 일부 구현에서, 사용자의 주소는 그의 현재 사용자 상태로 만들 수 있다. 이 정보는 사용자가 이 정보를 수동으로 제공할 필요없이 "Hypothetical Pizza Shop"의 웹 사이트의 주소 필드를 자동으로 채우는 데 사용될 수 있다.
그러나 일부 누락된 파라미터는 사용자의 프로필 및/또는 기록에서 자동으로 채워지지 않을 수 있다. 예를 들어, 사용자가 상품이나 서비스를 조달(구매)하기 위해 여러 가지 다른 결제 방법을 사용하는 경향이 있다고 가정한다. 사용자는 자동화된 어시스턴트가 사용자가 피자 비용을 지불하는 데 사용할 지불을 "추측"하는 것을 원하지 않을 수 있으며, "Hypothetical Pizza Shop"에서 사용자가 선호하는 지불 방법을 수락하지 않을 수 있다. 또는 사용자가 지정하지 않았거나 프로필에서 식별할 수 없는 피자 주문에 필요한 다른 파라미터가 있을 수 있다(예: 스페셜에 대한 관심, 그녀가 음료를 원하는가 등). 일부 구현에서, 자동화된 어시스턴트는 예를 들어 필요에 따라 사용자로부터 이러한 누락된 파라미터를 요청하기 위해 "Hypothetical Pizza Shop"의 웹 사이트를 통한 트레버스(traversal)를 일시 중지할 수 있다. 그러나 사용자는 웹 사이트와 물리적으로 상호작용할 필요가 없으며, 즉 자동화된 어시스턴트가 사용자를 대신하여 이를 수행할 수 있다.
일부 구현에서, 하나 이상의 프로세서에 의해 수행되는 방법이 제공되며, 방법은, 컴퓨팅 장치의 입력 컴포넌트에서 사용자로부터 자연어 입력을 수신하는 단계 -상기 자연어 입력은 사용자에 의해 컴퓨팅 장치에서 적어도 부분적으로 작동하는 자동화된 어시스턴트로 유도됨-; 사용자의 의도(intent) 및 사용자의 의도를 수행하는 것과 연관된 하나 이상의 파라미터를 식별하기 위해 자연어 입력을 분석하는 단계; 하나 이상의 인터렉티브 요소를 포함하는 웹 페이지를 획득하는 단계 -웹 페이지는 사용자의 의도를 수행하도록 액션 가능하고 그리고 하나 이상의 인터렉티브 요소는 하나 이상의 파라미터를 입력하도록 액션 가능함-; 사용자와 연관된 현재 사용자 상태를 결정하는 단계 -현재 사용자 상태는 웹 페이지의 콘텐츠에 적어도 부분적으로 기초하여 결정됨-; 현재 사용자 상태에 기초하여, 과거 사용자 상태의 데이터베이스로부터 하나 이상의 후보 과거 사용자 상태를 식별하는 단계 -하나 이상의 후보 과거 사용자 상태 각각은 웹 페이지의 하나 이상의 인터렉티브 요소와 상호작용하기 위한 하나 이상의 후보 액션을 포함하고, 하나 이상의 후보 액션은 상기 의도의 적어도 일부를 수행할 수 있는 것으로 이전에 검증됨-; 제1 기준에 적어도 부분적으로 기초하여, 하나 이상의 후보 과거 사용자 상태로부터 특정 후보 과거 사용자 상태를 선택하는 단계; 제2 기준에 적어도 부분적으로 기초하여, 하나 이상의 후보 액션으로부터 상기 선택된 후보 과거 사용자 상태와 연관된 특정 후보 액션을 선택하는 단계; 하나 이상의 파라미터를 사용하여 웹 페이지의 하나 이상의 인터렉티브 요소와 상호작용하기 위해 상기 선택된 후보 액션을 수행하는 단계; 그리고 자동화된 어시스턴트에 의해, 사용자에게 오디오 또는 시각적 출력으로서, 사용자의 의도의 적어도 일부가 수행되었음을 나타내는 자연어 출력을 제공하는 단계를 포함할 수 있다.
다양한 구현에서, 방법은 하나 이상의 파라미터, 자연어 입력 또는 사용자의 의도 중 하나 이상에 기초하여 웹 페이지를 식별하는 단계를 더 포함할 수 있다. 다양한 구현에서, 하나 이상의 후보 액션 각각은 상기 웹 페이지와 호환되는 것으로 이전에 검증되었을 수 있다. 다양한 구현에서, 상기 하나 이상의 후보 액션 각각은 해당 의도를 수행하도록 액션 가능한 상이한 웹 페이지와 호환되는 것으로 이전에 검증되었을 수 있다.
다양한 구현에서, 상기 제1 기준은 현재 사용자 상태 및 가장 큰 유사성 측정치(similarity measure)를 갖는 상기 선택된 후보 과거 사용자 상태를 포함할 수 있다. 다양한 구현에서, 현재 사용자 상태를 결정하는 단계는, 웹 페이지의 하나 이상의 인터렉티브 요소 각각에 대해, 웹 페이지가 렌더링될 때 각각의 인터렉티브 요소를 즉시 서라운딩(immediately surround)하는 웹 페이지의 다른 시각적 콘텐츠와 각각의 인터렉티브 요소 둘 모두를 나타내는 데이터를 포함하는 범용 식별자 매트릭스를 생성하는 단계를 포함할 수 있다. 다양한 구현에서, 상기 식별하는 단계는, 상기 웹 페이지로부터 생성된 하나 이상의 범용 식별자 매트릭스를 하나 이상의 후보 과거 사용자 상태 각각과 연관된 하나 이상의 다른 범용 식별자 매트릭스와 비교하는 단계를 포함할 수 있다. 다양한 구현에서, 상기 식별하는 단계는, 하나 이상의 후보 과거 사용자 상태 중 각각의 소정의 후보 과거 사용자 상태에 대해, 웹 페이지로부터 생성된 하나 이상의 범용 식별자 매트릭스를 상기 소정의 후보 과거 사용자 상태와 연관된 하나 이상의 후보 액션에 대응하는 하나 이상의 다른 범용 식별자 매트릭스와 비교하는 단계를 포함할 수 있다.
다양한 구현에서, 상기 방법은, 상기 비교하는 것에 기초하여 소정의 후보 과거 사용자 상태와 연관된 하나 이상의 후보 액션을 순위화하는 단계를 더 포함할 수 있다. 다양한 구현에서, 상기 범용 식별자 매트릭스는 하나 이상의 튜플을 포함하고, 하나 이상의 튜플 각각은, 웹 페이지로부터의 콘텐츠 조각(piece) 및 범용 식별자 매트릭스를 결정하는 데 사용된 각각의 기본(underlying) 인터렉티브 요소에 대한 콘텐츠 조각의 기하학적 위치를 포함할 수 있다. 다양한 구현에서, 상기 범용 식별자 매트릭스는 2차원 셀 그리드를 포함하고, 2차원 셀 그리드의 중앙 셀은 범용 식별자 매트릭스를 결정하는 데 사용된 각각의 기본 인터렉티브 요소에 대응하고, 중앙 셀을 서라운딩(surround)(둘러싸는)하는 하나 이상의 2차원 셀 그리드는 웹 페이지로부터의 다른 콘텐츠 조각에 대응할수 있다.
다른 양태에서, 하나 이상의 프로세서를 사용하여 구현된 방법은, 웹 페이지의 식별자를 결정하는 단계 -상기 식별자는, 웹 페이지가 사용자의 의도를 수행하기 위해 작동할 수 있는 마지막으로 알려진 웹 페이지임을 나타내기 위해, 이전에 검증되고; 웹 페이지는 상기 의도와 연관된 하나 이상의 파라미터를 입력하도록 작동할 수 있는 것으로 알려진 하나 이상의 인터렉티브 요소의 제1 세트를 포함하는 것으로 마지막으로 알려짐-; 식별자에 기초하여 웹 페이지의 업데이트된 버전을 검색하는 단계; 하나 이상의 인터렉티브 요소의 제2 세트를 식별하도록 웹 페이지의 업데이트된 버전을 분석하는 단계; 웹 페이지의 업데이트된 버전으로부터 식별된 하나 이상의 인터렉티브 요소의 제2 세트에 기초하여, 제2 세트의 각각의 인터렉티브 요소 그리고 웹 페이지가 렌더링될 때 각각의 인터렉티브 요소를 즉시 서라운딩(immediately surround)하는 웹 페이지의 다른 시각적 콘텐츠 모두를 나타내는 데이터를 각각 포함하는 해당 범용 식별자 매트릭스의 업데이트된 세트를 생성하는 단계; 웹 페이지에 포함된 것으로 마지막으로 알려진 하나 이상의 인터렉티브 요소의 제1 세트에 기초하여 생성된 범용 식별자 매트릭스의 업데이트된 세트와 범용 식별자 매트릭스의 알려진 세트 사이의 매핑을 결정하는 단계; 상기 매핑에 기초하여, 제2 세트의 하나 이상의 해당 인터렉티브 요소상의 하나 이상의 인터렉티브 요소의 제1 세트에 대해 이전에 수행되었던 액션을 시도하는 단계; 그리고 상기 시도의 하나 이상의 결과에 기초하여, 웹 페이지의 식별자를 검증되거나 무효화(invalidated)된 것으로 선택적으로 분류하는 단계를 포함하며, 상기 검증된 웹 페이지 식별자는 검증된 웹 페이지 식별자와 연관된 웹 페이지를 포함하는 웹 사이트를 통한 자연어 기반 자동 내비게이션을 용이하게 하기 위해 이용 가능할 수 있다.
다양한 구현에서, 상기 웹 페이지의 식별자는 URL(uniform resource locator)을 포함할 수 있다. 다양한 구현에서, 상기 업데이트된 세트의 각각의 소정의 범용 식별자 매트릭스는 하나 이상의 튜플을 포함할 수 있으며, 하나 이상의 튜플 각각은 웹 페이지의 업데이트된 버전으로부터의 콘텐츠 조각 및 소정의 범용 식별자 매트릭스를 결정하는 데 사용된 기본(underlying) 인터렉티브 요소에 대한 콘텐츠 조각의 기하학적 위치를 포함할 수 있다. 다양한 구현에서, 업데이트된 세트의 각각의 소정의 범용 식별자 매트릭스는 2차원 셀 그리드를 포함할 수 있으며, 2차원 셀 그리드의 중앙 셀은 소정의 범용 식별자 매트릭스를 결정하는 데 사용된 기본 인터렉티브 요소에 대응하고, 중앙 셀을 서라운딩하는 2차원 셀 그리드 중 하나 이상은 웹 페이지의 업데이트된 버전으로부터의 다른 콘텐츠 조각에 대응할 수 있다. 다양한 구현에서, 상기 검증된 웹 페이지 식별자는 상기 검증된 웹 페이지 식별자와 연관된 웹 페이지를 포함하는 웹 사이트를 통한 자연어 기반 자동 내비게이션을 용이하게 하기 위해 자동화된 어시스턴트가 이용 가능할 수 있다.
다른 양태에서, 하나 이상의 프로세서를 사용하여 구현된 방법은, 하나 이상의 인터렉티브 요소를 포함하는 알려지지 않은 웹 페이지를 획득하는 단계 -알려지지 않은 웹 페이지는 프로큐어먼트(procurement)의 적어도 일부를 수행하도록 액션 가능하고 그리고 하나 이상의 인터렉티브 요소는 프로큐어먼트의 적어도 일부를 수행하기 위한 하나 이상의 파라미터를 입력하도록 액션 가능함-; 알려지지 않은 웹 페이지의 하나 이상의 인터렉티브 요소에 기초하여, 하나 이상의 범용 식별자 매트릭스의 해당 제1 세트를 생성하는 단계 -제1 세트의 각각의 범용 식별자 매트릭스는 알려지지 않은 웹 페이지의 각각의 인터렉티브 요소 및 알려지지 않은 웹 페이지가 렌더링될 때 각각의 인터렉티브 요소를 즉시 서라운딩하는 알려지지 않은 웹 페이지의 다른 시각적 콘텐츠 둘 모두를 나타내는 데이터를 포함함-; 범용 식별자 매트릭스의 제1 세트에 적어도 부분적으로 기초하여, 과거 사용자 상태의 데이터베이스로부터 하나 이상의 후보 과거 사용자 상태를 식별하는 단계 -하나 이상의 후보 과거 사용자 상태의 각각의 후보 과거 사용자 상태는 각각의 과거 사용자 상태 후보를 생성하는 데 사용되는 알려진 웹 페이지의 하나 이상의 인터렉티브 요소와 상호작용하기 위한 하나 이상의 후보 액션을 포함하고; 상기 하나 이상의 후보 과거 사용자 상태 중 소정의 후보 과거 사용자 상태는 상기 소정의 후보 과거 사용자 상태와 연관된 범용 식별자 매트릭스의 제1 세트 및 하나 이상의 범용 식별자 매트릭스의 제2 세트의 비교에 기초하여 식별됨-; 알려지지 않은 웹 페이지의 하나 이상의 인터렉티브 요소에 대한 후보 과거 사용자 상태와 연관된 하나 이상의 후보 액션을 시도하는 단계; 그리고 상기 시도의 하나 이상의 결과에 기초하여, 알려지지 않은 웹 페이지를 검증되거나 무효화(invalidated)된 것으로 선택적으로 분류하는 단계를 포함하며, 검증된 웹 페이지는 검증된 웹 페이지를 포함하는 웹 사이트를 통한 자연어 기반 자동 내비게이션을 용이하게 하기 위해 이용 가능할 수 있다.
다양한 구현에서, 상기 검증된 웹 페이지는 상기 검증된 웹 페이지를 포함하는 웹 사이트를 통한 자연어 기반 자동 내비게이션을 용이하게 하기 위해 자동화된 어시스턴트가 이용할 수 있다. 다양한 구현에서, 방법은, 알려지지 않은 웹 페이지가 검증된 것으로 분류하는 것에 응답하여 새로운 사용자 상태를 생성하는 단계를 더 포함할 수 있다.
또한, 일부 구현은 하나 이상의 컴퓨팅 장치의 하나 이상의 프로세서를 포함하고, 하나 이상의 프로세서는 관련 메모리에 저장된 명령어를 실행하도록 작동할 수 있으며, 명령어는 앞서 언급한 방법의 성능을 유발하도록 구성된다. 일부 구현은 또한 전술한 방법 중 임의의 것을 수행하기 위해 하나 이상의 프로세서에 의해 실행 가능한 컴퓨터 명령어를 저장하는 하나 이상의 비-일시적 컴퓨터 판독 가능 저장 매체를 포함한다.
전술한 개념 및 본 명세서에 더 상세히 설명된 추가 개념의 모든 조합은 본 명세서에 개시된 주제의 일부인 것으로 고려된다는 것을 이해해야한다. 예를 들어, 본 개시의 끝에 나타나는 청구된 요지의 모든 조합은 여기에 개시된 요지의 일부인 것으로 고려된다.
도 1은 본 명세서에 개시된 구현이 구현될 수 있는 예시적인 환경의 블록도이다.
도 2a, 2b, 2c, 2d, 2e, 2f, 2g, 2h 및 2i는 인터렉티브 웹 사이트를 형성하는 일련의 인터렉티브 웹 페이지의 예를 묘사한다.
도 3a, 3b 및 3c는 도 2a 내지 2i의 인터렉티브 웹 페이지의 시퀀스가 개시된 기술을 사용하여 적어도 자동으로 탐색(내비게이션)될 수 있는 방법의 일례를 도시한다.
도 4a 및 4b는 도 2a 내지 2i의 인터렉티브 웹 페이지의 시퀀스가 개시된 기술을 사용하여 적어도 자동으로 탐색(내비게이션)될 수 있는 방법의 다른 일례를 도시한다.
도 5는 다양한 구현에 따라, 자연어를 사용하여 소정의 인터렉티브 웹 페이지와 자동으로 상호작용하기 위해 여기에 설명된 기술이 어떻게 사용될 수 있는지의 일례를 개략적으로 도시한다.
도 6a 및 6b는 본 명세서에 개시된 구현에 따라, 웹 페이지의 인터렉티브 요소로부터 범용 식별자 매트릭스가 생성될 수 있는 방법의 예를 도시한다.
도 7 및 8은 다양한 구현에 따라 다양한 유형의 범용 식별자 매트릭스를 구현하기 위한 예시적인 의사 코드를 도시한다.
도 9는 본 명세서에 개시된 구현에 따른 예시적인 방법을 예시하는 흐름도를 도시한다.
도 10은 본 명세서에 개시된 구현에 따른 다른 예시적인 방법을 예시하는 흐름도를 도시한다.
도 11은 여기에 개시된 구현에 따른 다른 예시적인 방법을 예시하는 흐름도를 도시한다.
도 12는 컴퓨팅 장치의 예시적인 아키텍처를 도시한다.
도 1을 참조하면, 여기에 개시된 기술이 구현될 수 있는 예시적인 환경이 예시된다. 예시적인 환경은 하나 이상의 클라이언트 컴퓨팅 장치(클라이언트 장치)(106)를 포함한다. 각각의 클라이언트 장치(106)는 여기서 자동화된 어시스턴트의 "클라이언트 부분"으로도 지칭될 수 있는 자동화된 어시스턴트 클라이언트(108)의 각각의 인스턴스를 실행할 수 있다. 여기서 총괄적으로 자동화된 어시스턴트의 "서버 부분"으로도 지칭될 수 있는 하나 이상의 클라우드 기반 자동화된 어시스턴트 컴포넌트(119)는 일반적으로 114로 표시된 하나 이상의 로컬 및/또는 광역 네트워크(예: 인터넷)를 통해 클라이언트 장치(106)에 통신적으로 연결된 하나 이상의 컴퓨팅 시스템(통칭 "클라우드" 컴퓨팅 시스템이라고 함)에서 구현될 수 있다.
다양한 구현에서, 하나 이상의 클라우드 기반 자동화된 어시스턴트 컴포넌트(119)와의 상호작용(인터랙션)을 통한, 자동화된 어시스턴트 클라이언트(108)의 인스턴스는 사용자의 관점에서 사용자가 인간 대 컴퓨터 대화에 참여할 수 있는 자동화된 어시스턴트(120)의 논리적 인스턴스인 것처럼 보이는 것을 형성할 수 있다. 그러한 자동화된 어시스턴트(120)의 한 인스턴스가 도 1에 점선으로 도시되어있다. 따라서, 클라이언트 장치(106)에서 실행되는 자동화된 어시스턴트 클라이언트(108)와 참여하는 각 사용자는 사실상 자동화된 어시스턴트(120)의 논리적 인스턴스와 참여할 수 있음을 이해해야한다. 간결함과 단순함을 위해, 특정 사용자에게 "서비스를 제공하는" 것으로 본 명세서에서 사용되는 용어 "자동 어시스턴트"는 사용자에 의해 작동되는 클라이언트 장치(106)에서 실행되는 자동화된 어시스턴트 클라이언트(108)와 하나 이상의 클라우드 기반 자동 어시스턴트 컴포넌트(119)의 조합(여러 자동화된 어시스턴트 클라이언트(108) 사이에서 공유될 수 있음)을 지칭할 것이다. 또한, 일부 구현에서, 자동화된 어시스턴트(120)는 사용자가 자동화된 어시스턴트(120)의 특정 인스턴스에 의해 실제로 "서비스"를 받는지 여부에 관계없이 임의의 사용자로부터의 요청에 응답할 수 있다는 것을 이해해야 한다.
하나 이상의 클라이언트 장치(106)는 예를 들어, 데스크톱 컴퓨팅 장치, 노트북 컴퓨팅 장치, 태블릿 컴퓨팅 장치, 휴대 전화 컴퓨팅 장치, 사용자 차량의 컴퓨팅 장치(예: 차량용 통신 시스템, 차량용 엔터테인먼트 시스템, 차량용 내비게이션 시스템), 독립형 인터렉티브 스피커(경우에 따라 비전 센서를 포함할 수 있음), 스마트 TV(또는 자동화된 어시스턴트 기능이 있는 네트워크 동글이 장착된 표준 TV)와 같은 스마트 기기 및/또는 컴퓨팅 장치를 포함하는 사용자의 웨어러블 장치(예: 컴퓨팅 장치가 있는 사용자의 시계, 컴퓨팅 장치가 있는 사용자의 안경, 가상 또는 증강 현실 컴퓨팅 장치) 중 하나 이상을 포함할 수 있다. 추가 및/또는 대체 클라이언트 컴퓨팅 장치가 제공될 수 있다. 독립형 인터렉티브 스피커(또는 "스마트 스피커")와 같은 일부 클라이언트 장치(106)는 주로 사용자와 자동화된 어시스턴트(120) 간의 대화를 용이하게 하도록 설계된 어시스턴트 장치의 형태를 취할 수 있다. 이러한 일부 어시스턴트 장치는 디스플레이가 부착된 독립형 인터렉티브 스피커의 형태를 취할 수 있으며, 터치스크린 디스플레이일 수도 있고 아닐 수도 있다.
일부 구현에서, 클라이언트 장치(106)는 하나 이상의 FOV(fields of view)를 갖는 하나 이상의 비전 센서(107)를 구비할 수 있지만, 이것이 필수는 아니다. 비전 센서(들)(107)는 디지털 카메라, PIR(passive infrared) 센서, 입체 카메라, RGBd 카메라 등과 같은 다양한 형태를 취할 수 있다. 하나 이상의 비전 센서(107)는 클라이언트 장치(106)가 배치되는 환경의 이미지 프레임(정지 이미지 또는 비디오)을 캡처하는 데 사용될 수 있다. 그 다음, 이러한 이미지 프레임은 이미지 프레임에 포함된 사용자가 제공한 시각적 큐(visual cues)를 검출하기 위해, 예를 들어 시각 큐 모듈(visual cue module)(1121)에 의해 분석될 수 있다. 이러한 시각적 큐는 손 제스처, 특정 기준점을 향한 시선, 얼굴 표정, 사용자에 의한 미리 정의된 움직임 등을 포함할 수 있지만 이에 국한되지는 않는다. 이들 검출된 시각적 큐는 자동화된 어시스턴트(120)를 호출하고 및/또는 자동화된 어시스턴트(120)가 다양한 액션을 수행하게 하는 것과 같은 다양한 목적으로 사용될 수 있다.
본 명세서에서 더 상세히 설명되는 바와 같이, 자동화된 어시스턴트(120)는 하나 이상의 클라이언트 장치(106)의 사용자 인터페이스 입력 및 출력 장치를 통해 하나 이상의 사용자와 인간 대 컴퓨터 대화 세션에 참여한다. 일부 구현에서, 자동화된 어시스턴트(120)는 클라이언트 장치(106) 중 하나의 하나 이상의 사용자 인터페이스 입력 장치를 통해 사용자에 의해 제공되는 사용자 인터페이스 입력에 응답하여 사용자와 인간 대 컴퓨터 대화 세션에 참여할 수 있다. 이들 구현 중 일부에서, 사용자 인터페이스 입력은 명시적으로 자동화된 어시스턴트(120)로 향한다. 예를 들어, 사용자는 "OK, Assistant" 또는 "Hey, Assistant"와 같은 미리 결정된 호출 문구를 구두로 제공(예: 타이핑, 말하기)할 수 있다. 말할 때, 이 구두 입력은 마이크로폰(109)에 의해 캡처될 수 있고, 자동화된 어시스턴트(120)가 능동적으로 듣거나 타이핑된 텍스트를 모니터링하도록 할 수 있다. 추가적으로 또는 대안적으로, 일부 구현에서, 자동화된 어시스턴트(120)는 하나 이상의 검출된 시각적 큐에 기초하여 단독으로 또는 구두 호출 문구와 조합하여 호출될 수 있다.
일부 구현에서, 자동화된 어시스턴트(120)는 사용자 인터페이스 입력이 자동화된 어시스턴트(120)에 명시적으로 지시되지 않은 경우에도 사용자 인터페이스 입력에 응답하여 인간 대 컴퓨터 대화 세션에 참여할 수 있다. 예를 들어, 자동화된 어시스턴트(120)는 사용자 인터페이스 입력의 콘텐츠를 검사하고 사용자 인터페이스 입력에 존재하는 특정 용어에 응답하여 및/또는 다른 큐에 기초하여 대화 세션에 참여할 수 있다. 많은 구현에서, 자동화된 어시스턴트(120)는 음성 인식을 활용하여 사용자의 발화를 텍스트로 변환하고, 예를 들어 검색 결과, 일반 정보를 제공하고 및/또는 하나 이상의 반응형 액션(응답 액션)(예: 미디어 재생, 게임 시작, 음식 주문 등)을 취함으로써 그에 따라 텍스트에 응답할 수 있다. 일부 구현에서, 자동화된 어시스턴트(120)는 발화를 텍스트로 변환하지 않고 발화에 추가적으로 또는 대안적으로 응답할 수 있다. 예를 들면, 자동화된 어시스턴트(120)는 음성 입력을 임베딩, (음성 입력에 존재하는 엔티티/엔티티들을 나타내는) 엔티티 표현(들) 및/또는 다른 "비-텍스트" 표현으로 변환하고 그러한 비-텍스트 표현에 대해 액션할 수 있다. 따라서, 음성 입력으로부터 변환된 텍스트에 기초하여 액션하는 것으로 여기에 설명된 구현은 추가적으로 및/또는 대안적으로 음성 입력에 대해 직접 및/또는 음성 입력의 다른 비-텍스트 표현에 대해 액션할 수 있다.
클라이언트 컴퓨팅 장치(106) 및 클라우드 기반 자동 어시스턴트 컴포넌트(119)를 운영하는 컴퓨팅 장치(들) 각각은 데이터 및 소프트웨어 애플리케이션의 저장을 위한 하나 이상의 메모리, 데이터 액세스 및 애플리케이션 실행을 위한 하나 이상의 프로세서, 네트워크를 통한 통신을 용이하게 하는 기타 컴포넌트를 포함할 수 있다. 클라이언트 컴퓨팅 장치(106) 및/또는 자동화된 어시스턴트(120)에 의해 수행되는 액션은 다수의 컴퓨터 시스템에 분산될 수 있다. 자동화된 어시스턴트(120)는 예를 들어 네트워크를 통해 서로 연결된 하나 이상의 위치에 있는 하나 이상의 컴퓨터에서 실행되는 컴퓨터 프로그램으로서 구현될 수 있다.
전술한 바와 같이, 다양한 구현에서, 클라이언트 컴퓨팅 장치(106)는 자동화된 어시스턴트 클라이언트(108) 또는 자동화된 어시스턴트(120)의 "클라이언트 부분"을 액션시킬 수 있다. 다양한 구현에서, 자동화된 어시스턴트 클라이언트(108)는 음성 캡처 모듈(음성 캡처)(110) 및/또는 시각적 큐 모듈(1121)을 포함할 수 있다. 다른 구현에서, 음성 캡처 모듈(110) 및/또는 시각적 큐 모듈(112)의 하나 이상의 양태는 예를 들어 하나 이상의 클라우드 기반 자동화된 어시스턴트 컴포넌트(119)에 의해 자동화된 어시스턴트 클라이언트(108)와 별도로 구현될 수 있다. 예를 들어, 도 1에는 이미지 데이터에서 시각적 큐를 검출할 수 있는 클라우드 기반 시각적 큐 모듈(1122)도 있다.
다양한 구현에서, 하드웨어 및 소프트웨어의 임의의 조합을 사용하여 구현될 수 있는 음성 캡처 모듈(110)은 사용자의 발화(들)의 오디오 녹음을 캡처하기 위해 마이크로폰(109) 또는 다른 압력 센서와 같은 하드웨어와 인터페이스할 수 있다. 다양한 목적으로 이 오디오 녹음에 대해 다양한 유형의 처리가 수행될 수 있다.
다양한 구현에서, 시각적 큐 모듈(1121)(및/또는 클라우드 기반 시각적 큐 모듈 1122)은 하드웨어 또는 소프트웨어의 임의의 조합을 사용하여 구현될 수 있으며, 비전 센서(들)(107)에 의해 제공되는 하나 이상의 이미지 프레임을 분석하여 하나 이상의 이미지 프레임에서 및/또는 그에 걸쳐 캡처된 하나 이상의 시각적 큐를 검출하도록 구성될 수 있다. 예를 들어, 시각적 큐 모듈(1121)(또는 1122)은 이미지 프레임에서 감지(검출)된 사용자가 제공한 시각적 큐를 나타내는 출력을 생성하도록 훈련된 하나 이상의 인공 지능(또는 기계 학습) 모델을 사용할 수 있다.
클라이언트 장치(106)는 웹 브라우저(111) 및/또는 메시지 교환 클라이언트(113)와 같은 다른 애플리케이션도 설치될 수 있다. 메시지 교환 클라이언트(113)는 다양한 형태로 올 수 있다. 일부 구현에서, 메시지 교환 클라이언트(113)는 단문 메시징 서비스("SMS") 및/또는 멀티미디어 메시징 서비스("MMS") 클라이언트, 온라인 채팅 클라이언트(예를 들어, 인스턴트 메신저, 인터넷 릴레이 채팅 또는 "IRC, ”등), 소셜 네트워크와 연관된 메시징 애플리케이션 등이 있다. 일부 구현에서, 메시지 교환 클라이언트(113)는 웹 브라우저(111)에 의해 렌더링 된 웹 페이지 내에서 구현될 수 있다. 다양한 구현에서, 메시지 교환 클라이언트(113)는 일대일 대화로서 또는 자동화된 어시스턴트(120)는 "참여(participate)"할 수 있는 다중 참여자 대화로서, 자동화된 어시스턴트(120)와 함께 타이핑되거나 말한 인간 대 컴퓨터 대화에 참여하기 위한 (사용자를 위한) 인터페이스를 제공할 수 있다. 일부 구현에서, 웹 브라우저(111)는 예를 들어, 자동화된 어시스턴트(120)를 호출하도록 액션할 수 있는 마이크 버튼 또는 다른 사용자 인터페이스 요소로 특별히 설계될 수 있어서, 사용자가 웹 브라우저(111)의 액션을 돕기 위해 음성 명령을 발행할 수 있다.
음성 캡처 모듈(110)은 앞서 언급한 바와 같이, 예를 들어 마이크로폰(109)을 통해 사용자의 음성을 캡처하도록 구성될 수 있다. 추가적으로 또는 대안적으로, 일부 구현에서, 음성 캡처 모듈(110)은 예를 들어, 음성-텍스트("STT") 처리 기술을 사용하여 캡처된 오디오를 텍스트 및/또는 다른 표현 또는 임베딩으로 변환하도록 추가로 구성될 수 있다. 추가적으로 또는 대안적으로, 일부 구현에서, 음성 캡처 모듈(110)은 예를 들어 하나 이상의 음성 합성기를 사용하여 텍스트를 컴퓨터 합성 음성으로 변환하도록 구성될 수 있다. 그러나, 일부 경우에, 클라이언트 장치(106)는 컴퓨팅 리소스(예: 프로세서 사이클, 메모리, 배터리 등) 측면에서 상대적으로 제한될 수 있기 때문에, 클라이언트 장치(106)에 로컬인 음성 캡처 모듈(110)은 한정된 수의 서로 다른 음성 문구, 특히 자동화된 어시스턴트(120)를 호출하는 문구를 텍스트(또는 저 차원 임베딩과 같은 다른 형태)로 변환하도록 구성될 수 있다. 다른 음성 입력은 클라우드 기반 텍스트-음성(텍스트 음성 변환)("TTS") 모듈(116) 및/또는 클라우드 기반 STT 모듈(117)을 포함할 수 있는 클라우드 기반 자동 어시스턴트 컴포넌트(119)로 전송될 수 있다.
클라우드 기반 TTS 모듈(116)은 텍스트 데이터(예: 자동화된 어시스턴트(120)에 의해 공식화된 자연어 응답)를 컴퓨터 생성 음성 출력으로 변환하기 위해 클라우드의 사실상 무한한 자원(리소스)을 활용하도록 구성될 수 있다. 일부 구현에서, TTS 모듈(116)은 예를 들어 하나 이상의 스피커를 사용하여 직접 출력되도록 컴퓨터 생성(컴퓨터가 생성한) 음성 출력을 클라이언트 장치(106)에 제공할 수 있다. 다른 구현들에서, 자동화된 어시스턴트(120)에 의해 생성된 텍스트 데이터(예를 들어, 자연어 응답)는 음성 캡처 모듈(110)에 제공될 수 있으며, 이는 텍스트 데이터를 로컬로 출력되는 컴퓨터 생성 음성으로 변환할 수 있다.
클라우드 기반 STT 모듈(117)은 음성 캡처 모듈(110)에 의해 캡처된 오디오 데이터를 텍스트로 변환하기 위해 클라우드의 사실상 무한한 리소스를 활용하도록 구성될 수 있으며, 이는 그 후 의도 매칭기(intent matcher)(135)에 제공될 수 있다. 일부 구현에서, 클라우드 기반 STT 모듈(117)은 음성의 오디오 녹음을 하나 이상의 음소로 변환한 다음, 하나 이상의 음소를 텍스트로 변환할 수 있다. 추가적으로 또는 대안적으로, 일부 구현에서, STT 모듈(117)은 상태 디코딩 그래프를 사용할 수 있다. 일부 구현에서, STT 모듈(117)은 사용자의 발화에 대한 복수의 후보 텍스트 해석을 생성할 수 있다. 일부 구현에서, STT 모듈(117)은 동시적으로 검출된 시각적 큐가 있는지 여부에 따라 다른 것보다 더 높은 특정 후보 텍스트 해석에 가중치를 부여하거나 바이어스할 수 있다.
자동화된 어시스턴트(120)(특히, 클라우드 기반 자동화된 어시스턴트 컴포넌트(119))는 의도(인텐트) 매칭기(135), 전술한 TTS 모듈(116), 전술한 STT 모듈(117), 및 아래에서 더 상세히 설명되는 다른 컴포넌트를 포함할 수 있다. 일부 구현에서, 자동화된 어시스턴트(120)의 모듈들 및/또는 모듈들 중 하나 이상이 생략, 결합 및/또는 자동화된 어시스턴트(120)와는 별개인 컴포넌트에서 구현될 수 있다. 일부 구현에서, 프라이버시를 보호하기 위해, 자연어 프로세서(122), TTS 모듈(116), STT 모듈(117) 등과 같은 자동화된 어시스턴트(120)의 컴포넌트 중 하나 이상이 클라이언트 장치(106)(예: 클라우드 제외)상에서 적어도 부분적으로 구현될 수 있다.
일부 구현에서, 자동화된 어시스턴트(120)는 자동화된 어시스턴트(120)와의 인간 대 컴퓨터 대화 세션 동안 클라이언트 장치(106) 중 하나의 사용자에 의해 생성된 다양한 입력에 응답하여 응답형 콘텐츠를 생성한다. 자동화된 어시스턴트(120)는 대화 세션의 일부로서 사용자에게 프리젠테이션을 위해(예를 들어, 사용자의 클라이언트 장치로부터 분리될 때 하나 이상의 네트워크를 통해) 응답형 콘텐츠를 제공할 수 있다. 예를 들어, 자동화된 어시스턴트(120)는 클라이언트 장치(106)를 통해 제공되는 자유 형식 자연어 입력에 응답하여 응답형 콘텐츠(responsive content)를 생성할 수 있다. 본 명세서에서 사용되는 바와 같이, 자유 형식 입력은 사용자에 의해 공식화되고 사용자가 선택하기 위해 제시된 옵션 그룹에 제한되지 않는 입력이다. 자유 형식의 자연어 입력은 말(및 마이크로폰(109)에 의해 캡처됨) 및/또는 타이핑(예를 들어, 메시지 교환 클라이언트(113)과 같은 하나 이상의 애플리케이션에 의해 제공되는 하나 이상의 인터페이스로)될 수 있다.
본 명세서에서 사용된 바와 같이, "대화 세션"은 사용자와 자동화된 어시스턴트(120)(및 일부 경우에 다른 인간 참여자) 사이의 하나 이상의 메시지의 논리적으로 자체 포함된 교환(logically-self-contained exchange)을 포함할 수 있다. 자동화된 어시스턴트(120)는 세션 간의 시간 경과, 세션 간의 사용자 컨텍스트의 변경(예: 위치, 예정된 회의 전/중/후 등), 사용자와 자동화된 어시스턴트 간의 대화를 제외하고 사용자와 클라이언트 장치 간의 하나 이상의 개입 인터랙션 검출(예: 사용자가 잠시 동안 애플리케이션을 전환한 후 나중에 독립 실행형 음성 활성화 제품으로 리턴함), 세션 간 클라이언트 장치 잠금/휴면(sleeping), 자동화된 어시스턴트(120)의 하나 이상의 인스턴스와 인터페이스하는 데 사용되는 클라이언트 장치의 변경 등과 같은, 다양한 신호를 기반으로 사용자와의 다중 대화 세션을 구별할 수 있다.
의도 매칭기(135)는 사용자에 의해 제공된 입력(들)(예: 음성 발화, 시각적 큐 등) 및/또는 센서 신호, 온라인 신호(예: 웹 서비스에서 얻은 데이터) 등과 같은 다른 신호에 기초하여 사용자의 의도를 결정하도록 구성될 수 있다. 일부 구현에서, 의도 매칭기(135)는 자연어 프로세서(122) 및 전술한 클라우드 기반 시각적 큐 모듈(1122)을 포함할 수 있다. 다양한 구현에서, 클라우드 기반 시각적(비주얼) 큐 모듈(1122)은 클라우드 기반 시각적 큐 모듈(1122)이 그 처분(disposal)에 더 많은 리소스를 가질 수 있다는 점을 제외하고는 시각적 큐 모듈(1121)과 유사하게 액션할 수 있다. 특히, 클라우드 기반 시각적 큐 모듈(1122)은 사용자의 의도를 결정하기 위해 의도 매칭기(135)에 의해 단독으로 또는 다른 신호와 결합하여 사용될 수 있는 시각적 큐를 검출할 수 있다.
자연어 프로세서(122)는 클라이언트 장치(106)를 통해 사용자(들)에 의해 생성된 자연어 입력을 처리하도록 구성될 수 있고 자동화된 어시스턴트(120)의 하나 이상의 다른 컴포넌트에 의해 사용하기 위해 주석이 달린 출력(예를 들어, 텍스트 형태)을 생성할 수 있다. 예를 들어, 자연어 프로세서(122)는 클라이언트 장치(106)의 하나 이상의 사용자 인터페이스 입력 장치를 통해 사용자에 의해 생성되는 자연어 자유 형식 입력을 처리할 수 있다. 생성된 주석이 달린 출력은 자연어 입력의 하나 이상의 주석과 자연어 입력의 용어 중 하나 이상(예를 들어, 모두)을 포함한다.
일부 구현에서, 자연어 프로세서(122)는 자연어 입력에서 다양한 유형의 문법 정보를 식별하고 주석을 달도록 구성된다. 예를 들어, 자연어 처리기(122)는 개별 단어를 형태소로 분리하고 및/또는 형태소에 예를 들어 그들의 클래스에 주석을 달 수 있는 형태소 모듈을 포함할 수 있다. 자연어 처리기(122)는 또한 그들의 문법적 역할과 함께 용어에 주석을 달도록 구성된 음성 태거의 일부를 포함할 수 있다. 예를 들어 품사 태거는 각 용어에 "명사", "동사", "형용사", "대명사" 등과 같은 품사로 태그를 지정할 수 있다. 또한, 예를 들어, 일부 구현에서 자연어 프로세서(122)는 자연어 입력에서 용어들 간의 구문 관계를 결정하도록 구성된 종속성 파서(도시되지 않음)를 추가적으로 및/또는 대안적으로 포함할 수 있다. 예를 들어, 종속성 파서는 어떤 용어가 다른 용어, 주제 및 문장의 동사 등(예: 구문 분석 트리)을 수정하는지 결정할 수 있으며 이러한 종속성에 대한 주석(annotations)을 만들 수 있다.
일부 구현에서, 자연어 프로세서(122)는 추가적으로 및/또는 대안적으로 사람(예를 들어 문학 인물, 유명인, 유명인 등 포함), 조직, 위치(실제 및 가상) 등에 대한 참조와 같은 하나 이상의 세그먼트에서 엔티티 참조에 주석을 달도록 구성된 엔티티 태거(도시되지 않음)를 포함할 수 있다. 일부 구현에서, 엔티티에 대한 데이터는 지식 그래프(도시되지 않음)와 같은 하나 이상의 데이터베이스에 저장될 수 있다. 일부 구현에서, 지식 그래프는 노드를 연결하고 엔티티 간의 관계를 나타내는 에지뿐만 아니라 알려진 엔티티(및 일부 경우에는 엔티티 속성)를 나타내는 노드를 포함할 수 있다. 예를 들어, "banana(바나나)" 노드는 "fruit(과일)" 노드에 연결될 수 있으며(예를 들어, 차일드(child)로서), 이는 차례로 연결되어(예를 들어, 차일드로서) "produce(생산)" 및/또는 "food(음식)" 노드에 연결될 수 있다. 다른 예로, "Hypothetical Caf
Figure 112021032708467-pct00001
(가상 카페)" 라는 레스토랑은 주소, 제공되는 음식 유형, 시간, 연락처 정보 등과 같은 속성도 포함하는 노드로 표시될 수 있다. "가상 카페" 노드는 일부 구현에서 에지(예를 들어, child-to-parent(자식-부모) 관계를 나타냄)에 의해 "restaurant(레스토랑)" 노드, "business(비즈니스)" 노드, 레스토랑이 위치한 도시 및/또는 주를 나타내는 노드와 같은 하나 이상의 다른 노드에 연결될 수 있다.
자연어 처리기(122)의 엔티티 태거는 높은 레벨의 입도(granularity)(예: 사람과 같은 엔티티 클래스에 대한 모든 참조를 식별할 수 있도록 하기 위해) 및/또는 더 낮은 레벨의 입도(예: 특정 사람과 같은 특정 엔티티에 대한 모든 참조를 식별할 수 있도록 하기 위해)에서 엔티티에 대한 참조에 주석을 달 수 있다. 엔티티 태거는 특정 엔티티를 해결하기 위해 자연어 입력의 콘텐츠에 의존할 수 있고 그리고/또는 특정 엔티티를 해결하기 위해 지식 그래프 또는 다른 엔티티 데이터베이스와 선택적으로 통신할 수 있다.
일부 구현에서, 자연어 프로세서(122)는 추가적으로 및/또는 대안적으로 하나 이상의 컨텍스트 큐에 기초하여 동일한 엔티티에 대한 참조를 그룹화하거나 "클러스터"하도록 구성된 코레퍼런스 리졸버(coreference resolver)(도시되지 않음)를 포함할 수 있다. 예를 들어, 코레퍼런스 리졸버는 자연어 입력 "I liked Hypothetical Caf
Figure 112021032708467-pct00002
last time we ate there.(나는 우리가 지난번에 거기서 먹었던 가상 카페를 좋아했다)"에서 "there(거기서)"라는 용어를 "Hypothetical Caf(가상 카페)"로 해석하는 데 활용될 수 있다.
일부 구현에서, 자연어 프로세서(122)의 하나 이상의 컴포넌트는 자연어 프로세서(122)의 하나 이상의 다른 컴포넌트로부터의 주석에 의존할 수 있다. 예를 들어, 일부 구현에서 명명된 엔터티 태거는 특정 엔터티에 대한 모든 멘션에 주석을 달 때 코레퍼런스 리졸버 및/또는 종속성 파서의 주석에 의존할 수 있다. 또한 예를 들어 일부 구현에서, 동일 엔터티에 대한 참조 클러스터링에서 코레퍼런스 리졸버는 종속성 파서의 주석에 의존할 수 있다. 일부 구현에서, 특정 자연어 입력을 처리(프로세싱)할 때, 자연어 프로세서(122)의 하나 이상의 컴포넌트는 하나 이상의 주석을 결정하기 위해 관련된 이전 입력 및/또는 특정 자연어 입력 외부의 다른 관련 데이터를 사용할 수 있다.
의도 매칭기(135)는 예를 들어, 자연어 프로세서(122)로부터의 출력(자연어 입력의 주석 및 용어를 포함할 수 있음) 및/또는 시각적 큐 모듈(예를 들어, 1121 및/또는 1122)로부터의 출력에 기초하여 사용자의 의도를 결정하기 위해 다양한 기술을 사용할 수 있다. 일부 구현에서, 의도 매칭기(135)는 예를 들어 문법, 시각적 큐 및 응답형 액션(또는 보다 일반적으로 의도) 사이의 복수의 매핑을 포함하는 하나 이상의 데이터베이스(도시되지 않음)에 액세스할 수 있다. 많은 경우에 이러한 문법은 시간이 지남에 따라 선택 및/또는 학습될 수 있으며 사용자의 가장 일반적인 의도를 나타낼 수 있다. 예를 들어, 하나의 문법, "play <artist>"는 <artist>에 의한 음악이 사용자에 의해 작동되는 클라이언트 장치(106)에서 재생되게하는 응답형 액션을 호출하는 의도에 매핑될 수 있다. 또 다른 문법인 "[weather|forecast] today([날씨|예보] 오늘)"은 "what's the weather today(오늘 날씨는 어때)", "what's the forecast for today?(오늘의 예보는 어때?)"와 같은 사용자 쿼리와 일치할 수 있다.
문법에 추가하여 또는 대신에, 일부 구현에서, 의도 매칭기(135)는 하나 이상의 훈련된 기계 학습 모델을 단독으로 또는 하나 이상의 문법 및/또는 시각적 큐와 조합하여 사용할 수 있다. 이러한 훈련된 기계 학습 모델은 하나 이상의 데이터베이스에 저장될 수 있으며, 예를 들어, 사용자의 발화 및/또는 임의의 감지된 사용자가 제공한 시각적 큐를 나타내는 데이터를 잠재 공간(latent space)에 임베딩한 다음, 예를 들어 유클리드 거리, 코사인 유사성 등과 같은 기술을 사용하여 가장 근접한 다른 임베딩(따라서 의도)을 결정함으로써 의도를 식별하도록 훈련될 수 있다.
"play <artist>" 예제 문법에서 볼 수 있듯이, 일부 문법에는 슬롯(slot) 값(또는 "파라미터")으로 채울 수 있는 슬롯(예: <artist>)이 있다. 슬롯 값은 다양한 방식으로 결정될 수 있다. 종종 사용자는 사전에 슬롯 값을 제공한다. 예를 들어, "Order me a <topping> pizza"라는 문법의 경우, 사용자는 "order me a sausage pizza"라는 문구를 말할 수 있으며, 이 경우 슬롯 <topping>이 자동으로 채워진다. 추가 또는 대안으로, 사용자가 사전에 슬롯 값을 제공하지 않고 슬롯 값으로 채울 슬롯을 포함하는 문법을 호출하면 자동화된 어시스턴트(120)는 사용자로부터 이러한 슬롯 값을 요청할 수 있다(예: "what type of crust do you want on your pizza?(피자에 어떤 종류의 크러스트를 원하십니까?"). 일부 구현에서, 슬롯은 시각적 큐 모듈(1121-2)에 의해 검출된 시각적 큐에 기초한 슬롯 값으로 채워질 수 있다. 예를 들어, 사용자는 클라이언트 장치(106)의 시각 센서(107)에 손가락 세 개를 들고 "Order me this many cat bowls(이 만큼의 켓 그릇을 주문 해줘"와 같은 말을 할 수 있다. 또는 사용자가 특정 영화의 DVD 케이스를 들고 "Find me more movies like this(이런 영화를 더 찾아 줘)"와 같은 말을 할 수 있다.
이행(Fulfillment) 모듈(124)은 의도 매칭기(135)에 의해 출력되는 예측/추정 의도뿐만 아니라 연관된 슬롯 값(사용자가 사전에 제공했거나 사용자에게 요청했는지 여부)을 수신하고 의도를 수행(또는 "해결" 또는 "충족")하도록 구성될 수 있다. 다양한 구현에서, 사용자의 의도의 이행(또는 "해결(resolution)" 또는 "수행")은 다양한 이행 정보("응답형" 정보 또는 "해결 정보"라고도 함)가 예를 들어 이행 모듈(124)에 의해 생성/획득되게 할 수 있다. 후술되는 바와 같이, 이행 정보는 일부 구현에서 자연어 생성기(126)(일부 도면에서 "NLG")에 제공될 수 있으며, 이는 이행 정보에 기초하여 자연어 출력을 생성할 수 있다.
이행(또는 "해결") 정보는 다양한 방식으로 의도를 이행(또는 "해결")할 수 있기 때문에 다양한 형태를 취할 수 있다. 사용자가 "Where were the outdoor shots of 'The Shining' filmed?('샤이닝' 야외 촬영 장소는 어디인가요?)"와 같은 푸어 정보(pure information)를 요청한다고 가정한다. 사용자의 의도는 예를 들어 의도 매칭기(135)에 의해 검색 쿼리인 것으로 결정될 수 있다. 검색 쿼리의 의도 및 콘텐츠는 도 1에 도시된 바와 같이 이행 모듈(124)에 제공될 수 있으며, 이는 응답 정보에 대해 문서 및/또는 다른 데이터 소스(예: 지식 그래프 등)의 코퍼스를 검색하도록 구성된 하나 이상의 검색 모듈(150)과 통신할 수 있다. 이행 모듈(124)은 검색 쿼리(예를 들어, 쿼리의 텍스트, 감소된 차원 임베딩 등)를 나타내는 데이터를 검색 모듈(150)에 제공할 수 있다. 검색 모듈(150)은 GPS 좌표와 같은 응답 정보, 또는 "Timberline Lodge, Mt. Hood, Oregon"와 같은 다른보다 명시적인 정보를 제공할 수 있다. 이 응답 정보는 이행 모듈(124)에 의해 생성된 이행 정보의 일부를 형성할 수 있다.
추가적으로 또는 대안적으로, 이행 모듈(124)은 예를 들어 의도 매칭기(135)로부터 사용자의 의도 및 사용자에 의해 제공되거나 다른 수단(예: 사용자의 GPS 좌표, 사용자 기본 설정 등)을 사용하여 결정된 임의의 슬롯 값을 수신하고 응답 액션을 트리거하도록 구성될 수 있다. 응답형 액션에는 예를 들어 상품/서비스 주문, 타이머 시작, 리마인더 설정, 전화 통화 시작, 미디어 재생, 메시지 전송 등이 포함될 수 있다. 일부 그러한 구현에서, 이행 정보는 이행과 연관된 슬롯 값, 확인 응답(일부 경우에 미리 결정된 응답으로부터 선택될 수 있음) 등을 포함할 수 있다.
자연어 생성기(126)는 다양한 소스로부터 획득된 데이터에 기초하여 자연어 출력(예: 사람의 말을 모방하도록 고안된 단어/구)을 생성 및/또는 선택하도록 구성될 수 있다. 일부 구현에서, 자연어 생성기(126)는 입력으로서 의도의 이행과 연관된 이행 정보를 수신하고, 이행 정보에 기초하여 자연어 출력을 생성하도록 구성될 수 있다. 추가적으로 또는 대안적으로, 자연어 생성기(126)는 제3자 애플리케이션(예를 들어, 필요한 슬롯)과 같은 다른 소스로부터 정보를 수신할 수 있으며, 이는 사용자를 위한 자연어 출력을 구성하는 데 사용할 수 있다.
본 개시의 다양한 양태들은 웹 사이트 내비게이션 엔진(128)에 의해 전체적으로 또는 부분적으로 구현될 수 있다. 일반적으로, 웹 사이트 내비게이션 엔진(128)은 이들 웹 사이트의 전부 또는 일부를 통한 자동 내비게이션을 용이하게 하기 위해 웹 사이트, 특히 웹 사이트의 구성 웹 페이지를 분석하도록 구성될 수 있다. 보다 구체적으로, 웹 사이트 내비게이션 엔진(128)은 사용자 상태의 생성을 위해 이러한 웹 페이지의 추상화를 생성하기 위해 웹 페이지 및 그 구성 인터렉티브 요소를 분석할 수 있다. 이러한 사용자 상태는 웹 페이지의 기본 기능(underlying functionality)을 캡처할 수 있으므로 이러한 웹 페이지가 변경되어도 자동으로 탐색(내비게이션)할 수 있다. 사용자 상태는 또한 이전에 검증된/알려진 웹 사이트와 유사한 기본 기능을 기반으로 지금까지 알려지지 않은 웹 사이트를 통한 자동 내비게이션을 가능하게 한다.
웹 사이트 내비게이션 엔진(128)은 웹 페이지 데이터베이스(127)와 같은 다수의 데이터베이스 및/또는 인덱스에 액세스할 수 있다. 웹 페이지 데이터베이스(127)는 웹 브라우저(111) 또는 다른 애플리케이션을 사용하여 인터넷에서 일반적으로 이용 가능하고 다양한 검색 엔진(도시되지 않음)을 사용하여 검색할 수 있는 HTML, XML, PDF 또는 기타 문서의 하나 이상의 데이터베이스를 포함할 수 있다.
웹 사이트 내비게이션 엔진(128)은 또한 과거 사용자 상태(129)의 데이터베이스에 액세스할 수 있다. 과거 사용자 상태(129)의 데이터베이스는 과거 사용자 상태 및 그 과거 사용자 상태가 활성화된 동안 수행(또는 잠재적으로 수행 가능할 수 있음)될 수 있는 해당 액션을 저장할 수 있다. 인터렉티브 웹 사이트를 형성하는 인터렉티브 웹 페이지의 시퀀스는 과거 사용자 상태(129)의 데이터베이스에서 과거 사용자 상태 및 해당 액션의 "스크립트(scripts)"로 표현될 수 있다. 해당 액션은 웹 페이지의 인터렉티브 요소와 상호작용하기 위해 수행할 수 있는 액션 일 수 있다. 인터렉티브 요소에는 라디오 버튼, 토글 스위치, 체크 박스, 텍스트 입력 필드, 드롭 다운 메뉴, 슬라이더, 및 HTML, XML, CSS, JavaScript 등과 같은 기술을 사용하여 사용할 수 있는 기타 사용자 인터페이스 요소가 포함될 수 있다.
일부 구현에서, 과거 사용자 상태/해당 액션의 각 스크립트는 특정 웹 사이트 또는 웹 페이지 식별자(예: 단일 리소스 로케이터 또는 "URL", 도메인 이름, IP 주소 등)에 대응할 수 있다. 예를 들어, 하나의 스크립트는 피자 주문 웹 사이트와 연관될 수 있고, 다른 스크립트는 사용자가 다양한 서비스(예: 라이드쉐어, 잔디 서비스, 가사 서비스, 헤어컷 서비스, 예약, 기타 유형의 약속 등)를 주문할 수 있는 웹 사이트와 연관될 수 있다.
짧게 더 상세히 설명되는 바와 같이, 일부 구현에서, 과거 사용자 상태/해당 액션의 스크립트는 예를 들어 인간에 의해 또는 여기에 설명된 기술을 사용하여 웹 사이트 내비게이션 엔진(128)에 의해 자동으로 "검증(validated)"될 수 있다. 스크립트를 "검증"한다는 것은 스크립트가 스크립트에 해당하는 인터렉티브 웹 사이트의 특정 의도 또는 목적을 수행할 수 있는지 확인하는 것을 의미한다. 스크립트 검증(유효성 검사) 프로세스는 요청시 주기적으로(예: N 초, 분, 시간, 일, 주 등), 필요할 때마다 발생할 수 있다.
사용자 상태는 다양한 정보로부터 생성될 수 있으며 다양한 형태를 취할 수 있다. 비-제한적인 예로서, 과거 사용자 상태(더 일반적으로 "사용자 상태")는 특정 웹 페이지의 콘텐츠에 기초하여 적어도 부분적으로 생성되는 의미가 풍부한(semantically rich) 특징 벡터, 임베딩 등과 같은 데이터 구조일 수 있다. 다시 말해, 과거 사용자 상태는 적어도 부분적으로 웹 페이지의 추상화를 나타낼 수 있다. 일부 구현에서, 이 웹 페이지 추상화는 웹 페이지로부터 추출된 시맨틱 및/또는 구문 정보, 및/또는 웹 페이지에서 발견되는 인터렉티브 요소를 나타내는 데이터 추상화를 포함할 수 있으며, 일부 구현에서, 여기에 설명된 "범용 식별자 매트릭스"의 형태를 취한다. 다양한 구현에서, 웹 페이지의 인터렉티브 요소로부터 생성된 범용 식별자 매트릭스는 웹 페이지로부터 생성된 과거 사용자 상태로 생성되거나(baked) 및/또는 과거 사용자 상태와 연관된 후보 액션으로 표현될 수 있다.
시퀀스 동안 이전에 수행된 액션 또는 이러한 액션의 수행에 사용되는 액션 및/또는 파라미터의 "트레이스(추적)" 동안에 수행된 액션을 포함하여 다양한 다른 데이터도 사용자 상태로 생성(baked)될 수 있다. 예를 들어, 인터렉티브 웹 사이트를 형성하는 일련의(시퀀스) 웹 페이지의 두 번째(또는 세 번째 또는 그 이상) 연속 웹 페이지에서 생성된 사용자 상태를 생각해보자. 이러한 연속적인(successive) 사용자 상태(“연속적인”이란 인터렉티브 웹 사이트와 연관된 사용자 상태를 오프닝하는 것이 아님을 의미함)는 시퀀스의 두 번째 연속적인(즉, 현재) 웹 페이지로부터 추출된 정보뿐만 아니라 이전의 과거 사용자 상태(예: 인터렉티브 웹 사이트의 이전 웹 페이지를 나타냄) 및 이전의 과거 사용자 상태와 관련하여 취해진 이전 액션에 대한 정보를 포함할 수 있다. 예를 들어, 이전 사용자 상태에서 이전 웹 페이지의 인터렉티브 요소를 "페퍼로니(pepperoni)"와 같은 파라미터로 채우는 액션이 수행된 경우, 이전에 제공된 파라미터는 연속적인 사용자 상태(들)로 생성(baked)될 수 있다.
추가적으로, 일부 구현에서, 예를 들어, 사용자의 프로필로부터 획득된 사용자에 대한 다양한 정보가 사용자 상태에 포함될 수 있다. 예를 들면, 선호하는 지불 방법, 사용자가 각 거래에서 지불 정보를 요청해야 하는지 여부, 사용자의 선호 좌석 위치(예: 비행기의 통로/창, 영화관 또는 스포츠 행사의 섹션 등, 이하에서 자세히 설명됨), 선호하는 가격 범위 또는 다양한 기타 제품 또는 서비스별 파라미터(예: 채식주의자 또는 비건(vegan), 흡연 또는 금연 등)와 같은 다양한 사용자 선호도는 사용자 상태에 생성(baked)될 수 있다. 사용자 상태에 포함될 수 있는 다른 사용자 프로필 정보에는 사용자의 전자 캘린더에 대한 약속(예: 사용자가 갈등이 있는 경우 영화 상영 시간을 자동으로 제거하는 데 사용할 수 있음), 이메일, 문자 메시지(관련 메타 데이터 포함) 등과 같은 전자 통신 내용, 소셜 미디어 게시물(예: 상태 업데이트, 업로드된 사진 등) 등이 포함되지만 이에 국한되지는 않는다.
사용자 선호도는 다양한 방식으로 결정될 수 있다. 일부 구현에서, 예를 들어 그래픽 사용자 인터페이스를 사용하여 또는 사용자가 자신의 선호도를 자동화된 어시스턴트(120)에 알리는 것과 같이 수동으로 설정될 수 있다. 추가적으로 또는 대안적으로, 일부 구현에서, 일부 사용자 선호도는 예를 들어 인터렉티브 웹 사이트와의 사용자 상호작용(인터랙션), 자동화된 어시스턴트(120)와의 사용자 상호작용 등에 기초하여 시간이 지남에 따라 학습될 수 있다. 예를 들어, 웹 브라우저(111)를 사용하여 상품이나 서비스를 구매할 때 사용자가 항상 확인 화면을 비교적 빠르게 클릭한다고 가정해본다(예: 제공되는 디스클레이머(disclaimer)나 기타 언어를 완전히 사용하는 데 일반적으로 필요한 것보다 더 빠르게). 이는 사용자로부터 명시적인 입력을 요구하지 않고, 예를 들어 웹 사이트 내비게이션 엔진(128) 및/또는 자동화된 어시스턴트에 의해 자동으로 탐색(내비게이션)되는 화면을 사용자가 편하게 생각할 가능성이 있다고 결정할 때 고려될 수 있다.
여기에 설명된 기술은 확인 페이지를 자동으로 탐색할지 여부를 결정할 때 다른 신호를 고려할 수도 있다. 예를 들어, 웹 브라우저(111)를 작동할 때 사용자가 지출할 금액이 임계값 미만일 때 사용자가 이러한 페이지를 더 빠르게 클릭하는 경향이 있지만, 사용자는 지출해야 할 금액이 임계값을 초과할 때 이러한 확인 페이지에 머무르는 경향이 있다. 이 임계값은, 예를 들어 웹 사이트 내비게이션 엔진(128)에 의해, 명시적인 사용자 입력을 요구하지 않고 특정 확인 웹 페이지를 자동으로 탐색할지 여부를 결정할 때 고려될 수 있다.
도 2a-i는 가상 티켓 구매 웹 사이트인 "fakebooking.com"으로부터 2장의 영화 티켓을 구매하기 위해 클라이언트 장치(206)상에서 사용자에 의해 상호작용할 수 있는(도시되지 않음) 웹 페이지의 시퀀스 또는 "트레이스"의 예를 도시한다. 이 예에서 클라이언트 장치(206)는 터치스크린이 있는 스마트폰 또는 태블릿의 형태를 취하지만, 이것은 제한을 의미하지는 않는다. 이러한 예에서, 사용자는 인터렉티브 웹 사이트와 상호작용하기 위해 클라이언트 장치(206)의 웹 브라우저(111)를 작동하지만, 다른 애플리케이션이 대신 사용될 수 있다. 예를 들어, 메시지 교환 클라이언트(113)와 같은 다른 애플리케이션은 사용자가 애플리케이션의 웹뷰(webview)에 로드되는 웹 페이지와 상호작용할 수 있게 하는 "웹뷰" 기능을 제공할 수 있다. 도 2a-i에서, 마이크로폰 아이콘은 사용자가 구두 명령을 제공할 수 있도록 자동화된 어시스턴트(120)(또는 적어도 음성 인식)를 호출하도록 사용자에 의해 작동될 수 있다.
사용자가 "Tickets for 'Hypothetical' on Friday"(금요일 'Hypothetical' 티켓)이라는 자연어 입력을 제공하여 시작한다고 가정한다. 이 요청에 응답하여, 도 2a에서, 클라이언트 장치(206)는 요청된 날짜에 요청된 영화에 대한 상영 시간을 제공하는 제1 웹 페이지를 수신하고 로드한다. 이 예에서 요청된 영화는 두 개의 극장에서 상영되며 각 극장에서 세 번의 상영 시간이 있다.
사용자가 시간(선택 가능한 링크일 수 있음)을 클릭하여 "1st Theatre(제1 극장)"에 표시되는 "20:45"를 선택한다고 가정한다. 로드되는 다음 웹 페이지는 도 2b에 묘사되어 있다. 도 2b에서 사용자는 9 월 21 일 오전 8시 45분(20:45와 동일)에 제1 극장에서 "Hypothetical"을 선택했으며 영화는 124분 상영시간이라는 것을 알 수 있다. 이제 사용자는 기존 계정(예: fakebooking.com)에 로그인하거나 게스트로 예약하는 두 가지 옵션에 직면하게 된다. 사용자가 게스트로 로그인했다고 가정하면 사용자에게 도 2c의 웹 페이지가 표시된다.
도 2c에서, 제공된 웹 페이지는 여기서 "confirmation(확인)" 웹 페이지로 지칭되는 웹 페이지의 유형이다. 확인 웹 페이지에서, 사용자는 확인 페이지에 표시되는 디스클레이머(disclaimer)나 정보를 소비할 시간이 있으면 일부 인터렉티브 요소(도 2c의 "Continue(계속)" 버튼)를 선택해야 한다. 예를 들어, 도 2c에서, 사용자는 구매한 각 티켓에 대해 부과되는 $ 0.76의 수수료를 알 수 있다. 사용자가 "계속" 버튼을 선택하면 도 2d와 같은 웹 페이지가 표시될 수 있다.
도 2d에서, 사용자는 티켓 유형(예: 성인, 어린이, 청소년, 노인 등)과 함께 구매하려는 티켓 수를 선택할 수 있는 풀다운 메뉴를 포함하는 새로운 인터렉티브 웹 페이지를 제공받는다. 티켓 유형(종류)마다 가격이 다르다. 도 2d에서, 사용자는 아직 풀다운 메뉴와 상호작용하지 않았다. 결과적으로 "Next(다음)" 버튼은 음영으로 표시된 것처럼 비활성화된다. 사용자가 하나 이상의 티켓을 선택하면 이 버튼이 활성화될 수 있다. 예를 들어, 도 2e에서 사용자는 두 개의 성인 티켓을 선택했다. 결과적으로 "다음" 버튼이 활성화되고 총 주문 금액도 표시된다. 사용자가 원하는 티켓을 선택하고 "다음" 버튼을 조작하면 도 2f와 같은 웹 페이지로 이동할 수 있다.
도 2f는 다른 확인 웹 페이지를 묘사한다. 이번에는 사용자에게 티켓이 환불 및 교환이 불가능하다는 알림을 받는다. 사용자는 또한 어린이의 극장 입장에 대한 기타 일반 정보를 제공받는다. 사용자가 "확인" 버튼을 클릭하면 도 2g의 웹 페이지가 표시될 수 있다.
도 2g에서, 사용자는 하나 이상의 인터렉티브 요소로서 사용자가 좌석을 선택하기 위해 상호작용할 수 있는 좌석 차트를 포함하는 웹 페이지를 제공 받는다. 도 2ㅎ에서 사용자는 블랙 박스로 표시된 것처럼 이미 두 개의 좌석을 선택했다. 흰색 박스(상자)는 여전히 사용 가능한 좌석을 나타내고 빗금으로 표시된 상자는 사용할 수없는 좌석을 나타낸다. 사용자가 좌석을 선택하면(예: 도 2e에서 선택한 티켓과 동일한 좌석 수), 하단의 "Select(선택)" 버튼을 눌러 다음 화면으로 이동할 수 있다.
도 2h에서, 사용자는 결제 정보를 제공하기 위해 상호작용할 수 있는 주로 텍스트 입력 필드인 다수의 인터렉티브 요소가 제공된다. 사용자가 유효한 결제 정보를 입력하면 사용자는 도 2i의 웹 페이지로 이동될 수 있다. 도 2i의 웹 페이지는 사용자의 구매를 요약하고 마지막으로 사용자에게 확인을 요청하는 또 다른 최종 확인 페이지이다. 사용자가 "확인(Confirm)"을 클릭하면 거래가 완료될 수 있다. 사용자는 문자 메시지나 이메일, 메일 등 다양한 형태로 티켓을 받을 수 있다.
도 2a-i와 같이, 사용자는 원하는 상품을 획득(구매)(procure)하기 위해 9 개의 서로 다른 인터페이스(웹 페이지)와 상호작용해야 한다. 특히 사용자가 신체적으로 장애가 있거나 (예: 그녀가 운전중이기 때문에 사용할 수 있는 독립형 인터렉티브 스피커만 있기 때문에) 시각적 인터페이스와 상호작용할 수 없는 경우 이 프로세스가 번거로울 수 있다. 따라서, 자동화된 어시스턴트(120) 및/또는 웹 사이트 내비게이션 엔진(128)의 양태(aspects)에 의해 수행되는 기술을 포함하여 여기에 설명된 기술은 웹 사이트의 소유자가 아직 자동화된 어시스턴트(120)를 사용하여 제3자 에이전트(예: 도 1의 150)를 생성하지 않았더라도 도 2a-i에 도시된 것과 같은 인터렉티브 웹 사이트를 자동으로 탐색(내비게이션)할 수 있게 한다.
도 3a-c는 사용자가 상품 및/또는 서비스를 더 쉽게 획득(procure)할 수 있도록, 도 2a-i에 묘사된 동일한 인터렉티브 웹 사이트를 통한 탐색이 전체적으로 또는 적어도 부분적으로 자동화될 수 있는 방법의 예를 보여준다. 도 3a-c에 도시된 바와 같이, 사용자는 도 2a-i에 도시된 것과 동일한 클라이언트 장치(206)와 상호작용하며, 이것은 제한을 의미하지 않는다. 예를 들어, 도 3a-c에 도시된 인터페이스와 인터랙션(상호작용)은 터치스크린 디스플레이가 장착되고 어시스턴트 장치로 작동하는 독립형 인터렉티브(interactive) 스피커에서 구현될 수 있다.
도 3a에서 사용자는 마이크로폰을 클릭하고 자연어 입력 "Hypothetical’ movie Louisville Friday, two tickets('Hypothetical' 영화 루이빌 프라이데이, 티켓 2장”)"을 말하거나 (예: 메시지 교환 클라이언트(113)으로) 타이핑했을 수 있다. 다양한 구현에서, 이 자연어 입력은 자동화된 어시스턴트(120)의 다양한 컴포넌트에 의해 처리되어 사용자의 의도(영화 티켓 구매) 및 의도를 수행하는 데 사용할 수 있는 하나 이상의 파라미터(예: movie = Hypothetical, date = Friday, September 21, num_tickets = 2)를 식별할 수 있다.
이 데이터에 기초하여, 자동화된 어시스턴트(120)는 동일한 인터렉티브 웹 사이트(fakebooking.com)로부터 하나 이상의 웹 페이지를 검색할 수 있고, 인터렉티브 웹 사이트의 적어도 일부를 자동으로 탐색하기 위해 여기에 설명된 기술을 사용하기 시작할 수 있다. 사용자의 요청은 영화 티켓 구매에 필요한 모든 파라미터를 포함하지 않았다. 예를 들어 사용자가 특정 시간, 극장 또는 원하는 좌석을 명시하지 않았다. 따라서, 다양한 구현에서, "fakebooking.com" 웹 사이트의 자동 내비게이션(탐색)은 사용자가 누락된 정보를 제공할 수 있도록 선택한 웹 페이지/인터페이스에서 일시 중지될 수 있다.
예를 들어, 도 3a에서, 자동화된 어시스턴트(120)는 요청된 날짜에 요청된 영화에 대한 상영 시간을 제공한다. 도 2a와 유사하게, 도 3a에서, 사용자는 진행하기 위해 원하는 상영 시간을 선택할 수 있다. 예를 들어, 도 3b에서 사용자는 마이크로폰을 탭하고 "8:45 at 1st theatre(제1 극장에서 8시45분)"라는 문구를 말한다. 또는 사용자가 위와 같이 원하는 시간에 대한 링크를 선택할 수 있다. 어느 쪽이든 인터렉티브 웹 사이트의 자동 내비게이션은 추가 누락 정보가 필요할 때까지 가능한 한 재개될 수 있다.
사용자는 원하는 좌석도 지정하지 않았다. 따라서, 도 3b의 사용자의 첫 번째 발언(statement)에 응답하여, 자동 어시스턴트(120)는 "Please select your seats(좌석을 선택하십시오)"라는 출력을 제공한다. 그 아래에서, 자동화된 어시스턴트(120)는 도 2g에 도시된 인터렉티브 웹 페이지로부터 동일한 인터렉티브 요소(들)를 모방하거나 카피하는 인터렉티브 좌석 선택 인터페이스를 제공한다. 사용자가 동일한 좌석을 선택하면, 선택한 좌석을 나열하는 버튼이 아래에 나타날 수 있다("확인" 또는 "다음" 이라고도 함). 이 버튼을 클릭하면 도 3c에 도시된 인터페이스로의 자동 내비게이션을 재개할 수 있다.
도 3c에서, 자동 어시스턴트(120)는 사용자에게 구매 내역을 확인하도록 요청한다. 이 정보는 사용자에 의해 제공된 다양한 파라미터로부터 컴파일되고 및/또는 기본(underlying) 웹 사이트의 해당 확인 웹 페이지(예를 들어,도 2i)로부터 유도될 수 있다. 사용자는 "Yep(예)"라고 구두로 답하여 확인한다. 자동화된 어시스턴트(120)는 "Enjoy the show(쇼 즐기기)"라고 응답한 다음, 사용자의 캘린더에 이벤트를 추가하는 버튼, 미리로드된 길 찾기가 있는 내비게이션 애플리케이션을 오픈하는 딥 링크(deep link) 등과 같은 유용한 링크를 제공할 수 있다.
이 예를 포함한 일부 구현에서, 사용자는 구매를 확인하도록 요청받는다. 그러나 이것이 항상 필요한 것은 아니다. 일부 구현에서, 구매를 완료하려는 사용자의 욕구라는 충분한 확신이 있으면 구매가 자동으로 진행될 수 있다. 예를 들어, 사용자가 특정 유형의 구매를 자주하고 항상 약간의 지연없이 구매를 확인하면 결국 사용자는 구매 확인 요청을 중단할 수 있다. 추가적으로 또는 대안적으로, 지불되는 가격, 제품의 유형 및/또는 다른 신호와 같은 일부 구현에서 사용자가 구매를 확인하도록 요청하는지 여부를 결정할 때 고려될 수 있다. 예를 들어, 지불되는 가격이 사용자의 지출 컴포트(comfort) 영역 내에 있는 것으로 추정되는 일부 임계값 미만이면 추가 사용자 입력없이 해당 구매가 자동으로 확인될 수 있다. 또는 사용자가 티켓을 구매하는 이벤트에 사용자가 참석할 것이라는 캘린더 아이템, 비슷한 내용을 말한 친구와의 이메일 또는 사용자가 이벤트(예: 호텔 룸, 백 스테이지 패스 등)와 연관된 다른 아이템을 구매했다는 것과 같이 구매를 확증하는 다른 신호가 있는 경우, 그러면 구매가 자동으로 확인될 수 있다.
도 4a-b는 도 2a-i의 인터렉티브 웹 사이트의 자동 내비게이션이 도 3a-c보다 훨씬 더 사용자 경험을 간소화할 수 있는 대체 구현을 보여준다. 이 예에서, 동일한 클라이언트 장치(206)가 도시된다. 그러나, 사용자와 도 4a-b의 자동화된 어시스턴트(120) 사이의 상호작용(인터랙션)은 반드시 디스플레이 인터페이스가 필요하지 않는다. 예를 들어, 도 4a에 도시된 바와 같이 상영 시간을 표시하는 대신, 자동화 어시스턴트(120)는 상이한 극장 및 상영 시간을 청각적으로 출력할 수 있다. 결과적으로, 도 4a-b는 독립형 인터렉티브 스피커 또는 차량 컴퓨팅 시스템(화면이 있을 수 있지만 운전자의 주의를 산만하게하지 않도록 사용하지 않을 수 있음)과 같이 디스플레이를 포함하지 않는 어시스턴트 장치를 사용하여 구현될 수 있다.
도 4a는 도 3a와 실질적으로 유사하다. 사용자가 도 4b에 도시된 바와 같이 극장 및 상영 시간을 선택하면, 다양한 구현에서, 자동화된 어시스턴트(120)는 거래를 완료하기 위해 선택 가능한 카드를 제시할 수 있다. 또는 대안으로, 도 4a-bd의 인터랙션이 순전히 청각적(audible)일 수 있고, 자동화된 어시스턴트(120)는 세부 사항을 청각적으로 출력하고 사용자에게 확인을 요청할 수 있다.
4a-b에서, 좌석 선택 차트는 스킵될 수 있다. 여러 가지 이유가 있을 수 있다. 예를 들어, 사용자가 선택한 극장 또는 상영 시간은 개방된 좌석일 수 있으며,이 경우 좌석은 예약할 수 없고 대신 선착순이다. 대안적으로, 일부 구현에서, 좌석에 대한 사용자의 선호도는, 예를 들어, 사용자에 의한 수동 입력 또는 시간이 지남에 따라 학습된 사용자의 좌석 선호에 기초하여 사용자의 프로필로부터 결정될 수 있다. 사용자가 항상 3 열에서 5 열 사이의 좌석을 선택하고 극장의 중앙 부분 만 선택한다고 가정한다. 또한 이러한 좌석을 사용할 수 없었던 과거의 경우 사용자가 다른 상영 시간에 티켓을 구매하지 않았거나 원하는 좌석을 구매했다고 가정한다. 이러한 신호는 사용자의 좌석 선호도를 파악하는 데 사용될 수 있다. 따라서, 자동 어시스턴트(120)는 좌석 배치도를 분석하여 사용자의 좌석 선호도에 맞는 좌석이 있는지 여부를 판단한 후 자동으로 좌석을 선택할 수 있다. 이렇게 하면 사용자가 직접 선택할 필요가 없다. 유사한 기술을 사용하여 비행기, 기차, 스포츠 경기 등의 좌석을 자동으로 선택할 수 있다.
도 5는 도 1의 다양한 컴포넌트가 각각의 하나 이상의 인터렉티브 웹 페이지를 포함하는 인터렉티브 웹 사이트의 전부 또는 일부를 자동으로 탐색하도록 구성될 수 있는 방법의 한 예를 도시한다. 일부 구현에서, 이러한 기술은 자동화된 어시스턴트(120)가 해당 제3자 에이전트(150)가 없는 인터렉티브 웹 사이트를 자동으로 탐색할 수 있도록하기 위해 사용될 수 있지만, 이것은 제한을 의미하지는 않는다. 여기에 설명된 기술은 다른 컨텍스트에서 인터렉티브 웹 사이트의 전체 또는 일부를 자동으로 탐색하는 데 사용할 수 있다. 예를 들어, 웹 브라우저(111)는 자동화된 웹 사이트 내비게이션을 용이하게 하기 위해 본 개시 내용의 선택된 양태를 수행하도록 구성된 플러그인을 구비할 수 있다. 사용자는 웹 브라우저(111)를 사용하는 동안, 예를 들어, 여기에 설명된 기술을 사용하여 자동화된 탐색에 대해 이전에 검증된 인터렉티브 웹 사이트로 웹 브라우저가 탐색될 때 표시되는 아이콘을 클릭함으로써 플러그인을 작동할 수 있다. 아이콘을 클릭하면 가능한 한 웹 사이트에서 필요한 정보를 자동 완성 및/또는 제출할 수 있으며 사용자가 개별 인터렉티브 요소와 상호작용하여 누락된 정보를 제공할 수 있다.
도 5의 단계 1에서, 사용자는 자동 어시스턴트(120)에 자연어 입력을 제공한다. 이 예에서, 사용자는 "Order me a thin crust pepperoni pizza from hypotheticalpizza.com(hypotheticalpizza.com에서 얇은 크러스트 페퍼로니 피자 주문" 이라고 요청한다. "hypotheticalpizza.com"의 인터렉티브 웹 사이트에 해당하는 제3자 에이전트(150)가 없다고 가정한다. 자동 어시스턴트(120)는 사용자의 요청을 분석하여 사용자의 의도가 hypotheticalpizza.com에서 피자를 주문하는 것이며, 자동 어시스턴트(120)가 파라미터 "pepperoni(페퍼로니)" 및 "thin crust(얇은 크러스트)"를 사용하여 주문을 이행해야 한다고 결정할 수 있다.
분석에 기초하여, 단계 2에서, 자동화된 어시스턴트(120) 및/또는 웹 사이트 내비게이션 엔진(128)은 예를 들어, 웹 페이지 데이터베이스(들)(127)로부터 요청된 네트워크 식별자(hypotheticalpizza.com)에서 웹 사이트의 개방(오프닝) 인터렉티브 웹 페이지를 검색할 수 있다. 단계 3에서, 현재 사용자 상태는 검색된 개방 웹 페이지에 적어도 부분적으로 기초하여 및/또는 사용자의 선호도, 캘린더 등과 같은 다른 정보에 기초하여 생성될 수 있다. 앞서 언급했듯이 현재 사용자 상태는 특징 벡터, 의미가 풍부한 임베딩(semantically-rich embedding) 등과 같은 다양한 형태를 취할 수 있다. 일부 경우에, 웹 페이지 콘텐츠는 웹 페이지의 하나 이상의 인터렉티브 요소에 기초하여 하나 이상의 범용 식별자 매트릭스를 생성하도록 분석될 수 있다. 이러한 범용 식별자 매트릭스를 나타내는 데이터가 사용자 상태에 포함될 수 있다.
단계 4에서, 사용자 상태는 과거 사용자 상태 데이터베이스(129)에 포함된 하나 이상의 후보 과거 사용자 상태(5601-M)에 매칭될 수 있다(M은 양의 정수임). 이 매칭은 현재 사용자 상태와 후보 과거 사용자 상태(560) 각각 간의 유사성 측정치과 같은 다양한 기준에 기초할 수 있다. 예를 들어, 일부 구현에서, 임계치를 만족하는 현재 사용자 상태에 대한 유사성 측정치를 갖는 과거의 후보 사용자 상태(550)만이 선택될 수 있거나, 과거 사용자 상태의 최상위 가장 유사한 후보가 선택될 수 있다. 또는, 후보 과거 사용자 상태 및 현재 사용자 상태의 각각의 범용 식별자 매트릭스가 매칭될 수 있다.
현재 사용자 상태와 동일한 웹 사이트에서 후보 과거 사용자 상태를 생성할 필요는 없다. 많은 경우에, 후보 과거 사용자 상태가 기능적으로 유사한 웹 페이지에서 생성된 것으로 충분할 수 있으므로 기능이 유사한 웹 페이지에서 수행되든 현재 사용자 상태를 생성하는 데 사용된 웹 페이지에서 수행되든 유사한 액션이 성공할 수 있다. 이런 식으로 일부 구현에서, 웹 사이트 내비게이션 엔진(128)은 이전에 스크립트가 검증된 알려진 웹 사이트와의 유사성에 기초하여 지금까지 알려지지 않았거나 발견되지 않은(un-encountered) 웹 사이트의 부분을 자동으로 탐색한다.
도 5에 도시된 바와 같이, 각 후보 과거 사용자 상태(560)는 하나 이상의 액션과 연관될 수 있다. 예를 들어, 제1 후보 과거 사용자 상태(candidate past user state)(5601)는 ACTION 1, 1, ACTION 1, 2,… 및 ACTION 1, N(N은 양의 정수)과 연관된다. 제2 후보 과거 사용자 상태는 ACTION 2, 1, ACTION 2, 2,… 및 ACTION 2, N 등과 연관된다. 각 액션은 예를 들어 인터렉티브 웹 페이지 요소에 해당할 수 있다. 일부 구현에서, 각 액션은 과거에 웹 페이지에서 만난 특정 인터렉티브 요소로부터 생성된 범용 식별자 매트릭스에 의해 표현될 수 있다. 따라서 액션에는 예를 들어 텍스트 필드에 파라미터 입력, 드롭 다운 목록에서 파라미터 선택, 라디오 버튼 또는 확인 박스 체크, 토글 스위치를 토글, "제출" 또는 "확인" 또는 "다음" 버튼 등을 활성화가 포함될 수 있다.
단계 5에서, 하나 이상의 액션이 다양한 기준에 기초하여 선택되고 수행될 수 있다. 성공하면 인터렉티브 웹 사이트를 통해 스크립트의 다음 웹 페이지가 6 단계에서 로드되고 프로세스가 반복될 수 있다. 선택한 액션이 실패하면 일부 액션이 성공할 때까지 다른 액션을 선택할 수 있다. 일부 구현에서, 액션이 성공할 때, 현재 사용자 상태는 예를 들어 적어도 성공적인 액션과 관련하여 과거 사용자 상태 데이터베이스(127)에 추가될 수 있다. 이러한 방식으로 시스템은 인터렉티브 웹 사이트를 자동으로 탐색하는 방법을 "학습"하고 인터렉티브 웹 사이트를 통해 알려진 스크립트를 확인/검증할 수 있다.
도 5의 예에서, 각 후보 과거 사용자 상태(560)는 N 개의 잠재적인 액션을 갖는다. 예를 들어, 모든 가능한 액션이 각 후보 과거 사용자 상태(560)에 대해 이용 가능하게 되기 때문일 수 있다. 다양한 구현에서, 하나 이상의 정책은 어떤 액션이 시도되는지 또는 어떤 순서로 시도되는지를 지시할 수 있다. 이러한 일부 구현에서, 모든 액션 1-N은, 예를 들어 각각의 범용 식별자 매트릭스(위에 언급된 바와 같이 과거 사용자 상태 및/또는 관련 액션과 관련될 수 있음) 간의 유사성과 같은 다양한 기준에 기초하여 하나 이상의 정책에 따라 순위가 매겨(랭킹화)질 수 있다. 그러나 이것은 제한을 의미하지는 않는다. 일부 구현에서, 각각의 과거 사용자 상태(560)는 과거 사용자 상태를 생성하는 데 사용되는 기본 웹 페이지에서 발견되는 인터렉티브 요소(범용 식별자 매트릭스)와 대응하는 액션에만 연관될 수 있다. 이는 사실상 소정의 후보 과거 사용자 상태에 대한 잠재적인 액션의 검색 공간을 줄인다.
다른 정책이 여기에서 고려된다. 예를 들어, 일부 구현에서 상태/액션은 시간이 지남에 따라 진화하는 정책(예: 강화 학습과 유사)에 의해 관리될 수 있다. 예를 들면, 정책은 입력으로 현재 사용자 상태를 수신하고 어떤 액션이 먼저 수행되어야하는지, 두 번째로 수행되어야 하는지를 나타내는 데이터를 출력으로 제공하도록 훈련된 신경망 또는 기타 통계 모델의 형태를 취할 수 있다. 예를 들어, 출력은 각 잠재적 액션이 성공할 확률일 수 있다. 일부 구현에서, 성공할 가능성이 가장 높은 액션(들)은 예를 들어 성공 확률 순서대로 수행될 수 있다.
일부 구현에서, 정책(policy)은 인간에 의해 또는 여기에 설명된 기술을 사용하여 자동으로 인터렉티브 웹 사이트가 성공적으로 탐색될 때마다 지속적으로 훈련될 수 있다. 예를 들어, 인터렉티브 웹 사이트를 탐색하도록 작동되는 일련의 웹 페이지에서 각 웹 페이지는 상태를 생성하는 데 사용될 수 있다. 웹 사이트와의 상호작용(인터랙션)은 '턴(turns)'으로 나눌 수 있다. 각 턴 동안, 새로운 웹 페이지의 인터렉티브 요소와 상호작용하기 위해 정책 및 현재 사용자 상태에 따라 액션이 선택되고 수행될 수 있다. 인터랙티브 웹 사이트의 웹 페이지를 통해 일련의 턴이 성공하면 누적 보상이 생성되어 각 턴의 각 현재 사용자 상태/액션 쌍에 대한 정책을 훈련하는 데 사용할 수 있다. 예를 들어, 누적 보상(reward)은 수행된 각 사용자 상태/액션에 대한 정책에 대한 경사 하강(gradient descent) 및/또는 역전파(back propagation)와 같은 기술을 수행하는 데 사용될 수 있다. 시간이 지남에 따라 정책은 인터렉티브 웹 사이트를 성공적으로 자동으로 탐색하기 위해 현재 사용자 상태에 기초하여 액션을 선택하는 데 더 적합해질 수 있다.
추가적으로 또는 대안적으로, 일부 구현에서, 예를 들어, 선택된 액션이 성공하지 못한 경우 별도의 턴당 보상(per-turn reward)(또는 벌금)이 발생할 수 있다. 예를 들어, 수행된 액션이 신용 카드 번호 필드를 날짜로 채우려는 시도를 포함한 경우 기본 웹 사이트는 입력이 유효하지 않다는 경고를 (예: JavaScript 사용하여)표시할 수 있다. 이는 해당 액션의 실패를 구성할 수 있으며, 이로 인해 턴당 페널티가 발생하고 정책을 훈련하는 데 사용될 수 있다(예: 부정적인 훈련의 예). 마찬가지로 액션이 성공하면 긍정적인 턴당 보상이 발생할 수 있다.
도 6a-b는 다양한 구현에 따라, 범용 식별자 매트릭스가 생성될 수 있는 방법의 두 가지 예를 보여준다. 도 6a-b에서, "FAKE RAILWAYS"의 사용자 인터페이스가 도시되어 있다. 이 인터페이스는 사용자가 기차표를 예약하기 위해 작동할 수 있다. 예를 들어, 사용자는 입력 박스(670)에 원하는 티켓의 출처(origin)("Von"은 영어로 "From"으로 번역됨)를 타이핑하거나 입력할 수 있다. 사용자는 입력 박스(671)에 원하는 티켓의 목적지("Nach")를 타이핑하거나 입력할 수 있다. 사용자가 다양한 인터렉티브 요소에 대한 입력을 제공하면, 사용자는 버튼(668)을 눌러 이용 가능한 티켓을 찾을 수 있다. 특히, 도 6a-b의 인터페이스의 텍스트는 독일어로 되어 있다. 비-독일어 사용자 조차도 이러한 인터렉티브 요소가 다른 유사한 웹 사이트(예: 항공권 구매 웹 사이트)에서 친숙한 시각적 및/또는 기하학적 컨텍스트를 가지고 있다는 사실을 기반으로 각 인터렉티브 요소가 나타내는 내용을 직관할 수 있다.
따라서, 다양한 구현에서, 설명된 기술은 인터페이스(예: 웹 페이지)의 각각의 인터렉티브 요소에 대해, 웹 페이지가 렌더링될 때 각각의 인터렉티브 요소를 즉시 둘러싸는(서라운딩)(immediately surround) 웹 페이지/인터페이스의 각각의 인터렉티브 요소 및 다른 가시적 콘텐츠 모두를 나타내는 데이터를 포함하는 범용 식별자 매트릭스 (672A, 672B)를 생성하기 위해 사용될 수있다. 보다 일반적으로, 범용 식별자 매트릭스는 기하학적 컨텍스트 및 유형을 기반으로 HTML/XML 노드에 대한 선택기 역할을 하므로 웹 페이지 구조 및/또는 DOM 트리가 크게 변경 되더라도 웹 페이지에서 쉽게 검색할 수 있다. 일부 구현에서, 범용 선택기 매트릭스(universal selector matrix)를 사용하여 검색된 최근 변경된 웹 페이지의 노드는 동일한 유형(예: 라디오 버튼, 텍스트 입력 등)을 가질 수 있고 원래 노드와 동일한 액션을 수신할 수 있다.
범용 식별자 매트릭스를 생성하기 위한 하나의 "grid-based(그리드 기반)" 접근 방식이 도 6a-6b에 도시된다. 도 6a에서, 버튼(668)에 대해 제1 범용 식별자 매트릭스(672A)가 생성된다. 제1 범용 식별자 매트릭스(672A)은 3x3 배열로 9 개의 셀을 포함한다. 각 셀은 미리 결정된 폭 및/또는 높이를 가질 수 있으며, 이는 필요/원하는대로 변경될 수 있다. 5x5, 9x9 등과 같은 다른 수, 크기 및/또는 셀 배열이 본 명세서에서 고려된다. 제1 범용 선택기(672A)는 버튼(668)의 활성 부분에 대해 중앙에 위치한다(따라서 캡처한다). 맨 아래에 있는 첫 번째(제2) 범용 식별자 매트릭스(672A)의 확대된 버전에서 볼 수 있듯이, 왼쪽 상단 셀은 인터페이스에서 "AN" 텍스트를 캡처하고, 가운데 왼쪽 셀은 인터페이스에서 "SUCHEN" 텍스트를 캡처하고, 하단 중간 셀은 인터페이스에서 "SUCHE"텍스트를 캡처한다. 일부 구현에서, 셀에 의해 완전히 캡처된 전체 단어만 범용 식별자 매트릭스에 포함될 수 있지만, 이것이 필수는 아니다.
도 6b에서, 제2 범용 식별자 매트릭스(672B)는 텍스트 입력(670)("VON")에 대해 중앙에 위치한다. 하단에 있는 두 번째(제2) 범용 식별자 매트릭스(672B)의 확대된 버전에서 볼 수 있듯이, 왼쪽 상단 셀은 인터페이스에서 "VON"텍스트를 캡처하고, 오른쪽 상단 셀은 인터페이스에서 "FAKE"텍스트를 캡처하고, 왼쪽 하단 셀은 인터페이스에서 "NACH"텍스트를 캡처한다.
이러한 범용 식별자 매트릭스(672A-B)뿐만 아니라 도 6a-b에 도시된 인터페이스의 다른 인터렉티브 요소에 대해 생성된 범용 식별자 매트릭스는 예를 들어 과거 사용자 상태(127)의 데이터베이스에 저장될 수 있다. 예를 들어, 각각의 과거 사용자 상태는 이러한 범용 식별자 매트릭스를 나타내는 데이터를 포함할 수 있다. 추가적으로 또는 대안적으로, 이러한 범용 식별자 매트릭스는 과거 사용자 상태로 수행될 수 있는 액션을 정의하는 데 사용될 수 있다. 앞에서 설명한대로, 도 6a-b의 인터페이스가 "FAKE RAILWAYS"와 연관된 웹 사이트의 자동 내비게이션 중에 발견되면, 사용자가 제공한 파라미터를 사용하여 이러한 범용 식별자 매트릭스의 기초가 되는 인터렉티브 요소와 상호작용을 시도할 수 있다.
일부 구현에서, 특정 DOM 노드(또는 보다 일반적으로 인터렉티브 요소)는 다음과 같이 소정의 웹 페이지(또는 웹뷰)에서 검색될 수 있다. 찾는 노드에서 생성된 참조 범용 매트릭스이 검색될 수 있다. 전체 웹 페이지를 캡처하는(즉, 전체 웹 페이지를 커버하는) 첫 번째(제1) 범용 매트릭스가 생성될 수 있다. 그런 다음, 이 첫 번째 범용 매트릭스의 각 셀에 대해, 셀 중앙에 있고 전체 셀에 맞는 다른 더 작은 범용 식별자 매트릭스이 생성될 수 있다. 그 후, 프로세스는 참조 범용 식별자 매트릭스에 가장 가까운 더 작은 범용 식별자 매트릭스를 찾기 위해 더 작은 범용 식별자 매트릭스 각각을 반복(loop)할 수 있다. 그 다음, 프로세스는 참조 범용 식별자 매트릭스와 동일한 유형을 갖는 DOM 노드를 식별하기 위해 가장 가까운 작은 범용 식별자 매트릭스 내에서 발견된 모든 DOM 노드를 반복(loop)할 수 있다.
이러한 "그리드 기반" 접근법의 일부 구현에서, 범용 식별자 매트릭스 간의 유사성은 그들 간의 거리에 기초하여 결정될 수 있다. 예를 들어, 두 그리드 기반 범용 식별자 매트릭스 간의 "distance(거리)"는 그리드 셀에 대한 차이를 합산하여 항(terms) 세트에서 계산할 수 있다. "그리드 기반" 접근 방식 하에서 두 범용 식별자 매트릭스 사이의 거리를 결정하는 의사 코드의 예는 도 7에 도시된다. 그리드 크기가 다른 범용 식별자 매트릭스(universal identifier matrices) 간에 거리를 계산할 수 있다. 일부 구현에서, 도 7의 다음 코드 라인 "distance += SetDiff(Ny.GetTerms(i), Nx.GetTerms(j)).size;"이 이하의 코드로 대체될 수 있다.
이하의 코드
const auto& set_diff = SetDiff(Ny.GetTerms(i), Nx.GetTerms(j));
for (const auto& term : set_diff) {
Distance += idf[term];
}
이러한 변경은 idf(Inverse Document Frequency)를 사용하여 항 변경에 대한 거리 측정을 보다 강력하게 만들 수 있다. 위의 대체 코드에서, idf는 문자열(string)에서 log(|D|/|D(term)|)로의 맵이며, |D|는 범용 식별자 매트릭스의 수이며, |D(term)|은 중앙 셀을 둘러싸는 셀에서 텍스트로서 항을 갖는 범용 식별자 매트릭스의 수이다.
도 6a-b에 시연된 바와 같이, 범용 식별자 매트릭스 생성에 대한 그리드 기반 접근 방식의 한 가지 이점은 그리드의 셀 수에 따라 선형으로 확장된다는 것이다. 그러나, 범용 식별자 매트릭스를 생성하기 위한 다른 접근법이 여기에서 고려된다. 예를 들어, 일부 구현에서, 범용 식별자 매트릭스는 소정의 인터렉티브 요소와 연관된 <location, text> 쌍의 세트로 정의될 수 있다. <location>은 관심있는 인터렉티브 요소의 중심에 있는 바운딩(경계) 사각형(또는 다른 모양)의 중심에 상대적인 위치일 수 있다. 관심 요소의 인터랙션(상호작용)을 둘러싼 각 요소는 인터렉티브 요소에 대한 위치에 따라 분류될 수 있다. 예를 들어, <(-10, 10): "first", "name">은 관심있는 인터렉티브 요소인 왼쪽에 10 픽셀(또는 다른 거리 단위), 위쪽에 10 픽셀(또는 다른 거리 단위)에 있는 텍스트 "first name"을 참조할 수 있다. 이러한 방식으로 구성된 두 개의 범용 식별자 매트릭스를 비교할 때, 다양한 쌍 사이의 거리를 계산하여 두 개의 범용 식별자 매트릭스 간의 전체적인 유사성을 결정할 수 있다. 이 접근 방식은 계산 복잡성이 증가 함에도 불구하고 인터렉티브 요소의 기하학적/시각적 컨텍스트를 보다 정확하게 표현할 수 있다. 이러한 접근 방식에 대한 의사 코드의 예가 도 8에 도시된다.
도 9는 본 명세서에 개시된 구현에 따른 예시적인 방법(900)을 예시하는 흐름도이다. 편의상, 흐름도의 액션은 액션을 수행하는 시스템을 참조하여 설명한다. 이 시스템은 자동화된 어시스턴트(120) 및/또는 웹 사이트 내비게이션 엔진(128)의 하나 이상의 컴포넌트와 같은 다양한 컴퓨터 시스템의 다양한 컴포넌트를 포함할 수 있다. 더욱이, 방법(900)의 액션이 특정 순서로 도시되지만, 이것은 제한하는 것을 의미하지 않는다. 하나 이상의 액션을 다시 정렬하거나 생략하거나 추가할 수 있다.
블록(902)에서, 시스템은 컴퓨팅 장치(예를 들어, 클라이언트 장치(106, 206))의 입력 컴포넌트에서 사용자로부터 자연어 입력을 수신할 수 있다. 다양한 구현에서, 자연어 입력은 컴퓨팅 장치에서 적어도 부분적으로(예: 자동화된 어시스턴트 클라이언트(108)를 통해) 작동하는 자동화된 어시스턴트(120)로 사용자에 의해 지시될 수 있다. 블록(904)에서, 시스템은 예를 들어 클라우드 기반 자동 어시스턴트 컴포넌트(119)를 통해 자연어 입력을 분석하여 사용자의 의도 및 사용자의 의도를 수행하는 것과 연관된 하나 이상의 파라미터를 식별할 수 있다.
블록(906)에서, 시스템은 하나 이상의 인터렉티브 요소를 포함하는 웹 페이지를 획득할 수 있다. 일부 구현에서, 웹 페이지는 자연어 입력, 사용자의 의도 또는 하나 이상의 파라미터 중 하나 이상에 기초하여 식별될 수 있다. 예를 들어, 웹 페이지는 사용자의 의도를 수행하도록 작동될 수 있다. 하나 이상의 인터렉티브 요소는 하나 이상의 파라미터를 입력하도록 작동될 수 있다.
블록(908)에서, 시스템은 사용자와 연관된 현재 사용자 상태를 결정할 수 있다. 앞서 언급한 바와 같이, 현재 사용자 상태(일반적으로 임의의 사용자 상태)는 특징 벡터, 임베딩, 하나 이상의 범용 식별자 매트릭스 등과 같은 다양한 유형의 데이터 구조로 표현될 수 있다. 다양한 구현에서, 현재 사용자 상태는 그 구성(constituent) 인터렉티브 요소를 포함하는 웹 페이지의 콘텐츠에 적어도 부분적으로 기초하여 결정될 수 있다.
블록(910)에서, 시스템은 블록(908)에서 결정된(예: 생성된) 현재 사용자 상태에 기초하여, 예를 들어 과거 사용자 상태(127)의 데이터베이스로부터 하나 이상의 후보 과거 사용자 상태(예: 5601-M)를 식별할 수 있다. 일부 구현에서, 하나 이상의 후보 과거 사용자 상태 각각은 예를 들어 웹 페이지의 하나 이상의 인터렉티브 요소와 상호작용하기 위한 하나 이상의 후보 액션을 포함할 수 있다. 일부 구현에서, 하나 이상의 후보 액션은 의도(intent)의 적어도 일부를 수행할 수 있는 것으로 이전에 검증되었을 수 있다.
블록(912)에서, 시스템은 제1 기준에 적어도 부분적으로 기초하여 하나 이상의 후보 과거 사용자 상태로부터 특정 후보 과거 사용자 상태를 선택할 수 있다. 두 상태 간의 유사성 측정치(예: 거리), 구성 범용 식별자 매트릭스 간의 유사성 측정치(예: 거리) 등과 같은 다양한 첫 번째(제1) 기준이 사용될 수 있다. 블록(914)에서, 시스템은 제2 기준에 적어도 부분적으로 기초하여, 특정 후보 과거 사용자 액션과 연관된 하나 이상의 후보 액션으로부터 특정 후보 액션을 선택할 수 있다. 예를 들어, 시스템은 현재 사용자 상태를 생성하는 데 사용되는 웹 페이지의 인터렉티브 요소로부터 생성된 범용 식별자 매트릭스와 가장 유사한 범용 식별자 매트릭스로 표현되는 과거 사용자 상태의 액션을 선택할 수 있다.
블록 916에서, 시스템은 하나 이상의 파라미터를 사용하여 웹 페이지의 하나 이상의 인터렉티브 요소와 상호작용하기 위해 선택된 후보 액션을 수행할 수 있다. 예를 들어, 하나의 파라미터를 사용하여 드롭 다운 메뉴에서 선택하고 다른 파라미터를 사용하여 텍스트 입력 필드를 채울 수 있다. 블록 918에서, 시스템은 예를 들어 자동화된 어시스턴트(120)를 통해 사용자에게 오디오 또는 시각적 출력으로서 사용자의 의도의 적어도 일부가 수행되었음을 나타내는 자연어 출력을 제공할 수 있다.
도 10은 다양한 실시 예에 따른 본 개시의 선택된 양태를 실행하기 위한 예시적인 방법(1000)을 도시한다. 특히, 방법(100)은 예를 들어 이러한 웹 페이지가 변경된 경우에 이전에 검증된 웹 페이지/웹 사이트를 재 검증하도록 수행될 수 있다. 편의상, 흐름도의 액션은 액션을 수행하는 시스템을 참조하여 설명한다. 이 시스템은 자동화된 어시스턴트(120) 및/또는 웹 사이트 내비게이션 엔진(128)을 포함하는 다양한 컴퓨터 시스템의 다양한 컴포넌트를 포함할 수 있다. 더욱이, 방법(1000)의 액션이 특정 순서로 도시되지만, 이것은 제한하는 것을 의미하지 않는다. 하나 이상의 액션을 다시 정렬하거나 생략하거나 추가할 수 있다.
블록 1002에서, 시스템은 URL, 도메인, IP 주소 등과 같은 웹 페이지의 식별자를 결정할 수 있다. 다양한 구현에서, 식별자는 웹 페이지가 사용자의 의도를 수행하도록 작동할 수 있는 마지막으로 알려진 웹 페이지를 나타내기 위해 이전에 검증되었을 수 있다. 다양한 구현에서, 웹 페이지는 의도와 연관된 하나 이상의 파라미터를 입력하도록 작동할 수 있는 것으로 알려진 하나 이상의 인터렉티브 요소의 제1 세트를 포함하는 것으로 마지막으로 알려졌을 수 있다.
블록 1004에서, 시스템은 식별자에 기초하여 웹 페이지의 업데이트된 버전을 검색(예를 들어, 다운로드)할 수 있다. 블록 1006에서, 시스템은 하나 이상의 인터렉티브 요소의 제2 세트를 식별하기 위해 블록 1004에서 검색된 웹 페이지의 업데이트된 버전을 분석할 수 있다. 블록 1008에서, 시스템은 블록 1004에서 검색된 웹 페이지의 업데이트된 버전으로부터 식별된 하나 이상의 인터렉티브 요소의 제2 세트에 기초하여 해당 범용 식별자 매트릭스의 업데이트된 세트를 생성할 수 있다. 업데이트된 세트 각각은 제2 세트의 각각의 인터렉티브 요소 및 웹 페이지가 렌더링될 때 각각의 인터렉티브 요소를 즉시 서라운딩하는 웹 페이지의 다른 시각적 콘텐츠 모두를 나타내는 데이터를 포함할 수 있다.
블록 1010에서, 시스템은 웹 페이지에 포함된 것으로 마지막으로 알려진 하나 이상의 인터렉티브 요소의 제1 세트에 기초하여 생성된 범용 식별자 매트릭스의 업데이트된 세트와 범용 식별자 매트릭스의 알려진 세트 간의 매핑을 결정할 수 있다. 달리 말하면, 시스템은 예를 들어, 과거 사용자 상태 및 과거 사용자 상태 데이터베이스(129)에서 이용 가능한 다른 정보를 사용하여, 업데이트된 웹 페이지의 인터렉티브 요소를 웹 페이지의 이전 버전의 인터렉티브 요소와 조정(reconcile)하려고 시도한다.
블록 1012에서, 시스템은 상기 매핑에 기초하여, 제2 세트의 하나 이상의 해당 인터렉티브 요소에 대한 하나 이상의 인터렉티브 요소의 제1 세트에 대해 이전에 수행된 액션(들)을 시도할 수 있다. 다시 말해, 시스템은 이전에 검증된 동일한 액션을 시도하여 여전히 작동하는지 확인하고 매핑이 합법적인지 여부를 결정한다.
시도의 하나 이상의 결과에 기초하여, 블록 1014에서, 시스템은 웹 페이지의 식별자를 검증되거나 무효화된 것으로 선택적으로 분류할 수 있다. 예를 들어, 업데이트된 버전의 웹 사이트에서 동일한 액션이 성공한 경우 해당 액션(예: 인터렉티브 웹 사이트를 통해 스크립트의 일부를 구성)은 유효성이 검증된 것으로 간주될 수 있다. 결과적으로, 시스템은 검증된 웹 페이지 식별자와 연관된 웹 페이지를 포함하는 웹 사이트를 통한 자연어 기반 자동 내비게이션을 용이하게 하기 위해 이용 가능한 복수의 검증된 웹 페이지 식별자(검증된 과거 사용자 상태에 해당)의 일부로서 새로 검증된 식별자를 이용 가능하게 할 수 있다.
도 11은 다양한 실시 예에 따라 본 개시의 선택된 양태를 실행하기 위한 예시적인 방법(1100)을 도시한다. 특히, 도 11의 동작은 이들 웹 사이트를 통한 자동 내비게이션을 용이하게 하기 위해 지금까지 알려지지 않은 인터렉티브 웹 사이트를 분석하는 데 사용될 수 있다. 편의상, 흐름도의 동작은 동작을 수행하는 시스템을 참조하여 설명한다. 이 시스템은 자동화된 어시스턴트(120) 및/또는 웹 사이트 내비게이션 엔진(128)을 포함하는 다양한 컴퓨터 시스템의 다양한 컴포넌트를 포함할 수 있다. 더욱이, 방법(1100)의 동작이 특정 순서로 도시되어 있지만, 이것은 제한하는 것을 의미하지 않는다. 하나 이상의 동작을 다시 정렬하거나 생략하거나 추가할 수 있다.
블록 1102에서, 시스템은 예를 들어, 사용자에 의해 제공된 웹 사이트 식별자에 기초하여, 하나 이상의 인터렉티브 요소를 포함하는 알려지지 않은 웹 페이지를 획득할 수 있다. 알려지지 않은 웹 페이지는 프로큐어먼트(procurement)의 적어도 일부를 수행하도록 작동할 수 있고 하나 이상의 인터렉티브 요소는 프로큐어먼트(procurement)(예: 상품 또는 서비스 구매(획득))의 적어도 일부를 수행하기 위한 하나 이상의 파라미터를 입력하도록 작동할 수 있다.
블록 1104에서, 시스템은 예를 들어 알려지지 않은 웹 페이지의 하나 이상의 인터렉티브 요소에 기초하여 하나 이상의 범용 식별자 매트릭스의 대응하는 제1 세트를 생성할 수 있다. 앞에서 설명한대로, 제1 세트의 각각의 범용 식별자 매트릭스는 알려지지 않은 웹 페이지가 렌더링될 때 각각의 인터렉티브 요소를 즉시 서라운딩하는 알려지지 않은 웹 페이지의 각각의 인터렉티브 요소 및 알려지지 않은 웹 페이지의 다른 시각적 콘텐츠 둘 모두를 나타내는 데이터를 포함할 수 있다.
블록(1106)에서, 시스템은 예를 들어, 범용 식별자 매트릭스의 제1 세트에 적어도 부분적으로 기초하여, 과거 사용자 상태의 데이터베이스(127)로부터 하나 이상의 후보 과거 사용자 상태를 식별할 수 있다. 다시 한번 이들은 개별 인터렉티브 요소 간의(또는 그로부터 생성된 범용 식별자 매트릭스 사이) 유사성/거리 또는 전반적인(예: 웹 페이지 전체) 유사성/거리와 같은 다양한 기준을 사용하여 식별될 수 있다. 이전에 설명한 구현에서와 같이, 하나 이상의 후보 과거 사용자 상태의 각각의 개별 후보 과거 사용자 상태는 개별 후보 과거 사용자 상태를 생성하는데 사용되는 알려진 웹 페이지의 하나 이상의 인터렉티브 요소와 상호작용하기 위한 하나 이상의 후보 액션을 포함할 수 있다. 그리고 다양한 구현에서, 하나 이상의 후보 과거 사용자 상태의 소정의 후보 과거 사용자 상태는 소정의 후보 과거 사용자 상태와 연관된 범용 식별자 매트릭스의 제1 세트 및 하나 이상의 범용 식별자 매트릭스의 제2 세트의 비교에 기초하여 식별될 수 있다.
블록 1108에서, 시스템은 알려지지 않은 웹 페이지의 하나 이상의 인터렉티브 요소에서 하나 이상의 후보 과거 사용자 상태와 연관된 하나 이상의 후보 액션을 시도할 수 있다. 방법 1100이 알려지지 않은 웹 사이트의 향후 자동 내비게이션을 용이하게 하기 위해 자동으로 수행되는 경우, 일부 구현에서, 알려지지 않은 웹 사이트의 구성 웹 페이지는 테스트 시스템(예: 샌드박스)에 다운로드될 수 있고, 테스트 목적을 위한 파라미터로 더미(dummy) 값이 사용될 수 있다. 블록 1110에서, 시스템은 상기 시도의 하나 이상의 결과에 기초하여, 알려지지 않은 웹 페이지를 검증되거나 무효화된 것으로 선택적으로 분류할 수 있다. 이전과 마찬가지로 검증된 웹 페이지를 사용하여 검증된 웹 페이지를 포함하는 웹 사이트를 통해 자연어 기반 자동 내비게이션을 용이하게 할 수 있다.
본 명세서에서 설명된 특정 구현이 사용자에 관한 개인 정보(예: 다른 전자 통신에서 추출된 사용자 데이터, 사용자의 소셜 네트워크에 대한 정보, 사용자의 위치, 사용자 시간, 사용자의 생체 정보 및 사용자의 활동 및 인구 통계 정보, 사용자 간의 관계 등)를 수집 또는 사용할 수 있는 상황에서, 사용자는 정보 수집 여부, 개인 정보 저장 여부, 개인 정보 사용 여부 및 사용자에 대한 정보 수집 방법, 저장 및 사용 방법을 제어할 수 있는 하나 이상의 기회를 제공받는다. 즉, 본 명세서에서 설명된 시스템 및 방법은 관련 사용자로부터 명시적인 승인을 받은 경우에만 사용자 개인 정보를 수집, 저장 및/또는 사용한다.
예를 들어, 사용자는 프로그램 또는 기능이 특정 사용자 또는 프로그램 또는 기능과 연관된 다른 사용자에 대한 사용자 정보를 수집하는지 여부를 제어할 수 있다. 개인 정보를 수집할 각 사용자는 해당 사용자와 연관된 정보 수집을 제어하고 정보의 수집 여부와 정보의 어느 부분을 수집할 것인지에 대한 권한 또는 권한을 부여할 수 있는 하나 이상의 옵션이 제공받는다. 예를 들어, 통신 네트워크를 통해 사용자에게 하나 이상의 이러한 제어 옵션이 제공될 수 있다. 또한, 특정 데이터는 개인 식별 정보가 제거되도록 저장되거나 사용되기 전에 하나 이상의 방식으로 처리될 수 있다. 일례로서, 개인의 식별 가능한 정보가 결정될 수 없도록 사용자의 신원이 취급될 수 있다. 다른 예로서, 사용자의 지리적 위치는 더 큰 영역으로 일반화되어 사용자의 특정 위치가 결정될 수 없다.
도 12는 본 명세서에 설명된 기술의 하나 이상의 양태를 수행하기 위해 선택적으로 사용될 수 있는 예시적인 컴퓨팅 장치(1210)의 블록도이다. 일부 구현에서, 클라이언트 컴퓨팅 장치, 웹 사이트 내비게이션 엔진(128), 자동화된 어시스턴트(120) 및/또는 다른 컴포넌트(들) 중 하나 이상은 예시적인 컴퓨팅 장치(1210)의 하나 이상의 컴포넌트를 포함할 수 있다.
컴퓨팅 장치(1210)는 전형적으로 버스 서브시스템(612)을 통해 복수의 주변 장치와 통신하는 적어도 하나의 프로세서(1214)를 포함한다. 이러한 주변 장치는, 예를 들어, 메모리 서브시스템(1225) 및 파일 저장(스토리지) 서브시스템(1226), 사용자 인터페이스 출력 장치(1220), 사용자 인터페이스 입력 장치(1222) 및 네트워크 인터페이스 서브시스템(1216)을 포함하는 저장 서브시스템(1224)을 포함할 수 있다. 입력 및 출력 장치는 컴퓨팅 장치(1210)와의 사용자 상호작용을 허용한다. 네트워크 인터페이스 서브시스템(1216)은 외부 네트워크에 인터페이스를 제공하고 다른 컴퓨팅 장치에서 대응하는 인터페이스 장치에 연결된다.
사용자 인터페이스 입력 장치(1222)는 키보드, 마우스, 트랙볼, 터치 패드 또는 그래픽 태블릿과 같은 포인팅 장치, 스캐너, 디스플레이에 통합된 터치스크린, 음성 인식 시스템과 같은 오디오 입력 장치, 마이크로폰 및/또는 다른 유형의 입력 장치를 포함할 수 있다. 일반적으로, "입력 장치"라는 용어의 사용은 모든 가능한 유형의 장치 및 정보를 컴퓨팅 장치(1210) 또는 통신 네트워크에 입력하는 방법을 포함하도록 의도된다.
사용자 인터페이스 출력 장치(1220)는 디스플레이 서브시스템, 프린터, 팩스기, 또는 오디오 출력 장치와 같은 비 시각적 디스플레이를 포함할 수 있다. 디스플레이 서브시스템은 음극선 관(CRT), 액정 디스플레이(LCD)와 같은 평판 장치, 투영 장치, 또는 가시 이미지를 생성하기 위한 다른 메커니즘을 포함할 수 있다. 디스플레이 서브시스템은 또한 오디오 출력 장치를 통한 것과 같은 비 시각적 디스플레이를 제공할 수 있다. 일반적으로, "출력 장치"라는 용어의 사용은 모든 가능한 유형의 장치 및 컴퓨팅 장치(1210)로부터 사용자 또는 다른 기계 또는 컴퓨팅 장치로 정보를 출력하는 방법을 포함하도록 의도된다.
저장(스토리지) 서브시스템(1224)은 본 명세서에 설명된 일부 또는 모든 모듈의 기능을 제공하는 프로그래밍 및 데이터 구성을 저장한다. 예를 들어, 저장 서브시스템(1224)은 도 1에 도시된 다양한 컴포넌트를 구현하기 위해 및/또는 도 7-9의 방법의 선택된 양태를 수행하는 로직을 포함할 수 있다.
이들 소프트웨어 모듈은 일반적으로 프로세서(1214)에 의해 단독으로 또는 다른 프로세서와의 조합으로 실행된다. 저장 서브시스템(1224)에 사용되는 메모리(1225)는 프로그램 실행 동안 명령 및 데이터의 저장을 위한 메인 랜덤 액세스 메모리(RAM)(1230) 및 고정 명령이 저장된 판독 전용 메모리(ROM)(1232)를 포함하는 복수의 메모리를 포함할 수 있다. 파일 저장 서브시스템(1226)은 프로그램 및 데이터 파일을 위한 영구 저장을 제공할 수 있으며, 하드 디스크 드라이브, 플로피 디스크 드라이브 및 관련 이동식 매체, CD-ROM 드라이브, 광학 드라이브 또는 이동식 매체 카트리지를 포함할 수 있다. 특정 구현의 기능을 구현하는 모듈은 파일 저장 서브시스템(1226)에 의해 저장 서브시스템(1224) 또는 프로세서(들)(1214)에 의해 액세스 가능한 다른 머신에 저장될 수 있다.
버스 서브시스템(612)은 컴퓨팅 장치(1210)의 다양한 컴포넌트 및 서브시스템이 의도된대로 서로 통신하도록 하는 메커니즘을 제공한다. 버스 서브시스템(612)이 단일 버스로서 개략적으로 도시되어 있지만, 버스 서브시스템의 대안적인 구현은 다중 버스를 사용할 수 있다.
컴퓨팅 장치(1210)는 워크스테이션, 서버, 컴퓨팅 클러스터, 블레이드 서버, 서버 팜, 또는 임의의 다른 데이터 처리 시스템 또는 컴퓨팅 장치를 포함하는 다양한 유형일 수 있다. 컴퓨터 및 네트워크의 끊임없이 변화하는 특성으로 인해, 도 12에 도시된 컴퓨팅 장치(1210)의 설명은 일부 구현 예를 설명하기 위한 특정 예로서 만 의도된다. 컴퓨팅 장치(1210)의 많은 다른 구성은 도 12에 도시된 컴퓨팅 장치보다 더 많거나 적은 컴포넌트를 가질 수 있다.
여러 구현이 여기에 설명되고 예시되었지만, 기능을 수행하고 및/또는 여기에 설명된 결과 및/또는 하나 이상의 이점을 얻기 위한 다양한 다른 수단 및/또는 구조가 활용될 수 있으며, 각각의 이러한 변형 및/또는 수정은 여기에 설명된 구현의 범위 내에 있는 것으로 간주된다. 보다 일반적으로, 본 명세서에 설명된 모든 파라미터, 치수, 재료 및 구성은 예시적인 것이며 실제 파라미터, 치수, 재료 및/또는 구성은 교시가 사용되는 특정 응용 또는 응용에 의존할 것이라는 것을 의미한다. 당업자는 단지 일상적인 실험을 사용하여 본 명세서에 설명된 특정 구현에 대한 많은 등가물을 인식하거나 확인할 수 있을 것이다. 따라서, 전술한 구현은 단지 예로서 제시된 것이며, 첨부된 청구 범위 및 그 균등물의 범위 내에서 구현이 구체적으로 설명되고 청구된 것과 달리 실행될 수 있다는 것을 이해해야 한다. 본 개시 내용의 구현은 본원에 기재된 각각의 개별적인 특징, 시스템, 물품, 재료, 키트 및/또는 방법에 관한 것이다. 둘 이상의 이러한 특징, 시스템, 물품, 재료, 키트 및/또는 방법의 임의의 조합(이러한 특징, 시스템, 물품, 재료, 키트 및/또는 방법이 서로 일치하지 않는 경우)은 본 개시의 범위 내에 포함된다.

Claims (22)

  1. 하나 이상의 프로세서를 사용하여 구현되는 방법으로서,
    컴퓨팅 장치의 입력 컴포넌트에서 사용자로부터 자연어 입력을 수신하는 단계 -상기 자연어 입력은 사용자에 의해 컴퓨팅 장치에서 적어도 부분적으로 작동하는 자동화된 어시스턴트로 유도됨-;
    사용자의 의도(intent) 및 사용자의 의도를 수행하는 것과 연관된 하나 이상의 파라미터를 식별하기 위해 자연어 입력을 분석하는 단계;
    하나 이상의 인터렉티브 요소를 포함하는 웹 페이지를 획득하는 단계 -웹 페이지는 사용자의 의도를 수행하도록 액션 가능하고 그리고 하나 이상의 인터렉티브 요소는 하나 이상의 파라미터를 입력하도록 액션 가능함-;
    사용자와 연관된 현재 사용자 상태를 결정하는 단계 -현재 사용자 상태는 웹 페이지의 콘텐츠에 적어도 부분적으로 기초하여 결정됨-;
    현재 사용자 상태에 기초하여, 과거 사용자 상태의 데이터베이스로부터 하나 이상의 후보 과거 사용자 상태를 식별하는 단계 -하나 이상의 후보 과거 사용자 상태 각각은 웹 페이지의 하나 이상의 인터렉티브 요소와 상호작용하기 위한 하나 이상의 후보 액션을 포함하고, 하나 이상의 후보 액션은 상기 의도의 적어도 일부를 수행할 수 있는 것으로 이전에 검증됨-;
    제1 기준에 적어도 부분적으로 기초하여, 하나 이상의 후보 과거 사용자 상태로부터 특정 후보 과거 사용자 상태를 선택하는 단계;
    제2 기준에 적어도 부분적으로 기초하여, 하나 이상의 후보 액션으로부터 상기 선택된 후보 과거 사용자 상태와 연관된 특정 후보 액션을 선택하는 단계;
    하나 이상의 파라미터를 사용하여 웹 페이지의 하나 이상의 인터렉티브 요소와 상호작용하기 위해 상기 선택된 후보 액션을 수행하는 단계; 그리고
    자동화된 어시스턴트에 의해, 사용자에게 오디오 또는 시각적 출력으로서, 사용자의 의도의 적어도 일부가 수행되었음을 나타내는 자연어 출력을 제공하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서를 사용하여 구현되는 방법.
  2. 제1항에 있어서, 상기 방법은,
    하나 이상의 파라미터, 자연어 입력 또는 사용자의 의도 중 하나 이상에 기초하여 웹 페이지를 식별하는 단계를 더 포함하는 것을 특징으로 하는 하나 이상의 프로세서를 사용하여 구현되는 방법.
  3. 제1항에 있어서, 하나 이상의 후보 액션 각각은 상기 웹 페이지와 호환되는 것으로 이전에 검증된 것을 특징으로 하는 하나 이상의 프로세서를 사용하여 구현되는 방법.
  4. 제1항에 있어서, 상기 하나 이상의 후보 액션 각각은 해당 의도를 수행하도록 액션 가능한 상이한 웹 페이지와 호환되는 것으로 이전에 검증된 것을 특징으로 하는 하나 이상의 프로세서를 사용하여 구현되는 방법.
  5. 제1항에 있어서, 상기 제1 기준은 현재 사용자 상태 및 가장 큰 유사성 측정치(similarity measure)를 갖는 상기 선택된 후보 과거 사용자 상태를 포함하는 것을 특징으로 하는 하나 이상의 프로세서를 사용하여 구현되는 방법.
  6. 제1항에 있어서, 현재 사용자 상태를 결정하는 단계는,
    웹 페이지의 하나 이상의 인터렉티브 요소 각각에 대해, 웹 페이지가 렌더링될 때 각각의 인터렉티브 요소를 즉시 서라운딩(immediately surround)하는 웹 페이지의 다른 시각적 콘텐츠와 각각의 인터렉티브 요소 둘 모두를 나타내는 데이터를 포함하는 범용 식별자 매트릭스를 생성하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서를 사용하여 구현되는 방법.
  7. 제6항에 있어서, 상기 식별하는 단계는,
    상기 웹 페이지로부터 생성된 하나 이상의 범용 식별자 매트릭스를 하나 이상의 후보 과거 사용자 상태 각각과 연관된 하나 이상의 다른 범용 식별자 매트릭스와 비교하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서를 사용하여 구현되는 방법.
  8. 제6항에 있어서, 상기 식별하는 단계는,
    하나 이상의 후보 과거 사용자 상태 중 각각의 소정의 후보 과거 사용자 상태에 대해, 웹 페이지로부터 생성된 하나 이상의 범용 식별자 매트릭스를 상기 소정의 후보 과거 사용자 상태와 연관된 하나 이상의 후보 액션에 대응하는 하나 이상의 다른 범용 식별자 매트릭스와 비교하는 단계를 포함하는 것을 특징으로 하는 하나 이상의 프로세서를 사용하여 구현되는 방법.
  9. 제8항에 있어서, 상기 방법은,
    상기 비교하는 것에 기초하여 소정의 후보 과거 사용자 상태와 연관된 하나 이상의 후보 액션을 순위화하는 단계를 더 포함하는 것을 특징으로 하는 하나 이상의 프로세서를 사용하여 구현되는 방법.
  10. 제6항에 있어서,
    상기 범용 식별자 매트릭스는 하나 이상의 튜플을 포함하고, 하나 이상의 튜플 각각은
    웹 페이지로부터의 콘텐츠 조각(piece) 및 범용 식별자 매트릭스를 결정하는 데 사용된 각각의 기본(underlying) 인터렉티브 요소에 대한 콘텐츠 조각의 기하학적 위치를 포함하는 것을 특징으로 하는 하나 이상의 프로세서를 사용하여 구현되는 방법.
  11. 제6항에 있어서, 상기 범용 식별자 매트릭스는 2차원 셀 그리드를 포함하고, 2차원 셀 그리드의 중앙 셀은 범용 식별자 매트릭스를 결정하는 데 사용된 각각의 기본 인터렉티브 요소에 대응하고, 중앙 셀을 서라운딩(surround)하는 하나 이상의 2차원 셀 그리드는 웹 페이지로부터의 다른 콘텐츠 조각에 대응하는 것을 특징으로 하는 하나 이상의 프로세서를 사용하여 구현되는 방법.
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 제1항 내지 제11항 중 어느 한 항의 방법을 수행하도록 구성된 하나 이상의 프로세서를 포함하는 시스템.
  22. 하나 이상의 프로세서에 의해 수행될 때 하나 이상의 프로세서로 하여금 제1항 내지 제11항 중 어느 한 항의 방법을 수행하게 하는 컴퓨터 실행 가능 명령어를 포함한 컴퓨터 판독가능 저장 매체.
KR1020217008316A 2018-09-27 2019-05-09 자동 내비게이션을 용이하게 하기 위한 웹 페이지 분석 KR102582513B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020237032242A KR102643444B1 (ko) 2018-09-27 2019-05-09 자동 내비게이션을 용이하게 하기 위한 웹 페이지 분석

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862737822P 2018-09-27 2018-09-27
US62/737,822 2018-09-27
PCT/US2019/031529 WO2020068169A1 (en) 2018-09-27 2019-05-09 Analyzing web pages to facilitate automatic navigation

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020237032242A Division KR102643444B1 (ko) 2018-09-27 2019-05-09 자동 내비게이션을 용이하게 하기 위한 웹 페이지 분석

Publications (2)

Publication Number Publication Date
KR20210035319A KR20210035319A (ko) 2021-03-31
KR102582513B1 true KR102582513B1 (ko) 2023-09-26

Family

ID=66655460

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020237032242A KR102643444B1 (ko) 2018-09-27 2019-05-09 자동 내비게이션을 용이하게 하기 위한 웹 페이지 분석
KR1020217008316A KR102582513B1 (ko) 2018-09-27 2019-05-09 자동 내비게이션을 용이하게 하기 위한 웹 페이지 분석

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020237032242A KR102643444B1 (ko) 2018-09-27 2019-05-09 자동 내비게이션을 용이하게 하기 위한 웹 페이지 분석

Country Status (6)

Country Link
US (2) US11487832B2 (ko)
EP (1) EP3655840B1 (ko)
JP (1) JP7209818B2 (ko)
KR (2) KR102643444B1 (ko)
CN (1) CN112997171A (ko)
WO (1) WO2020068169A1 (ko)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9990674B1 (en) 2007-12-14 2018-06-05 Consumerinfo.Com, Inc. Card registry systems and methods
US8312033B1 (en) 2008-06-26 2012-11-13 Experian Marketing Solutions, Inc. Systems and methods for providing an integrated identifier
US9106691B1 (en) 2011-09-16 2015-08-11 Consumerinfo.Com, Inc. Systems and methods of identity protection and management
US8738516B1 (en) 2011-10-13 2014-05-27 Consumerinfo.Com, Inc. Debt services candidate locator
US9853959B1 (en) 2012-05-07 2017-12-26 Consumerinfo.Com, Inc. Storage and maintenance of personal data
US9654541B1 (en) 2012-11-12 2017-05-16 Consumerinfo.Com, Inc. Aggregating user web browsing data
US9916621B1 (en) 2012-11-30 2018-03-13 Consumerinfo.Com, Inc. Presentation of credit score factors
US9406085B1 (en) 2013-03-14 2016-08-02 Consumerinfo.Com, Inc. System and methods for credit dispute processing, resolution, and reporting
US10102570B1 (en) 2013-03-14 2018-10-16 Consumerinfo.Com, Inc. Account vulnerability alerts
US9477737B1 (en) 2013-11-20 2016-10-25 Consumerinfo.Com, Inc. Systems and user interfaces for dynamic access of multiple remote databases and synchronization of data based on user rules
US11265324B2 (en) 2018-09-05 2022-03-01 Consumerinfo.Com, Inc. User permissions for access to secure data at third-party
JP7209818B2 (ja) 2018-09-27 2023-01-20 グーグル エルエルシー 自動ナビゲーションを容易にするためのウェブページの分析
US11315179B1 (en) 2018-11-16 2022-04-26 Consumerinfo.Com, Inc. Methods and apparatuses for customized card recommendations
US11238656B1 (en) 2019-02-22 2022-02-01 Consumerinfo.Com, Inc. System and method for an augmented reality experience via an artificial intelligence bot
US11074918B2 (en) * 2019-03-22 2021-07-27 Adobe Inc. Real-time agreement comprehension tool
US11941065B1 (en) 2019-09-13 2024-03-26 Experian Information Solutions, Inc. Single identifier platform for storing entity data
US11567788B1 (en) 2019-10-18 2023-01-31 Meta Platforms, Inc. Generating proactive reminders for assistant systems
US11636438B1 (en) 2019-10-18 2023-04-25 Meta Platforms Technologies, Llc Generating smart reminders by assistant systems
CN114127672A (zh) * 2020-05-25 2022-03-01 微软技术许可有限责任公司 网络自动化脚本的爬虫
US11561672B1 (en) * 2020-07-24 2023-01-24 Tableau Software, LLC Compatibility-based feature management for data prep applications
US20220108079A1 (en) * 2020-10-06 2022-04-07 Sap Se Application-Specific Generated Chatbot
US11669582B2 (en) * 2021-03-24 2023-06-06 Rookie Road, Inc. Systems and methods for automatic resource replacement
US11861263B1 (en) * 2021-08-24 2024-01-02 X Development Llc Robust natural language based control of computer applications
TWI779887B (zh) * 2021-10-19 2022-10-01 國立臺灣大學 動態式民宿資訊推薦裝置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120016678A1 (en) * 2010-01-18 2012-01-19 Apple Inc. Intelligent Automated Assistant

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6192380B1 (en) 1998-03-31 2001-02-20 Intel Corporation Automatic web based form fill-in
JP2002175285A (ja) 2000-12-05 2002-06-21 Nec Corp ネットワーク用エージェントシステム
US7676829B1 (en) 2001-10-30 2010-03-09 Microsoft Corporation Multiple credentials in a distributed system
JP2003271643A (ja) 2002-03-15 2003-09-26 Bandai Co Ltd 情報提供システム及びユーザ端末並びに情報収集装置及び情報提供ホスト並びに記録媒体
US20070226783A1 (en) 2006-03-16 2007-09-27 Rabbit's Foot Security, Inc. (A California Corporation) User-administered single sign-on with automatic password management for web server authentication
US8468155B2 (en) * 2006-06-22 2013-06-18 Infosys Limited Collaborative filtering-based recommendations
US20080120257A1 (en) 2006-11-20 2008-05-22 Yahoo! Inc. Automatic online form filling using semantic inference
US20100174758A1 (en) 2009-01-05 2010-07-08 International Business Machines Corporation Automatic management of single sign on passwords
US8990235B2 (en) * 2009-03-12 2015-03-24 Google Inc. Automatically providing content associated with captured information, such as information captured in real-time
WO2011041672A1 (en) 2009-10-02 2011-04-07 Massachusetts Institute Of Technology Translating text to, merging, and optimizing graphical user interface tasks
CN103370701A (zh) * 2010-12-23 2013-10-23 诺基亚公司 用于提供自动和增量移动应用识别的方法、装置和计算机程序产品
US8510237B2 (en) 2011-03-15 2013-08-13 Qualcomm Incorporated Machine learning method to identify independent tasks for parallel layout in web browsers
US9600456B2 (en) 2011-08-30 2017-03-21 Hewlett-Packard Development Company, L.P. Automatically performing a web service operation
US8826398B2 (en) 2011-09-29 2014-09-02 Hewlett-Packard Development Company, L.P. Password changing
EP3005150A4 (en) * 2013-06-07 2016-06-15 Apple Inc INTELLIGENT AUTOMATIC ASSISTANT
CN103473291B (zh) * 2013-09-02 2017-01-18 中国科学院软件研究所 一种基于隐语义概率模型的个性化服务推荐系统及方法
US20150331908A1 (en) * 2014-05-15 2015-11-19 Genetic Finance (Barbados) Limited Visual interactive search
US9997157B2 (en) * 2014-05-16 2018-06-12 Microsoft Technology Licensing, Llc Knowledge source personalization to improve language models
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US9773067B2 (en) * 2014-05-30 2017-09-26 Microsoft Technology Licensing, Llc Personal intelligence platform
US9852286B2 (en) 2014-08-01 2017-12-26 Okta, Inc. Automated password generation and change
US10127321B2 (en) * 2015-02-23 2018-11-13 Genesys Telecommunications Laboratories, Inc. Proactive knowledge offering system and method
US10200824B2 (en) * 2015-05-27 2019-02-05 Apple Inc. Systems and methods for proactively identifying and surfacing relevant content on a touch-sensitive device
US10769189B2 (en) * 2015-11-13 2020-09-08 Microsoft Technology Licensing, Llc Computer speech recognition and semantic understanding from activity patterns
US10282218B2 (en) * 2016-06-07 2019-05-07 Google Llc Nondeterministic task initiation by a personal assistant module
CN106250412B (zh) * 2016-07-22 2019-04-23 浙江大学 基于多源实体融合的知识图谱构建方法
US10192551B2 (en) 2016-08-30 2019-01-29 Google Llc Using textual input and user state information to generate reply content to present in response to the textual input
US10217462B2 (en) * 2016-08-31 2019-02-26 Microsoft Technology Licensing, Llc Automating natural language task/dialog authoring by leveraging existing content
US11237696B2 (en) * 2016-12-19 2022-02-01 Google Llc Smart assist for repeated actions
US20180349447A1 (en) * 2017-06-02 2018-12-06 Apple Inc. Methods and systems for customizing suggestions using user-specific information
JP7209818B2 (ja) 2018-09-27 2023-01-20 グーグル エルエルシー 自動ナビゲーションを容易にするためのウェブページの分析

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120016678A1 (en) * 2010-01-18 2012-01-19 Apple Inc. Intelligent Automated Assistant

Also Published As

Publication number Publication date
US20230050054A1 (en) 2023-02-16
CN112997171A (zh) 2021-06-18
WO2020068169A1 (en) 2020-04-02
US11487832B2 (en) 2022-11-01
US11971936B2 (en) 2024-04-30
EP3655840A1 (en) 2020-05-27
KR102643444B1 (ko) 2024-03-06
EP3655840B1 (en) 2024-01-17
KR20230141907A (ko) 2023-10-10
JP7209818B2 (ja) 2023-01-20
KR20210035319A (ko) 2021-03-31
JP2022501730A (ja) 2022-01-06
US20200342039A1 (en) 2020-10-29

Similar Documents

Publication Publication Date Title
KR102582513B1 (ko) 자동 내비게이션을 용이하게 하기 위한 웹 페이지 분석
US11276400B2 (en) User-programmable automated assistant
US11734375B2 (en) Automatic navigation of interactive web documents
US11488601B2 (en) Dependency graph conversation modeling for use in conducting human-to-computer dialog sessions with a computer-implemented automated assistant
CN110770694B (zh) 获得来自多个语料库的响应信息
US10679622B2 (en) Dependency graph generation in a networked system
CN109952572B (zh) 基于消息贴纸的建议响应
US11775254B2 (en) Analyzing graphical user interfaces to facilitate automatic interaction
US11556698B2 (en) Augmenting textual explanations with complete discourse trees

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