KR20230014680A - 서드파티 디지털 어시스턴트 액션을 위한 비트 벡터 기반 콘텐츠 매칭 - Google Patents

서드파티 디지털 어시스턴트 액션을 위한 비트 벡터 기반 콘텐츠 매칭 Download PDF

Info

Publication number
KR20230014680A
KR20230014680A KR1020227029138A KR20227029138A KR20230014680A KR 20230014680 A KR20230014680 A KR 20230014680A KR 1020227029138 A KR1020227029138 A KR 1020227029138A KR 20227029138 A KR20227029138 A KR 20227029138A KR 20230014680 A KR20230014680 A KR 20230014680A
Authority
KR
South Korea
Prior art keywords
action
data processing
processing system
content
application
Prior art date
Application number
KR1020227029138A
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 KR20230014680A publication Critical patent/KR20230014680A/ko

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/332Query formulation
    • G06F16/3329Natural language query formulation or dialogue systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/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
    • 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
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L25/00Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00
    • G10L25/48Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use
    • G10L25/51Speech or voice analysis techniques not restricted to a single one of groups G10L15/00 - G10L21/00 specially adapted for particular use for comparison or discrimination
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS OR SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/22Procedures used during a speech recognition process, e.g. man-machine dialogue
    • G10L2015/225Feedback of the input speech

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Acoustics & Sound (AREA)
  • General Health & Medical Sciences (AREA)
  • Signal Processing (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computing Systems (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

비트 벡터를 사용하여 서드파티 디지털 어시스턴트 액션에 콘텐츠를 매칭하는 것이 제공된다. 시스템은 음성 어시스턴트 호환 액션을 갖는 애플리케이션을 수신한다. 시스템은 애플리케이션에서 액션을 식별한다. 시스템은 서드파티 컴퓨팅 디바이스에서 제공하는 콘텐츠 아이템을 식별한다. 시스템은 기계 학습 모델 및 콘텐츠 아이템에 대한 성능 데이터를 통해, 비트 벡터 또는 액션을 생성한다. 시스템은 애플리케이션의 액션을 실행하는 클라이언트 디바이스로부터의 콘텐츠 요청에 응답하여, 액션에 대응하는 비트 벡터에 기초하여 콘텐츠 아이템을 선택한다.

Description

서드파티 디지털 어시스턴트 액션을 위한 비트 벡터 기반 콘텐츠 매칭
컴퓨팅 디바이스는 애플리케이션을 실행할 수 있다. 컴퓨팅 디바이스는 사용자로부터 쿼리를 수신하고, 쿼리를 프로세싱하고, 쿼리에 대한 응답을 제공할 수 있다. 그러나 컴퓨팅 디바이스의 입력 또는 출력 인터페이스의 제한된 가용성 또는 기능으로 인해, 사용가능한 인터페이스를 통해 과도한 입력/출력 프로세스 없이 효율적인 방식으로 제한된 정보로 쿼리에 유용한 응답을 제공하는 것이 어려울 수 있다.
본 개시는 일반적으로 디지털 어시스턴트 액션에 대한 비트 벡터 기반 콘텐츠 매칭에 관한 것이다. 특히, 컴퓨팅 디바이스에서 실행되는 애플리케이션은 사용자에 의해 호출될 수 있는 음성 액션으로 구성될 수 있다. 이 기술 솔루션의 데이터 프로세싱 시스템은 애플리케이션에서 음성 액션 호출을 식별하고, 애플리케이션에서 액션에 대해 생성된 비트 벡터를 검색하고, 음성 액션 실행에 응답하거나 실행과 함께 제공할 콘텐츠 아이템을 선택할 수 있다.
예를 들어, 애플리케이션의 서드파티 개발자가 개발한 많은 어시스턴트 액션과 사람의 인터렉션 중에 이러한 액션에 진입할 수 있는 다양한 대화 상태로 인해, 콘텐츠 아이템(디지털 컴포넌트 객체 또는 보충 콘텐츠 아이템)을 서드파티 개발 어시스턴트 액션에 효율적이고 정확하게 매칭하는 것은 어려울 수 있다. 사용자가 액션으로 대화를 시작할 때까지 액션 응답이 공개되지 않을 수 있고 사용자 발화에 따라 액션이 취할 수 있는 다양한 경로가 있기 때문에 콘텐츠 아이템을 효율적이고 정확하게 일치시키는 것이 어려울 수 있다. 또한, 콘텐츠 아이템과 매칭하기 위한 액션으로부터 관련 신호를 생성하는 것이 어렵기 때문에 콘텐츠 아이템을 효율적이고 정확하게 매칭하는 것이 어려울 수 있다.
이 기술 솔루션의 시스템 및 방법은 디지털 어시스턴트 액션에 대한 비트 벡터 기반 콘텐츠 매칭을 제공한다. 예를 들어, 이 기술 솔루션의 데이터 프로세싱 시스템은 디지털 어시스턴트 기반 애플리케이션과의 대화를 시뮬레이션할 수 있는 액션 크롤러를 포함할 수 있다. 액션 크롤러는 서드파티 액션에서 다양한 대화 경로를 크롤링할 수 있다. 데이터 프로세싱 시스템은 액션 크롤러의 출력을 얻고 출력을 기계 학습 모델에 공급하여 임베딩을 추출할 수 있다. 데이터 프로세싱 시스템은 이 임베딩을 사용하여 가장 근접하게 매칭되는 콘텐츠 아이템을 검색할 수 있다. 데이터 프로세싱 시스템은 액션 크롤러 출력에 대해 콘텐츠 아이템의 점수를 매길 수 있다. 데이터 프로세싱 시스템은 관련 콘텐츠 아이템을 포함하는 액션에 대한 비트 벡터를 생성할 수 있다. 데이터 프로세싱 시스템은 콘텐츠에 대한 요청 또는 대응하는 액션의 호출에 응답하여 실시간 콘텐츠 선택을 수행하기 위해 비트 벡터를 후속적으로 검색할 수 있다.
적어도 하나의 양태는 메모리 및 하나 이상의 프로세서를 포함하는 데이터 프로세싱 시스템을 포함하는 시스템에 관한 것이다. 데이터 프로세싱 시스템은 애플리케이션 개발자로부터 음성 어시스턴트 호환 액션으로 구성된 애플리케이션을 수신할 수 있다. 데이터 프로세싱 시스템은 애플리케이션이 음성 입력에 응답하여 수행하도록 구성된 액션을 식별할 수 있다. 데이터 프로세싱 시스템은 서드파티 컴퓨팅 디바이스에서 제공하는 콘텐츠 아이템을 식별한다. 데이터 프로세싱 시스템은 기계 학습 모델 및 콘텐츠 아이템에 대한 성능 데이터를 통해 액션에 대응하는 비트 벡터를 생성할 수 있다. 비트 벡터는 액션들 중 각 액션에 대한 후보 콘텐츠 아이템을 나타낼 수 있다. 데이터 프로세싱 시스템은 상기 애플리케이션의 액션을 실행하는 컴퓨팅 디바이스에 대한 콘텐츠에 대한 요청에 응답하여, 상기 액션에 대응하는 복수의 비트 벡터 중 한 비트 벡터에 기초하여 콘텐츠 아이템을 선택할 수 있다.
적어도 하나의 양태는 메모리 및 하나 이상의 프로세서를 갖는 데이터 프로세싱 시스템에 의해 수행되는 방법에 관한 것이다. 방법은 데이터 프로세싱 시스템에 의해, 애플리케이션 개발자로부터 음성 어시스턴트 호환 액션으로 구성된 애플리케이션을 수신하는 단계를 포함할 수 있다. 방법은 데이터 프로세싱 시스템에 의해, 애플리케이션이 음성 입력에 응답하여 수행하도록 구성된 액션을 식별할 수 있다. 방법은 데이터 프로세싱 시스템에 의해 서드파티 컴퓨팅 디바이스에서 제공하는 콘텐츠 아이템을 식별할 수 있다. 방법은 데이터 프로세싱 시스템에 의해, 기계 학습 모델 및 콘텐츠 아이템에 대한 성능 데이터를 통해 액션에 대응하는 비트 벡터를 생성할 수 있다. 비트 벡터는 액션들 중 각 액션에 대한 후보 콘텐츠 아이템을 나타낼 수 있다. 방법은 데이터 프로세싱 시스템에 의해 상기 애플리케이션의 액션을 실행하는 컴퓨팅 디바이스에 대한 콘텐츠에 대한 요청에 응답하여, 상기 액션에 대응하는 복수의 비트 벡터 중 한 비트 벡터에 기초하여 콘텐츠 아이템을 선택할 수 있다.
이들 및 다른 양태들 및 구현예들은 아래에서 상세히 논의된다. 전술한 정보 및 다음의 상세한 설명은 다양한 양태들 및 구현예들의 예시적 실시예를 포함하고, 청구된 양태들 및 구현예들의 본질 및 특성을 이해하기 위한 개요 또는 프레임워크를 제공한다. 도면은 다양한 양태들 및 구현예들의 예시 및 추가 이해를 제공하며, 본 명세서에 통합되어 본 명세서의 일부를 구성한다.
첨부된 도면은 일정한 비율로 도시된 것이 아니다. 다양한 도면들에서 동일한 참조 번호 및 기호는 동일한 컴포넌트를 표시한다. 명확성을 위해 모든 도면에서 모든 컴포넌트가 라벨링된 것은 아니다. 도면에서:
도 1은 구현예에 따른 서드파티 디지털 어시스턴트 액션에 대한 벡터 기반 콘텐츠 매칭을 위한 예시적 시스템의 도시이다.
도 2는 구현예에 따른 서드파티 디지털 어시스턴트 액션에 대한 콘텐츠 매칭을 위한 비트 벡터를 생성하기 위한 예시적 방법의 도시이다.
도 3은 구현예에 따른 서드파티 디지털 어시스턴트 액션의 호출에 응답하여 비트 벡터를 사용하여 콘텐츠를 선택하기 위한 예시적 방법의 도시이다.
도 4는 예를 들어 도 1에 도시된 시스템 및 도 2 및 3에 도시된 방법을 포함하여 본 명세서에 기술되고 도시된 시스템 및 방법의 구성요소를 구현하기 위해 사용될 수 있는 컴퓨터 시스템을 위한 아키텍처를 도시하는 블록도이다.
아래에 설명되는 것은 서드파티 디지털 어시스턴트 액션을 위한 벡터 기반 콘텐츠 매칭을 위한 방법, 장치 및 시스템과 관련된 다양한 개념 및 구현예들에 대한 보다 상세한 설명이다. 위에서 소개되고 아래에서 더 상세하게 논의되는 다양한 개념은 수많은 방식으로 구현될 수 있다.
이 기술 솔루션은 일반적으로 서드파티 디지털 어시스턴트 액션에 대한 비트 벡터 기반 콘텐츠 매칭에 관한 것이다. 애플리케이션 개발자는 컴퓨팅 디바이스에 설치 및 실행하기 위한 애플리케이션을 개발할 수 있다. 애플리케이션은 컴퓨팅 디바이스의 공급자, 소유자 또는 제조업체와 독립적이거나 별도의 엔터티이기 때문에 서드파티 애플리케이션 개발자라고 할 수 있다. 애플리케이션 개발자는 데이터 프로세싱 시스템이나 클라우드 컴퓨팅 시스템 또는 환경에 애플리케이션을 제공할 수 있다. 예를 들어, 애플리케이션 개발자는 온라인 마켓플레이스나 애플리케이션 스토어에 애플리케이션을 제공할 수 있다. 클라이언트 컴퓨팅 디바이스는 온라인 애플리케이션 스토어 또는 마켓플레이스로부터 애플리케이션을 다운로드할 수 있다.
애플리케이션은 디지털 어시스턴트 액션을 포함할 수 있다. 애플리케이션은 음성 액션을 포함할 수 있다. 애플리케이션은 컴퓨팅 디바이스에서 실행되는 디지털 어시스턴트와 인터페이싱할 수 있다. 애플리케이션은 대화형 사용자 인터페이스를 제공하기 위해 음성 액션으로 구성될 수 있다. 예를 들어, 컴퓨팅 디바이스의 사용자는 대화형 인터페이스를 통해 애플리케이션과 인터페이싱할 수 있다. 대화형 인터페이스는 애플리케이션과의 음성 기반 대화를 참조하거나 포함할 수 있다. 대화 중에 사용자는 애플리케이션에서 하나 이상의 음성 액션을 호출할 수 있다.
예시적인 예에서, 애플리케이션은 테마파크용일 수 있다. 애플리케이션은 만화 캐릭터와 같이 테마파크와 연관된 다양한 캐릭터에 대한 참조를 포함할 수 있다. 애플리케이션은 멀티미디어 콘텐츠, 비디오, 영화, 쇼, 음악, 노래, 이야기, 시 또는 기타 콘텐츠와 같은 캐릭터와 연관된 다양한 콘텐츠를 제공할 수 있다. 애플리케이션은 음성 콘텐츠 호출에 응답하여 엔터테인먼트 관련 콘텐츠를 제공할 수 있다.
그러나 음성 기반 액션이 호출될 때, 음성 기반 액션의 실행에 따라 또는 함께 제공하기 위해 보충 콘텐츠 제공자가 제공하는 보충 콘텐츠 아이템을 식별하거나 선택하는 것이 어려울 수 있다. 예를 들어, 콘텐츠 선택기 컴포넌트는 특정 음성 액션을 호출한 회화 경로 또는 대화 경로를 인식하지 못할 수 있다. 콘텐츠 선택기는 음성 액션을 호출한 발언을 초래한 대화 분기를 인식하지 못할 수 있다. 이는 애플리케이션의 음성 액션에 대한 응답이 대화 또는 회화 흐름과 연관된 하나 이상의 이전 분기를 고려할 수 있다는 점에서 음성 액션이 웹페이지와 같지 않기 때문일 수 있다. 콘텐츠 선택자는 이전 분기 또는 이전 분기와 연관된 정보에 액세스할 수 없다. 콘텐츠 선택기는 최소한의 정보 또는 부적절한 정보만 있을 수 있다. 콘텐츠 선택자는 음성 액션 자체에 기초하여 콘텐츠 아이템을 선택하려고 시도할 수 있고, 이는 콘텐츠 선택자가 대화 흐름의 이전 분기에 액세스할 수 없기 때문이다. 따라서, 콘텐츠 선택자는 관련 없는 콘텐츠 아이템을 선택하거나, 리소스 집약적인 선택 프로세스를 수행하여 콘텐츠 아이템을 선택하려고 시도할 수 있지만 정확도가 낮거나 관련성 점수가 낮다. 이로 인해 리소스 소비가 낭비되거나 콘텐츠 아이템 선택이 올바르지 않거나 정확하지 않을 수 있다. 부정확하거나 관련이 없는 콘텐츠 아이템을 제공하면 과도한 원격 절차 호출 또는 네트워크 대역폭 활용이 발생할 수 있고, 이는 다수의 추가 콘텐츠 아이템이 선택되어 네트워크를 통해 컴퓨팅 디바이스로 전송될 수 있기 때문이다. 또한, 부정확하거나 관련 없는 콘텐츠 아이템을 컴퓨팅 디바이스에 제공하면 사용자 경험이 좋지 않을 수 있다. 콘텐츠 아이템은 사용자가 콘텐츠 아이템과 인터렉션하거나 관여하지 않을 수 있다는 점에서 컴퓨팅 디바이스에서 제대로 수행되지 않을 수 있다. 일부 경우에, 사용자는 부정확한 콘텐츠 아이템을 건너뛰거나 앞으로 갈 수 있으며, 이에 따라 사용자는 정확하거나 관련 있는 콘텐츠 아이템의 제시와 비교하여 컴퓨팅 디바이스와의 추가 입력 또는 인터렉션을 제공할 수 있다.
이러한 기술적 과제와 문제를 해결하기 위해, 이 기술 솔루션은 비트 벡터를 생성하고 사용하여 콘텐츠 아이템을 컴퓨팅 디바이스에서 실행되는 서드파티 애플리케이션에서 호출되는 서드파티 음성 액션과 매칭시킬 수 있다. 이를 위해, 이 기술 솔루션의 데이터 프로세싱 시스템은 애플리케이션 개발자로부터 애플리케이션을 수신할 수 있다. 데이터 프로세싱 시스템은 액션을 위해 애플리케이션을 크롤링할 수 있다. 데이터 프로세싱 시스템은 회화 또는 대화 흐름의 다양한 분기와 각 분기에서 호출될 수 있는 대응 액션을 식별하기 위해 애플리케이션과의 대화를 시뮬레이션할 수 있다. 애플리케이션의 동일한 음성 액션 테마는 애플리케이션의 여러 대화 흐름을 통해 호출될 수 있으며, 이로 인해 음성 액션에 대해 서로 다른 응답이 나타날 수 있다. 예를 들어, 대화 흐름은 "Talk to Character_A"를 포함할 수 있으며, 이는 1) 게임 플레이, 2) 이야기 읽기 또는 3) 노래 부르기의 세 가지 분기로 분기할 수 있다. 이러한 분기 각각은 상이한 음성 액션에 대응할 수 있다.
데이터 프로세싱 시스템은 애플리케이션을 크롤링하여 다양한 대화 흐름과 대응 음성 액션을 식별하고 트랜스트립트를 생성할 수 있다. 트랜스트립트는 음성 액션을 일으키거나 호출 음성 액션을 유발할 수 있는 음성 액션 및 대화 흐름을 포함할 수 있다. 트랜스트립트는 웹 참조("webref") 엔터티, 내부 분류 정보 또는 수직 분류를 포함할 수 있다. 데이터 프로세싱 시스템은 광고주와 같은 보충 콘텐츠 제공자에 의해 제공되는 보충 콘텐츠 아이템을 수신할 수 있다. 데이터 프로세싱 시스템은 콘텐츠 아이템과 함께 트랜스트립트를 딥러닝 모델에 입력하여 비트 벡터를 생성할 수 있다. 각 음성 액션에 대해 비트 벡터가 생성될 수 있다. 비트 벡터는 각 음성 액션에 대해 딥러닝 모델에 의해 음성 액션과 관련이 있다고 간주되는 후보 콘텐츠 아이템을 나타낼 수 있다. 딥러닝 모델은 다중 레이어 교차 주의 모델을 포함할 수 있다. 트레이닝 데이터는 음성 액션과 함께 제시된 경우 콘텐츠 아이템의 성능을 포함할 수 있다. 성능은 특정 음성 액션이 제시되었을 때 사용자가 콘텐츠 아이템을 건너뛰었는지 여부 또는 전체 콘텐츠 아이템이 그 지속시간동안 재생된 경우 전체 콘텐츠 아이템을 인지했는지, 봤는지 또는 들었는지 여부를 포함할 수 있다. 비트 벡터는 딥러닝 모델에 대한 모든 입력의 간결한 표현을 제공할 수 있다. 데이터 프로세싱 시스템은 음성 액션과 관련하여 콘텐츠 아이템을 매칭시키고 점수를 매길 수 있다.
데이터 프로세싱 시스템은 비트 벡터를 콘텐츠 아이템에 제공할 수 있다. 비트 벡터를 저장하는 것은 음성 액션에 대한 대화 트랜스트립트를 별도로 저장하고 콘텐츠 아이템을 별도로 저장하는 것보다 효율적일 수 있다. 예를 들어, 비트 벡터는 데이터 프로세싱 시스템의 데이터 저장소에서 더 적은 메모리 또는 스토리지를 소비할 수 있다. 다른 예에서, 실시간 콘텐츠 선택 프로세스 동안 음성 액션에 대한 후보 콘텐츠 아이템을 식별하기 위해 비트 벡터에서 룩업을 수행하는 것이 트랜스트립트에 대해 더 큰 세트의 콘텐츠 아이템을 점수화하는 것과는 대조적으로 더 효율적일 수 있다. 콘텐츠 선택기는 콘텐츠 요청에 응답하거나 음성 액션 호출에 응답하여 실시간 콘텐츠 선택을 수행하기 위해 콘텐츠 제공 시간 동안 비트 벡터를 사용할 수 있다.
일부 경우에, 데이터 프로세싱 시스템은 가장 관련성이 높은 콘텐츠 아이템을 음성 액션과 매칭시키기 위해 콘텐츠 아이템의 각 그룹에 대해 콘텐츠 아이템 비트 벡터를 별도로 생성할 수 있다. 이를 위해, 데이터 프로세싱 시스템은 k-차원 트리 또는 데이터 구조의 조합을 사용할 수 있다.
컴퓨팅 디바이스에서 서드파티 애플리케이션을 실행할 때, 사용자는 대화 흐름 또는 회화를 통해 애플리케이션에서 음성 액션을 호출할 수 있다. 데이터 프로세싱 시스템은 음성 액션의 표시를 수신할 수 있다. 데이터 프로세싱 시스템은 후보 콘텐츠 아이템의 대응하는 세트를 식별하기 위해 비트 벡터 데이터 저장소에서 음성 액션으로 룩업을 수행할 수 있다. 데이터 프로세싱 시스템은 비트 벡터에서 최상위 후보 콘텐츠 아이템을 검색할 수 있다. 데이터 프로세싱 시스템은 가장 높은 점수의 콘텐츠 아이템을 선택하기 위해 컴퓨팅 디바이스 또는 그 전자 계정과 관련된 추가 신호를 사용하여 최상위 후보 콘텐츠 아이템을 점수화할 수 있다. 데이터 프로세싱 시스템은 그 다음 제시를 위해 컴퓨팅 디바이스에 최고 점수 콘텐츠 아이템을 제공할 수 있다. 모든 사용 가능한 콘텐츠 아이템 대신에 최상위 후보 콘텐츠 아이템에 점수화함으로써, 데이터 프로세싱 시스템은 선택 콘텐츠 아이템의 정확성이나 관련성을 희생하지 않고 계산 리소스 활용을 줄일 수 있다.
콘텐츠 아이템을 제시할 때, 데이터 프로세싱 시스템은 성능 정보를 수신할 수 있다. 성능 정보는 예를 들어 사용자가 콘텐츠 아이템을 건너뛰었는지 여부, 사용자가 콘텐츠 아이템을 청취한 시간 또는 사용자가 콘텐츠 아이템의 전체 지속시간을 청취했는지 여부를 포함할 수 있다. 예를 들어, 콘텐츠 아이템에 15초 오디오 출력을 포함하고 사용자가 3초 후에 오디오 출력을 건너뛴 경우, 데이터 프로세싱 시스템은 콘텐츠 아이템이 제대로 수행되지 않은 것으로 결정할 수 있다. 사용자가 콘텐츠 아이템의 전체 15초 지속시간을 들었다면, 데이터 프로세싱 시스템은 콘텐츠 아이템이 음성 액션에 대해 잘 수행되었다고 결정할 수 있다. 데이터 프로세싱 시스템은 콘텐츠 아이템의 성능에 기초하여 비트 벡터를 생성하는데 사용되는 딥러닝 모델을 업데이트할 수 있다. 데이터 프로세싱 시스템은 모델을 다시 트레이닝하거나 업데이트할지 결정할 수 있다. 데이터 프로세싱 시스템은 수신된 성능 피드백에 기초하여 비트 벡터를 재생성 또는 업데이트할지 결정할 수 있다.
도 1은 구현예에 따른 서드파티 디지털 어시스턴트 액션에 대한 벡터 기반 콘텐츠 매칭을 위한 예시적 시스템(100)을 도시한다. 시스템(100)은 콘텐츠 선택 인프라를 포함할 수 있다. 시스템(100)은 데이터 프로세싱 시스템(102)을 포함할 수 있다. 데이터 프로세싱 시스템(102)은 네트워크(105)를 통해, 클라이언트 컴퓨팅 디바이스(136) 또는 보충 디지털 콘텐츠 제공자 디바이스(132) 중 하나 이상과 통신할 수 있다. 네트워크(105)는 인터넷, 로컬, 와이드, 메트로 또는 다른 영역 네트워크, 인트라넷, 위성 네트워크 및 음성 또는 데이터 모바일폰 통신 네트워크와 같은 다른 컴퓨터 네트워크들과 같은 컴퓨터 네트워크를 포함할 수 있다. 네트워크(105)는 클라이언트 컴퓨팅 디바이스(136)에서 제공, 출력, 렌더링 또는 디스플레이될 수 있는 웹페이지, 웹사이트, 도메인 이름, 또는 URL과 같은 정보 리소스들에 액세스하기 위해 사용될 수 있다.
네트워크(105)는 디스플레이 네트워크, 예를 들어, 콘텐츠 배치 또는 검색 엔진 결과 시스템과 연관되거나 디지털 컴포넌트 배치 캠페인의 일부로서 서드 파티 디지털 컴포넌트에 포함시키기에 적합한 인터넷 상의 사용가능한 정보 리소스들의 서브셋을 포함하거나 구성할 수 있다. 네트워크(105)는 클라이언트 컴퓨팅 디바이스(136)에 의해 제공, 출력, 렌더링 또는 디스플레이될 수 있는 웹페이지, 웹사이트, 도메인 이름, 또는 URL과 같은 정보 리소스들에 액세스하기 위해 데이터 프로세싱 시스템(102)에 의해 사용될 수 있다. 예를 들어, 네트워크(105)를 통해, 컴퓨팅 디바이스(136)의 사용자는 보충 디지털 콘텐츠 제공자 디바이스(132)에 의해 제공된 정보 또는 데이터에 액세스할 수 있다.
네트워크(105)는 임의의 유형 또는 형태의 네트워크일 수 있으며, 포인트-투-포인트 네트워크, 브로드캐스트 네트워크, 광역 네트워크, 근거리 네트워크, 전화통신 네트워크, 데이터 통신 네트워크, 컴퓨터 네트워크, ATM(Asynchronous Transfer Mode) 네트워크, SONET(Synchronous Optical Network) 네트워크, SDH(Synchronous Digital Hierarchy) 네트워크, 무선 네트워크 및 유선 네트워크 중 임의의 것을 포함할 수 있다. 네트워크(105)는 적외선 채널 또는 위성 대역과 같은 무선 링크를 포함할 수 있다. 네트워크(105)의 토폴로지는 버스, 스타 또는 링 네트워크 토폴로지를 포함할 수 있다. 네트워크는 어드밴스드 모바일폰 프로토콜("AMPS"), 시분할 다중 액세스("TDMA"), 코드 분할 다중 액세스("CDMA"), 글로벌 이동 통신 시스템("GSM"), 일반 패킷 무선 서비스("GPRS") 또는 범용 이동 통신 시스템("UMTS")을 포함하는 모바일 디바이스들 간에 통신하는데 사용되는 임의의 프로토콜 또는 프로토콜들을 사용하는 모바일 전화 네트워크들을 포함할 수 있다. 상이한 유형의 데이터는 상이한 프로토콜을 통해 전송될 수 있거나, 동일한 유형의 데이터가 상이한 프로토콜들을 통해 전송될 수 있다.
클라이언트 컴퓨팅 디바이스(136)는 예를 들어 랩톱, 데스크톱, 태블릿, 디지털 어시스턴트 디바이스, 스마트폰, 이동 통신 디바이스, 휴대용 컴퓨터, 스마트 워치, 웨어러블 디바이스, 헤드셋, 스피커, 텔레비전, 스마트 디스플레이 또는 자동차 유닛을 포함할 수 있다. 예를 들어, 네트워크(105)를 통해, 컴퓨팅 디바이스(136)의 사용자는 보충 디지털 콘텐츠 제공자 디바이스(132)에 의해 제공된 정보 또는 데이터에 액세스할 수 있다. 일부 경우에, 클라이언트 컴퓨팅 디바이스(136)는 디스플레이를 포함하거나 포함하지 않을 수 있으며; 예를 들어, 컴퓨팅 디바이스는 마이크로폰 및 스피커와 같은 제한된 유형의 사용자 인터페이스를 포함할 수 있다. 일부 경우에, 클라이언트 컴퓨팅 디바이스(136)의 주된(primary) 사용자 인터페이스는 마이크로폰 및 스피커 또는 음성 인터페이스일 수 있다. 일부 경우에, 클라이언트 컴퓨팅 디바이스(136)는 클라이언트 컴퓨팅 디바이스(136)에 결합된 디스플레이 디바이스를 포함하고, 클라이언트 컴퓨팅 디바이스(136)의 주된 사용자 인터페이스는 디스플레이 디바이스를 활용할 수 있다.
클라이언트 컴퓨팅 디바이스(136)는 적어도 하나의 입력 디바이스(138)를 포함할 수 있다. 입력 디바이스(138)는 적어도 하나의 마이크로폰을 포함할 수 있다. 입력 디바이스(138)는 사용자로부터의 음성 입력과 같은 음파를 검출하고 상기 음파를 클라이언트 컴퓨팅 디바이스(136)에 의해 프로세싱될 수 있는 다른 형식으로 변환하도록 구성된 변환기 또는 다른 하드웨어를 포함할 수 있다. 예를 들어, 입력 디바이스(138)는 음파를 검출하고 음파를 아날로그 또는 디지털 신호로 변환할 수 있다. 하드웨어 또는 소프트웨어를 사용하여 클라이언트 컴퓨팅 디바이스(136)는 아날로그 또는 디지털 신호를 음성 입력 또는 다른 검출된 오디오 입력에 대응하는 데이터 패킷으로 변환할 수 있다. 클라이언트 디바이스(136)는 추가 프로세싱을 위해 음성 입력을 포함하는 데이터 패킷을 데이터 프로세싱 시스템(102)에 전송할 수 있다. 입력 디바이스(138)는 터치 입력 디바이스, 키보드, 마우스, 제스처 입력, 센서 입력 또는 다른 유형의 입력 인터페이스를 포함할 수 있다.
클라이언트 컴퓨팅 디바이스(136)은 적어도 하나의 출력 디바이스(140)를 포함할 수 있다. 출력 디바이스(140)는 스피커를 포함할 수 있다. 출력 디바이스(140)는 오디오 또는 사운드를 출력할 수 있다. 출력 디바이스(140)는 오디오 출력을 생성하기 위해 오디오 드라이버에 의해 구동될 수 있다. 출력 디바이스(140)는 데이터 프로세싱 시스템(102)에 의해 생성되고 출력을 위해 클라이언트 컴퓨팅 디바이스(136)에 제공되는 스피치 또는 다른 오디오를 출력할 수 있다. 예를 들어, 사용자는 클라이언트 컴퓨팅 디바이스(136)의 입력 디바이스(138) 및 출력 디바이스(140)를 통해 디지털 어시스턴트(108)와 대화를 수행할 수 있다.
일부 경우에, 클라이언트 컴퓨팅 디바이스(136)는 NLP(106), 디지털 어시스턴트(108), 인터페이스(104), 또는 데이터 저장소(120)와 같은 데이터 프로세싱 시스템(102)의 하나 이상의 컴포넌트 또는 기능을 포함할 수 있다. 예를 들어, 클라이언트 컴퓨팅 디바이스(136)는 서버 디지털 어시스턴트(108) 또는 NLP(106)의 하나 이상의 컴포넌트 또는 기능을 갖는 로컬 디지털 어시스턴트(144) 또는 디지털 어시스턴트 에이전트를 포함할 수 있다. 클라이언트 컴퓨팅 디바이스(136)는 애플리케이션, 콘텐츠 데이터, 계정 정보, 또는 프로필 정보 중 하나 이상을 저장하는 데이터 저장소, 메모리 또는 저장 디바이스를 포함할 수 있다. 클라이언트 컴퓨팅 디바이스(136)는 도 4에 도시된 컴퓨팅 시스템(400)의 하나 이상의 컴포넌트 또는 기능을 포함할 수 있다.
시스템(100)은 적어도 하나의 데이터 프로세싱 시스템(102)을 포함할 수 있다. 데이터 프로세싱 시스템(102)은 네트워크(105)를 통해 예를 들어 클라이언트 컴퓨팅 디바이스(136), 보충 디지털 콘텐츠 제공자 디바이스(132)(또는 서드파티 콘텐츠 제공자 디바이스, 콘텐츠 제공자 디바이스) 또는 애플리케이션 개발자 디바이스(134)와 통신하기 위한 프로세서를 가지는 컴퓨팅 디바이스와 같은 적어도 하나의 로직 디바이스를 포함할 수 있다. 데이터 프로세싱 시스템(102)은 적어도 하나의 계산 리소스, 서버, 프로세서 또는 메모리를 포함할 수 있다. 예를 들어, 데이터 프로세싱 시스템(102)은 적어도 하나의 데이터 센터에 위치된 복수의 계산 리소스 또는 서버를 포함할 수 있다. 데이터 프로세싱 시스템(102)은 다수의 논리적으로 그룹화된 서버를 포함할 수 있고, 분산 컴퓨팅 기법을 지원한다. 논리적 서버들의 그룹은 데이터 센터, 서버 팜 또는 머신 팜으로 지칭될 수 있다. 서버는 지리적으로 분산될 수 있다. 데이터 센터 또는 머신 팜은 단일 엔터티로 관리되거나, 머신 팜은 복수의 머신 팜을 포함할 수 있다. 각 머신 팜 내의 서버는 다른 기종일 수 있다 - 하나 이상의 서버 또는 머신이 하나 이상의 운영 체제 플랫폼 유형에 따라 동작할 수 있다.
머신 팜의 서버는 연관된 저장 시스템과 함께 고밀도 랙 시스템에 저장되고 엔터프라이즈 데이터 센터에 위치될 수 있다. 예를 들어, 이러한 방식으로 서버를 통합하면 지역화된 고성능 네트워크에 서버 및 고성능 저장 시스템을 위치시킴으로써 시스템 관리성, 데이터 보안, 시스템의 물리적 보안 및 시스템 성능을 향상시킬 수 있다. 서버 및 저장 시스템을 포함하여 모든 또는 일부 데이터 프로세싱 시스템(102) 컴포넌트들을 중앙집중화하고 이를 고급 시스템 관리 툴과 결합하면 서버 리소스들을 보다 효율적으로 사용할 수 있게 하여, 전력 및 프로세싱 요구사항을 절약하고 대역폭 사용을 감소시킨다.
시스템(100)은 보충 디지털 콘텐츠 제공자 디바이스(132), 서비스 제공자 디바이스 또는 애플리케이션 개발자 디바이스(134)와 같은 적어도 하나의 서드파티 디바이스를 포함하거나, 액세스하거나, 이와 인터렉션할 수 있다. 보충 디지털 콘텐츠 제공자 디바이스(132), 서비스 제공자 디바이스 또는 애플리케이션 개발자 디바이스(134)는 네트워크(105)를 통해 통신하기 위한 프로세서를 가지는 컴퓨팅 디바이스 예를 들어 컴퓨팅 디바이스(136), 클라이언트 컴퓨팅 디바이스(104) 또는 데이터 프로세싱 시스템(102)과 같은 적어도 하나의 로직 디바이스를 포함할 수 있다.
보충 디지털 콘텐츠 제공자 디바이스(132)는 데이터 프로세싱 시스템(102)이 제시하기 위해 클라이언트 컴퓨팅 디바이스(136)에 제공할 콘텐츠 아이템들을 데이터 프로세싱 시스템(102)에 제공할 수 있다. 콘텐츠 아이템은 시각 콘텐츠, 오디오 콘텐츠, 텍스트 기반 콘텐츠, 멀티미디어 콘텐츠 또는 다른 유형의 콘텐츠를 포함할 수 있다. 콘텐츠 아이템은 클라이언트 컴퓨팅 디바이스(136)에 의해 오디오 출력 디지털 컴포넌트로서 제시하기 위한 오디오 기반 디지털 컴포넌트를 포함할 수 있다. 디지털 컴포넌트는 광고주가 제공하는 광고와 같이 서드파티 스폰서에 의해 제공되기 때문에 스폰서 디지털 컴포넌트라고도 지칭될 수 있다. 디지털 컴포넌트는 "택시를 부르겠습니까?"라는 음성 기반 메시지와 같은 상품 또는 서비스에 대한 제안을 포함할 수 있다. 예를 들어, 보충 디지털 콘텐츠 제공자 디바이스(132)는 음성 기반 쿼리에 응답하여 제공될 수 있는 일련의 오디오 디지털 컴포넌트를 저장하기 위한 메모리를 포함할 수 있다. 보충 디지털 콘텐츠 제공자 디바이스(132)는 또한 오디오 기반 디지털 컴포넌트(또는 다른 디지털 컴포넌트)를 이들이 데이터 프로세싱 시스템의 데이터 저장소(102)에 저장될 수 있는 데이터 프로세싱 시스템(102)에 제공할 수 있다. 데이터 프로세싱 시스템(102)은 오디오 디지털 컴포넌트들을 선택하고, 오디오 디지털 컴포넌트들을 클라이언트 컴퓨팅 디바이스(136)에 제공할 수 있다(또는 보충 디지털 콘텐츠 제공자 디바이스(132)에 지시하여 제공하도록 함). 오디오 기반 디지털 컴포넌트는 독점적으로 오디오일 수 있거나 텍스트, 이미지 또는 비디오 데이터와 결합될 수 있다. 콘텐츠 아이템은 오디오 또는 비디오의 길이와 같은 지속시간을 가질 수 있다. 클라이언트 컴퓨팅 디바이스(136)를 통해 제시될 때 콘텐츠 아이템은 콘텐츠 아이템과의 인터렉션 또는 참여를 허용하는 사용자 인터페이스 요소와 함께 제시될 수 있다. 예를 들어, 사용자 인터페이스 요소는 클라이언트 컴퓨팅 디바이스(136)가 콘텐츠 아이템의 제시 또는 재생을 일시 중지하고, 콘텐츠 아이템의 재생을 건너뛰고, 콘텐츠 아이템을 빨리 감고, 콘텐츠 아이템을 되감기, 닫기 또는 콘텐츠 아이템을 숨기거나, 콘텐츠 아이템에 참여하거나, 그렇지 않으면 콘텐츠 아이템과 인터렉션하게 하는 입력 또는 명령을 허용할 수 있다. 인터렉션 유형은 콘텐츠 아이템과 연관된 성능을 나타낼 수 있다. 예를 들어, 콘텐츠 아이템을 되감거나 다시 재생하는 것은 긍정적인 성능을 나타낼 수 있고, 콘텐츠 아이템을 건너뛰거나 콘텐츠 아이템을 빨리 감기하는 것은 부정적인 성능을 나타낼 수 있다.
데이터 프로세싱 시스템(102)은 적어도 하나의 계산 리소스 또는 서버를 갖는 콘텐츠 배치 시스템을 포함할 수 있다. 데이터 프로세싱 시스템(102)은 적어도 하나의 인터페이스(104)를 포함하거나, 그와 인터페이싱하거나 또는 그와 통신할 수 있다. 데이터 프로세싱 시스템(102)은 적어도 하나의 자연어 프로세서(106)(또는 자연어 프로세서 컴포넌트)를 포함하거나, 그와 인터페이싱하거나, 이와 달리 그와 통신할 수 있다. 인터페이스(104) 또는 자연어 프로세서(106)는 서버 디지털 어시스턴트(108)를 형성하거나 이를 지칭할 수 있다. 데이터 프로세싱 시스템(102)은 적어도 하나의 서버 디지털 어시스턴트(108)(또는 서버 디지털 어시스턴트 컴포넌트)를 포함하거나, 그와 인터페이싱하거나 또는 그와 통신할 수 있다. 서버 디지털 어시스턴트(108)는 데이터를 제공하거나 데이터를 수신하거나 다른 기능을 수행하기 위해 하나 이상의 음성 기반 인터페이스 또는 다양한 디지털 어시스턴트 디바이스 또는 표면과 통신하거나 인터페이스할 수 있다. 데이터 프로세싱 시스템(102)은 적어도 하나의 액션 크롤러(110)(또는 액션 크롤러 컴포넌트)를 포함할 수 있다. 데이터 프로세싱 시스템(102)은 적어도 하나의 임베딩 추출기(112)(또는 임베딩 추출기 컴포넌트)를 포함할 수 있다. 데이터 프로세싱 시스템(102)은 적어도 하나의 콘텐츠 선택기(114)(또는 콘텐츠 선택기 컴포넌트)를 포함할 수 있다. 콘텐츠 선택기(114)는 적어도 하나의 콘텐츠 검색기(116)(또는 콘텐츠 검색기 컴포넌트)를 포함할 수 있다. 콘텐츠 선택기(114)는 적어도 하나의 콘텐츠 점수화기(118)(또는 콘텐츠 점수화기 컴포넌트)를 포함할 수 있다. 데이터 프로세싱 시스템(102)은 적어도 하나의 데이터 저장소(120)를 포함할 수 있다. 데이터 저장소(120)는 애플리케이션(122)을 저장할 수 있다. 애플리케이션(122)은 애플리케이션에 대한 정보, 애플리케이션에 대한 메타데이터 또는 애플리케이션에 대한 실행 파일 또는 소스 코드, 또는 애플리케이션 개발자 디바이스(134)에 의해 제공되는 애플리케이션 패키지 파일을 포함할 수 있다. 데이터 저장소(120)는 애플리케이션(122)과 연관되고 액션 크롤러(110)에 의해 생성된 음성 액션 및 대화에 대한 트랜스크립트(124)를 저장할 수 있다. 데이터 저장소(120)는 보충 디지털 콘텐츠 제공자 디바이스(132)에 의해 제공되거나 콘텐츠 선택기(114)에 의해 생성된 콘텐츠 아이템, 콘텐츠 아이템 성능, 콘텐츠 아이템에 대한 정보, 콘텐츠 아이템 메타데이터 또는 콘텐츠 아이템에 대한 기타 정보와 같은 콘텐츠 데이터(126)를 저장할 수 있다. 데이터 저장소(120)는 비트 벡터를 생성하기 위해 임베딩 추출기(112)에 의해 생성되거나 사용되는 딥러닝 모델 또는 다른 기계 학습 모델과 같은 모델(128)을 포함할 수 있다. 데이터 저장소(120)는 애플리케이션의 음성 액션을 위해 임베딩 추출기(112)에 의해 생성된 비트 벡터(130)를 포함할 수 있다.
데이터 프로세싱 시스템(102), 인터페이스(104), NLP(106), 서버 디지털 어시스턴트 컴포넌트(108), 액션 크롤러(110), 임베딩 추출기(112), 콘텐츠 선택기(114), 콘텐츠 검색기(116) 또는 콘텐츠 점수화기(118)는 각각 적어도 하나의 프로세싱 유닛 또는 데이터 프로세싱 시스템(102)의 데이터 저장소 또는 데이터베이스와 통신하도록 구성된 프로그래머블 논리 어레이 엔진 또는 모듈과 같은 다른 논리 디바이스를 포함할 수 있다. 인터페이스(104), NLP(106), 서버 디지털 어시스턴트 컴포넌트(108), 액션 크롤러(110), 임베딩 추출기(112), 콘텐츠 선택기(114), 콘텐츠 검색기(116) 또는 콘텐츠 점수화기(118)는 데이터 프로세싱 시스템(102)의 별개 컴포넌트, 단일 컴포넌트 또는 부분일 수 있다. 데이터 프로세싱 시스템(102)과 같은 시스템(100) 및 그 컴포넌트는 하나 이상의 프로세서, 논리 디바이스 또는 회로와 같은 하드웨어 엘리먼트를 포함할 수 있다.
데이터 프로세싱 시스템(102)은 복수의 컴퓨팅 디바이스(136)(또는 컴퓨팅 디바이스 또는 디지털 어시스턴트 디바이스)와 연관된 익명의 컴퓨터 네트워크 활동 정보를 얻을 수 있다. 클라이언트 컴퓨팅 디바이스(136) 또는 모바일 컴퓨팅 디바이스의 사용자는 클라이언트 컴퓨팅 디바이스(136) 또는 모바일 컴퓨팅 디바이스에 대응하는 네트워크 활동 정보를 획득하도록 데이터 프로세싱 시스템(102)을 긍정적으로 인증할 수 있다. 예를 들어, 데이터 프로세싱 시스템(102)은 클라이언트 컴퓨팅 디바이스(136)의 사용자에게 하나 이상의 유형의 네트워크 활동 정보를 얻기 위한 동의를 프롬프트할 수 있다. 클라이언트 컴퓨팅 디바이스(136)의 사용자의 신원은 익명으로 유지될 수 있고, 클라이언트 컴퓨팅 디바이스(136)는 고유 식별자(예를 들어, 데이터 프로세싱 시스템 또는 컴퓨팅 디바이스의 사용자에 의해 제공되는 사용자 또는 컴퓨팅 디바이스에 대한 고유 식별자)와 연관될 수 있다. 데이터 프로세싱 시스템(102)은 각 관측을 해당 고유 식별자와 연결할 수 있다.
데이터 프로세싱 시스템(102)은 예를 들어 데이터 패킷을 사용하여 정보를 수신 및 전송하도록 설계, 구성 또는 동작하는 인터페이스(104)(또는 인터페이스 컴포넌트)를 포함할 수 있다. 인터페이스(104)는 네트워크 프로토콜과 같은 하나 이상의 프로토콜을 사용하여 정보를 수신 및 전송할 수 있다. 인터페이스(104)는 하드웨어 인터페이스, 소프트웨어 인터페이스, 유선 인터페이스 또는 무선 인터페이스를 포함할 수 있다. 인터페이스(104)는 한 포맷에서 다른 포맷으로 데이터를 변환하거나 포맷하는 것을 용이하게할 수 있다. 예를 들어, 인터페이스(104)는 소프트웨어 컴포넌트와 같은 다양한 컴포넌트들 사이에서 통신하기 위한 정의를 포함하는 애플리케이션 프로그래밍 인터페이스를 포함할 수 있다. 인터페이스(104)는 네트워크(105)를 통해 클라이언트 컴퓨팅 디바이스(136), 보충 디지털 콘텐츠 제공자 디바이스(132) 또는 애플리케이션 개발자 디바이스(134) 중 하나 이상과 통신할 수 있다.
데이터 프로세싱 시스템(102)은 입력 오디오 신호를 데이터 프로세싱 시스템(102)의 인터페이스(104)에 통신하고 시각적 또는 오디오 신호를 렌더링, 제시 또는 출력하기 위해 클라이언트 컴퓨팅 디바이스의 컴포넌트를 구동하기 위한 애플리케이션(142) 또는 로컬 디지털 어시스턴트(144)와 같은 클라이언트 컴퓨팅 디바이스(136)에 설치된 어플리케이션, 스크립트 또는 프로그램와 인터페이싱할 수 있다. 데이터 프로세싱 시스템(102)은 애플리케이션(142) 또는 로컬 디지털 어시스턴트(144)로부터 데이터 패킷, 또는 오디오 입력 신호를 포함하거나 식별하는 다른 신호를 수신할 수 있다.
데이터 프로세싱 시스템(102)은 자연어 프로세서("NLP")(106)를 포함할 수 있다. 예를 들면, 데이터 프로세싱 시스템(102)은 NLP(106)를 실행하여 수신된 입력 오디오 신호 또는 쿼리를 파싱할 수 있다. 예를 들어, NLP(106)는 인간과 컴퓨터 간의 인터렉션들을 제공할 수 있다. NLP(106)는 자연어를 이해하고 데이터 프로세싱 시스템(102)이 인간 또는 자연어 입력으로부터 의미를 도출하도록 하는 기법으로 구성될 수 있다. NLP(106)는 통계적 기계 학습과 같은 기계 학습에 기초한 기법을 포함하거나 그러한 기법으로 구성될 수 있다. NLP(106)는 입력 오디오 신호를 파싱하기 위해 디시전 트리, 통계 모델 또는 확률 모델을 이용할 수 있다. NLP(106)는 기능들을 포함할 수 있고, 상기 기능들은 명명된 엔터티 인식(예: 주어진 텍스트의 스트림, 사람들 또는 장소들과 같은 적절한 이름에 대한 텍스트 맵의 아이템 결정, 상기 각 이름이 어떤 유형인지 예를 들어, 사람, 위치 또는 조직, 자연어 생성(예: 컴퓨터 데이터베이스로부터의 정보 또는 의미론적 의도를 이해가능한 인간 언어로 변환), 자연어 이해(예: 컴퓨터 모듈이 조작할 수 있는 텍스트를 제1 순서 로직 구조와 같은 더 형식적인 표현으로 변환), 기계 번역(예: 텍스트를 하나의 인간 언어로부터 다른 언어로 자동적으로 번역), 형태학적 세그먼트화(예: 단어를 개별 형태소로 분리하고 형태소의 클래스를 식별, 이는 고려되고 있는 언어의 단어의 형태론 또는 구조의 복잡도에 따라 어려울 수 있음), 질문에 답변(예: 특정적이거나 개방적일 수 있는 인간-언어 질문에 대한 답을 결정) 또는 의미론 프로세싱(예: 식별된 단어를 유사한 의미의 다른 단어와 관련시키기 위해 단어를 식별하고 그것의 의미를 인코딩한 후에 발생할 수 있는 프로세싱)을 포함한다.
NLP(106)는 입력 신호를 저장된 대표적인 오디오 파형 세트와 비교하고 가장 근접한 매칭을 선택함으로써, 오디오 입력 신호를 인식된 텍스트로 변환할 수 있다. 오디오 파형 세트는 데이터 저장소 또는 데이터 프로세싱 시스템(102)이 액세스 가능한 다른 데이터베이스에 저장될 수 있다. 대표적인 파형은 다수의 사용자 세트에 걸쳐 생성된 후, 사용자로부터의 음성 샘플로 보강될 수 있다. 오디오 신호가 인식된 텍스트로 변환된 후, NLP(106)는 예를 들어, 데이터 프로세싱 시스템(102)이 제공할 수 있는 액션과 함께, 예를 들어 사용자를 통한 트레이닝 또는 수동 스펙을 통해 연관된 단어에 텍스트를 매칭한다. NLP(106)의 양태 또는 기능은 데이터 프로세싱 시스템(102) 또는 클라이언트 컴퓨팅 디바이스(136)에 의해 수행될 수 있다. 예를 들어, NLP 컴포넌트는 클라이언트 컴퓨팅 디바이스(136)에서 실행되어 입력 오디오 신호를 텍스트로 변환하고 추가 자연어 프로세싱을 위해 데이터 패킷을 통해 텍스트를 데이터 프로세싱 시스템(102)에 전송하는 양태를 수행할 수 있다.
오디오 입력 신호는 클라이언트 컴퓨팅 디바이스(136)의 입력 디바이스(138)(예를 들어, 마이크로폰, 센서, 변환기)에 의해 검출될 수 있다. 트랜스듀서, 오디오 드라이버 또는 다른 컴포넌트를 통해, 클라이언트 컴퓨팅 디바이스(136)는 오디오 입력 신호를(예를 들어, 네트워크(105)를 통해) 데이터 프로세싱 시스템(102)에 제공할 수 있고, 데이터 프로세싱 시스템(102)에서 상기 오디오 입력 신호가(예를 들어, 인터페이스(104)에 의해) 수신될 수 있고, NLP(106)에 제공되거나 데이터 저장소에 저장된다.
데이터 프로세싱 시스템(102)은 인터페이스(104)를 통해 클라이언트 컴퓨팅 디바이스(136)의 마이크로폰에 의해 검출된 입력 오디오 신호를 포함하는 데이터 패킷들을 수신할 수 있다. 데이터 프로세싱 시스템(102)은 마이크로폰에 의해 검출된 입력 오디오 신호에 기초하여 생성된 데이터 패킷을 수신할 수 있다. 데이터 패킷은 필터링되거나 필터링되지 않을 수 있다. 데이터 패킷은 검출된 입력 오디오 신호의 디지털화된 버전일 수 있다. 데이터 패킷은 검출된 입력 오디오 신호에 기초하여 클라이언트 컴퓨팅 디바이스(136)에 의해 생성된 텍스트를 포함할 수 있다. 예를 들어, 클라이언트 컴퓨팅 디바이스(136)의 로컬 디지털 어시스턴트는 검출된 입력 오디오 신호를 프로세싱하고 프로세싱된 입력 오디오 신호에 기초하여 데이터 패킷을 추가 프로세싱을 위해 또는 액션을 수행하기 위해 서버 디지털 어시스턴트(108)에 전송할 수 있다.
데이터 프로세싱 시스템(102)은 서버 디지털 어시스턴트(108)를 포함할 수 있다. 서버 디지털 어시스턴트(108) 및 NLP(106)는 단일 컴포넌트일 수 있거나, 서버 디지털 어시스턴트(108)는 NLP(106)의 하나 이상의 컴포넌트 또는 기능을 포함할 수 있다. 서버 디지털 어시스턴트(108)는 NLP(106)와 인터페이스할 수 있다. 데이터 프로세싱 시스템(102)(예를 들어, 서버 디지털 어시스턴트(108))은 액션을 수행하거나 음성 입력에 응답하기 위해 데이터 패킷을 프로세싱할 수 있다. 데이터 프로세싱 시스템(102)은 입력 오디오 신호로부터 음향 신호를 식별할 수 있다. 데이터 프로세싱 시스템(102)은 데이터 저장소에서의 검색(예를 들어, 데이터베이스 쿼리)에 기초하여 음향 서명에 대응하는 전자 계정을 식별할 수 있다. 데이터 프로세싱 시스템(102)은 전자 계정의 식별에 응답하여 세션에서 사용하기 위한 세션 및 계정을 설정할 수 있다. 계정은 하나 이상의 정책이 있는 프로필을 포함할 수 있다. 데이터 프로세싱 시스템(102)은 입력 오디오 신호를 파싱하여 요청 및 요청에 대응하는 트리거 키워드를 식별할 수 있다.
NLP(106)는 입력 오디오 신호를 획득할 수 있다. 데이터 프로세싱 시스템(102)의 NLP(106)는 트리거 키워드를 검출하는 클라이언트 컴퓨팅 디바이스(136) 상의 로컬 디지털 어시스턴트에 응답하여 음성 입력 또는 입력 오디오 신호와 함께 데이터 패킷을 수신할 수 있다. 트리거 키워드는 클라이언트 컴퓨팅 디바이스(136)에 후속 오디오 입력을 텍스트로 변환하고 추가 프로세싱을 위해 텍스트를 데이터 프로세싱 시스템(102)에 전송하도록 지시하는 웨이크업 신호 또는 핫워드일 수 있다.
입력 오디오 신호를 수신하면, NLP(106)는 요청에 대응하는 적어도 하나의 쿼리 또는 요청 또는 적어도 하나의 키워드를 식별할 수 있다. 요청은 입력 오디오 신호의 의도 또는 주제를 표시할 수 있다. 키워드는 취해질 수 있는 액션의 유형을 표시할 수 있다. 예를 들어, NLP(106)는 저녁에 저녁 식사 및 영화 관람을 위해 동안 집을 떠나는 적어도 하나의 요청을 식별하기 위해 입력 오디오 신호를 파싱할 수 있다. 트리거 키워드는 적어도 하나의 단어, 문구, 어근 또는 부분 단어 또는 취해질 액션을 표시하는 파생어를 포함할 수 있다. 예를 들어, 입력 오디오 신호에서 트리거 키워드 "go" 또는 "to go to"는 전송 필요성을 표시할 수 있다. 이 예에서, 입력 오디오 신호(또는 식별된 요청)는 전송 의도를 직접 표현하지 않지만, 트리거 키워드는 전송이 요청에 의해 표시되는 적어도 하나의 다른 액션에 대한 보조 액션임을 표시한다. 다른 예에서, 음성 입력은 애플리케이션에서 액션을 수행하기 위한 쿼리 또는 요청을 포함할 수 있다.
NLP(106)는 입력 오디오 신호를 파싱하여, 요청 및 요청과 연관된 하나 이상의 키워드를 식별, 결정, 검색 또는 획득할 수 있다. 예를 들어, NLP(106)는 키워드 또는 요청을 식별하기 위해 의미론 프로세싱 기법을 입력 오디오 신호에 적용할 수 있다. NLP(106)는 의미론 프로세싱 기법을 입력 오디오 신호에 적용하여, 제1 키워드 및 제2 키워드와 같은 하나 이상의 키워드를 포함하는 키워드 또는 문구를 식별할 수 있다. 예를 들어, 입력 오디오 신호는 "I want to purchase an audiobook"이라는 문장을 포함할 수 있다. NLP(106)는 시맨틱 프로세싱 기법 또는 다른 자연어 프로세싱 기법을 문장을 포함하는 데이터 패킷에 적용하여, 키워드 또는 문구 "want a ride" 및 "audiobook"을 식별할 수 있다. NLP(106)는 purchase, audiobook과 같은 다수의 키워드를 추가로 식별할 수 있다. 예를 들어, NLP(106)는 문구가 제1 및 제2 키워드를 포함한다고 결정할 수 있다.
NLP(106)는 트리거 키워드를 식별하기 위해 입력 오디오 신호를 필터링할 수 있다. 예를 들어, 입력 오디오 신호를 운반하는 데이터 패킷은 "나를 공항에 데려가 줄 누군가가 있으면 좋겠다(It would be great if I could get someone that could help me go to the airport)"를 포함할 수 있으며, 이 경우 NLP(106)는 다음과 같은 하나 이상의 용어를 필터링할 수 있다. “it”,“Would”,“Be”,“great”,“if”,“I”,“Could”,“get”, “someone”, “that”, “could”, 또는 “help”. 이러한 용어를 필터링함으로써, NLP(106)는 "go to the airport"와 같은 트리거 키워드를 보다 정확하고 신뢰성 있게 식별하고, 이것이 택시 또는 승차 공유 서비스에 대한 요청이라고 결정할 수 있다.
서버 디지털 어시스턴트(108) 또는 로컬 디지털 어시스턴트(144)는 클라이언트 컴퓨팅 디바이스(136) 상에서 실행되는 애플리케이션(142)과 인터페이싱할 수 있다. 애플리케이션(142)은 음성 기반 액션 또는 음성 인터페이스를 포함할 수 있다. 애플리케이션은 클라이언트 컴퓨팅 디바이스(136)의 사용자로부터 음성 입력을 수신할 수 있다. 클라이언트 컴퓨팅 디바이스(136)는 추가 프로세싱을 위해 음성 입력을 데이터 프로세싱 시스템(102)(예를 들어, NLP(106) 또는 서버 디지털 어시스턴트(108))에 전달할 수 있다. 일부 경우에, 애플리케이션(142)은 프로세싱을 위해 음성 액션을 애플리케이션 개발자 디바이스(134)에 전달할 수 있다. 애플리케이션(142)은 음성 액션을 데이터 프로세싱 시스템(102)에 전달할 수 있고, 데이터 프로세싱 시스템은 음성 액션을 사전 프로세싱한 다음 음성 액션을 애플리케이션 개발자 디바이스(134)에 전달할 수 있다. 일부 경우에, 클라이언트 컴퓨팅 디바이스(136) 상에서 실행되는 애플리케이션(142)은 음성 액션을 프로세싱하고 대응하는 액션을 수행하도록 구성될 수 있다. 일부 경우에, 애플리케이션(142)은 프로세싱을 위해 음성 입력을 데이터 프로세싱 시스템(102)에 전달하고, 데이터 프로세싱 시스템(102)은 음성 입력과 연관된 액션 또는 의도를 식별하고, 요청된 액션 또는 의도를 수행하기 위해 애플리케이션(142)에 명령을 전달할 수 있다.
데이터 프로세싱 시스템(102)은 보충 콘텐츠 아이템을 선택하기 위해 애플리케이션(142)의 음성 액션을 결정할 수 있다. 그러나 음성 기반 액션이 호출될 때, 음성 기반 액션의 실행에 따라 또는 함께 제공하기 위해 보충 콘텐츠 제공자가 제공하는 보충 콘텐츠 아이템을 식별하거나 선택하는 것이 어려울 수 있다. 예를 들어, 콘텐츠 선택기(114)는 특정 음성 액션을 호출한 회화 경로 또는 대화 경로를 인식하지 못할 수 있다. 콘텐츠 선택기(114)는 음성 액션을 호출한 발언을 초래한 대화 분기를 인식하지 못할 수 있다. 이는 애플리케이션의 음성 액션에 대한 응답이 대화 또는 회화 흐름과 연관된 하나 이상의 이전 분기를 고려할 수 있다는 점에서 음성 액션이 웹페이지와 같지 않기 때문일 수 있다. 콘텐츠 선택자는 이전 분기 또는 이전 분기와 연관된 정보에 액세스할 수 없다. 콘텐츠 선택기는 최소한의 정보 또는 부적절한 정보만 있을 수 있다. 콘텐츠 선택자는 음성 액션 자체에 기초하여 콘텐츠 아이템을 선택하려고 시도할 수 있고, 이는 콘텐츠 선택자가 대화 흐름의 이전 분기에 액세스할 수 없기 때문이다. 따라서, 콘텐츠 선택자는 관련 없는 콘텐츠 아이템을 선택하거나, 리소스 집약적인 선택 프로세스를 수행하여 콘텐츠 아이템을 선택하려고 시도할 수 있지만 정확도가 낮거나 관련성 점수가 낮다. 이로 인해 리소스 소비가 낭비되거나 콘텐츠 아이템 선택이 올바르지 않거나 정확하지 않을 수 있다. 부정확하거나 관련이 없는 콘텐츠 아이템을 제공하면 과도한 원격 절차 호출 또는 네트워크 대역폭 활용이 발생할 수 있고, 이는 다수의 추가 콘텐츠 아이템이 선택되어 네트워크를 통해 컴퓨팅 디바이스로 전송될 수 있기 때문이다. 또한, 부정확하거나 관련 없는 콘텐츠 아이템을 컴퓨팅 디바이스에 제공하면 사용자 경험이 좋지 않을 수 있다. 콘텐츠 아이템은 사용자가 콘텐츠 아이템과 인터렉션하거나 관여하지 않을 수 있다는 점에서 컴퓨팅 디바이스에서 제대로 수행되지 않을 수 있다. 일부 경우에, 사용자는 부정확한 콘텐츠 아이템을 건너뛰거나 앞으로 갈 수 있으며, 이에 따라 사용자는 정확하거나 관련 있는 콘텐츠 아이템의 제시와 비교하여 컴퓨팅 디바이스와의 추가 입력 또는 인터렉션을 제공할 수 있다.
이러한 문제 및 기타 기술적 문제를 해결하기 위해, 이 기술 솔루션의 데이터 프로세싱 시스템(102)은 애플리케이션에 의해 수행될 수 있는 액션의 트랜스트립트를 생성하도록 설계, 구성 및 동작되는 액션 크롤러(110)를 포함할 수 있다. 액션 크롤러(110)은 애플리케이션 개발자(134)로부터 음성 어시스턴트 호환 액션으로 구성된 애플리케이션을 수신할 수 있다. 액션 크롤러(110)는 애플리케이션이 음성 입력에 응답하여 수행하도록 구성된 액션을 식별할 수 있다. 액션 크롤러(110)는 액션을 식별하기 위해 애플리케이션을 크롤링할 수 있다. 액션 크롤러(110)는 사용자가 애플리케이션과 함께 취할 수 있는 다양한 대화 경로를 식별하기 위해 애플리케이션과의 대화를 시뮬레이션할 수 있다. 대화 경로가 다르면 대화 경로와 연관된 의도에 따라 동일한 음성 액션 또는 다른 음성 액션이 수행될 수 있다.
예를 들어, 데이터 프로세싱 시스템(102)의 NLP(106) 또는 서버 디지털 어시스턴트(108)는 복수의 액션을 식별하기 위해 애플리케이션과의 대화를 시뮬레이션할 수 있다. 서버 디지털 어시스턴트(108)는 애플리케이션과의 하나 이상의 대화를 시뮬레이션할 수 있다. 일부 경우에, 데이터 프로세싱 시스템(102)은 예시적 대화 또는 트랜스트립트 정보를 포함하는 애플리케이션 개발자 디바이스(134)로부터 애플리케이션 패키지 파일을 수신할 수 있다. 일부 경우에, 데이터 프로세싱 시스템(102)은 애플리케이션이 참여할 수 있는 가능한 대화를 자동으로 결정할 수 있고, 애플리케이션이 수행하도록 구성된 음성 액션을 식별할 수 있다.
예를 들어, 애플리케이션은 테마파크에서 만화 캐릭터와 관련된 엔터테인먼트 콘텐츠를 제공하는 것과 관련될 수 있다. 액션 크롤러(110)는 애플리케이션과의 대화를 시뮬레이션할 수 있다. 액션 크롤러(110)는 애플리케이션을 시작하거나 호출할 수 있다. 애플리케이션은 "which Character would you like to talk to?"와 같은 쿼리 또는 프롬프트로 시작할 수 있다. 액션 크롤러(110)는 "talk to Character_A"라는 문장을 포함하는 시뮬레이션된 음성 입력을 생성함으로써 옵션 목록에서 캐릭터를 선택할 수 있다. 애플리케이션은 "do you want to play a game with Character_A, read a story with Character_A, or sing a song with Character_A”"와 같은 응답 및 프롬프트 또는 쿼리로 액션 크롤러(110)에 응답할 수 있다. 액션 크롤러(110)는 음성 어시스턴트 지원 액션에 대응하는 이러한 음성 액션 중 하나를 선택할 수 있다. 액션 크롤러(110)는 음성 액션의 호출 또는 선택을 초래한 대화 흐름을 포함하는 음성 액션 각각에 대한 트랜스크립트를 저장할 수 있다. 액션 크롤러(110)는 애플리케이션의 각 캐릭터에 대해 이 흐름을 반복할 수 있다.
다른 예에서, 액션 크롤러(110)는 애플리케이션을 호출한 다음 애플리케이션이 수행할 수 있는 작업을 애플리케이션에 묻는 프롬프트 또는 쿼리를 입력할 수 있다. 그 다음, 액션 크롤러(110)는 작업을 선택하고 음성 액션을 호출하는 하나 이상의 대화 흐름을 개시할 수 있다. 따라서, 액션 크롤러(110)는 애플리케이션을 크롤링하여 애플리케이션이 하나 이상의 대화에 따라 수행하도록 구성된 액션을 포함하는 트랜스크립트를 생성할 수 있다. 데이터 프로세싱 시스템(102)은 액션 및 액션을 호출하는데 사용되는 하나 이상의 대화에 대한 정보를 저장하기 위해 트랜스크립트를 생성할 수 있다. 정보는 대화, 키워드, webref 엔터티, 수직 분류, 의도, 음성 액션 또는 콘텐츠 선택을 용이하게 하는 기타 정보를 포함할 수 있다. webref 엔터티는 분류 체계로 분류된 엔터티에 대응할 수 있다. 웹 참조 엔티티는 텍스트의 이해를 돕고 지식의 저장소를 증강한다. 엔터티는 단일 사람, 장소 또는 사물일 수 있으며 저장소는 유사한 이름을 가진 다수의 엔터티(예: 재규어 자동차 대 재규어 동물)를 구별하기 위해 각각 고유한 식별자가 있는 수백만 개의 엔터티를 포함할 수 있다. 데이터 프로세싱 시스템은 참조 엔티티에 액세스하고, 다양한 소스로부터 엔티티를 식별하기 위해 임의의 텍스트 조각(예: 웹 페이지의 텍스트, 키워드 텍스트, 콘텐츠 텍스트, 광고 텍스트)을 스캔할 수 있다. 예를 들어 이러한 소스 중 하나는 사용자 커뮤니티에서 구축한 사람, 장소 및 사물의 엔터티 그래프와 같이 수동으로 생성된 엔터티 분류일 수 있다.
데이터 프로세싱 시스템(102)은 보충 디지털 콘텐츠 제공자 디바이스(132)로부터 콘텐츠 아이템을 수신할 수 있다. 데이터 프로세싱 시스템(102)은 보충 디지털 콘텐츠 제공자 디바이스(132)와 같은 컴퓨팅 디바이스의 서드파티에 의해 제공되는 콘텐츠 아이템을 식별할 수 있다. 예를 들어, 데이터 프로세싱 시스템(102)의 콘텐츠 선택기(114)는 네트워크(105)를 통해 보충 콘텐츠 제공자 디바이스(132)로부터 콘텐츠 아이템을 수신할 수 있다. 데이터 프로세싱 시스템(102)은 그래픽 사용자 인터페이스와 같은 데이터 프로세싱 시스템의 인터페이스를 통해 콘텐츠 아이템(또는 스폰서 콘텐츠 아이템)을 수신할 수 있다. 데이터 프로세싱 시스템(102)은 보충 콘텐츠 아이템 디바이스(132)와 연관된 계정 식별자와 콘텐츠 아이템을 연관시킬 수 있다. 콘텐츠 아이템은 콘텐츠 배치 캠페인의 일부일 수 있다. 콘텐츠 아이템은 콘텐츠 그룹의 일부일 수 있다. 콘텐츠 아이템은 콘텐츠 선택기(114)에 의해 실시간으로 콘텐츠 선택을 수행하기 위해 사용되는 키워드, 위치, 또는 다른 신호와 같은 콘텐츠 선택 기준과 연관될 수 있다. 데이터 프로세싱 시스템(102)은 콘텐츠 아이템 또는 콘텐츠 그룹과 연관된 개념, 주제, 엔터티 또는 버티컬을 식별할 수 있다. 데이터 프로세싱 시스템(102)은 콘텐츠 아이템에 대한 성능 데이터를 추가로 식별하거나 생성할 수 있다. 성능 데이터는 콘텐츠 아이템이 하나 이상의 클라이언트 컴퓨팅 디바이스(136) 상에서 제시되거나 제시를 위해 제공되었을 때 콘텐츠 아이템이 얼마나 잘 수행되었는지를 포함하거나 나타낼 수 있다. 성능은 클라이언트 컴퓨팅 디바이스(136)의 사용자에 의한 콘텐츠 아이템과의 인터렉션 유형 또는 인터렉션의 레벨을 참조하거나 포함하거나 이에 기초할 수 있다. 예를 들어, 성능 정보는 콘텐츠 아이템 선택, 콘텐츠 아이템 클릭, 컨버전 또는 콘텐츠 아이템과 연관된 프롬프트 또는 설문조사 완료를 포함하거나 이에 기초할 수 있다. 성능 정보는 예를 들어 사용자가 콘텐츠 아이템이 제시된 창을 닫았는지 여부, 콘텐츠 아이템의 재생 건너뛰었는지, 콘텐츠 아이템의 재생을 빨리 넘겼는지, 콘텐츠 아이템의 재생을 반복했는지 또는 콘텐츠 아이템의 전체 재생을 허용했는지 여부를 포함할 수 있다. 따라서, 콘텐츠 아이템에 대한 성능 데이터는 하나 이상의 컴퓨팅 디바이스(136)를 통한 콘텐츠 아이템 각각의 사전 제시에 응답하여 콘텐츠 아이템 각각과의 인터렉션 유형을 나타낼 수 있다. 인터렉션 유형은 건너뛰기, 빨리 넘기기 또는 제시 지속시간 중 적어도 하나를 포함할 수 있다. 성능 데이터는 데이터 저장소(120)의 콘텐츠 데이터(126) 데이터 구조에 저장될 수 있다.
성능 데이터는 콘텐츠 아이템과 연관된 키워드 또는 다른 신호 또는 콘텐츠 아이템이 제시되었던 위치와 연관된 신호와 연관되거나 상관될 수 있다. 신호는 클라이언트 컴퓨팅 디바이스(136)의 유형, 콘텐츠 아이템이 제시되었을 때 클라이언트 컴퓨팅 디바이스(136)의 위치, 콘텐츠 아이템과 함께 또는 콘텐츠 아이템에 따라 클라이언트 컴퓨팅 디바이스(136) 상에 제시되고 있는 메인 콘텐츠와 연관된 정보 또는 다른 계정 정보 또는 클라이언트 컴퓨팅 디바이스(136)와 연관된 프로필 정보를 포함할 수 있다.
그러나, 다수의 보충 디지털 콘텐츠 제공자 디바이스(132)로부터 수신된 다수의 콘텐츠 아이템으로 인해, 및 다수의 음성 기반 어시스턴트 액션 및 다수의 애플리케이션으로 인해, 효율적이고 정확한 방식으로 콘텐츠 아이템의 실시간 콘텐츠 선택을 수행하는 것이 어려울 수 있다. 이 기술 솔루션의 데이터 프로세싱 시스템(102)은 각각의 음성 액션에 대해 관련 후보 콘텐츠 아이템을 나타내는 비트 벡터를 생성하도록 설계, 구성 및 동작하는 임베딩 추출기(112)를 포함할 수 있다. 비트 벡터는 클라이언트 컴퓨팅 디바이스(136)를 실행하는 애플리케이션에서 음성 액션의 호출에 응답하여 실시간 콘텐츠 선택을 수행하기 위해 콘텐츠 선택기(114)에 의해 사용될 수 있다.
임베딩 추출기(112)는 기계 학습 모델 및 콘텐츠 아이템에 대한 성능 데이터를 통해 액션에 대응하는 비트 벡터를 생성할 수 있다. 비트 벡터는 액션에 대한 후보 콘텐츠 아이템을 표시할 수 있다. 임베딩 추출기(112)는 콘텐츠 아이템 정보 또는 성능 데이터와 함께 액션 크롤러(110)에 의해 생성된 트랜스크립트를 입력으로서 취할 수 있고, 어떤 콘텐츠 아이템이 트랜스크립트의 각 액션과 관련이 있는지를 나타내는 비트 벡터를 생성할 수 있다. 예를 들어, 스크립트는 특정 애플리케이션의 여러 음성 기반 액션을 포함할 수 있다. 스크립트의 각 액션은 키워드, 의도, 개념, 주제 또는 음성 액션으로 이어진 시뮬레이션된 대화와 연관된 기타 정보를 포함하는 대화 흐름과 연관될 수 있다. 임베딩 추출기(112)는 딥러닝 모델(128)을 사용하여 어떤 콘텐츠 아이템이 트랜스크립트의 각 액션과 관련이 있는지 식별할 수 있다. 임베딩 추출기(112)는 애플리케이션에 대한 액션 크롤러(110)에 의해 생성된 트랜스크립트에서 각각의 액션에 대한 다수의 후보 콘텐츠 아이템을 식별하는 애플리케이션에 대한 하나 이상의 비트 벡터를 생성할 수 있다.
비트 벡터는 데이터 프로세싱 시스템(102) 또는 하나 이상의 프로세서 및 그 메모리에 의해 효율적으로 처리될 수 있는 데이터 구조를 참조하거나 포함할 수 있다. 비트 벡터는 데이터 프로세싱 시스템(102)이 하드웨어에서 비트 레벨 병렬 처리를 수행하여 동작을 신속하게 효과적으로 수행하게 할 수 있다. 비트 벡터는 비트 배열일 수 있다. 비트 벡터는 여러 비트를 포함할 수 있다. 비트 벡터는 특정 액션에 대해 어떤 콘텐츠 아이템이 관련되는지 나타내는 것과 같이 값 0 1에 대한 매핑을 포함할 수 있다. 예를 들어, "read a book with Character_A"라는 음성 액션에 대한 비트 벡터는 비트 벡터의 한 위치에서 1 또는 0을 표시함으로써 후보 콘텐츠 아이템 세트에서 어떤 후보 콘텐츠 아이템이 관련되는지를 표시하는 것을 포함할 수 있고, 비트 벡터의 위치는 특정 후보 콘텐츠 아이템에 대응한다. 표 1은 후보 콘텐츠 아이템을 나열하는 데이터 구조 및 애플리케이션의 다양한 액션에 대한 예시적인 비트 벡터를 보여준다.
Figure pct00001
표 1: 음성 액션에 대한 비트 벡터의 예시
표 1의 예시적 예에서, 특정 애플리케이션에 대한 후보 콘텐츠 아이템 데이터 구조는 순서가 지정된 목록에 5개의 다른 콘텐츠 아이템을 나열할 수 있다. 순서는 번호순, 알파벳순 또는 애플리케이션 관련성 순서와 같은 임의의 순서에 기초할 수 있다. 임베딩 추출기(112)는 액션 크롤러(110)에 의해 생성된 트랜스크립트에서 각각의 액션에 대한 비트 벡터를 생성할 수 있다. 예를 들어, 액션 1의 경우 비트 벡터는 [0 0 1 1 1]일 수 있고, 액션 2의 경우 비트 벡터는 [0 1 0 1 0]일 수 있고, 액션 3의 경우 비트 벡터는 [1 1 0 0 1]일 수 있다. 비트 벡터는 콘텐츠 아이템 중 어느 것이 특정 음성 액션과 관련이 있거나 후보인지 나타낼 수 있다. 예를 들어, 음성 액션 1의 경우, 관련 후보 콘텐츠 아이템은 콘텐츠 아이템 3, 4 및 5일 수 있다. 음성 액션 2의 경우, 후보 콘텐츠 아이템은 2와 4일 수 있다. 음성 액션 3의 경우, 후보 콘텐츠 아이템은 1, 2 및 5일 수 있다.
표 1에 예시된 다른 음성 액션은 캐릭터 A로 노래 재생, 책 읽기 또는 음악 재생과 같은 다른 액션을 나타낼 수 있다. 다른 예에서, 다른 액션은 노래 재생과 같은 동일한 유형의 액션을 나타낼 수 있지만 다음과 같이 다른 캐릭터로 노래 재생하는 것일 수 있다: 음성 액션 1은 Character_A로 노래를 재생하는 것일 수 있고, 음성 액션 2는 Character_B로 노래를 재생하는 것일 수 있고, 음성 액션 3은 Character_C로 노래를 재생할 수 것일 수 있다. 액션 크롤러(110)는 트랜스트립트 파일을 생성하기 위해 애플리케이션과의 대화를 시뮬레이션함으로써 애플리케이션의 호출을 초래한 대화 흐름에 기초하여 동일한 유형의 액션(예를 들어, 노래 재생)에 대해 상이한 음성 액션 식별자를 생성할 수 있다. 따라서, 표 1은 음성 액션의 호출을 초래한 대화 흐름에 기초하여 각 액션에 대해 서로 다른 비트 벡터를 포함할 수 있으며, 이에 따라 비트 벡터 형식을 사용하여 효율성을 유지하면서 콘텐츠 선택의 정확도를 높일 수 있다.
각각의 액션에 대한 비트 벡터를 생성하기 위해, 데이터 프로세싱 시스템(102)은 트레이닝 데이터를 사용하여 딥러닝 모델 또는 기계 학습 모델을 트레이닝할 수 있다. 트레이닝 데이터는 다수의 클라이언트 컴퓨팅 디바이스(136) 상의 콘텐츠 아이템의 이전 제시와 연관된 이력 데이터를 포함할 수 있다. 이력 트레이닝 데이터는 콘텐츠 아이템의 성능 및 성능과 연관된 신호에 기초할 수 있다. 이력 트레이닝 데이터는 콘텐츠 아이템(예: 키워드, 주제, 개체)에 관한 정보, 콘텐츠 아이템의 제시와 연관된 신호(예: 컴퓨팅 디바이스의 유형, 컴퓨팅 디바이스의 위치, 개념, 스폰서 콘텐츠가 제시되는 주요 콘텐츠와 연관된, 키워드 또는 주제 또는 프로필 정보), 성능 데이터(예: 사용자가 콘텐츠 아이템과 인터렉션했는지 또는 콘텐츠 아이템을 건너뛰었는지 여부)를 포함할 수 있다.
데이터 프로세싱 시스템(102)은 딥러닝 기법과 같은 기계 학습 기법을 사용하여 트레이닝 데이터로 모델(128)을 트레이닝할 수 있다. 딥러닝 기법은 딥 구조화 학습을 지칭할 수 있다. 딥러닝 기법은 표현 학습이 있는 인공 신경망을 포함하거나 이에 기초할 수 있다. 딥러닝 기법은 지도, 반지도 또는 비지도 학습일 수 있다. 딥러닝 기법은 순환 신경망, 컨볼루션 신경망, 심층 신경망 또는 심층 강화 학습을 포함할 수 있다. 딥러닝 기법은 여러 계층을 사용하여 입력으로부터 고급 기능을 점진적으로 추출할 수 있다. 예를 들어, 콘텐츠 데이터(예: 콘텐츠 아이템 정보 및 성능 데이터) 및 트랜스크립트(예: 음성 액션 및 음성 액션을 호출한 대화와 연관된 정보)를 사용하여, 딥러닝 기법은 어떤 콘텐츠 아이템이 특정 음성 액션과 나란히, 공간 또는 시간에 근접하거나, 특정 음성 액션과 함께 제시될 때 관련성이 있거나 호의적으로 수행될 것으로 예상되는지 결정할 수 있다. 임베딩 추출기(112)는 딥러닝 모델을 사용하여 어떤 콘텐츠 아이템이 잘 수행될 가능성이 있는지 예측할 수 있다(예: 콘텐츠 아이템의 제시 횟수에 대해 1%, 2%, 3%, 5%, 10%, 15%, 20%와 같은 임계치 이상 인터렉션 가능성을 갖는지). 임베딩 추출기(112)는 딥러닝 모델을 사용하여 어떤 콘텐츠 아이템이 하나 이상의 보충 디지털 콘텐츠 제공자 디바이스(132)로부터 수신된 이용 가능한 콘텐츠 아이템의 세트와 관련하여 최고 성능의 콘텐츠인지 예측할 수 있다. 따라서, 임베딩 추출기(112)는 트랜스크립트 및 콘텐츠 아이템 성능 데이터를 입력으로서 취하고 트랜스크립트의 각 액션에 대한 비트 벡터를 출력할 수 있다. 출력된 비트 벡터는 특정 액션에 대해 클라이언트 컴퓨팅 디바이스(136)에 의한 애플리케이션(142)의 액션 호출에 응답하여 제시 후보인 후보 콘텐츠 아이템을 나타낼 수 있다.
데이터 프로세싱 시스템(102)은 보충 콘텐츠 아이템(또는 스폰서 콘텐츠 아이템 또는 디지털 컴포넌트 객체)을 선택하도록 설계, 구성 또는 동작하는 콘텐츠 선택기(114)를 포함할 수 있다. 콘텐츠 선택기(114)는 상기 애플리케이션(142)의 액션을 실행하는 컴퓨팅 디바이스(136)에 대한 콘텐츠에 대한 요청에 응답하여, 상기 액션에 대응하는 비트 벡터에 기초하여 콘텐츠 아이템을 선택할 수 있다. 다수의 이용 가능한 콘텐츠 아이템으로부터 선택함으로써 초래되는 과도한 컴퓨팅 리소스 활용을 피하기 위해, 콘텐츠 선택기(114)는 임베딩 추출기(112)에 의해 생성된 비트 벡터를 사용하여 애플리케이션에서 호출되는 액션에 대한 후보 콘텐츠 아이템을 검색하도록 설계, 구성 및 동작하는 콘텐츠 검색기(116)를 포함할 수 있다. 비트 벡터는 다양한 보충 디지털 콘텐츠 제공자 디바이스(132) 콘텐츠 아이템에 의해 제공되는 모든 이용 가능한 콘텐츠 아이템의 서브세트의 표시를 저장할 수 있다. 사용 가능한 모든 콘텐츠 아이템의 서브세트는 가장 높은 순위의 콘텐츠 아이템에 대응하는 콘텐츠 아이템 또는 애플리케이션의 액션과 가장 관련이 있는 콘텐츠 아이템일 수 있다. 가장 관련성이 높은 콘텐츠 아이템은 딥러닝 모델(128)을 사용하여 임베딩 추출기(112)에 의해 결정될 수 있다. 콘텐츠 아이템의 이 서브세트는 애플리케이션(142)에서 액션의 호출에 응답하여 제시를 위한 후보로서 비트 벡터에서 나열되거나 그렇지 않으면 식별될 수 있다. 그러나, 콘텐츠 선택기(114)는 애플리케이션(142)에서 액션을 호출하는 특정 클라이언트 컴퓨팅 디바이스(136)와 연관된 신호 또는 기타 정보에 기초하여 콘텐츠 아이템의 서브세트 중 가장 높은 점수를 받은 콘텐츠 아이템을 선택하기 위해 콘텐츠 아이템의 서브세트를 더 정제할 수 있다.
콘텐츠 검색기(116)는 액션 및 액션이 호출된 애플리케이션(142)을 식별할 수 있다. 예를 들어, 애플리케이션은 이름, 영숫자 식별자 또는 애플리케이션의 다른 고유 식별자와 같은 고유 식별자와 연관될 수 있다. 콘텐츠 검색기(116)는 애플리케이션(142)에서 호출된 액션을 추가로 식별할 수 있다. 액션은 고유 식별자 또는 이름, 영숫자 식별자 또는 다른 유효 식별자와 같은 애플리케이션(142)에 고유한 식별자와 연관될 수 있다.
콘텐츠 검색기(116)는 애플리케이션의 식별자 및 애플리케이션의 액션에 대해 설정된 비트 벡터를 액세스, 검색, 획득 또는 식별하기 위한 액션의 식별자를 사용하여 비트 벡터(130) 데이터 구조에서 룩업을 수행할 수 있다. 콘텐츠 검색기(116)는 액션에 대한 비트 벡터에 표시되는 하나 이상의 후보 콘텐츠 아이템을 식별할 수 있다. 콘텐츠 검색기(116)는 콘텐츠 아이템에 대한 고유 식별자, 콘텐츠 아이템에 대한 균일 리소스 로케이터, 콘텐츠 아이템에 대한 포인터 또는 콘텐츠 아이템을 검색하거나 컴퓨팅 디바이스(136)에 제공하는데 사용될 수 있는 콘텐츠 아이템의 다른 표시자를 식별할 수 있다.
비트 벡터는 애플리케이션(142)에서 호출되는 특정 액션에 대한 다수의 후보 콘텐츠 아이템을 나타낼 수 있다. 액션에 대한 비트 벡터와 연관된 후보 콘텐츠 아이템은 콘텐츠 선택 기준, 성능 데이터 또는 콘텐츠 선택을 용이하게 할 수 있는 다른 정보와 같은 콘텐츠 데이터(126)를 포함할 수 있다. 콘텐츠 검색기(116)는 비트 벡터에 표시된 후보 콘텐츠 아이템을 콘텐츠 점수화기(118)에 제공하여, 컴퓨팅 디바이스(136)에 제공할 후보 콘텐츠 아이템으로부터 콘텐츠 아이템을 선택할 수 있다.
콘텐츠 선택기(114)는 비트 벡터에 표시된 후보 콘텐츠 아이템으로부터 콘텐츠 아이템을 선택하도록 설계, 구성 및 동작하는 콘텐츠 점수화기(118)를 포함할 수 있다. 콘텐츠 선택기(114)는 최고 점수 또는 최고 순위 콘텐츠 아이템을 식별하기 위해 후보 콘텐츠 아이템을 점수화할 수 있다. 콘텐츠 선택기(114)는 컴퓨팅 디바이스(136)에서 가장 잘 수행할 가능성이 있는 콘텐츠 아이템을 식별하는 것을 용이하게 할 수 있는 임의의 콘텐츠 점수화 기법을 사용하여 후보 콘텐츠 아이템을 점수화할 수 있다. 콘텐츠 점수화기(118)는 후보 콘텐츠 아이템을 점수화하기 위한 액션을 호출한 특정 클라이언트 컴퓨팅 디바이스(136)와 연관된 신호를 사용할 수 있다. 신호는 예를 들어 컴퓨팅 디바이스의 유형, 컴퓨팅 디바이스의 지리적 위치, 클라이언트 컴퓨팅 디바이스와 함께 사용되는 언어(예: 영어, 프랑스어 또는 스페인어) 또는 클라이언트 컴퓨팅 디바이스(136)에 링크된 전자 계정과 연관된 프로필 정보를 포함할 수 있다. 예를 들어, 콘텐츠 점수화기(118)는 클라이언트 컴퓨팅 디바이스(136)와 연관된 신호에 기초하여 애플리케이션(142)에서 호출된 액션과 가장 관련될 가능성이 있는 후보 콘텐츠 아이템을 예측할 수 있다. 콘텐츠 점수화기(118)는 후보 콘텐츠 아이템 중 어느 것이 컴퓨팅 디바이스(136)의 사용자에 의한 호의적인 인터렉션을 가장 잘 초래할 것인지를 예측할 수 있다. 콘텐츠 점수화기(118)는 컴퓨팅 디바이스(136)의 사용자에 의해 건너뛰거나 닫히지 않고 후보 콘텐츠 아이템 중 어느 것이 콘텐츠 아이템의 전체 지속 시간 동안 재생될 가능성이 가장 높은지 예측할 수 있다.
스폰서 콘텐츠 아이템 또는 디지털 컴포넌트를 선택하기 위해, 콘텐츠 점수화기(118)는 확장 매칭, 완전 매칭, 또는 구문 매칭에 기초하여 매칭되는 스폰서 콘텐츠 아이템을 선택하기 위해 콘텐츠 선택 기준을 사용할 수 있다. 예를 들어, 콘텐츠 선택기(114)는 후보 스폰서 콘텐츠 아이템의 주제가 애플리케이션(142)에서 호출된 액션과 연관된 의도, 키워드 또는 문구의 주제에 대응하는지 여부를 결정하기 위해 후보 스폰서 콘텐츠 아이템의 주제를 분석, 파싱 또는 프로세싱할 수 있다. 콘텐츠 점수화기(118)는 이미지 프로세싱 기법, 문자 인식 기법, 자연어 프로세싱 기법 또는 데이터베이스 조회를 사용하여 후보 디지털 컴포넌트의 음성, 오디오, 용어, 문자, 텍스트, 기호 또는 이미지를 식별, 분석 또는 인식할 수 있다. 후보 스폰서 콘텐츠 아이템은 후보 디지털 컴포넌트의 주제를 표시하는 메타데이터를 포함할 수 있고, 이 경우 콘텐츠 점수화기(118)는 메타데이터를 프로세싱하여 후보 디지털 컴포넌트의 주제가 애플리케이션(142)에서 호출된 액션에 대응하는지 여부를 결정할 수 있다. 보충 디지털 콘텐츠 제공자 디바이스(132)에 의해 제공되는 콘텐츠 캠페인은 콘텐츠 점수화기(118)가 제2 프로파일 레이어 또는 제1 프로필 레이어에 표시된 기준과 매칭시킬 수 있는 콘텐츠 선택 기준을 포함할 수 있다.
콘텐츠 선택기(114)는 요청에 응답하여 실시간 콘텐츠 선택 프로세스를 수행할 수 있다. 실시간 콘텐츠 선택은 요청에 응답하여 콘텐츠 선택을 수행하는 것을 지칭할 수 있다. 실시간은 요청을 수신한 후 0.2초, 0.3초, 0.4초, 0.5, 0.6초 또는 1초 이내에 콘텐츠를 선택하는 것을 지칭하거나 포함할 수 있다. 실시간은 클라이언트 컴퓨팅 디바이스(136)로부터 입력 오디오 신호를 수신하는 것에 응답하여 콘텐츠를 선택하는 것을 지칭할 수 있다. 실시간 콘텐츠 선택 프로세스는 애플리케이션(142)에서 호출된 액션에 대한 비트 벡터를 식별하고, 비트 벡터에서 식별된 후보 콘텐츠 아이템을 콘텐츠 점수화기(118)에 입력하여 가장 높은 순위 또는 점수의 콘텐츠 아이템을 출력함으로써 가속화될 수 있다. 콘텐츠 점수화기(118)는 클라이언트 컴퓨팅 디바이스(136)에 제공할 최고 순위의 보충 콘텐츠 아이템을 선택하기 위해 다수의 후보 보충 콘텐츠 아이템 각각에 대한 점수 또는 순위를 결정할 수 있다.
일부 경우에, 콘텐츠 점수화기(118)는 가장 높은 점수 또는 가장 관련성이 높은 콘텐츠 아이템을 결정할 수 있는 기계 학습 모델로 구성될 수 있다. 기계 학습 모델은 다양한 신호와 연관된 콘텐츠 아이템의 이력 성능에 기초하여 트레이닝될 수 있다. 모델은 특정 신호가 있을 때 콘텐츠 아이템이 잘 수행될 가능성을 나타내는 예측 또는 점수를 출력할 수 있다. 따라서, 콘텐츠 선택기(114)는 기계 학습 기법을 사용하여, 콘텐츠 검색기(116)에 의해 검색된 후보 콘텐츠 아이템들로부터 콘텐츠 아이템을 점수화하거나 선택할 수 있다.
따라서, 데이터 프로세싱 시스템은 액션의 호출에 대한 표시를 컴퓨팅 디바이스(136)로부터 수신할 수 있다. 데이터 프로세싱 시스템(102)은 액션에 대응하는 비트 벡터를 검색하기 위해 비트 벡터(130)를 저장하는 데이터 저장소(120)에서 액션으로 룩업을 수행할 수 있다. 데이터 프로세싱 시스템(102)은 액션에 대한 비트 벡터로부터 상위 순위 후보 콘텐츠 아이템을 식별할 수 있다. 상위 순위 후보 콘텐츠 아이템은 딥러닝 모델(128)을 사용하여 임베딩 추출기(112)에 의해 식별될 수 있고, 애플리케이션의 액션에 대한 비트 벡터에 저장될 수 있다. 데이터 프로세싱 시스템(102)은 액션에 대한 비트 벡터로부터 식별된 상위 순위 후보 콘텐츠 아이템들로부터 최고 점수 콘텐츠 아이템을 선택할 수 있다. 데이터 프로세싱 시스템(102)은 실시간 콘텐츠 선택 프로세스를 통해, 최상위 후보 콘텐츠 아이템들로부터 콘텐츠 아이템을 선택하기 위해 상기 액션을 실행하는 컴퓨팅 디바이스(136)와 연관된 하나 이상의 신호를 사용할 수 있다.
데이터 프로세싱 시스템(102)은 클라이언트 컴퓨팅 디바이스(136)가 컴퓨팅 디바이스(136)의 사용자에게 콘텐츠 아이템을 제시하게 하기 위해 선택된 콘텐츠 아이템을 클라이언트 컴퓨팅 디바이스(136)에 제공할 수 있다. 데이터 프로세싱 시스템(102)은 콘텐츠 아이템을 로컬 디지털 어시스턴트(144)에 제공하여 클라이언트 컴퓨팅 디바이스(136) 상에서 실행하는 로컬 디지털 어시스턴트(144)가 음성 출력과 같은 오디오 출력을 통해 콘텐츠 아이템을 재생하게 할 수 있다. 데이터 프로세싱 시스템(102)은 일부 경우에 콘텐츠 아이템을 애플리케이션(142)에 제공하여 애플리케이션(142)이 콘텐츠 아이템을 제시하게 할 수 있다. 예를 들어, 애플리케이션(142)은 오디오 출력 또는 시각적 출력을 사용하여 콘텐츠 아이템을 재생함으로써 콘텐츠 아이템을 출력할 수 있다. 애플리케이션(142) 또는 로컬 디지털 어시스턴트(144)는 애플리케이션에서 호출된 액션의 수행 동안, 액션의 실행 이전에 또는 액션의 실행 후에 콘텐츠 아이템을 제시하거나 출력할 수 있다. 일부 경우에, 컴퓨팅 디바이스(136)는 콘텐츠 아이템을 재생하거나 출력하기 위해 액션의 실행을 일시 중지할 수 있다. 일부 경우에, 컴퓨팅 디바이스(136)는 액션이 애플리케이션(142)에서 실행을 완료할 때까지 콘텐츠 아이템을 재생하기 위해 기다릴 수 있다. 일부 경우에, 컴퓨팅 디바이스(136)는 1초, 2초, 5초, 10초, 15초, 30초 또는 기타 시간과 같이 콘텐츠 아이템을 재생하기 위한 액션의 실행 완료 시 미리 결정된 시간을 기다릴 수 있다.
콘텐츠 아이템을 제시할 때, 데이터 프로세싱 시스템(102)은 콘텐츠 아이템과의 인터렉션 레벨의 표시를 수신할 수 있다. 데이터 프로세싱 시스템(102)은 콘텐츠 데이터(126) 데이터 구조의 성능 데이터로서 인터렉션의 레벨을 저장할 수 있다. 임베딩 추출기(112)와 같은 데이터 프로세싱 시스템(102)은 액션에 대응하는 비트 벡터를 업데이트하기 위해 인터렉션 레벨의 표시로 기계 학습 모델을 재트레이닝할 수 있다. 예를 들어, 선택된 콘텐츠가 잘 수행되지 않았다면, 임베딩 추출기(112)는 콘텐츠 아이템이 애플리케이션에서 액션의 향후 호출에 응답하여 선택되지 않을 수 있도록 비트 벡터로부터 콘텐츠 아이템을 제거하기 위해 액션에 대한 비트 벡터를 업데이트할 수 있다. 다른 예에서, 임베딩 추출기(112)는 콘텐츠 아이템이 애플리케이션에서 액션의 향후 호출에 응답하여 선택될 가능성을 줄이기 위해 콘텐츠 아이템의 순위 또는 점수를 낮추기 위해 비트 벡터를 업데이트할 수 있다. 따라서, 데이터 프로세싱 시스템(102)은 실시간 성능 피드백에 응답하여 딥러닝 모델(128)을 개선할 수 있고, 임베딩 추출기(112)는 재트레이닝된 모델에 기초하여 비트 벡터를 업데이트할 수 있다.
도 2는 구현예에 따른 서드파티 디지털 어시스턴트 액션에 대한 콘텐츠 매칭을 위한 비트 벡터를 생성하기 위한 예시적 방법의 도시이다. 방법(200)은 도 1에 도시된 하나 이상의 시스템 또는 컴포넌트에 의해 수행될 수 있고, 예를 들어 데이터 프로세싱 시스템을 포함한다. 데이터 프로세싱 시스템은 202에서 애플리케이션을 수신할 수 있다. 데이터 프로세싱 시스템은 애플리케이션 개발자로부터 애플리케이션을 수신할 수 있다. 애플리케이션 개발자는 데이터 프로세싱 시스템에 애플리케이션을 제공할 수 있다. 애플리케이션 개발자는 애플리케이션을 데이터 프로세싱 시스템에 업로드하거나 그렇지 않으면 애플리케이션을 데이터 프로세싱 시스템에 전송 또는 제공할 수 있다. 예를 들어, 애플리케이션은 이진 파일, 실행 파일, 애플리케이션 패키지 파일, 또는 데이터 프로세싱 시스템 또는 클라이언트 컴퓨팅 디바이스에 애플리케이션을 설치하고 실행하는 것을 용이하게 하는 다른 형식으로 저장될 수 있다.
204에서, 데이터 프로세싱 시스템은 애플리케이션의 액션을 식별하고 트랜스크립트를 생성할 수 있다. 데이터 프로세싱 시스템은 액션을 식별하기 위해 애플리케이션을 크롤링할 수 있다. 데이터 프로세싱 시스템은 애플리케이션을 설치하고 실행하여 액션을 식별할 수 있다. 데이터 프로세싱 시스템은 애플리케이션과의 대화를 시뮬레이션하여 애플리케이션에서 하나 이상의 대화 흐름을 생성하여 애플리케이션에서 액션을 호출하거나 실행할 수 있다. 액션은 애플리케이션 사용자와의 음성 기반 대화를 통해 호출될 수 있기 때문에 음성 어시스턴트 호환 액션이라고 할 수 있다. 액션은 사용자의 발언을 통해 호출될 수 있다. 액션은 데이터 프로세싱 시스템이나 클라이언트 컴퓨팅 디바이스 또는 둘 모두를 실행하는 디지털 어시스턴트에 의해 촉진되는 대화를 통해 식별되거나 선택될 수 있다.
데이터 프로세싱 시스템은 식별된 액션에 대한 트랜스트립트를 생성할 수 있다. 특정 애플리케이션에 대한 트랜스트립트를 생성할 수 있다. 트랜스트립트는 애플리케이션에서 식별된 다양한 액션과 액션 호출을 초래한 대화 흐름 또는 대화와 연관된 정보를 나타낼 수 있다. 예를 들어, 트랜스트립트는 액션을 호출한 시뮬레이션된 발언에 대한 정보를 포함할 수 있다. 트랜스크립트는 시뮬레이션된 사용자의 발언과 시뮬레이션된 사용자와 관련된 애플리케이션을 포함할 수 있다.
206에서, 데이터 프로세싱 시스템은 콘텐츠 데이터를 수신할 수 있다. 콘텐츠 데이터는 보충 콘텐츠 아이템을 참조할 수 있다. 데이터 프로세싱 시스템은 광고주와 같은 하나 이상의 보충 콘텐츠 제공자로부터 콘텐츠 데이터를 수신할 수 있다. 데이터 프로세싱 시스템은 콘텐츠 데이터를 저장하는 데이터 프로세싱 시스템에 액세스할 수 있는 데이터 저장소로부터 콘텐츠 데이터를 수신할 수 있다. 콘텐츠 데이터는 콘텐츠 아이템의 이력 또는 이전 제시와 연관된 성능 데이터 뿐만 아니라 디지털 컴포넌트 객체와 같은 콘텐츠 아이템을 포함할 수 있다.
208에서, 데이터 프로세싱 시스템은 트랜스크립트에 표시된 하나 이상의 액션에 대한 비트 벡터를 생성할 수 있다. 이를 위해 데이터 프로세싱 시스템은 이력적 콘텐츠 성능 데이터에 대해 트레이닝된 딥러닝 모델을 사용할 수 있다. 데이터 프로세싱 시스템은 애플리케이션의 액션의 호출에 응답하여 제시를 위한 후보 콘텐츠 아이템으로 콘텐츠 아이템의 서브세트를 나타내는 각 액션에 대한 임베딩 또는 비트 벡터 또는 비트 어레이를 생성하기 위해 애플리케이션 및 콘텐츠 데이터에 대한 트랜스트립트를 딥러닝 모델에 입력할 수 있다. 콘텐츠 아이템의 서브세트를 나타내는 비트 벡터를 생성함으로써, 데이터 프로세싱 시스템은 실시간 콘텐츠 선택 프로세스의 효율성과 정확성을 향상시킬 수 있다.
도 3은 구현예에 따른 서드파티 디지털 어시스턴트 액션의 호출에 응답하여 비트 벡터를 사용하여 콘텐츠를 선택하기 위한 예시적 방법의 도시이다. 방법(300)은 도 1에 도시된 하나 이상의 시스템 또는 컴포넌트에 의해 수행될 수 있고, 예를 들어 데이터 프로세싱 시스템을 포함한다. 302에서, 데이터 프로세싱 시스템은 인-애플리케이션 액션의 호출의 표시를 수신할 수 있다. 인-애플리케이션 액션은 음성 어시스턴트 호환 액션을 참조하거나 포함할 수 있다. 예를 들어, 액션은 클라이언트 컴퓨팅 디바이스의 사용자로부터의 음성 입력에 응답하여 트리거, 호출 또는 실행될 수 있다. 액션은 클라이언트 컴퓨팅 디바이스에서 실행되는 로컬 디지털 어시스턴트를 통해 호출될 수 있다. 액션은 클라이언트 컴퓨팅 디바이스 또는 데이터 프로세싱 시스템에서 실행되는 NLP 컴포넌트에 의해 호출되거나 파싱될 수 있다.
액션의 호출에 응답하여, 클라이언트 컴퓨팅 디바이스는 데이터 프로세싱 시스템에 표시를 전송할 수 있다. 데이터 프로세싱 시스템으로 전송되는 표시는 애플리케이션, 액션 또는 컴퓨팅 디바이스와 연관된 신호에 대한 정보를 포함할 수 있다. 예를 들어, 데이터 프로세싱 시스템에 전송된 정보는 액션에 대한 식별자 또는 애플리케이션의 식별자를 포함할 수 있다. 신호는 예를 들어 컴퓨팅 디바이스의 지리적 위치, 컴퓨팅 디바이스의 유형, 또는 컴퓨팅 디바이스에 연결된 프로필 또는 전자 계정과 연관된 정보를 포함할 수 있다. 일부 경우에, 신호는 콘텐츠 유형에 대한 선호도와 같은 컴퓨팅 디바이스와 연관된 선호도에 대한 정보를 포함할 수 있다.
클라이언트 컴퓨팅 디바이스는 로컬 디지털 어시스턴트, 애플리케이션, 또는 클라이언트 컴퓨팅 디바이스에서 실행되는 다른 컴포넌트를 통해 데이터 프로세싱 시스템에 표시를 전송할 수 있다. 예를 들어, 애플리케이션은 액션 호출에 응답하여 데이터 프로세싱 시스템에 표시를 전송할 수 있다. 로컬 디지털 어시스턴트는 액션의 호출을 검출하고, 컴퓨팅 디바이스와 연관된 다른 신호와 함께 액션 또는 애플리케이션의 식별자를 포함하는 데이터 프로세싱 시스템으로의 전송을 패키징할 수 있다.
304에서, 데이터 프로세싱 시스템은 애플리케이션에서의 액션에 대한 비트 벡터를 식별하기 위해 데이터 저장소에서 룩업을 수행할 수 있다. 데이터 프로세싱 시스템은 액션 및 애플리케이션의 식별자를 사용하여 룩업을 수행할 수 있다. 데이터 프로세싱 시스템은 비트 벡터로부터 후보 콘텐츠 아이템을 식별할 수 있다. 데이터 프로세싱 시스템은 클라이언트 컴퓨팅 디바이스로부터 수신된 정보를 사용하여 데이터 저장소에서 룩업을 수행하여 액션에 대해 구성된 비트 벡터를 검색하거나 액세스할 수 있다. 비트 벡터는 액션과 연관된 후보 콘텐츠 아이템을 포함할 수 있다.
308에서, 데이터 프로세싱 시스템은 비트 벡터로부터 최고 점수 후보 콘텐츠 아이템을 선택할 수 있다. 데이터 프로세싱 시스템은 각 콘텐츠 아이템에 대한 점수를 결정하기 위해 모든 점수화 기법을 사용할 수 있다. 데이터 프로세싱 시스템은 가장 높은 순위의 콘텐츠 아이템을 결정하기 위해 점수를 사용하여 콘텐츠 아이템의 순위를 매길 수 있다. 데이터 프로세싱 시스템은 컴퓨팅 디바이스로부터 수신된 신호에 기초하거나 이를 사용하여 각 콘텐츠 아이템에 대한 점수를 결정할 수 있다. 예를 들어, 콘텐츠 아이템이 클라이언트 컴퓨팅 디바이스의 지리적 위치와 동일한 지리적 위치와 연관되면, 데이터 프로세싱 시스템은 해당 콘텐츠 아이템에 클라이언트 컴퓨팅 디바이스의 지리적 위치와 연관되지 않을 수 있는 다른 콘텐츠 아이템보다 더 높은 점수를 매길 수 있다. 다른 예에서, 클라이언트 컴퓨팅 디바이스는 영어를 사용하도록 구성될 수 있고, 프랑스어로 된 콘텐츠 아이템은 영어로 된 콘텐츠 아이템에 비해 데이터 프로세싱 시스템에 의해 더 낮은 점수를 받을 수 있다.
310에서, 데이터 프로세싱 시스템은 클라이언트 컴퓨팅 디바이스가 콘텐츠 아이템을 제시하게 하기 위해 선택된 콘텐츠 아이템을 클라이언트 컴퓨팅 디바이스에 전송할 수 있다. 데이터 프로세싱 시스템은 콘텐츠 아이템을 제시하는 방법에 대한 지시를 포함할 수 있다. 데이터 프로세싱 시스템은 콘텐츠 아이템을 제시할 시기, 콘텐츠 아이템을 제시하는데 사용할 출력 디바이스 또는 콘텐츠 아이템에 허용된 인터렉티브 기능에 관한 지시를 제공할 수 있다. 데이터 프로세싱 시스템은 액션 호출의 표시를 전송한 클라이언트 컴퓨팅 디바이스의 컴포넌트에 콘텐츠 아이템을 제공할 수 있다. 예를 들어, 데이터 프로세싱 시스템은 클라이언트 컴퓨팅 디바이스에서 실행되는 애플리케이션 또는 로컬 디지털 어시스턴트에 콘텐츠 아이템을 반환할 수 있다.
312에서, 데이터 프로세싱 시스템은 콘텐츠 아이템의 성능을 결정할 수 있다. 데이터 프로세싱 시스템은 사용자가 콘텐츠 아이템과 인터렉션했는지 또는 콘텐츠 아이템과의 인터렉션 유형에 기초하여 콘텐츠 아이템의 성능을 결정할 수 있다. 성능은 사용자가 콘텐츠 아이템을 완전히 재생하도록 허용했는지 여부, 사용자가 콘텐츠 아이템의 재생을 건너뛰었는지 여부, 사용자가 콘텐츠 아이템을 닫았는지, 콘텐츠 아이템을 취소했는지, 콘텐츠 아이템을 빨리 감기했는지 또는 콘텐츠 아이템과 이와 다르게 인터렉션했는지 여부에 기초할 수 있다. 예를 들어, 콘텐츠 아이템이 오디오 클립이고 컴퓨팅 디바이스가 오디오 클립의 전체 지속시간을 재생했다면, 데이터 프로세싱 시스템은 콘텐츠 아이템이 잘 수행되었다고 결정할 수 있다. 그러나 사용자가 콘텐츠 아이템의 재생을 건너뛰면 데이터 프로세싱 시스템은 콘텐츠 아이템이 제대로 수행되지 않았다고 결정할 수 있다.
314에서, 데이터 프로세싱 시스템은 콘텐츠 아이템의 성능에 기초하여 기계 학습 모델을 업데이트할 수 있다. 데이터 프로세싱 시스템은 콘텐츠 아이템의 성능에 기초하여 비트 벡터를 생성하는데 사용되는 기계 학습 모델 또는 딥러닝 모델을 업데이트할 수 있다. 예를 들어 콘텐츠 아이템의 제대로 수행되지 않은 경우, 데이터 프로세싱 시스템은 비트 벡터에서 콘텐츠 아이템을 제거할 수 있다. 콘텐츠 아이템이 잘 수행되었다면, 데이터 프로세싱 시스템은 비트 벡터에서 콘텐츠 아이템을 후보 콘텐츠 아이템으로 유지하거나 후보 콘텐츠 아이템과 연관된 점수 또는 가중치를 증가시킬 수 있다.
도 4는 예시적 컴퓨터 시스템(400)의 블록도이다. 컴퓨터 시스템 또는 컴퓨팅 디바이스(400)는 시스템(100) 또는 데이터 프로세싱 시스템(102)과 같은 그 컴포넌트들 또는 클라이언트 컴퓨팅 디바이스(136)을 포함하거나 이들을 구현하는데 사용될 수 있다. 데이터 프로세싱 시스템(102) 또는 클라이언트 컴퓨팅 디바이스(136)는 지능형 개인 어시스턴트 또는 음성 기반 디지털 어시스턴트를 포함할 수 있다. 컴퓨팅 시스템(400)은 정보를 통신하기 위한 버스(405) 또는 다른 통신 컴포넌트 및 정보를 프로세싱하기 위해 버스(405)에 연결된 프로세서(410) 또는 프로세싱 회로를 포함한다. 컴퓨팅 시스템(400)은 또한 정보를 프로세싱하기 위해 버스에 연결된 하나 이상의 프로세서들(410) 또는 프로세싱 회로들을 포함할 수 있다. 컴퓨팅 시스템(400)은 또한 정보 및 프로세서(410)에 의해 실행될 명령어들을 저장하기 위해 버스(405)에 연결된 랜덤 액세스 메모리(RAM) 또는 다른 동적 저장 디바이스와 같은 메인 메모리(415)를 포함한다. 메인 메모리(415)는 데이터 저장소(120)이거나 데이터 저장소(145)를 포함할 수 있다. 메인 메모리(415)는 또한 프로세서(410)에 의한 명령어들의 실행 동안 위치 정보, 임시 변수 또는 다른 중간 정보를 저장하기 위해 사용될 수 있다. 컴퓨팅 시스템(400)은 프로세서(410)를 위한 정적 정보 및 명령어들을 저장하기 위해 버스(405)에 연결된 ROM(read-only memory)(420) 또는 다른 정적 저장 디바이스를 더 포함할 수 있다. 솔리드 스테이트 디바이스(SSD), 자기 디스크 또는 광 디스크와 같은 저장 디바이스(425)는 정보 및 명령어들을 영구적으로 저장하기 위해 버스(405)에 연결될 수 있다. 저장 디바이스(425)는 데이터 저장소(120)를 포함하거나 데이터 저장소(145)의 일부일 수 있다.
컴퓨팅 시스템(400)은 버스(405)를 통해, 사용자에게 정보를 디스플레이하기 위한 액정 디스플레이 또는 액티브 매트릭스 디스플레이와 같은 디스플레이(435)에 연결될 수 있다. 정보 및 명령 선택을 프로세서(410)와 통신하기 위해 영숫자 및 다른 키를 포함하는 키보드와 같은 입력 디바이스(430)가 버스(405)에 연결될 수 있다. 입력 디바이스(430)는 터치 스크린 디스플레이(435)를 포함할 수 있다. 입력 디바이스(430)는 또한 방향 정보 및 명령 선택을 프로세서(410)와 통신하고 디스플레이(435) 상의 커서 움직임을 제어하기 위한 마우스, 트랙볼 또는 커서 방향 키와 같은 커서 제어를 포함할 수 있다. 디스플레이(435)는 예를 들면, 데이터 프로세싱 시스템(102) 또는 클라이언트 컴퓨팅 디바이스(136) 또는 도 1의 다른 컴포넌트의 일부일 수 있다.
본 명세서에 기술된 프로세스, 시스템 및 방법은 프로세서(410)가 메인 메모리(415)에 포함된 명령어들의 배열을 실행하는 것에 응답하여 컴퓨팅 시스템(400)에 의해 구현될 수 있다. 이러한 명령어들은 저장 디바이스(425)와 같은 다른 컴퓨터 판독 가능 매체로부터 메인 메모리(415)로 판독될 수 있다. 메인 메모리(415)에 포함된 명령어들의 배열의 실행은 컴퓨팅 시스템(400)으로 하여금 본 명세서에 기술된 예시적 프로세스들을 수행하게 한다. 멀티-프로세싱 배열에서 하나 이상의 프로세서들은 또한 메인 메모리(415)에 포함된 명령어들을 실행하기 위해 이용될 수 있다. 본 명세서에 기술된 시스템 및 방법과 함께 소프트웨어 명령어들 대신에 또는 소프트웨어 명령어들과 조합하여 유선 회로가 사용될 수 있다. 본 명세서에 기술된 시스템 및 방법은 하드웨어 회로 및 소프트웨어의 임의의 특정 조합으로 한정되지 않는다.
예시적 컴퓨팅 시스템이 도 4에 설명되었지만. 본 명세서에 기술된 동작을 포함하는 본 발명은 본 명세서에 개시된 구조 및 그들의 구조적 균등물 또는 그들 중 하나 이상의 조합을 포함하는 디지털 전자회로 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어에서 구현될 수 있다.
본 명세서에서 논의된 시스템들이 사용자들에 관한 개인 정보를 수집하거나 또는 개인 정보를 사용하는 경우들에 있어서, 사용자들에게 프로그램들 또는 구성들이 개인 정보 예를 들면, 사용자의 소셜 네트워크, 소셜 액션들 또는 활동들, 사용자의 선호들 또는 사용자의 위치에 관한 정보를 수집할 것인지 여부를 제어할, 사용자와 더 관련된 콘텐츠 서버 또는 기타 데이터 프로세싱 시스템으로부터의 콘텐츠를 수신할지 또는 어떻게 수신할지 제어할 기회가 제공될 수 있다. 추가로, 특정 데이터는 그것이 저장되거나 사용되기 전에 하나 이상의 다양한 방식들로 익명화되어, 파라미터들을 생성하는 경우 개인적으로 식별가능한 정보는 제거되도록 한다. 예를 들면, 사용자의 신원은 사용자에 관한 개인적으로 식별가능한 정보가 결정될 수 없도록 익명화되거나 또는 사용자의 지리적 위치는 위치 정보가 획득된 곳에서 일반화되어(시, 우편번호 또는 주 레벨로), 사용자의 특정한 위치가 결정될 수 없도록 한다. 따라서, 사용자는 그 또는 그녀에 관한 정보가 어떻게 수집되는지 그리고 콘텐츠 서버에 의해 사용되는지에 관한 제어를 가질 수 있다.
본 발명과 본 명세서에 기술된 동작들은 본 발명에 개시된 구조들 및 그들의 구조적 균등물들 또는 그들 중 하나 이상의 조합들을 포함하는 디지털 전자회로 또는 컴퓨터 소프트웨어, 펌웨어 또는 하드웨어에서 구현될 수 있다. 본 명세서에 기술된 본 발명은 하나 이상의 컴퓨터 프로그램들 예를 들어, 데이터 프로세싱 장치에 의해 실행 또는 데이터 프로세싱 장치의 동작을 제어하기 위한 컴퓨터 저장 매체에 인코딩된 컴퓨터 프로그램 명령어들의 하나 이상의 회로들로서 구현될 수 있다. 대안적으로 또는 추가로, 프로그램 명령어들은 데이터 프로세싱 장치에 의해 실행하기 위한 적절한 수신기 장치에 전송하기 위한 정보를 인코딩하기 위해 생성된 인공적으로 생성된 전파된 신호 즉, 기계-생성 전기, 광학 또는 전자기적 신호에 인코딩될 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 저장 디바이스, 컴퓨터 판독가능 저장 기판, 랜덤 또는 직렬 액세스 메모리 어레이 또는 디바이스 또는 그들 중 하나 이상의 조합이거나 그에 포함될 수 있다. 컴퓨터 저장 매체는 전파된 신호가 아니지만, 컴퓨터 저장 매체는 인공적으로 생성된 전파된 신호에 인코딩된 컴퓨터 프로그램 명령어들의 소스 또는 목적지일 수 있다. 또한, 컴퓨터 저장 매체는 하나 이상의 별개의 컴포넌트들 또는 매체(예를 들면, 다수의 CD들, 디스크들, 또는 다른 저장 디바이스들)이거나 또는 그에 포함될 수 있다. 본 명세서에 기술된 동작들은 하나 이상의 컴퓨터 판독가능 저장 디바이스들에 저장된 또는 다른 소스들로부터 수신된 데이터에서 데이터 프로세싱 장치에 의해 수행되는 동작들로서 구현될 수 있다.
용어 "데이터 프로세싱 시스템", "컴퓨팅 디바이스", "컴포넌트" 또는 "데이터 프로세싱 장치"는 예시로서 프로그래머블 프로세서, 컴퓨터, 시스템 온 칩 또는 앞서 언급된 것들 중 다수의 것들 또는 조합들을 포함하는 데이터를 프로세싱하기 위한 다양한 장치, 디바이스들 및 기계들을 포함한다. 상기 장치는 특수 목적 논리 회로, 예를 들어 FPGA(field programmable gate array) 또는 ASIC(application specific integrated circuit)을 포함할 수 있다. 또한, 장치는 하드웨어 이외에 문제의 컴퓨터 프로그램에 대한 실행 환경을 생성하는 코드, 예를 들어 프로세서 펌웨어, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 크로스-플랫폼 런타임(cross-platform runtime) 실행 환경, 가상 머신 또는 그들 중 하나 이상의 조합을 구성하는 코드를 포함할 수 있다. 장치 및 실행 환경은 웹 서비스들, 분산 컴퓨팅 및 그리드 컴퓨팅 인프라와 같은 다양한 컴퓨팅 모델 인프라를 실현할 수 있다. 예를 들면, 액션 크롤러(110), 임베딩 추출기(112) 및 다른 컴포넌트들은 하나 이상의 데이터 프로세싱 장치, 시스템, 컴퓨팅 디바이스 또는 프로세서를 포함하거나 공유할 수 있다.
컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 애플리케이션, 앱, 스크립트 또는 코드로도 알려져 있음)은 컴파일된 또는 인터프리트된 언어들, 선언적 또는 절차적 언어들을 포함하는 임의의 형태의 프로그래밍 언어로 작성될 수 있으며, 독립 실행형 프로그램으로서 또는 모듈, 컴포넌트, 서브루틴, 객체로서 또는 컴퓨팅 환경에서 사용하기에 적합한 기타 단위를 포함하는 임의의 형태로 배포될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 대응할 수 있다. 컴퓨터 프로그램은 다른 프로그램들이나 데이터, 예를 들어, 마크업 언어 문서에 저장된 하나 이상의 스크립트들을 가지는 파일의 부분에, 문제되는 프로그램 전용 단일의 파일에 또는 다수의 조정된 파일들, 예를 들어, 하나 이상의 모듈들, 서브프로그램 또는 코드의 일부를 저장하는 파일들에 저장될 수 있다. 컴퓨터 프로그램은 하나의 컴퓨터 또는 하나의 사이트에 위치되어 있거나 다수의 사이트들에 걸쳐서 분산되어 있고 통신 네트워크에 의해 상호연결된 다수의 컴퓨터들에서 실행되도록 배포될 수 있다.
본 명세서에 기술된 프로세스들 및 논리 흐름들은 입력 데이터를 동작하고 출력을 생성함으로써 액션들을 수행하기 위해 하나 이상의 컴퓨터 프로그램들(예: 데이터 프로세싱 시스템(102)의 컴포넌트들)을 실행하는 하나 이상의 프로그래머블 프로세서들에 의해 수행될 수 있다. 프로세스들 및 논리 흐름들은 또한 FPGA 또는 ASIC와 같은 특수 목적 논리 회로에 의해 수행될 수 있고, 장치는 또한 특수 목적 논리 회로로서 구현될 수 있다. 컴퓨터 프로그램 명령어들 및 데이터를 저장하기에 적합한 디바이스들은 예를 들어, EPROM, EEPROM 및 플래시 메모리 디바이스들과 같은 반도체 메모리 디바이스들; 예를 들어, 내부 하드 디스크들 또는 이동식 디스크들과 같은 자기 디스크들; 및 CD-ROM 및 DVD-ROM 디스크들을 포함하는 모든 형태의 비휘발성 메모리, 매체 및 메모리 디바이스들을 포함한다. 프로세서 및 메모리는 특수 목적 논리 회로에 의해 보충되거나 그 안에 통합될 수 있다.
본 명세서에서 기술된 발명은 예를 들어 데이터 서버와 같은 백엔드 컴포넌트, 애플리케이션 서버와 같은 미들웨어 컴포넌트 또는 그래픽 사용자 인터페이스를 가지는 사용자 컴퓨터 또는 사용자가 본 명세서에 기술된 본 발명의 구현예와 인터렉션할 수 있는 웹 브라우저와 같은 프론트엔드 컴포넌트 또는 하나 이상의 상기 백엔드, 미들웨어 또는 프론트엔드 컴포넌트들의 조합을 포함하는 컴퓨팅 시스템에서 구현될 수 있다. 시스템의 컴포넌트들은 디지털 데이터 통신의 임의의 형태 또는 매체, 예를 들어 통신 네트워크에 의해 상호연결될 수 있다. 통신 네트워크들의 예는 근거리 통신망("LAN") 및 광역 통신망("WAN"), 인터-네트워크(예를 들어, 인터넷) 및 피어투피어 네트워크(예를 들어, 애드혹 피어투피어 네트워크)를 포함한다.
시스템(100) 또는 시스템(400)과 같은 컴퓨팅 시스템은 클라이언트 및 서버를 포함할 수 있다. 사용자와 서버는 일반적으로 서로 멀리 떨어져 있으며, 일반적으로 통신 네트워크(예: 네트워크(105)를 통해 인터렉션한다. 사용자와 서버의 관계는 각각의 컴퓨터에서 실행되고 서로 사용자-서버 관계를 갖는 컴퓨터 프로그램에 의해 발생한다. 일부 구현예에서, 서버는(예를 들어, 사용자 디바이스와 인터렉션하는 사용자에게 데이터를 디스플레이하고 사용자 입력을 수신하기 위해) 사용자 디바이스에 데이터(예를 들어, 디지털 컴포넌트를 표현하는 데이터 패킷들)를 전송한다. 클라이언트 디바이스에서 생성된 데이터(예를 들어, 사용자 인터렉션의 결과)는 서버에서 클라이언트 디바이스로부터 수신될 수 있다(예를 들어, 클라이언트 컴퓨팅 디바이스(136) 또는 보조 디지털 콘텐츠 제공자 디바이스(132)로부터 데이터 프로세싱 시스템(102)에 의해 수신).
동작들이 특정한 순서로 도면에 도시되었지만, 상기 동작들은 도시된 특정한 순서로 또는 시계열적 순서로 수행되어야 함을 요구하는 것이 아니며, 모든 도시된 동작들이 수행되어야만 하는 것은 아니다. 본 명세서에 기술된 액션들은 다른 순서로 수행될 수 있다.
다양한 시스템 컴포넌트들의 분리는 모든 구현예들에서의 분리를 필요로 하지 않으며, 기술된 프로그램 컴포넌트들은 단일 하드웨어 또는 소프트웨어 제품에 포함될 수 있다. 예를 들어, 자연어 프로세서(106) 또는 인터페이스(104)는 단일 컴포넌트, 앱 또는 프로그램, 또는 하나 이상의 프로세싱 회로를 갖는 논리 디바이스이거나 또는 데이터 프로세싱 시스템(102)의 하나 이상의 서버의 일부일 수 있다.
일부 예시적 구현예들을 설명하였지만, 전술한 예는 예시적인 것이며 제한적인 것은 아니며 예시로서 제공되었다. 특히, 본 명세서에 제시된 많은 예들이 방법 동작들 또는 시스템 엘리먼트들의 특정 조합을 포함하지만, 그러한 동작들 및 엘리먼트들은 동일한 목적을 달성하기 위해 다른 방식으로 결합될 수 있다. 하나의 구현예와 관련하여 논의된 동작, 엘리먼트 및 구성들은 다른 구현 또는 구현예들에서 유사한 역할로부터 배제되지 않는다.
본 명세서에서 사용된 문구 및 용어는 설명의 목적을 위한 것이며 제한적인 것으로 간주되어서는 안된다. "포함(including)" "포함(comprising)" "포함(having)" "포함(containing)" "포함(involving)" "포함(characterized by)" "포함(characterized in that)" 및 본 명세서에서 이들의 변형들은 열거된 아이템들, 그 균등물 및 추가 아이템들뿐만 아니라 배타적으로 열거된 아이템들로 구성되는 대안적 구현예들을 포함하는 것을 의미한다. 일 구현예에서, 본 명세서에 기술된 시스템 및 방법은 설명된 엘리먼트들, 동작들 또는 컴포넌트들 중 하나, 하나 이상의 조합 또는 전부로 구성된다.
단수형으로 본 명세서에서 언급된 시스템 및 방법의 구현 또는 엘리먼트에 관한 참조는 이들 엘리먼트들 복수형을 포함하는 구현예들을 포함할 수 있고, 복수형으로 본 명세서에서 언급된 임의의 구현예 또는 엘리먼트에 대한 임의의 참조는 단수형 엘리먼트를 포함하는 구현예들을 포함할 수 있다. 단수 또는 복수 형태의 참조는 현재 개시된 시스템 또는 방법, 그들의 컴포넌트들, 동작 또는 엘리먼트를 단수 또는 복수 구성으로 제한하려는 것이 아니다. 임의의 정보, 동작 또는 엘리먼트에 기초한 임의의 동작 또는 엘리먼트에 대한 참조는 해당 동작 또는 엘리먼트가 적어도 부분적으로 임의의 정보, 동작 또는 엘리먼트에 기초하는 구현예를 포함할 수 있다.
본 명세서에 개시된 임의의 구현예는 임의의 다른 구현예 또는 실시예와 결합될 수 있으며, "구현예", "일부 구현예", "일 구현예" 등은 반드시 상호 배타적이지 않고, 구현예와 관련하여 기술된 특정한 구성, 구조 또는 특성이 적어도 하나의 구현예 또는 실시예에 포함될 수 있음을 나타낸다. 본 명세서에 사용된 용어들은 반드시 모두 동일한 구현예를 지칭하는 것은 아니다. 임의의 구현예는 본 명세서에 개시된 양태들 및 구현예들과 일관된 방식으로 임의의 다른 구현예와 포괄적으로 또는 배타적으로 결합될 수 있다.
"또는"에 대한 참조는 "또는"을 사용하여 기술된 임의의 용어가 기술된 용어들 중 하나, 하나 이상 및 전부를 나타낼 수 있도록 포괄적인 것으로 해석될 수 있다. 결합 용어들의 리스트 중 적어도 하나에 대한 참조는 하나의, 하나 이상의, 및 모든 설명된 용어들 중 어느 하나를 나타내는 포괄적인 또는으로 해석될 수 있다. 예를 들어, "A 및 B 중 적어도 하나"에 대한 참조는 A 및 B 뿐만 아니라 A와 B 둘 모두를 포함할 수 있다. "포함하는" 또는 다른 개방 용어와 함께 사용되는 이러한 참조는 추가적 아이템들을 포함할 수 있다.
도면, 상세한 설명 또는 청구범위의 기술적 구성에 참조 부호가 있는 경우, 상기 참조 부호는 도면, 상세한 설명 및 청구 범위의 명료성을 증가시키기 위해 포함되었다. 따라서, 참조 부호들 또는 그것들의 부재는 임의의 청구항 엘리먼트들의 범위에 대해 어떠한 제한 효과도 가지지 않는다.
본 명세서에 기술된 시스템 및 방법은 그 특성을 벗어나지 않고 다른 특정 형태로 구체화될 수 있다. 전술한 구현예들은 기술된 시스템 및 방법을 제한하는 것이라기 보다는 예시적인 것이다. 따라서, 본 명세서에 기술된 시스템 및 방법의 범위는 상술한 설명보다는 첨부된 청구범위에 의해 표시되며, 청구범위의 의미 및 범위 내에서의 변경들도 그 안에 포함된다.

Claims (20)

  1. 시스템으로서,
    메모리 및 하나 이상의 프로세서를 포함하는 데이터 프로세싱 시스템을 포함하며, 상기 데이터 프로세싱 시스템은:
    애플리케이션 개발자로부터 음성 어시스턴트 호환 액션으로 구성된 애플리케이션을 수신하고;
    상기 애플리케이션이 음성 입력에 응답하여 수행하도록 구성된 복수의 액션을 식별하고;
    복수의 서드파티 컴퓨팅 디바이스에 의해 제공되는 복수의 콘텐츠 아이템을 식별하고;
    기계 학습 모델 및 복수의 콘텐츠 아이템에 대한 성능 데이터를 통해, 상기 복수의 액션에 대응하는 복수의 비트 벡터를 생성하고, 상기 복수의 비트 벡터는 상기 복수의 액션의 각 액션에 대한 복수의 후보 콘텐츠 아이템을 표시하며; 그리고
    상기 애플리케이션의 액션을 실행하는 컴퓨팅 디바이스에 대한 콘텐츠에 대한 요청에 응답하여, 상기 액션에 대응하는 복수의 비트 벡터 중 한 비트 벡터에 기초하여 콘텐츠 아이템을 선택하는, 시스템.
  2. 청구항 1에 있어서,
    상기 데이터 프로세싱 시스템은 상기 애플리케이션이 음성 입력에 응답하여 수행하도록 구성된 복수의 액션을 식별하기 위해 상기 애플리케이션을 크롤링하는, 시스템.
  3. 청구항 1 또는 청구항 2에 있어서,
    상기 데이터 프로세싱 시스템은 상기 복수의 액션을 식별하기 위해 애플리케이션과의 하나 이상의 대화를 시뮬레이션하는, 시스템.
  4. 임의의 선행하는 청구항에 있어서,
    상기 데이터 프로세싱 시스템은 상기 애플리케이션이 하나 이상의 대화에 따라 수행하도록 구성된 상기 복수의 액션을 포함하는 트랜스트립트를 생성하기 위해 상기 애플리케이션을 크롤링하고, 상기 트랜스트립트는 복수의 액션들 및 상기 복수의 액션들을 호출하는데 사용된 하나 이상의 대화에 관한 정보를 저장하는, 시스템.
  5. 임의의 선행하는 청구항에 있어서, 상기 복수의 콘텐츠 아이템에 대한 성능 데이터는 하나 이상의 컴퓨팅 디바이스를 통한 복수의 콘텐츠 아이템 각각의 이전 제시에 응답한 상기 복수의 콘텐츠 아이템 각각과의 인터렉션의 유형을 나타내는, 시스템.
  6. 청구항 5에 있어서, 상기 인터렉션의 유형은 건너뛰기, 빨리감기 또는 제시의 지속시간 중 적어도 하나를 포함하는, 시스템.
  7. 임의의 선행하는 청구항에 있어서, 상기 데이터 프로세싱 시스템은:
    상기 액션의 호출의 표시를 컴퓨팅 디바이스로부터 수신하고;
    상기 액션에 대응하는 비트 벡터를 검색하기 위해 상기 복수의 비트 벡터를 저장하는 데이터 저장소에서 상기 액션으로 룩업을 수행하고;
    상기 액션에 대한 비트 벡터로부터, 복수의 최상위 후보 콘텐츠 아이템을 식별하고; 그리고
    상기 액션에 대한 비트 벡터로부터 식별된 상기 복수의 최상위 후보 콘텐츠 아이템으로부터 상기 콘텐츠 아이템을 선택하는, 시스템.
  8. 청구항 7에 있어서, 상기 데이터 프로세싱 시스템은:
    실시간 콘텐츠 선택 프로세스를 통해, 상기 복수의 최상위 후보 콘텐츠 아이템들로부터 콘텐츠 아이템을 선택하기 위해 상기 액션을 실행하는 컴퓨팅 디바이스와 연관된 하나 이상의 신호를 사용하는, 시스템.
  9. 임의의 선행하는 청구항에 있어서, 상기 데이터 프로세싱 시스템은:
    상기 액션에 응답하여 선택되고 상기 컴퓨팅 디바이스를 통해 제시되는 콘텐츠 아이템과의 인터렉션 레벨의 표시를 수신하고; 그리고
    상기 액션에 대응하는 비트 벡터를 업데이트하기 위해 상기 인터렉션의 레벨의 표시로 기계 학습 모델을 다시 트레이닝하는, 시스템.
  10. 임의의 선행하는 청구항에 있어서, 상기 복수의 비트 벡터 각각은 가장 높은 순위의 콘텐츠 아이템에 대응하는 상기 복수의 콘텐츠 아이템의 서브세트를 저장하는, 시스템.
  11. 방법으로서,
    메모리 및 하나 이상의 프로세서를 포함하는 데이터 프로세싱 시스템에 의해, 애플리케이션 개발자로부터 음성 어시스턴트 호환 액션으로 구성된 애플리케이션을 수신하는 단계;
    데이터 프로세싱 시스템에 의해, 상기 애플리케이션이 음성 입력에 응답하여 수행하도록 구성된 복수의 액션을 식별하는 단계;
    데이터 프로세싱 시스템에 의해, 복수의 서드파티 컴퓨팅 디바이스에 의해 제공되는 복수의 콘텐츠 아이템을 식별하는 단계;
    데이터 프로세싱 시스템에 의해, 기계 학습 모델 및 복수의 콘텐츠 아이템에 대한 성능 데이터를 통해, 상기 복수의 액션에 대응하는 복수의 비트 벡터를 생성하는 단계, 상기 복수의 비트 벡터는 상기 복수의 액션의 각 액션에 대한 복수의 후보 콘텐츠 아이템을 표시하며; 및
    데이터 프로세싱 시스템에 의해, 상기 애플리케이션의 액션을 실행하는 컴퓨팅 디바이스에 대한 콘텐츠에 대한 요청에 응답하여, 상기 액션에 대응하는 복수의 비트 벡터 중 한 비트 벡터에 기초하여 콘텐츠 아이템을 선택하는 단계를 포함하는, 방법.
  12. 청구항 11에 있어서,
    데이터 프로세싱 시스템에 의해, 애플리케이션이 음성 입력에 응답하여 수행하도록 구성된 복수의 액션을 식별하기 위해 상기 애플리케이션을 크롤링하는 단계를 포함하는, 방법.
  13. 청구항 11 또는 청구항 12에 있어서,
    데이터 프로세싱 시스템에 의해, 상기 복수의 액션을 식별하기 위해 애플리케이션과의 하나 이상의 대화를 시뮬레이션하는 단계를 포함하는, 방법.
  14. 청구항 11 내지 13 중 어느 한 항에 있어서,
    데이터 프로세싱 시스템에 의해, 상기 애플리케이션이 하나 이상의 대화에 따라 수행하도록 구성된 상기 복수의 액션을 포함하는 트랜스트립트를 생성하기 위해 상기 애플리케이션을 크롤링하는 단계를 포함하고, 상기 트랜스트립트는 복수의 액션들 및 상기 복수의 액션들을 호출하는데 사용된 하나 이상의 대화에 관한 정보를 저장하는, 방법.
  15. 청구항 11 내지 14 중 어느 한 항에 있어서, 상기 복수의 콘텐츠 아이템에 대한 성능 데이터는 하나 이상의 컴퓨팅 디바이스를 통한 복수의 콘텐츠 아이템 각각의 이전 제시에 응답한 상기 복수의 콘텐츠 아이템 각각과의 인터렉션의 유형을 나타내는, 방법.
  16. 청구항 15에 있어서, 상기 인터렉션의 유형은 건너뛰기, 빨리감기 또는 제시의 지속시간 중 적어도 하나를 포함하는, 방법.
  17. 청구항 11 내지 16 중 어느 한 항에 있어서,
    데이터 프로세싱 시스템에 의해, 상기 액션의 호출의 표시를 컴퓨팅 디바이스로부터 수신하는 단계;
    데이터 프로세싱 시스템에 의해, 상기 액션에 대응하는 비트 벡터를 검색하기 위해 상기 복수의 비트 벡터를 저장하는 데이터 저장소에서 상기 액션으로 룩업을 수행하는 단계;
    데이터 프로세싱 시스템에 의해, 상기 액션에 대한 비트 벡터로부터, 복수의 최상위 후보 콘텐츠 아이템을 식별하는 단계; 및
    데이터 프로세싱 시스템에 의해, 상기 액션에 대한 비트 벡터로부터 식별된 상기 복수의 최상위 후보 콘텐츠 아이템으로부터 상기 콘텐츠 아이템을 선택하는 단계를 포함하는, 방법.
  18. 청구항 17에 있어서,
    데이터 프로세싱 시스템에 의해, 실시간 콘텐츠 선택 프로세스를 통해, 상기 복수의 최상위 후보 콘텐츠 아이템들로부터 콘텐츠 아이템을 선택하기 위해 상기 액션을 실행하는 컴퓨팅 디바이스와 연관된 하나 이상의 신호를 사용하는 단계를 포함하는, 방법.
  19. 청구항 11 내지 18 중 어느 한 항에 있어서,
    데이터 프로세싱 시스템에 의해, 상기 액션에 응답하여 선택되고 상기 컴퓨팅 디바이스를 통해 제시되는 콘텐츠 아이템과의 인터렉션 레벨의 표시를 수신하는 단계; 및
    데이터 프로세싱 시스템에 의해, 상기 액션에 대응하는 비트 벡터를 업데이트하기 위해 상기 인터렉션의 레벨의 표시로 기계 학습 모델을 다시 트레이닝하는 단계를 포함하는, 방법.
  20. 청구항 11 내지 19 중 어느 한 항에 있어서, 상기 복수의 비트 벡터 각각은 가장 높은 순위의 콘텐츠 아이템에 대응하는 상기 복수의 콘텐츠 아이템의 서브세트를 저장하는, 방법.
KR1020227029138A 2021-07-19 2021-07-19 서드파티 디지털 어시스턴트 액션을 위한 비트 벡터 기반 콘텐츠 매칭 KR20230014680A (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2021/042231 WO2023003537A1 (en) 2021-07-19 2021-07-19 Bit vector-based content matching for third-party digital assistant actions

Publications (1)

Publication Number Publication Date
KR20230014680A true KR20230014680A (ko) 2023-01-30

Family

ID=77301010

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227029138A KR20230014680A (ko) 2021-07-19 2021-07-19 서드파티 디지털 어시스턴트 액션을 위한 비트 벡터 기반 콘텐츠 매칭

Country Status (5)

Country Link
EP (1) EP4143674A1 (ko)
JP (1) JP2023535102A (ko)
KR (1) KR20230014680A (ko)
CN (1) CN116075885A (ko)
WO (1) WO2023003537A1 (ko)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6499013B1 (en) 1998-09-09 2002-12-24 One Voice Technologies, Inc. Interactive user interface using speech recognition and natural language processing
US10573298B2 (en) 2018-04-16 2020-02-25 Google Llc Automated assistants that accommodate multiple age groups and/or vocabulary levels
EP4361777A2 (en) * 2018-05-04 2024-05-01 Google LLC Generating and/or adapting automated assistant content according to a distance between user(s) and an automated assistant interface

Also Published As

Publication number Publication date
CN116075885A (zh) 2023-05-05
JP2023535102A (ja) 2023-08-16
WO2023003537A1 (en) 2023-01-26
EP4143674A1 (en) 2023-03-08

Similar Documents

Publication Publication Date Title
US11720635B2 (en) Providing command bundle suggestions for an automated assistant
US9633004B2 (en) Better resolution when referencing to concepts
KR102603717B1 (ko) 네트워크 시스템에서 도메인-특정 모델의 생성
JP7171911B2 (ja) ビジュアルコンテンツからのインタラクティブなオーディオトラックの生成
US11848009B2 (en) Adaptive interface in a voice-activated network
KR101891498B1 (ko) 대화형 ai 에이전트 시스템에서 멀티 도메인 인텐트의 혼재성을 해소하는 멀티 도메인 서비스를 제공하는 방법, 컴퓨터 장치 및 컴퓨터 판독가능 기록 매체
JP7311653B2 (ja) ネットワークにおけるデジタルコンテンツの音声ベースの検索
US20220308987A1 (en) Debugging applications for delivery via an application delivery server
KR20230014680A (ko) 서드파티 디지털 어시스턴트 액션을 위한 비트 벡터 기반 콘텐츠 매칭
US11385990B2 (en) Debugging applications for delivery via an application delivery server
CN110720098B (zh) 语音激活网络中的自适应接口
KR102120749B1 (ko) 대화 이해 ai 시스템에 의하여, 키워드 기반 북마크 검색 서비스 제공을 위하여 북마크 정보를 저장하는 방법 및 컴퓨터 판독가능 기록 매체