JP7438372B2 - クライアントデバイスによるコンピュータ資産のアクティビティ予測、プリフェッチ、およびプリロードのための方法およびシステム - Google Patents

クライアントデバイスによるコンピュータ資産のアクティビティ予測、プリフェッチ、およびプリロードのための方法およびシステム Download PDF

Info

Publication number
JP7438372B2
JP7438372B2 JP2022542993A JP2022542993A JP7438372B2 JP 7438372 B2 JP7438372 B2 JP 7438372B2 JP 2022542993 A JP2022542993 A JP 2022542993A JP 2022542993 A JP2022542993 A JP 2022542993A JP 7438372 B2 JP7438372 B2 JP 7438372B2
Authority
JP
Japan
Prior art keywords
machine learning
learning model
communication device
computer
model
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
JP2022542993A
Other languages
English (en)
Other versions
JP2023510363A (ja
Inventor
ダスティン・ゼル
ラミ・アル-ルフォウ
ミハイル・シャライ
ボ・リン
ジョセフ・カタラノ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of JP2023510363A publication Critical patent/JP2023510363A/ja
Application granted granted Critical
Publication of JP7438372B2 publication Critical patent/JP7438372B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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)

Description

本開示は、通信デバイス上の1つまたは複数の以前のアクティビティに基づいて次のアクティビティを予測することと、コンピュータネットワークを検索することと、予測されたアクティビティに基づいて、コンピュータ資産を通信デバイスにプリフェッチまたはプリロードすることとを行うための方法、システム、およびコンピュータプログラムを含む、コンピュータ資産検索および配信ソリューションに関する。
インターネットなどのコンピュータネットワーク環境において、通信デバイスは、インターネット上のウェブページを見つけ、ホストウェブサイトから通信デバイスにウェブページをダウンロードするために、ウェブ検索および検索技術を使用することができる。次いで、ウェブページは、通信デバイスに含まれるディスプレイデバイスなどのディスプレイデバイス上でレンダリングすることができる。
米国特許第10,452,978号
第31回神経情報処理システム会議(NIPS 2017)、米国カリフォルニア州ロングビーチによって公開された、Ashish Vaswaniらによる「Attention Is All You Need」というタイトルの記事 Ashish Vaswaniらによる「Attention Is All You Need」というタイトルの上記の記事のセクション3(「Model Architecture」) <<https://research.google/tools/datasets/>> <<https://github.com/tensorflow/tfjs/tree/master/tfjs-converter>>
非常に頻繁に、ウェブ検索および検索技術は、かなりの待ち時間を経験し、通信デバイスにウェブページを見つけたりロードしたりするために長い時間がかかることがある。これは、たとえば、通信デバイスが低信号強度のエリアにおいて動作している場合、インターネットサービスプロバイダ(ISP)またはウェブサイトへの通信リンクが飽和または過負荷になっている場合、帯域幅の制限により、通信リンクを通じて送信できるデータの量または速度が大幅に限定または制限されている場合、ソースウェブサイトまたはISPサーバに異常に大量のデータトラフィックが発生している場合、あるいはコンテンツが大量のデータを含んでいる場合に発生する可能性がある。そのような欠点に対処できるコンピュータ資産検索および配信ソリューションに対する緊急かつ満たされていないニーズが存在する。
本開示は、満たされていないニーズを満たし、上記の欠点に対処するコンピュータ資産検索および配信ソリューションを提供する。コンピュータ資産検索および配信ソリューションは、通信デバイス上の次のアクティビティを予測し、予測に基づいて、1つまたは複数のコンピュータ資産を検索して通信デバイスにプリフェッチまたはプリロードすることができる。このソリューションは、オーバーフェッチを回避することができるスマートな動作ベースのプリフェッチ手法を提供することができ、それによって、たとえばモバイルデバイスなどの通信デバイス上で貴重であり得るユーザ帯域幅を節約することができる。
コンピュータ資産検索および配信ソリューションの非限定的な実施形態は、コンピューティングデバイスによって実行されると、コンピューティングデバイスに、機械学習モデルを構築またはトレーニングする方法を実行することと、機械学習モデルに複数の通信デバイスに展開させることとを行わせるコンピュータ実行可能命令を含む非一時的コンピュータ可読ストレージ媒体を含む。本方法は、コンピューティングデバイスによって、機械学習モデルを構築するステップと、コンピューティングデバイスによって、機械学習モデルをトレーニングするステップと、コンピューティングデバイスによって、機械学習モデルをウェブブラウザ互換フォーマットに変換するステップと、コンピューティングデバイスによって、機械学習モデルを、機械学習モデルを複数の通信デバイスに展開するように構成されたサーバにアップロードするステップとを含む。本方法では、機械学習モデルは、複数の通信デバイス内の1つの通信デバイス上の1つまたは複数の以前のアクティビティのシーケンスを入力として受信することと、前記1つの通信デバイス上の1つまたは複数の以前のアクティビティのシーケンスを分析することと、1つまたは複数の以前のアクティビティのシーケンスの分析に基づいて、前記1つの通信デバイス上の次のアクティビティを予測することと、コンピュータ資産を見つけるために、予測された次のアクティビティに基づいてコンピュータネットワークを先制して検索することと、見つかったコンピュータ資産を、前記1つの通信デバイスにおけるストレージにプリロードすることとを行うように構成することができる。
機械学習モデルは、見つかったコンピュータ資産を前記1つの通信デバイス上のウェブページとしてレンダリングする、または前記1つの通信デバイス上のウェブブラウザのフロントエンドコードと統合する、または前記1つの通信デバイス上のウェブブラウザにおいてJavaScriptを呼び出す、または通信デバイス上のさらなるアクティビティに応じて、コンピュータ資産をウェブページとしてレンダリングするように構成することができる。さらなるアクティビティは、予測された次のアクティビティと一致することができる。機械学習モデルは、Transformerモデル、フィードフォワード深層ニューラルネットワークモデル、または注意メカニズムを備えることができる。注意メカニズムは、パディング注意マスクまたは先読み注意マスクを備えることができる。
予測された次のアクティビティは、1つもしくは複数の自然言語用語を含むユーザインターフェース上の入力、または前記1つの通信デバイス上のウェブブラウザへの検索クエリ入力を備えることができる。
コンピュータ資産検索および配信ソリューションの別の非限定的な実施形態は、機械学習モデルを構築またはトレーニングすることと、機械学習モデルを複数の通信デバイスに展開するように構成されたサーバに機械学習モデルをアップロードすることとを行うように構成されたシステムを含む。システムは、機械学習モデルを構築するように構成された機械学習モデルビルダ、および機械学習生産パイプラインを備える。機械学習生産パイプラインは、機械学習モデルをトレーニングすることと、機械学習モデルをウェブブラウザ互換フォーマットに変換することと、変換された機械学習モデルをサーバにアップロードすることとを行うように構成することができる。機械学習モデルは、複数の通信デバイス内の1つの通信デバイス上の1つまたは複数の以前のアクティビティのシーケンスを入力として受信することと、前記1つの通信デバイス上の1つまたは複数の以前のアクティビティのシーケンスを分析することと、1つまたは複数の以前のアクティビティのシーケンスの分析に基づいて、前記1つの通信デバイス上の次のアクティビティを予測することと、コンピュータ資産を見つけるために、予測された次のアクティビティに基づいてコンピュータネットワークを先制して検索することと、見つかったコンピュータ資産を、前記1つの通信デバイスにおけるストレージデバイスにプリロードすることとを行うように構成することができる。
システムにおいて、機械学習モデルは、見つかったコンピュータ資産を前記1つの通信デバイス上のウェブページとしてレンダリングする、または前記1つの通信デバイス上のウェブブラウザのフロントエンドコードと統合する、または前記1つの通信デバイス上のウェブブラウザにおいてJavaScriptを呼び出す、または通信デバイス上のさらなるアクティビティに応じて、コンピュータ資産をウェブページとしてレンダリングするように構成することができる。
システムにおいて、さらなるアクティビティは、予測された次のアクティビティと一致することができる。
システムにおいて、機械学習モデルは、Transformerモデル、フィードフォワード深層ニューラルネットワークモデル、または注意メカニズムを備えることができる。注意メカニズムは、パディング注意マスクまたは先読み注意マスクを備えることができる。
システムにおいて、予測された次のアクティビティは、1つもしくは複数の自然言語用語を含むユーザインターフェース上の入力、または前記1つの通信デバイス上のウェブブラウザへの検索クエリ入力を備えることができる。
コンピュータ資産検索および配信ソリューションの別の非限定的な実施形態は、アクティビティ予測のためのコンピュータ実装方法を含む。本方法は、機械学習モデルにおいて、複数の通信デバイスのうちの1つの通信デバイス上の1つまたは複数の以前のアクティビティのシーケンスを入力として受信するステップと、機械学習モデルによって、前記1つの通信デバイス上の1つまたは複数の以前のアクティビティのシーケンスを分析するステップと、機械学習モデルによって、1つまたは複数の以前のアクティビティのシーケンスの分析に基づいて、前記1つの通信デバイス上の次のアクティビティを予測するステップと、コンピュータ資産を見つけるために、予測された次のアクティビティに基づいてコンピュータネットワークを先制して検索するステップと、見つかったコンピュータ資産を、前記1つの通信デバイスにおけるストレージにプリロードするステップとを備える。本方法は、見つかったコンピュータ資産を前記1つの通信デバイス上のウェブページとしてレンダリングするステップを備えることができる。
コンピュータで実装された方法では、機械学習モデルは、前記1つの通信デバイス上のウェブブラウザのフロントエンドコードと統合することができる。
コンピュータ実装方法では、機械学習モデルは、前記1つの通信デバイス上のウェブブラウザにおいてJavaScriptを呼び出すように構成することができる。
コンピュータ実装方法では、コンピュータ資産をウェブページとしてレンダリングするステップは、通信デバイス上のさらなるアクティビティに応じて発生することができる。
コンピュータ実装方法において、さらなるアクティビティは、予測された次のアクティビティと一致することができる。
コンピュータ実装方法において、機械学習モデルは、Transformerモデル、フィードフォワード深層ニューラルネットワークモデル、または注意メカニズムを備えることができる。注意メカニズムは、パディング注意マスクまたは先読み注意マスクを備えることができる。
コンピュータ実装方法において、予測された次のアクティビティは、1つもしくは複数の自然言語用語を含むユーザインターフェース上の入力、または前記1つの通信デバイス上のウェブブラウザへの検索クエリ入力を備えることができる。
コンピュータ実装方法は、入力を受信するステップの前に、機械学習モデルを構築するステップと、機械学習モデルをトレーニングするステップと、機械学習モデルをウェブブラウザ互換フォーマットに変換するステップと、機械学習モデルを、機械学習モデルを複数の通信デバイスに展開するように構成されたサーバにアップロードするステップとを備えることができる。
コンピュータ資産検索および配信ソリューションの別の非限定的な実施形態は、コンピュータ実装方法を実行するように適合されたプロセッサを備えるシステムを含む。
コンピュータ資産検索および配信ソリューションの別の非限定的な実施形態は、命令を備えるコンピュータプログラム製品であって、命令は、プログラムがコンピュータによって実行されると、コンピュータに、コンピュータ実装方法を遂行させる、コンピュータプログラム製品を含む。
本開示の追加の特徴、利点、および実施形態は、詳細な説明、特許請求の範囲、および図面を含む、明細書の検討から説明されるか、または明らかであり得る。本開示の要約ならびに以下の詳細な説明および図面は、請求された開示の範囲を限定することなく、さらなる説明を提供することを意図した例を提供し得る。
本開示のさらなる理解を提供するために含まれる添付の図面は、本明細書に組み込まれ、その一部を構成し、本開示の実施形態を例示し、詳細な説明とともに、本開示の原理を説明するために役立つ。本開示の基本的な理解およびそれを実施することができる様々な方法に必要となる可能性がある以上に、本開示の構造的詳細をより詳細に示す試みはなされていない。
本開示の原理に従って構築されたコンピュータ資産検索および配信(CASD)システムを含む、コンピュータネットワーク環境の例を示す図である。 図1のコンピュータネットワーク環境に含めることができる通信デバイスの非限定的な実施形態を示す図である。 本開示の原理に従って構築された、CASDシステムの非限定的な実施形態を示す図である。 図1および図3のCASDシステムによって構築またはトレーニングすることができる機械学習(ML)モデルの非限定的な例を示す図である。 図1および図3に示される、CASDシステムによって実行され得るMLモデル製造プロセスの非限定的な例を示す図である。 図1および図2に示される通信デバイスへのMLモデルのロードおよび統合の非限定的な例のブロック図である。
本開示は、以下の詳細な説明においてさらに説明される。
本開示ならびに様々な特徴および有利な詳細は、添付の図面において記載または図示され、以下の説明において詳述される非限定的な実施形態および実施例を参照してより完全に説明される。図面に示されている特徴は、必ずしも一定の縮尺で描かれているわけではなく、一実施形態の特徴は、明示的に述べられていなくても、他の実施形態で使用することができる点に留意されたい。本開示の実施形態を不必要に不明瞭にしないために、よく知られているコンポーネントおよび処理技法の説明を省略されてもよい。実施例は、単に、本開示を実施することができる方法の理解を容易にし、当業者が本開示の実施形態を実施することをさらに可能にすることを意図している。したがって、実施例および実施形態は、本開示の範囲を限定するものとして解釈されるべきではない。さらに、同様の参照番号は、図面のいくつかの図を通して同様の部分を表す点に留意されたい。
インターネットは、世界中の通信デバイスをリンクするためにインターネットプロトコルスイート(TCP/IP)を使用する相互接続されたコンピュータネットワークのグローバルシステムを介して、広範囲のコンピュータ資産およびサービスを伝送するネットワークのネットワークである。コンピュータ資産は、たとえば、相互にリンクされたハイパーテキストドキュメントおよびワールドワイドウェブ(WWW)のアプリケーション、電子メール、電話、およびファイル共有を含むことができる。ハイパーテキストは、WWWの基本的な概念のうちの1つであり、ウェブコンテンツまたはウェブページなどのコンピュータ資産をハイパーテキストマークアップ言語(HTML)で記述することができる。ハイパーテキストコンピュータ資産は、スタティックまたはダイナミックのいずれかになる。スタティックコンピュータ資産は、事前に準備して記憶することができる。ダイナミックコンピュータ資産は、通信デバイス上の入力またはアクティビティに応じるなどして、継続的に変化する可能性がある。
通信デバイス40(図1に示され、以下で説明される)などのクライアント側通信デバイスは、1つまたは複数のウェブアプリケーションプログラミングインターフェース(Web API)を含むウェブブラウザを使用してインターネット上のコンピュータ資産にアクセスすることができる。アプリケーションプログラミングインターフェース(API)は、ソフトウェアおよびアプリケーションを構築するためのサブルーチン定義のセット、プロトコル、およびツールを含むことができ、Web APIは、ハイパーテキスト転送プロトコル(HTTP)コマンドを使用してアクセスおよび相互作用することができるAPIである。HTTPプロトコルは、様々なコマンドに応答して、クライアント側のウェブブラウザが通信デバイスに対して実行するべきアクションを定義する。
通信デバイス40(図1に示される)がウェブサイトを訪問するか、他の方法でコンピュータネットワーク20(図1に示される)上のコンピュータ資産にアクセスするとき、デバイスのウェブブラウザは、ウェブサイトまたはコンピュータ資産をホストするウェブサーバ(図示せず)からコンピュータ資産を取得することができる。コンピュータ資産に含まれるウェブコンテンツまたはウェブページをグラフィカルに表示するために、ウェブブラウザは、コンピュータ資産をたとえばウェブページとして提示しながら、スタイルシート、スクリプト、および画像などの複数のウェブリソース要素にアクセスする必要がある場合がある。通信デバイス40(図1に示される)が、ISPまたはウェブサイトホスティングサーバへの通信リンクが飽和または過負荷である低信号強度領域で動作している場合、利用可能な帯域幅が大幅に限定または制限されている場合、ウェブサイトのホストまたはISPサーバ(図示せず)に異常に大量のトラフィックが発生している場合、あるいはコンテンツが大量のデータを含んでいる場合、待ち時間は深刻な問題となる可能性がある。
本開示は、通信デバイス40(図1に示される)上で、たとえば、ウェブコンテンツまたはウェブページなどのコンピュータ資産を発見、配信、またはレンダリングする際の待ち時間を大幅に短縮または排除することができるコンピュータ資産検索および配信(CASD)ソリューションを提供し得る。本ソリューションは、通信デバイス40上の次のアクティビティを予測し、予測されたアクティビティに基づいて1つまたは複数のコンピュータ資産を先制的に検索して、通信デバイス40にプリフェッチまたはプリロードするためのシステム、方法、およびコンピュータプログラムを提供し、オペレータまたは通信デバイスが予測されたアクティビティと実質的に一致するアクティビティを実行すると、コンピュータ資産をデバイス上でほぼ瞬時にレンダリングできるようになる。したがって、開示された技法は、さらなるアクティビティに応答して待ち時間を短縮することができる。さらに、プリロードおよび/またはプリフェッチを対象とすることができるので、この手法は、ネットワークおよびコンピュータリソースの不必要な利用を回避することができる。
本ソリューションは、コンピュータ資産を発見、アクセス、プリフェッチ、プリロード、または処理し、続いて、たとえば、通信デバイス40によって表示される1つまたは複数のウェブページなどの、通信デバイス40上の資産をレンダリングすることができるクライアント側ウェブブラウザを含むことができる。本ソリューションは、1つまたは複数のアクティビティの入力シーケンスに基づいて、通信デバイス40上の次のアクティビティを予測することができる機械学習(ML)モデルを含むことができる。MLモデルは、通信デバイス40にロードされ、含まれることができる。MLモデルは、以下で説明されるように、Transformerモデルを含むことができる。MLモデルは、コンピュータ資産検索および配信(CASD)システム10によって、直接、または、クラウドサービスプロバイダによって動作または管理することができる、たとえば、コンピュータクラウドネットワーク30(図1に示される)などのコンテンツサービスプロバイダを通じて、通信デバイス40にロードすることができる。
本ソリューションは、注意メカニズムを含むことができる。注意メカニズムは、パディング注意マスクおよび先読み注意マスクのうちの少なくとも1つを含むことができる。注意メカニズムは、パディング注意マスクと先読み注意マスクの両方を使用したマルチヘッド注意を含むことができる。注意メカニズムは、自己注意を含むことができる。注意メカニズムは、スケーリングされた内積注意を含むことができる。たとえば、ページ遷移、ボタンクリック、またはリモートプロシージャコール(RPC)などの通信デバイス40上で、またはそれによって、不完全なアクティビティのシーケンスが実行される場合、コンピュータ資産検索および配信ソリューションは、通信デバイス40上の次の1つまたは複数の後続のアクティビティを予測することと、予測されたアクティビティに基づいて、コンピュータネットワーク20(図1に示される)を検索するか、通信デバイス40上のクライアント側ウェブブラウザにコンピュータネットワーク20を検索させて、予測されたアクティビティに基づいて最も一致する結果である可能性が高いコンピュータ資産を探すことと、コンピュータ資産を通信デバイス40にプリフェッチまたはプリロードするか、通信デバイス40上のクライアント側ウェブブラウザに、コンピュータ資産を通信デバイス40にプリフェッチまたはプリロードさせることとを行うことができる。プリロードされたコンピュータ資産は、たとえば、通信デバイス40上で次のアクティビティが実行される前、または予測された次のアクティビティに一致するアクティビティが通信デバイス40上で実行された後、通信デバイス40のディスプレイ上の1つまたは複数のウェブページとしてレンダリングすることができる。
非限定的な実装形態では、コンピュータ資産検索および配信ソリューションは、エンドユーザオペレータによって通信デバイス40上の次のエントリまたは複数のエントリを予測し、予測に基づいて、先を見越してウェブページの結果をプリフェッチまたはプリロードすることができる。プリロードされたウェブページの結果は、通信デバイス40内のローカルランダムアクセスメモリ(RAM)またはストレージ領域に記憶することができ、通信デバイス40のディスプレイ上でほぼ瞬時のレンダリングに利用可能にすることができる。記憶されたウェブページの結果は、オペレータまたは通信デバイス40が、予測されたアクティビティと実質的に一致するアクティビティを実行するときに、ディスプレイ上にレンダリングすることができる。あるいは、アクティビティが通信デバイス40上または通信デバイス40に提供される前に、ウェブページの結果をレンダリングすることができる。
図1は、本開示の原理に従って構築されたコンピュータ資産検索および配信(CASD)システム10を含む、コンピュータネットワーク環境1の非限定的な例のブロック図を示している。コンピュータネットワーク環境1は、ネットワーク20および複数の通信デバイス40を含むことができる。コンピュータネットワーク環境1は、コンピュータクラウドネットワーク30を含むことができる。コンピュータネットワーク環境1内のコンポーネントは、それぞれ、通信リンク5を介してデータトラフィックを送信または受信することができる。
CASDシステム10は、通信デバイス40に展開するための1つまたは複数の機械学習(ML)モデルを構築またはトレーニングするように構成することができる。CASDシステム10は、MLモデルを通信デバイス40の各々にダウンロードするように構成することができ、次いで、通信デバイス40は、ロードされたMLモデルを使用して、通信デバイス40上の次のアクティビティを予測することができる。MLモデルは、CASDシステム10から直接ロードすることができる。MLモデルは、CASDシステム10によって、たとえば、コンピュータクラウドネットワーク30内のスタティックコンテンツサービス(SCS)などのコンテンツサービスプロバイダにアップロードすることができる。コンピュータクラウドネットワーク30は、クラウドサービスプロバイダによって動作または維持することができる。クラウドネットワーク30は、CASDシステム10からアップロードされたMLモデルを受信および記憶するように構成することができるスタティックコンテンツサービス(SCS)データベース35を含むことができる。コンテンツサービスプロバイダは、MLモデルを通信デバイス40に直接ロードすることができる。
MLモデルがインストールされると、通信デバイス40は、予測されたアクティビティに基づいてコンピュータネットワーク20を先制して検索してコンピュータ資産を探し、先制検索において識別されたそれらの資産をプリフェッチまたはプリロードすることができる。資産は、通信デバイス40にローカルに記憶され得、オペレータが通信デバイス40と相互作用し(たとえば、キーボード、キーパッド、タッチスクリーンディスプレイなどのユーザインターフェースを介して)、予測されたアクティビティと実質的に一致するアクティビティを提供するときに、その表示デバイス上での表示のために容易に利用可能にされ得る。コンピュータ資産は、コンピュータアプリケーション、あるいは、たとえば、テキストコンテンツ、サウンドコンテンツ、ビデオコンテンツ、または通信デバイス40によってレンダリングすることができる任意の他のタイプのデータを含むスタティックまたは移動マルチメディアコンテンツを有するウェブコンテンツまたはウェブページを含むことができる。たとえば、コンピュータ資産は、カスケードスタイルシート(CSS)などの技術およびJavaScriptなどのスクリプト言語によって支援されるHTMLドキュメントを含むことができる。コンピュータ資産は、たとえば、JavaScriptコマンドなどの画像レンダリングコマンドを含むことができ、これは、通信デバイス40上でレンダリングされるときのウェブコンテンツの動作およびコンテンツに影響を与えるためにHTMLドキュメントに埋め込むことができる。
CASDシステム10は、たとえば、サーバまたはサーバのアレイなどのコンピューティングデバイスを含むことができる。CASDシステム10は、たとえば、検索エンジンのウェブサイトまたはサーバを動作させるISPまたは検索エンジンのオペレータによって動作または維持することができる。CASDシステム10は、インターネットサービスプロバイダ(ISP)のコンピューティングデバイスを含むことができる。CASDシステム10は、MLモデルを構築することと、モデルをトレーニングすることと、ウェブ互換フォーマットでモデルを記憶することとを行うことができる。モデルは、クラウドネットワーク30(または、CASDシステム10)から1つまたは複数の通信デバイス40にダウンロードすることができる。同じMLモデルを通信デバイス40の各々にダウンロードすることができる。デバイスにインストールされている、またはデバイス上で動作しているクライアントアプリケーションに応じて、追加のMLモデルを通信デバイス40の各々にダウンロードすることができる。
通信デバイス40にロードおよびインストールされると、MLモデルは、セッション中に1つまたは複数の前のアクティビティのシーケンスが実行されるときに、通信デバイス40上の次のアクティビティを予測するためにデバイスによって実行することができる。予測は、オペレータの相互作用に応答して通信デバイス40によって実行されるアクティビティ、または通信デバイス40上でオペレータによって実行されるアクティビティに基づくことができる。予測結果は、コンピュータ資産を検索し、デバイスにプリフェッチまたはプリロードするために、通信デバイス40によって使用することができる。コンピュータ資産は、たとえば、バックグラウンドスレッドにおいてJavaScriptを使用して、サーバから非同期的にプリフェッチまたはプリロードすることができ、通信デバイス40が、たとえば、グラフィックユーザインターフェース(GUI)などのユーザインターフェースデバイスを介してオペレータと相互作用することを可能にする。
通信デバイス40は、ディスプレイデバイスを含むことができる。通信デバイス40は、ネットワーク20を介して通信するように構成することができ、たとえば、デバイス内のウェブブラウザにおいて画像レンダリングコマンドを実行することによって、ディスプレイデバイス上のコンピュータ資産を、たとえば、1つまたは複数のウェブページとしてレンダリングする。通信デバイス40は、オペレータとインターフェースし、コンピュータ資産の要求を受信することができる。要求は、検索クエリを含む、検索エンジンへの要求を含むことができる。要求は、ウェブページまたはウェブサイトなどのコンピュータ資産にアクセスする、またはそれを取得する要求を含むことができる。通信デバイス40は、ネットワーク20から、またはネットワーク20を介して受信されたコンピュータ資産をレンダリングおよび表示することができる。通信デバイス40は、ディスプレイデバイスのディスプレイ画面上にコンピュータ資産を表示することができる。コンピュータ資産は、たとえば、ウェブブラウザなどのクライアントアプリケーションによって、通信デバイス40においてローカルに受信および処理することができる。コンピュータ資産は、通信デバイス40上でウェブページを生成/レンダリングするために、データまたは、たとえば、JavaScriptなどの命令を含むことができる。
コンピュータ資産は、たとえば、コンテンツを識別することと、画像、リンク、サウンド、またはコンピュータ資産内の他のオブジェクトを作成または変更修正することとを行うためのマークアップ言語注釈などの画像レンダリングコマンドを含むことができる。マークアップ言語注釈は、通信デバイス40上にスタティックまたは移動コンテンツを表示するための複数のタグを含むことができる。マークアップ言語は、たとえば、標準の一般化マークアップ言語(SGML)、スケーラブルベクトルグラフィックス(SVG)、ハイパーテキストマークアップ言語(HTML)、拡張マークアップ言語(XHTMLまたはXML)、XMLユーザインターフェース言語(XUL)、LaTeX、または、たとえば、通信デバイス40のディスプレイ上にコンピュータ資産をレンダリングするための通信デバイス40上のウェブブラウザなどのクライアントアプリケーションによって使用することができる任意の他のマークアップ言語のうちの1つまたは複数を含むことができる。マークアップ言語注釈は、たとえば、その表示デバイス上にアニメーション化されたまたは静止したウェブコンテンツを備えたコンピュータ資産をレンダリングするために、通信デバイス40上で実行されているウェブブラウザによって実行することができる。
レンダリングコマンドは、スタイルのルールを提供し、マークアップ言語の注釈を使用してコンピュータ資産の提示を記述するためのスタイルシート言語の注釈を含むことができる。スタイルシート言語の注釈は、たとえば、色、フォント、レイアウト、または他のスタイルプロパティを含むことができる。スタイルシート言語は、たとえば、カスケードスタイルシート(CSS)、ドキュメントスタイルセマンティクスおよび仕様言語(DSSSL)、または拡張可能スタイルシート言語(XSL)のうちの1つまたは複数を含むことができる。スタイルシート言語の注釈は、スタイルシート言語ファイルとして提供することができる。または、スタイルシート言語の注釈をマークアップ言語の注釈を含むファイルに組み込むことができる。
レンダリングコマンドは、マークアップ言語の注釈またはスタイルシート言語の注釈に関連するインタラクティブな効果を作成するために、スクリプト言語命令を含むことができる。スクリプト言語は、たとえば、Bash(たとえば、Unixオペレーティングシステム用)、ECMAScript(または、JavaScript)(たとえば、ウェブブラウザ用)、Visual Basic(たとえば、Microsoftアプリケーション用)、Lua、またはPythonを含むことができる。スクリプト言語命令は、たとえば、通信デバイス40上のウェブブラウザなどのクライアントアプリケーションによって実行されると、通信デバイス40のディスプレイデバイス上の1つまたは複数のウェブページとしてコンピュータ資産のレンダリングを実行する命令を含むことができる。
スクリプト言語命令は、たとえば、XMLまたはHTMLドキュメントと協働することができるウェブページドキュメントオブジェクトモデル(DOM)など、スクリプトが環境と相互作用できるオブジェクトおよび方法を提供するために、通信デバイス40(たとえば、ウェブブラウザなど)上のクライアントアプリケーションなどのランタイム環境に依存することができる。スクリプト言語命令は、HTML<script>要素などのスクリプトを含む、またはインポートする機能を提供するために、ランタイム環境に依存することができる。スクリプト言語命令は、たとえば、JavaScriptエンジンによるコンピュータ資産の処理をキューから一度に1つずつ実行することができるJavaScript命令を含むことができる。たとえば、JavaScriptは、コンピュータ資産に関連付けられる関数を呼び出し、関数の引数およびローカル変数を使用して呼出しスタックフレームを作成することができる。呼出しスタックは、関数のニーズに基づいて縮小および拡大することができる。関数の完了時に呼出しスタックが空の場合、JavaScriptはキュー内の次のコンピュータ資産に進むことができる。
スクリプト言語命令は、コンピュータ資産をピクセルデータの複数の行または列に処理し、コンピュータ資産を1つまたは複数のウェブページとして表示するために、通信デバイス40上のクライアント側ウェブブラウザによって使用することができる。画像レンダリングコマンドには、スクリプト言語命令を用いて修正することができるウェブページのオブジェクト指向表現を作成することができるHTMLまたはXML(たとえば、DOM5 HTML)などのドキュメントオブジェクトモデル(DOM)を含むことができる。DOMは、HTML、XHTML/XML、SGML、SVG、またはXULにおけるオブジェクトを表現する、およびオブジェクトと相互作用するための、クロスプラットフォームまたは言語に依存しない規則を含むことができる。
通信デバイス40は、1つまたは複数のユーザインターフェースデバイスを含むことができる。一般に、ユーザインターフェースデバイスは、感覚情報(たとえば、ディスプレイ上の視覚化)、1つまたは複数のサウンド、触覚生成(たとえば、触覚ディスプレイ上で生成されたブライユ、または振動)を生成することによって、またはオペレータから受信した感覚情報を電子信号に変換する(キーボード、マウス、ポインティングデバイス、タッチスクリーンディスプレイ、またはマイク)ことによって、データをオペレータに伝達する任意の電子デバイスであり得る。1つまたは複数のユーザインターフェースデバイスは、通信デバイス40の筺体の内部にあるか(たとえば、内蔵ディスプレイ、キーボード、マイク、またはタッチパッド)、または筺体の外部にある(たとえば、通信デバイス40に接続されたディスプレイデバイス、カメラ、スピーカ、またはマイク)ことができる。
通信デバイス40は、ネットワーク20内のコンピュータ資産の1つまたは複数のソースから受信したデータおよび命令を使用してコンピュータ資産を視覚的に表示する電子ディスプレイデバイスを含むことができる。
図2は、クライアント側通信デバイス40の非限定的な実施形態を示すブロック図である。通信デバイス40は、とりわけ、1つまたは複数のコンポーネント41~49を含むことができ、これらのコンポーネントの各々は、通信リンクに接続可能であり得る。通信デバイス40は、バス2を含むことができ、バス2は、固有のまたは共通の通信リンクによってコンポーネント41~49の各々に接続可能であり得る。コンポーネント41~49は、複数のコンピューティングデバイスとして、または1つまたは複数のコンピューティングデバイス内の複数のモジュールとして構成することができる。
コンポーネント41~49は、プロセッサ41、ストレージ42、ハードディスクドライブ(HDD)43、ネットワークインターフェース44、入力/出力(I/O)インターフェース45、ドライバユニット46、データベース47、通信デバイス入力またはアクティビティ(CDIA)予測ユニット48、ならびにコンピュータ資産検索およびプリフェッチまたはプリロード(CASPP)ユニット49を含むことができる。コンポーネント42~49のいずれか1つまたは複数は、プロセッサ41とは別個のコンピューティングデバイスまたはモジュールを含むことができ(たとえば、図2に見られるように)、またはコンポーネントは、プロセッサ41などのコンピューティングデバイスに統合することができ、または統合可能であり得る。通信デバイス40は、たとえば、スピーカなどのサウンド生成デバイス(図示せず)、およびディスプレイデバイスなどの画像レンダリングデバイスを含むことができる。
プロセッサ41は、たとえば、中央処理装置(CPU)、グラフィック処理装置(GPU)、汎用GPU(GPGPU)、フィールドプログラマブルゲートアレイ(FGPA)、特定用途向け集積回路(ASIC)、またはメニーコアプロセッサなどのコンピューティングデバイスを含むことができる。
プロセッサ41は、ストレージ42に記憶された命令を含む、通信デバイス40内で実行するための命令を処理することができる。プロセッサ41は、たとえば、I/Oインターフェース45に接続することができるディスプレイデバイスなどの外部入力/出力デバイス上にGUIのグラフィック情報を表示するための命令を処理することができる。
通信デバイス40は、プロセッサ41または他のデバイスコンポーネントのうちの1つによって実行されると、通信デバイス40におけるステップ、プロセス、および方法が実行されるようにする実行可能または解釈可能なコンピュータコード(または、命令)を保持することができるコンピュータ可読媒体を含むことができる。コンピュータ可読媒体は、ストレージ42またはHDD43に提供することができる。コンピュータ可読媒体は、プロセッサ41および/または他のデバイスコンポーネントのうちの1つによって実行されると、通信デバイス40に、たとえば、ステップ340または350(図5に示される)、ならびに本開示において通信デバイス40によって実行されることが企図される他のすべてのプロセス、方法、またはステップを遂行させるコンピュータプログラムコードまたは命令のセクションを含むことができる。
ストレージ42は、読取り専用メモリ(ROM)42Aおよびランダムアクセスメモリ(RAM)42Bを含むことができる。基本的な入出力システム(BIOS)は、たとえば、ROM、EPROM、またはEEPROMを含むことができる不揮発性メモリ42Aに記憶することができる。BIOSは、起動時など、通信デバイス40内のデバイスコンポーネント間で情報を転送するために役立つ基本的なルーチンを含むことができる。RAM42Bは、データをキャッシュするためのスタティックRAMなどの高速RAMを含むことができる。HDD43はハードディスクドライブを含むことができる。
ストレージ42またはHDD43は、データ、データ構造、およびコンピュータ実行可能コードまたは命令の不揮発性ストレージを提供することができるコンピュータ可読媒体を含むことができる。ストレージ42またはHDD43は、適切なデジタルフォーマットにおける任意のデータのストレージに対応することができる。ストレージ42またはHDD43は、本明細書で説明されるアーキテクチャの態様を実行するために使用することができる1つまたは複数のコンピュータアプリケーションを含むことができる。ストレージ42またはHDD43は、たとえば、フラッシュメモリまたはNVRAMメモリを含むことができる。
オペレーティングシステム、クライアントアプリケーション、API、およびプログラムデータを含む1つまたは複数のコンピュータプログラムモジュールをストレージ42またはHDD43に記憶することができる。APIは、たとえば、Web API、シンプルオブジェクトアクセスプロトコル(SOAP)API、リモートプロシージャコール(RPC)API、表現状態転送(REST)API、あるいは他のユーティリティまたはサービスAPIを含むことができる。コンピュータプログラムモジュールのいずれか(または、すべて)は、コンピュータプログラムコードの実行可能セクションとしてRAM42Bにおいてキャッシュすることができる。
ネットワークインターフェース44は、ネットワーク20またはクラウドネットワーク30(図1に示される)などのネットワークに接続可能であり得る。ネットワークインターフェース44は、1つまたは複数の通信リンク5(図1に示される)を介してネットワーク20またはクラウドネットワーク30に接続可能であり得る。ネットワークインターフェース44は、ワイヤードまたはワイヤレス通信ネットワークインターフェース(図示せず)またはモデム(図示せず)を含むことができる。ローカルエリアネットワーク(LAN)において使用される場合、通信デバイス40は、ワイヤードまたはワイヤレス通信ネットワークインターフェースを通じてLANネットワークに接続することができ、広域ネットワーク(WAN)において使用される場合、通信デバイス40は、モデムを通じてWANネットワークに接続することができる。ネットワーク20またはクラウドネットワーク30(図1に示される)は、LAN、WAN、インターネット、またはコンピューティングデバイスもしくは通信デバイスの任意の他のネットワークを含むことができる。モデム(図示せず)は、内部または外部であってよく、またワイヤードまたはワイヤレスであってよい。モデム(図示せず)はバス2に接続することができる。
I/Oインターフェース45は、オペレータからコマンドおよびデータを受信することができる。I/Oインターフェース45は、たとえば、キーボード(図示せず)、マウス(図示せず)、ポインタ(図示せず)、マイク(図示せず)、スピーカ(図示せず)、またはディスプレイ(図示せず)を含む、1つまたは複数の入力/出力デバイス(図示せず)に接続するように構成することができる。受信したコマンドおよびデータは、I/Oインターフェース45から、命令およびデータ信号として、バス2を介して、通信デバイス40内の任意のコンポーネントに転送することができる。
ドライバユニット46は、オーディオドライバ46Aおよびビデオドライバ46Bを含むことができる。オーディオドライバ46Aは、サウンドカード、サウンドドライバ(図示せず)、インタラクティブ音声応答(IVR)ユニット、または、たとえばスピーカ(図示せず)などのサウンド生成デバイス(図示せず)上でサウンド信号をレンダリングするために必要な任意の他のデバイスまたはモジュールを含むことができる。ビデオドライバ46Bは、ビデオカード(図示せず)、グラフィックスドライバ(図示せず)、ビデオアダプタ(図示せず)、またはディスプレイデバイス上で画像またはビデオ信号をレンダリングするために必要な任意の他のデバイスまたはモジュールを含むことができる。
CDIA予測ユニット48は、コンピューティングデバイスもしくはモジュールを含むことができ、またはコンピューティングデバイスもしくはモジュールに含めることができる。CDIA予測ユニット48は、プロセッサ41に含まれるか、または統合され得る。CDIA予測ユニット48は、機械学習(ML)プラットフォームを含むことができる。MLプラットフォームは、1つまたは複数のMLモデルを備えることができる。モデルは、SCS35(図1に示される)またはCASDシステム10(図1に示される)から通信デバイス40にダウンロードすることができる。MLプラットフォームは、教師あり機械学習、教師なし機械学習、または教師あり機械学習と教師なし機械学習の両方を含むことができる。MLプラットフォームは、たとえば、人工ニューラルネットワーク(ANN)、畳み込みニューラルネットワーク(CNN)、深層CNN(DCNN)、RCNN、マスク-RCNN、深層畳み込みエンコーダ-デコーダ(DCED)、リカレントニューラルネットワーク(RNN)、ニューラルチューリングマシン(NTM)、差分ニューラルコンピュータ(DNC)、サポートベクトルマシン(SVM)、深層学習ニューラルネットワーク(DLNN)、単純ベイズ、決定木、線形回帰、Q学習、時間差(TD)、深層敵対ネットワーク、ファジーロジック、あるいは教師ありまたは教師なしの機械学習が可能な他の機械インテリジェンスプラットフォームを含むことができる。CDIA予測ユニット48は、1つまたは複数のプラットフォーム中立またはプラットフォームにとらわれないAPIを含むことができる。
CDIA予測ユニット48は、たとえば、デバイス上のウェブブラウザなどのクライアントアプリケーションの単一の動作セッション中の1つまたは複数のアクティビティを含む、通信デバイス40上のアクティビティをリッスンまたは監視するように構成することができる。CDIA予測ユニット48は、通信デバイス40上でクライアントアプリケーションを動作させるときの行動パターンを含むオペレータの行動を監視および学習し、ストレージ42またはデータベース47に関連するアクティビティをログ記録および記録するように構成することができる。CDIA予測ユニット48は、アクティビティログデータをCASDシステム10(図1に示される)に送信するように構成することができ、CASDシステム10によって構築されたMLモデルを微調整または更新するためのトレーニングデータとして使用できるようにする。
CDIA予測子48は、入力を受信するか、1つまたは複数のアクティビティをリッスンおよび監視することができ、これは、セッション中にクライアント側クライアントアプリケーション上でまたはクライアント側クライアントアプリケーションによって実行される1つまたは複数のアクティビティのシーケンスを含むことができる。CDIA予測子48は、1つまたは複数のアクティビティのシーケンスを分析し、クライアントアプリケーションまたは通信デバイス40上でオペレータによって実行される可能性が高い次のアクティビティを予測するように構成することができる。たとえば、ユーザログインセッション中に、CDIA予測子48は、すでに発生した、またはセッション中に発生する際に、オペレータによってアクティビティのシーケンスを分析し、次いで、そのセッション中に発生する可能性のある次のアクティビティを予測することができ、これは、たとえば、RPC、アプリ、または単に「何もしない」などを含むことができる。
CDIA予測子48は、クライアントアプリケーション上で実行できるように、MLモデルに統合された、または組み込まれた、クライアントアプリケーション(たとえば、クライアント側ウェブブラウザなど)のフロントエンドコンピュータプログラムコードを含むことができる。MLモデルへの入力とMLモデルからの出力の両方を単純に保つことができるため、CDIA予測子48は、たとえば、約数マイクロ秒(μs)から数百マイクロ秒またはミリ秒、またはそれ以上など、ほぼ瞬時に予測を行うことができる。CDIA予測子48は、通信デバイス40上のバックグラウンドにおいて動作することができ、それによって、オペレータは、他の無関係なアクティビティを実行するために、通信デバイス40上の1つまたは複数の他のクライアントアプリケーションと相互作用することができる。
非限定的な実施形態では、CDIA予測ユニット48は、フィードフォワード深層ニューラルネットワーク(DNN)およびTransformer(または、シーケンス変換)MLモデルを含み、これらは、注意メカニズムを通じてエンコーダおよびデコーダを接続するように構成することができる。Transformerモデルは、たとえば、第31回神経情報処理システム会議(NIPS 2017)、米国カリフォルニア州ロングビーチによって公開された、Ashish Vaswaniらによる「Attention Is All You Need」というタイトルの記事において説明されているように、エンコーダ-デコーダ構造を含むモデルアーキテクチャを含むことができる。記事において提供されているTransformerモデルの説明は、記事において図1に示されているTransformerモデルのアーキテクチャを含め、参照により本明細書に組み込まれる。Transformerモデルは、自然言語手法に基づいて動作アクションなどのアクティビティを予測することができる。Transformerモデルは、たとえば、自然言語手法を使用して、通信デバイス40上のクライアントアプリケーション(アプリ)のアクティビティ(たとえば、オペレータアクション)の履歴などのオペレータジャーニーに基づいてトレーニングすることができる。Transformerモデルは、ウェブ互換フォーマットで通信デバイス40に記憶することができる。Transformerモデルは、オペレータジャーニーにおける初期のアクティビティに基づいて、クライアントアプリまたは通信デバイス40で発生する可能性のある次のアクティビティを予測することができる。予測された結果は、コンピュータ資産を先制的に検索し、通信デバイス40にプリフェッチまたはプリロードするために使用することができる。
クライアントアプリケーションは、これらに限定されないが、たとえば、ウェブブラウザアプリケーション、マーチャントまたはベンダアプリケーション、ショッピングアプリケーション、ユーザアプリケーション、電子メールアプリケーション、政府機関アプリケーション、機械翻訳アプリケーション、言語翻訳アプリケーション、ウェブ互換アプリケーション、ソーシャルネットワークアプリケーション、あるいは通信デバイス40にロードまたはインストールすることができる任意の他のクライアント側コンピュータアプリケーションを含むことができる。
CDIA予測子48は、注意メカニズムを含むことができる。注意メカニズムは、たとえば、参照によりその全体が本明細書に組み込まれる、Ashish Vaswaniらによる「Attention Is All You Need」というタイトルの上記の記事のセクション3(「Model Architecture」)、または、参照によりその全体が本明細書に組み込まれる、2019年10月22日に発行されたNoam M. Shazeerらによる「Attention-Based Sequence Transduction Neural Networks」というタイトルの米国特許第10,452,978号に記載されているように、注意機能を含むことができる。注意メカニズムは、クエリとキーと値のペアのセットを出力にマッピングするように構成することができ、クエリ、キー、値、および出力はすべてベクトルである。出力は、値の加重和として計算することができ、各値に割り当てられた加重は、対応するキーを用いてクエリの互換性関数によって計算することができる。注意メカニズムは、Transformerモデルによって注意加重を計算するために使用することができる。
注意メカニズムは、パディング注意マスクおよび先読み注意マスクを有することができる。注意メカニズムは、自己注意または多頭注意を含むことができる。自己注意(イントラ注意としても知られる)は、そのシーケンスの表現を計算するために単一の入力シーケンスの様々な位置に注意を向けるように構成することができる。多頭注意は、クエリ、キー、および値を、学習した様々な線形投影を使用して、複数のそれぞれの次元に線形に複数回投影するように構成することができる。クエリ、キー、値の投影されたバージョンのそれぞれにおいて、Transformerモデルは注意機能を並列に実行することと、連結して再度投影できる多次元出力値を生成することと、Transformerモデルによって使用できる最終値を生成することとを実行することができる。
パディング注意マスクは、シーケンス内のすべてのパッドトークンをマスクし、モデルがパディングを入力として扱わないように構成することができる。パディング注意マスクは、パッド値が存在する場所を示して、それらの場所において値(たとえば、「1」)を出力することと、残りの場所において別の値(たとえば、「0」)を出力することとを行うことができる。
先読みマスクは、シーケンス内の将来のトークンをマスクするように構成することができる。たとえば、シーケンス内のどのエントリを使用するべきではないかを示すために、先読みマスクを構成することができる。
CASPPユニット49は、コンピューティングデバイスまたはモジュールを含むことができ、あるいはコンピューティングデバイスまたはモジュールに含めることができる。CASPPユニット49は、プロセッサ41に含まれるか、または統合され得る。CASPPユニット49は、単一のコンピューティングデバイスまたはモジュールにおいてCDIA予測ユニット48と組み合わせることができる。CASPPユニット49は、MLプラットフォームを含むことができる。MLプラットフォームは、MLモデルを含むことができる。MLモデルは、SCS35(図1に示される)から通信デバイス40にダウンロードすることができる。CDIA予測ユニット48およびCASPPユニット49が単一のコンピューティングデバイスまたはモジュールに組み合わされる非限定的な実施形態では、実施形態は、CDIA予測ユニット48およびCASPPユニット49の両方のプロセスまたは動作を実行する単一のMLモデルを含むことができる。
CASPPユニット49は、CDIAユニット48から予測データを受信し、予測データに基づいて、予測データに関連している可能性のあるコンピュータ資産、または、予測されたアクティビティが通信デバイス40上で実行されるときに、オペレータが受信および閲覧することを期待する可能性のあるコンピュータ資産を求めてネットワーク20を先制的に検索するか、または、通信デバイス40内のウェブブラウザに先制的に検索させるように構成することができる。CASPPユニット49は、先制検索結果を分析し、予測データに基づいて、最も一致する結果であるコンピュータ資産をプリフェッチおよびプリロードすることができる。最も一致する結果は、たとえば、CASPPユニット49におけるDNNによって決定することができ、これは、すべて(または、すべての一部)の検索結果を分析することと、結果の関連性の重みを計算することと、予測データとの最大の関連性を有する結果を識別することとを行うために、MLモデルを適用することができる。一実施形態では、CASPPユニット49は、たとえば、最大の関連性値を有するコンピュータ資産を先制的に検索、プリフェッチ、およびプリロードするために、通信デバイス内のウェブブラウザと相互作用することができる。
データベース47は、別個のコンピューティングデバイスまたはモジュールとして構成することができ(図2に示されるように)、またはそれをHDD43に含むか、統合することができる。データベース47は、通信デバイス40にプリフェッチまたはプリロードされるコンピュータ資産を記憶することができる。データベース47は、通信デバイス40上のクライアントアプリケーションごとに履歴アクティビティデータを記憶することができる。データベース47は、各クライアントアプリケーションにおいて実行されるセッションごとに履歴アクティビティデータを記憶することができる。データベース47は、アクティビティデータをファイルまたはレコードとして記憶することができる。ファイルまたはレコードは、上の各固有のクライアントアプリケーション、または通信デバイス40を使用した各オペレータにリンクすることができる。記憶されたアクティビティデータは、データベース47からアクセス、検索、または取得され、通信デバイス40内のコンポーネント(たとえば、プロセッサ41、CDIA予測ユニット48、またはCASPPユニット49)のうちの1つまたは複数に送信され得る。アクティビティデータは、直接、またはクラウドネットワーク30(図1に示される)を介して、取得され、CASDシステム10に送信され得る。
図3は、本開示の原理に従って構築された、CASDシステム10の非限定的な実施形態を示すブロック図である。CASDシステム10は、1つまたは複数のコンピューティングデバイスとして構成することができる。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は、1つまたは複数の高速インターフェース(図示せず)、高速拡張ポート(図示せず)、低速インターフェース(図示せず)、または大容量ストレージデバイス(図示せず)を含むことができ、これらは、様々なバスを使用して相互接続することができ、一般的なマザーボードに、または他の方法で適切に取り付けることができる。
プロセッサ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内のうちの1つまたは複数のデバイスコンポーネントによって実行されると、プロセス300(図5に示される)を含む、本開示のステップ、プロセス、および方法を実行させることができる。コンピュータ可読媒体は、ストレージ120またはDD130において提供することができる。
ストレージ120は、読取り専用メモリ(ROM)120Aおよびランダムアクセスメモリ(RAM)120Bを含むことができる。基本的な入出力システム(BIOS)は、たとえば、ROM、EPROM、またはEEPROMを含むことができる不揮発性メモリ120Aに記憶することができる。BIOSは、起動時など、CASDシステム10におけるコンポーネント間で情報を転送するために役立つ基本的なルーチンを含むことができる。RAM120Bは、データをキャッシュするためのスタティックRAMなどの高速RAMを含むことができる。
DD130は、ハードディスクドライブ(HDD)130Aおよび/または光ディスクドライブ(ODD)130Bを含むことができる。HDD130Aは、たとえば、拡張統合ドライブ電子機器(EIDE)ドライブ、シリアル先端技術アタッチメント(SATA)ドライブ、または任意の他のハードドライブデバイスを含むことができる。ODD130Bは、たとえば、CD-ROMディスク(図示せず)から/への読取り/書込み、またはデジタル多用途ディスク(DVD)などの他の大容量光媒体からの読取り、またはそこへの書込みを含むことができる。HDD130Aは、適切なシャーシ(図示せず)において外部使用するように構成することができる。DD130は、それぞれ、ハードディスクドライブインターフェース(図示せず)および光学ドライブインターフェース(図示せず)によってシステムバス105に接続することができる。ハードディスクドライブインターフェース(図示せず)は、ユニバーサルシリアルバス(USB)(図示せず)、IEEE 1394インターフェース(図示せず)、または外部アプリケーションに適した任意の他のインターフェースを含むことができる。
コンピュータ可読媒体を含むストレージ120またはDD130は、データ、データ構造、およびコンピュータ実行可能コードまたは命令の不揮発性ストレージを提供することができる。ストレージ120またはDD130は、適切なデジタルフォーマットにおける任意のデータのストレージに対応することができる。ストレージ120またはDD130は、本明細書で説明されるアーキテクチャの態様を実行するために使用することができる1つまたは複数のコンピュータアプリケーションを含むことができる。ストレージ120またはDD130は、たとえば、フラッシュメモリまたはNVRAMメモリを含むことができる。
オペレーティングシステム(図示せず)、1つまたは複数のアプリケーションプログラム(図示せず)、1つまたは複数のAPI、およびプログラムデータ(図示せず)を含む1つまたは複数のプログラムモジュールをストレージ120またはDD130に記憶することができる。APIは、たとえば、Web API、SOAP API、RPC API、REST API、あるいは他のユーティリティやサービスAPIを含むことができる。プログラムモジュールのいずれか(または、すべて)は、コンピュータプログラムコードの実行可能セクションとしてRAM120Bにキャッシュすることができる。
ネットワークインターフェース140は、ネットワーク20またはクラウドネットワーク30(図1に示される)などのネットワークに接続することができる。CASD10は、たとえば、通信リンク5およびネットワーク20を介して通信デバイス40と通信するネットワークインターフェース140を介して、1つまたは複数の通信デバイス40(図1に示される)に接続することができる。ネットワークインターフェース140は、1つまたは複数の通信リンク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は、たとえば、キーボード(図示せず)、マウス(図示せず)、ポインタ(図示せず)、マイク(図示せず)、スピーカ(図示せず)、またはディスプレイ(図示せず)を含む、1つまたは複数の入力/出力デバイス(図示せず)に接続するか、またはそれと通信するように構成することができる。受信したコマンドおよびデータは、I/Oインターフェース150から、命令およびデータ信号として、バス105を介して、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は、1つまたは複数のプラットフォーム中立またはプラットフォームにとらわれないAPIを含むことができる。MLMビルダ180は、自然言語処理(NLP)アプリケーションを含むことができる。
MLMビルダ180は、デバイスにインストールされたときに、通信デバイス40(図1に示される)上のアクティビティを予測するために使用され得る1つまたは複数のMLモデルを選択、作成、または構築するように構成され得る。MLMビルダ180は、たとえば、モデル変換を使用してモデルを構築することによって、ユーザの介入なしに、MLモデルを自律的に構築するように構成することができる。MLモデルは、Transformerモデルを含めるように作成することができる。MLモデルは、セッション中の通信デバイス40(図1に示される)上のアクティビティをリッスンし、監視し、分析し、通信デバイス40上で次に起こりそうなアクティビティを予測するように構築することができる。MLモデルは、トレーニングデータ(たとえば、ラベル付けされたトレーニングデータ)から学習し、たとえば、特定のクライアントアプリケーションまたはクライアントアプリケーションのタイプのエンドユーザによって、または特定のタイプの通信デバイス40または通信デバイス40のグループによって一般的に発生するオペレータの動作を含むことができるオペレータの動作を学習するように構築することができる。トレーニングデータは、たとえば<<https://research.google/tools/datasets/>>において見つけることができる、GOOGLE(登録商標)検索>ツールとダウンロード>データベースなどのウェブサイト(図示せず)から取得することができる履歴アクティビティデータトレーニングセットを含むことができる。トレーニングデータは、通信デバイス40(図1に示される)から受信されたアクティビティログデータを含むことができる。
MLモデルは、アクティビティ(たとえば、1つまたは複数のアクティビティ)のシーケンスを入力として受信することと、アクティビティのシーケンスを分析することと、次に発生する可能性のあるアクティビティを予測することと、予測されるアクティビティに最も一致するコンピュータ資産を先制的に検索する、またはクライアントアプリケーションに先制的に検索させるように構成することができる。MLモデルは、最も一致するコンピュータ資産をプリフェッチおよびプリロードし、所与のオペレータの間に通信デバイス40(図1に示される)上でレンダリングするために利用可能にするようにさらに構成することができる。MLMビルダ180は、クライアント側のクライアントアプリケーション(たとえば、ウェブブラウザなど)と相互作用するようにMLモデルを構成することができ、予測されたアクティビティに基づいて、クライアントアプリケーションに最も一致するコンピュータ資産をプリフェッチまたはプリロードさせ、たとえば、オペレータが通信デバイス40で予測されたアクティビティを実行すると、コンピュータ資産が使用可能になり、ほぼ瞬時にレンダリングできるようにし、それによって待ち時間を排除する。
データベース170は、Big Dataデータベースを含むことができる。データベース170は、たとえば、データレイク、Hadoop、HBase、NoSQL、PostGres MySQL、または大量のデータを記憶し、Big Data分析などの高性能コンピューティングアプリケーションにおいて要求されたデータを検索または取得することができる任意のデータベースまたはシステムを含むことができる。データベース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プログラムを含む、TensorFlow SavedModelとして記憶することができる。
MLMビルダ180は、MLモデルを構築するときにデータベース170と相互作用し、データベース170にクエリを実行することができる。通信デバイス40(図1に示される)に含まれ得るクライアントアプリ(たとえば、GOOGLE(登録商標)検索エンジン)のタイプごとに、固有のMLモデルを構築することができる。固有のMLモデルは、固有のタイプの通信デバイス40ごとに構築することができる(たとえば、モデルは、GOOGLE(登録商標)電話のために構築することができる)。MLMビルダ180は、データベース170にクエリを実行し、特定のクライアントアプリまたは通信デバイス40のアクティビティログデータの大きなプール全体のアクティビティログデータを分析して、クライアントアプリケーションまたはデバイスを動作させるセッション中に発生したアクティビティのシーケンスが提示されたときに、クライアントアプリケーションまたは通信デバイス上のアクティビティを一貫して正確に予測するためのMLモデルを構築することができるようにする。
非限定的な実施形態では、MLMビルダ180は、MLモデルを構築して、それがオペレータにとらわれない、および/またはプラットフォームにとらわれないように、任意のオペレータまたは通信デバイス40(図1に示される)と協働できるように構成することができる。したがって、MLモデルは、個人識別情報(PII)なしで動作するように構成することができる。MLMビルダ180は、クライアントアプリまたは通信デバイス40を使用する際に任意のオペレータによって使用することができる集約モデルとしてMLモデルを構築するように構成することができる。MLMビルダ180は、MLモデルを構築して、たとえば、通信デバイス40(図1に示される)上のウェブブラウザなどのクライアントアプリケーションのフロントエンドコンピュータ実行可能コードと統合または組み込み、デバイスにおいてローカルに予測を行うことができるようにすることができる。
非限定的な実施形態では、MLMビルダ180は、セッション中のアクティビティのシーケンスに基づいて、通信デバイス40によってロードされる次のクライアントアプリケーションを予測することができるフィードフォワードDNNを含むようにMLモデルを構築することができ、これは、デバイスにロードされるアプリの時系列を含めることができ、そのうちの少なくとも1つはRPCなどのアクティビティを追跡することができる。MLモデルは、各入力データエントリが同じ長さを有する必要があるように構成することができる。この点において、シーケンス内の要素の数があらかじめ定義されたパラメータ(MAX_LENGTH)よりも少ない場合、MLモデルが1つまたは複数のプレースホルダ(PLACE_HOLDER)を作成し、シーケンスの長さをあらかじめ定義されたパラメータ(MAX_LENGTH)と等しくするように入力データシーケンスの末尾に追加できるようにモデルを構成することができ、その結果、拡張シーケンスを作成する。各アプリの可能性を評価および予測するために、拡張シーケンスをMLモデルに入力することができる。MLモデルは、ロジスティック回帰モデルとしても知られるLogitモデルを含むように構成することができる。
MLMビルダ180は、モデルをトレーニングすることができる速度を高めるために注意メカニズムを使用するように構成されたTransformerモデルを構築することができる。Transformerモデルは、たとえば、エンコーダおよびデコーダのスタックを含む、1つまたは複数のエンコーダおよび1つまたは複数のデコーダを含むように構成することができる。エンコーダは、フィードフォワードDNNおよび注意メカニズムを含むように構成することができ、これは、パディング注意マスクおよび先読み注意マスクのうちの少なくとも1つを含むことができる。
図4は、エンコーダスタック220およびデコーダスタック230を含むように構成されたTransformerモデル200の非限定的な例を示している。モデル200は、エンコーダスタック220内の第1のエンコーダ220Aにおいて入力アクティビティシーケンス210を受信し、最後のエンコーダ220Eからの出力をデコーダスタック230内のデコーダ230A~230Eの各々に供給するように構成することができる。結果は、デコーダスタック230内のすべてのデコーダに並行して同時に供給することができる。デコーダスタック230内の最後のデコーダ230Eからの結果は、モデル200からの出力240であり得る。エンコーダ220A~220Eのうちの少なくとも1つは、フィードフォワードDNNおよび注意メカニズムを含むことができる。Transformerモデル200内のデコーダ230A~230Eのうちの少なくとも1つは、フィードフォワードDNNおよびエンコーダ-デコーダ注意メカニズムを含むことができる。入力アクティビティシーケンス210は、文字列のリストを含むことができ、モデル200は、入力アクティビティシーケンス210内の各要素の位置を含む、文字列の位置情報を説明するように構成することができる。Transformerモデル200は、位置決め埋込みを含むことができる。
MLPパイプライン190は、それが作成または構築された後にMLモデルをトレーニングするように構成することができる。MLPパイプライン190は、たとえば、TensorFlow Extended(TFX)パイプラインプラットフォームなどの機械学習パイプライン(MLP)プラットフォームを含むことができる。MLPパイプライン190は、機械学習モデルのトレーニングおよび生産に熟練した人々によって理解されるように、機械学習生産に熟練した人々によって理解されるように、データ取込み、データ検証、特徴工学、モデルトレーニング、モデル検証、モデル転送、およびモデル提供を含むことができる。
MLPパイプライン190は、固定データを用いてMLモデルをトレーニングするように構成することができる。MLPパイプライン190は、コンピューティングデバイスまたはモジュールを含むことができる。MLPパイプライン190は、進化するデータを用いた継続的なトレーニングを通じて、最新のMLモデルを生成して提供するように構成することができる。MLPパイプライン190は、ラベル付けされたデータを用いてMLモデルをトレーニングするように構成することができる。MLPパイプライン190は、最適な特徴空間カバレッジおよび最小の次元性のために構成することができる。
MLモデルがトレーニングされた後、MLPパイプライン190は、たとえばTensorFlow SavedModelフォーマットを使用して、トレーニングされたMLモデルをMLモデルデータベース174(図3に示される)に保存することができ、このデータベースは、重みと計算を含む完全なTensorFlowプログラムを含むことができる。SavedModelは、実行するために元のモデル構築コードを有している必要がなく、したがって共有または展開に役立つ。MLPパイプライン190は、たとえば<<https://github.com/tensorflow/tfjs/tree/master/tfjs-converter>>において見つけることができる、たとえばtfjs_converterなどのコンバータ(図示せず)を含むことができる。コンバータは、MLモデルデータベース174(図3に示される)からMLモデルを取得し、トレーニングが完了した後、MLモデル(たとえば、TensorFlow SavedModel)を、たとえばJavaScriptなどのスクリプト言語によって使用することができるフォーマットに変換するように構成することができる。次いで、MLPパイプライン190は、変換されたMLモデルをSCS35(図1に示される)にアップロードするように構成することができ、SCS35は、次に、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またはTransformerモデルを含むアクティビティ情報を使用して、MLMビルダ180によって構築することができる(ステップ320)。フィードフォワードDNNモデルが構築されている場合(ステップ320)、受信したアクティビティシーケンスに基づいてロードされる次のアプリケーションを予測することを目的としたMLモデルを構築することができる。このタイプのMLモデルは、各入力データエントリが同じ長さを有することを必要とする場合がある。入力データエントリにおける第1の要素は、たとえば、ロードされたアプリを含むことができ、シーケンス内の後続の要素は、たとえばRPCなどの後続に発生するアクティビティを含む。シーケンス内の要素の数があらかじめ定義されたパラメータ(MAX_LENGTH)よりも少ない場合、MLMビルダ180は、長さがあらかじめ定義されたパラメータ(MAX_LENGTH)と等しくするために、末尾に複数の「PLACE_HOLDER」を追加することができる。MLモデルには、この拡張シーケンスを供給することができるため、モデルは各アプリの発生の可能性(ロジット)を評価することができる。ラベルセットのサイズは、たとえば、非限定的な例では15~30個のアプリなどの、個別のアプリの数にすることができる。
しかしながら、Transformerモデルが構築されている場合(ステップ320)、第1の要素がアプリである必要なしに、任意のシーケンスを入力として受信するためにMLモデルを構築することができる。フィードフォワードDNNモデルと同様に、Transformerモデルでは、すべての入力エントリが同じ長さを有する必要がある。したがって、MLMビルダ180は、MAX_LENGTHよりも短いシーケンスの終わりに「PLACE_HOLDER」を追加するように構成することができる。このモデルは、RPCとアプリの両方を含むあらゆるアクティビティを予測するために使用することができる。ラベルセットのサイズは大きくすることができ、たとえば、1つの非限定的な例では約2000である。
フィードフォワードDNNモデルまたはTransformモデルのどちらが構築されているかに関係なく(ステップ320)、順次情報をモデル化するためにMLモデルを構成することができる。入力は文字列のリストを含むことができるため、MLモデルはこれらの文字列の位置情報を考慮することができる。たとえば、Transformerモデルは、位置決め埋込みを含むことができる。位置決め埋込みはまた、フィードフォワードDNNモデルによって適用することができる。
モデルが構築されると(ステップ320)、たとえば、モデルをトレーニングおよび保存し、トレーニングされたモデルをクライアントアプリケーションフロントエンドが使用できるフォーマットに変換し、次いで、モデルをスタティックコンテンツサービス(SCS)35(図1に示される)にアップロードすることができるMLPパイプライン190(図3に示される)によって、生産のためにパイプライン化することができる。文字列は前処理して整数に変換できるため、MLモデルにおいて数値の特徴として扱うことができる。
構築されると、MLモデルは、たとえば、MLPパイプライン190によってトレーニングすることができる(ステップ325)。MLモデルは、たとえば、トレーニングアクティビティデータセットをモデルに適用することができるTFXパイプラインを使用してトレーニングすることができる。トレーニングされたモデルは、たとえば、Tensorflow SavedModelを使用してデータベース170に保存することができる(ステップ330)。たとえば、トレーニングされたモデル(たとえば、Tensorflow SavedModel)は、語彙ファイルおよびラベルファイルと一緒にモデルデータベース174(図3に示される)に保存することができる。語彙ファイルとラベルファイルの両方を.jsonフォーマットで保存することができる。ラベルファイルは、フィードフォワードDNNモデルによって使用できるように構成することができるが、Transformerモデルでは必要ない場合がある。
次いで、トレーニングされたモデルは、たとえば、MLPパイプライン190によって、通信デバイス40(図1に示される)、またはデバイス上にインストールされる、またはデバイス上で動作するクライアントアプリと互換性のあるフォーマットに変換され得る(ステップ335)。たとえば、MLPパイプライン190(図3に示される)は、モデルデータベース174からモデル(たとえば、SavedModelとして記憶される)を取得し、たとえば、通信デバイス40(図1に示される)上のウェブブラウザのフロントエンドコードとの統合に適したフォーマットに変換するために、モデル上でコンバータ(たとえば、tjfs_converter)を動作させることができる。
変換されたMLモデルは、たとえば、MLPパイプライン190(図3に示される)によってSCS35にアップロードすることができる(ステップ335)。次いで、MLモデルは、SCS35(図1に示される)によって通信デバイス40(ステップ340)に展開する、またはそれによってダウンロードすることができ、通信デバイス40は、モデルをロードして、デバイス上のウェブブラウザのフロントエンドコードと統合することができる(ステップ350)。図6は、通信デバイス(CD)40へのモデルのロードおよび統合の非限定的な例のブロック図を示している。
図6を参照すると、ステップ350において、通信デバイス(CD)40は、ネットワーク20を介して、通信リンク5を介してSCS35からモデルをダウンロードする。モデルは、CD40上のウェブブラウザ52に統合されている。ローカルオブジェクトライブラリ54およびローカル機械学習(ML)ライブラリ56は、CD40上で作成または更新することができる。非限定的な実施形態では、ローカルオブジェクトライブラリ54は、たとえば、TFJS Dartライブラリなどのウェブまたはコアライブラリを含むことができ、ローカルMLライブラリ56は、たとえば、TFJS JavaScriptライブラリ(たとえば、TensorFlow.jsライブラリ)などの機械学習のためのライブラリを含むことができる。ウェブブラウザ52に統合されると、MLモデルは、入力としてアクティビティシーケンス51を受信することができ、シーケンス内の過去のアクティビティに基づいて、モデルは、セッション中に発生する可能性が高い次のアクティビティを予測することができる。モデルは、予測されたアクティビティに基づいてコンピュータ資産を先制的に検索し、予測されたアクティビティに最も一致する結果であるコンピュータアクティビティをプリフェッチまたはプリロードするために、ウェブブラウザ52を呼び出すことができる。ウェブブラウザ52は、たとえば、ネットワーク20上のサーバから、バックグラウンドスレッドにおいて非同期的にJavaScriptをプリフェッチすることができ、オペレータが通信デバイス40(図1に示される)上のユーザインターフェースと相互作用することを可能にする。プリロードされたコンピュータ資産は、通信デバイス40が容易に利用可能にすることができ、それによって、予測されたアクティビティに一致する次のアクティビティに応答してデバイス上にコンピュータ資産を提供する際の待ち時間を最小化または排除する。
ウェブブラウザ52は、たとえば、アクティビティログデータベース172(図3に示される)にアクティビティログデータを書き込むように構成することができる。
ウェブブラウザ52は、MLモデルを読み取る、または適用するために、ローカルオブジェクトライブラリ54を呼び出すように構成することができ、次に、MLモデルは、たとえば、ローカルMLライブラリ56内のJavaScriptを呼び出すことができる。
ユーザとの相互作用を提供するために、本明細書で説明するシステムおよび技法は、たとえば、ユーザに情報を表示するためのCRT(陰極線管)、LDC(液晶ディスプレイ)またはLED(発光ダイオード)モニタなどのディスプレイデバイス、ならびにキーボード、およびユーザがコンピューティングデバイスに入力を提供できるマウスまたはトラックボールなどのポインティングデバイスを有するコンピューティングデバイス上に実装することができる。ユーザとの相互作用を提供するために、他の種類のデバイスを使用することもできる。たとえば、ユーザに提供されるフィードバックは、任意の形式の感覚フィードバック(たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバック)であってよく、ユーザからの入力は、音響、音声、または触覚入力を含む任意の形式で受け取ることができる。
本開示において使用される「a」、「an」、および「the」という用語は、特に明記しない限り、「1つまたは複数」を意味する。
通信デバイスに関して本開示において使用される「アクティビティ(activity)」という用語は、入力、エントリ、命令、選択、アクション、または通信デバイスにプロセス、タスク、機能、または動作を実行または遂行させる可能性のあるクライアント側ユーザによる通信デバイスとの任意の相互作用を意味する。「アクティビティ」は、たとえば、通信デバイスにおいてウェブブラウザなどのクライアントアプリを起動すること、または入力データまたは命令のシーケンス(たとえば、単一の自然言語用語、または自然言語用語のシーケンスを備えるエントリ)に基づいて、コンピュータ資産を発見、フェッチ、ロード、処理、またはレンダリングするために、クライアントアプリと相互作用することを含むことができる。
本開示において使用される「バックボーン(backbone)」という用語は、コンピューティングデバイスまたは通信デバイス間でデータパケットまたは命令を伝達するパスを提供するために、1つまたは複数のコンピューティングデバイスあるいは通信デバイスを相互接続する伝送媒体またはインフラストラクチャを意味する。バックボーンはネットワークを含むことができる。バックボーンは、イーサネットTCP/IPを含むことができる。バックボーンは、分散バックボーン、折りたたまれたバックボーン、並列バックボーン、またはシリアルバックボーンを含むことができる。
本開示において使用される「バス(bus)」という用語は、メモリバス(メモリコントローラの有無にかかわらず)、周辺バス、または様々な市販のバスアーキテクチャいずれかを使用するローカルバスにさらに相互接続できるいくつかのタイプのバス構造のいずれかを意味する。「バス」という用語は、バックボーンを含むことができる。
本開示において使用される「通信リンク(communication link)」という用語は、少なくとも2つのポイント間でデータまたは情報を伝達するワイヤードおよび/またはワイヤレス媒体を意味する。ワイヤードまたはワイヤレス媒体は、たとえば、金属導体リンク、無線周波数(RF)通信リンク、赤外線(IR)通信リンク、または光通信リンクを含むことができる。RF通信リンクには、たとえば、GSM音声通話、SMS、EMS、MMSメッセージング、CDMA、TDMA、PDC、WCDMA(登録商標)、CDMA2000、GPRS、Wi-Fi、WiMAX、IEEE 802.11、DECT、0G、1G、2G、3G、4G、または5Gセルラー規格、またはBluetoothを含むことができる。通信リンクは、たとえば、RS-232、RS-422、RS-485、または任意の他の適切なインターフェースを含むことができる。
本開示において使用される「コンピュータ(computer)」または「コンピューティングデバイス(computing device)」という用語は、任意の機械、デバイス、回路、コンポーネント、あるいはモジュール、または機械、デバイス、回路、コンポーネント、またはモジュールの任意のシステムを意味し、たとえば、これらに限定されないが、プロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、マイクロプロセッサ(μP)、中央処理装置(CPU)、グラフィック処理装置(GPU)、汎用コンピュータ、スーパーコンピュータ、パーソナルコンピュータ、ラップトップコンピュータ、パームトップコンピュータ、ノートブックコンピュータ、スマートフォン、モバイル電話、タブレット、デスクトップコンピュータ、ワークステーションコンピュータ、サーバ、サーバファーム、コンピュータクラウド、またはプロセッサ、ASICS、FPGA、μP、CPU、GPU、汎用コンピュータ、スーパーコンピュータ、パーソナルコンピュータ、ラップトップコンピュータ、パームトップコンピュータ、ノートブックコンピュータ、デスクトップコンピュータ、ワークステーションコンピュータ、またはサーバの配列などの1つまたは複数の命令に従ってデータを操作することができることができる。コンピュータまたはコンピューティングデバイスは、通信リンクを介してデータパケットまたは命令を送受信できるハードウェア、ファームウェア、またはソフトウェアを含むことができる。コンピュータまたはコンピューティングデバイスは、ポータブルまたは固定であってよい。
本開示において使用される「コンピュータ資産(computer asset)」という用語は、ソフトウェア、ソフトウェアアプリケーション、ウェブアプリケーション、ウェブページ、ドキュメント、ファイル、レコード、API、ウェブコンテンツ、コンピュータアプリケーション、コンピュータプログラム、コンピュータコード、機械実行可能命令、またはファームウェアを意味する。コンピュータ資産は、情報リソースを含むことができる。コンピュータ資産は、プログラム可能なコンピューティングデバイスの機械命令を含むことができ、高レベルの手続き型プログラミング言語またはオブジェクト指向プログラミング言語、あるいはアセンブリ/機械語で実装することができる。
本開示において使用される「コンピュータ可読媒体(computer-readable medium)」という用語は、コンピュータによって読み取ることができるデータ(たとえば、命令)の提供に関与する任意のストレージ媒体を意味する。そのような媒体は、不揮発性媒体および揮発性媒体を含む多くの形態をとることができる。不揮発性媒体は、たとえば、光または磁気ディスクおよび他の永続的メモリを含むことができる。揮発性媒体は、ダイナミックランダムアクセスメモリ(DRAM)を含むことができる。コンピュータ可読媒体の一般的な形態は、たとえば、フロッピーディスク、フレキシブルディスク、ハードディスク、磁気テープ、任意の他の磁気媒体、CD-ROM、DVD、任意の他の光学媒体、パンチカード、紙テープ、穴のパターンを備えた任意の他の物理媒体、RAM、PROM、EPROM、FLASH-EEPROM、任意の他のメモリチップまたはカートリッジ、以下に説明するキャリア波、あるいはコンピュータが読み取ることができる任意の他の媒体を含む。コンピュータ可読媒体は、複数の(たとえば、数千の)コンピュータ上の複数の(たとえば、数千の)メモリキャッシュにわたるファイルの分散を含む「クラウド(Cloud)」を含むことができる。コンピュータ可読媒体は、磁気ディスク、光ディスク、メモリ、またはプログラマブルロジックデバイス(PLD)を含むことができる。
命令のシーケンスをコンピュータに運ぶ際には、様々な形式のコンピュータ可読媒体が関与する可能性がある。たとえば、命令のシーケンスは、(i)RAMからプロセッサに配信することができ、(ii)ワイヤレス伝送媒体を介して伝送することができ、および/または(iii)たとえば、Wi-Fi、WiMAX、IEEE 802.11、DECT、0G、1G、2G、3G、4G、または5Gセルラー規格、またはBluetoothを含む多数のフォーマット、標準、またはプロトコルに従ってフォーマットすることができる。
本開示において使用される「データベース(database)」という用語は、少なくとも1つのアプリケーションおよび/または少なくとも1つのコンピュータを含む、ソフトウェアおよび/またはハードウェアの任意の組合せを意味する。データベースは、たとえば、これらに限定されないが、リレーショナルモデル、階層モデル、またはネットワークモデルのうちの少なくとも1つなどの、データベースモデルに従って編成されたレコードまたはデータの構造化されたコレクションを含むことができる。データベースは、データベース管理システムアプリケーション(DBMS)を含むことができる。少なくとも1つのアプリケーションは、これに限定されないが、たとえば、クライアントに応答を送り返すことによってクライアントからのサービス要求への接続を受け入れることができるアプリケーションプログラムを含み得る。データベースは、少なくとも1つのアプリケーションを、多くの場合、重いワークロードの下で、無人で、最小限の人間の指示で長期間実行するように構成することができる。
本開示において使用される「含む(including)」、「備える(comprising)」という用語、およびその変形は、特に明記しない限り、「含むが、これに限定されない(including, but not limited to)」ことを意味する。
本開示において使用される「情報リソース(information resource)」という用語は、これらに限定されないが、コンテンツをディスプレイデバイスに表示させる、またはプライマリコンテンツまたは検索エンジンによって提供される検索結果ランディングページを含むウェブサイトまたはウェブページなどにコンテンツを表示する機能を呼び出す、コンピュータコードまたはコンピュータ実行可能命令を意味する。
本開示において使用される「ネットワーク(network)」という用語は、たとえば、これらに限定されないが、パーソナルエリアネットワーク(PAN)、ローカルエリアネットワーク(LAN)、ワイヤレスローカルエリアネットワーク(WLAN)、キャンパスエリアネットワーク(CAN)、メトロポリタンエリアネットワーク(MAN)、ワイドエリアネットワーク(WAN)、グローバルエリアネットワーク(GAN)、ブロードバンドエリアネットワーク(BAN)、セルラーネットワーク、ストレージエリアネットワーク(SAN)、システム-エリアネットワーク、パッシブオプティカルローカルエリアネットワーク(POLAN)、エンタープライズプライベートネットワーク(EPN)、仮想プライベートネットワーク(VPN)、インターネット、またはこれらの任意の組合せのうちの少なくとも1つを意味し、これらはいずれも、ワイヤレスおよび/またはワイヤード通信媒体を介してデータを通信するように構成することができる。これらのネットワークは、これらに限定されないが、たとえば、イーサネット、IP、IPX、TCP、UDP、SPX、IP、IRC、HTTP、FTP、Telnet、SMTP、DNS、ARP、ICMPなどを含む、様々なプロトコルを実行することができる。
本開示において使用される「サーバ(server)」という用語は、クライアント/サーバアーキテクチャの一部として、接続されたクライアントのサービスを実行するために、少なくとも1つのアプリケーションおよび/または少なくとも1つのコンピュータを含む、ソフトウェアおよび/またはハードウェアの任意の組合せを意味する。少なくとも1つのサーバアプリケーションは、これに限定されないが、たとえば、クライアントに応答を送り返すことによってクライアントからのサービス要求への接続を受け入れることができるアプリケーションプログラムを含み得る。サーバは、少なくとも1つのアプリケーションを、多くの場合、重いワークロードの下で、無人で、最小限の人間の指示で長期間実行するように構成することができる。サーバは、構成された複数のコンピュータを含むことができ、少なくとも1つのアプリケーションは、ワークロードに応じてコンピュータ間で分割される。たとえば、負荷が軽い場合、少なくとも1つのアプリケーションを1台のコンピュータで実行することができる。しかしながら、負荷が重い場合、少なくとも1つのアプリケーションを実行するために複数のコンピュータが必要になる場合がある。サーバ、またはそのコンピュータの場合は、ワークステーションとしても使用することができる。
相互に通信しているデバイスは、特に明記しない限り、相互に継続的に通信している必要はない。さらに、相互に通信しているデバイスは、1つまたは複数の仲介者を通じて直接的または間接的に通信し得る。
プロセスステップ、方法ステップ、アルゴリズムなどは、順次または並列の順序で記述され得るが、そのようなプロセス、方法、およびアルゴリズムは、交互の順序で機能するように構成され得る。言い換えると、順番に記述され得るステップのシーケンスまたは順序は、必ずしもステップがその順序で実行されるという要件を示すわけではなく、一部のステップは同時に実行され得る。同様に、ステップのシーケンスまたは順序が並列(または、同時)順序で記述されている場合、そのようなステップは順番に実行することができる。本明細書に記載のプロセス、方法、またはアルゴリズムのステップは、実用的な任意の順序で実行され得る。
単一のデバイスまたは物品が本明細書に記載されている場合、単一のデバイスまたは物品の代わりに複数のデバイスまたは物品が使用され得ることは容易に明らかであろう。同様に、本明細書に複数のデバイスまたは物品が記載されている場合、複数のデバイスまたは物品の代わりに単一のデバイスまたは物品が使用され得ることは容易に明らかであろう。デバイスの機能または特徴は、そのような機能または特徴を有すると明示的に説明されていない1つまたは複数の他のデバイスによって代替的に具体化され得る。
上記の主題は、例示としてのみ提供されており、限定として解釈されるべきではない。例示および説明された例示的な実施形態および適用に従わずに、また以下の特許請求の範囲における記述のセット、およびこれらの記述と同等の構造および機能またはステップによって定義される、本開示によって包含される本発明の真の趣旨および範囲から逸脱することなしに、本明細書に記載の主題に様々な修正および変更を行うことができる。
1 コンピュータネットワーク環境
2 バス
5 通信リンク
10 コンピュータ資産検索および配信(CASD)システム
20 ネットワーク
30 コンピュータクラウドネットワーク
35 スタティックコンテンツサービス(SCS)データベース
40 通信デバイス
41~49 コンポーネント
41 プロセッサ
42 ストレージ
42A 読取り専用メモリ(ROM)
42A 不揮発性メモリ
42B ランダムアクセスメモリ(RAM)
43 ハードディスクドライブ(HDD)
44 ネットワークインターフェース
45 入力/出力(I/O)インターフェース
46 ドライバユニット
46A オーディオドライバ
46B ビデオドライバ
47 データベース
48 通信デバイス入力またはアクティビティ(CDIA)予測ユニット
48 CDIA予測子
49 コンピュータ資産検索およびプリフェッチまたはプリロード(CASPP)ユニット
51 アクティビティシーケンス
52 ウェブブラウザ
54 ローカルオブジェクトライブラリ
56 ローカル機械学習(ML)ライブラリ
105 バス
110 プロセッサ
120 ストレージ
120A 読取り専用メモリ(ROM)
120A 不揮発性メモリ
120B ランダムアクセスメモリ(RAM)
130 ディスクドライブ(DD)
130A ハードディスクドライブ(HDD)
130B 光ディスクドライブ(ODD)
140 ネットワークインターフェース
150 入力/出力(I/O)インターフェース
160 ドライバユニット
160A オーディオドライバ
160B ビデオドライバ
170 データベース
172 アクティビティログデータベース
174 MLモデルデータベース
180 機械学習モデル(MLM)ビルダ
190 機械学習生産(MLP)パイプライン
200 Transformerモデル
210 入力アクティビティシーケンス
220 エンコーダスタック
220A 第1のエンコーダ
220A~220E エンコーダ
220E 最後のエンコーダ
230 デコーダスタック
230A~230E デコーダ
240 出力

Claims (39)

  1. コンピューティングデバイスによって実行されると、前記コンピューティングデバイスに、機械学習モデルを構築またはトレーニングする方法を実行することと、前記機械学習モデルに複数の通信デバイスに展開させることとを行わせるコンピュータ実行可能命令を含む非一時的コンピュータ可読ストレージ媒体であって、前記方法が、
    前記コンピューティングデバイスによって、前記機械学習モデルを構築するステップと、
    前記コンピューティングデバイスによって、前記機械学習モデルをトレーニングするステップと、
    前記コンピューティングデバイスによって、前記機械学習モデルをウェブブラウザ互換フォーマットに変換するステップと、
    前記コンピューティングデバイスによって、前記機械学習モデルを、前記機械学習モデルを前記複数の通信デバイスに展開するように構成されたサーバにアップロードするステップと
    を備え、
    前記機械学習モデルが、
    前記複数の通信デバイス内の1つの通信デバイス上の1つまたは複数の以前のアクティビティのシーケンスを入力として受信することと、
    前記1つの通信デバイス上の1つまたは複数の以前のアクティビティの前記シーケンスを分析することと、
    1つまたは複数の以前のアクティビティの前記シーケンスの前記分析に基づいて、前記1つの通信デバイス上の次のアクティビティを予測することと、
    コンピュータ資産を見つけるために、前記予測された次のアクティビティに基づいてコンピュータネットワークを先制して検索することであって、前記予測された次のアクティビティが、前記1つの通信デバイス上のウェブブラウザへの検索クエリ入力を備える、ことと、
    前記見つかったコンピュータ資産を、前記1つの通信デバイスにおけるストレージにプリロードすることと
    を行うように構成される、非一時的コンピュータ可読ストレージ媒体。
  2. 前記機械学習モデルが、前記見つかったコンピュータ資産を前記1つの通信デバイス上のウェブページとしてレンダリングするようにさらに構成される、請求項1に記載の非一時的コンピュータ可読ストレージ媒体。
  3. 前記機械学習モデルが、前記1つの通信デバイス上のウェブブラウザのフロントエンドコードと統合するようにさらに構成される、請求項1または2に記載の非一時的コンピュータ可読ストレージ媒体。
  4. 前記機械学習モデルが、前記1つの通信デバイス上のウェブブラウザにおいてJavaScriptを呼び出すようにさらに構成される、請求項1から3のいずれか一項に記載の非一時的コンピュータ可読ストレージ媒体。
  5. 前記機械学習モデルが、前記通信デバイス上のさらなるアクティビティに応じて、前記コンピュータ資産を前記ウェブページとしてレンダリングするようにさらに構成される、請求項2に記載の非一時的コンピュータ可読ストレージ媒体。
  6. 前記さらなるアクティビティが前記予測された次のアクティビティと一致する、請求項5に記載の非一時的コンピュータ可読ストレージ媒体。
  7. 前記機械学習モデルがTransformerモデルを備える、請求項1から6のいずれか一項に記載の非一時的コンピュータ可読ストレージ媒体。
  8. 前記機械学習モデルがフィードフォワード深層ニューラルネットワークモデルを備える、請求項1から6のいずれか一項に記載の非一時的コンピュータ可読ストレージ媒体。
  9. 前記機械学習モデルが注意メカニズムを備える、請求項1から8のいずれか一項に記載の非一時的コンピュータ可読ストレージ媒体。
  10. 前記注意メカニズムがパディング注意マスクを備える、請求項9に記載の非一時的コンピュータ可読ストレージ媒体。
  11. 前記注意メカニズムが先読み注意マスクを備える、請求項9に記載の非一時的コンピュータ可読ストレージ媒体。
  12. 前記予測された次のアクティビティが、1つまたは複数の自然言語用語を含むユーザインターフェース上の入力を備える、請求項1から11のいずれか一項に記載の非一時的コンピュータ可読ストレージ媒体。
  13. 機械学習モデルを構築またはトレーニングすることと、前記機械学習モデルを複数の通信デバイスに展開するように構成されたサーバに前記機械学習モデルをアップロードすることとを行うように構成されたシステムであって、
    機械学習生産パイプラインプラットフォームを含むコンピューティングデバイスを備え、前記コンピューティングデバイスが、
    前記機械学習モデルをトレーニングすることと、
    前記機械学習モデルをウェブブラウザ互換フォーマットに変換することと、
    前記変換された機械学習モデルを前記サーバにアップロードすることと
    を行うように構成され、
    前記機械学習モデルが、
    前記複数の通信デバイス内の1つの通信デバイス上の1つまたは複数の以前のアクティビティのシーケンスを入力として受信することと、
    前記1つの通信デバイス上の1つまたは複数の以前のアクティビティの前記シーケンスを分析することと、
    1つまたは複数の以前のアクティビティの前記シーケンスの前記分析に基づいて、前記1つの通信デバイス上の次のアクティビティを予測することと、
    コンピュータ資産を見つけるために、前記予測された次のアクティビティに基づいてコンピュータネットワークを先制して検索することであって、前記予測された次のアクティビティが、前記1つの通信デバイス上のウェブブラウザへの検索クエリ入力を備える、ことと、
    前記見つかったコンピュータ資産を、前記1つの通信デバイスにおけるストレージにプリロードすることと
    を行うように構成される、システム。
  14. 前記機械学習生産パイプラインプラットフォームが、TensorFlow Extended(TFX)パイプラインプラットフォームを含み、前記機械学習モデルが、前記見つかったコンピュータ資産を前記1つの通信デバイス上のウェブページとしてレンダリングするようにさらに構成される、請求項13に記載のシステム。
  15. 前記機械学習モデルが、前記1つの通信デバイス上のウェブブラウザのフロントエンドコードと統合するようにさらに構成される、請求項13または14に記載のシステム。
  16. 前記機械学習モデルが、前記1つの通信デバイス上のウェブブラウザにおいてJavaScriptを呼び出すようにさらに構成される、請求項13から15のいずれか一項に記載のシステム。
  17. 前記機械学習モデルが、前記通信デバイス上のさらなるアクティビティに応じて、前記コンピュータ資産を前記ウェブページとしてレンダリングするようにさらに構成される、請求項14に記載のシステム。
  18. 前記さらなるアクティビティが前記予測された次のアクティビティと一致する、請求項17に記載のシステム。
  19. 前記機械学習モデルがTransformerモデルを備える、請求項13から18のいずれか一項に記載のシステム。
  20. 前記機械学習モデルがフィードフォワード深層ニューラルネットワークモデルを備える、請求項13から18のいずれか一項に記載のシステム。
  21. 前記機械学習モデルが注意メカニズムを備える、請求項13から20のいずれか一項に記載のシステム。
  22. 前記注意メカニズムがパディング注意マスクを備える、請求項21に記載のシステム。
  23. 前記注意メカニズムが先読み注意マスクを備える、請求項21に記載のシステム。
  24. 前記予測された次のアクティビティが、1つまたは複数の自然言語用語を含むユーザインターフェース上の入力を備える、請求項13から23のいずれか一項に記載のシステム。
  25. アクティビティ予測のためのコンピュータ実装方法であって、
    機械学習モデルにおいて、複数の通信デバイスのうちの1つの通信デバイス上の1つまたは複数の以前のアクティビティのシーケンスを入力として受信するステップと、
    前記機械学習モデルによって、前記1つの通信デバイス上の1つまたは複数の以前のアクティビティの前記シーケンスを分析するステップと、
    前記機械学習モデルによって、1つまたは複数の以前のアクティビティの前記シーケンスの前記分析に基づいて、前記1つの通信デバイス上の次のアクティビティを予測するステップと、
    コンピュータ資産を見つけるために、前記予測された次のアクティビティに基づいてコンピュータネットワークを先制して検索するステップであって、前記予測された次のアクティビティが、前記1つの通信デバイス上のウェブブラウザへの検索クエリ入力を備える、ステップと、
    前記見つかったコンピュータ資産を、前記1つの通信デバイスにおけるストレージにプリロードするステップと
    を備える、コンピュータ実装方法。
  26. 前記見つかったコンピュータ資産を前記1つの通信デバイス上のウェブページとしてレンダリングするステップをさらに備える、請求項25に記載の方法。
  27. 前記機械学習モデルが、前記1つの通信デバイス上のウェブブラウザのフロントエンドコードと統合される、請求項25または26に記載の方法。
  28. 前記機械学習モデルが、前記1つの通信デバイス上のウェブブラウザにおいてJavaScriptを呼び出すように構成される、請求項25から27のいずれか一項に記載の方法。
  29. 前記コンピュータ資産を前記ウェブページとしてレンダリングするステップが、前記通信デバイス上のさらなるアクティビティに応じて発生する、請求項26に記載の方法。
  30. 前記さらなるアクティビティが前記予測された次のアクティビティと一致する、請求項29に記載の方法。
  31. 前記機械学習モデルがTransformerモデルを備える、請求項25から30のいずれか一項に記載の方法。
  32. 前記機械学習モデルがフィードフォワード深層ニューラルネットワークモデルを備える、請求項25から31のいずれか一項に記載の方法。
  33. 前記機械学習モデルが注意メカニズムを備える、請求項25から32のいずれか一項に記載の方法。
  34. 前記注意メカニズムがパディング注意マスクを備える、請求項33に記載の方法。
  35. 前記注意メカニズムが先読み注意マスクを備える、請求項33に記載の方法。
  36. 前記予測された次のアクティビティが、1つまたは複数の自然言語用語を含むユーザインターフェース上の入力を備える、請求項25から35のいずれか一項に記載の方法。
  37. 前記入力を受信するステップの前に、
    前記機械学習モデルを構築するステップと、
    前記機械学習モデルをトレーニングするステップと、
    前記機械学習モデルをウェブブラウザ互換フォーマットに変換するステップと、
    前記機械学習モデルを、前記機械学習モデルを前記複数の通信デバイスに展開するように構成されたサーバにアップロードするステップと
    をさらに備える、請求項25から36のいずれか一項に記載の方法。
  38. 請求項25から37のいずれか一項に記載の方法のステップを実行するように適合されたプロセッサを備える、システム。
  39. 命令を備えるコンピュータプログラムであって、前記命令は、前記プログラムがコンピュータによって実行されると、前記コンピュータに、請求項25から37のいずれか一項に記載の方法を遂行させる、コンピュータプログラム。
JP2022542993A 2020-01-14 2020-01-14 クライアントデバイスによるコンピュータ資産のアクティビティ予測、プリフェッチ、およびプリロードのための方法およびシステム Active JP7438372B2 (ja)

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 (2)

Publication Number Publication Date
JP2023510363A JP2023510363A (ja) 2023-03-13
JP7438372B2 true JP7438372B2 (ja) 2024-02-26

Family

ID=69593769

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022542993A Active JP7438372B2 (ja) 2020-01-14 2020-01-14 クライアントデバイスによるコンピュータ資産のアクティビティ予測、プリフェッチ、およびプリロードのための方法およびシステム

Country Status (6)

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

Families Citing this family (10)

* 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
US12133082B2 (en) 2020-05-01 2024-10-29 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
US11700533B2 (en) 2020-05-01 2023-07-11 Digital Global Systems, Inc. System, method, and apparatus for providing dynamic, prioritized spectrum management and utilization
US12096230B2 (en) 2020-05-01 2024-09-17 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
US11653213B2 (en) 2020-05-01 2023-05-16 Digital Global Systems. Inc. System, method, and apparatus for providing dynamic, prioritized spectrum management and utilization
US12079736B2 (en) * 2020-06-25 2024-09-03 Dell Products L.P. Predicting web application programming interface call operations using machine learning techniques
US20230154089A1 (en) * 2021-11-15 2023-05-18 Disney Enterprises, Inc. Synthesizing sequences of 3d geometries for movement-based performance
US12118372B2 (en) * 2022-09-20 2024-10-15 Microsoft Technology Licensing, Llc App usage models with privacy protection

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190303504A1 (en) 2018-03-30 2019-10-03 Microsoft Technology Licensing, Llc Distributed in-browser deep learning for predictive pre-fetching
US10452978B2 (en) 2017-05-23 2019-10-22 Google Llc Attention-based sequence transduction neural networks

Family Cites Families (7)

* 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
EP2111593A2 (en) * 2007-01-26 2009-10-28 Information Resources, Inc. 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
CN105849724A (zh) 2013-12-22 2016-08-10 交互数字专利控股公司 使用个性化缓存或预渲染的网络应用加速
US11494635B2 (en) * 2018-10-09 2022-11-08 Ebay, Inc. System and method for improving user engagement based on user session analysis

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10452978B2 (en) 2017-05-23 2019-10-22 Google Llc Attention-based sequence transduction neural networks
US20190303504A1 (en) 2018-03-30 2019-10-03 Microsoft Technology Licensing, Llc Distributed in-browser deep learning for predictive pre-fetching

Also Published As

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

Similar Documents

Publication Publication Date Title
JP7438372B2 (ja) クライアントデバイスによるコンピュータ資産のアクティビティ予測、プリフェッチ、およびプリロードのための方法およびシステム
JP7324831B2 (ja) ディープラーニングフレームワークにおける演算子の展開方法、展開装置及び電子機器
US8612418B2 (en) Mobile web browser for pre-loading web pages
US8977653B1 (en) Modifying web pages to reduce retrieval latency
JP2021521505A (ja) 包括的機械学習サービスを提供するアプリケーション開発プラットフォームおよびソフトウェア開発キット
US20170161641A1 (en) Streamlined analytic model training and scoring system
US8631394B2 (en) Static resource processing
US10013497B1 (en) Background reloading of currently displayed content
US9330074B2 (en) Style sheet speculative preloading
US20240289641A1 (en) Systems and Methods for Processing Data Using Interference and Analytics Engines
JP2018508059A (ja) ネットワークベース静的フォントサブセット管理
Agustin et al. A model-driven approach to develop high performance web applications
US11726994B1 (en) Providing query restatements for explaining natural language query results
KR20210097221A (ko) 내장가능형 미디어 콘텐츠 검색 위젯
US20240232637A9 (en) Method for Training Large Language Models to Perform Query Intent Classification
Lin et al. The future of big data is... javascript?
US20170147543A1 (en) Enabling legacy web applications for mobile devices
US20240176732A1 (en) Advanced application of model operations in energy
Duarte et al. An interoperable service for the provenance of machine learning experiments
KR20220107737A (ko) 재구성된 질의를 생성하기 위한 방법, 시스템, 및 컴퓨터 판독가능한 기록 매체
US12001809B1 (en) Selectively tuning machine translation models for custom machine translations
Xiangming An approach to enabling RDF data in querying to invoke REST API for complex calculating
US12136413B1 (en) Domain-specific parameter pre-fixes for tuning automatic speech recognition
US20230297863A1 (en) Machine learning pipeline generation and management
US11900110B2 (en) Increasing user interaction with deep learning agent

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220831

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220831

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230913

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230919

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231129

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240115

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240213

R150 Certificate of patent or registration of utility model

Ref document number: 7438372

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150