特許第6875579号(P6875579)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ グーグル インコーポレイテッドの特許一覧

特許6875579破損ネットワーク接続の機械学習に基づく識別
<>
  • 特許6875579-破損ネットワーク接続の機械学習に基づく識別 図000002
  • 特許6875579-破損ネットワーク接続の機械学習に基づく識別 図000003
  • 特許6875579-破損ネットワーク接続の機械学習に基づく識別 図000004
  • 特許6875579-破損ネットワーク接続の機械学習に基づく識別 図000005
  • 特許6875579-破損ネットワーク接続の機械学習に基づく識別 図000006
  • 特許6875579-破損ネットワーク接続の機械学習に基づく識別 図000007
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6875579
(24)【登録日】2021年4月26日
(45)【発行日】2021年5月26日
(54)【発明の名称】破損ネットワーク接続の機械学習に基づく識別
(51)【国際特許分類】
   G06F 13/00 20060101AFI20210517BHJP
   G06N 20/00 20190101ALI20210517BHJP
   G06F 16/906 20190101ALI20210517BHJP
【FI】
   G06F13/00 540F
   G06N20/00 130
   G06F16/906
【請求項の数】20
【外国語出願】
【全頁数】24
(21)【出願番号】特願2020-68955(P2020-68955)
(22)【出願日】2020年4月7日
(62)【分割の表示】特願2018-504982(P2018-504982)の分割
【原出願日】2016年10月17日
(65)【公開番号】特開2020-123373(P2020-123373A)
(43)【公開日】2020年8月13日
【審査請求日】2020年4月22日
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【弁理士】
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】リ,シン
(72)【発明者】
【氏名】ヤン,ファン
【審査官】 岩田 玲彦
(56)【参考文献】
【文献】 米国特許出願公開第2010/0287174(US,A1)
【文献】 特開2007−272695(JP,A)
【文献】 特開2006−185049(JP,A)
【文献】 相澤 彰子,HTTPログファイルからの情報抽出によるインターネットドメインの分析,電子情報通信学会論文誌 (J81−D−I) 第11号,日本,社団法人電子情報通信学会,1998年11月25日,1201-1210
(58)【調査した分野】(Int.Cl.,DB名)
G06F 13/00
G06F 16/906
G06N 20/00
(57)【特許請求の範囲】
【請求項1】
データ処理装置によって実施される方法であって、
同じプレフィックスパターンを有する複数のアプリケーションリンクを識別するステップであって、各アプリケーションリンクがアプリケーションへのリンクである、ステップと、
前記複数のアプリケーションリンクにおける各アプリケーションに対して、前記アプリケーションリンクによってリンクされたアプリケーションコンテンツが提示された期間を示す提示期間を示すデータを取得するステップと、
前記複数のアプリケーションリンクについての前記提示期間の分布に基づいて、前記プレフィックスパターンを有するアプリケーションリンクが破損しているかまたは正常に機能しているかを判定するステップと、
前記プレフィックスパターンを有する前記アプリケーションリンクが破損していると判定したことに応答して、前記プレフィックスパターンを有する前記アプリケーションリンクが破損しているとの通知を生成しかつ提供するステップと
を備える、方法。
【請求項2】
アプリケーションリンクのセットを特定するデータを受信するステップと、
前記複数のアプリケーションリンクにおける各アプリケーションリンクが、少なくとも特定の数の文字を含む、同じ文字列を有すると判定するステップと、
前記複数のアプリケーションリンクにおける各アプリケーションリンクが、少なくとも特定の数の文字を含む、同じ文字列を有すると判定したことに応答して、前記複数のアプリケーションリンクが同じプレフィックスパターンを有すると判定するステップと
をさらに含む、請求項1に記載の方法。
【請求項3】
前記複数のアプリケーションリンクにおける第1のアプリケーションリンクが、前記プレフィックスパターンに続く第1の1つまたは複数の文字を有し、
前記複数のアプリケーションリンクにおける第2のアプリケーションリンクが、前記プレフィックスパターンに続く第2の1つまたは複数の文字を有し、
前記第1の1つまたは複数の文字が、前記第2の1つまたは複数の文字と異なる、
請求項1に記載の方法。
【請求項4】
前記複数のアプリケーションリンクについての前記提示期間の分布に基づいて、前記プレフィックスパターンを有するアプリケーションリンクが破損しているかまたは正常に機能しているかを判定するステップが、提示期間の分布に基づいて破損しているかまたは正常に機能しているとしてアプリケーションリンクを分類するために訓練された機械学習モデルへの入力として前記提示期間の前記分布を提示するステップを含む、請求項1に記載の方法。
【請求項5】
前記機械学習モデルは、ラベル付けされた訓練データを使用して生成され、前記ラベル付けされた訓練データは、訓練アプリケーションリンクのセットにおける各訓練アプリケーションリンクについて、
前記訓練アプリケーションリンクについての提示期間のセットと、
前記訓練アプリケーションリンクとのユーザ対話の結果、前記訓練アプリケーションリンクによって指し示されるコンテンツが成功裡に提示されたかどうかに基づいて、前記訓練アプリケーションリンクが破損しているかまたは正常に機能しているかどうかを特定するラベルと
を含む、請求項4に記載の方法。
【請求項6】
各提示期間が、アプリケーションリンクによってリンクされたアプリケーションコンテンツが、前記アプリケーションリンクを用いたユーザ対話に続いて提示された期間を示す、請求項1に記載の方法。
【請求項7】
前記複数のアプリケーションリンクについての前記提示期間の分布に基づいて、前記プレフィックスパターンを有するアプリケーションリンクが破損しているかまたは正常に機能しているかを判定するステップが、
提示期間の大きさに基づいて、期間グループのセットのうちのある期間グループに前記提示期間を割り当てるステップであって、各期間グループは、ある期間の範囲に対するものであり、かつ前記期間グループについての前記期間の範囲内にある、前記アプリケーションリンクについての前記提示期間を含む、ステップと、
各期間グループに割り当てられた提示期間の数によって規定される提示期間パターンに基づいて、前記プレフィックスパターンを有する前記アプリケーションリンクを破損しているかまたは正常に機能しているとして分類するステップと
を備える、請求項1に記載の方法。
【請求項8】
データ処理装置と、
前記データ処理装置とデータ通信しているメモリ記憶装置であって、前記メモリ記憶装置が前記データ処理装置によって実行可能な命令を記憶し、かつ実行時に、前記データ処理装置に、
同じプレフィックスパターンを有する複数のアプリケーションリンクを識別することであって、各アプリケーションリンクがアプリケーションへのリンクである、識別することと、
前記複数のアプリケーションリンクにおける各アプリケーションに対して、前記アプリケーションリンクによってリンクされたアプリケーションコンテンツが提示された期間を示す提示期間を示すデータを取得することと、
前記複数のアプリケーションリンクについての前記提示期間の分布に基づいて、前記プレフィックスパターンを有するアプリケーションリンクが破損しているかまたは正常に機能しているかを判定することと、
前記プレフィックスパターンを有する前記アプリケーションリンクが破損していると判定したことに応答して、前記プレフィックスパターンを有する前記アプリケーションリンクが破損しているとの通知を生成しかつ提供することと
を備える動作を実施させる、メモリ記憶装置と
を備える、システム。
【請求項9】
前記動作が、
アプリケーションリンクのセットを特定するデータを受信することと、
前記複数のアプリケーションリンクにおける各アプリケーションリンクが、少なくとも特定の数の文字を含む、同じ文字列を有すると判定することと、
前記複数のアプリケーションリンクにおける各アプリケーションリンクが、少なくとも特定の数の文字を含む、同じ文字列を有すると判定したことに応答して、前記複数のアプリケーションリンクが同じプレフィックスパターンを有すると判定することと
をさらに含む、請求項8に記載のシステム。
【請求項10】
前記複数のアプリケーションリンクにおける第1のアプリケーションリンクが、前記プレフィックスパターンに続く第1の1つまたは複数の文字を有し、
前記複数のアプリケーションリンクにおける第2のアプリケーションリンクが、前記プレフィックスパターンに続く第2の1つまたは複数の文字を有し、
前記第1の1つまたは複数の文字が、前記第2の1つまたは複数の文字と異なる、
請求項8に記載のシステム。
【請求項11】
前記複数のアプリケーションリンクについての前記提示期間の分布に基づいて、前記プレフィックスパターンを有するアプリケーションリンクが破損しているかまたは正常に機能しているかを判定することが、提示期間の分布に基づいて破損しているかまたは正常に機能しているとしてアプリケーションリンクを分類するために訓練された機械学習モデルへの入力として前記提示期間の前記分布を提示することを含む、請求項8に記載のシステム。
【請求項12】
前記機械学習モデルは、ラベル付けされた訓練データを使用して生成され、前記ラベル付けされた訓練データは、訓練アプリケーションリンクのセットにおける各訓練アプリケーションリンクについて、
前記訓練アプリケーションリンクについての提示期間のセットと、
前記訓練アプリケーションリンクとのユーザ対話の結果、前記訓練アプリケーションリンクによって指し示されるコンテンツが成功裡に提示されたかどうかに基づいて、前記訓練アプリケーションリンクが破損しているかまたは正常に機能しているかどうかを特定するラベルと
を含む、請求項11に記載のシステム。
【請求項13】
各提示期間が、アプリケーションリンクによってリンクされたアプリケーションコンテンツが、前記アプリケーションリンクを用いたユーザ対話に続いて提示された期間を示す、請求項8に記載のシステム。
【請求項14】
前記複数のアプリケーションリンクについての前記提示期間の分布に基づいて、前記プレフィックスパターンを有するアプリケーションリンクが破損しているかまたは正常に機能しているかを判定することが、
提示期間の大きさに基づいて、期間グループのセットのうちのある期間グループに各提示期間を割り当てることであって、各期間グループは、ある期間の範囲に対するものであり、かつ前記期間グループについての前記期間の範囲内にある、前記アプリケーションリンクについての前記提示期間を含む、割り当てることと、
各期間グループに割り当てられた提示期間の数によって規定される提示期間パターンに基づいて、前記プレフィックスパターンを有する前記アプリケーションリンクを破損しているかまたは正常に機能しているとして分類することと
を備える、請求項8に記載のシステム。
【請求項15】
コンピュータプログラムでエンコードされたコンピュータ記憶媒体であって、前記プログラムは、データ処理装置によって実行されると、前記データ処理装置に、
同じプレフィックスパターンを有する複数のアプリケーションリンクを識別することであって、各アプリケーションリンクがアプリケーションへのリンクである、識別することと、
前記複数のアプリケーションリンクにおける各アプリケーションに対して、前記アプリケーションリンクによってリンクされたアプリケーションコンテンツが提示された期間を示す提示期間を示すデータを取得することと、
前記複数のアプリケーションリンクについての前記提示期間の分布に基づいて、前記プレフィックスパターンを有するアプリケーションリンクが破損しているかまたは正常に機能しているかを判定することと、
前記プレフィックスパターンを有する前記アプリケーションリンクが破損していると判定したことに応答して、前記プレフィックスパターンを有する前記アプリケーションリンクが破損しているとの通知を生成しかつ提供することと
を備える動作を実行させる命令を含む、コンピュータ記憶媒体。
【請求項16】
前記動作が、
アプリケーションリンクのセットを特定するデータを受信することと、
前記複数のアプリケーションリンクにおける各アプリケーションリンクが、少なくとも特定の数の文字を含む、同じ文字列を有すると判定することと、
前記複数のアプリケーションリンクにおける各アプリケーションリンクが、少なくとも特定の数の文字を含む、同じ文字列を有すると判定したことに応答して、前記複数のアプリケーションリンクが同じプレフィックスパターンを有すると判定することと
をさらに含む、請求項15に記載のコンピュータ記憶媒体。
【請求項17】
前記複数のアプリケーションリンクにおける第1のアプリケーションリンクが、前記プレフィックスパターンに続く第1の1つまたは複数の文字を有し、
前記複数のアプリケーションリンクにおける第2のアプリケーションリンクが、前記プレフィックスパターンに続く第2の1つまたは複数の文字を有し、
前記第1の1つまたは複数の文字が、前記第2の1つまたは複数の文字と異なる、
請求項15に記載のコンピュータ記憶媒体。
【請求項18】
前記複数のアプリケーションリンクについての前記提示期間の分布に基づいて、前記プレフィックスパターンを有するアプリケーションリンクが破損しているかまたは正常に機能しているかを判定することが、提示期間の分布に基づいて破損しているかまたは正常に機能しているとしてアプリケーションリンクを分類するために訓練された機械学習モデルへの入力として前記提示期間の前記分布を提示することを含む、請求項15に記載のコンピュータ記憶媒体。
【請求項19】
前記機械学習モデルは、ラベル付けされた訓練データを使用して生成され、前記ラベル付けされた訓練データは、訓練アプリケーションリンクのセットにおける各訓練アプリケーションリンクについて、
前記訓練アプリケーションリンクについての提示期間のセットと、
前記訓練アプリケーションリンクとのユーザ対話の結果、前記訓練アプリケーションリンクによって指し示されるコンテンツが成功裡に提示されたかどうかに基づいて、前記訓練アプリケーションリンクが破損しているかまたは正常に機能しているかどうかを特定するラベルと
を含む、請求項18に記載のコンピュータ記憶媒体。
【請求項20】
各提示期間が、アプリケーションリンクによってリンクされたアプリケーションコンテンツが、前記アプリケーションリンクを用いたユーザ対話に続いて提示された期間を示す、請求項15に記載のコンピュータ記憶媒体。
【発明の詳細な説明】
【背景技術】
【0001】
背景
インターネット(登録商標)は世界中のユーザ間での情報交換やトランザクションを容易にする。このような情報交換により、データプロバイダはさまざまなユーザにデータを提供できる。データは、電子ドキュメント(たとえば、ウェブページ)上において、およびアプリケーション(たとえば、モバイルアプリケーション)内で、情報を公開することを含む、さまざまな方法で提供することができる。たとえば、アプリケーションには、ユーザに情報を提示するアプリケーションページを含めることができる。
【発明の概要】
【発明が解決しようとする課題】
【0002】
リンクを使用して、ユーザが関心のあるリソースにナビゲートするのを支援することができる。リンクは、電子ドキュメントまたはアプリケーション内の特定の位置(たとえば、アプリケーションページ)を指し示すことができる。しかしながら、一部のリンクはドキュメントまたはアプリケーションページを正しく指し示していない場合がある。そのようなリンクは、一般に、破損リンクと呼ばれる。たとえば、リンクが指し示すドキュメントまたはアプリケーションページを、新しいアドレスに移動したり、またはドキュメントもしくはアプリケーションページをホストしていたドメインから削除すると、そのリンクは破損リンクになることがある。加えて、アプリケーションの更新後、またはアプリケーションコンテンツをホストするサーバが利用できなくなったことに応答して、アプリケーションリンクが破損する可能性がある。
【課題を解決するための手段】
【0003】
概要
本明細書では、機械学習を使用して、(たとえば、破損アプリケーションリンクとのユーザ対話に応答して)ネットワーク接続を開始(または完了)した後にコンテンツがどのくらいの間提示されたかに基づいて、破損ネットワーク接続(たとえば破損アプリケーションリンク)を識別することに関する技術を記載する。
【0004】
一般に、この明細書に記載される主題の1つの革新的な局面は、あるシステムにおいて実施され得、そのシステムは、所与のアプリケーションにリンクする1つ以上のアプリケーションリンクとの複数の異なるユーザ対話について、上記1つ以上のアプリケーションリンクとの上記複数の異なるユーザ対話に続いて、上記アプリケーションリンクによってリンクされたアプリケーションコンテンツが提示された期間を示す提示期間を示すデータを受信する1つ以上のフロントエンドサーバを備える。システムはさらに、上記1つ以上のフロントエンドサーバと通信し、動作を実行する1つ以上のバックエンドサーバを備え得、上記動作は、各アプリケーションリンクについての提示期間に対する機械学習モデルの適用に基づいて、上記アプリケーションリンクを破損しているかまたは正常に機能しているものとして分類することを含む。上記機械学習モデルは、ラベル付けされた訓練データを使用して生成され得、上記ラベル付けされた訓練データは、訓練アプリケーションリンクのセットにおける各訓練アプリケーションリンクについて、上記訓練アプリケーションリンクについての提示期間のセットと、上記訓練アプリケーションリンクとのユーザ対話の結果、上記訓練アプリケーションリンクによって指し示されるコンテンツが成功裡に提示されたかどうかに基づいて、上記訓練アプリケーションリンクが破損しているかまたは正常に機能しているかどうかを示すラベルとを含む。バックエンドサーバは、さらに、所与のアプリケーションリンクを、それが機械学習モデルによって破損しているとして分類されたことに基づいて、破損したリンクとして識別する警報を生成および出力することを含む動作を実行し得る。この局面の他の実施形態は、コンピュータ記憶装置上でエンコードされる、方法のアクションを実行するように構成される、対応の装置、方法、およびコンピュータプログラムを含む。
【0005】
これらおよび他の実施形態は、各々、任意で以下の特徴の1つ以上を含み得る。いくつかの局面では、機械学習モデルは、上記アプリケーションリンクについての各提示期間を、期間に基づく期間グループのセットのうちのある期間グループに割り当てることによって、そのアプリケーションリンクを分類する。各期間グループは、ある期間の範囲に対するものであり得、上記期間グループについての上記期間の範囲内にある、上記アプリケーションリンクについての上記提示時間を含み得る。機械学習モデルは、各期間グループに割り当てられた提示期間の数によって規定されるパターンに基づいて、上記アプリケーションリンクを、破損しているかまたは正常に機能しているとして分類し得る。上記提示期間の数によって規定される上記パターンは、上記提示期間の分布を含み得る。
【0006】
いくつかの局面では、システムによって実行される動作は、所与のアプリケーションにリンクする上記1つ以上のアプリケーションリンクを含むアプリケーションリンクのセットを識別することと、上記アプリケーションリンクを、上記アプリケーションリンクのセット内のアプリケーションリンクの特性に基づいて、アプリケーションリンクグループのセットにグループ化することと、各アプリケーションリンクグループを、上記アプリケーションリンクグループにおけるアプリケーションリンクについての提示期間に対する上記機械学習モデルの適用に基づいて、破損したリンクまたは正常に機能しているリンクを有するものとして分類することとを含み得る。
【0007】
いくつかの局面では、各アプリケーションリンクは、特定のアプリケーション内における特定の位置を識別するための文字列を含む。システムによって実行される動作は、上記1つ以上のアプリケーションリンクを含むアプリケーションリンクのセットについて、少なくとも上記アプリケーションリンクの文字列に基づいて、1つ以上のアプリケーションリンクプレフィックスパターンを識別することを含み得る。各アプリケーションリンクプレフィックスパターンは、2つ以上のアプリケーションリンクに共通の文字列を示し得る。各アプリケーションリンクプレフィックスパターンについて、システムによって実行される動作は、そのアプリケーションリンクプレフィックスパターンによって示される文字列を含むアプリケーションリンクのグループを識別することと、上記アプリケーションリンクのグループ内の各アプリケーションリンクについて提示期間のセットを識別することと、上記機械学習モデルを上記アプリケーションリンクのグループについての提示期間に適用することと、所与のアプリケーションリンクプレフィックスパターンについて、アプリケーションリンクの所与のグループを、上記機械学習モデルが上記アプリケーションリンクのセットを破損したものとして分類することに基づいて、破損したリンクとして識別する警報を生成および出力することとを含み得る。
【0008】
いくつかの局面では、システムによって実行される動作は、各アプリケーションリンクプレフィックスパターンについて利用可能な提示期間の数に基づいて、上記1つ以上のアプリケーションリンクプレフィックスパターンを識別することを含む。いくつかの局面では、上記機械学習モデルは線形回帰モデルを含む。
【0009】
この明細書において記載される主題の特定の実施形態は、以下の利点の1つ以上を実現するように実現することができる。アプリケーションのコンテンツへの破損リンクを選択すると、アプリケーションがクラッシュしたり正しく機能しなくなる可能性があるため、アプリケーションのコンテンツへの破損リンクを識別および除去することにより、アプリケーションがクラッシュおよび/もしくは不適切に機能すること、またはデバイスがアプリケーションを実行することを防止できる。機械学習を使用して悪いアプリケーションリンクを識別することにより、アプリケーションまたはウェブクローラによって正しくクロールできないアプリケーションコンテンツを指し示す悪いアプリケーションリンクを識別することができる。ユーザのデバイスを正しくないアプリケーションコンテンツに誘導するか、またはユーザのデバイス上で実行されているアプリケーションをクラッシュもしくは不適切に機能させる悪いアプリケーションリンクの数を低減することによって、ユーザの不満が軽減される。
【0010】
この明細書において記載される主題の1つ以上の実施形態の詳細は、添付の図面および以下の詳細な説明において述べられる。主題の他の特徴、局面および利点は、詳細な説明、図面および特許請求の範囲から明らかになる。
【図面の簡単な説明】
【0011】
図1】破損リンク検出システムが破損アプリケーションリンクを自動的に検出する例示的な環境である。
図2】アプリケーションリンクについての提示期間の例示的な分布の表現を示すグラフである。
図3】アプリケーションリンクについての提示期間の例示的な分布の表現を示すグラフである。
図4】アプリケーションリンクが破損リンクであるかどうかを予測するよう機械学習モデルを訓練するための例示的なプロセスのフローチャートである。
図5】破損アプリケーションリンクを識別する例示的なプロセスのフローチャートである。
図6】破損アプリケーションリンクのアプリケーションリンクプレフィックスパターンを識別する例示的なプロセスのフローチャートである。
【発明を実施するための形態】
【0012】
さまざまな図面における同様の参照番号および指定は同様の要素を示す。
詳細な説明
本明細書で説明するシステムおよび技術は、(たとえば、手動または自動で)アプリケーションリンクを選択して、アプリケーションリンクが指し示すコンテンツが得られるかどうかを判断することによってテストすることができないアプリケーションリンクを含む、破損アプリケーションリンクの検出を可能にする。たとえば、この態様でアプリケーションリンクをテストするために使用されるアプリケーションクローラは、アプリケーションがアプリケーションコンテンツにアクセスするのにログイン情報を必要とする場合があるため、アプリケーションリンクが指し示すアプリケーションコンテンツにアクセスを有さない場合がある。別の例では、アプリケーションクローラを使用してアプリケーションリンクをテストすると、ウェブクローラを使用してウェブページへのウェブリンクをテストする場合よりもネットワークタイムアウトが長くなり得、アプリケーションクローラの使用効果が低下する。アプリケーションクローラではなく機械学習を使用することにより、そのようなネットワークタイムアウトを回避することができ、それにより、たとえば、より正確な破損リンク解析を提供することによって、破損アプリケーションリンクを識別する技法を改善することができる。
【0013】
システムは、アプリケーションリンクについての提示期間に基づいて、アプリケーションリンクが破損リンクであるかどうかを予測するために、機械学習モデルを訓練することができる。アプリケーションリンクについての提示期間は、ユーザのアプリケーションリンクとの対話に続いて、アプリケーションリンクによってリンクされたアプリケーションコンテンツが提示された期間を示す。提示期間は、アプリケーションリンクとのユーザ対話が発生した時刻から、たとえばアプリケーションとのユーザ対話に応答して、アプリケーションが閉じられるかまたは他のコンテンツにナビゲートする時刻まで、測定してもよい。アプリケーションがクラッシュした場合、提示期間は、アプリケーションリンクとのユーザ対話が発生した時刻およびアプリケーションがクラッシュした時刻から測定してもよい。
【0014】
いくつかの実現例では、機械学習モデルは、アプリケーションリンクについての提示期間の分布に基づいて、アプリケーションリンクが破損しているかまたは正常に機能しているとして分類する。たとえば、アプリケーションリンクが、長い提示期間(閾値期間より長いもの)の数よりも短い提示期間(たとえば、閾値未満であるもの)の数の方が実質的に多い(たとえば、指定された数または割合を超える)場合、そのアプリケーションリンクは、そのアプリケーションリンクが破損していることを示唆する分布パターンを有してもよい。別の例では、アプリケーションリンクが、少数の(たとえば、閾値未満の)短い提示期間を有する自然な分布の提示期間を有する場合、そのアプリケーションリンクは、そのアプリケーションのリンクが正常に動作し、それが破損していないことを示唆する分布パターンを有してもよい。
【0015】
機械学習モデルは、アプリケーションリンクのグループが破損しているかどうかを予測(たとえば判断)することもできる。アプリケーションリンクは、アプリケーションリンクのプレフィックスパターンに基づいてアプリケーションリンクグループにグループ化できる。各アプリケーションリンクは、特定のアプリケーション内の特定の位置、たとえばアプリケーションの特定のアプリケーションページ、ビデオアプリケーションの特定のビデオ、またはレストランレビューアプリケーションの特定のレストランページを識別するための文字列を含むことができる。各アプリケーションリンクプレフィックスパターンは、複数のアプリケーションリンクに共通の文字列を示すことができる。たとえば、第1のアプリケーションリンクの文字列は"appname:itemcategory1/item1"であってもよく、第2のアプリケーションリンクの文字列は"appname:itemcategory1/item2"であってもよい。これら2つのアプリケーションのアプリケーションリンクプレフィックスパターンリンクは"appname:itemcategory/"であってもよく、なぜならば、この文字列は両方のアプリケーションリンクに共通(たとえば同じ)であるからである。一致する(たとえば、同じであるかまたは一致する文字の数に基づいて特定の類似度基準の範囲内にある)プレフィックスパターンを有するアプリケーションリンクは、同時にまたは同じ理由で破損することが多いので、アプリケーションリンクをプレフィックスパターンでグループ化すると、機械学習モデルは、各アプリケーションリンクについての提示期間に別々に実行される必要なく、グループ内のリンクが破損しているかどうかを予測することができる。このグループ化は、モデルを各アプリケーションリンク上で別々に実行しなければならないことに比して、より少ない計算資源を使用して、より迅速に分類することができる。グループ化は、また、特定の分類について機械学習モデルによって使用される選択期間データの量を増加させることができ、ノイズの多いデータまたは正しくないデータの影響が低減されるため、より正確な予測をもたらすことができる。
【0016】
図1は、破損リンク検出システム110が破損アプリケーションリンクを自動的に検出する例示的な環境100である。破損リンク検出システム110は、1つ以上のフロントエンドサーバ112および1つ以上のリンク分類サーバ114を含む。フロントエンドサーバ112は、ネットワーク130を介してクライアントデバイス142(たとえば、クライアントデバイス142−Aおよび142−B)から提示期間を示すデータを受信することができる。フロントエンドサーバ112は、たとえば、アプリケーションリンクが破
損リンクとして分類されたことに応答して、通知または警報をネットワーク130を介してクライアントデバイス142に送信することもできる。ネットワーク130は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット、モバイルネットワーク、またはそれらの組合せを含むことができる。
【0017】
各クライアントデバイス142は、1つ以上のアプリケーション146および期間モニタ144を含むことができる。たとえば、クライアントデバイス142−Aは、アプリケーション146−Aおよび期間モニタ144−Aを含む。同様に、クライアントデバイス142−Bは、アプリケーション146−Bおよび期間モニタ144−Bを含む。アプリケーション146は、特定のプラットフォームまたは特定のタイプのデバイス用に開発されたネイティブアプリケーションを含んでもよい。
【0018】
ユーザは、アプリケーション146またはそのアプリケーション内の特定の位置を指し示す(たとえば、そのアプリケーションのネットワーク位置にリンクする)アプリケーションリンクと対話する(たとえば、それを選択する)ことによって、アプリケーション146のコンテンツにアクセスしてもよい。アプリケーションリンクは、(アプリケーション146がまだ開いていなければ)クライアントデバイス142にアプリケーション146を開かせ、アプリケーションリンクとのユーザ対話に応答して、アプリケーションリンクが指し示す特定の位置にナビゲートする文字列を含むことができる。たとえば、文字列は、アプリケーション146、およびアプリケーションリンクが指し示すアプリケーション146内の特定の位置を識別することができる。アプリケーションリンクは、アプリケーションの最上位ページ(たとえば、ウェルカムページまたはサインインページ)以外の特定のページ(またはユーザインターフェース画面)にリンクする形式または一意のリソース識別子(URI)における深いリンクとすることができる。
【0019】
アプリケーションリンクは、ウェブページ上、アプリケーション内、検索結果ページ上、および/または他のタイプの電子リソース上に提示することができる。同じアプリケーションリンクが複数の異なるリソース上に提示されてもよく、複数の異なるユーザと対話させることができる。上述したように、アプリケーション146が更新された場合、アプリケーションコンテンツをホストしているサーバが利用できなくなる(たとえば、オフラインになる)場合、またはユーザにとって容易に明らかではない可能性がある他のイベントの場合、アプリケーションリンクは破損しているかもしれない。そのような場合、(アプリケーションリンクが提示されているいずれかのリソース上での)アプリケーションリンクとのユーザ対話は、アプリケーションリンクが指し示すアプリケーションをクラッシュさせるか、またはそのアプリケーションに正しくないコンテンツを提示させるかもしれない。したがって、破損アプリケーションリンクを識別して電子リソースから除去することにより、そのようなクラッシュおよび正しくないコンテンツの提示を防止し、アプリケーションとのユーザエクスペリエンスを向上させることができる。
【0020】
破損リンクは、特定のアプリケーションまたはアプリケーション内の特定の位置に適切にリンクしていないリンクである。たとえば、破損アプリケーションリンクは、存在しない、アプリケーション内の位置にリンクすることがある。別の例では、破損アプリケーションリンクは、以前は存在していた、あるアプリケーション内の位置ではあるが、現在は、その位置のコンテンツをホストしているサーバが利用可能でないか、またはたとえばそのアプリケーションの更新のため、そのコンテンツが別の位置に移動されているため存在しない位置にリンクしているかもしれない。
【0021】
アプリケーションリンクは、正しくないコンテンツに適切にリンクしている場合にも、破損している可能性がある。たとえば、あるアプリケーションリンクは、特定のニュースストーリーにリンクすることを意図され得るが、実際には異なるニュースストーリーにリンクする。この例では、アプリケーションリンクと対話するユーザは、異なるニュースストーリーを提示され得、異なるニュースストーリーを読むことなく、アプリケーションを閉じるか、またはリンクを含むアプリケーションもしくはコンテンツに戻るかもしれない。このような破損アプリケーションリンクを識別して除去することで、ユーザエクスペリエンスが向上し、コンテンツを取得するために開始されるネットワーク要求の数が低減され、ネットワークパフォーマンスが向上し、ネットワークリソースの需要が低減される。
【0022】
期間モニタ144は、アプリケーションコンテンツの提示期間を監視することができる。たとえば、期間モニタ114は、ユーザがアプリケーションコンテンツを指し示すアプリケーションリンクとのユーザ対話(たとえば、それの選択)に続いて提示されるコンテンツの提示期間を監視することができる。提示期間は、アプリケーションリンクとのユーザ対話が発生した時刻から、たとえばアプリケーションとのユーザ対話に応答して、アプリケーションが閉じられるか、またはアプリケーションが他のコンテンツにナビゲートする時刻まで、測定することができる。たとえば、ユーザは、午後12時01分にアプリケーション内の特定の位置へのアプリケーションリンク(たとえば、検索結果ページ上に提示される)を選択してもよく、その特定の位置のコンテンツが、そのアプリケーションを介してユーザに提示されてもよい。選択に応答して、期間モニタ144(または検索結果ページを提供した検索システム)は選択の時間をログ(たとえば検索ログ)に記録してもよい。ユーザが戻るボタンを選択した場合、またはアプリケーションを終了した場合、クライアントデバイス142は、検索結果ページに戻ってもよい。期間モニタ144(または検索システム)は、クライアントデバイス142がアプリケーションを閉じたかまたは検索結果ページに戻った時刻、たとえば12:05をログに記録してもよい。この例では、期間モニタ144は、たとえばログから2つの時刻を取得し、12:05から12:01を減算して提示期間を判断してもよい。したがって、この例では、提示期間は4分である。アプリケーションがクラッシュした場合、提示期間は、アプリケーションリンクとのユーザ対話が発生した時刻およびアプリケーションがクラッシュした時刻から測定することができる。たとえば、期間モニタ144は、たとえばアプリケーションまたはクライアントデバイスのオペレーションシステムから、アプリケーションがクラッシュした時刻を示すメッセージを受信してもよい。
【0023】
期間モニタ144は、クライアントデバイス142でユーザ対話を受信する複数の異なるアプリケーションリンクについての提示期間を監視し記録してもよい。期間モニタ144は、また、各アプリケーションリンクについての提示期間を示すデータを、破損リンク検出システム110のフロントエンドサーバ112に送信してもよい。フロントエンドサーバ112は、複数の異なるユーザに関連付けられる複数の異なるクライアントデバイス142から提示期間を受信することができる。たとえば、フロントエンドサーバ112は、第1のユーザに関連付けられるクライアントデバイス142−Aと、第1のユーザとは異なる第2のユーザに関連付けられるクライアントデバイス142−Bとから、提示期間を受信してもよい。このようにして、所与のアプリケーションリンクについての選択期間を複数の異なるユーザにわたって集約してもよい。
【0024】
フロントエンドサーバ112は、受信した提示期間をリンク分類サーバ114に提供することができる。次いで、リンク分類サーバ114は、たとえば、データ記憶装置に記憶される提示期間データベース118に提示期間を記憶することができる。各提示期間は、その提示期間が記録されたアプリケーションリンクへの関連付けと共に記憶することができる。
【0025】
リンク分類サーバ114は、1つ以上のバックエンドサーバとして実現することができ、アプリケーションリンクが破損しているかどうか、および/またはアプリケーションリンクのグループ内のアプリケーションリンクが破損しているかどうかを予測するよう、機
械学習モデル116を訓練することができる。機械学習モデルを訓練するための例示的な技術が、図4に示され、以下に説明される。機械学習モデル116は、アプリケーションリンクについての提示期間に基づいて、アプリケーションリンクを、破損しているもの、または正常に機能している(たとえば、破損していない)ものとして分類することができる。たとえば、リンク分類サーバ114は、機械学習モデル116をアプリケーションリンクについての提示期間のセットに適用し、提示期間のセットに基づいてアプリケーションリンクを分類してもよい。アプリケーションリンクを分類するために使用される提示期間のセットは、アプリケーションリンクとのユーザ対話に続く特定の期間、たとえば前日または前週に発生したコンテンツ提示についてのものであってもよい。
【0026】
いくつかの実現例では、機械学習モデル116は、アプリケーションリンクについての提示期間の分布に基づいて、アプリケーションリンクが破損しているかまたは正常に機能していると分類する。この例では、リンク分類サーバ114は、期間グループのセットを有してもよく、各期間グループは、ある期間の範囲に対応してもよい。たとえば、グループは、0〜3秒の期間のための第1のグループ、3〜6秒の期間のための第2のグループ、6〜9秒の期間のための第3のグループなどを含んでもよい。リンク分類サーバ114は、各提示期間について、その提示期間が入る期間の範囲を識別し、その提示期間を、その期間の範囲に対応する期間グループに割り当てることができる。たとえば、リンク分類サーバ114は、7秒の提示期間を、範囲6〜9秒を有する期間グループに割り当ててもよい。
【0027】
リンク分類サーバ114は、各期間グループに割り当てられた提示期間の数のカウントを判断することができる。各期間グループについてのカウントは、アプリケーションリンクについての提示期間の分布を規定する。具体的には、アプリケーションリンクについての分布は、期間グループのセットの各々について、期間グループに割り当てられるアプリケーションリンクについての提示期間の数を示す。アプリケーションリンクについての例示的な分布が、図2に示され、以下に説明される。機械学習モデル116は、アプリケーションリンクについての各期間グループのカウントに適用することができ、カウントに基づいてアプリケーションリンクを分類することができる。たとえば、リンク分類サーバ114は、各期間グループについてのベクトル要素を含む特徴ベクトルを生成してもよい。各ベクトル要素の値は、そのベクトル要素に対応する期間グループに割り当てられるアプリケーションリンクについての提示期間の数のカウントに等しくてもよい(または比例してもよい)。たとえば、特徴ベクトルは、6〜9秒の期間グループに対応するベクトル要素を含んでもよい。このベクトル要素の値は、6〜9秒の間であった、アプリケーションリンクについての提示期間の数であってもよい。リンク分類サーバは、機械学習モデル116を、アプリケーションリンクについて生成された特徴ベクトルに適用して、アプリケーションリンクが破損しているかまたは正常に機能しているかを分類してもよい。
【0028】
提示期間の分布に基づいてアプリケーションリンクを分類することにより、機械学習モデル116は、複数の異なるクライアントデバイス142によるアプリケーションに対する複数の要求にわたる提示期間のパターンを考慮に入れることができる。たとえば、アプリケーションリンクが破損した場合、期間が短い期間グループに多数の提示期間が割り当てられ、期間が長い期間グループに有意により少数の提示期間が割当てられる結果となり得る。対照的に、正常に機能しているアプリケーションリンクは、より長い期間を有するものを含む、多くの異なる期間グループに割り当てられる、有意な数の(たとえば、閾値数より多い)提示期間を有し得る。機械学習モデル116は、以下により詳細に説明するように、破損したアプリケーションリンクに対応するさまざまな異なる分布パターン、および正常に機能しているアプリケーションリンクに対応するさまざまな異なる分布パターンを識別するように訓練することができる。
【0029】
機械学習モデル116は、個々のアプリケーションリンクと同様の態様で、アプリケーションリンクのグループを分類することができる。たとえば、リンク分類サーバ114は、アプリケーションリンクグループに含まれる各アプリケーションリンクについて、そのアプリケーションリンクについての提示期間を識別し、そのグループについての提示期間を集約することができる。次いで、リンク分類サーバ114は、機械学習モデル116をアプリケーションリンクのグループについての提示期間に適用し、グループ内のアプリケーションリンクが全体として破損しているかどうかの分類を出力する。たとえば、グループに対する「破損」の分類は、そのグループ内の各アプリケーションリンクが破損していることを示してもよい。これに応答して、リンク分類サーバ114は、グループ内のアプリケーションリンクが破損しているかもしれない旨を示す警報を生成してフロントエンドサーバ112に送信してもよい。次いで、フロントエンドサーバ112は、システム管理者のクライアントデバイスに警報を送信してもよく、システム管理者は、グループ内のアプリケーションリンクをさらに調査してもよい。
【0030】
アプリケーションリンクのグループを分類するために、リンク分類サーバ114は、グループ内のアプリケーションリンクについての提示期間の分布を生成し、機械学習モデルをその分布に適用してもよい。たとえば、リンク分類サーバ114は、個々のアプリケーションリンクのための特徴ベクトルと同様の態様で、グループのための特徴ベクトルを生成してもよい。リンク分類サーバ114は、期間グループのセット内の各期間グループについてのベクトル要素を含む特徴ベクトルを生成してもよい。各ベクトル要素の値は、そのベクトル要素に対応する期間グループに割り当てられるアプリケーションリンクのグループについての提示期間の数のカウントに等しくてもよい(または比例してもよい)。たとえば、特徴ベクトルは、1〜3秒の期間グループに対応するベクトル要素を含んでもよい。このベクトル要素の値は、1〜3秒であったグループの提示期間の総数であってもよい。例として、あるグループはメンバーとして2つのアプリケーションリンクを有し得る。2つのアプリケーションリンクのうちの一方は、1〜3秒の間であった10個の提示期間を有したとしてもよく、他方のアプリケーションリンクは、1〜3秒であった5個の提示期間を有したとしてもよい。この例では、1〜3秒の期間グループに対応するベクトル要素は15の値を有してもよい。リンク分類サーバは、機械学習モデル116を、アプリケーションリンクのグループについて生成された特徴ベクトルに適用して、グループ内のアプリケーションリンクを破損しているかまたは正常に機能しているとして分類してもよい。
【0031】
リンク分類サーバ114は、アプリケーションリンクのセットを、アプリケーションリンクの1つ以上の特性および/またはアプリケーションリンクが指し示すアプリケーションもしくはアプリケーションコンテンツの1つ以上の特性に基づいたグループに割り当てることができる。リンク分類サーバ114は、それらのグループおよび各グループのメンバーを識別するデータをリンクグループデータベース120に格納することができる。いくつかの実現例では、リンク分類サーバ114は、アプリケーションリンクを、アプリケーションリンクに含まれる文字列に基づいたグループに割り当てることができる。上述したように、アプリケーションリンクは、アプリケーションリンクのプレフィックスパターンに基づいてグループ化することができる。この例では、リンク分類サーバ114は、グループを生成するアプリケーションリンクの1つ以上において見出される文字列を識別することができる。特定の例では、リンク分類サーバ114は、アプリケーションリンクの2つ以上に共通する(たとえば同じ)文字列を識別し、その共通の文字列によって定義されるアプリケーションリンクプレフィックスパターンのためのグループを生成してもよい。
【0032】
いくつかの実現例では、アプリケーションリンクプレフィックスパターンは、アプリケーションリンクの文字列の先頭から始まる文字列に基づいている。たとえば、第1のアプリケーションリンクの文字列は"appname:itemcategory1/item1"であってもよく、第2のアプリケーションリンクの文字列は"appname:itemcategory1/item2"であってもよい。この例では、リンク分類サーバ114は、文字列を左から右へと評価し、2つのアプリケーションリンクが"appname:itemcategory1/"の共通プレフィックスを有すると判断してもよい。応じて、リンク分類サーバ114は、アプリケーションリンクプレフィックスパターン"appname:itemcategory1/"のためのグループを生成し、そのアプリケーションリンクプレフィックスパターンで始まる文字列を有する各アプリケーションリンクをそのグループに含めてもよい。
【0033】
リンク分類サーバ114は、アプリケーションリンクの数および/または各潜在的なグループについて利用可能な提示期間の数に基づいたグループを生成してもよい。たとえば、リンク分類サーバ114は、2つ以上のアプリケーションリンクに共通の文字列を識別してもよい。識別された各文字列について、リンク分類サーバ114は、その文字列を含むアプリケーションリンクの数を識別してもよい。次いで、リンク分類サーバ114は、少なくとも閾値数のアプリケーションリンクが含む文字列ごとにグループを生成してもよい。別の例では、リンク分類サーバ114は、文字列を、その文字列を含むアプリケーションリンクの数に基づいてランク付けし、上位Nの文字列のためのグループを生成してもよく、ここで、「N」は指定された数である(たとえば、破損リンク検出システムの管理者によって指定され、データストアまたはデジタルメモリデバイスから取得可能である)。各グループについて、リンク分類サーバ114は、そのグループに、そのグループが生成された文字列を含むアプリケーションリンクをポピュレートすることができる。
【0034】
同様に、リンク分類サーバ114は、2つ以上の異なるアプリケーションリンクに共通する(たとえば同じ)文字列を識別してもよい。識別された各文字列について、リンク分類サーバ114は、その文字列を含むアプリケーションリンクについて提示期間データベース118に記憶される提示期間の総数を識別してもよい。リンク分類サーバ114は、機械学習モデル116を使用して、特定の期間(たとえば前日)についての提示期間に基づいてアプリケーションリンクを分類する場合、リンク分類サーバは、その文字列を含み、かつ提示期間が少なくとも部分的に特定の期間内に発生したアプリケーションリンクについての提示期間の総数を識別してもよい。たとえば、提示期間は、アプリケーションコンテンツの提示が、特定の期間内に開始されたが、その特定の期間が終了した後まで続いた場合、その特定の期間内に部分的に発生してもよい。リンク分類サーバ114は、少なくとも閾値数の提示期間がそれを含むアプリケーションリンクについて利用可能な各文字列についてグループを生成することができる。別の例では、リンク分類サーバ114は、利用可能な提示期間の数に基づいて文字列をランク付けし、上位N(「N」は指定された数である)の文字列のグループを生成してもよい。各グループについて、リンク分類サーバ114は、グループに、そのグループが生成された文字列を含むアプリケーションリンクをポピュレートすることができる。
【0035】
リンク分類サーバ114は、また、特定のアプリケーションのためのグループを生成してもよい。たとえば、リンク分類サーバは、特定のアプリケーションごとにグループを作成し、特定のアプリケーションのためのグループに、その特定のアプリケーションまたはその特定のアプリケーション内の特定の位置を指し示す各アプリケーションリンクを含めてもよい。
【0036】
リンク分類サーバ114は、また、時間の経過に伴う提示期間の変化に基づいて、アプリケーションリンクおよび/またはアプリケーションのグループを分類することもできる。たとえば、あるアプリケーションリンクについての提示期間が大幅に(たとえば少なくとも閾値量だけ)減少した場合、そのアプリケーションリンクは破損している可能性がある。アプリケーションリンクを分類するために、リンク分類サーバ114は、特定の期間、たとえば前週にわたる各日(または別の適切な期間)について、そのアプリケーションリンクについての平均提示期間を判断することができる。アプリケーションサーバは、当日(または他の適切な期間)についてアプリケーションリンクの平均提示期間を判断することもできる。次いで、リンク分類サーバ114は、当日についての平均提示期間を前日についての平均提示期間(または検討下にあるすべての前の日についての組合せ平均)と比較することができる。当日についての平均提示期間が少なくとも前の日についての平均提示期間未満の閾値量である場合、リンク分類サーバ114は、そのアプリケーションリンクを破損したリンクとして分類してもよい。
【0037】
いくつかの実現例では、リンク分類サーバ114は、前の日についての平均提示期間の標準偏差が閾値を超える場合には、アプリケーションリンクを分類しなくてもよい。たとえば、高い標準偏差(たとえば、閾値を超えるもの)は、データがアプリケーションリンクを分類するために使用されるのに十分に安定していないことを示してもよく、それによってリンク分類サーバ114が誤った分類を出力することを防止してもよい。
【0038】
図2は、アプリケーションリンクについての提示期間の例示的な分布の表現を示すグラフ200である。グラフ200は、提示期間グループと、各期間グループについて、各期間グループに割り当てられた提示期間の数のカウントとを示す。この例では、期間グループは、各々、2秒の期間範囲に対する。たとえば、第1の期間グループは、0〜2秒の期間範囲に対してであり、第1の期間グループは、10個の提示期間を割り当てられている。つまり、アプリケーションリンクによってリンクされるアプリケーションのコンテンツは、0〜2秒の期間について、10回閲覧された。いくつかの実現例では、分布は、各期間グループに割り当てられた提示期間の数のカウントではなく、各期間グループに割り当てられた提示期間の割合に基づいてもよい。
【0039】
機械学習モデルを分布に適用して、アプリケーションリンクが正常に機能しているかまたは破損しているかを予測(たとえば判断)することができる。この例示的分布は、破損したリンクについての提示期間を表してもよく、なぜならば、提示期間の大部分は20秒未満であり、30秒を超える提示期間は少ないからである。したがって、機械学習モデルは、この例示的分布に対して、「破損」の分類を出力してもよい。
【0040】
図3は、アプリケーションリンクについての提示期間の例示的な分布の表現を示すグラフ300である。図2のグラフ200に類似して、グラフ300は、提示期間グループと、各期間グループについて、各期間グループに割り当てられた提示期間の数のカウントとを示す。機械学習モデルを分布に適用して、アプリケーションリンクが正常に機能しているかまたは破損しているかを予測(たとえば判断)することができる。この例示的分布は、正常に機能しているリンクについての提示期間を表していてもよく、なぜならば、提示期間が期間の範囲にわたって分散され、短い提示期間に向かって大きく加重されていないからである。したがって、機械学習モデルは、この例示的な分布について、「正常に機能している」という分類を出力してもよい。
【0041】
図4は、アプリケーションリンクが破損リンクであるかどうかを予測するよう機械学習モデルを訓練するための例示的なプロセス400のフローチャートである。プロセス400の動作は、たとえば、図1の破損リンク検出システム110のような1つ以上のデータ処理装置を含むシステムによって実施することができる。プロセス400は、コンピュータ記憶媒体に記憶された命令によって実施することもでき、データ処理装置を含むシステムによる命令の実行により、データ処理装置にプロセス400の動作を実行させる。
【0042】
システムは、訓練アプリケーションリンクのセットを識別する(402)。たとえば、システムは、訓練アプリケーションリンクを識別するデータおよび各訓練アプリケーションリンクのためのラベル付けされた訓練データを含むデータベースまたはインデックスにアクセスしてもよい。訓練アプリケーションリンクは、ラベル付けされた訓練データが利用可能なアプリケーションリンクとすることができる。たとえば、訓練アプリケーションリンクは、動作状態(たとえば、正常に機能している、または破損している)が既知であり、機械学習モデルを訓練する際に使用するのに利用可能な少なくとも閾値数の実際の提示期間があるアプリケーションリンクであってもよい。訓練アプリケーションリンクは、セットが、少なくとも閾値数の正常に機能しているアプリケーションリンクと少なくとも閾値数の破損したアプリケーションリンクとを含むように、識別されることができる。
【0043】
システムは、各訓練アプリケーションリンクについて、ラベル付けされた訓練データを取得する(404)。たとえば、システムは、データベースにアクセスし、各訓練アプリケーションリンクにインデックス付けされるラベル付けされた訓練データを識別し、それらの訓練アプリケーションリンクのためにそのラベル付けされた訓練データを取り出してもよい。各訓練アプリケーションリンクのためのラベル付けされた訓練データは、その訓練アプリケーションリンクについての提示期間のセット、およびラベルを含むことができる。トレーニングアプリケーションリンクのためのラベルは、トレーニングアプリケーションリンクが破損しているか正常に機能しているかどうかを示すことができる。たとえば、アプリケーションリンクのためのラベルは、訓練アプリケーションリンクとのユーザ対話によって、デバイスが、訓練アプリケーションリンクによって指し示されるコンテンツにナビゲートするかどうかに基づいて、訓練アプリケーションリンクが破損しているかまたは正常に機能しているかどうかを示すことができる。
【0044】
いくつかの実現例では、1人以上のシステム管理者および/または1人以上のユーザが訓練アプリケーションリンクをテストし、それに応じてラベルを更新する。たとえば、システム管理者は、訓練アプリケーションリンクと対話(たとえばそれを選択)し、訓練アプリケーションリンクによってリンクされるコンテンツが提示されたかどうかを見るよう監視してもよい。訓練アプリケーションリンクとの対話後に正しいコンテンツが提示された場合、システム管理者は訓練アプリケーションリンクに対するラベルを更新して、訓練アプリケーションリンクが正常に機能していることを示してもよい。訓練アプリケーションリンクによってリンクされたアプリケーションが開かなかった場合、または訓練アプリケーションリンクによってリンクされたコンテンツが訓練アプリケーションリンクとの対話後に提示されなかった場合、システム管理者はラベルを更新して、訓練アプリケーションリンクが破損していることを示してもよい。別の例では、訓練アプリケーションリンクと対話するユーザは、たとえば、ユーザインタフェース要素を自動的に使用して、訓練アプリケーションが正常に動作したか破損しているかを選択するように促された。
【0045】
システムは、訓練データを使用して、アプリケーションリンクが正常に機能しているかまたは破損しているかを予測するよう、機械学習モデルを訓練する(406)。いくつかの実現例では、システムは、訓練アプリケーションリンクの一部ならびに対応する提示期間およびラベルを訓練セットおよびテストセットに仕切ることによって、機械学習モデルを生成してもよい。機械学習モデルは、次いで、訓練セット内の各訓練アプリケーションリンクの提示期間、および訓練セット内の各訓練アプリケーションリンクについてのラベルを用いて、訓練されてもよい。いくつかの実現例では、機械学習モデルは、提示期間の特定の特徴に関連付けられる1つ以上の重み、たとえば各期間グループについての重み、提示期間の大きさについての重み、および/または各期間グループにある相対数の提示期間についての重みを含んでもよい。予測モデルを訓練することは、アプリケーションリンクが破損しているかまたは正常に機能しているかを予測することが判明した特徴および特徴の組合せに関連付けられる重みを調整することを含んでもよい。特徴とラベルとを相関させるために、クラスタリング、線形回帰、ロジスティック回帰、および非線形回帰など、さまざまな方法および技術を使用することができる。
【0046】
予測モデルを訓練した後、モデルは、テストセット内または別の訓練セット内の訓練アプリケーションリンクの提示期間を使用してテストされてもよい。機械学習モデルにおける各特徴に関連付けられる重みは、次いで、テストの結果に基づいて調整されてもよい。
【0047】
図5は、破損したアプリケーションリンクを識別するための例示的なプロセス500のフローチャートである。プロセス500の動作は、たとえば、図1の破損リンク検出システム110のような1つ以上のデータ処理装置を含むシステムによって実施することができる。プロセス500は、コンピュータ記憶媒体に格納された命令によって実施することもでき、データ処理装置を含むシステムによる命令の実行により、データ処理装置にプロセス500の動作を実行させる。
【0048】
システムは、所与のアプリケーションについて、1つ以上のアプリケーションリンクについての提示期間を示すデータを受信する(502)。1つ以上のアプリケーションリンクの各々は、所与のアプリケーション内の特定の位置または特定のコンテンツにリンクしてもよい。各提示期間は、ユーザのアプリケーションリンクとの対話に続いて、アプリケーションリンクによってリンクされたアプリケーションコンテンツが提示された期間を示してもよい。
【0049】
データは、1つ以上のアプリケーションリンクの各々との複数の異なるユーザ対話についての提示期間を含むことができる。たとえば、各アプリケーションリンクは、複数の異なるユーザから対話を受信してもよい。各対話に応答して、アプリケーションリンクによってリンクされたアプリケーションコンテンツが、アプリケーションリンクと対話したユーザに提示されてもよい。各ユーザ対話について、システムは、ユーザ対話に続いてアプリケーションコンテンツが提示された期間を監視し、その期間をアプリケーションリンクについての提示期間として記録することができる。
【0050】
アプリケーションリンクが破損している場合は、アプリケーションのコンテンツはユーザに提示されないかもしれず、または正しくないコンテンツがユーザに提示されるかもしれない。アプリケーションがクラッシュした場合、提示期間は、アプリケーションとのユーザ対話とアプリケーションクラッシュとの間の時間量を示してもよい。アプリケーションが開かない場合は、提示期間は0であってもよい。正しくないコンテンツが提示される場合、提示期間は短くてもよく(たとえば、閾値期間未満)、なぜならば、ユーザは正しくないコンテンツから離れてナビゲートするかまたはアプリケーションを閉じ得るからである。
【0051】
システムは、アプリケーションリンクについての提示期間に対する機械学習モデルの適用に基づいて、各アプリケーションリンクを破損しているかまたは正常に機能しているものとして分類する(504)。たとえば、システムは、アプリケーションリンクについて観察された提示期間に基づいてアプリケーションリンクが正常に機能しているか破損しているかを予測するように訓練された機械学習モデルを識別することができる。機械学習モデルは、たとえば、図4に示され上に記載される例示的なプロセス400を使用して訓練されてもよい。
【0052】
いくつかの実現例では、機械学習モデルは、提示期間の分布に基づいて、アプリケーションリンクが正常に機能しているかまたは破損しているかを予測する。たとえば、システムは、各提示期間を、その提示期間が入るある期間の範囲を有する期間グループに割り当ててもよい。システムは、各期間グループに割り当てられた提示期間の数のカウントを判断することができる。各期間グループについてのカウントは、アプリケーションリンクについての提示期間の分布を規定する。機械学習モデルは、各期間グループについてのカウントに適用することができ、機械学習モデルは、そのカウントに基づいて、アプリケーションリンクについての「正常に機能している」または「破損している」の分類を出力することができる。
【0053】
いくつかの実現例では、機械学習モデルは、アプリケーションリンクのための特徴ベクトルに適用することができる。この例では、特徴ベクトルは、各期間グループについてのベクトル要素を含むことができる。各ベクトル要素の値は、そのベクトル要素に対応する期間グループに割り当てられるアプリケーションリンクについての提示期間の数のカウントに等しくてもよい(または比例してもよい)。
【0054】
システムは、機械学習モデルによって破損したリンクとして分類された各アプリケーションリンクについて警報を生成して出力する(506)。所与のアプリケーションリンクに対する警報は、所与のアプリケーションリンクを、それが機械学習モデルによって破損しているとして分類されたことに基づいて、破損したリンクとして識別してもよい。システムは、警報をシステム管理者のクライアントデバイスに送信してもよい。これに応答して、システム管理者はさらにアプリケーションリンクを調査してもよい。システム管理者が、アプリケーションリンクが破損していると判断した場合、システム管理者は、破損したリンクを、そのリンクを含む1つ以上の電子リソースから除去してもよく、および/またはそのリンクを修復してもよい。
【0055】
図6は、破損したアプリケーションリンクのアプリケーションリンクプレフィックスパターンを識別するための例示的なプロセス600のフローチャートである。プロセス600の動作は、たとえば、図1の破損リンク検出システム110のような1つ以上のデータ処理装置を含むシステムによって実施することができる。プロセス600は、コンピュータ記憶媒体に記憶された命令によって実施することもでき、データ処理装置を含むシステムによる命令の実行により、データ処理装置にプロセス600の動作を実行させる。
【0056】
システムは、アプリケーションリンクのセットついて、少なくともアプリケーションリンクの文字列に基づいて、1つ以上のアプリケーションリンクプレフィックスパターンを識別する(602)。たとえば、上述したように、各アプリケーションリンクは、特定のアプリケーション内における特定の位置を識別するための文字列を含むことができる。システムは、アプリケーションリンクの2つ以上に共通する文字列を識別し、その共通文字列によって定義されるアプリケーションリンクプレフィックスパターンについてグループを生成してもよい。上述したように、アプリケーションリンクグループは、アプリケーションリンクの数および/または各潜在的なグループについて利用可能な提示期間の数に基づいて生成されてもよい。
【0057】
各アプリケーションリンクプレフィックスパターンについて、そのアプリケーションリンクプレフィックスパターンによって示される文字列を含むアプリケーションリンクのグループを識別する(604)。たとえば、システムは、アプリケーションリンクプレフィックスパターンによって示される文字列を各アプリケーションリンクの文字列と比較してもよい。アプリケーションリンクプレフィックスパターンによって示される文字列と一致する文字のセットを含む各アプリケーションリンクは、そのアプリケーションリンクプレフィックスパターンのためのアプリケーションリンクグループに含まれてもよい。たとえば、第1の文字列が第2の文字列と同じであるかまたは少なくとも特定の類似度を有する場合には、それら2つの文字列は一致すると見なされてもよい。文字列間の類似度は、それら文字列において、同じであり、かつ文字列内の同じ位置にある文字の数(または文字の割合)に基づいていてもよい。いくつかの実現例では、システムは、あるアプリケーションリンクプレフィックスパターンに対するアプリケーションリンクグループ内に、そのアプリケーションリンクプレフィックスパターンによって示される文字列で始まる文字列を有するアプリケーションリンクを含むに過ぎない。
【0058】
各アプリケーションリンクプレフィックスパターンについて、システムは、アプリケーションリンクのグループ内の各アプリケーションリンクについて提示期間のセットを識別する(606)。たとえば、各アプリケーションリンクは、ある提示期間のセットを有してもよい。システムは、グループについての提示期間を提示期間のセットに集約してもよい。
【0059】
各アプリケーションリンクプレフィックスパターンについて、システムは、機械学習モデルをアプリケーションリンクのグループについての提示期間のセットに適用する(608)。システムは、図5を参照して上述したものと同じ、または同様の態様で、機械学習モデルを提示期間のセットに適用してもよい。たとえば、システムは、提示期間のセットにおける各提示期間を、その提示期間が入るある期間の範囲を有する期間グループに割り当ててもよい。システムは、各期間グループに割り当てられた提示期間のセットの提示期間の数のカウントを判断することができる。システムは、機械学習モデルを各期間グループについてのカウントに適用することができ、機械学習モデルは、そのカウントに基づいて、アプリケーションリンクについての「正常に機能している」または「破損している」の分類を出力することができる。
【0060】
いくつかの実現例では、機械学習モデルは、アプリケーションリンクグループのための特徴ベクトルに適用することができる。この例では、特徴ベクトルは、各期間グループについてのベクトル要素を含むことができる。各ベクトル要素の値は、そのベクトル要素に対応する期間グループに割り当てられるアプリケーションリンクグループについての提示期間の数のカウントに等しくてもよい(または比例してもよい)。
【0061】
システムは、所与のアプリケーションリンクプレフィックスパターンについて、アプリケーションリンクの所与のグループを、機械学習モデルがアプリケーションリンクのセットを破損したものとして分類することに基づいて、破損したリンクとして識別する警報を生成して出力する(610)。たとえば、機械学習モデルは、各アプリケーションリンクグループついて「正常に機能している」または「破損している」という分類を出力してもよい。「破損している」という分類を有するものについて、システムは、アプリケーショングループ内のアプリケーションリンクを破損したリンクとして識別する警報を生成できる。システムは、システム管理者のクライアントデバイスに警報を送信してもよく、システム管理者は、さらに、破損したリンクを調査し修復または除去してもよい。
【0062】
本明細書において記載される主題および動作の実施形態は、デジタル電子回路系において、または本明細書に開示される構造およびそれらの構造的等価物を含むコンピュータソフトウェア、ファームウェアもしくはハードウェアにおいて、またはそれらの1つ以上の組合せにおいて実現され得る。本明細書に記載される主題の実施形態は、1つ以上のコンピュータプログラムとして、すなわち、データ処理装置による実行のために、または、データ処理装置の動作を制御するためにコンピュータ記憶媒体上でエンコードされたコンピュータプログラム命令の1つ以上のモジュールとして実現され得る。代替的に、または加えて、プログラム命令は、データ処理装置による実行に対して好適な受信側装置への送信のために情報をエンコードするよう生成される、たとえばマシンにより生成された電気信号、光信号、または電磁気信号などの、人為的に生成された伝搬される信号上でエンコードすることができる。コンピュータ記憶媒体は、コンピュータ読取可能記憶装置、コンピュータ読取可能記憶基板、ランダムもしくはシリアルアクセスメモリアレイもしくはデバイス、または、それらの1つ以上の組合せであり得るかまたはそれに含まれ得る。さらに、あるコンピュータ記憶媒体は伝搬される信号ではない一方、あるコンピュータ記憶媒体は、人工的に生成された伝搬される信号でエンコードされたコンピュータプログラム命令のソースまたは宛先とすることができる。コンピュータ記憶媒体は、さらに、1つ以上の別個の物理的構成要素または媒体(たとえば、複数のCD、ディスク、または他の記憶装置)であってもよく、またはそれらに含まれてもよい。
【0063】
本明細書に記載される動作は、1つ以上のコンピュータ読取可能記憶装置に格納されたデータまたは他のソースから受信したデータに対してデータ処理装置によって実行される操作として実現することができる。
【0064】
「データ処理装置」という用語は、例としてプログラマブルプロセッサ、コンピュータ、チップ上のシステム、または前述のもののうちの複数もしくは組合わせを含む、データを処理するためのすべての種類の装置、デバイスおよびマシンを包含する。本装置は、たとえばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)といった特定目的論理回路を含み得る。本装置は、さらに、ハードウェアに加えて、たとえばプロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォーム実行時環境、仮想マシン、またはそれらの1つ以上の組合せを構成するコードといった、当該コンピュータプログラムについて実行環境を生成するコードを含み得る。本装置および実行環境は、ウェブサービス、分散コンピューティングおよびグリッドコンピューティングインフラストラクチャなど、さまざまな異なるコンピューティングモデルインフラストラクチャを実現することができる。
【0065】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプトまたはコードとしても公知である)は、コンパイル型もしくはインタープリタ型言語、宣言型もしくは手続き型言語を含む任意の形式のプログラミング言語で記述され得、スタンドアロンプログラムとして、または、モジュール、コンポーネント、サブルーチン、オブジェクト、もしくはコンピューティング環境で使用するのに好適な他のユニットとして含む、任意の形態で展開され得る。コンピュータプログラムは、ファイルシステムにおけるファイルに対応してもよいが、対応する必要があるわけではない。プログラムは、当該プログラムに専用である単一のファイルにおいて、または、複数の連携ファイル(coordinated files)(たとえばコードの1つ以上のモジュール、サブプログラムまたは部分を格納するファイル)において、他のプログラムまたはデータ(たとえばマークアップ言語ドキュメントに格納される1つ以上のスクリプト)を保持するファイルの一部に格納され得る。コンピュータプログラムは、1つの場所に位置するかもしくは複数の場所にわたって分散され通信ネットワークによって相互接続される1つのコンピュータまたは複数のコンピュータ上で実行されるように展開され得る。
【0066】
本明細書に記載されるプロセスおよび論理フローは、入力データを操作し出力を生成することによりアクションを実行するよう1つ以上のプログラマブルプロセッサが1つ以上のコンピュータプログラムを実行することによって実行され得る。本プロセスおよび論理フローの実行、ならびに本装置の実施は、さらに、たとえばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)といった特殊目的論理回路系によってもなされ得る。
【0067】
コンピュータプログラムの実行に好適であるプロセッサは、例として、汎用マイクロプロセッサおよび特殊目的マイクロプロセッサの両方、ならびに任意の種類のデジタルコンピュータの任意の1つ以上のプロセッサを含んでもよい。一般に、プロセッサは、リードオンリメモリもしくはランダムアクセスメモリまたはその両方から命令およびデータを受取ることになる。コンピュータの必須の要素は、命令に従ってアクションを実行するためのプロセッサと、命令およびデータを格納するための1つ以上のメモリデバイスとである。一般に、コンピュータはさらに、たとえば磁気ディスク、光磁気ディスクまたは光ディスクといった、データを格納するための1つ以上の大容量記憶装置を含むか、当該1つ以上の大容量記憶装置からデータを受取るかもしくは当該1つ以上の大容量記憶装置にデータを転送するよう動作可能に結合されるか、またはその両方を行う。しかしながら、コンピュータはそのような装置を有する必要はない。さらに、コンピュータはたとえば、携帯電話、携帯情報端末(PDA)、モバイルオーディオもしくはビデオプレーヤ、ゲームコンソール、全地球測位システム(GPS)受信機、またはポータブル記憶装置(たとえばユニバーサルシリアルバス(USB)フラッシュドライブ)といった別のデバイスに埋め込まれ得る。コンピュータプログラム命令およびデータを格納するのに好適であるデバイスは、あらゆる形態の不揮発性メモリ、媒体およびメモリデバイスを含み、それらは、例として、たとえばEPROM、EEPROMおよびフラッシュメモリ素子といった半導体メモリデバイス;たとえば内部ハードディスクまたはリムーバブルディスクといった磁気ディスク;光磁気ディスク;ならびにCD−ROMおよびDVD−ROMディスクを含む。プロセッサおよびメモリは、特殊目的論理回路によって補足され得るか、または特殊目的論理回路に組み込まれ得る。
【0068】
ユーザとの対話を提供するために、本明細書に記載される主題の実施形態は、たとえばCRT(陰極線管)またはLCD(液晶ディスプレイ)モニタといったユーザに対して情報を表示するための表示デバイスと、たとえばマウス、トラックボールといったユーザがコンピュータに入力を提供可能であるキーボードおよびポインティングデバイスとを有するコンピュータ上で実現され得る。他の種類のデバイスが同様に、ユーザとの対話を提供するために使用され得;たとえば、ユーザに提供されるフィードバックは、たとえば視覚フィードバック、聴覚フィードバックまたは触覚フィードバックといった任意の形態の感覚フィードバックであり得;ユーザからの入力は、音響入力、発話入力、または触覚入力を含む任意の形態で受取られ得る。加えて、コンピュータは、ユーザが使用するデバイスにドキュメントを送信しユーザが使用するデバイスからドキュメントを受信することによって、たとえば、ウェブブラウザから受信された要求に応答してユーザのクライアントデバイス上のウェブブラウザにウェブページを送信することによって、ユーザと対話し得る。
【0069】
本明細書に記載される主題の実施形態は、バックエンドコンポーネントをたとえばデータサーバとして含むか、またはミドルウェアコンポーネント、たとえばアプリケーションサーバを含むか、たとえば本明細書に記載される主題の実現例とユーザが対話することが可能であるグラフィカルユーザインターフェイスもしくはウェブブラウザを有するクライアントコンピュータといったフロントエンドコンポーネントを含むか、または1つ以上のそのようなバックエンドコンポーネント、ミドルウェアコンポーネントもしくはフロントエンドコンポーネントの任意の組合せを含む計算システムにおいて実現され得る。システムのコンポーネントは、たとえば通信ネットワークといったデジタルデータ通信の任意の形態または媒体によって相互接続され得る。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)およびワイドエリアネットワーク(「WAN」)、インターネットワーク(たとえばインターネット)、ならびにピアツーピアネットワーク(たとえばアドホックピアツーピアネットワーク)を含む。
【0070】
計算システムはクライアントおよびサーバを含むことができる。クライアントとサーバとは一般に互いから遠隔にあり、典型的には通信ネットワークを通じて対話する。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行されるとともに互いに対してクライアント−サーバ関係を有するコンピュータプログラムによって発生する。いくつかの実施形態では、サーバは、(たとえば、クライアントデバイスと対話するユーザにデータを表示し、およびそのユーザからユーザ入力を受信する目的で)データ(たとえば、HTMLページ)をクライアントデバイスに送信する。クライアントデバイスで生成されたデータ(たとえば、ユーザ対話の結果)は、クライアントデバイスからサーバで受信することができる。
【0071】
本明細書は多くの具体的な実現例の詳細を含んでいるが、これらは如何なる発明の範囲または請求され得るものの範囲に対する限定としても解釈されるべきではなく、特定の発明の特定の実施形態に特有の特徴の記載として解釈されるべきである。別個の実施形態の文脈で本明細書において記載されるある特徴は、単一の実施形態において組合せでも実現され得る。反対に、単一の実施形態の文脈において記載されるさまざまな特徴は、複数の実施形態において別々に、または任意の好適な部分的組合わせでも実現され得る。さらに、特徴は、ある組合せにおいて作用すると上で記載され、最初はそのように請求されていさえする場合もあるが、請求される組合せからの1つ以上の特徴はいくつかの場合には当該組合せから削除され得、請求される組合せは、部分的組合わせまたは部分的組合わせの変形例に向けられ得る。
【0072】
同様に、動作が図においては特定の順に示されているが、そのような動作は、望ましい結果を達成するために、示された当該特定の順もしくは連続した順で実行される必要があると理解されるべきではなく、または、すべての示された動作が実行される必要があると理解されるべきではない。ある状況においては、マルチタスキングおよび並列処理が有利であり得る。さらに、上に記載された実施形態におけるさまざまなシステムコンポーネントの分離は、すべての実施形態においてそのような分離を必要とすると理解されるべきでなく、記載されたプログラムコンポーネントおよびシステムは一般に、単一のソフトウェアプロダクトに一緒に統合され得るか、または、複数のソフトウェアプロダクトへとパッケージ化され得るということが理解されるべきである。
【0073】
かくして、主題の特定の実施形態が記載された。他の実施形態は以下の請求の範囲内にある。一部のケースでは、請求項において記載されるアクションは、異なる順で実行され得、それでも望ましい結果を達成し得る。加えて、添付の図において示されるプロセスは、望ましい結果を達成するために、示された特定の順序または連続する順序であることを必ずしも必要としない。ある実現例においては、マルチタスキングおよび並列処理が有利であり得る。
図1
図2
図3
図4
図5
図6