KR20220116039A - 클라이언트 디바이스에 의한 컴퓨터 자산의 활동 예측, 프리페칭 및 프리로딩을 위한 방법 및 시스템 - Google Patents

클라이언트 디바이스에 의한 컴퓨터 자산의 활동 예측, 프리페칭 및 프리로딩을 위한 방법 및 시스템 Download PDF

Info

Publication number
KR20220116039A
KR20220116039A KR1020227025474A KR20227025474A KR20220116039A KR 20220116039 A KR20220116039 A KR 20220116039A KR 1020227025474 A KR1020227025474 A KR 1020227025474A KR 20227025474 A KR20227025474 A KR 20227025474A KR 20220116039 A KR20220116039 A KR 20220116039A
Authority
KR
South Korea
Prior art keywords
machine learning
learning model
communication device
computer
model
Prior art date
Application number
KR1020227025474A
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 KR20220116039A publication Critical patent/KR20220116039A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

솔루션은 기계 학습 모델을 구축 또는 트레이닝하고 기계 학습 모델을 복수의 통신 디바이스에 배포하도록 구성된 서버에 기계 학습 모델을 업로드하도록 구성된다. 솔루션은 기계 학습 모델과 기계 학습 생산 파이프라인을 구축하도록 구성된 기계 학습 모델 빌더를 포함할 수 있다. 기계 학습 생산 파이프라인은 기계 학습 모델을 트레이닝하고 기계 학습 모델을 웹 브라우저 호환 포멧으로 변환하고 변환된 기계 학습 모델을 서버에 업로드하도록 구성될 수 있다. 기계 학습 모델은 입력으로서 복수의 통신 디바이스의 하나의 통신 디바이스에 대한 하나 이상의 이전 활동의 시퀀스를 수신하고, 하나의 통신 디바이스에 대한 하나 이상의 이전 활동의 시퀀스를 분석하고, 하나 이상의 이전 활동의 시퀀스 분석에 기초하여 하나의 통신 디바이스에 대한 다음 활동을 예측하고, 컴퓨터 자산을 찾기 위해 상기 예측된 다음 활동에 기초하여 컴퓨터 네트워크를 선제적으로 검색하고, 그리고 찾은 컴퓨터 자산을 하나의 통신 디바이스의 저장소에 프리로드하도록 구성될 수 있다.

Description

클라이언트 디바이스에 의한 컴퓨터 자산의 활동 예측, 프리페칭 및 프리로딩을 위한 방법 및 시스템
본 개시는 통신 디바이스상의 하나 이상의 이전 활동에 기초하여 다음 활동을 예측하고, 컴퓨터 네트워크를 검색하고, 예측된 활동에 기초하여 통신 디바이스에 컴퓨터 자산을 프리페치(prefetch)하거나 프리로드(preload)하기 위한 방법, 시스템 및 컴퓨터 프로그램을 포함하는 컴퓨터 자산 검색 및 전달 솔루션에 관한 것이다.
인터넷과 같은 컴퓨터 네트워크 환경에서, 통신 디바이스는 웹 검색 및 검색 기술을 사용하여 인터넷상의 웹페이지들을 찾고 호스팅 웹사이트로부터 통신 디바이스로 웹페이지들을 다운로드할 수 있다. 그런 다음 웹페이지들은 통신 디바이스에 포함된 디스플레이 디바이스와 같은 디스플레이 디바이스에서 렌더링될 수 있다.
너무 자주, 웹 검색 및 검색 기술은 상당한 대기시간(latency)을 경험할 수 있고 웹 페이지를 찾거나 통신 디바이스에 로드하는데 오랜 시간이 걸릴 수 있다. 이것은 예를 들어 통신 디바이스가 인터넷 서비스 제공자(ISP) 또는 웹사이트에 대한 통신 링크가 포화되거나 과부하가 걸리고, 대역폭 제한이 통신 링크를 통해 전송될 수 있는 데이터의 양이나 속도를 상당히 한정하거나 제한하고, 소스 웹사이트 또는 ISP 서버가 비정상적으로 많은 양의 데이터 트래픽을 겪는 신호 강도가 낮은 영역에서 작동할 때 발생하거나, 또는 컨텐츠가 많은 양의 데이터를 포함할 때 발생할 수 있다. 여기에는 이러한 단점을 해결할 수 있는 컴퓨터 자산 검색 및 전달 솔루션에 대한 긴급하고 충족되지 않은 요구가 존재한다.
본 개시는 충족되지 않은 요구를 충족하고 위에서 언급한 단점을 해결하는 컴퓨터 자산 검색 및 전달 솔루션을 제공한다. 컴퓨터 자산 검색 및 전달 솔루션은 통신 디바이스에 대한 다음 활동을 예측하고, 예측에 기초하여 하나 이상의 컴퓨터 자산을 검색하고, 통신 디바이스로 프리(사전)페치 또는 프리(사전)로드할 수 있다. 이 솔루션은 과도한 페칭(over-fetching)을 방지할 수 있는 스마트한 행동 기반 프리페칭 접근법을 제공할 수 있으므로 예를 들어 모바일 디바이스와 같은 통신 디바이스에서 중요할 수 있는 사용자 대역폭을 절약할 수 있다.
컴퓨터 자산 검색 및 전달 솔루션의 비-제한적인 실시예는 컴퓨팅 디바이스에 의해 실행될 때 컴퓨팅 디바이스가 기계 학습 모델을 구축 또는 트레이닝하는 방법을 수행하도록 하고 그리고 기계 학습 모델이 복수의 통신 디바이스에 배포되게 하는 컴퓨터 실행 명령들을 포함하는 비-일시적 컴퓨터 판독가능 저장 매체를 포함한다. 방법은 컴퓨팅 디바이스에 의해, 기계 학습 모델을 구축하는 단계와, 컴퓨팅 디바이스에 의해, 기계 학습 모델을 트레이닝하는 단계와, 컴퓨팅 디바이스에 의해, 기계 학습 모델을 웹 브라우저 호환 포멧으로 변환하는 단계와, 그리고 컴퓨팅 디바이스에 의해, 기계 학습 모델을 복수의 통신 디바이스에 배포하도록 구성된 서버에 기계 학습 모델을 업로드하는 단계를 포함한다. 방법에서, 기계 학습 모델은 입력으로서 복수의 통신 디바이스 중 하나의 통신 디바이스에 대한 하나 이상의 이전 활동의 시퀀스를 수신하고, 하나의 통신 디바이스에 대한 하나 이상의 이전 활동의 시퀀스를 분석하고, 하나 이상의 이전 활동의 시퀀스 분석에 기초하여 하나의 통신 디바이스에 대한 다음(next) 활동을 예측하고, 컴퓨터 자산을 찾기 위해 상기 예측된 다음 활동에 기초하여 컴퓨터 네트워크를 선제적으로 검색하고, 그리고 찾은 컴퓨터 자산을 하나의 통신 디바이스의 저장소에 프리로드하도록 구성된다.
기계 학습 모델은 찾은 컴퓨터 자산을 하나의 통신 디바이스상의 웹페이지로서 렌더링하거나, 하나의 통신 디바이스상의 웹 브라우저의 프론트-엔드 코드와 통합하거나, 하나의 통신 디바이스상의 웹 브라우저에서 자바스크립트를 호출하거나, 통신 디바이스상의 추가 활동에 응답하여 컴퓨터 자산을 웹페이지로서 렌더링하도록 구성될 수 있다. 추가 활동은 예측된 다음 활동과 매칭할 수 있다. 기계 학습 모델은 변환기 모델, 피드-포워드 심층 신경망 모델, 또는 어텐션 메커니즘을 포함할 수 있다. 어텐션 메커니즘은 패딩(padding) 어텐션 마스크 또는 예견(look-ahead) 어텐션 마스크를 포함할 수 있다.
예측된 다음 활동은 하나 이상의 자연어 용어를 포함하는 사용자 인터페이스상의 입력 또는 하나의 통신 디바이스상의 웹 브라우저에 대한 검색 질의 입력을 포함할 수 있다.
컴퓨터 자산 검색 및 전달 솔루션의 다른 비-제한적인 실시예는 기계 학습 모델을 구축 또는 트레이닝하고 그리고 기계 학습 모델을 복수의 통신 디바이스에 배포하도록 구성된 서버에 기계 학습 모델을 업로드하도록 구성된 시스템을 포함할 수 있다. 시스템은 기계 학습 모델과 기계 학습 생산 파이프라인을 구축(build)하도록 구성된 기계 학습 모델 빌더를 포함한다. 기계 학습 생산 파이프라인은 기계 학습 모델을 트레이닝하고, 기계 학습 모델을 웹 브라우저 호환 포멧으로 변환하고; 그리고 변환된 기계 학습 모델을 서버에 업로드하도록 구성될 수 있다. 기계 학습 모델은 복수의 통신 디바이스 중 하나의 통신 디바이스에 대한 하나 이상의 이전 활동의 시퀀스를 입력으로서 수신하고, 하나의 통신 디바이스에 대한 하나 이상의 이전 활동의 시퀀스를 분석하고, 하나 이상의 이전 활동의 시퀀스 분석에 기초하여 하나의 통신 디바이스에 대한 다음 활동을 예측하고, 컴퓨터 자산을 찾기 위해 상기 예측된 다음 활동에 기초하여 컴퓨터 네트워크를 선제적으로 검색하고, 그리고 찾은 컴퓨터 자산을 하나의 통신 디바이스의 저장소에 프리로드하도록 구성될 수 있다.
시스템에서, 기계 학습 모델은 찾은 컴퓨터 자산을 하나의 통신 디바이스상의 웹페이지로서 렌더링하거나, 하나의 통신 디바이스상의 웹 브라우저의 프론트-엔드 코드와 통합하거나, 하나의 통신 디바이스상의 웹 브라우저에서 자바스크립트를 호출하거나, 통신 디바이스상의 추가 활동에 응답하여 컴퓨터 자산을 웹페이지로서 렌더링하도록 구성될 수 있다.
시스템에서, 추가 활동은 예측된 다음 활동과 매칭할 수 있다.
시스템에서, 기계 학습 모델은 변환기 모델이나, 피드-포워드 심층 신경망 모델이나, 어텐션 메커니즘을 포함할 수 있다. 어텐션 메커니즘은 패딩 어텐션 마스크 또는 예견 어텐션 마스크를 포함할 수 있다.
시스템에서, 예측된 다음 활동은 하나 이상의 자연어 용어를 포함하는 사용자 인터페이스상의 입력 또는 하나의 통신 디바이스상의 웹 브라우저에 대한 검색 질의 입력을 포함할 수 있다.
컴퓨터 자산 검색 및 전달 솔루션의 다른 비-제한적인 실시예는 활동 예측을 위한 컴퓨터 구현 방법을 포함한다. 이 방법은 기계 학습 모델에서, 입력으로서 복수의 통신 디바이스 중 하나의 통신 디바이스에 대한 하나 이상의 이전 활동의 시퀀스를 수신하는 단계와, 기계 학습 모델에 의해, 하나의 통신 디바이스에 대한 하나 이상의 이전 활동의 시퀀스를 분석하는 단계와, 기계 학습 모델에 의해, 하나 이상의 이전 활동의 시퀀스 분석에 기초하여 하나의 통신 디바이스에 대한 다음 활동을 예측하는 단계와, 컴퓨터 자산을 찾기 위해 상기 예측된 다음 활동에 기초하여 컴퓨터 네트워크를 선제적으로 검색하는 단계와; 그리고 찾은 컴퓨터 자산을 하나의 통신 디바이스의 저장소에 프리로드하는 단계를 포함한다. 방법은 찾은 컴퓨터 자산을 하나의 통신 디바이스상의 웹페이지로서 렌더링하는 단계를 포함할 수 있다.
컴퓨터 구현 방법에서, 기계 학습 모델은 하나의 통신 디바이스상의 웹 브라우저의 프론트 엔드 코드와 통합될 수 있다.
컴퓨터 구현 방법에서, 기계 학습 모델은 하나의 통신 디바이스상의 웹 브라우저에서 자바스크립트를 호출하도록 구성될 수 있다.
컴퓨터 구현 방법에서, 컴퓨터 자산을 웹페이지로서 렌더링하는 단계는 통신 디바이스상의 추가 활동에 응답하여 발생할 수 있다.
컴퓨터 구현 방법에서, 추가 활동은 예측된 다음 활동과 매칭할 수 있다.
컴퓨터 구현 방법에서, 기계 학습 모델은 변환기 모델이나, 피드-포워드 심층 신경망 모델이나, 어텐션 메커니즘을 포함할 수 있다. 어텐션 메커니즘은 패딩 어텐션 마스크 또는 예견 어텐션 마스크를 포함할 수 있다.
컴퓨터 구현 방법에서, 예측된 다음 활동은 하나 이상의 자연어 용어를 포함하는 사용자 인터페이스상의 입력 또는 하나의 통신 디바이스상의 웹 브라우저에 대한 검색 질의 입력을 포함할 수 있다.
컴퓨터 구현 방법은 입력을 수신하기 전에, 기계 학습 모델 구축하는 단계와, 기계 학습 모델 트레이닝하는 단계와, 기계 학습 모델을 웹 브라우저 호환 포멧으로 변환하는 단계와; 그리고 기계 학습 모델을 복수의 통신 디바이스에 배포하도록 구성된 서버에 기계 학습 모델을 업로드하는 단계를 포함할 수 있다.
컴퓨터 자산 검색 및 전달 솔루션의 다른 비-제한적인 실시예는 컴퓨터 구현 방법을 수행하도록 구성된 프로세서를 포함하는 시스템을 포함한다.
컴퓨터 자산 검색 및 전달 솔루션의 다른 비-제한적인 실시예는 프로그램이 컴퓨터에 의해 실행될 때 컴퓨터로 하여금 컴퓨터 구현 방법을 수행하게 하는 명령들을 포함하는 컴퓨터 프로그램 제품을 포함한다.
본 개시의 추가 특징, 이점 및 실시예는 상세한 설명, 청구범위 및 도면을 포함하는 명세서의 고려로부터 설명되거나 명백할 수 있다. 본 개시의 요약 및 다음의 상세한 설명 및 도면은 청구된 개시의 범위를 제한하지 않고 추가 설명을 제공하도록 의도된 예를 제공할 수 있다.
본 개시의 추가 이해를 제공하기 위해 포함된 첨부 도면은 본 명세서에 통합되어 본 명세서의 일부를 구성하고, 본 개시의 실시예를 도시하고, 상세한 설명과 함께 본 개시의 원리를 설명하는 역할을 한다. 개시의 기본적인 이해 및 개시가 실행될 수 있는 다양한 방식에 필요한 것보다 더 상세하게 개시의 구조적 세부 사항을 보여주려는 시도가 이루어지지 않았다.
도 1은 본 개시의 원리에 따라 구성된 컴퓨터 자산 검색 및 전달(CASD) 시스템을 포함하는 컴퓨터 네트워크 환경의 예를 도시한다.
도 2는 도 1의 컴퓨터 네트워크 환경에 포함될 수 있는 통신 디바이스의 비-제한적인 실시예를 도시한다.
도 3은 본 개시의 원리에 따라 구성된 CASD 시스템의 비-제한적인 실시예를 도시한다.
도 4는 도 1 및 3의 CASD 시스템에 의해 구축되거나 트레이닝될 수 있는 기계 학습(ML) 모델의 비-제한적인 예를 도시한다.
도 5는 도 1 및 도 3에 도시된 CASD 시스템에 의해 수행될 수 있는 ML 모델 생성 프로세스의 비-제한적인 예를 도시한다.
도 6은 도 1 및 도 2에 도시된 통신 디바이스로의 ML 모델의 로딩 및 통합의 비-제한적인 예의 블록도를 도시한다.
본 개시는 다음의 상세한 설명에서 추가로 설명된다.
본 개시 및 다양한 특징 및 유리한 세부사항은 첨부 도면에 개시되거나 도시되고 아래의 설명에서 상세히 설명되는 비-제한적인 실시예 및 예들을 참조하여 보다 완전하게 설명된다. 도면에 도시된 특징들은 반드시 축척에 맞게 그려진 것은 아니며, 명시적으로 언급되지 않더라도 일 실시예의 특징이 다른 실시예와 함께 사용될 수 있다는 점에 유의해야 한다. 공지된 컴포넌트(구성요소) 및 처리 기술에 대한 설명은 본 발명의 실시예를 불필요하게 모호하게 하지 않도록 생략될 수 있다. 실시예들은 단지 본 개시가 실시될 수 있는 방식의 이해를 용이하게 하고 당업자가 본 개시의 실시예들을 실시할 수 있도록 하기 위해 의도된다. 따라서, 예들 및 실시예들은 본 개시의 범위를 제한하는 것으로 해석되어서는 안 된다. 더욱이, 유사한 참조 번호는 도면의 여러 도면 전체에 걸쳐 유사한 부분을 나타낸다는 점에 유의한다.
인터넷은 전세계적으로 통신 디바이스들을 연결하기 위해 인터넷 프로토콜 슈트(TCP/IP)를 사용하는 상호 연결된 컴퓨터 네트워크의 글로벌 시스템을 통해 광범위한 컴퓨터 자산 및 서비스를 운반하는 네트워크들의 네트워크이다. 컴퓨터 자산은 예를 들어 상호 링크된 하이퍼텍스트 문서 및 월드 와이드 웹(WWW) 애플리케이션, 전자 메일, 전화 통신 및 파일 공유를 포함할 수 있다. 하이퍼텍스트는 웹 컨텐츠나 웹페이지와 같은 컴퓨터 자산이 하이퍼텍스트 마크업 언어(HTML)로 작성될 수 있는 WWW의 기본 개념 중 하나이다. 하이퍼텍스트 컴퓨터 자산은 정적이거나 동적일 수 있다. 정적 컴퓨터 자산은 미리 준비되고 저장될 수 있다. 동적 컴퓨터 자산은 통신 디바이스 상의 입력 또는 활동에 대한 응답과 같이 지속적으로 변경될 수 있다.
통신 디바이스(40)(도 1에 도시되고 아래에서 논의됨)와 같은 클라이언트측 통신 디바이스는 하나 이상의 웹 애플리케이션 프로그래밍 인터페이스(Web API)를 포함하는 웹 브라우저들을 사용하여 인터넷 상의 컴퓨터 자산들에 액세스할 수 있다. API(애플리케이션 프로그래밍 인터페이스)에는 소프트웨어 및 애플리케이션을 구축하기 위한 서브루틴 정의, 프로토콜 및 도구(tool)의 세트가 포함될 수 있으며, 웹 API는 하이퍼텍스트 전달 프로토콜(HTTP) 명령을 사용하여 액세스되고 상호 작용할 수 있는 API이다. HTTP 프로토콜은 클라이언트 측 웹 브라우저들이 다양한 명령에 응답하여 통신 디바이스들에서 수행해야 하는 액션들을 정의한다.
통신 디바이스(40)(도 1에 도시됨)가 웹사이트를 방문하거나 컴퓨터 네트워크(20)(도 1에 도시됨)상의 컴퓨터 자산에 액세스할 때, 디바이스의 웹 브라우저는 웹사이트 또는 컴퓨터 자산을 호스팅하는 웹 서버(미도시)로부터 컴퓨터 자산을 검색할 수 있다. 컴퓨터 자산에 포함된 웹 컨텐츠 또는 웹페이지를 그래픽적으로 디스플레이하기 위해, 웹 브라우저는 컴퓨터 자산을 예를 들어 웹 페이지로서 제시시하면서 스타일 시트, 스크립트 및 이미지와 같은 다수의 웹 리소스 요소에 액세스해야 할 수 있다. 대기시간(latency)은 통신 디바이스(40)(도 1에 도시됨)가 신호 강도가 낮은 영역에서 작동할 때 심각한 문제가 될 수 있는데, 여기서 ISP 또는 웹사이트 호스팅 서버에 대한 통신 링크는 포화되거나 과부하가 걸리고, 가용 대역폭이 크게 한정되거나 제한되며, 웹사이트 호스트 또는 ISP 서버(미도시)가 비정상적으로 많은 트래픽 볼륨을 경험하거나 또는 컨텐츠에 많은 양의 데이터가 포함된다.
본 개시는 통신 디바이스(40)(도 1에 도시됨)상에서 예를 들어 웹 컨텐츠 또는 웹페이지와 같은 컴퓨터 자산을 찾고, 전달하거나 렌더링할 때 대기시간을 상당히 줄이거나 제거할 수 있는 컴퓨터 자산 검색 및 전달(CASD) 솔루션을 제공할 수 있다. 이 솔루션은 조작자 또는 통신 디바이스가 예측된 활동과 실질적으로 매칭(일치)하는 활동을 수행할 때 거의 즉시 해당 디바이스상에 컴퓨터 자산이 렌더링될 수 있도록, 통신 디바이스(40)에 대한 다음 활동을 예측하고, 그 예측된 활동에 기초하여 하나 이상의 컴퓨터 자산을 선제적으로 검색하고 프리페치하거나 프리로드하기 위한 시스템, 방법 및 컴퓨터 프로그램을 제공한다. 따라서, 개시된 기술은 추가 활동에 응답하여 대기시간을 감소시킬 수 있다. 또한, 프리로딩 및/또는 프리페칭이 타겟팅될 수 있기 때문에, 이 접근법은 네트워크 및 컴퓨터 리소스의 불필요한 사용을 피할 수 있다.
솔루션은 컴퓨터 자산을 검색, 액세스, 프리페치, 프리로드 또는 처리할 수 있는 클라이언트측 웹 브라우저를 포함할 수 있으며, 후속적으로 예를 들어 통신 디바이스(40)에 의해 디스플레이된 하나 이상의 웹페이지와 같은 통신 디바이스(40)상의 자산을 렌더링할 수 있다. 솔루션은 하나 이상의 활동의 입력 시퀀스에 기초하여 통신 디바이스(40)에 대한 다음 활동을 예측할 수 있는 기계 학습(ML) 모델을 포함할 수 있다. ML 모델은 통신 디바이스(40)에 로드되고 포함될 수 있다. ML 모델은 아래에서 설명되는 바와같이 변환기(Transformer) 모델을 포함할 수 있다. ML 모델은 컴퓨터 자산 검색 및 전달(CASD) 시스템(10)에 의해 직접적으로 또는 예를 들어 클라우드 서비스 제공자에 의해 운영 또는 관리될 수 있는 컴퓨터 클라우드 네트워크(30)(도 1에 도시됨)와 같은 컨텐츠 서비스 제공자를 통해 통신 디바이스(40)로 로드될 수 있다.
솔루션은 어텐션(attention, 주의) 메커니즘을 포함할 수 있다. 어텐션 메커니즘은 패딩(padding) 어텐션 마스크 및 예견(look-ahead) 어텐션 마스크 중 적어도 하나를 포함할 수 있다. 어텐션 메커니즘은 패딩 어텐션 마스크와 예견 어텐션 마스크 모두를 사용하는 다중 헤드(multi-head) 어텐션을 포함할 수 있다. 어텐션 메커니즘은 셀프 어텐션을 포함할 수 있다. 어텐션 메커니즘은 스케일링된 내적(dot-product) 어텐션을 포함할 수 있다. 예를 들어 페이지 전환, 버튼 클릭 또는 원격 프로시저 호출(RPC)과 같은 불완전한 활동 시퀀스가 통신 디바이스(40) 상에서 또는 통신 디바이스(40)에 의해 수행될 때, 컴퓨터 자산 검색 및 전달 솔루션은 통신 디바이스(40)에 대한 하나 이상의 후속 활동을 예측하고, 그 예측된 활동(들)에 기초하여 통신 디바이스(40)의 클라이언트측 웹 브라우저가 그 예측된 활동에 기초하여 가장 매칭하는 결과일 가능성이 있는 컴퓨터 자산들에 대해 컴퓨터 네트워크(20)(도 1에 도시됨)를 검색하거나 검색하게 하고, 그리고 컴퓨터 자산을 프리페치 또는 프리로드하거나, 통신 디바이스(40)의 클라이언트측 웹 브라우저가 컴퓨터 자산을 통신 디바이스(40)로 프리페치 또는 프리로드하게 할 수 있다. 프리로드된 컴퓨터 자산은 예를 들어, 다음 활동이 통신 디바이스(40)에서 실행되기 전 또는 예측된 다음 활동과 매칭되는 활동이 통신 디바이스(40)에서 실행된 후에 통신 디바이스(40)의 디스플레이 상의 하나 이상의 웹페이지로서 렌더링될 수 있다.
비-제한적인 구현에서, 컴퓨터 자산 검색 및 전달 솔루션은 최종 사용자 조작자에 의해 통신 디바이스(40)의 다음 항목(entry) 또는 다중 항목을 예측하고 그 예측에 기초하여 웹페이지 결과를 선제적으로 프리페치하거나 프리로드할 수 있다. 프리로드된 웹 페이지 결과는 로컬 RAM(Random-Access Memory) 또는 통신 디바이스(40)의 저장 영역에 저장될 수 있으며 통신 디바이스(40)의 디스플레이상의 거의 즉각적인 렌더링에 사용될 수 있다. 저장된 웹페이지 결과는 조작자 또는 통신 디바이스(40)가 예측된 활동과 실질적으로 매칭하는 활동을 수행할 때 디스플레이에 렌더링될 수 있다. 대안적으로, 웹페이지 결과는 활동이 통신 디바이스(40)상에 또는 통신 디바이스(40)로 제공되기 전에 렌더링될 수 있다.
도 1은 본 개시의 원리에 따라 구성된 컴퓨터 자산 검색 및 전달(CASD) 시스템(10)을 포함하는 컴퓨터 네트워크 환경(1)의 비-제한적인 예의 블록도를 도시한다. 컴퓨터 네트워크 환경(1)은 네트워크(20) 및 복수의 통신 디바이스(40)를 포함할 수 있다. 컴퓨터 네트워크 환경(1)은 컴퓨터 클라우드 네트워크(30)를 포함할 수 있다. 컴퓨터 네트워크 환경(1)의 컴포넌트들은 각 통신 링크(5)를 통해 데이터 트래픽을 각각 전송하거나 수신할 수 있다.
CASD 시스템(10)은 통신 디바이스(40)에 배포하기 위한 하나 이상의 기계 학습(ML) 모델을 구축하거나 트레이닝하도록 구성(arrange)될 수 있다. CASD 시스템(10)은 ML 모델을 각각의 통신 디바이스(40)에 다운로드하도록 구성될 수 있으며, 그러면 로드된 ML 모델을 사용하여 통신 디바이스(40)에 대한 다음 활동을 예측할 수 있다. ML 모델은 CASD 시스템(10)으로부터 직접 로드될 수 있다. ML 모델은 CASD 시스템(10)에 의해 예를 들어 컴퓨터 클라우드 네트워크(30)의 정적 컨텐츠 서비스(SCS)와 같은 컨텐츠 서비스 제공자에게 업로드될 수 있다. 컴퓨터 클라우드 네트워크(30)는 클라우드 서비스 제공자에 의해 운영 또는 유지될 수 있다. 클라우드 네트워크(30)는 CAST 시스템(10)으로부터 업로드된 ML 모델을 수신하고 저장하도록 구성될 수 있는 정적 컨텐츠 서비스(SCS) 데이터베이스(35)를 포함할 수 있다. 컨텐츠 서비스 제공자는 ML 모델을 통신 디바이스(40)에 직접 로드할 수 있다.
ML 모델이 설치된 상태에서, 통신 디바이스(40)는 예측된 활동에 기초하여 컴퓨터 자산에 대해 컴퓨터 네트워크(20)를 선제적으로 검색할 수 있고, 선제적 검색에서 식별된 자산들을 프리페치 또는 프리로드할 수 있다. 자산들은 통신 디바이스(40)에 로컬로 저장될 수 있고 조작자가 (예를 들어, 키보드, 키패드 또는 터치 스크린 디스플레이와 같은 사용자 인터페이스를 통해) 통신 디바이스(40)와 상호 작용하고 예측된 활동과 실질적으로 매칭하는 활동을 제공할 때 디스플레이 디바이스상의 디스플레이에 용이하게 사용될 수 있다. 컴퓨터 자산은 예를 들어, 텍스트 컨텐츠, 사운드 컨텐츠, 비디오 컨텐츠, 또는 통신 디바이스(40)에 의해 렌더링될 수 있는 임의의 다른 유형의 데이터를 포함하여, 컴퓨터 애플리케이션, 웹 컨텐츠 또는 정적이거나 움직이는 멀티미디어 컨텐츠가 있는 웹페이지를 포함할 수 있다. 예를 들어, 컴퓨터 자산에는 CSS(Cascading Style Sheets) 및 스크립팅 언어(예를 들어, 자바스크립트)와 같은 기술의 지원을 받는 HTML 문서가 포함될 수 있다. 컴퓨터 자산은 예를 들어 자바스크립트 명령(commands)과 같은 이미지 렌더링 명령을 포함할 수 있으며, 이는 통신 디바이스(40)에서 렌더링될 때 웹 컨텐츠의 거동(behavior) 및 컨텐츠에 영향을 미치기 위해 HTML 문서에 포함될 수 있다.
CASD 시스템(10)은 예를 들어 서버 또는 서버 어레이와 같은 컴퓨팅 디바이스를 포함할 수 있다. CASD 시스템(10)은 예를 들어, 검색 엔진 웹사이트 또는 서버를 운영하는 ISP 또는 검색 엔진 운영자에 의해 운영 또는 유지될 수 있다. CASD 시스템(10)은 인터넷 서비스 제공자(ISP)의 컴퓨팅 디바이스를 포함할 수 있다. CASD 시스템(10)은 ML 모델을 구축(build)하고, 모델을 트레이닝하고, 웹 호환 포멧으로 모델을 저장할 수 있다. 모델은 클라우드 네트워크(30)(또는 CASD 시스템(10))로부터 하나 이상의 통신 디바이스(40)로 다운로드될 수 있다. 동일한 ML 모델이 각각의 통신 디바이스(40)로 다운로드될 수 있다. 추가 ML 모델은 디바이스에 설치되거나 작동하는 클라이언트 애플리케이션에 따라 통신 디바이스(40) 각각에 다운로드될 수 있다.
일단 통신 디바이스(40)에 로드 및 설치되면, ML모델은 디바이스에 의해 실행되어 세션 동안 하나 이상의 이전 활동의 시퀀스가 수행될 때 통신 디바이스(40)의 다음 활동을 예측할 수 있다. 예측은 조작자 상호작용에 응답하여 통신 디바이스(40)에 의해 수행된 활동 또는 통신 디바이스(40)에서 조작자에 의해 수행된 활동에 기초할 수 있다. 예측 결과는 통신 디바이스(40)에 의해 컴퓨터 자산을 검색하고 프리페치하거나 디바이스에 프리로드하는데 사용될 수 있다. 컴퓨터 자산은 예를 들어 백그라운드 스레드에서 자바스크립트를 사용하여 서버로부터 비동기식으로 프리페치되거나 프리로드될 수 있어, 통신 디바이스(40)는 예를 들어 그래픽 사용자 인터페이스(GUI)와 같은 사용자 인터페이스 디바이스를 통해 조작자와 상호 작용할 수 있다.
통신 디바이스(40)는 디스플레이 디바이스를 포함할 수 있다. 통신 디바이스(40)는 네트워크(20)를 통해 통신하고, 예를 들어, 디바이스의 웹 브라우저에서 이미지 렌더링 명령을 실행함으로써, 예를 들어 하나 이상의 웹페이지로서 디스플레이 디바이스상의 컴퓨터 자산들을 렌더링하도록 구성될 수 있다. 통신 디바이스(40)는 조작자와 인터페이스하고 컴퓨터 자산에 대한 요청을 수신할 수 있다. 요청은 검색 질의를 포함하여 검색 엔진에 대한 요청을 포함할 수 있다. 요청에는 웹 페이지 또는 웹 사이트와 같은 컴퓨터 자산에 액세스하거나 검색하기 위한 요청이 포함될 수 있다. 통신 디바이스(40)는 네트워크(20)로부터 또는 네트워크(20)를 통해 수신된 컴퓨터 자산을 렌더링하고 디스플레이할 수 있다. 통신 디바이스(40)는 디스플레이 디바이스의 디스플레이 스크린에 컴퓨터 자산을 디스플레이할 수 있다. 컴퓨터 자산은 예를 들어 웹 브라우저와 같은 클라이언트 애플리케이션에 의해 통신 디바이스(40)에서 로컬로 수신되고 처리될 수 있다. 컴퓨터 자산은 통신 디바이스(40)에서 웹페이지를 생성/렌더링하기 위한 데이터 또는 명령, 예를 들어 자바스크립트를 포함할 수 있다.
컴퓨터 자산은 예를 들어 컨텐츠를 식별하고 이미지, 링크, 사운드 또는 컴퓨터 자산의 다른 객체를 생성 또는 수정하기 위한 마크업 언어 주석과 같은 이미지 렌더링 명령을 포함할 수 있다. 마크업 언어 주석은 통신 디바이스(40)에 정적 컨텐츠 또는 이동 컨텐츠를 디스플레이하기 위한 복수의 태그를 포함할 수 있다. 마크업 언어는 예를 들어 SGML(Standard Generalized Markup Language), SVG(Scalable Vector Graphics), HTML, XHTML 또는 XML(Extensible Markup Language), XML 사용자 인터페이스 언어(XUL), LaTeX, 또는 통신 디바이스(40)의 디스플레이상에 컴퓨터 자산을 렌더링하기 위해 통신 디바이스(40)상의 웹 브라우저와 같은 클라이언트 애플리케이션에 의해 사용될 수 있는 임의의 다른 마크업 언어 중 하나 이상을 포함할 수 있다. 마크업 언어 주석은 예를 들어 통신 디바이스(40)에서 실행되는 웹 브라우저에 의해 실행되어, 디스플레이 디바이스상의 애니메이션된 또는 정지된 웹 컨텐츠를 갖는 컴퓨터 자산을 렌더링할 수 있다.
렌더링 명령은 스타일에 대한 규칙을 제공하고 마크업 언어 주석으로 컴퓨터 자산의 프리젠테이션을 설명하기 위한 스타일 시트 언어 주석을 포함할 수 있다. 스타일 시트 언어 주석은 예를 들어 컬러, 폰트, 레이아웃 또는 기타 스타일 속성을 포함할 수 있다. 스타일 시트 언어는 예를 들어 CSS(Cascading Style Sheet), DSSSL(Document Style Semantics and Specification Language) 또는 XSL(Extensible Stylesheet Language) 중 하나 이상을 포함할 수 있다. 스타일 시트 언어 주석은 스타일 시트 언어 파일로 제공될 수 있다. 대안적으로, 스타일 시트 언어 주석은 마크업 언어 주석을 포함하는 파일에 통합될 수 있다.
렌더링 명령은 마크업 언어 주석 또는 스타일 시트 언어 주석과 관련된 대화형 효과(interactive effects)를 생성하기 위한 스크립팅 언어 명령을 포함할 수 있다. 스크립팅 언어는 예를 들어 Bash(예컨대, Unix 운영 체제용), ECMAScript(또는 자바스크립트)(예를 들어, 웹 브라우저용), Visual Basic(예를 들어, 마이크로소프트 애플리케이션용), Lua 또는 Python을 포함할 수 있다. 스크립팅 언어 명령은 예를 들어 통신 디바이스(40) 상의 웹 브라우저와 같은 클라이언트 애플리케이션에 의해 실행될 때 통신 디바이스(40)의 디스플레이 디바이스 상의 하나 이상의 웹페이지로서 컴퓨터 자산의 렌더링을 실행하는 명령을 포함할 수 있다.
스크립팅 언어 명령어는 통신 디바이스(40)(예를 들어, 웹 브라우저)의 클라이언트 애플리케이션과 같은 런타임 환경에 의존하여 스크립트가 예를 들어 XML 또는 HTML 문서와 함께 작동할 수 있는 웹 페이지 DOM(문서 개체 모델)이 있다. 스크립팅 언어 지침은 런타임 환경에 의존하여 HTML <script> 요소와 같은 스크립트를 포함하거나 가져오는 기능을 제공할 수 있다. 스크립팅 언어 명령어는 예를 들어 한 번에 하나씩 대기열에서 자바스크립트 엔진에 의한 컴퓨터 자산의 처리를 수행할 수 있는 자바스크립트 명령어를 포함할 수 있다. 예를 들어 자바스크립트는 컴퓨터 자산과 연결된 함수를 호출하고 함수의 인수 및 로컬 변수로 호출 스택 프레임을 생성할 수 있다. 호출 스택은 함수의 필요에 따라 줄어들거나 커질 수 있다. 함수 완료 시 호출 스택이 비어 있으면 자바스크립트는 대기열의 다음 컴퓨터 자산으로 진행할 수 있다.
스크립팅 언어 명령은 스크립트가 XML 또는 HTML 문서와 함께 작동할 수 있는 예를 들어 웹 페이지 DOM(문서 객체 모델)과 같은 환경과 상호 작용할 수 있는 객체 및 방법을 제공하기 위해 (예를 들어, 웹 브라우저와 같은) 통신 디바이스(40) 상의 클라이언트 애플리케이션과 같은 런타임 환경에 의존할 수 있다. 스크립팅 언어 명령은 런타임 환경에 의존하여 HTML <스크립트> 요소와 같은 스크립트를 포함하거나 가져오는 기능을 제공할 수 있다. 스크립팅 언어 명령은 예를 들어 한 번에 하나씩 큐(queue)로부터 자바스크립트 엔진에 의한 컴퓨터 자산의 처리를 수행할 수 있는 자바스크립트 명령을 포함할 수 있다. 예를 들어, 자바스크립트는 컴퓨터 자산과 관련된 함수를 호출하고 그 함수의 인수 및 로컬 변수를 사용하여 호출 스택 프레임을 생성할 수 있다. 호출 스택은 함수의 필요에 따라 줄어들거나 커질 수 있다. 함수 완료 시 호출 스택이 비어 있는 경우, 자바스크립트는 큐에서 다음 컴퓨터 자산으로 진행할 수 있다.
스크립팅 언어 명령은 통신 디바이스(40) 상의 클라이언트측 웹 브라우저에 의해 사용되어 컴퓨터 자산을 픽셀 데이터의 복수의 행 또는 열로 처리하고 컴퓨터 자산을 하나 이상의 웹페이지로 디스플레이할 수 있다. 이미지 렌더링 명령은 스크립팅 언어 명령으로 수정될 수 있는 웹 페이지의 객체 지향 표현을 생성할 수 있는 HTML 또는 XML(예를 들어, DOM5 HTML)과 같은 문서 객체 모델(DOM)을 포함할 수 있다. DOM은 HTML, XHTML/XML, SGML, SVG 또는 XUL에서 개체들을 표현하고 그들과 상호 작용하기 위한 플랫폼 간 또는 언어 독립적 규칙을 포함할 수 있다.
통신 디바이스(40)는 하나 이상의 사용자 인터페이스 디바이스를 포함할 수 있다. 일반적으로, 사용자 인터페이스 디바이스는 감각 정보(예를 들어, 디스플레이상의 시각화, 하나 이상의 사운드), 햅틱 생성(예를 들어, 햅틱 디스플레이에 생성된 점자 또는 진동), 또는 조작자로부터 수신된 감각 정보를 전자 신호(예를 들어, 키보드, 마우스, 포인팅 디바이스, 터치 스크린 디스플레이 또는 마이크로폰)로 변환함으로써 조작자에게 데이터를 전달하는 임의의 전자 디바이스일 수 있다. 하나 이상의 사용자 인터페이스 디바이스는 통신 디바이스(40)의 하우징 내부(예를 들어, 내장 디스플레이, 키보드, 마이크로폰 또는 터치패드) 또는 하우징 외부(예를 들어, 디스플레이 디바이스, 카메라, 스피커 또는 컴퓨팅 디바이스(40)에 연결된 마이크로폰)일 수 있다.
통신 디바이스(40)는 네트워크(20)에서 컴퓨터 자산의 하나 이상의 소스로부터 수신된 명령 및 데이터를 사용하여 컴퓨터 자산들을 시각적으로 디스플레이하는 전자 디스플레이 디바이스를 포함할 수 있다.
도 2는 클라이언트측 통신 디바이스(40)의 비-제한적인 실시예를 도시하는 블록도이다. 통신 디바이스(40)는 하나 이상의 컴포넌트(41~49)를 포함할 수 있으며, 이들 각각은 통신 링크에 연결될 수 있다. 통신 디바이스(40)는 고유한 또는 공통의 통신 링크에 의해 컴포넌트(41~49) 각각에 연결될 수 있는 버스(2)를 포함할 수 있다. 컴포넌트(41~49)는 복수의 컴퓨팅 디바이스로 또는 하나 이상의 컴퓨팅 디바이스의 복수의 모듈로 구성될 수 있다.
컴포넌트(41~49)는 프로세서(41), 저장소(storage)(42), 하드 디스크 드라이브(HDD)(43), 네트워크 인터페이스(44), 입/출력(I/O) 인터페이스(45), 드라이버 유닛(46), 데이터베이스(47), 통신 디바이스 입력 또는 활동(CDIA) 예측기 유닛(48), 및 컴퓨터 자산 검색 및 프리페치 또는 프리로드(CASPP) 유닛(49)을 포함할 수 있다. 컴포넌트(42~49) 중 하나 이상은 (예를 들어, 도 2에 도시된 바와 같이) 프로세서(41)와 별개인 컴퓨팅 디바이스 또는 모듈을 포함할 수 있고, 프로세서(41)와 같은 컴퓨팅 디바이스에 통합되거나 통합 가능할 수 있다. 통신 디바이스(40)는 예를 들어, 스피커와 같은 사운드 생성 디바이스(미도시) 및 디스플레이 디바이스와 같은 이미지 렌더링 디바이스를 포함할 수 있다.
프로세서(41)는 예를 들어, 중앙 처리 장치(CPU), 그래픽 처리 장치(GPU), 범용 GPU(GPGPU), 필드 프로그래머블 게이트 어레이(FGPA), 주문형 집적 회로(ASIC) 또는 매니코어(manycore) 프로세서와 같은 컴퓨팅 디바이스를 포함할 수 있다.
프로세서(41)는 저장 디바이스(42)에 저장된 명령들을 포함하여 통신 디바이스(40) 내에서 실행하기 위한 명령들을 처리할 수 있다. 프로세서(41)는 예를 들어 I/O 인터페이스(45)에 연결될 수 있는 디스플레이 디바이스와 같은 외부 입/출력 디바이스상의 GUI에 대한 그래픽 정보를 표시하기 위한 명령을 처리할 수 있다.
통신 디바이스(40)는 프로세서(41) 또는 다른 디바이스 컴포넌트들 중 하나에 의해 실행될 때 통신 디바이스(40)의 단계들, 프로세스들 및 방법들이 수행되게 하는 실행 가능하거나 해석 가능한 컴퓨터 코드(또는 명령들)를 보유할 수 있는 컴퓨터 판독 가능 매체를 포함할 수 있다. 컴퓨터 판독 가능 매체는 저장소(42) 또는 HDD(43)에 제공될 수 있다. 컴퓨터 판독 가능 매체는 프로세서(41) 및/또는 다른 디바이스 컴포넌트들 중 하나에 의해 실행될 때 통신 디바이스(40)가 예를 들어 단계(340 또는 350)(도시된 도 5에서), 뿐만 아니라 본 개시에서 고려되는 모든 다른 프로세스, 방법 또는 단계가 통신 디바이스(40)에 의해 수행될 수 있게 하는 컴퓨터 프로그램 코드 또는 명령들의 섹션을 포함할 수 있다.
저장소(42)는 ROM(42A) 및 RAM(42B)을 포함할 수 있다. 기본 입/출력 시스템(BIOS)은 예를 들어, ROM, EPROM 또는 EEPROM을 포함할 수 있는 비-휘발성 메모리(42A)에 저장될 수 있다. BIOS는 시동(start-up) 동안과 같이 통신 디바이스(40)의 디바이스 컴포넌트 간에 정보를 전송하는데 도움이 되는 기본 루틴들을 포함할 수 있다. RAM(42B)은 데이터 캐싱을 위한 정적 RAM과 같은 고속 RAM을 포함할 수 있다. HDD(43)는 하드 디스크 드라이브를 포함할 수 있다.
저장소(42) 또는 HDD(43)는 데이터, 데이터 구조, 및 컴퓨터 실행 가능 코드 또는 명령들의 비휘발성 저장을 제공할 수 있는 컴퓨터 판독 가능 매체를 포함할 수 있다. 저장소(42) 또는 HDD(43)는 적절한 디지털 포멧의 임의의 데이터 저장을 수용할 수 있다. 저장소(42) 또는 HDD(43)는 본 명세서에 설명된 아키텍처의 양태를 실행하는데 사용될 수 있는 하나 이상의 컴퓨터 애플리케이션을 포함할 수 있다. 저장소(42) 또는 HDD(43)는, 예를 들어, 플래시 메모리 또는 NVRAM 메모리를 포함할 수 있다.
운영 체제, 클라이언트 애플리케이션, API 및 프로그램 데이터를 포함하는 하나 이상의 컴퓨터 프로그램 모듈이 저장소(42) 또는 HDD(43)에 저장될 수 있다. API는 예를 들어 Web API, SOAP(Simple Object Access Protocol) API, RPC(Remote Procedure Call) API, REST(representation state transfer) API, 또는 기타 유틸리티 또는 서비스 API를 포함할 수 있다. 임의의(또는 모든) 컴퓨터 프로그램 모듈은 컴퓨터 프로그램 코드의 실행 가능한 섹션으로서 RAM(42B)에 캐시될 수 있다.
네트워크 인터페이스(44)는 네트워크(20) 또는 클라우드 네트워크(30)(도 1에 도시됨)와 같은 네트워크에 연결될 수 있다. 네트워크 인터페이스(44)는 하나 이상의 통신 링크(5)(도 1에 도시됨)를 통해 네트워크(20) 또는 클라우드 네트워크(30)에 연결될 수 있다. 네트워크 인터페이스(44)는 유선 또는 무선 통신 네트워크 인터페이스(미도시) 또는 모뎀(미도시)을 포함할 수 있다. 근거리 통신망(LAN)에서 사용되는 경우, 통신 디바이스(40)는 유선 또는 무선 통신 네트워크 인터페이스를 통해 LAN 네트워크에 연결될 수 있고, 광역 네트워크(WAN)에서 사용되는 경우, 통신 디바이스(40)는 모뎀을 통해 WAN 네트워크에 연결될 수 있다. 네트워크(20) 또는 클라우드 네트워크(30)(도 1에 도시됨)는 LAN, WAN, 인터넷, 또는 컴퓨팅 디바이스 또는 통신 디바이스의 임의의 다른 네트워크를 포함할 수 있다. 모뎀(미도시)은 내부 또는 외부일 수 있고 유선 또는 무선일 수 있다. 모뎀(미도시)은 버스(2)에 연결될 수 있다.
(I/O) 인터페이스(45)는 조작자로부터 명령 및 데이터를 수신할 수 있다. I/O 인터페이스(45)는 예를 들어 키보드(미도시), 마우스(미도시), 포인터(미도시), 마이크로폰(미도시), 스피커(미도시) 또는 디스플레이(미도시)를 포함하여 하나 이상의 입/출력 디바이스(미도시)에 연결되도록 구성될 수 있다. 수신된 명령 및 데이터는 I/O 인터페이스(45)로부터 명령 및 데이터 신호로서 버스(2)를 통해 통신 디바이스(40)의 임의의 컴포넌트로 포워딩될 수 있다.
드라이버 유닛(46)은 오디오 드라이버(46A) 및 비디오 드라이버(46B)를 포함할 수 있다. 오디오 드라이버(46A)는 사운드 카드, 사운드 드라이버(미도시), 대화형 음성 응답(IVR) 유닛, 또는 예를 들어, 스피커(미도시)와 같은 사운드 생성 디바이스(미도시)에 사운드 신호를 렌더링하는데 필요한 임의의 다른 디바이스 또는 모듈을 포함할 수 있다. 비디오 드라이버(46B)는 비디오 카드(미도시), 그래픽 드라이버(미도시), 비디오 어댑터(미도시), 또는 디스플레이 디바이스에 이미지 또는 비디오 신호를 렌더링하는데 필요한 임의의 다른 디바이스 또는 모듈을 포함할 수 있다.
CDIA 예측기 유닛(48)은 컴퓨팅 디바이스 또는 모듈을 포함할 수 있거나, 컴퓨팅 디바이스 또는 모듈에 포함될 수 있다. CDIA 예측기 유닛(48)은 프로세서(41)에 포함되거나 통합될 수 있다. CDIA 예측기 유닛(48)은 기계 학습(ML) 플랫폼을 포함할 수 있다. ML 플랫폼은 하나 이상의 ML 모델을 포함할 수 있다. 모델은 SCS(35)(도 1에 도시됨) 또는 CASD 시스템(10)(도 1에 도시됨)으로부터 통신 디바이스(40)로 다운로드될 수 있다. ML 플랫폼은 지도 기계 학습, 비지도 기계 학습 또는 지도 및 비지도 기계 학습 모두를 포함할 수 있다. ML 플랫폼은 예를 들어 인공 신경망(ANN), 컨볼루션 신경망(CNN), 심층 CNN(DCNN), RCNN, 마스크-RCNN, 심층 컨볼루션 인코더-디코더(DCED), 순환 신경망(RNN), 신경 튜링 머신(neural Turing machine: NTM), 미분 신경 컴퓨터(DNC), 지원 벡터 머신(SVM), 딥 러닝 신경망(DLNN), 나이브 베이즈, 결정 트리, 선형 회귀, Q-학습, 시간차(TD: temporal difference), 심층 적대 네트워크, 퍼지 논리 또는 지도 또는 비지도 기계 학습이 가능한 임의의 다른 기계 지능 플랫폼을 포함할 수 있다. CDIA 예측기 유닛(48)은 하나 이상의 플랫폼 중립적 또는 플랫폼 불가지론적 API를 포함할 수 있다.
CDIA 예측기 유닛(48)은 예를 들어, 디바이스 상의 웹 브라우저와 같은 클라이언트 애플리케이션의 단일 동작 세션 동작의 하나 이상의 활동을 포함하여 통신 디바이스(40) 상의 활동을 청취하거나 모니터링하도록 구성될 수 있다. CDIA 예측기 유닛(48)은 통신 디바이스(40)에서 클라이언트 애플리케이션을 작동할 때의 행동 패턴을 포함하여 조작자 행동을 모니터링 및 학습하고 저장소(42) 또는 데이터베이스(47)에 관련 활동들을 로그 및 기록하도록 구성될 수 있다. CDIA 예측기 유닛(48)은 활동 로그 데이터를 CASD 시스템(10)(도 1에 도시됨)으로 전송하도록 구성될 수 있어, CASD 시스템(10)에 의해 구축된 ML 모델을 미세 조정하거나 업데이트하기 위한 트레이닝 데이터로 사용될 수 있다.
CDIA 예측기(48)는 입력을 수신하거나 하나 이상의 활동을 청취하고 모니터링할 수 있으며, 이는 세션 동안 클라이언트측 클라이언트 애플리케이션에서 또는 이에 의해 수행되는 하나 이상의 활동의 시퀀스를 포함할 수 있다. CDIA 예측기(48)는 하나 이상의 활동의 시퀀스를 분석하고 클라이언트 애플리케이션 또는 통신 디바이스(40)에서 조작자에 의해 수행될 가능성이 있는 다음 활동을 예측하도록 구성될 수 있다. 예를 들어, 사용자 로그인 세션 동안, CDIA 예측기(48)는 이미 발생했거나 세션 동안 발생한 조작자에 의한 활동 시퀀스를 분석한 다음 해당 세션 동안 발생할 가능성이 있는 다음 활동을 예측하는데, 이는 예를 들어 RPC, 앱 또는 "아무것도 하지 않음"이 포함될 수 있다.
CDIA 예측기(48)는 클라이언트 애플리케이션에서 실행될 수 있도록 ML 모델과 통합되거나 포함된 클라이언트 애플리케이션(예를 들어, 클라이언트측 웹 브라우저)의 프론트 엔드 컴퓨터 프로그램 코드를 포함할 수 있다. ML 모델의 입력과 ML 모델의 출력이 모두 단순하게 유지될 수 있으므로, CDIA 예측기(48)는 예를 들어 몇 마이크로초(μs) 내지 수백 마이크로초 또는 밀리초 또는 그 이상과 같이 거의 즉각적으로 예측을 할 수 있다. CDIA 예측기(48)는 통신 디바이스(40)의 백그라운드에서 동작할 수 있고, 이에 의해 조작자가 통신 디바이스(40) 상의 하나 이상의 다른 클라이언트 애플리케이션과 상호작용하여 다른 관련 없는 활동을 수행할 수 있게 한다.
비-제한적인 실시예에서, CDIA 예측기 유닛(48)은 어텐션 메커니즘을 통해 인코더와 디코더를 연결하도록 구성될 수 있는 피드-포워드 심층 신경망(DNN) 및 변환기(또는 시퀀스 변환) ML 모델을 포함한다. 변환기 모델은 예를 들어 미국 캘리포니아 롱비치에서 열린 제31회 신경 정보 처리 시스템에 관한 컨퍼런스(NIPS 2017)에서 아시시 바스와니(Ashish Vaswani)가 발표한 "주의는 당신이 필요한 전부입니다(attention Is All You Need)"라는 제목의 기사에 설명된 바와 같이, 인코더-디코더 구조를 포함하는 모델 아키텍처를 포함할 수 있다. 기사에 제공된 변환기 모델에 대한 설명은 기사의 도 1에 묘사된 변환기 모델 아키텍처를 포함하여 본 명세서에 참조로 포함된다. 변환기 모델은 자연어 접근 방식에 기초하여 동작 액션과 같은 활동을 예측할 수 있다. 변환기 모델은 예를 들어 자연어 접근 방식을 사용하여 통신 디바이스(40)의 클라이언트 애플리케이션(앱)에 대한 활동(예를 들어, 조작자 액션)의 이력과 같은 조작자 여정(journey)에 기초하여 트레이닝될 수 있다. 변환기 모델은 웹 호환 포멧으로 통신 디바이스(40)에 저장될 수 있다. 변환기 모델은 조작자 여정에 있는 이전 활동들에 기초하여 클라이언트 앱 또는 통신 디바이스(40)에서 발생할 가능성이 있는 다음 활동을 예측할 수 있다. 예측된 결과는 통신 디바이스(40)에 컴퓨터 자산을 선제적으로 검색하고 프리페치하거나 프리로드하는데 사용될 수 있다.
클라이언트 애플리케이션은 예를 들어 웹 브라우저 애플리케이션, 판매자 또는 벤더 애플리케이션, 쇼핑 애플리케이션, 사용자 애플리케이션, 이메일 애플리케이션, 정부 기관 애플리케이션, 기계 번역 애플리케이션, 언어 번역 애플리케이션, 웹 호환 가능 애플리케이션, 소셜 네트워크 애플리케이션, 또는 통신 디바이스(40) 에 로드되거나 설치될 수 있는 임의의 다른 클라이언트측 컴퓨터 애플리케이션을 포함할 수 있지만 이에 한정되지 않는다.
CDIA 예측기(48)는 어텐션 메커니즘을 포함할 수 있다. 어텐션 메커니즘은 예를 들어 그 전체가 본 명세서에 참고로 포함된 아시시 바스와니의 섹션 3("모델 아키텍처")의 "Attention Is All You Need"라는 제목으로 위에서 언급한 기사, 또는 그 전체가 본 명세서에 참고로 포함된 노암 엠 셰이저(Noam M. Shazeer)에게 2019년 10월 22일 허여된 "어텐션 기반 시퀀스 변환 신경망"이라는 제목의 미국 특허 번호 10,452,978에서 설명된 바와같이, 어텐션 함수를 포함할 수 있다. 어텐션 메커니즘은 쿼리와 키-값 쌍 세트를 출력에 매핑하도록 구성할 수 있는데, 여기서 쿼리, 키, 값 및 출력은 모두 벡터이다. 출력은 값들의 가중치 합으로 계산될 수 있으며, 여기서 각 값에 할당된 가중치는 해당 키와 쿼리의 호환성 함수에 의해 계산될 수 있다. 어텐션 메커니즘은 변환기 모델에서 어텐션 가중치를 계산하는데 사용될 수 있다.
어텐션 메커니즘은 패딩(padding) 어텐션 마스크 및 예견(look-ahead) 어텐션 마스크를 가질 수 있다. 어텐션 메커니즘은 셀프 어텐션 또는 다중 헤드(multi-head) 어텐션을 포함할 수 있다. 셀프 어텐션(인트라(intra) 어텐션이라고도 함)은 단일 입력 시퀀스의 상이한 위치에 주의를 기울여 해당 시퀀스의 표현을 계산하도록 구성될 수 있다. 다중 헤드 어텐션은 쿼리, 키 및 값을 복수의 개별 차원에 대해 상이한 학습된 선형 투영을 이용하여 여러 번 선형으로 투영하도록 구성될 수 있다. 쿼리, 키 및 값의 투영된 버전 각각에서, 변환기 모델은 어텐션 기능을 병렬로 수행하여, 연결하고 다시 투영할 수 있는 다차원 출력 값을 생성하여 변환기 모델에 의해 사용될 수 있는 최종 값을 생성할 수 있다. .
패딩 어텐션 마스크는 시퀀스의 모든 패드 토큰을 마스킹하고 모델이 패딩을 입력으로 취급하지 않도록 보장하도록 구성될 수 있다. 패딩 어텐션 마스크는 패드 값들이 있는 위치를 표시하고 해당 위치에서 값(예를 들어, "1")을 출력하고 나머지 위치에서 다른 값(예를 들어, "0")을 출력할 수 있다.
예견 마스크는 미래 토큰을 순서대로 마스킹하도록 구성될 수 있다. 예를 들어, 예견 마스크는 시퀀스의 어떤 항목을 사용하지 않아야 하는지 나타내도록 정렬될 수 있다.
CASPP 유닛(49)은 컴퓨팅 디바이스 또는 모듈을 포함할 수 있거나, 컴퓨팅 디바이스 또는 모듈에 포함될 수 있다. CASPP 유닛(49)은 프로세서(41)에 포함되거나 통합될 수 있다. CASPP 유닛(49)은 단일 컴퓨팅 디바이스 또는 모듈에서 CDIA 예측기 유닛(48)과 결합될 수 있다. CASPP 유닛(49)은 ML 플랫폼을 포함할 수 있다. ML 플랫폼에는 ML 모델이 포함될 수 있다. ML 모델은 SCS(35)(도 1에 도시됨)로부터 통신 디바이스(40)로 다운로드될 수 있다. CDIA 예측기 유닛(48) 및 CASPP 유닛(49)이 단일 컴퓨팅 디바이스 또는 모듈에 결합되는 비-제한적인 실시예에서, 실시예는 CDIA 예측기 유닛(48) 및 CASP 유닛(49) 모두의 프로세스 또는 동작을 수행하는 단일 ML 모델을 포함할 수 있다.
CASPP 유닛(49)은 CDIA 유닛(48)으로부터 예측 데이터를 수신하고, 예측 데이터에 기초하여 예측 데이터와 관련될 수 있는 컴퓨터 자산, 또는 예측된 활동이 통신 디바이스(40)에서 수행될 때 조작자가 수신하고 볼 것으로 예상할 수 있는 컴퓨터 자산에 대해 네트워크(20)를 선제적으로 검색하거나 통신 디바이스(40)의 웹 브라우저로 하여금 네트워크(20)를 선제적으로 검색하게 하도록 구성될 수 있다. CASPP 유닛(49)은 선제적 검색 결과를 분석하고, 예측 데이터에 기초하여 최상의 매칭 결과인 컴퓨터 자산을 프리페치 및 프리로드할 수 있다. 최상의 매칭 결과는 예를 들어 CASPP 유닛(49)의 DNN에 의해 결정될 수 있으며, 이는 ML 모델을 적용하여 전체(또는 전체의 일부) 검색 결과를 분석하고, 결과에 대한 관련성 가중치를 계산하고, 예측 데이터와 가장 관련성이 높은 결과를 식별할 수 있다. 일 실시예에서, CASPP 유닛(49)은 예를 들어 통신 디바이스의 웹 브라우저와 상호작용하여 가장 큰 관련성 값을 갖는 컴퓨터 자산을 선제적으로 검색, 프리페치 및 프리로드할 수 있다.
데이터베이스(47)는 별도의 컴퓨팅 디바이스 또는 모듈(도 2에 도시됨)로서 구성될 수 있거나, HDD(43)에 포함되거나 통합될 수 있다. 데이터베이스(47)는 통신 디바이스(40)에 프리페치되거나 프리로드되는 컴퓨터 자산들을 저장할 수 있다. 데이터베이스(47)는 통신 디바이스(40) 상의 각 클라이언트 애플리케이션에 대한 이력 활동 데이터를 저장할 수 있다. 데이터베이스(47)는 각 클라이언트 애플리케이션에서 수행된 각 세션에 대한 이력 활동 데이터를 저장할 수 있다. 데이터베이스(47)는 활동 데이터를 파일 또는 레코드로 저장할 수 있다. 파일 또는 레코드는 통신 디바이스(40)를 사용한 각각의 고유한 클라이언트 애플리케이션 또는 각 조작자에 링크될 수 있다. 저장된 활동 데이터는 데이터베이스(47)로부터 액세스, 검색 또는 탐색될 수 있고 통신 디바이스(40)의 하나 이상의 컴포넌트(예를 들어, 프로세서(41), CDIA 예측기 유닛(48) 또는 CASPP 유닛(49))로 전송될 수 있다. 활동 데이터는 검색되어 직접 또는 클라우드 네트워크(30)(도 1에 도시됨)를 통해 CASD 시스템(10)으로 전송될 수 있다.
도 3은 본 개시의 원리에 따라 구성된 CASD 시스템(10)의 비-제한적인 실시예를 나타내는 블록도이다. CASD 시스템(10)은 하나 이상의 컴퓨팅 디바이스로 구성될 수 있다. CASD 시스템(10)은 프로세서(110), 저장소(120), 디스크 드라이브(DD)(130), 네트워크 인터페이스(140), 입/출력(I/O) 인터페이스(150), 드라이버 유닛(160) 및 데이터베이스(170)를 포함할 수 있다. CASD 시스템(10)은 기계 학습 모델(MLM) 빌더(180)를 포함할 수 있다. CASD 시스템은 기계 학습 생산(MLP) 파이프라인(190)을 포함할 수 있다. CASD 시스템(10)은 컴포넌트(110~190) 각각에 연결할 수 있는 버스(105)를 포함할 수 있다. 버스(105)는 통신 링크에 의해 컴포넌트(110~190) 각각에 연결될 수 있다.
CASD 시스템(10)은 예를 들어, 스피커와 같은 사운드 생성 디바이스(미도시) 또는 디스플레이 디바이스(미도시)와 같은 비디오 생성 디바이스를 포함할 수 있다.
CASD 시스템(10)은 하나 이상의 고속 인터페이스(미도시), 고속 확장 포트(미도시), 저속 인터페이스(미도시) 또는 대용량 저장 디바이스(미도시)를 포함할 수 있으며, 이는 다양한 버스를 사용하여 상호 연결될 수 있으며 공통 마더보드에 장착되거나 적절한 다른 방식으로 장착될 수 있다.
프로세서(110)는 예를 들어, 임의의 다양한 상업적으로 이용가능한 그래픽 처리 유닛 디바이스와 같은 컴퓨팅 디바이스를 포함할 수 있다. 듀얼 마이크로프로세서 및 기타 다중 프로세서 아키텍처가 프로세서(110)에 포함될 수 있다. 프로세서(110)는 중앙 처리 장치(CPU), 그래픽 처리 장치(GPU), 범용 GPU(GPGPU), 필드 프로그래머블 게이트 어레이(FGPA), 주문형 집적 회로(ASIC) 또는 매니코어 프로세서를 포함할 수 있다. 프로세서(110)는 컴퓨팅 디바이스를 포함한다. 프로세서(110)는 통신 디바이스(40)(도 1에 도시됨)에 컴퓨팅 디바이스를 포함할 수 있다.
프로세서(110)는 저장 디바이스(120)에 저장된 명령들을 포함하여 CASD 시스템(10) 내에서 실행하기 위한 명령들을 처리할 수 있다. 프로세서(110)는 I/O 인터페이스(150) 또는 고속 인터페이스(미도시)에 연결된 디스플레이 디바이스와 같은 외부 입/출력 디바이스에 GUI에 대한 그래픽 정보를 표시하기 위한 명령들을 처리할 수 있다. 다른 구현에서, 다중 프로세서 및/또는 다중 버스가 다중 메모리 및 메모리 유형과 함께 적절하게 사용될 수 있다.
CASD 시스템(10)은 프로세서(110) 또는 CASD 시스템(10)의 하나 이상의 디바이스 컴포넌트에 의해 실행될 때 프로세스(300)(도 5에 도시됨)를 포함하여 본 개시의 단계, 프로세스 및 방법이 수행되게 할 수 있는 실행 가능하거나 해석 가능한 컴퓨터 프로그램 코드 또는 명령들을 저장할 수 있는 컴퓨터 판독 가능 매체를 포함할 수 있다. 컴퓨터 판독 가능 매체는 저장소(120) 또는 DD(130)에 제공될 수 있다.
저장부(120)는 ROM(120A) 및 RAM(120B)을 포함할 수 있다. 기본 입/출력 시스템(BIOS)은 예를 들어, ROM, EPROM 또는 EEPROM을 포함할 수 있는 비-휘발성 메모리(120A)에 저장될 수 있다. BIOS는 시동 동안과 같이 CASD 시스템(10)의 컴포넌트 간에 정보를 전송하는데 도움이 되는 기본 루틴을 포함할 수 있다. 램(120B)은 데이터 캐싱을 위한 정적 램과 같은 고속 램을 포함할 수 있다.
DD(130)는 하드 디스크 드라이브(HDD)(130A) 및/또는 광 디스크 드라이브(ODD)(130B)를 포함할 수 있다. HDD(130A)는 예를 들어, EIDE(Enhanced Integrated Drive Electronics) 드라이브, SATA(Serial Advanced Technology Attachment) 드라이브, 또는 임의의 다른 하드 드라이브 디바이스를 포함할 수 있다. ODD(130B)는 예를 들어 CD-ROM 디스크(미도시)로부터/로의 읽기 또는 쓰기, 또는 디지털 다목적 디스크(DVD)와 같은 다른 고용량 광 매체로부터/로의 읽기 또는 쓰기를 포함할 수 있다. HDD(130A)는 적절한 섀시(미도시)에서 외부 사용을 위해 구성될 수 있다. DD(130)는 하드 디스크 드라이브 인터페이스(미도시) 및 광 드라이브 인터페이스(미도시)에 의해 시스템 버스(105)에 각각 연결될 수 있다. 하드 디스크 드라이브 인터페이스(미도시)는 USB(Universal Serial Bus)(미도시), IEEE 1394 인터페이스(미도시), 또는 외부 애플리케이션을 위한 임의의 다른 적절한 인터페이스를 포함할 수 있다.
컴퓨터 판독 가능 매체를 포함하는 저장 디바이스(120) 또는 DD(130)는 데이터, 데이터 구조, 및 컴퓨터 실행 가능 코드 또는 명령들의 비-휘발성 저장을 제공할 수 있다. 저장소(120) 또는 DD(130)는 적절한 디지털 포멧의 임의의 데이터 저장소를 수용할 수 있다. 저장소(120) 또는 DD(130)는 본 명세서에 설명된 아키텍처의 양태를 실행하는데 사용될 수 있는 하나 이상의 컴퓨터 애플리케이션을 포함할 수 있다. 저장소(120) 또는 DD(130)는 예를 들어, 플래시 메모리 또는 NVRAM 메모리를 포함할 수 있다.
운영 체제(미도시), 하나 이상의 애플리케이션 프로그램(미도시), 하나 이상의 API, 및 프로그램 데이터(미도시)를 포함하여 하나 이상의 프로그램 모듈이 저장소(120) 또는 DD(130)에 저장될 수 있다. API에는 예를 들어 웹 API, SOAP API, RPC API, REST API 또는 기타 유틸리티 또는 서비스 API가 포함될 수 있다. 임의의(또는 모든) 프로그램 모듈은 컴퓨터 프로그램 코드의 실행 가능한 섹션으로서 RAM(120B)에 캐시될 수 있다.
네트워크 인터페이스(140)는 네트워크(20) 또는 클라우드 네트워크(30)(도 1에 도시됨)와 같은 네트워크에 연결될 수 있다. CASD(10)는 예를 들어 통신 링크(5) 및 네트워크(20)를 통해 통신 디바이스(40)와 통신하는 네트워크 인터페이스(140)를 통해 하나 이상의 통신 디바이스(40)(도 1에 도시됨)에 연결할 수 있다. 네트워크 인터페이스(140)는 하나 이상의 통신 링크(5)(도 1에 도시됨)를 통해 네트워크(20) 또는 클라우드 네트워크(30)에 연결될 수 있다. 네트워크 인터페이스(140)는 유선 또는 무선 통신 네트워크 인터페이스(미도시) 또는 모뎀(미도시)을 포함할 수 있다. 근거리 통신망(LAN)에서 사용되는 경우, CASD 시스템(10)은 유선 또는 무선 통신 네트워크 인터페이스를 통해 LAN 네트워크에 연결될 수 있으며, WAN(광역 네트워크)에서 사용되는 경우, CASD 시스템(10)은 모뎀을 통해 WAN 네트워크에 연결될 수 있다. 네트워크(20) 또는 클라우드 네트워크(30)(도 1에 도시됨)는 LAN, WAN, 인터넷, 또는 임의의 다른 네트워크를 포함할 수 있다. 모뎀(미도시)은 내부 또는 외부일 수 있고 유선 또는 무선일 수 있다. 모뎀은 예를 들어 직렬 포트 인터페이스(미도시)를 통해 버스(105)에 연결될 수 있다.
(I/O) 인터페이스(150)는, 예를 들어, 시스템 관리자와 같은 사용자로부터 명령 및 데이터를 수신할 수 있다. I/O 인터페이스(150)는 예를 들어 키보드(미도시), 마우스(미도시), 포인터(미도시), 마이크로폰(미도시), 스피커(미도시) 또는 디스플레이(미도시)를 포함하여 하나 이상의 입/출력 디바이스(미도시)에 연결하거나 이들과 통신하도록 구성될 수 있다. 수신된 명령 및 데이터는 버스(105)를 통해 명령 및 데이터 신호로서 I/O 인터페이스(150)로부터 CASD 시스템(10)의 임의의 컴포넌트로 포워딩될 수 있다.
드라이버 유닛(160)은 오디오 드라이버(160A) 및 비디오 드라이버(160B)를 포함할 수 있다. 오디오 드라이버(160A)는 사운드 카드, 사운드 드라이버(미도시), IVR 유닛, 또는 예를 들어, 스피커(미도시)와 같은 사운드 생성 디바이스(미도시)에서 사운드 신호를 렌더링하는데 필요한 임의의 다른 디바이스를 포함할 수 있다. 비디오 드라이버(160B)는 비디오 카드(미도시), 그래픽 드라이버(미도시), 비디오 어댑터(미도시), 또는 디스플레이 디바이스(미도시)에 이미지 신호를 렌더링하는데 필요한 임의의 다른 디바이스를 포함할 수 있다.
MLM 빌더(180)는 컴퓨팅 디바이스 또는 모듈을 포함할 수 있거나, 컴퓨팅 디바이스 또는 모듈에 포함될 수 있다. MLM 빌더(180)는 ML 플랫폼을 포함할 수 있다. ML 플랫폼에는 지도 기계 학습, 비지도 기계 학습 또는 지도 및 비지도 기계 학습 모두가 포함될 수 있다. 기계 학습 플랫폼은 예를 들어 ANN, CNN, DCNN, RCNN, Mask-RCNN, DCED, RNN, NTM, DNC, SVM, DLNN, TD 나이브 베이즈, 의사결정 트리, 선형 회귀, Q-학습, 심층 적대적 네트워크, 퍼지 논리 또는 지도 또는 비지도 기계 학습이 가능한 기타 기계 지능 플랫폼을 포함할 수 있다. MLM 빌더(180)는 하나 이상의 플랫폼 중립적 또는 플랫폼 불가지론적 API를 포함할 수 있다. MLM 빌더(180)는 자연어 처리(NLP) 애플리케이션을 포함할 수 있다.
MLM 빌더(180)는 디바이스에 설치될 때 통신 디바이스(40)(도 1에 도시됨) 상의 활동을 예측하는데 사용될 수 있는 하나 이상의 ML 모델을 선택, 생성 또는 구축하도록 구성될 수 있다. MLM 빌더(180)는 예를 들어 모델 변환을 사용하여 모델을 구축함으로써 사용자 개입 없이 ML 모델을 자동으로 구축하도록 구성될 수 있다. ML 모델은 변환기 모델을 포함하도록 생성할 수 있다. ML 모델은 세션 동안 통신 디바이스(40)(도 1에 도시됨)에 대한 활동을 청취, 모니터링 및 분석하고 통신 디바이스(40)에서 다음으로 가능한 활동을 예측하도록 구축될 수 있다. ML 모델은 트레이닝 데이터로부터 학습하고 예를 들어 특정 클라이언트 애플리케이션 또는 클라이언트 애플리케이션 유형의 최종 사용자에 의해, 또는 특정 유형의 통신 디바이스(40) 또는 통신 디바이스(40)의 그룹에 의해 일반적으로 발생하는 조작자 행동을 포함할 수 있는 조작자 행동을 학습하도록 구축될 수 있다. 트레이닝 데이터에는 예를 들어 <<https://research.google/tools/datasets/>>에서 찾을 수 있는 GOOGLE® Research > Tools & Downloads > Datasets와 같은 웹사이트(미도시)로부터 검색될 수 있는 이력 활동 데이터 트레이닝 세트가 포함될 수 있다. 트레이닝 데이터에는 통신 디바이스(40)(도 1에 도시됨)로부터 수신된 활동 로그 데이터가 포함될 수 있다.
ML 모델은 입력으로서 활동 시퀀스(예를 들어, 하나 이상의 활동)를 수신하고, 활동 시퀀스를 분석하고, 다음 가능성 있는 활동을 예측하고, 예측된 활동과 가장 잘 매칭하는 컴퓨터 자산에 대해 선제적으로 검색하거나 클라이언트 애플리케이션으로 하여금 선제적으로 검색하게 하도록 구성될 수 있다. ML 모델은 최상의 매칭 컴퓨터 자산을 프리페치 및 프리로드하고 주어진 조작자 동안 통신 디바이스(40)(도 1에 도시됨)에서 렌더링에 사용될 수 있도록 추가로 구성될 수 있다. MLM 빌더(180)는 클라이언트측 클라이언트 애플리케이션(예를 들어, 웹 브라우저)과 상호작용하고, 예측된 활동에 기초하여 예를 들어 조작자가 통신 디바이스(40)에서 예측된 활동을 수행할 때 컴퓨터 자산이 이용가능하고 거의 즉각적으로 렌더링될 수 있도록 클라이언트 애플리케이션이 최상의 매칭 컴퓨터 자산을 프리페치하거나 프리로드하도록 ML 모델을 구성될 수 있으며, 이에 의해 대기시간을 제거할 수 있다.
데이터베이스(170)는 빅(big) 데이터 데이터베이스를 포함할 수 있다. 데이터베이스(170)는 예를 들어, 데이터 레이크(lake), Hadoop, HBase, NoSQL, PostGres MySQL, 또는 많은 양의 데이터를 저장할 수 있고 예를 들어 빅 데이터 분석과 같은 고성능 컴퓨팅 애플리케이션에서 요청된 데이터를 검색하거나 탐색할 수 있는 임의의 데이터베이스 또는 시스템을 포함할 수 있다. 데이터베이스(170)는 많은 양의 활동 로그 데이터, 예를 들어, 엑사바이트, 제타바이트, 요타바이트 또는 더 많은 양의 활동 로그 데이터를 저장할 수 있다. 데이터베이스(170)는 대량의 트레이닝 세트 데이터를 저장할 수 있다. 활동 로그 데이터 또는 트레이닝 세트 데이터는 기계 학습 및 트레이닝 기술의 숙련자에 의해 이해되는 바와 같이, 예를 들어 검색 엔진 조작자, ISP 또는 임의의 다른 소스에 의해 생성될 수 있다. 활동 로그 데이터는 세션별로 그룹화될 수 있다. 각 세션에는 시간순으로 정렬된 활동 시퀀스가 포함될 수 있다. 각 활동은 문자열로 나타낼 수 있다.
활동 로그 데이터는 예를 들어, 활동을 수행할 때 사용된 클라이언트 애플리케이션(예를 들어, GOOGLE® 검색 엔진); 각 클라이언트 애플리케이션에서 수행되는 세션 수; 각 세션의 길이; 각 세션 동안 포함된 활동들; 각 세션 동안에 식별, 조회, 액세스, 검색 또는 다운로드된 컴퓨터 자산을 포함하는 검색 결과; 또는 예를 들어 특정 클라이언트 애플리케이션을 사용할 때 클라이언트 앱에서 세션 중에 발생될 수 있는 일련의 활동이 제공될 때 조작자의 다음 활동을 정확하게 예측할 수 있도록 활동 기반 행동 패턴을 식별하기 위해 분석될 수 있는 임의의 다른 정보를 포함할 수 있다.
데이터베이스(170)는 활동 로그 데이터 데이터베이스(또는 파티션)(172) 및 ML 모델 또는 (CNN) 데이터베이스(또는 파티션)(174)를 포함할 수 있다. 활동 로그 데이터 데이터베이스(172)는 활동 로그 데이터 및 활동 로그 트레이닝 데이터 세트를 저장할 수 있다. 활동 로그 트레이닝 데이터 세트에는 라벨링된 트레이닝 데이터 세트가 포함될 수 있다. ML 모델 데이터베이스(174)는 MLM 빌더(180)에 의해 구축된 ML 모델을 저장할 수 있다. ML 모델 데이터베이스(174)는 MLP 파이프라인(190)에 의해 트레이닝되었고 클라우드 네트워크(30)(도 1에 도시)를 통해 통신 디바이스(40)(도 1에 도시)에 배포할 준비가 된 트레이닝 ML 모델을 저장할 수 있다. ML 모델은 가중치 및 계산이 포함된 완전한 텐서플로우 프로그램을 포함하여 텐서플로우 저장 모델(TensorFlow SavedModels)로서 저장될 수 있다.
MLM 빌더(180)는 ML 모델을 구축할 때 데이터베이스(170)와 상호작용하고 데이터베이스(170)에 질의할 수 있다. 통신 디바이스(40)(도 1 참조)에 포함될 수 있는 각 유형의 클라이언트 앱(예를 들어, GOOGLE® 검색 엔진)에 대해 고유한 ML 모델이 구축될 수 있다. 각각의 고유한 유형의 통신 디바이스(40)에 대해 고유한 ML 모델이 구축될 수 있다(예를 들어, GOOGLE® 폰용 모델이 구축될 수 있음). MLM 빌더(180)는 특정 클라이언트 앱 또는 통신 디바이스(40)에 대한 활동 로그 데이터의 대규모 풀에 걸쳐 데이터베이스(170)를 쿼리하고 활동 로그 데이터를 분석하여, 클라이언트 애플리케이션 또는 디바이스를 작동하는 세션 동안 발생된 일련의 활동이 디스플레이될 때 클라이언트 애플리케이션 또는 통신 디바이스상의 활동을 일관되고 정확하게 예측하는 ML 모델을 구축할 수 있다.
비-제한적인 실시예에서, MLM 빌더(180)는 ML 모델을 구축하여 조작자에 구애받지 않고 및/또는 플랫폼에 구애받지 않고 임의의 조작자 또는 통신 디바이스(40)(도 4에 도시됨)와 함께 작동할 수 있도록 구성될 수 있다. 따라서 ML 모델은 개인 식별 정보(PII) 없이 작동하도록 구성할 수 있다. MLM 빌더(180)는 클라이언트 앱 또는 통신 디바이스(40)를 사용할 때 임의의 조작자에 의해 사용될 수 있는 집계(aggregate) 모델로서 ML 모델을 구축하도록 구성될 수 있다. MLM 빌더(180)는 예를 들어 통신 디바이스(40)(도 1에 도시됨) 상의 웹 브라우저와 같은 클라이언트 애플리케이션의 프론트 엔드 컴퓨터 실행 코드와 통합되거나 그에 통합될 수 있고 디바이스에서 로컬로 예측할 수 있도록 ML 모델을 구축할 수 있다.
비-제한적인 실시예에서, MLM 빌더(180)는 세션 동안의 활동 시퀀스에 기초하여 통신 디바이스(40)에 의해 로드될 다음 클라이언트 애플리케이션을 예측할 수 있는 피드-포워드 DNN을 포함하도록 ML 모델을 빌드할 수 있으며, 이는 디바이스에 로드되는 앱의 시간순 순서가 포함될 수 있으며 그 중 적어도 하나는 RPC와 같은 활동을 따를 수 있다. ML 모델은 각 입력 데이터 항목(entry)의 길이가 동일하도록 구성할 수 있다. 이와 관련하여, 이 모델은 시퀀스에 있는 엘리먼트 수가 기정의된 파라미터(MAX_LENGTH)보다 작은 경우, ML 모델이 하나 이상의 플레이스 홀더(PLACE_HOLDER)를 생성하고 입력 데이터 시퀀스의 끝에 추가하여 시퀀스의 길이를 기정의된 파라미터(MAX_LENGTH)와 동일하게 만들고 결과적으로 증가된 시퀀스를 생성하도록 정렬될 수 있다. 증가된 시퀀스는 ML 모델에 제공되어 각 앱의 우도(likelihood)를 평가하고 예측할 수 있다. ML 모델은 로지스틱 회귀 모델이라고도 알려진 로짓(Logit) 모델을 포함하도록 구성될 수 있다.
MLM 빌더(180)는 모델이 트레이닝될 수 있는 속도를 부스트하기(높이기) 위해 어텐션 메커니즘을 사용하도록 구성된 변환기 모델을 구축할 수 있다. 변환기 모델은 예를 들어 인코더 및 디코더의 스택을 포함하여 하나 이상의 인코더 및 하나 이상의 디코더를 포함하도록 구성될 수 있다. 인코더는 패딩 어텐션 마스크 및 예견 어텐션 마스크 중 적어도 하나를 포함할 수 있는 피드-포워드 DNN 및 어텐션 메커니즘을 포함하도록 구성될 수 있다.
도 4는 인코더 스택(220) 및 디코더 스택(230)을 포함하도록 구성된 변환기 모델(200)의 비-제한적인 예를 도시한다. 모델(200)은 인코더 스택(220)의 제1 인코더(220A)에서 입력 활동 시퀀스(210)를 수신하고 마지막 인코더(220E)로부터의 출력을 디코더 스택(230)의 디코더(230A~230E) 각각에 공급하도록 구성될 수 있다. 결과는 디코더 스택(230)의 모든 디코더에 동시에 병렬로 공급될 수 있다. 디코더 스택(230)내의 마지막 디코더(230E)로부터의 결과는 모델(200)의 출력(240)일 수 있다. 인코더(220A~220E) 중 적어도 하나는 피드-포워드 DNN 및 어텐션 메커니즘을 포함할 수 있다. 변환기 모델(200)의 디코더(230A~230E) 중 적어도 하나는 피드-포워드 DNN 및 인코더-디코더 어텐션 메커니즘을 포함할 수 있다. 입력 활동 시퀀스(210)는 문자열 목록을 포함할 수 있고, 모델(200)은 입력 활동 시퀀스(210)에서의 각 엘리먼트의 위치를 포함하여 문자열의 위치 정보를 설명하도록 구성될 수 있다. 변환기 모델(200)은 위치 임베딩(positioning embedding)을 포함할 수 있다.
MLP 파이프라인(190)은 ML 모델이 생성되거나 구축된 후에 ML 모델을 트레이닝하도록 구성될 수 있다. MLP 파이프라인(190)은 예를 들어, 텐서플로우 확장(TFX) 파이프라인 플랫폼과 같은 기계 학습 파이프라인(MLP) 플랫폼을 포함할 수 있다. MLP 파이프라인(190)은 기계 학습 생산 분야의 숙련자에 의해 이해되는 바와 같이, 기계 학습 모델의 트레이닝 및 생산시 숙련자에 의해 이해되는 바와 같이 데이터 수집, 데이터 검증, 기능(feature) 엔지니어링, 모델 트레이닝, 모델 검증, 모델 전달 및 모델 제공을 포함할 수 있다. .
MLP 파이프라인(190)은 고정 데이터로 ML 모델을 트레이닝하도록 구성될 수 있다. MLP 파이프라인(190)은 컴퓨팅 디바이스 또는 모듈을 포함할 수 있다. MLP 파이프라인(190)은 진화하는 데이터에 대한 지속적인 트레이닝을 통해 최신 ML 모델을 생성하고 제공하도록 구성될 수 있다. MLP 파이프라인(190)은 라벨링된 데이터로 ML 모델을 트레이닝하도록 구성될 수 있다. MLP 파이프라인(190)은 최적의 기능 공간 커버리지 및 최소 차원을 위해 구성될 수 있다.
ML 모델이 트레이닝된 후, MLP 파이프라인(190)은 가중치 및 계산을 포함하는 완전한 텐서플로우 프로그램을 포함할 수 있는 ML 모델 데이터베이스(174)(도 3에 도시됨)에 예를 들어 TensorFlow SavedModel 포멧을 사용하여 상기 트레이닝된 ML 모델을 저장할 수 있다. 저장된 모델(SavedModel)에는 실행할 오리지널 모델 빌드 코드가 필요하지 않으므로 공유 또는 배포에 유용하다. MLP 파이프라인(190)은 예를 들어 <<https://github.com/tensorflow/tfjs/tree/master/tfjs-converter>>에서 찾을 수 있는 예를 들어, tfjs_converter와 같은 변환기(미도시)를 포함할 수 있다. 변환기는 ML 모델 데이터베이스(174)(도 3 참조)에서 ML 모델을 검색하고 트레이닝이 완료된 후 ML 모델(예를 들어, TensorFlow SavedModel)을 예를 들어 자바스크립트와 같은 스크립팅 언어에 의해 사용될 수 있는 포멧으로 변환하도록 구성될 수 있다. MLP 파이프라인(190)은 변환된 ML 모델을 SCS(35)(도 1에 도시됨)에 업로드하도록 구성될 수 있고, SCS(35)는 차례로 ML 모델을 각각의 통신 디바이스(40)(도 1에 도시됨)에 배포 또는 다운로드할 수 있다.
MLP 파이프라인(190)은 트레이닝된 ML 모델을 통신 디바이스(40)(도 1에 도시됨)에 의해 사용될 수 있는 포맷으로 변환하도록 구성될 수 있다. 예를 들어, MLP 파이프라인(190)은 트레이닝된 ML 모델을 통신 디바이스(40)에 설치된 웹 브라우저 앱의 프론트 엔드 코드에 통합되거나 그와 상호 작용할 수 있는 포멧으로 변환할 수 있다.
도 5는 CASD 시스템(10)(도 1 및 도 3에 도시됨)에 의해 수행될 수 있는 ML 모델 생성 프로세스(300)의 예를 도시한다. 초기에, 활동 로그 데이터는 예를 들어 MLM 빌더(180)(도 3에 도시됨)에 의해 수신될 수 있고(단계 305), 예를 들어 RPC 및 앱을 포함하는 활동 정보를 추출하도록 사전 처리될 수 있다(단계 310). 추출된 활동 정보는 세션별로 그룹화될 수 있으며, 여기서 각 세션은 시간순으로 정렬된 활동 시퀀스를 포함할 수 있다(단계 315). 시퀀스에서 각 활동은 문자열로 나타낼 수 있다.
여러 ML 모델 중 하나는 예를 들어 피드-포워드 DNN 또는 변환기 모델을 포함하는 활동 정보를 사용하여 MLM 빌더(180)에 의해 구축될 수 있다(단계 320). 피드-포워드 DNN 모델이 구축되면(단계 320), 수신된 활동 시퀀스에 기초하여 로드될 다음 애플리케이션을 예측하는 것을 목표로 하는 ML 모델이 구축될 수 있다. 이 유형의 ML 모델에서는 각 입력 데이터 항목의 길이가 동일해야 할 수 있다. 입력 데이터 항목에있는 제1 엘리먼트는 예를 들어 RPC와 같은 후속적으로 발생하는 활동을 포함하여 시퀀스내의 후속 엘리먼트와 함께 로드된 앱을 포함할 수 있다. 시퀀스 내의 엘리먼트의 수가 기정의된 파라미터(MAX_LENGTH)보다 작은 경우, MLM 빌더(180)는 기정의된 파라미터(MAX_LENGTH)와 동일한 길이로 만들기 위해 그 끝에 여러 "PLACE_HOLDER"를 추가할 수 있다. ML 모델은 이 증가된 시퀀스로 제공될 수 있으므로 모델은 각 앱이 발생할 가능성(logit)을 평가할 수 있다. 라벨 세트의 크기는 비-제한적인 예에서 예를 들어 15개에서 30개 사이의 앱과 같이 고유한 앱의 수일 수 있다.
그러나 변환기 모델이 구축되면(단계 320), 제1 엘리먼트가 앱이어야 한다는 요구 사항 없이 임의의 시퀀스를 입력으로 사용하도록 ML 모델이 구축될 수 있다. 피드-포워드 DNN 모델과 마찬가지로, 변환기 모델은 모든 입력 항목의 길이가 동일해야 한다. 따라서, MLM 빌더(180)는 MAX_LENGTH보다 짧은 시퀀스의 끝에 "PLACE_HOLDER"를 추가하도록 구성될 수 있다. 이 모델은 RPC와 앱을 포함하여 모든 활동을 예측하는데 사용될 수 있다. 라벨 세트 크기는 예를 들어 하나의 비-제한적인 예에서 약 2000과 같이 클 수 있다.
피드-포워드 DNN 모델 또는 변환 모델이 구축되었는지 여부에 관계없이(단계 320), ML 모델은 순차적 정보를 모델링하도록 구성될 수 있다. 입력에 문자열 목록이 포함될 수 있으므로, ML 모델은 이러한 문자열의 위치 정보를 설명할 수 있다. 예를 들어, 변환기 모델에는 위치 임베딩이 포함될 수 있다. 위치 임베딩은 피드-포워드 DNN 모델에서도 적용될 수 있다.
일단 모델이 구축되면(단계 320), 이는 예를 들어, MLP 파이프라인(190)(도 3 참조)에 의한 생산을 위해 파이프라인될 수 있으며, 이 파이프라인은 모델을 트레이닝 및 저장하고 트레이닝된 모델을 클라이언트 애플리케이션 프론트 엔드가 사용할 수 있는 포멧으로 변환한 다음 모델을 정적 컨텐츠 서비스(SCS)(35)(도 1에 도시됨)에 업로드할 수 있다. 문자열은 사전 처리되고 정수로 변환될 수 있으므로 ML 모델에서 숫자 피처로서 처리될 수 있다.
일단 구축되면, ML 모델은 예를 들어 MLP 파이프라인(190)에 의해 트레이닝될 수 있다(단계 325). ML 모델은 예를 들어 트레이닝 활동 데이터 세트를 모델에 적용할 수 있는 TFX 파이프라인을 사용하여 트레이닝될 수 있다. 트레이닝된 모델은 예를 들어 Tensorflow SavedModel을 사용하여 데이터베이스(170)에 저장될 수 있다(단계 330). 예를 들어, 트레이닝된 모델(예를 들어, Tensorflow SavedModel)은 어휘 파일 및 라벨 파일과 함께 모델 데이터베이스(174)(도 3에 도시됨)에 저장될 수 있다. 어휘 파일과 라벨 파일 모두 .json 포멧으로 저장될 수 있다. 라벨 파일은 피드-포워드 DNN 모델에서 사용할 수 있도록 구성될 수 있지만 변환기 모델에는 필요하지 않을 수 있다.
그런 다음 트레이닝된 모델은 예를 들어 MLP 파이프라인(190)에 의해 통신 디바이스(40)(도 1에 도시됨) 또는 디바이스에 설치되거나 작동하는 클라이언트 앱과 호환되는 포멧으로 변환될 수 있다(단계 335). 예를 들어, MLP 파이프라인(190)(도 3에 도시됨)은 모델 데이터베이스(174)에서 (예를 들어, SavedModel로 저장된) 모델을 검색하고, 모델에 대란 변환기(예를 들어, tjfs_converter)를 작동시켜 예를 들어, 통신 디바이스(40)(도 1에 도시됨) 상의 웹 브라우저의 프론트-엔드 코드와 통합하기에 적합한 포멧으로 변환할 수 있다.
변환된 ML 모델은 예를 들어 MLP 파이프라인(190)(도 3에 도시됨)에 의해 SCS(35)로 업로드될 수 있다(단계 335). 그런 다음 ML 모델은 SCS(35)(도 1 참조)에 의해 통신 디바이스(40)로 배포 또는 다운로드될 수 있으며(단계 340), 통신 디바이스(40)는 차례로 모델을 로드하고 디바이스의 웹 브라우저의 프론트 엔드 코드와 통합할 수 있다(단계 350). 도 6은 통신 디바이스(CD)(40)로의 모델의 로딩 및 통합의 비-제한적인 예의 블록도를 도시한다.
도 6을 참조하면, 단계(350)에서, 통신 디바이스(CD)(40)는 네트워크(20)를 통해 통신 링크(5)를 통하여 SCS(35)로부터 모델을 다운로드한다. 이 모델은 CD(40)의 웹 브라우저(53)에 통합된다. 로컬 객체 라이브러리(54) 및 로컬 기계 학습(ML) 라이브러리(56)가 CD(40)에 생성되거나 업데이트될 수 있다. 비-제한적인 실시예에서, 로컬 객체 라이브러리(54)는 예를 들어 TFJS Dart 라이브러리와 같은 웹 또는 코어 라이브러리를 포함할 수 있고, 로컬 ML 라이브러리(56)는 자바스크립트 라이브러리(예를 들어, TensorFlow.js 라이브러리)와 같은 기계 학습용 라이브러리를 포함할 수 있다. 일단 웹 브라우저(53)에 통합되면, ML 모델은 입력으로서 활동 시퀀스(51)를 수신할 수 있고, 시퀀스의 과거 활동에 기초하여, 모델은 세션 동안 발생할 가능성이 있는 다음 활동을 예측할 수 있다. 모델은 웹 브라우저(52)를 호출하여 예측된 활동에 기초하여 컴퓨터 자산을 선제적으로 검색하고, 예측된 활동에 대한 최상의 매칭 결과인 컴퓨터 활동을 프리페치 또는 프리로드할 수 있다. 웹 브라우저(52)는 통신 디바이스(40)(도 1에 도시됨) 상의 사용자 인터페이스와 상호작용하도록 동작을 허하면서 예를 들어 백그라운드 스레드에서 네트워크(20)의 서버로부터 비동기적으로 자바스크립트를 프리페치할 수 있다. 프리로드된 컴퓨터 자산은 통신 디바이스(40)에 쉽게 이용 가능하게 만들어질 수 있으며, 이에 의해 예측된 활동과 매칭하는 다음 활동에 응답하여 디바이스에 컴퓨터 자산을 제공할 때 대기시간을 최소화하거나 제거할 수 있다.
웹 브라우저(52)는 예를 들어 활동 로그 데이터베이스(172)(도 3에 도시됨)에 활동 로그 데이터를 기록하도록 구성될 수 있다.
웹 브라우저(52)는 ML 모델을 읽거나 적용하기 위해 로컬 객체 라이브러리(54)를 호출하도록 구성될 수 있으며, 이는 차례로 예를 들어 로컬 ML 라이브러리(56)의 자바스크립트를 호출할 수 있다.
사용자와의 상호작용을 제공하기 위해 본 명세서에 설명된 시스템 및 기술은 예를 들어, 사용자에게 정보를 디스플레이하기 위한 CRT(음극선관), LCD(액정 디스플레이) 또는 LED(발광 다이오드) 모니터와 같은 디스플레이 디바이스 및 사용자가 컴퓨팅 디바이스에 입력을 제공할 수 있는 마우스 또는 트랙볼과 같은 키보드 및 포인팅 디바이스를 갖는 컴퓨팅 디바이스에 구현될 수 있다. 다른 종류의 디바이스를 사용하여 사용자와의 상호 작용도 제공할 수 있는데, 예를 들어, 사용자에게 제공되는 피드백은 임의의 형태의 감각 피드백(예를 들어, 시각적 피드백, 청각적 피드백 또는 촉각적 피드백)일 수 있으며, 사용자로부터의 입력은 음향, 음성 또는 촉각 입력을 포함하여 임의의 형태로 수신될 수 있다.
본 개시에서 사용된 용어 "a", "an" 및 "the"는 달리 명시적으로 명시되지 않는 한 "하나 이상"을 의미한다.
통신 디바이스와 관련하여 본 개시에서 사용된 "활동"이라는 용어는 통신 디바이스로 하여금 프로세스, 작업, 기능 또는 동작을 수행하거나 실행하게 할 수 있는 클라이언트측 사용자에 의한 입력(input), 입력(entry), 명령, 선택, 액션 또는 통신 디바이스와 임의의 상호 작용을 의미한다. "활동"에는 예를 들어 통신 디바이스에서 웹 브라우저와 같은 클라이언트 앱을 시작하거나. 클라이언트 앱과 상호 작용하여 입력 데이터 또는 명령의 시퀀스(예를 들어, 단일 또는 일련의 자연어 용어로 구성된 항목)에 기초하여 컴퓨터 자산을 찾고(find), 페치하고, 로드하고, 처리하거나 렌더링하는 것이 포함될 수 있다.
본 개시에서 사용된 용어 "백본"은 컴퓨팅 디바이스 또는 통신 디바이스 사이에 데이터 패킷 또는 명령을 전달하는 경로를 제공하기 위해 하나 이상의 컴퓨팅 디바이스 또는 통신 디바이스를 상호 연결하는 전송 매체 또는 인프라를 의미한다. 백본은 네트워크를 포함할 수 있다. 백본에는 이더넷 TCP/IP가 포함될 수 있다. 백본은 분산 백본, 축소 백본, 병렬 백본 또는 직렬 백본을 포함할 수 있다.
본 개시에서 사용된 "버스"라는 용어는 메모리 버스(메모리 컨트롤러가 있거나 없는), 주변 버스 또는 상업적으로 이용 가능한 다양한 버스 아키텍처를 사용하는 로컬 버스에 추가로 상호 연결될 수 있는 여러 유형의 버스 구조 중 하나를 의미한다. "버스"라는 용어는 백본을 포함할 수 있다.
본 개시에서 사용된 "통신 링크"라는 용어는 적어도 두 지점 사이에서 데이터 또는 정보를 전달하는 유선 및/또는 무선 매체를 의미한다. 유선 또는 무선 매체는 예를 들어 금속 도체 링크, 무선 주파수(RF) 통신 링크, 적외선(IR) 통신 링크, 또는 광 통신 링크를 포함할 수 있다. RF 통신 링크는 예를 들어 GSM 음성 통화, SMS, EMS, MMS 메시징, CDMA, TDMA, PDC, WCDMA, CDMA2000, GPRS, WiFi, WiMAX, IEEE 802.11, DECT, 0G, 1G, 2G, 3G, 4G 또는 5G 셀룰러 표준, 또는 블루투스를 포함할 수 있다. 통신 링크는 예를 들어 RS-232, RS-422, RS-485 또는 기타 적절한 인터페이스를 포함할 수 있다.
본 개시에서 사용된 "컴퓨터" 또는 "컴퓨팅 디바이스"라는 용어는 예를 들어, 프로세서, ASIC, FPGA, 마이크로프로세서(μP), 중앙 처리 장치(CPU), 그래픽 처리 장치(GPU), 범용 컴퓨터, 슈퍼 컴퓨터, 개인용 컴퓨터, 랩탑 컴퓨터, 팜탑 컴퓨터, 노트북 컴퓨터, 스마트폰, 휴대폰, 태블릿, 데스크탑 컴퓨터, 워크스테이션 컴퓨터, 서버, 서버 팜, 컴퓨터 클라우드. 또는 프로세서, ASICS, FPGA, μP, CPU, GPU, 범용 컴퓨터, 슈퍼 컴퓨터, 개인용 컴퓨터, 랩탑 컴퓨터, 팜탑 컴퓨터, 노트북 컴퓨터, 데스크탑 컴퓨터, 워크스테이션 컴퓨터 또는 서버의 어레이와 같은, 하나 이상의 명령에 따라 데이터를 조작할 수 있는 임의의 기계, 디바이스, 회로, 컴포넌트 또는 모듈, 또는 기계, 디바이스, 회로, 컴포넌트 또는 모듈의 시스템을 의미한다. 컴퓨터 또는 컴퓨팅 디바이스는 통신 링크를 통해 데이터 패킷 또는 명령을 전송하거나 수신할 수 있는 하드웨어, 펌웨어 또는 소프트웨어를 포함할 수 있다. 컴퓨터 또는 컴퓨팅 디바이스는 휴대형이거나 고정형일 수 있다.
본 개시에서 사용된 "컴퓨터 자산"이라는 용어는 소프트웨어, 소프트웨어 애플리케이션, 웹 애플리케이션, 웹페이지, 문서, 파일, 기록, API, 웹 컨텐츠, 컴퓨터 애플리케이션, 컴퓨터 프로그램, 컴퓨터 코드, 기계 실행 명령 또는 펌웨어를 의미한다. 컴퓨터 자산에는 정보 리소스가 포함될 수 있다. 컴퓨터 자산은 프로그래밍 가능한 컴퓨팅 디바이스에 대한 기계 명령을 포함할 수 있으며 고급 절차적 또는 객체 지향적 프로그래밍 언어 또는 어셈블리/기계 언어로 구현될 수 있다.
본 개시에서 사용된 "컴퓨터 판독 가능 매체"라는 용어는 컴퓨터가 판독할 수 있는 데이터(예를 들어, 명령) 제공에 참여하는 임의의 저장 매체를 의미한다. 이러한 매체는 비-휘발성 매체 및 휘발성 매체를 포함하여 다양한 형태를 취할 수 있다. 비-휘발성 매체는 예를 들어 광 디스크 또는 자기 디스크 및 기타 영구 메모리를 포함할 수 있다. 휘발성 매체에는 DRAM이 포함될 수 있다. 컴퓨터 판독 가능 매체의 일반적인 형태는 예를 들어 플로피 디스크, 플렉서블 디스크, 하드 디스크, 자기 테이프, 기타 자기 매체, CD-ROM, DVD, 기타 광학 매체, 펀치 카드, 종이 테이프, 홀(hole) 패턴이 있는 기타 물리적 매체, RAM, PROM, EPROM, FLASH-EEPROM, 기타 메모리 칩 또는 카트리지, 이하에서 설명되는 반송파 또는 컴퓨터가 판독할 수 기타 매체가 포함될 수 있다. 컴퓨터 판독 가능 매체는 "클라우드"를 포함할 수 있으며, 이는 다수의(예를 들어, 수천) 컴퓨터의 다수의(예를 들어, 수천) 메모리 캐시에 걸쳐 파일을 배포하는 것을 포함한다. 컴퓨터 판독 가능 매체는 자기 디스크, 광 디스크, 메모리 또는 PLD(Programmable Logic Devices)를 포함할 수 있다.
다양한 형태의 컴퓨터 판독 가능 매체는 명령 시퀀스를 컴퓨터에 전달하는 데 관련될 수 있다. 예를 들어, 명령어 시퀀스는 (i) RAM에서 프로세서로 전달될 수 있고, (ii) 무선 전송 매체를 통해 전달될 수 있으며, 및/또는 (iii)은 예를 들어 WiFi, WiMAX, IEEE 802.11, DECT, 0G, 1G, 2G, 3G, 4G 또는 5G 셀룰러 표준 또는 블루투스를 포함하는 다양한 포멧, 표준 또는 프로토콜에 따라 포맷될 수 있다.
본 개시에서 사용된 "데이터베이스"라는 용어는 적어도 하나의 애플리케이션 및/또는 적어도 하나의 컴퓨터를 포함하는 소프트웨어 및/또는 하드웨어의 임의의 조합을 의미한다. 데이터베이스는 예를 들어, 관계형 모델, 계층적 모델 또는 네트워크 모델 중 적어도 하나와 같은(이에 국한되지 않음) 데이터베이스 모델에 따라 조직화된 레코드 또는 데이터의 구조화된 컬렉션을 포함할 수 있다. 데이터베이스는 데이터베이스 관리 시스템 애플리케이션(DBMS)을 포함할 수 있다. 적어도 하나의 애플리케이션은 예를 들어 클라이언트로 응답을 다시 전송함으로써 클라이언트로부터 서비스 요청에 대한 연결을 수락할 수 있는 애플리케이션 프로그램을 포함할 수 있지만 이에 한정되지 않는다. 데이터베이스는 종종 인간의 지시를 최소화하면서 장시간 과중한 작업 부하에서 무인 상태로 적어도 하나의 애플리케이션을 실행하도록 구성될 수 있다.
본 개시에서 사용된 용어 "포함하는(including)", "포함하는(comprising)" 및 이들의 변형은 달리 명시적으로 명시되지 않는 한 "포함하는(including)을 의미하지만 이에 한정되지 않는다. 본 개시에서 사용된 "정보 리소스"라는 용어는 컨텐츠가 디스플레이 디바이스에 디스플레이되도록 하거나 검색 엔진에 의해 제공되는 검색 결과 방문 페이지 또는 기본 컨텐츠를 포함하는 웹사이트 또는 웹페이지와 같은 컨텐츠를 디스플레이하는 기능을 호출하는 컴퓨터 코드 또는 컴퓨터 실행 명령을 의미하지만 이에 한정되지 않는다.
본 개시에서 사용된 "네트워크"라는 용어는 예를 들어 개인 영역 네트워크(PAN), 근거리 네트워크(LAN), 무선 근거리 네트워크(WLAN), 캠퍼스 영역 네트워크(CAN), MAN(Metropolitan Area Network), 광역 네트워크(WAN), MAN(Metropolitan Area Network), WAN(Wide Area Network), GAN(Global Area Network), 광대역 영역 네트워크(BAN), 셀룰러 네트워크, 저장 영역 네트워크(SAN), 시스템 영역 네트워크, 수동형 광 근거리 네트워크(POLAN), 기업 사설 네트워크(EPN), 가상 사설 네트워크(VPN), 인터넷, 또는 이들의 임의의 조합, 무선 및/또는 유선 통신 매체를 통해 데이터를 통신하도록 구성될 수 있는 전술한 임의의 것 중 적어도 하나를 의미할 수 있지만 이에 한정되지 않는다. 이러한 네트워크는 이더넷, IP, IPX, TCP, UDP, SPX, IP, IRC, HTTP, FTP, Telnet, SMTP, DNS, ARP, ICMP를 비롯한 다양한 프로토콜을 실행할 수 있지만 이에 한정되지 않는다.
본 개시에서 사용된 "서버"라는 용어는 클라이언트-서버 아키텍처의 일부로서 연결된 클라이언트를 위한 서비스를 수행하기 위한 적어도 하나의 애플리케이션 및/또는 적어도 하나의 컴퓨터를 포함하는 소프트웨어 및/또는 하드웨어의 임의의 조합을 의미한다. 건축물. 적어도 하나의 서버 애플리케이션은 예를 들어 클라이언트로 응답을 다시 전송함으로써 클라이언트로부터 서비스 요청에 대한 연결을 수락할 수 있는 애플리케이션 프로그램을 포함할 수 있지만 이에 한정되지 않는다. 서버는 종종 인간의 지시를 최소화하면서 장시간 과중한 작업 부하에서 무인 상태로 적어도 하나의 애플리케이션을 실행하도록 구성될 수 있다. 서버는 워크로드에 따라 컴퓨터 간에 분할되는 적어도 하나의 애플리케이션으로 구성된 복수의 컴퓨터를 포함할 수 있다. 예를 들어, 로드가 적은 경우, 적어도 하나의 애플리케이션이 단일 컴퓨터에서 실행될 수 있다. 그러나, 로드가 많은 경우, 다수의 컴퓨터가 적어도 하나의 애플리케이션을 실행하기 위해 필요할 수 있다. 서버 또는 컴퓨터의 모든 컴퓨터는 워크스테이션으로 사용될 수도 있다.
서로 통신하는 디바이스들은 달리 명시되지 않는 한 서로 지속적으로 통신할 필요는 없다. 또한, 서로 통신하는 디바이스들은 직접 또는 하나 이상의 중개자를 통해 간접적으로 통신할 수 있다.
프로세스 단계, 방법 단계, 알고리즘 등이 순차적 또는 병렬 순서로 설명될 수 있지만 이러한 프로세스, 방법 및 알고리즘은 다른 순서로 작동하도록 구성될 수 있다. 다시 말해서, 순차적인 순서로 설명될 수 있는 단계들의 임의의 시퀀스 또는 순서는 그 단계들이 해당 순서로 수행되어야 한다는 요구 사항을 반드시 나타내지는 않으며, 일부 단계는 동시에 수행될 수 있다. 유사하게, 단계들의 시퀀스 또는 순서가 병렬(또는 동시) 순서로 기술되는 경우, 그러한 단계들은 순차적인 순서로 수행될 수 있다. 본 명세서에 설명된 프로세스, 방법 또는 알고리즘의 단계들은 실용적인 임의의 순서로 수행될 수 있다.
단일 디바이스 또는 항목(article)이 본 명세서에 설명되어 있는 경우, 하나 이상의 디바이스 또는 항목이 단일 디바이스 또는 항목 대신에 사용될 수 있음이 쉽게 명백할 것이다. 유사하게, 하나 이상의 디바이스 또는 항목이 본 명세서에 설명되어 있는 경우, 단일 디바이스 또는 항목이 하나 이상의 디바이스 또는 항목 대신에 사용될 수 있음이 쉽게 명백할 것이다. 디바이스의 기능 또는 특징은 그러한 기능 또는 특징을 갖는 것으로 명시적으로 기술되지 않은 하나 이상의 다른 디바이스에 의해 대안적으로 구현될 수 있다.
위에서 설명된 주제는 단지 예시를 위해 제공되며 제한하는 것으로 해석되어서는 안 된다. 예시 및 설명된 예시적인 실시예 및 애플리케이션을 따르지 않고, 다음 청구범위의 일련의 인용 및 이러한 인용과 동등한 구조 및 기능 또는 단계에 의해 정의되는 본 개시에 포함된 본 발명의 진정한 사상 및 범위를 벗어나지 않으면서 다양한 수정 및 변경이 본 명세서에 설명된 주제에 대해 이루어질 수 있다.

Claims (42)

  1. 컴퓨팅 디바이스에 의해 실행될 때 컴퓨팅 디바이스가 기계 학습 모델을 구축 또는 트레이닝하는 방법을 수행하도록 하고 그리고 기계 학습 모델이 복수의 통신 디바이스에 배포되게 하는 컴퓨터 실행 명령들을 포함하는 비-일시적 컴퓨터 판독가능 저장 매체로서, 상기 방법은,
    컴퓨팅 디바이스에 의해, 기계 학습 모델을 구축하는 단계와;
    컴퓨팅 디바이스에 의해, 기계 학습 모델을 트레이닝하는 단계와;
    컴퓨팅 디바이스에 의해, 기계 학습 모델을 웹 브라우저 호환 포멧으로 변환하는 단계와; 그리고
    컴퓨팅 디바이스에 의해, 기계 학습 모델을 복수의 통신 디바이스에 배포하도록 구성된 서버에 기계 학습 모델을 업로드하는 단계를 포함하고,
    상기 기계 학습 모델은,
    하나의 통신 디바이스에 대한 하나 이상의 이전 활동의 시퀀스를 분석하고;
    하나 이상의 이전 활동의 시퀀스 분석에 기초하여 하나의 통신 디바이스에 대한 다음 활동을 예측하고;
    컴퓨터 자산을 찾기 위해 상기 예측된 다음 활동에 기초하여 컴퓨터 네트워크를 선제적으로 검색하고; 그리고
    찾은 컴퓨터 자산을 하나의 통신 디바이스의 저장소에 프리로드(preload)하는 것을 특징으로 하는 비-일시적 컴퓨터 판독가능 저장 매체.
  2. 제1항에 있어서,
    기계 학습 모델은 찾은 컴퓨터 자산을 하나의 통신 디바이스상의 웹페이지로서 렌더링하도록 추가로 구성되는 것을 특징으로 하는 비-일시적 컴퓨터 판독가능 저장 매체.
  3. 제1항 또는 제2항에 있어서,
    기계 학습 모델은 하나의 통신 디바이스상의 웹 브라우저의 프론트-엔드 코드와 통합되도록 추가로 구성되는 것을 특징으로 하는 비-일시적 컴퓨터 판독가능 저장 매체.
  4. 제1항 내지 제3항 중 어느 하나에 있어서,
    기계 학습 모델은 하나의 통신 디바이스상의 웹 브라우저에서 자바스크립트를 호출하도록 추가로 구성되는 것을 특징으로 하는 비-일시적 컴퓨터 판독가능 저장 매체.
  5. 제2항에 있어서,
    기계 학습 모델은 통신 디바이스상의 추가 활동에 응답하여 컴퓨터 자산을 웹페이지로서 렌더링하도록 추가로 구성되는 것을 특징으로 하는 비-일시적 컴퓨터 판독가능 저장 매체.
  6. 제5항에 있어서,
    추가 활동은 예측된 다음 활동과 매칭하는 것을 특징으로 하는 비-일시적 컴퓨터 판독가능 저장 매체.
  7. 제1항 내지 제6항 중 어느 하나에 있어서,
    기계 학습 모델은 변환기 모델을 포함하는 것을 특징으로 하는 비-일시적 컴퓨터 판독가능 저장 매체.
  8. 제1항 내지 제6항 중 어느 하나에 있어서,
    기계 학습 모델은 피드-포워드 심층 신경망 모델을 포함하는 것을 특징으로 하는 비-일시적 컴퓨터 판독가능 저장 매체.
  9. 제1항 내지 제8항 중 어느 하나에 있어서,
    기계 학습 모델은 어텐션(attention) 메커니즘을 포함하는 것을 특징으로 하는 비-일시적 컴퓨터 판독가능 저장 매체.
  10. 제9항에 있어서,
    어텐션 메커니즘은 패딩(padding) 어텐션 마스크를 포함하는 것을 특징으로 하는 비-일시적 컴퓨터 판독가능 저장 매체.
  11. 제9항에 있어서,
    어텐션 메커니즘은 예견(look-ahead) 어텐션 마스크를 포함하는 것을 특징으로 하는 비-일시적 컴퓨터 판독가능 저장 매체.
  12. 제1항 내지 제11항 중 어느 하나에 있어서,
    예측된 다음 활동은 하나 이상의 자연어 용어를 포함하는 사용자 인터페이스상의 입력을 포함하는 것을 특징으로 하는 비-일시적 컴퓨터 판독가능 저장 매체.
  13. 제1항 내지 제11항 중 어느 하나에 있어서,
    예측된 다음 활동은 하나의 통신 디바이스상의 웹 브라우저에 대한 검색 질의 입력을 포함하는 것을 특징으로 하는 비일시적 컴퓨터 판독가능 저장 매체.
  14. 기계 학습 모델을 구축 또는 트레이닝하고 그리고 기계 학습 모델을 복수의 통신 디바이스에 배포하도록 구성된 서버에 기계 학습 모델을 업로드하도록 구성된 시스템으로서, 상기 시스템은,
    기계 학습 생산 파이프라인 플랫폼을 포함하는 컴퓨팅 디바이스를 포함하고,
    상기 컴퓨팅 디바이스는:
    기계 학습 모델을 트레이닝하고;
    기계 학습 모델을 웹 브라우저 호환 포멧으로 변환하고; 그리고
    변환된 기계 학습 모델을 서버에 업로드하도록 구성되고,
    상기 기계 학습 모델은,
    복수의 통신 디바이스 중 하나의 통신 디바이스에 대한 하나 이상의 이전 활동의 시퀀스를 입력으로서 수신하고;
    하나의 통신 디바이스에 대한 하나 이상의 이전 활동의 시퀀스를 분석하고;
    하나 이상의 이전 활동의 시퀀스 분석에 기초하여 하나의 통신 디바이스에 대한 다음 활동을 예측하고;
    컴퓨터 자산을 찾기 위해 상기 예측된 다음 활동에 기초하여 컴퓨터 네트워크를 선제적으로 검색하고; 그리고
    찾은 컴퓨터 자산을 하나의 통신 디바이스의 저장소에 프리로드하도록 구성되는 것을 특징으로 하는 시스템.
  15. 제14항에 있어서,
    기계 학습 생산 파이프라인은,
    텐서플로우 확장(TFX) 파이프라인을 포함하고, 상기 기계 학습 모델은 찾은 컴퓨터 자산을 하나의 통신 디바이스상의 웹페이지로서 렌더링하도록 추가로 구성되는 것을 특징으로 하는 시스템.
  16. 제14항 또는 제15항에 있어서,
    기계 학습 모델은,
    하나의 통신 디바이스상의 웹 브라우저의 프론트-엔드 코드와 통합되도록 추가로 구성되는 것을 특징으로 하는 시스템.
  17. 제14항 내지 제16항 중 어느 하나에 있어서,
    기계 학습 모델은,
    하나의 통신 디바이스상의 웹 브라우저에서 자바스크립트를 호출하도록 추가로 구성되는 것을 특징으로 하는 시스템.
  18. 제15항에 있어서,
    기계 학습 모델은,
    통신 디바이스에 대한 추가 활동에 응답하여 컴퓨터 자산을 웹페이지로서 렌더링하도록 추가로 구성되는 것을 특징으로 하는 시스템.
  19. 제18항에 있어서,
    추가 활동은 예측된 다음 활동과 매칭하는 것을 특징으로 하는 시스템.
  20. 제14항 내지 제19항 중 어느 하나에 있어서,
    기계 학습 모델은 변환기 모델을 포함하는 것을 특징으로 하는 시스템.
  21. 제14항 내지 제19항 중 어느 하나에 있어서,
    기계 학습 모델은 피드-포워드 심층 신경망 모델을 포함하는 것을 특징으로 하는 시스템.
  22. 제14항 내지 제21항 중 어느 하나에 있어서,
    기계 학습 모델은 어텐션 메커니즘을 포함하는 것을 특징으로 하는 시스템.
  23. 제22항에 있어서,
    어텐션 메커니즘은 패딩 어텐션 마스크를 포함하는 것을 특징으로 하는 시스템.
  24. 제22항에 있어서,
    어텐션 메커니즘은 예견 어텐션 마스크를 포함하는 것을 특징으로 하는 시스템.
  25. 제14항 내지 제24항 중 어느 하나에 있어서,
    예측된 다음 활동은 하나 이상의 자연어 용어를 포함하는 사용자 인터페이스상의 입력을 포함하는 것을 특징으로 하는 시스템.
  26. 제14항 내지 제24항 중 어느 하나에 있어서,
    예측된 다음 활동은 하나의 통신 디바이스상의 웹 브라우저에 대한 검색 질의 입력을 포함하는 것을 특징으로 하는 시스템.
  27. 활동 예측을 위한 컴퓨터 구현 방법으로서, 상기 방법은,
    기계 학습 모델에서, 입력으로서 복수의 통신 디바이스 중 하나의 통신 디바이스에 대한 하나 이상의 이전 활동의 시퀀스를 수신하는 단계;
    기계 학습 모델에 의해, 하나의 통신 디바이스에 대한 하나 이상의 이전 활동의 시퀀스를 분석하는 단계;
    기계 학습 모델에 의해, 하나 이상의 이전 활동의 시퀀스 분석에 기초하여 하나의 통신 디바이스에 대한 다음 활동을 예측하는 단계;
    컴퓨터 자산을 찾기 위해 상기 예측된 다음 활동에 기초하여 컴퓨터 네트워크를 선제적으로 검색하는 단계; 및
    찾은 컴퓨터 자산을 하나의 통신 디바이스의 저장소에 프리로드하는 단계를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  28. 제27항에 있어서,
    찾은 컴퓨터 자산을 하나의 통신 디바이스상의 웹페이지로서 렌더링하는 단계를 더 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  29. 제27항 또는 제28항에 있어서,
    기계 학습 모델은 하나의 통신 디바이스상의 웹 브라우저의 프론트 엔드 코드와 통합되는 것을 특징으로 하는 컴퓨터 구현 방법.
  30. 제27항 내지 제29항 중 어느 하나에 있어서,
    기계 학습 모델은 하나의 통신 디바이스상의 웹 브라우저에서 자바스크립트를 호출하도록 구성되는 것을 특징으로 하는 컴퓨터 구현 방법.
  31. 제28항에 있어서,
    컴퓨터 자산을 웹페이지로서 렌더링하는 단계는,
    통신 디바이스상의 추가 활동에 응답하여 발생하는 것을 특징으로 하는 컴퓨터 구현 방법.
  32. 제31항에 있어서,
    추가 활동은 예측된 다음 활동과 매칭하는 것을 특징으로 하는 컴퓨터 구현 방법.
  33. 제27항 내지 제32항 중 어느 하나에 있어서,
    기계 학습 모델은 변환기 모델을 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  34. 제27항 내지 제33항 중 어느 하나에 있어서,
    기계 학습 모델은 피드-포워드 심층 신경망 모델을 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  35. 제27항 내지 제34항 중 어느 하나에 있어서,
    기계 학습 모델은 어텐션 메커니즘을 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  36. 제35항에 있어서,
    어텐션 메커니즘은 패딩 어텐션 마스크를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  37. 제35항에 있어서,
    어텐션 메커니즘은 예견 어텐션 마스크를 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  38. 제27항 내지 제37항 중 어느 하나에 있어서,
    예측된 다음 활동은 하나 이상의 자연어 용어를 포함하는 사용자 인터페이스상의 입력을 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  39. 제27항 내지 제37항 중 어느 하나에 있어서,
    예측된 다음 활동은 하나의 통신 디바이스상의 웹 브라우저에 대한 검색 질의 입력을 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  40. 제27항 내지 제39항 중 어느 하나에 있어서,
    입력을 수신하기 전에:
    기계 학습 모델 구축하는 단계;
    기계 학습 모델 트레이닝하는 단계;
    기계 학습 모델을 웹 브라우저 호환 포멧으로 변환하는 단계; 및
    기계 학습 모델을 복수의 통신 디바이스에 배포하도록 구성된 서버에 기계 학습 모델을 업로드하는 단계를 추가로 포함하는 것을 특징으로 하는 컴퓨터 구현 방법.
  41. 제27항 내지 제40항 중 어느 한 항의 방법의 단계들을 수행하도록 구성된 프로세서를 포함하는 시스템.
  42. 프로그램이 컴퓨터에 의해 실행될 때, 컴퓨터로 하여금 제27항 내지 제40항 중 어느 한 항의 방법을 수행하게 하는 명령들을 포함하는 컴퓨터 프로그램 제품.
KR1020227025474A 2020-01-14 2020-01-14 클라이언트 디바이스에 의한 컴퓨터 자산의 활동 예측, 프리페칭 및 프리로딩을 위한 방법 및 시스템 KR20220116039A (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2020/013488 WO2021145862A1 (en) 2020-01-14 2020-01-14 Method and system for activity prediction, prefetching and preloading of computer assets by a client-device

Publications (1)

Publication Number Publication Date
KR20220116039A true KR20220116039A (ko) 2022-08-19

Family

ID=69593769

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020227025474A KR20220116039A (ko) 2020-01-14 2020-01-14 클라이언트 디바이스에 의한 컴퓨터 자산의 활동 예측, 프리페칭 및 프리로딩을 위한 방법 및 시스템

Country Status (6)

Country Link
US (1) US11899733B2 (ko)
EP (1) EP4073666A1 (ko)
JP (1) JP7438372B2 (ko)
KR (1) KR20220116039A (ko)
CN (1) CN114981804A (ko)
WO (1) WO2021145862A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11665547B2 (en) 2020-05-01 2023-05-30 Digital Global Systems, Inc. System, method, and apparatus for providing dynamic, prioritized spectrum management and utilization
US11700533B2 (en) 2020-05-01 2023-07-11 Digital Global Systems, Inc. System, method, and apparatus for providing dynamic, prioritized spectrum management and utilization
US11849332B2 (en) 2020-05-01 2023-12-19 Digital Global Systems, Inc. System, method, and apparatus for providing dynamic, prioritized spectrum management and utilization
US11395149B2 (en) 2020-05-01 2022-07-19 Digital Global Systems, Inc. System, method, and apparatus for providing dynamic, prioritized spectrum management and utilization
US20230154089A1 (en) * 2021-11-15 2023-05-18 Disney Enterprises, Inc. Synthesizing sequences of 3d geometries for movement-based performance

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6182133B1 (en) * 1998-02-06 2001-01-30 Microsoft Corporation Method and apparatus for display of information prefetching and cache status having variable visual indication based on a period of time since prefetching
US10621203B2 (en) * 2007-01-26 2020-04-14 Information Resources, Inc. Cross-category view of a dataset using an analytic platform
US8626791B1 (en) * 2011-06-14 2014-01-07 Google Inc. Predictive model caching
US8849731B2 (en) 2012-02-23 2014-09-30 Microsoft Corporation Content pre-fetching for computing devices
US10261938B1 (en) * 2012-08-31 2019-04-16 Amazon Technologies, Inc. Content preloading using predictive models
US20160306895A1 (en) 2013-12-22 2016-10-20 Interdigital Patent Holdings, Inc. Web application acceleration with personalized cache or prerendering
KR102448389B1 (ko) 2017-05-23 2022-09-28 구글 엘엘씨 어텐션-기반의 시퀀스 변환 신경망
US10795965B2 (en) 2018-03-30 2020-10-06 Microsoft Technology Licensing, Llc Distributed in-browser deep learning for predictive pre-fetching
US11494635B2 (en) * 2018-10-09 2022-11-08 Ebay, Inc. System and method for improving user engagement based on user session analysis

Also Published As

Publication number Publication date
CN114981804A (zh) 2022-08-30
EP4073666A1 (en) 2022-10-19
US20230050882A1 (en) 2023-02-16
JP2023510363A (ja) 2023-03-13
WO2021145862A1 (en) 2021-07-22
US11899733B2 (en) 2024-02-13
JP7438372B2 (ja) 2024-02-26

Similar Documents

Publication Publication Date Title
US11899733B2 (en) Method and system for activity prediction, prefetching and preloading of computer assets by a client-device
JP7440420B2 (ja) 包括的機械学習サービスを提供するアプリケーション開発プラットフォームおよびソフトウェア開発キット
US8977653B1 (en) Modifying web pages to reduce retrieval latency
US9460229B2 (en) Methods and systems for implementing a cache model in a prefetching system
US8612418B2 (en) Mobile web browser for pre-loading web pages
JP7324831B2 (ja) ディープラーニングフレームワークにおける演算子の展開方法、展開装置及び電子機器
US8631394B2 (en) Static resource processing
US20080010249A1 (en) Relevant term extraction and classification for Wiki content
US20140317081A1 (en) System and method for session data management
US9330074B2 (en) Style sheet speculative preloading
EP4364051A2 (en) Systems and methods for processing data using inference and analytics engines
US11930096B2 (en) Systems and methods for rendering interactive web pages
US20210081598A1 (en) Process for creating a fixed length representation of a variable length input
KR20210097221A (ko) 내장가능형 미디어 콘텐츠 검색 위젯
US11720407B2 (en) Resource pre-fetch using age threshold
CN111783019A (zh) 浏览器子页面创建方法、装置、计算机设备和存储介质
Lin et al. The future of big data is... javascript?
CN115080154A (zh) 页面显示方法、装置、存储介质及电子设备
US20190228075A1 (en) Changing a language for a user session replay
US12020071B2 (en) Resource pre-fetch using age threshold
Rachovski et al. Using clean architecture principles to improve the design and implementation of the mobiles online platform
US20240176732A1 (en) Advanced application of model operations in energy
Xiangming An approach to enabling RDF data in querying to invoke REST API for complex calculating
Selvaraj Caching and Performance Optimization
Reinders Comprehending the age of accelerators