IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ デジタル リーズニング システムズ インコーポレイテッドの特許一覧

特許7216021機械学習モデルを迅速に構築し、管理し、共有するためのシステム及び方法
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-01-23
(45)【発行日】2023-01-31
(54)【発明の名称】機械学習モデルを迅速に構築し、管理し、共有するためのシステム及び方法
(51)【国際特許分類】
   G06N 20/00 20190101AFI20230124BHJP
【FI】
G06N20/00
【請求項の数】 102
(21)【出願番号】P 2019564084
(86)(22)【出願日】2018-05-14
(65)【公表番号】
(43)【公表日】2020-07-27
(86)【国際出願番号】 US2018032607
(87)【国際公開番号】W WO2018213205
(87)【国際公開日】2018-11-22
【審査請求日】2021-05-13
(31)【優先権主張番号】62/505,936
(32)【優先日】2017-05-14
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】519406902
【氏名又は名称】デジタル リーズニング システムズ インコーポレイテッド
(74)【代理人】
【識別番号】110000578
【氏名又は名称】名古屋国際弁理士法人
(72)【発明者】
【氏名】ヒューズ コーリー
(72)【発明者】
【氏名】エステス ティモシー
(72)【発明者】
【氏名】リュー ジョン
(72)【発明者】
【氏名】カール ブランドン
(72)【発明者】
【氏名】カマス ウダイ
【審査官】加藤 優一
(56)【参考文献】
【文献】米国特許出願公開第2017/0032279(US,A1)
【文献】中国特許出願公開第101425152(CN,A)
【文献】中国特許出願公開第106560848(CN,A)
【文献】国際公開第2017/073000(WO,A1)
【文献】特開2016-042322(JP,A)
【文献】米国特許第08250408(US,B1)
【文献】特表2013-538543(JP,A)
【文献】米国特許出願公開第2008/0126556(US,A1)
【文献】米国特許出願公開第2017/0032281(US,A1)
【文献】米国特許出願公開第2014/0380286(US,A1)
【文献】国際公開第2016/140701(WO,A1)
【文献】宮崎 亮輔,Wikipediaを用いた遠距離教師あり学習による専門用語抽出,言語処理学会 第21回年次大会発表論文集,2015年03月17日,pp.87-90,[検索日:2022.05.09],インターネット<URL:https://www.anlp.jp/proceedings/annual_meeting/2015/pdf_dir/P1-22.pdf>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00 - 3/12
G06N 7/08 -99/00
(57)【特許請求の範囲】
【請求項1】
機械学習モデルのライフサイクルを管理する方法であって、
アノテーションなしデータのセットを受信することと、
前記アノテーションなしデータのサンプルのアノテーションを要求して、アノテーション付きデータのセットを生成することと、
前記アノテーション付きデータのセットに基づいて機械学習モデルを構築することと、
前記機械学習モデルをクライアントシステムに配備することであって、前記クライアントシステムにおいて本番アノテーションが生成される、前記配備することと、
生成された前記本番アノテーションを収集し、前記本番アノテーションを組み込んだ新たな機械学習モデルを生成することと、
前記アノテーション付きデータのセットに基づいて構築された前記機械学習モデル、または前記新たな機械学習モデルの一方を選択することと、を含み、
前記アノテーションなしデータのサンプルのアノテーションを要求することは、前記アノテーションなしデータのセットからサンプルを選択するための複数の選択可能なボタンをグラフィカルユーザインターフェース上に設けることを含み、前記複数の選択可能なボタンの各々は、互いに異なるサンプラの推奨に関連付けられている、前記方法。
【請求項2】
適合率、再現率、平均適合率、受信者動作者特性スコア、またはFベータスコアを含む、前記機械学習モデルの1つまたは複数の品質尺度を報告すること、をさらに含む、請求項1に記載の方法。
【請求項3】
前記機械学習モデルを第三者と共有すること、をさらに含む、請求項1に記載の方法。
【請求項4】
サンプルのアノテーションを要求することは、
ユーザ入力または自動サンプラ選択に基づいて、前記アノテーションなしデータのセットからサンプルを選択することを含む、請求項1に記載の方法。
【請求項5】
前記ユーザ入力は、セマンティック検索、類似サンプルの選択、または前記アノテーションなしデータの視覚マップ上の選択のうちの1つまたは複数を含む、請求項4に記載の方法。
【請求項6】
前記自動サンプラ選択は、進行過程内の複数のサンプラのうちの1つからのものである、請求項4に記載の方法。
【請求項7】
前記複数のサンプラのそれぞれは、異なるサンプリングアルゴリズムを使用する、請求項6に記載の方法。
【請求項8】
前記それぞれのサンプリングアルゴリズムは、密度サンプリングアルゴリズム、エントロピーサンプリングアルゴリズム、推定誤差低減サンプリングアルゴリズム、網羅的なサンプリングアルゴリズム、フラグ付き予測アルゴリズム、ハードネガティブマイニングサンプリングアルゴリズム、高信頼度サンプリングアルゴリズム、線形サンプリングアルゴリズム、マップ可視化サンプリングアルゴリズム、メタデータ検索サンプリングアルゴリズム、最小マージンサンプリングアルゴリズム、クエリバイコミッティサンプリングアルゴリズム、ランダムサンプリングアルゴリズム、レビューサンプリングアルゴリズム、検索サンプリングアルゴリズム、類似性サンプリングアルゴリズム、前記ユーザ入力がサンプルをスキップするものであったサンプルのサンプリングのタイプのアルゴリズム、層化サンプリングアルゴリズム、最も信頼性のあるサンプルのアルゴリズム、または最も不確実なサンプルのアルゴリズムから選択される、請求項7に記載の方法。
【請求項9】
前記進行過程は、前記複数のサンプラのうちのサンプラ間で連続的に変更されることを含む、請求項7に記載の方法。
【請求項10】
前記複数のサンプラの各サンプラは、前記進行過程における前または次のサンプラのいずれに移動するかを決定する結果の期待分布を有する、請求項9に記載の方法。
【請求項11】
モデル予測が誤っている所定数のサンプルアノテーションを受信すると、前記進行過程はサンプラ間で、前記進行過程における前のサンプラに変更される、請求項10に記載の方法。
【請求項12】
モデル予測が一致する所定数のサンプルアノテーションを受信すると、前記進行過程はサンプラ間で、前記進行過程における次のサンプラに変更される、請求項10に記載の方法。
【請求項13】
前記機械学習モデルを構築することは、共有モデルを受信し、中間モデルの重みを前記共有モデルの重みに初期化し、異なる学習率で訓練することを含む、請求項1に記載の方法。
【請求項14】
前記アノテーションなしデータのサンプルのアノテーションを要求することは、テストデータのセットの網羅的なアノテーションを要求することを含む、請求項1に記載の方法。
【請求項15】
前記テストデータのセットの前記網羅的なアノテーションは、密度サンプリング、レベルセットツリー、またはランダムサンプリングのうちの1つまたは複数を含む遠距離教師あり学習によって実行される、請求項14に記載の方法。
【請求項16】
前記グラフィカルユーザインターフェース上にデータ品質メトリック及びデータ数量メトリックを提示することをさらに含む、請求項1に記載の方法。
【請求項17】
前記データ数量メトリックは、いくつかの訓練されたサンプル、いくつかの正例、いくつかの負例、またはサンプルのクラスについて訓練されたいくつかのサンプルのうちの1つまたは複数を含む、請求項1に記載の方法。
【請求項18】
前記データ品質メトリックは、正解率、適合率、再現率、またはF1スコアのうちの1つまたは複数を含む、請求項1に記載の方法。
【請求項19】
グラフィカルユーザインターフェース上に、前記アノテーションなしデータのセットのアノテーションにわたる不一致を提示することをさらに含む、請求項1に記載の方法。
【請求項20】
前記機械学習モデルを構築することは、前記機械学習モデルを確立するためのアルゴリズム及び損失関数を選択することを含む、請求項1に記載の方法。
【請求項21】
前記アルゴリズムを選択することは、モデルタイプに基づく、請求項2に記載の方法。
【請求項22】
前記アノテーションなしデータのセットからアノテーションが付けられたアノテーション付き訓練データのセットでモデルを複数回訓練し、実行にわたる品質メトリックの分散を測定することによって、収束をテストすること、をさらに含む、請求項2に記載の方法。
【請求項23】
前記品質メトリックは学習曲線の傾きを含む、請求項2に記載の方法。
【請求項24】
前記機械学習モデルは、所与のモデルタイプ及び前記アルゴリズムに対して選択されたデフォルトのハイパーパラメータを使用して訓練される、請求項2に記載の方法。
【請求項25】
前記ハイパーパラメータは、ランダム選択、グリッド探索、またはベイズ推定法のうちの1つまたは複数を使用して選択される、請求項2に記載の方法。
【請求項26】
ランダムシード、アルゴリズム選択、損失関数、ハイパーパラメータ、データセット分割、データセットハッシュ、またはクラス重みのうちの1つまたは複数が、前記機械学習モデルに対して記憶される、請求項2に記載の方法。
【請求項27】
前記機械学習モデルは、バージョン管理され、切り替えられ、またはロールバックされる、請求項1に記載の方法。
【請求項28】
データドリフトまたはコンセプトドリフトを介してモデル間の変化を監視すること、をさらに含む、請求項1に記載の方法。
【請求項29】
コンセプトドリフトは、前記アノテーション付きデータのセットと前記本番アノテーションとの間でいくつかの変化した予測を定量化することに基づいてモデルを訓練することにより計算される、請求項2に記載の方法。
【請求項30】
データドリフトは、前記アノテーション付きデータのセットと前記本番アノテーションとの間のコーパス統計及び/またはコーパス比較に基づいて測定される、請求項2に記載の方法。
【請求項31】
データドリフトまたはコンセプトドリフトを識別した場合に警告が生成される、請求項2に記載の方法。
【請求項32】
前記データドリフトまたは前記コンセプトドリフトは、経時的なアノテーションなしデータに関するメトリック、または経時的なモデル予測に関するメトリックを含む、請求項3に記載の方法。
【請求項33】
前記機械学習モデルを共有することは、特徴ハッシュ化、暗号ハッシュ化、またはランダムプロジェクションのうちの1つまたは複数を実行することを含む、請求項3に記載の方法。
【請求項34】
前記機械学習モデルを共有することは、前記機械学習モデルの勾配更新を共有することを含む、請求項3に記載の方法。
【請求項35】
前記勾配更新は、計算グラフのレイヤに加算される、請求項3に記載の方法。
【請求項36】
前記機械学習モデルを共有することは、1つまたは複数のモデル資産を共有することを含む、請求項3に記載の方法。
【請求項37】
前記1つまたは複数のモデル資産は、データセットで訓練された単語埋め込み、単語ベクトル、アノテーションのセット、キーワード及びフレーズのリスト、例文のリスト、言語モデル、辞書、ならびに訓練されたモデル、及びモデルアーキテクチャを含む、請求項3に記載の方法。
【請求項38】
前記1つまたは複数のモデル資産は、個人を特定可能な情報がサニタイズされる、請求項3に記載の方法。
【請求項39】
前記進行過程は、シードサンプラからハードネガティブサンプラ、層化サンプラ、不確実性サンプラへと進むことを含む、請求項6に記載の方法。
【請求項40】
サンプルのアノテーションを要求することは、アノテーションフィードバックのためにグラフィカルユーザインターフェース上にユーザに質問を提示することを含む、請求項1に記載の方法。
【請求項41】
前記アノテーションなしデータのサンプルに対して1つまたは複数のアノテーションを予測することをさらに含む、請求項1に記載の方法。
【請求項42】
前記1つまたは複数のアノテーションの前記予測は、前記アノテーションなしデータのサンプルのアノテーションを要求する前である、請求項4に記載の方法。
【請求項43】
前記予測された1つまたは複数のアノテーションをサンプリングスコアに基づいて優先度キューに記憶することをさらに含む、請求項4に記載の方法。
【請求項44】
前記サンプリングスコアは、前記予測された1つまたは複数のアノテーションの信頼度スコアである、請求項4に記載の方法。
【請求項45】
前記予測された1つまたは複数のアノテーションを前記優先度キューに記憶する前に、前記サンプリングスコアが閾値サンプリングスコアより大きいか否かを判定することをさらに含む、請求項4に記載の方法。
【請求項46】
前記閾値サンプリングスコア未満であると判定されたサンプリングスコアを有する予測を破棄することをさらに含む、請求項4に記載の方法。
【請求項47】
前記優先度キューは、所定の最大数の予測を記憶する、請求項4に記載の方法。
【請求項48】
前記予測を前記優先度キューに記憶する前に、前記優先度キューに記憶されたいくつかの予測が前記予測の所定の最大数未満であると判定することをさらに含む、請求項4に記載の方法。
【請求項49】
前記予測を前記優先度キューに記憶する前に、前記サンプリングスコアが、前記優先度キュー内の少なくとも1つの以前に記憶された予測よりも大きいと判定することをさらに含む、請求項4に記載の方法。
【請求項50】
最も低いサンプリングスコアを有する、前記優先度キュー内の以前に記憶された予測を破棄することをさらに含む、請求項4に記載の方法。
【請求項51】
前記アノテーションなしデータのサンプルのアノテーションを要求することは、複数の優先度キューの中から前記優先度キューを選択することを含む、請求項4に記載の方法。
【請求項52】
機械学習モデルのライフサイクルを管理するためのシステムであって、
プロセッサと、
前記プロセッサに結合され、コンピュータ可読命令を記憶する非一時的メモリデバイスであって、前記コンピュータ可読命令は、前記プロセッサより実行された場合に、前記システムに機能を実行させ、前記機能は、
アノテーションなしデータのセットを受信することと、
前記アノテーションなしデータのサンプルのアノテーションを要求して、アノテーション付きデータのセットを生成することと、
前記アノテーション付きデータのセットに基づいて機械学習モデルを構築することと、
前記機械学習モデルをクライアントシステムに配備することであって、前記クライアントシステムにおいて本番アノテーションが生成される、前記配備することと、
生成された前記本番アノテーションを収集し、前記本番アノテーションを組み込んだ新たな機械学習モデルを生成することと、
前記アノテーション付きデータのセットに基づいて構築された前記機械学習モデル、または前記新たな機械学習モデルの一方を選択することと、
を含み、
前記アノテーションなしデータのサンプルのアノテーションを要求することは、前記アノテーションなしデータのセットからサンプルを選択するための複数の選択可能なボタンをグラフィカルユーザインターフェース上に設けることを含み、前記複数の選択可能なボタンの各々は、互いに異なるサンプラの推奨に関連付けられている、前記非一時的メモリデバイスと、を備える、前記システム。
【請求項53】
前記システムによって実行される前記機能は、
適合率、再現率、平均適合率、受信者動作者特性スコア、またはFベータスコアを含む、前記機械学習モデルの1つまたは複数の品質尺度を報告すること、をさらに含む、請求項5に記載のシステム。
【請求項54】
前記システムによって実行される前記機能は、
前記機械学習モデルを第三者と共有すること、をさらに含む、請求項5に記載のシステム。
【請求項55】
サンプルのアノテーションを要求することは、
ユーザ入力または自動サンプラ選択に基づいて、前記アノテーションなしデータのセットからサンプルを選択すること、を含む、請求項5に記載のシステム。
【請求項56】
前記ユーザ入力は、セマンティック検索、類似サンプルの選択、または前記アノテーションなしデータの視覚マップ上の選択のうちの1つまたは複数を含む、請求項5に記載のシステム。
【請求項57】
前記自動サンプラ選択は、進行過程内の複数のサンプラのうちの1つからのものである、請求項5に記載のシステム。
【請求項58】
前記複数のサンプラのそれぞれは、異なるサンプリングアルゴリズムを使用する、請求項5に記載のシステム。
【請求項59】
前記それぞれのサンプリングアルゴリズムは、密度サンプリングアルゴリズム、エントロピーサンプリングアルゴリズム、推定誤差低減サンプリングアルゴリズム、網羅的なサンプリングアルゴリズム、フラグ付き予測アルゴリズム、ハードネガティブマイニングサンプリングアルゴリズム、高信頼度サンプリングアルゴリズム、線形サンプリングアルゴリズム、マップ可視化サンプリングアルゴリズム、メタデータ検索サンプリングアルゴリズム、最小マージンサンプリングアルゴリズム、クエリバイコミッティサンプリングアルゴリズム、ランダムサンプリングアルゴリズム、レビューサンプリングアルゴリズム、検索サンプリングアルゴリズム、類似性サンプリングアルゴリズム、前記ユーザ入力がサンプルをスキップするものであったサンプルのサンプリングのタイプのアルゴリズム、層化サンプリングアルゴリズム、最も信頼性のあるサンプルのアルゴリズム、または最も不確実なサンプルのアルゴリズムから選択される、請求項5に記載のシステム。
【請求項60】
前記進行過程は、前記複数のサンプラのうちのサンプラ間で連続的に変更されることを含む、請求項5に記載のシステム。
【請求項61】
前記複数のサンプラの各サンプラは、前記進行過程における前または次のサンプラのいずれに移動するかを決定する結果の期待分布を有する、請求項6に記載のシステム。
【請求項62】
モデル予測が誤っている所定数のサンプルアノテーションを受信すると、前記進行過程はサンプラ間で、前記進行過程における前のサンプラに変更される、請求項6に記載のシステム。
【請求項63】
モデル予測が一致する所定数のサンプルアノテーションを受信すると、前記進行過程はサンプラ間で、前記進行過程における次のサンプラに変更される、請求項61に記載のシステム。
【請求項64】
前記機械学習モデルを構築することは、共有モデルを受信し、中間モデルの重みを前記共有モデルの重みに初期化し、異なる学習率で訓練することを含む、請求項5に記載のシステム。
【請求項65】
前記アノテーションなしデータのサンプルのアノテーションを要求することは、テストデータのセットの網羅的なアノテーションを要求することを含む、請求項5に記載のシステム。
【請求項66】
前記テストデータのセットの前記網羅的なアノテーションは、密度サンプリング、レベルセットツリー、またはランダムサンプリングのうちの1つまたは複数を含む遠距離教師あり学習によって実行される、請求項6に記載のシステム。
【請求項67】
前記システムによって実行される前記機能は、前記グラフィカルユーザインターフェース上にデータ品質メトリック及びデータ数量メトリックを提示することをさらに含む、請求項52に記載のシステム。
【請求項68】
前記データ数量メトリックは、いくつかの訓練されたサンプル、いくつかの正例、いくつかの負例、またはサンプルのクラスについて訓練されたいくつかのサンプルのうちの1つまたは複数を含む、請求項6に記載のシステム。
【請求項69】
前記データ品質メトリックは、正解率、適合率、再現率、またはF1スコアのうちの1つまたは複数を含む、請求項6に記載のシステム。
【請求項70】
前記システムによって実行される前記機能は、グラフィカルユーザインターフェース上に、前記アノテーションなしデータのセットのアノテーションにわたる不一致を提示することをさらに含む、請求項5に記載のシステム。
【請求項71】
前記機械学習モデルを構築することは、前記機械学習モデルを確立するためのアルゴリズム及び損失関数を選択することを含む、請求項5に記載のシステム。
【請求項72】
前記アルゴリズムを選択することは、モデルタイプに基づく、請求項7に記載のシステム。
【請求項73】
前記システムによって実行される前記機能は、
前記アノテーションなしデータのセットからアノテーションが付けられたアノテーション付き訓練データのセットでモデルを複数回訓練し、実行にわたる品質メトリックの分散を測定することによって、収束をテストすること、をさらに含む、請求項7に記載のシステム。
【請求項74】
前記品質メトリックは学習曲線の傾きを含む、請求項73に記載のシステム。
【請求項75】
前記機械学習モデルは、所与のモデルタイプ及び前記アルゴリズムに対して選択されたデフォルトのハイパーパラメータを使用して訓練される、請求項7に記載のシステム。
【請求項76】
前記ハイパーパラメータは、ランダム選択、グリッド探索、またはベイズ推定法のうちの1つまたは複数を使用して選択される、請求項7に記載のシステム。
【請求項77】
ランダムシード、アルゴリズム選択、損失関数、ハイパーパラメータ、データセット分割、データセットハッシュ、またはクラス重みのうちの1つまたは複数が、前記機械学習モデルに対して記憶される、請求項7記載のシステム。
【請求項78】
前記機械学習モデルは、バージョン管理され、切り替えられ、またはロールバックされる、請求項5に記載のシステム。
【請求項79】
前記システムによって実行される前記機能は、
データドリフトまたはコンセプトドリフトを介してモデル間の変化を監視すること、をさらに含む、請求項5に記載のシステム。
【請求項80】
コンセプトドリフトは、前記アノテーション付きデータのセットと前記本番アノテーションとの間でいくつかの変化した予測を定量化することに基づいてモデルを訓練することにより計算される、請求項79に記載のシステム。
【請求項81】
データドリフトは、前記アノテーション付きデータのセットと前記本番アノテーションとの間のコーパス統計及び/またはコーパス比較に基づいて測定される、請求項79に記載のシステム。
【請求項82】
データドリフトまたはコンセプトドリフトを識別した場合に警告が生成される、請求項79に記載のシステム。
【請求項83】
前記データドリフトまたは前記コンセプトドリフトは、経時的なアノテーションなしデータに関するメトリック、または経時的なモデル予測に関するメトリックを含む、請求項82に記載のシステム。
【請求項84】
前記機械学習モデルを共有することは、特徴ハッシュ化、暗号ハッシュ化、またはランダムプロジェクションのうちの1つまたは複数を実行することを含む、請求項5に記載のシステム。
【請求項85】
前記機械学習モデルを共有することは、前記機械学習モデルの勾配更新を共有することを含む、請求項5に記載のシステム。
【請求項86】
前記勾配更新は、計算グラフのレイヤに加算される、請求項8に記載のシステム。
【請求項87】
前記機械学習モデルを共有することは、1つまたは複数のモデル資産を共有することを含む、請求項5に記載のシステム。
【請求項88】
前記1つまたは複数のモデル資産は、データセットで訓練された単語埋め込み、単語ベクトル、アノテーションのセット、キーワード及びフレーズのリスト、例文のリスト、言語モデル、辞書、ならびに訓練されたモデル、及びモデルアーキテクチャを含む、請求項8に記載のシステム。
【請求項89】
前記1つまたは複数のモデル資産は、個人を特定可能な情報がサニタイズされる、請求項88に記載のシステム。
【請求項90】
前記進行過程は、シードサンプラからハードネガティブサンプラ、層化サンプラ、不確実性サンプラへと進むことを含む、請求項5に記載のシステム。
【請求項91】
サンプルのアノテーションを要求することは、アノテーションフィードバックのためにグラフィカルユーザインターフェース上にユーザに質問を提示することを含む、請求項53に記載のシステム。
【請求項92】
前記アノテーションなしデータのサンプルに対して1つまたは複数のアノテーションを予測することをさらに含む、請求項5に記載のシステム。
【請求項93】
前記1つまたは複数のアノテーションの前記予測は、前記アノテーションなしデータのサンプルのアノテーションを要求する前である、請求項9に記載のシステム。
【請求項94】
前記システムによって実行される前記機能は、前記予測された1つまたは複数のアノテーションをサンプリングスコアに基づいて優先度キューに記憶することをさらに含む、請求項9に記載のシステム。
【請求項95】
前記サンプリングスコアは、前記予測された1つまたは複数のアノテーションの信頼度スコアである、請求項9に記載のシステム。
【請求項96】
前記システムによって実行される前記機能は、前記予測された1つまたは複数のアノテーションを前記優先度キューに記憶する前に、前記サンプリングスコアが閾値サンプリングスコアより大きいか否かを判定することをさらに含む、請求項9に記載のシステム。
【請求項97】
前記システムによって実行される前記機能は、前記閾値サンプリングスコア未満であると判定されたサンプリングスコアを有する予測を破棄することをさらに含む、請求項9に記載のシステム。
【請求項98】
前記優先度キューは、所定の最大数の予測を記憶する、請求項9に記載のシステム。
【請求項99】
前記システムによって実行される前記機能は、前記予測を前記優先度キューに記憶する前に、前記優先度キューに記憶されたいくつかの予測が前記予測の所定の最大数未満であると判定することをさらに含む、請求項94に記載のシステム。
【請求項100】
前記システムによって実行される前記機能は、前記予測を前記優先度キューに記憶する前に、前記サンプリングスコアが、前記優先度キュー内の少なくとも1つの以前に記憶された予測よりも大きいと判定することをさらに含む、請求項9に記載のシステム。
【請求項101】
前記システムによって実行される前記機能は、最も低いサンプリングスコアを有する、前記優先度キュー内の以前に記憶された予測を破棄することをさらに含む、請求項9に記載のシステム。
【請求項102】
前記アノテーションなしデータのサンプルのアノテーションを要求することは、複数の優先度キューの中から前記優先度キューを選択することを含む、請求項9に記載のシステム。
【発明の詳細な説明】
【発明の詳細な説明】
【0001】
[技術分野]
[関連出願の相互参照]
本出願は、2017年5月14日に出願された米国仮特許出願第62/505,936号の優先権及び利益を主張し、その全体が引用により本明細書に組み込まれている。
[背景技術]
【0002】
従来の機械学習技術は、データアノテーション、データ探索、及びモデル作成の容易化に個別に対処する。データアノテーション用の一部のインターフェースでは、ユーザは関心のあるテキストの範囲を強調表示し、強調表示したテキストにアノテーションを割り当ててもよい。あるいは、ユーザは関心のある画像の部分を強調表示し、画像の強調表示した部分にアノテーションを割り当ててもよい。多くの場合、これらの手法では、データの手動の「総当たりの(brute force)」アノテーションが用いられており、ユーザがデータを順番に確認していく必要があるので、機械学習モデルの生成にかなりのコストと時間の遅れとが生じる。さらに、このような既存のツールでは、データの前処理、特徴抽出、及び実行する可視化のタイプに関する広範な知識が必要になる場合がある。
【0003】
一部の従来手法の欠点、短所、及び不利点の中でもとりわけ、以下の問題がある場合がある。多くの場合、アノテーション済みのデータが必要であり、そのようなデータが存在しない場合、スタート地点が提供されない。非構造化データを対象としていないことが多い。多くの場合、モデルの訓練には時間がかかり、かなりのハードウェアリソースを必要とする。不均衡なデータ(すなわち、所望の結果の発生率が低い、たとえば、確率が10%未満であるデータ)での作業に効果的に対処できない場合がある。統合されたワークフローを提供しない場合がある。
[発明の概要]
【0004】
本開示は、機械学習モデルを迅速に構築し、管理し、共有するためのシステム及び方法に関する。本開示は、機械学習モデルのライフサイクルを管理する方法を提供する。一部の態様では、この方法は、アノテーションなしデータのセットを受信することと、アノテーションなしデータのサンプルのアノテーションを要求して、アノテーション付きデータのセットを生成することと、アノテーション付きデータのセットに基づいて機械学習モデルを構築することと、機械学習モデルをクライアントシステムに配備することであって、クライアントシステムにおいて本番アノテーション(production annotation)が生成される、配備することと、生成された本番アノテーションを収集し、本番アノテーションを組み込んだ新たな機械学習モデルを生成することと、アノテーション付きデータのセットに基づいて構築された機械学習モデル、または新たな機械学習モデルの一方を選択することと、を含む。
【0005】
本開示の上記態様のいずれかによれば、この方法は、適合率、再現率、平均適合率、受信者動作者特性スコア、またはFベータスコアを含む、機械学習モデルの1つまたは複数の品質尺度を報告することをさらに含むことができる。
【0006】
本開示の上記態様のいずれかによれば、この方法は、モデルを第三者と共有することをさらに含むことができる。
【0007】
本開示の上記態様のいずれかによれば、この方法は、モデルを第三者と共有することをさらに含むことができる。
【0008】
本開示の上記態様のいずれかによれば、サンプルのアノテーションを要求することは、ユーザ入力または自動サンプラ選択に基づいて、アノテーションなしデータのセットからサンプルを選択することを含むことができる。
【0009】
本開示の上記態様のいずれかによれば、ユーザ入力は、セマンティック検索、類似サンプルの選択、またはアノテーションなしデータの視覚マップ上の選択のうちの1つまたは複数を含むことができる。
【0010】
本開示の上記態様のいずれかによれば、自動サンプラ選択は、進行過程内の複数のサンプラのうちの1つからのものとすることができる。
【0011】
本開示の上記態様のいずれかによれば、複数のサンプラのそれぞれは、異なるサンプリングアルゴリズムを使用することができる。
【0012】
本開示の上記態様のいずれかによれば、それぞれのサンプリングアルゴリズムは、密度サンプリングアルゴリズム、エントロピーサンプリングアルゴリズム、推定誤差低減サンプリングアルゴリズム、網羅的なサンプリングアルゴリズム、フラグ付き予測アルゴリズム、ハードネガティブマイニングサンプリングアルゴリズム、高信頼度サンプリングアルゴリズム、線形サンプリングアルゴリズム、マップ可視化サンプリングアルゴリズム、メタデータ検索サンプリングアルゴリズム、最小マージンサンプリングアルゴリズム、クエリバイコミッティ(query by committee)サンプリングアルゴリズム、ランダムサンプリングアルゴリズム、レビューサンプリングアルゴリズム、検索サンプリングアルゴリズム、類似性サンプリングアルゴリズム、入力がサンプルをスキップするものであったサンプルのサンプリングのタイプのアルゴリズム、層化サンプリングアルゴリズム、最も信頼性のあるサンプルのアルゴリズム、または最も不確実なサンプルのアルゴリズムから選択され得る。
【0013】
本開示の上記態様のいずれかによれば、進行過程は、複数のサンプラのうちのサンプラ間で連続的に変更されることを含むことができる。
【0014】
本開示の上記態様のいずれかによれば、複数のサンプラの各サンプラは、進行過程における前または次のサンプラのいずれに移動するかを決定する結果の期待分布を有することができる。
【0015】
本開示の上記態様のいずれかによれば、モデル予測が誤っている所定数のサンプルアノテーションを受信すると、進行過程はサンプラ間で、進行過程における前のサンプラに変更され得る。
【0016】
本開示の上記態様のいずれかによれば、モデル予測が一致する所定数のサンプルアノテーションを受信すると、進行過程はサンプラ間で、進行過程における次のサンプラに変更され得る。
【0017】
本開示の上記態様のいずれかによれば、機械学習モデルを構築することは、共有モデルを受信し、中間モデルの重みを共有モデルの重みに初期化し、異なる学習率で訓練することを含むことができる。
【0018】
本開示の上記態様のいずれかによれば、アノテーションなしデータのサンプルのアノテーションを要求することは、テストデータのセットの網羅的なアノテーションを要求することを含むことができる。
【0019】
本開示の上記態様のいずれかによれば、テストデータのセットの網羅的なアノテーションは、密度サンプリング、レベルセットツリー、またはランダムサンプリングのうちの1つまたは複数を含む遠距離教師あり学習(distant supervision)によって実行され得る。
【0020】
本開示の上記態様のいずれかによれば、アノテーションなしデータのサンプルのアノテーションを要求することは、アノテーションなしデータのセットからサンプルを選択するための、複数のサンプラからのサンプラの推奨をグラフィカルユーザインターフェース上に提示することを含むことができる。
【0021】
本開示の上記態様のいずれかによれば、この方法は、グラフィカルユーザインターフェース上にデータ品質メトリック及びデータ数量メトリックを提示することをさらに含むことができる。
【0022】
本開示の上記態様のいずれかによれば、データ数量メトリックは、いくつかの訓練されたサンプル、いくつかの正例、いくつかの負例、またはサンプルのクラスについて訓練されたいくつかのサンプルのうちの1つまたは複数を含むことができる。
【0023】
本開示の上記態様のいずれかによれば、データ品質メトリックは、正解率、適合率、再現率、またはF1スコアのうちの1つまたは複数を含むことができる。
【0024】
本開示の上記態様のいずれかによれば、この方法は、グラフィカルユーザインターフェース上に、アノテーションなしデータのセットのアノテーションにわたる不一致を提示することをさらに含むことができる。
【0025】
本開示の上記態様のいずれかによれば、機械学習モデルを構築することは、機械学習モデルを確立するためのアルゴリズム及び損失関数を選択することを含むことができる。
【0026】
本開示の上記態様のいずれかによれば、アルゴリズムを選択することは、モデルタイプに基づく。
【0027】
本開示の上記態様のいずれかによれば、この方法は、アノテーションなしデータのセットからアノテーションが付けられたアノテーション付き訓練データのセットでモデルを複数回訓練し、実行にわたる品質メトリックの分散を測定することによって、収束をテストすることをさらに含むことができる。
【0028】
本開示の上記態様のいずれかによれば、品質メトリックは学習曲線の傾きを含むことができる。
【0029】
本開示の上記態様のいずれかによれば、モデルは、所与のモデルタイプ及びアルゴリズムに対して選択されたデフォルトのハイパーパラメータを使用して訓練され得る。
【0030】
本開示の上記態様のいずれかによれば、ハイパーパラメータは、ランダム選択、グリッド探索、またはベイズ推定法のうちの1つまたは複数を使用して選択され得る。
【0031】
本開示の上記態様のいずれかによれば、ランダムシード、アルゴリズム選択、損失関数、ハイパーパラメータ、データセット分割、データセットハッシュ、またはクラス重みのうちの1つまたは複数が、モデルに対して記憶され得る。
【0032】
本開示の上記態様のいずれかによれば、機械学習モデルは、バージョン管理され、切り替えられ、またはロールバックされ得る。
【0033】
本開示の上記態様のいずれかによれば、この方法は、データドリフトまたはコンセプトドリフトを介してモデル間の変化を監視することをさらに含むことができる。
【0034】
本開示の上記態様のいずれかによれば、コンセプトドリフトは、アノテーション付きデータのセットと本番アノテーションとの間で変化したいくつかの予測を定量化することに基づいてモデルを訓練することにより計算され得る。
【0035】
本開示の上記態様のいずれかによれば、データドリフトは、アノテーション付きデータのセットと本番アノテーションとの間のコーパス統計及び/またはコーパス比較に基づいて測定され得る。
【0036】
本開示の上記態様のいずれかによれば、データドリフトまたはコンセプトドリフトを識別した場合に警告が生成され得る。
【0037】
本開示の上記態様のいずれかによれば、データドリフトまたはコンセプトドリフトは、経時的なアノテーションなしデータに関するメトリック、または経時的なモデル予測に関するメトリックを含むことができる。
【0038】
本開示の上記態様のいずれかによれば、モデルを共有することは、特徴ハッシュ化、暗号ハッシュ化、またはランダムプロジェクションのうちの1つまたは複数を実行することを含むことができる。
【0039】
本開示の上記態様のいずれかによれば、モデルを共有することは、モデルの勾配更新を共有することを含むことができる。
【0040】
本開示の上記態様のいずれかによれば、勾配更新は、計算グラフのレイヤに加算され得る。
【0041】
本開示の上記態様のいずれかによれば、モデルを共有することは、1つまたは複数のモデル資産を共有することを含むことができる。
【0042】
本開示の上記態様のいずれかによれば、1つまたは複数のモデル資産は、データセットで訓練された単語埋め込み(word embedding)、単語ベクトル、アノテーションのセット、キーワード及びフレーズのリスト、例文のリスト、言語モデル、辞書、ならびに訓練されたモデル、及びモデルアーキテクチャを含むことができる。
【0043】
本開示の上記態様のいずれかによれば、1つまたは複数のモデル資産は、個人を特定可能な情報がサニタイズされ得る。
【0044】
本開示の上記態様のいずれかによれば、進行過程は、シードサンプラからハードネガティブサンプラ、層化サンプラ、不確実性サンプラへと進むことを含むことができる。
【0045】
本開示の上記態様のいずれかによれば、サンプルのアノテーションを要求することは、アノテーションフィードバックのためにグラフィカルユーザインターフェース上にユーザに質問を提示することを含むことができる。
【0046】
本開示の上記態様のいずれかによれば、この方法は、アノテーションなしデータのサンプルに対して1つまたは複数のアノテーションを予測することをさらに含むことができる。
【0047】
本開示の上記態様のいずれかによれば、1つまたは複数のアノテーションの予測は、アノテーションなしデータのサンプルのアノテーションを要求する前とすることができる。
【0048】
本開示の上記態様のいずれかによれば、この方法は、予測された1つまたは複数のアノテーションをサンプリングスコアに基づいて優先度キューに記憶することをさらに含むことができる。
【0049】
本開示の上記態様のいずれかによれば、サンプリングスコアは、予測された1つまたは複数のアノテーションの信頼度スコアとすることができる。
【0050】
本開示の上記態様のいずれかによれば、予測された1つまたは複数のアノテーションを優先度キューに記憶する前に、この方法によれば、サンプリングスコアが閾値サンプリングスコアより大きいか否かを判定することができる。
【0051】
本開示の上記態様のいずれかによれば、この方法は、閾値サンプリングスコア未満であると判定されたサンプリングスコアを有する予測を破棄することをさらに含むことができる。
【0052】
本開示の上記態様のいずれかによれば、優先度キューは、所定の最大数の予測を記憶することができる。
【0053】
本開示の上記態様のいずれかによれば、この方法は、予測を優先度キューに記憶する前に、優先度キューに記憶されたいくつかの予測が予測の所定の最大数未満であると判定することをさらに含むことができる。
【0054】
本開示の上記態様のいずれかによれば、この方法は、予測を優先度キューに記憶する前に、サンプリングスコアが、優先度キュー内の少なくとも1つの以前に記憶された予測よりも大きいと判定することをさらに含むことができる。
【0055】
本開示の上記態様のいずれかによれば、この方法は、最も低いサンプリングスコアを有する、優先度キュー内の以前に記憶された予測を破棄することをさらに含むことができる。
【0056】
本開示の上記態様のいずれかによれば、アノテーションなしデータのサンプルのアノテーションを要求することは、複数の優先度キューの中から優先度キューを選択することを含むことができる。
【0057】
本開示は、機械学習モデルのライフサイクルを管理するためのシステムをさらに提供する。一部の態様では、システムは、プロセッサと、プロセッサに結合され、コンピュータ可読命令を記憶する非一時的メモリデバイスであって、コンピュータ可読命令は、プロセッサより実行された場合に、システムに機能を実行させ、機能は、アノテーションなしデータのセットを受信することと、アノテーションなしデータのサンプルのアノテーションを要求して、アノテーション付きデータのセットを生成することと、アノテーション付きデータのセットに基づいて機械学習モデルを構築することと、機械学習モデルをクライアントシステムに配備することであって、クライアントシステムにおいて本番アノテーションが生成される、配備することと、生成された本番アノテーションを収集し、本番アノテーションを組み込んだ新たな機械学習モデルを生成することと、アノテーション付きデータのセットに基づいて構築された機械学習モデル、または新たな機械学習モデルの一方を選択することと、を含む、非一時的メモリデバイスと、を備える。
【0058】
本開示の上記態様のいずれかによれば、システムによって実行される機能は、適合率、再現率、平均適合率、受信者動作者特性スコア、またはFベータスコアを含む、機械学習モデルの1つまたは複数の品質尺度を報告することをさらに含むことができる。
【0059】
本開示の上記態様のいずれかによれば、システムによって実行される機能は、モデルを第三者と共有することをさらに含むことができる。
【0060】
本開示の上記態様のいずれかによれば、システムによって実行される機能は、モデルを第三者と共有することをさらに含むことができる。
【0061】
本開示の上記態様のいずれかによれば、サンプルのアノテーションを要求することは、ユーザ入力または自動サンプラ選択に基づいて、アノテーションなしデータのセットからサンプルを選択することを含むことができる。
【0062】
本開示の上記態様のいずれかによれば、ユーザ入力は、セマンティック検索、類似サンプルの選択、またはアノテーションなしデータの視覚マップ上の選択のうちの1つまたは複数を含むことができる。
【0063】
本開示の上記態様のいずれかによれば、自動サンプラ選択は、進行過程内の複数のサンプラのうちの1つからのものとすることができる。
【0064】
本開示の上記態様のいずれかによれば、複数のサンプラのそれぞれは、異なるサンプリングアルゴリズムを使用することができる。
【0065】
本開示の上記態様のいずれかによれば、それぞれのサンプリングアルゴリズムは、密度サンプリングアルゴリズム、エントロピーサンプリングアルゴリズム、推定誤差低減サンプリングアルゴリズム、網羅的なサンプリングアルゴリズム、フラグ付き予測アルゴリズム、ハードネガティブマイニングサンプリングアルゴリズム、高信頼度サンプリングアルゴリズム、線形サンプリングアルゴリズム、マップ可視化サンプリングアルゴリズム、メタデータ検索サンプリングアルゴリズム、最小マージンサンプリングアルゴリズム、クエリバイコミッティサンプリングアルゴリズム、ランダムサンプリングアルゴリズム、レビューサンプリングアルゴリズム、検索サンプリングアルゴリズム、類似性サンプリングアルゴリズム、入力がサンプルをスキップするものであったサンプルのサンプリングのタイプのアルゴリズム、層化サンプリングアルゴリズム、最も信頼性のあるサンプルのアルゴリズム、または最も不確実なサンプルのアルゴリズムから選択され得る。
【0066】
本開示の上記態様のいずれかによれば、進行過程は、複数のサンプラのうちのサンプラ間で連続的に変更されることを含むことができる。
【0067】
本開示の上記態様のいずれかによれば、複数のサンプラの各サンプラは、進行過程における前または次のサンプラのいずれに移動するかを決定する結果の期待分布を有することができる。
【0068】
本開示の上記態様のいずれかによれば、モデル予測が誤っている所定数のサンプルアノテーションを受信すると、進行過程はサンプラ間で、進行過程における前のサンプラに変更され得る。
【0069】
本開示の上記態様のいずれかによれば、モデル予測が一致する所定数のサンプルアノテーションを受信すると、進行過程はサンプラ間で、進行過程における次のサンプラに変更され得る。
【0070】
本開示の上記態様のいずれかによれば、機械学習モデルを構築することは、共有モデルを受信し、中間モデルの重みを共有モデルの重みに初期化し、異なる学習率で訓練することを含むことができる。
【0071】
本開示の上記態様のいずれかによれば、アノテーションなしデータのサンプルのアノテーションを要求することは、テストデータのセットの網羅的なアノテーションを要求することを含むことができる。
【0072】
本開示の上記態様のいずれかによれば、テストデータのセットの網羅的なアノテーションは、密度サンプリング、レベルセットツリー、またはランダムサンプリングのうちの1つまたは複数を含む遠距離教師あり学習によって実行され得る。
【0073】
本開示の上記態様のいずれかによれば、アノテーションなしデータのサンプルのアノテーションを要求することは、アノテーションなしデータのセットからサンプルを選択するための、複数のサンプラからのサンプラの推奨をグラフィカルユーザインターフェース上に提示することを含むことができる。
【0074】
本開示の上記態様のいずれかによれば、システムによって実行される機能は、グラフィカルユーザインターフェース上にデータ品質メトリック及びデータ数量メトリックを提示することをさらに含むことができる。
【0075】
本開示の上記態様のいずれかによれば、データ数量メトリックは、訓練されたいくつかのサンプル、いくつかの正例、いくつかの負例、またはサンプルのクラスについて訓練されたいくつかのサンプルのうちの1つまたは複数を含むことができる。
【0076】
本開示の上記態様のいずれかによれば、データ品質メトリックは、正解率、適合率、再現率、またはF1スコアのうちの1つまたは複数を含むことができる。
【0077】
本開示の上記態様のいずれかによれば、システムによって実行される機能は、グラフィカルユーザインターフェース上に、アノテーションなしデータのセットのアノテーションにわたる不一致を提示することをさらに含むことができる。
【0078】
本開示の上記態様のいずれかによれば、機械学習モデルを構築することは、機械学習モデルを確立するためのアルゴリズム及び損失関数を選択することを含むことができる。
【0079】
本開示の上記態様のいずれかによれば、アルゴリズムを選択することは、モデルタイプに基づく。
【0080】
本開示の上記態様のいずれかによれば、システムによって実行される機能は、アノテーションなしデータのセットからアノテーションが付けられたアノテーション付き訓練データのセットでモデルを複数回訓練し、実行にわたる品質メトリックの分散を測定することによって、収束をテストすることをさらに含むことができる。
【0081】
本開示の上記態様のいずれかによれば、品質メトリックは学習曲線の傾きを含むことができる。
【0082】
本開示の上記態様のいずれかによれば、モデルは、所与のモデルタイプ及びアルゴリズムに対して選択されたデフォルトのハイパーパラメータを使用して訓練され得る。
【0083】
本開示の上記態様のいずれかによれば、ハイパーパラメータは、ランダム選択、グリッド探索、またはベイズ推定法のうちの1つまたは複数を使用して選択され得る。
【0084】
本開示の上記態様のいずれかによれば、ランダムシード、アルゴリズム選択、損失関数、ハイパーパラメータ、データセット分割、データセットハッシュ、またはクラス重みのうちの1つまたは複数が、モデルに対して記憶され得る。
【0085】
本開示の上記態様のいずれかによれば、機械学習モデルは、バージョン管理され、切り替えられ、またはロールバックされ得る。
【0086】
本開示の上記態様のいずれかによれば、システムによって実行される機能は、データドリフトまたはコンセプトドリフトを介してモデル間の変化を監視することをさらに含むことができる。
【0087】
本開示の上記態様のいずれかによれば、コンセプトドリフトは、アノテーション付きデータのセットと本番アノテーションとの間で変化したいくつかの予測を定量化することに基づいてモデルを訓練することにより計算され得る。
【0088】
本開示の上記態様のいずれかによれば、データドリフトは、アノテーション付きデータのセットと本番アノテーションとの間のコーパス統計及び/またはコーパス比較に基づいて測定され得る。
【0089】
本開示の上記態様のいずれかによれば、データドリフトまたはコンセプトドリフトを識別した場合に警告が生成され得る。
【0090】
本開示の上記態様のいずれかによれば、データドリフトまたはコンセプトドリフトは、経時的なアノテーションなしデータに関するメトリック、または経時的なモデル予測に関するメトリックを含むことができる。
【0091】
本開示の上記態様のいずれかによれば、モデルを共有することは、特徴ハッシュ化、暗号ハッシュ化、またはランダムプロジェクションのうちの1つまたは複数を実行することを含むことができる。
【0092】
本開示の上記態様のいずれかによれば、モデルを共有することは、モデルの勾配更新を共有することを含むことができる。
【0093】
本開示の上記態様のいずれかによれば、勾配更新は、計算グラフのレイヤに加算され得る。
【0094】
本開示の上記態様のいずれかによれば、モデルを共有することは、1つまたは複数のモデル資産を共有することを含むことができる。
【0095】
本開示の上記態様のいずれかによれば、1つまたは複数のモデル資産は、データセットで訓練された単語埋め込み、単語ベクトル、アノテーションのセット、キーワード及びフレーズのリスト、例文のリスト、言語モデル、辞書、ならびに訓練されたモデル、及びモデルアーキテクチャを含むことができる。
【0096】
本開示の上記態様のいずれかによれば、1つまたは複数のモデル資産は、個人を特定可能な情報がサニタイズされ得る。
【0097】
本開示の上記態様のいずれかによれば、進行過程は、シードサンプラからハードネガティブサンプラ、層化サンプラ、不確実性サンプラへと進むことを含むことができる。
【0098】
本開示の上記態様のいずれかによれば、サンプルのアノテーションを要求することは、アノテーションフィードバックのためにグラフィカルユーザインターフェース上にユーザに質問を提示することを含むことができる。
【0099】
本開示の上記態様のいずれかによれば、システムによって実行される機能は、アノテーションなしデータのサンプルに対して1つまたは複数のアノテーションを予測することをさらに含むことができる。
【0100】
本開示の上記態様のいずれかによれば、1つまたは複数のアノテーションの予測は、アノテーションなしデータのサンプルのアノテーションを要求する前とすることができる。
【0101】
本開示の上記態様のいずれかによれば、システムによって実行される機能は、予測された1つまたは複数のアノテーションをサンプリングスコアに基づいて優先度キューに記憶することをさらに含むことができる。
【0102】
本開示の上記態様のいずれかによれば、サンプリングスコアは、予測された1つまたは複数のアノテーションの信頼度スコアとすることができる。
【0103】
本開示の上記態様のいずれかによれば、予測された1つまたは複数のアノテーションを優先度キューに記憶する前に、この方法によれば、サンプリングスコアが閾値サンプリングスコアより大きいか否かを判定することができる。
【0104】
本開示の上記態様のいずれかによれば、システムによって実行される機能は、閾値サンプリングスコア未満であると判定されたサンプリングスコアを有する予測を破棄することをさらに含むことができる。
【0105】
本開示の上記態様のいずれかによれば、優先度キューは、所定の最大数の予測を記憶することができる。
【0106】
本開示の上記態様のいずれかによれば、システムによって実行される機能は、予測を優先度キューに記憶する前に、優先度キューに記憶されたいくつかの予測が予測の所定の最大数未満であると判定することをさらに含むことができる。
【0107】
本開示の上記態様のいずれかによれば、システムによって実行される機能は、予測を優先度キューに記憶する前に、サンプリングスコアが、優先度キュー内の少なくとも1つの以前に記憶された予測よりも大きいと判定することをさらに含むことができる。
【0108】
本開示の上記態様のいずれかによれば、システムによって実行される機能は、最も低いサンプリングスコアを有する、優先度キュー内の以前に記憶された予測を破棄することをさらに含むことができる。
【0109】
本開示の上記態様のいずれかによれば、アノテーションなしデータのサンプルのアノテーションを要求することは、複数の優先度キューの中から優先度キューを選択することを含むことができる。
【0110】
これら及び他の特徴は、添付の図面及び特許請求の範囲と併せて以下の詳細な説明からより明確に理解されよう。
【0111】
本開示をより完全に理解するために、ここで以下の簡単な説明を、添付の図面及び詳細な説明に関連して参照し、同様の参照番号は同様の部分を表す。必ずしも縮尺通りに描いていない添付図面は、本開示のいくつかの実施形態を示しており、本説明と共に、実施形態による開示した技術の原理を説明するのに役立つ。
【図面の簡単な説明】
【0112】
図1】開示した技術の例示的な実施形態による、機械学習モデルを作成するための情報スタックを示す。
図2】開示した技術の例示的な実施形態による、データアノテーション及び機械学習モデルの作成を容易にするコンピュータアーキテクチャを示す。
図3】開示した技術の例示的な実施形態による、データアノテーション及びモデル構築のための統合されたワークフロープロセスのフロー図を示す。
図4】開示した技術の例示的な実施形態による、訓練データのセットにアノテーションを付けるためのアノテーションプロセスのフロー図を示す。
図5】開示した技術の例示的な実施形態による、アノテーションなしデータのアノテーションを容易にするサンプリング技法の進行過程のシーケンス図を示す。
図6】開示した技術の例示的な実施形態による、データにアノテーションを付けるための計算アーキテクチャのブロック図である。
図7】開示した技術の例示的な実施形態による、予測を高速化し、ハードウェア要件を低減するために使用される優先度キュー方法を示すブロック図である。
図8】開示した技術の例示的な実施形態による、テストデータのセットにアノテーションを付けるためのアノテーションプロセスのフロー図である。
図9】開示した技術の例示的な実施形態による、新たな機械学習モデルの作成を開始するための例示的なグラフィカルユーザインターフェースを示す。
図10】開示した技術の例示的な実施形態による、ユーザが複数のデータセットを管理できる方法を示す例示的なグラフィカルユーザインターフェースを示す。
図11】開示した技術の例示的な実施形態による、ユーザが複数のアノテーションのセットを管理できる方法を示す例示的なグラフィカルユーザインターフェースを示す。
図12】開示した技術の例示的な実施形態による、様々なアノテーションのセットの一実施例を示す。
図13】開示した技術の例示的な実施形態による、ユーザがアノテーションをセットアップするのに使用できる構成オプションを示す例示的なグラフィカルユーザインターフェースを示す。
図14】開示した技術の例示的な実施形態による、キーワード及びフレーズのリストを入力及び管理する方法を示す例示的なグラフィカルユーザインターフェースを示す。
図15】開示した技術の例示的な実施形態による、ユーザが関連する単語及びフレーズを発見及び管理できる方法を示す例示的なグラフィカルユーザインターフェースを示す。
図16】開示した技術の例示的な実施形態による、単語リスト管理へのオントロジーの組み込みを示す例示的なグラフィカルユーザインターフェースを示す。
図17】開示した技術の例示的な実施形態による、例文のリストを入力及び管理する方法を示す例示的なグラフィカルユーザインターフェースを示す。
図18】開示した技術の例示的な実施形態による、アノテーションプロセス、アノテーションプロセスを管理するためのツール、及び進捗状況に関するフィードバックを示す例示的なグラフィカルユーザインターフェースを示す。
図19】開示した技術の例示的な実施形態による、ユーザが自身の反応の強さをスコア付けすることを可能にするアノテーションプロセスを示す例示的なグラフィカルユーザインターフェースを示す。
図20】開示した技術の例示的な実施形態による、隣接するエントリにアノテーションを付ける機能、ならびにアノテーションに関する色付きのフィードバックを示す例示的なグラフィカルユーザインターフェースを示す。
図21】開示した技術の例示的な実施形態による、複数のタイプの候補サンプリングを示すドロップダウンを示す例示的なグラフィカルユーザインターフェースを示す。
図22】開示した技術の例示的な実施形態による、データにわたる一回限りのキーワード検索を示す例示的なグラフィカルユーザインターフェースを示す。
図23】開示した技術の例示的な実施形態による、ユーザが自身のデータを視覚的に探索することを可能にし得るデータマップを示す例示的なグラフィカルユーザインターフェースを示す。
図24】開示した技術の例示的な実施形態による、いかにして失敗状態を処理することができ、情報がユーザに返されるかを示す例示的なグラフィカルユーザインターフェースを示す。
図25】開示した技術の例示的な実施形態による、以前にアノテーションが付けられたエントリのリスト、及びそれらのエントリの管理方法を示す例示的なグラフィカルユーザインターフェースを示す。
図26】開示した技術の例示的な実施形態による例示的なコンピュータシステムを示す。
【発明を実施するための形態】
【0113】
1つまたは複数の実施形態の例示的な実施態様を以下に示すが、開示したシステム及び方法は、既知または既存であるかを問わず、任意数の技法を使用して実装し得ることを最初に理解されたい。本開示は、以下で説明する例示的な実施態様、図面、及び技法に一切限定されるべきではなく、添付の特許請求の範囲、ならびにそれらの均等物の全範囲内で修正してもよい。
【0114】
機械学習モデルの作成は、複雑で時間のかかるタスクである場合がある。従来、これには、データの集約、前処理、アノテーション、及び検査、特徴抽出及びベクトル化、ならびにモデルの訓練及び評価が含まれていた。結果として、そのようなモデルを作成する機能は、多くの場合、データサイエンスの専門知識を有する人々による使用に制限されていた。開示した技術の実施形態によって提供される利点及び利益の中でもとりわけ、データサイエンスの広範な知識を有さないユーザが強力なモデルを作成することができると共に、データサイエンティストが自身の仕事をより迅速に実行することが可能になる。
【0115】
開示した技術の様々な実施形態によれば、ユーザは適切なデータソースを接続し、アノテーションプロセスをセットアップし、データにアノテーションを付け、それらのアノテーションから機械学習モデルを構築し、機械学習モデルを配備し、本番のフィードバックを収集してモデルの新たなバージョンに組み込み、モデル及び学習内容を共有することができる。
【0116】
図1に、開示した技術の例示的な実施形態による、機械学習モデルを作成するための情報スタック100を示す。情報スタック100は、アノテーションなしデータ102、アノテーション付きデータ104、分析106、及びモデル108を含む。アノテーションなしデータ102は、データソースからの未処理データを含む。たとえば、アノテーションなしデータ102は、電子メールコミュニケーション、チャットログ、文書ストア、または他のテキストデータのソースのセットを含んでもよい。テキストデータはプレーンテキストファイルからのものでもよく、たとえば、電子メールもしくはチャットを介した電子的コミュニケーション、フラットファイル、または他のタイプの文書ファイル(たとえば、.pdf、.docなど)からのものでもよい。また、アノテーションなしデータ102は、画像ライブラリ、ビデオライブラリ、または他の画像もしくはビデオデータのソースを含んでもよい。また、アノテーションなしデータ102は、電話、ポッドキャスト、及び他の音声データのソースを含んでもよい。アノテーションなしデータ102は、既存のデータストアから提供されてもよく、または任意の所望のフォーマットのアノテーションなしデータのライブストリームを含んでもよい。一部の実施態様では、アノテーションなしデータ102は、ファイルのディレクトリを含んでもよく、グラフィカル形式のデータを含むことができる。他の電子データのソースが使用されてもよい。
【0117】
新たな機械学習モデル108の作成におけるボトルネックは、アノテーションなしデータにアノテーションを付けてアノテーション付きデータ104にすることである。アノテーション付きデータ104は、アノテーション、または本明細書に記載のアプリケーションなどを介してユーザにより提供されるアノテーションと結合された1つまたは複数のデータセットを含むことができる。データサイエンスの専門家を利用するのとは対照的に、あるドメインの主題専門家(subject matter expert)は、本明細書に記載のアノテーションプロセスに参加して、自身の知識を移転しやすくし、機械学習モデル作成プロセスの速度を向上させ、コストを削減してもよい。開示したアノテーションプロセスは、言語に依存せず、ドメインに依存しない方法で実行される。
【0118】
分析106を実行して、モデル108を作成する前に、十分なアノテーションが行われたことを確認することができる。
【0119】
図2に、開示した技術の例示的な実施形態による、データアノテーション及び機械学習モデルの作成を容易にするコンピュータアーキテクチャ200を示す。コンピュータアーキテクチャ200は、本明細書に記載のアノテーションプロセスを実行するアノテーションサーバ202を含む。アノテーションサーバ202は、情報スタック100を内部に記憶するように構成されるデータベース204と通信する。単一のデータベースとして図示しているが、情報スタック100の要素ごとに1つまたは複数のデータベースが使用されてもよい。アノテーションサーバ202は、アノテーションクライアント206からネットワーク208を介してアノテーションなしデータ102を受信して、データベース204に記憶してもよい。アノテーションサーバ202は、1つまたは複数のグラフィカルユーザインターフェースを介してアノテーションクライアント206と対話して、アノテーション付きデータ104の生成を容易にする。1つまたは複数のアノテーション訓練基準による指定通りに、アノテーションなしデータ102に十分にアノテーションが付けられると(たとえば、クラスごとに20個のアノテーション)、アノテーションサーバ202は、1つまたは複数の中間モデルを生成するように構成される。
【0120】
これらの中間モデルはアノテーションなしデータについての予測を生成し、これをネットワーク208を介してアノテーションクライアント206または別のクライアントコンピュータ(図示せず)に通信して、本番アノテーションを容易にしてもよい。クライアントコンピュータ206での通常の本番作業中に、さらなる本番アノテーション付きデータが生成され、本番アノテーションデータベース210に記憶される。たとえば、クライアントコンピュータ206上で新たなデータが入力または操作されると、ベースラインモデルは新たなデータについてのアノテーションの予測を提示し、これは承認されるかまたは修正されて、さらなる本番アノテーション付きデータが生成される。定期的に、本番アノテーションは、アノテーションサーバ202にフィードバックされ、さらなる本番アノテーション付きデータを考慮した更新されたモデルを生成するために使用される。本番アノテーションは、本番アノテーションを含むファイルをインポートするか、またはアノテーションサーバ202上で公開された標準APIを介して、アノテーションサーバ202にフィードバックされてもよい。APIは、攻撃を防ぐためにレート制限されてもよい。
【0121】
図3に、開示した技術の例示的な実施形態による、データアノテーション及びモデル構築のための統合されたワークフロープロセス300のフロー図を示す。302において、アノテーションなしデータ102がアノテーションサーバ202にインポートされて、データベース204に記憶される。
【0122】
304において、アノテーションなしデータ102の探索的データ分析が実行される。これにより、データをアノテーションのために適切にサブセットに層化することが可能になる。たとえば、テキストの場合、探索的データ分析により、ロジスティック回帰などの方法を使用して、外国語の分布、文書タイプ(電子メール、チャット、ポータブルドキュメントフォーマットの文書、ハイパーテキストマークアップ言語など)の分布、ならびにFlesch-Kincaid可読性スコアの分布を特定してもよい。画像データの場合、探索的データ分析により、カラー画像対白黒画像の分布、画像のサイズ及び解像度、ならびに画像内のエントロピーの分布を特定してもよい。これらの分布は、アノテーション用に層化されたサブセットを選択するために使用される。たとえば、ユーザは、2018年4月2日から2018年4月7日までの週のスペイン語のチャットメッセージにアノテーションを付けることを選択してもよい。
【0123】
307において、アノテーションなしデータ102は、事前定義されたまたはユーザ指定のクリーニングパイプラインを使用して前処理される。これは一種の次元削減であって、分析及び関心領域へのセグメンテーションのためにデータを正規化するものである。たとえば、テキストの前処理は、免責事項、意味のないテキスト、または電子メールのインライン返信の削除などのタスクの実行を含んでもよい。テキストデータの場合、これは、テキストをトークン化して、文、段落、または文書に分割すること、小文字に変換することを含むことができ、句読点の間にスペースが挿入されてもよく、日本語のような非空白言語の場合に、空白が挿入されてもよい。
【0124】
306において、前処理されたデータのサブセットが選択され、308において訓練候補のセットが提供され、314においてテストデータのセットが提供される。310において、以下で図4図7に関連してより詳細に説明するガイド付きアノテーションプロセスを通じて、アノテーション付き訓練セットが作成される。ガイド付きアノテーションプロセスにより、主題専門家は、短時間で、削減されたコストで、削減された計算リソースで、大きな訓練候補のセットにアノテーションを付けることが可能になる。データアナリストによるデータセットの「総当たりの」アノテーションに依存する従来のアノテーション方法では、典型的には、不均衡なデータセットに十分にアノテーションを付けるのに数人年かかるが、本明細書で開示するガイド付きアノテーションプロセスは、数人時または数人日にわたるデータセットの十分なアノテーションを容易にし得る。
【0125】
316において、以下で図8に関連してより詳細に説明するように、テストセットの作成のために確保されたデータにアノテーションを付けて、アノテーションテストセットを生成し、明示的に、または遠距離教師あり学習を使用して代理でテストする。一部の実施態様では、テストデータのセットに網羅的にアノテーションが付けられる。場合によっては、能動学習により、偏ったデータ分布が生成され、これは偏りのないテストセットを作成するのに適さない。代わりに、レベルセットツリー、ランダムサンプリングを使用した教師なしクラスタリング、及び密度ベースのサンプリングにより、テストデータのセットに十分かつ効率的にアノテーションを付けることが容易になる。
【0126】
312及び318において、アノテーション付き訓練セット及びアノテーション付きテストセットに対してデータレビューが実行される。データレビューは、基礎となるサンプルが意味的に類似しているが同一ではない場合でも、複数のレビューアにわたるアノテーション間の不一致を識別するアノテーション「クリーニング」を含む。アノテーションの一致は、ユーザ内で(疲労または誤った判断のため)またはユーザ間で確認することもできる。アノテーションの一致は、分散表現の類似度測定(たとえば、ベクトル埋め込みのコサイン類似度)と組み合わせたユーザアノテーションを使用することによって、測定することができる。このレビュー中に、教師(supervisor)は、「ゴールドスタンダード」アノテーションを確立することができる。一部の実施態様では、アノテーション「クリーニング」は、その全体が引用により本明細書に組み込まれる、Gardner et al.による同一所有者の米国特許第9,058,317号「System and Method for Machine Learning Management」に記載されているように実行されてもよい。
【0127】
320において、クレンジングされたアノテーション付き訓練セット及びアノテーション付きテストセットを使用して、機械学習モデルが構築される。場合によっては、共有モデル322を供給して、モデル構築320に情報を与えてもよい。共有モデル322が提供されると、構築中のモデルは共有モデル322の重みに初期化され、差分学習率で訓練される。一部の実施態様では、構築中のモデルは徐々に低くなる学習率を使用して訓練される。一部の実施態様では、共有モデル322によって提供される特定の重みは、未訓練のまま、または軽く訓練されたままであってもよい。構築中のモデルが未訓練または軽く訓練された重みを有する場合、高い学習率を選択的に維持して、それらの重みを迅速に訓練してもよい。
【0128】
324において、モデル構築320の結果として、挑戦者モデルが生成される。328において、生成されたモデルに関する報告を提示してもよい。一部の実施態様では、複数のモデルを構築し、アノテーション付きテストセットに対して共通の品質尺度を使用して比較してもよい。品質尺度は、たとえば、適合率、再現率、平均適合率、受信者動作者特性スコア、Fベータスコアなどを含んでもよい。他の品質尺度が使用されてもよい。モデル同士の意見が合う場合と、合わない場合との予測の実施例を、報告328を通じてユーザに提示してもよい。モデルの選択を容易にするために、モデルごとの様々な閾値での適合率-再現率曲線、ROC曲線、及び真/偽陽性/陰性のサンプルについて、さらなる可視化が提供されてもよい。
【0129】
ユーザは任意の時点で、十分な訓練データが収集されたとみなし、モデルの構築を進める準備をしてもよい。モデル構築中に、アノテーションサーバ202は、ユーザに一連のステップを自動化された方法で案内する。一部の実施形態では、ユーザは、機械学習の訓練に使用される特定のアノテーションセットと、機械学習モデルの品質のテストに使用される他のアノテーションセットとを指定する。他の実施形態では、アノテーションサーバ202は、所与の概念について利用可能な全てのアノテーション付きデータを、訓練データのセット及びテストデータのセットに分割する。
【0130】
訓練データ及びテストデータならびにモデルタイプ(たとえば、テキスト分類器、画像分類器、意味役割ラベリング)が与えられると、アノテーションサーバ202は、ベースラインを確立するために使用する適切なアルゴリズム及び損失関数を選択する。ほとんどの場合、モデルのタイプ及び訓練データの量に対して特定のアルゴリズムが事前に決定されている。たとえば、バイグラム機能を有するロジスティック回帰がテキスト分類のベースラインアルゴリズムとして選択されてもよく、スペクトログラム機能を有する隠れマルコフモデルが自動音声認識のベースラインアルゴリズムとして選択されてもよい。ベースラインを超えて、各モデルタイプは、アノテーションサーバ202によって事前に決定された適用可能なアルゴリズムの関連付けられたリストを有する。
【0131】
アルゴリズム及び損失関数が選択されると、アノテーションサーバ202は収束をテストし、追加の訓練データの利益を評価し、ベースラインモデルを確立する。収束は、訓練データでモデルを複数回訓練し、テストデータで品質メトリックを測定し、実行にわたる品質メトリックの分散を測定することによってテストしてもよく、ここで、分散は標準偏差により計算される。追加の訓練データの利益は、学習曲線を介して評価され、フィードバックのためにユーザに返される。学習曲線を使用した評価については、以下でより詳細に説明する。最後に、「ベースラインモデル」は、所与のモデルタイプ及びアルゴリズムに対して選択されたデフォルトのハイパーパラメータを使用して訓練される。ベースラインモデルの予測と、テストセットの参照アノテーションとを使用して、多数のメトリックが計算される。これらのメトリックは問題のタイプに関するものであるが、以下でより詳細に説明するデータ品質メトリック、データ数量メトリック、及びモデル品質メトリックを含んでもよい。
【0132】
一部の実施形態において、メトリックは検証セットに対して実行される。他の実施形態では、検証セットは存在せず、訓練データは、典型的な交差検証方法によって、訓練及び検証の両方に使用される。
【0133】
ベースライン選択プロセスと同様に、アノテーションサーバ202はモデルタイプを使用して、適切な探索空間を選択する。探索空間は、アルゴリズムのファミリーと、それらに関連する損失関数と、アルゴリズムを調整するための潜在的なハイパーパラメータとで構成される。単一のハイパーパラメータの最適化の実行中に、アルゴリズム及びサンプルのハイパーパラメータが選択され、モデルが訓練され、メトリックが計算される。
【0134】
アルゴリズム及び候補ハイパーパラメータの選択は、任意数の方法を使用して実行され、たとえば、ランダム選択、グリッド探索、またはベイズ推定法(たとえば、Parzen推定器のツリー)などがある。モデル訓練の各実行では、実験を再現するために必要なパラメータ、及び実験の結果が、データベースに記憶される。これらのパラメータは、ランダムシード、アルゴリズム選択、損失関数、ハイパーパラメータ、データセット分割、データセットハッシュ(たとえば、変化が発生したか否かを判定するためのデータセット全体にわたる尺度)、及びクラス重みを含んでもよい。ストア結果は、ベースラインだけでなく、ハイパーパラメータ最適化中に実行される反復を含んでもよい。
【0135】
ハイパーパラメータの推定は、品質目標が達成された場合、品質の変化が小さくなった場合、または計算予算が使い果たされた場合に停止する。一部の実施形態では、ユーザには、全てのアルゴリズム及びハイパーパラメータの実行の結果のグラフィカルなリストが提示され、そこからモデルを選択することができる。他の実施形態では、目的関数を最大化または最小化する最良のモデルが自動的に選択される。たとえば、テキスト分類では、これは受信者動作特性曲線の下の面積を最大化するモデルであってもよい。
【0136】
一部の実施態様では、最初の挑戦者モデル324が生成されると、このモデルはチャンピオンであると見なされ、330において配備され得る。新たなアノテーションが、アノテーションクライアント206または他のクライアントコンピュータ(図示せず)などの外部のシステムから提供されてもよい。たとえば、コンプライアンス監視システムが存在し、コンプライアンス担当者の日々の活動が、会社にとって潜在的なリスクになるメッセージにフラグを立てることであると仮定する。これらのフラグ付きメッセージは本番アノテーションであり、これらをアノテーションサーバ202にフィードバックして、データベース204に記憶されたアノテーション付き訓練セットを補うことができ、324において新たな挑戦者モデルを生成するために使用することができる。ベースラインモデル、または最初の挑戦者モデル324は、チャンピオンモデル326とみなしてもよい。報告328は、上述のように、チャンピオンモデル326と、新たに構築された挑戦者モデル324とを比較して、330で配備されるモデルの1つの選択を容易にすることを含んでもよい。
【0137】
新たな本番アノテーションがアノテーションサーバ202に供給されると、その後生成されるモデルは、データドリフト計算及びコンセプトドリフト計算によって変化が監視される。たとえば、コンセプトドリフトは、アノテーション付き訓練セットの新旧バージョンに基づいて訓練モデルを計算し、新旧データセットに関していくつかの変化した予測を定量化することによって計算してもよい。データドリフトは、アノテーション付き訓練セットの新旧バージョン間のコーパス統計及び/またはコーパス比較に基づいて測定してもよい。たとえば、テキストデータの場合、コーパス統計は、文書で固定された割合、HTMLタグの割合、参照語彙(たとえば、チャット語彙、標準語彙)と比較した語彙外の単語の割合、文字及び/または数字が混在している単語の割合、品詞の割合、句読点、文字(英語、キリル文字など)、数字、及び/または他のテキスト記号の割合、大文字の、小文字の、大文字で始まる、及び/または他の形式の単語の割合、いくつかの文字、単語、文、段落、及び/または単語、文、段落、及び/または文書ごとの段落、改行ごとの文字及び/または単語の分布、重複した文の分布、電子メールまたは他の文書ごとのいくつかの文の分布、形式、最も一般的な単語及びバイグラム、及び/または可読性スコア、を含んでもよい。コーパス統計は、追加的または代替的に、経時的なアノテーションなしデータに関するメトリック、または経時的なモデル予測に関するメトリックを含んでもよい。コーパス比較は、上記のコーパス統計、スピアマンの順位相関係数、及び/またはパープレキシティ(perplexity)のいずれか1つまたは組み合わせに基づく比較を含む。
【0138】
ユーザは、クライアントコンピュータ206に表示されるメッセージまたは画面を介して、それらのデータのそのようなドリフトを警告される。さらにモデルは、所望であれば、クライアントコンピュータ206を介して供給されるユーザ入力に基づいて、バージョン管理、切り替え、及びロールバックを行うことができる。
【0139】
332において、大規模なデータセットの迅速な探索及びアノテーション、ならびに対応するモデル作成が可能になることに加えて、特定の実施態様では、生成されたモデル及び/または生成されたモデル資産を購入、販売、共有、及び配布することが可能になる。これらのモデル資産は、限定はしないが、データセットで訓練された単語埋め込み、単語ベクトル、アノテーションのセット、キーワード及びフレーズのリスト、例文のリスト、言語モデル、辞書、ならびに訓練されたモデル、及びモデルアーキテクチャを含む。一部の実施態様では、アノテーションは、新たなモデルが訓練される前に、個人を特定可能な情報が「サニタイズ(sanitized)」される。元の未加工の特徴が発見されないように、特徴を安全にハッシュ化してもよい。準同型暗号化を単純なモデルに使用することができる。
【0140】
一部の実施態様では、これらのモデルの「学習内容」は、モデル自体を共有せずに、公開または別の方法で共有される。たとえば、「パブリッシャ」が基礎となるモデルを調整すると、モデルの勾配更新が、管理された外部サーバに送信され、外部サーバはこれらの勾配更新を「サブスクライバ」に再配布する。「サブスクライバ」は、勾配更新を使用して自身のローカルモデルをさらに訓練することができる。一部の実施形態では、勾配更新は暗号化されてもよい。一部の実施態様では、勾配更新が計算グラフのレイヤに加算される。ローカルモデルを訓練する場合、勾配更新に局所学習率が乗算されてもよい。あるいは、勾配更新は(X,y)を共有してもよく、ここで、Xは入力データ点、入力データの意味表現、または匿名データである。
【0141】
図4に、開示した技術の例示的な実施形態による、訓練候補のセットにアノテーションを付けるためのアノテーションプロセス400のフロー図を示す。アノテーションプロセス400は、310でのアノテーション付き訓練セットの作成中に行われ、アノテーションサーバ202によって実行されてもよく、アノテーションクライアント206上のローカルインストールで実行されてもよい。
【0142】
402において、アノテーションなしの訓練候補のセットが受信される。訓練候補のセット内の各データ要素を、アノテーションなしデータ102のサンプルと呼ぶ。たとえば、テキストの場合、サンプルは、前処理されたトークン化されたテキスト(たとえば、nグラム、文、段落など)を含む。404において、訓練候補のセットまたはそのサブセット内のサンプルに対してアノテーションを予測するモデル406によって予測セットが生成される。予測セット内の予測は、ストリーミングされてもよく(たとえば、1つずつ決定されてもよく)、予測のバッチで提供されてもよい。また、予測セット内の予測は、訓練候補のセット内のアノテーションなしサンプルの1つまたは複数のクラスタ内のサンプルに対して作成されてもよい。クラスタは、アノテーションなしデータ102の前処理中に特定されてもよい。モデル406は、予測ごとに予測ベクトルスコアをさらに提供する。たとえば、分類タスクの場合、モデル406は、バイナリ分類器アルゴリズムまたはマルチクラス分類器アルゴリズムを使用して、予測セットを生成してもよい。使用され得るモデルの実施例については、以下で図9を参照してより詳細に説明する。一部の実施態様では、モデルは、線形分類器及び訓練可能な単語埋め込みを有する連続的なバッグオブワード(bag of words)モデルである。他の実施形態では、モデルは、訓練可能なまたは固定の単語埋め込みを有する深層学習モデル(たとえば、畳み込みまたはリカレントニューラルネットワーク)であってもよい。テキスト以外のデータ用の他のタイプのモデルが本開示により企図される。
【0143】
408において、予測の予測ベクトルに基づいて予測セットが評価され、1つまたは複数のサンプルのアノテーションを要求するか否かについての判定が行われる。アノテーションプロセスを通じたモデルの迅速かつ集中的な訓練を容易にするために、複数のサンプリングアルゴリズムのうちの1つに従って予測セットをサンプリングし、サンプリングされた予測セット内の各サンプルをキュー内にサンプリングスコアの順で並べることにより、サンプリングされた予測セットが生成される。サンプリングスコアは、信頼度スコアと等しくてもよく、予測がサンプリングアルゴリズムにどの程度適合するかを表すように予測ベクトルから導出されてもよい。サンプリングされた予測セットを生成するために使用されるサンプリングアルゴリズム、及びサンプリングされた予測セットが配置されたキューは、サンプラまたは「例文候補生成エンジン」と呼ぶ。そして、サンプラによって提供されるサンプルについて、アノテーションを要求してもよい。
【0144】
サンプリングアルゴリズムは、密度サンプリングに基づくサンプリング、エントロピーサンプリング(たとえば、最大レベルのシャノンエントロピーを有する予測を特定する)、推定誤差低減サンプリング、網羅的なサンプリング(たとえば、直線的な進行(linear progression))、フラグ付き(たとえば、予測にフラグを立てて後で分析できるようにするためのユーザ入力が提供された予測)、ハードネガティブマイニングサンプリング、高信頼度サンプリング(たとえば、最大信頼度スコアを有する予測)、線形サンプリング、マップ可視化サンプリング(たとえば、以下で図23に関連してより詳細に説明するデータマップ上で受け取ったユーザ入力からのもの)、メタデータ検索サンプリング、最小マージンサンプリング、クエリバイコミッティサンプリング、ランダムサンプリング、レビューサンプリング、検索サンプリング(たとえば、以下で図13図16及び図22に関連してより詳細に説明する検索パラメータ及び/またはキーワードのユーザ入力からのもの)、類似性サンプリング、スキップされたサンプリング(たとえば、ユーザ入力が予測のアノテーション付けをスキップするものであった予測)、層化サンプリング、最も不確実なもの(たとえば、最低信頼度スコアを有する予測)を含む。このサンプリングアルゴリズムのリストは、網羅的なリストであることを意図したものではなく、他のサンプリングアルゴリズムが使用されてもよい。
【0145】
410において、サンプラは、異なるサンプリングアルゴリズムを使用する異なるサンプラに変更されてもよい。サンプラは、サンプラを変更するためのユーザ選択の受信に基づいて、またはサンプラを変更するというアルゴリズムの判定に基づいて変更されてもよい。以下で図6図7を参照してより詳細に説明するように、サンプラを変更する際にモデルを再訓練する必要はない。
【0146】
412において、ユーザがサンプルにアノテーションを付けるのをスキップしたか否かが判定される。スキップした場合、プロセス400はループして、アノテーションを要求するために他のアノテーションなしデータ402を評価する。スキップしなかった場合、414において、ユーザのフィードバックに基づいてサンプルにアノテーションが付けられる。416において、アノテーション付きサンプルに基づいてモデルが更新される。モデルは、新たなアノテーションのたびに更新が実行されるように、ストリーミング方式で更新されてもよい。あるいは、モデルは、たとえば所定数のアノテーションの後などに、バッチ方式で更新されてもよい。別の代替例として、モデルを更新するためのユーザ入力を受信したときに、モデルが更新されてもよい。さらなる代替例として、モデルはアルゴリズムの判定に基づいて、たとえば、定期的に、いくつかの正しい予測の追跡に基づいて、または学習を強化するように更新されてもよい。
【0147】
アノテーションプロセス400は、更新されたモデル416が停止基準を満たすまで継続してもよい。停止基準は、モデルの品質に関する人間の判断を容易にする情報を提供してもよい。たとえば、更新されたモデル416は、データ品質メトリック及びデータ数量メトリックについて、網羅的にアノテーションが付けられたテストデータのセットに対して評価されてもよい。データ品質メトリックは、コヒーレンスメトリックを含んでもよい。たとえば、マルチクラス分類アルゴリズムの場合、ジニ係数カウントまたは各部分(proportions)の最大エントロピーのパーセントに基づいて、クラスタコヒーレンスメトリックが生成される。
【0148】
データ数量メトリックは、学習曲線メトリックまたはモデル収束メトリックを含んでもよい。たとえば、学習曲線メトリックは、複数の所定のデータアノテーションレベルのそれぞれにおいて(たとえば、データの5、10、20、50、75、100%にアノテーションが付けられた各時点で)、テストデータのセットに対して、更新されたモデルの反復の予測の正解率を測定してもよい。学習曲線の傾きは、更新されたモデルが学習している追加情報の量の尺度である。学習曲線が平坦になると、更新されたモデルのさらなる反復ごとに、学習される追加情報の量が減少する。したがって、アノテーションプロセス400を終了するための停止基準は、学習曲線の傾きが所定の閾値学習率を下回った場合であってもよい。モデル収束メトリックは、実行にわたる、交差検証の分割にわたる、及び/または交差検証の平均にわたるメトリックの標準偏差である場合がある。アノテーションプロセス400の他の停止基準が使用されてもよい。
【0149】
図5に、開示した技術の例示的な実施形態による、訓練候補のセットのアノテーションを容易にするサンプリング技法のアルゴリズムのサンプリングの進行過程500のシーケンス図を示す。一般に、選択されたサンプラについて、モデルが高い信頼度のサンプルを識別しており、アノテーションクライアント206上でのアノテーション入力を介した確認フィードバックを受信している場合、サンプラの進行過程500は続いて、サンプラを進行過程500のさらに下のサンプラに変更する。すなわち、各サンプラは、進行過程における前または次のサンプラのいずれに移動するかを決定する結果の期待分布を有する。たとえば、選択されたサンプラがハードネガティブサンプラ504であって、ユーザによって提供されたアノテーションがモデル予測と一致する場合、サンプラを層化サンプラ506に変更してもよい。
【0150】
同様に、ユーザによって提供されたアノテーションがモデル予測と異なる場合、サンプラは進行過程500のより上のサンプラに変更してもよい。すなわち、モデル予測が誤っている所定数のサンプルアノテーションを受け取ると、進行過程の前のサンプラが選択される。たとえば、層化サンプラ506が予測を正しく提供していない場合、サンプラはハードネガティブサンプラ504に変更してもよい。一部の実施態様では、進行過程500は、いくつかの「サプライズ」アノテーションを最大化し、あるいは学習曲線の最大化を強化する(たとえば、学習曲線で可能な限り急な傾きを維持する)異なるサンプラを選択する。
【0151】
最初に、選択されるサンプラはシードサンプラ502である。シードサンプラ502は、ユーザによって提供された入力に基づいてサンプルを識別する。以下で図13図16を参照してより詳細に説明するように、入力は、ユーザにより入力された、ユーザが分類することに関心があるキーワード、フレーズ、及び/または例文を含んでもよい。さらに、他のデータタイプの辞書、オントロジー、または他のそのようなデータベースをインポートして、ユーザによって提供された入力を補い、拡張してもよい。また、入力は、上述の共有モデル資産などの共有モデル資産の入力を含んでもよい。また、シードサンプラ502により、以下により詳細に説明するように、ユーザが訓練候補のセット内のサンプルを能動的に検索することが可能になる。テキストベースのアノテーションの場合、シードサンプラ402に提供されるキーワード及びフレーズリストを使用して、まず、ユーザが探しているものの例文を探し、それにより不均衡なデータ(たとえば、データセット内のサンプル数と比較して少数の代表的なサンプルしか存在しないデータ)の問題に対処する方法を提供する。
【0152】
一部の実施形態では、「シード」サンプリングは、事前に訓練されたモデルによって部分的に完了している。これにより、ユーザが代表的なシード例を探す必要性が減少し、ハードネガティブサンプラへのより高速な進行が可能になる。そのような実施形態では、中間モデルは、前述の増分学習率を使用して漸進的に訓練される。
【0153】
進行過程500はシードサンプラへ/から、ハードネガティブサンプラ504から/へ進む。ハードネガティブサンプラ504は、ハードネガティブマイニングサンプリングアルゴリズムを使用して、「サプライズ」アノテーションを識別しようと試みる。すなわち、ハードネガティブマイニングアルゴリズムは、信頼度スコアが高いアノテーションの予測をモデルが有するサンプルを検索するが、(たとえば、異なるアノテーションを割り当てることによって)アノテーションが正しくないというアノテーションをユーザから受け取る。
【0154】
進行過程500はハードネガティブサンプラ504へ/から、層化サンプラ506から/へ進む。層化サンプラ506は、層化サンプリングアルゴリズムを使用する。層化サンプリングアルゴリズムは、所与の結果についてのスコアが2つの浮動小数の間[A,B]にあるサンプルを識別する。
【0155】
進行過程500は層化サンプラ504へ/から、不確実性サンプラ508から/へ進む。不確実性サンプラ508は、最大エントロピーアルゴリズム、最小マージンアルゴリズム、クエリバイコミッティアルゴリズム、または他のそのような不確実性サンプリングアルゴリズムのうちの1つまたは複数を使用する。不確実性サンプラ508は、不均衡なデータセット内のユニークな、もしくはまれな、または別の方法で等しくない確率サンプルにアノテーションを付ける際に特に役立つ。
【0156】
上記のように、このサンプラは、それぞれ独自のサンプリングアルゴリズムを有する事前に提供されたサンプラのリストからユーザが手動で選択してもよい。サンプリングアルゴリズムは、限定はしないが、最大情報量(最大エントロピー)、最小マージン、特定のクラスからのランダムサンプル、キーワードベースのサンプル、ランダムサンプル、またはデータの直線的な進行を含む。「最大エントロピー」などの方法により、フィードバックを求めるために、低い信頼度スコアが存在する予測を効果的に識別することができる。
【0157】
一部の実施態様では、たとえば図21に示すように、ユーザは「自動サンプリング」を使用することを勧められる。上述のように、サンプリング進行過程500による自動サンプリングによって、ユーザにより受け取られる新たなアノテーションに応じて得られる情報価値を最大化することができる。具体的には、進行過程500は、最初にキーワード及びフレーズを使用し(不均衡なデータ内で正例を探すため)、その後、より高度な方法に移行してもよい。進行過程500は、ユーザによって提供されたアノテーションが「サプライズ」となる(すなわち、アノテーションがモデルの予測と異なる)か否かに応じて、1つまたはいくつかの可能なサンプリング方法に適応することができる。たとえば、モデルが予測に関連する高い信頼度スコアを有すると仮定する。人間のアノテータがモデルの予測と意見が合う場合、進行過程500は、より高い不確実性が存在するサンプルを提供するサンプラに自動的に移行してもよい。しかしながら、人間のアノテータがモデルの予測と意見が合わない場合、進行過程500は、予想される情報獲得を最大化するために、他の「高信頼度」サンプルを表示し続けてもよい。
【0158】
一部の実施形態では、ユーザは、アノテーションの品質を維持するために、不確実なサンプルにフラグを立てて後でレビューすることができる。他の実施形態では、ユーザは、サンプルが「記憶」されるように指定することができ、これにより、これらのサンプルに関して、ハッシュテーブルを参照して機械学習モデルがオーバーライドされる。
【0159】
キーワード及びフレーズのリストが提供されたか、またはモデルにシードを与えるための他のそのような入力が提供された場合、進行過程500は、入力データの適切な「カバー範囲」を確保してもよい。たとえば、10個のキーワードのリストが与えられた場合、サンプラは各キーワードに関してユーザに表示されるサンプルの数を追跡してもよい。特定のキーワードが他のキーワードに対して「アンダーサンプリング」されていると判定された場合、進行過程500は、不均衡が修正されるまでそのエントリをオーバーサンプリングすることを選択してもよい。この方法により、関連する学習モデルの再現率が改善される。
【0160】
ユーザが不十分な「文脈」が提供されたと考えた場合、追加の文脈を要求することができる。たとえば、文が曖昧であると考えられる場合、ユーザは文の前後を見ることを要求することができる。この場合、アノテーションだけでなく、より多くの文脈が必要であったという2つのアノテーションが記録されることになる。
【0161】
ユーザは訓練中の例の領域を最も関連性があるものとして「ほのめかす」か、または別の方法で手動で指定することができる。これにより、たとえば、観点付き感情分析(aspect-based sentiment analysis)が可能になる。他のそのようなユーザ向けのサンプリング方法は、「類似のサンプル」及び「データマップ」を含む。これらのサンプリング方法のそれぞれは、アノテーションなしデータ102または訓練候補のセットに対して教師なし学習技法を使用することにより既に発見されている表現を利用する。ユーザが特定のサンプルの「類似のサンプル」を要求した場合、サンプラは教師なし学習技法で学習された情報を使用して、近似する例文を探そうとし得る。同様に、ユーザが特定の用語またはフレーズのキーワード検索を実行すると、サンプラは教師なし学習技法で学習されたこの情報を使用して、キーワード及びその類義語を有する例文を探そうとし得る。一部の実施形態において、連続的なバッグオブワードモデルを使用して文ベクトルが計算され、コサイン距離を使用して近い文が計算される。
【0162】
また、非構造化表現を使用して、t-sneまたはPCAなどの技法により、データの次元を2次元または3次元に削減することができる。これらの低次元の表現は「マップ」として視覚的に提示することができ、これにより、図23に示すように、ユーザは自分のデータを移動させて、特定の例文を探すことができる。そのような一実施形態では、サンプルは散布図のように表され、以前にアノテーションが付けられたサンプルはユーザアノテーションを表す色で提示される。「マップ」表現により、ユーザは、「まだ移動していない領域」に加え、予測ミスが発生している場合がある領域を視覚的に確認することが可能になる。
【0163】
図6は、開示した技術の例示的な実施形態による、データにアノテーションを付けるための計算アーキテクチャ600のブロック図である。以下に詳述するように、計算アーキテクチャ600は、限られた計算リソースでほぼリアルタイムに大規模なデータセットへの操作を提供する。図3及び図4に関連して上述したように、データベース204に記憶されたアノテーションなしデータ102は前処理され、前処理されたデータのサブセットが訓練候補のセットを生成するために選択される。計算アーキテクチャ600では、アノテーションなしデータはストリーミング方式で処理される。602において、アノテーションなしデータ102または訓練候補のセットからサンプルが取得され、前処理される。サンプルは、アノテーションなしデータ102または訓練候補のセットから抽出された、ランダムに選択されたサンプルであってもよい。ランダム性の性質は、ランダムシードを介して制御することができる。取得されたテキストは前処理される(たとえば、小文字化され、句読点の間にスペースが挿入され、日本語などの非空白言語の場合は空白が挿入される)。
【0164】
604において、前処理されたデータ(たとえば、テキスト)は、モデル406を介してストリーミングされ、モデル406は、前処理されたデータ(たとえば、テキスト)をスコアのベクトル(分類器の場合)または他のそのようなモデル出力に変換して、予測セットの予測を生成する。606において、(サンプル識別子、ベクトルスコア)のタプル(またはモデルにより出力される他の予測)が、サンプリングストレージ書込器を介してストリーミングされ、予測を書き込む1つまたは複数の優先度キュー608が選択される。610において、サンプリング選択ロジックは優先度キューを選択し、そこから612においてアノテーションのためにサンプル及び予測がユーザに提示される。ユーザからアノテーションを受け取ると、614においてモデルが訓練されて、更新されたモデル616を生成され、プロセスが継続されて、604において前処理されたデータから予測が生成される。
【0165】
仮にシステムが全てのサンプルについての結果的に得られる予測を記憶するとすれば、メモリ及びディスク容量の要件は非常に大きくなる。たとえば、アノテーションなしデータ102または訓練候補のセットが、数百万さらには数千または数億のサンプルを有し得ることはよくある。全てのサンプルに対する予測を生成及び記憶するために必要な計算リソースは非常に大きくなる。したがって、優先度キュー608はそれぞれ、サンプラのタイプごとに、限られた長さの優先度キューを提供する。優先度キュー608のそれぞれは、サンプラによって使用されるサンプリングアルゴリズムに従って、サンプルの上位10個、100個、1000個、または10000個の予測のみを記憶してもよい。一部の実施態様では、優先度キュー608は、一度に2000個のサンプルを記憶し得る。上述のように、関心のある様々なクラスのサンプラと、様々な目的関数とが存在し、それぞれ対応する優先度キュー608を有する。様々な実施態様では、2個、5個、10個、20個、またはそれ以上のサンプラが存在してもよい。一部の実施態様では、サンプラのうちの1つまたは複数は優先度キュー608を有さなくてもよく、代わりにリザーバサンプリングアルゴリズムに依存するものであってもよい。たとえば、クラスAの信頼度レベルが0.5~1.0の予測ベクトルから選択的にサンプリングするために、リザーバサンプリングは、これらの要件に適合するストリーミングされたサンプルからサブセットを選択的にサンプリングする。優先度キュー608は、クライアントコンピュータ206またはアノテーションサーバ202上のディスクに存続させることができる。一部の実施形態では、優先度キューは、データベース204に記憶されるなど、分散データベース技術を使用して記憶される。以下で図7に関連してより詳細に説明するように、優先度キュー608のデータ構造により、上位の結果のみを記憶し、その他を破棄することが可能になる。
【0166】
サンプラ及び優先度キュー608のそれぞれは、特定のユーザによる単一のアノテーションプロセスに属する。すなわち、異なるユーザが同じアノテーションなしデータのセットにアノテーションを提供してもよく、その場合、各ユーザに対して、別個のアノテーションのセットが提供される。優先度キュー608、及び進行過程500で現在選択されているサンプラは、ユーザごとに異なっていてもよい。
【0167】
優先度キュー608はそれぞれ、異なるサンプリングアルゴリズムに基づいて異なるサンプルのセットを保持するので、アノテーションプロセス400は、アノテーションの処理における明らかな遅延なしに、410などでサンプラを変更することができる。この結果は特に、必要なユーザの認知負荷を軽減するという設計目標から実現される。モデルの現在の反復を改善するためにアノテーションをシステムにフィードバックし、システムがサンプラに通知する、などとすることができる。
【0168】
たとえば、サンプルが与えられると、システムは分類予測を生成することができる。これらの予測を使用して、エントロピー、最小マージンなどの必要なメトリックを計算することができる。これらのスコアは、サンプラのタイプごとに既に記憶されているスコアと比較することができる。一部の実施形態では、予測が特定の基準を満たしている場合、予測は保持され、結果は1つまたは複数の優先度キュー608に記憶され、それ以外の場合は破棄される。有利かつ有益な正味の影響は、優先度キュー608に必要なメモリが、実行時にほとんど影響を与えずに、小さく、かつ固定であることである。そのような実施形態では、上述のように、モデルは短い固定の期間で、ユーザの要求により、またはアルゴリズムの再訓練の決定時に再訓練することができる。
【0169】
一部の実施態様では、モデルを動的な状態のままにすることができる。新たなアノテーションが到着すると、モデルは多少の調整を行うことができる。その後、サンプラサンプリングアルゴリズムの1つと一致するサンプルに遭遇するまで、予測に進むことができる。その時点で、モデルは「一時停止」して、ユーザからのさらなるフィードバックを待ってから、サンプルにアノテーションを付けることができる。このアノテーションが提供されると、このプロセスを繰り返すことができる。
【0170】
図7は、開示した技術の例示的な実施形態による、予測を高速化し、ハードウェア要件を低減するために使用される優先度キュー方法700を示すブロック図である。予測702がサンプリングストレージ書込器606によってストリーミングされると、予測は複数の優先度キュー608に提供される。図7の実施例に示す優先度キュー608は、「クラスA」というアノテーションが付けられる高信頼度の予測を有するサンプル用の優先度キュー704、「クラスB」というアノテーションが付けられる高信頼度の予測を有するサンプル用の優先度キュー706、高いエントロピーを有するサンプル用の優先度キュー708(たとえば、最大のシャノンエントロピーの順に保持されるもの)、及び最小マージンサンプル用の優先度キュー710を含む。より多いまたはより少ない優先度キュー608が使用されてもよい。サンプルは、サンプリングスコア714の増加順に優先度キューに配置される。上述のように、サンプリングスコアは、信頼度スコアであってもよく、または予測ベクトルによって別の方法で得られる値であってもよい。
【0171】
新たな予測が受信されると、優先度キュー608のそれぞれは、新たな予測のサンプリングスコアを評価する。サンプリングスコアが所与の優先度キュー608の閾値716を下回る場合、優先度キュー608は予測を破棄720してもよい。異なる優先度キューは、異なる閾値716を使用してもよい。サンプリングスコアが所与の優先度キュー608の閾値716を上回る場合、優先度キューは予測を保存718するか否かを評価する。たとえば、所与の優先度キュー608が満杯ではなく、サンプリングスコアが閾値716より大きい場合、優先度キュー608は予測を保存する。しかしながら、所与の優先度キュー608が満杯である場合、サンプリングスコアは、優先度キュー608に以前に保存された予測のサンプリングスコアのうちの1つまたは複数と比較される。一部の実施形態では、サンプリングスコアが予め記憶された予測のサンプリングスコアのいずれよりも大きくない場合、予測は破棄される。そうでない場合、予測は優先度キュー608内に、その優先度スコアに応じた位置に保存され、最低スコアの予測が優先度キュー608から削除される。上述のように、このようにして、優先度キュー608は、全ての予測が保存される場合に必要となるよりも大幅に小さい固定メモリ要件を維持する。他の実施形態では、リザーバサンプリングなどの方法を使用して、基礎となる候補サンプルの分布を近似しながら、元の予測のサブセットを維持する。
【0172】
図8は、開示した技術の例示的な実施形態による、テストデータのセットにアノテーションを付けるためのアノテーションプロセス800のフロー図である。アノテーションプロセス800は、316でのアノテーション付きテストセットの作成中に行われ、アノテーションサーバ202によって実行されてもよく、アノテーションクライアント206上のローカルインストールで実行されてもよい。802において、アノテーションなしテストデータのセットが受信される。804において、アノテーションプロセス800によって、またはユーザ入力を介して、テストセットの網羅的なアノテーションが望ましいか否かについての判定が行われる。望ましい場合、806において、アノテーションプロセス800は、ユーザによるアノテーションのためのテストセットの直線的な進行を、プログレスバーなどによる直線的な進行の進捗状況の表示と共に提供する。
【0173】
網羅的なアノテーション付けが望ましくない場合、808において、テストセットデータのコアクラスタの識別を通じて遠距離教師あり学習プロセスが開始される。たとえば、基礎となる分布の分析に関連する様々な技法を通じて、コアクラスタが識別されてもよい。たとえば、分布モードを有する密度ベースのクラスタ、分布平均を有する確率ベースのクラスタ、または分布重心を有するレイヤベースのクラスタなどがある。各技法は対応する距離メトリックに関連付けられている(たとえば、レイヤベースのクラスタはユークリッド距離を使用する)。810において、クラスタのうちの1つまたは複数から取得されたサンプルにアノテーションを付ける要求が、グラフィカルユーザインターフェースを介してユーザに提示される。最初に、クラスタからサンプルをランダムに取り出してもよい。データにアノテーションが付けられると、コヒーレンスメトリック、たとえば、二乗距離の和、サンプルベースのエントロピーメトリック、及びジニ係数などがクラスタに割り当てられる。812において、アノテーションなしデータ点に、アノテーション付きサンプルまでの距離の逆数に関連する信頼度スコアが割り当てられる。システムは、既知のサンプルに近い点の活用と、分布の新たな部分の探索とを交互に行う。そのような一実施形態では、探索と活用とを交互に行うことは、ベイジアンバンディットなどの強化学習方法を介して行われる。816において、最も不確実な予測の信頼度スコアが閾値信頼度スコアを超えるか否かの判定が、アノテーションプロセス800によって行われる。超えない場合、アノテーションプロセス800はループバックして、810においてテストデータのセットの追加サンプルのアノテーションを要求する。超える場合、テストデータのセットは十分にアノテーションが付けられていると判定され、818において出力される。様々な実施形態において、全ての技法は同時に実行され(密度ベース、確率ベース及びレイヤベース)、強化学習を通じて最も成功した技法が学習される。
【0174】
図9図25に、機械学習モデルを構築するためのアノテーション付き訓練セットを作成するための様々な例示的なグラフィカルユーザインターフェースを示す。図9図25のグラフィカルユーザインターフェースは、アノテーションクライアント206のディスプレイ上に表示され、アノテーションクライアント206の入力デバイスを介してアノテーションユーザから入力が受け取られる。図9図25のグラフィカルユーザインターフェースは、たとえば、アノテーションサーバ202が1つまたは複数のウェブページを提供して、アノテーションクライアント206のウェブブラウザに表示することによって、アノテーションサーバ202からアノテーションクライアント206に提供されてもよい。あるいは、アノテーションクライアント206上のローカルインストールが、アノテーションクライアントのディスプレイ上に図9図25のグラフィカルユーザインターフェースを提示してもよい。他の構成が本開示により企図される。
【0175】
図9に、開示した技術の例示的な実施形態による、新たな機械学習モデルの作成を開始するための例示的なグラフィカルユーザインターフェース900を示す。モデル名フィールド902は、作成する新たなモデルに名前を付ける英数字または他の文字列を受け取るように構成される。モデル選択セクション904は複数の選択可能なモデルボタンを含み、それぞれが異なるタイプの分類器に関連付けられている。たとえば、テキストモデルの場合、文分類器、段落分類器、文書分類器、表分類器、または表抽出器のそれぞれに選択可能なモデルボタンを設けてもよい。同様に、画像モデルの場合、物体検出モデルまたは画像類似性モデルのそれぞれに対して選択可能なモデルボタンを設けてもよい。本明細書では、他のタイプのモデルが使用されてもよい。上記のシステム及びプロセスは、使用されるデータまたはモデルのタイプに依存せず、テキストデータの場合、テキストで使用される言語に依存しない。アノテーションを作成するために現在ログインしているユーザアカウントを識別するためのユーザインジケータ906が表示されてもよい。ナビゲーションメニュー908は、本明細書に記載の他のグラフィカルユーザインターフェースに移動するための選択可能なボタン及び/またはメニューを提供する。グラフィカルユーザインターフェース間の移動は、所与の画面で所望の入力を提供したときに自動化されてもよい。たとえば、図9のグラフィカルユーザインターフェース上で新たなモデルに名前を付け、モデルのタイプを選択すると、図10のグラフィカルユーザインターフェースが自動的に表示されてもよい。
【0176】
様々な実施態様において、アノテーションが付けられるアノテーションなしデータは、アノテーションなしのテキスト、画像、ビデオ、または音声データである。モデルは、1クラス分類器、バイナリ分類器、マルチクラス分類器、または言語分類器である。モデルは、回帰、情報抽出、意味役割ラベリング、テキスト要約、文、段落、または文書の分類、表抽出、機械翻訳、含意及び矛盾、質問回答、音声タグ付け、音声分類、話者ダイアライゼーション、言語モデル調整、画像タグ付け、物体検出、画像セグメンテーション、画像類似性、ピクセル単位アノテーション、テキスト認識、あるいはビデオタグ付けを実行してもよい。上記のアノテーションなしデータのモデル及びタイプのリストは、網羅的なものではなく、単に実施例として提供している。他の任意のタイプのモデルまたは他の任意のタイプのアノテーションなしデータが本開示により企図される。
【0177】
図10に、開示した技術の例示的な実施形態による、ユーザが複数のデータセットを管理できる方法を示す例示的なグラフィカルユーザインターフェース1000を示す。図示のように、アノテーションサーバ202もしくはアノテーションクライアント206またはそれぞれのデータベース204、208にインポートされた選択可能なデータセット1002のリストに、アノテーションなしデータ102の1つまたは複数のデータセットが提供されている。
【0178】
図11に、開示した技術の例示的な実施形態による、ユーザが複数のアノテーションのセットを管理できる方法を示す例示的なグラフィカルユーザインターフェース1100を示す。1つまたは複数のデータセットがインポートされると、ユーザは「アノテーションセット」を作成することができる。グラフィカルユーザインターフェース1100により、ユーザは多数のアノテーションセットを管理することが可能になる。アノテーション付きもしくはアノテーションなしの訓練候補のセットまたはテストデータのセットなどの1つまたは複数のアノテーションセット104が、アノテーションなしデータ102から生成された選択可能なアノテーションセット1102のリストに提供される。
【0179】
図12に、開示した技術の例示的な実施形態による、様々なカテゴリのアノテーションのセットの一実施例を示す。たとえば、アノテーションセットは、感情カテゴリ1202、行動カテゴリ1204、ライフイベントカテゴリ1206、または顧客カテゴリ1208に分類してもよい。他のカテゴリ及びタイプのアノテーションセットが本開示により企図される。各カテゴリ内に、複数のアノテーションセットをリストしてもよい。たとえば、感情カテゴリ1202の場合、アノテーションセットのリストは、愛情、動揺、怒り、不満、幸福、悲しみ、連帯感、及び不安を含む。他の感情が本開示により企図される。
【0180】
図13に、開示した技術の例示的な実施形態による、ユーザがアノテーションをセットアップするのに使用できる構成オプションを示す例示的なグラフィカルユーザインターフェース1300を示す。図17のグラフィカルユーザインターフェースに移動して例文を編集するための、選択可能な「例文編集」ボタン1302が設けられている。図14のグラフィカルユーザインターフェースに移動してキーワードを編集するための、選択可能な「キーワード編集」ボタン1304が設けられている。ユーザがデータセットで探しているものの例文及びキーワードは、上記のシードサンプラ502への入力を提供する。図18図23のグラフィカルユーザインターフェースの1つに移動して、上述のプロセス300~800のうちの1つまたは複数に従ってサンプルにアノテーションを付けるための、選択可能なアノテーション付けボタン1306が設けられている。図25のグラフィカルユーザインターフェースに移動して、アノテーションをレビュー及び編集するための、選択可能なレビューボタン1308が設けられている。
【0181】
サンプルにアノテーションを付けるための選択可能なラベルボタン1310は、アノテーションの追加または変更を容易にする。選択されたアノテーションは、アノテーションセクション1312に表示される。2つのアノテーションのみが表示されているが、単一クラスまたはマルチクラスの分類器に対して他の数のアノテーションを提供してもよい。選択可能なデータセットボタン1314は、アノテーションを付けるさらなるデータセットの追加を容易にする。データセットは、図10で保持されているデータセットのセットから選択可能であってもよい。データセットに関連付けられた選択可能な削除アイコン1316は、そのデータセットをアノテーションに関して削除することを容易にする。不均衡なデータに関する問題に対処するために、頻度選択1318は、ユーザがデータセット内の例文またはキーワードの出現頻度を示すのを容易にする。一部の実施態様では、キーワード、例文、及び/またはアノテーションは、外部サーバなどを介して外部プロバイダからダウンロード、購入、または販売されてもよい。進捗状況インジケータ1320は、サンプルのアノテーションを開始する前に、どの入力が提供済みであり、どれがまだ必要であるかをユーザに示す。選択可能なアノテーションボタン1306と同様に、図18図23のグラフィカルユーザインターフェースのうちの1つに移動して、上述のプロセス300~800のうちの1つまたは複数に従ってサンプルにアノテーションを付けるための選択可能なアノテーションボタン1322が設けられている。同じく、選択可能なレビューボタン1308と同様に、図25のグラフィカルユーザインターフェースに移動してアノテーションをレビュー及び編集するための選択可能なレビューボタン1324が設けられている。
【0182】
図14に、開示した技術の例示的な実施形態による、キーワード及びフレーズのリストを入力及び管理する方法を示す例示的なグラフィカルユーザインターフェース1400を示す。テキスト入力ボックス1402は、シードサンプラ502に提供するキーワードまたはフレーズを追加するために設けられている。キーワードまたはフレーズが追加されると、キーワードリスト1412が更新されて、入力されたキーワードまたはフレーズのリストが表示される。選択可能なボタン1404は、別の文書またはプログラムからコピーされたキーワードまたはフレーズのリストをペーストするオプションを提供する。選択可能なオプション1406は、キーワードリストに入力するためのキーワードまたはフレーズのファイルをアップロードするオプションを提供する。外部キーワードソースリスト1410は、アップロードされたキーワードリストによって更新される。リスト検索ボタン1408は、1つまたは複数のキーワードリストの検索及びダウンロードまたは購入を容易にする。
【0183】
キーワードリスト1412に表示された各キーワードまたはフレーズについて、選択可能な類義語ボタン1414は、入力されたキーワードまたはフレーズを拡張して類義語を含めることを容易にする。キーワードまたはフレーズは、シソーラスの参照、近似する単語埋め込み、及び外部のオントロジーを介して拡張される。単語埋め込みとは、単語を表す数字のセットを指す。これらの単語埋め込みは、事前に提供することができ、またはユーザにより提供されるデータセットから作成することもでき、あるいはその両方を行うこともできる。単語埋め込みは教師なし技法、たとえば、スキップグラム、ネガティブサンプリング、またはシフトされた正の自己相互情報量(shifted positive pointwise mutual information)などを使用して学習されてもよい。オントロジーは、オープンソースまたはユーザ提供のオントロジー、たとえば、DBペディアなどを指す。オントロジーエントリのツリーが作成されてもよく、キーワードのリストが与えられると、与えられたリストの最も近い共通の祖先が見つかる。次いで、この祖先の子孫をグラフィカルユーザインターフェース上に提示し、ユーザが選択してキーワードリスト1412に含めることができる。これらの各ケースでは、単語または短いフレーズが与えられると、図15及び図16に示すように、キーワードリスト1412を拡張するための類似の単語またはフレーズが選択可能な方法でユーザに提供される。キーワード及びフレーズの入力及び拡張が完了すると、選択可能な完了ボタン1416は、図13のグラフィカルユーザインターフェースに戻ることを容易にする。
【0184】
図15に、開示した技術の例示的な実施形態による、ユーザが関連する単語及びフレーズを発見及び管理できる方法を示す例示的なグラフィカルユーザインターフェース1500を示す。キーワードインジケータ1502は、類義語またはさらなる文脈を追加するために現在検討中のキーワードを強調表示する。キーワードの類義語のリスト1504は、文脈クラスタに編成されて提供される。各クラスタは、そのクラスタ内の全ての類義語を選択するための選択可能なオプション1506を提供する。さらに、各クラスタ内の類義語のそれぞれには、対応する類義語を選択するための選択可能なオプション1508が提供される。キャンセルボタン1510は、選択した全ての類義語を破棄し、図14のグラフィカルユーザインターフェースに戻るために選択可能になっている。そうでなければ、承認ボタン1512は、選択された類義語をキーワードリスト1412に保存し、図14のグラフィカルユーザインターフェースに戻る。
【0185】
図16に、開示した技術の例示的な実施形態による、単語リスト管理へのオントロジーの組み込みを示す例示的なグラフィカルユーザインターフェース1600を示す。テキスト入力ボックス1402は、キーワードまたはフレーズをキーワードリスト1412に追加するために設けられている。キーワードまたはフレーズがキーワードリスト1412に追加されると、1つまたは複数のオントロジーが参照されて、キーワードリスト1412に追加する選択可能なキーワード1602のリストが提供される。上述のように、オントロジーエントリのツリーが作成されてもよく、キーワードリストのキーワードが与えられると、与えられたリストの最も近い共通の祖先が見つかる。次いで、この祖先の子孫をグラフィカルユーザインターフェース1600上に選択可能なキーワード1602として提示し、ユーザが選択してキーワードリスト1412に含めることができる。
【0186】
図17に、開示した技術の例示的な実施形態による、例文のリストを入力及び管理する方法を示す例示的なグラフィカルユーザインターフェース1700を示す。グラフィカルユーザインターフェース1300上の例文編集ボタン1302を選択することにより、グラフィカルユーザインターフェース1700に移動してもよい。キーワードまたはフレーズと同様に、例示的なグラフィカルユーザインターフェース1700は、新たな例文を追加するためのテキスト入力ボックス1702を含む。図示のように、例文は、1つまたは複数の文を通じて文脈の中でキーワードを提供する。各例文は、その例文にアノテーションを割り当てるために選択可能になっている。たとえば、アノテーションメニュー1704は、その例文が、ユーザがデータセット内で探している特定のクラスまたは他のデータの例文であるか否かを示すために提示される。以前に入力された例文及び対応するアノテーションのリスト1706が表示されている。完了ボタン1708は、グラフィカルユーザインターフェース1300に戻るために選択可能になっている。
【0187】
以下、記載のアノテーションプロセスを容易にするグラフィカルユーザインターフェースの様々な態様についてさらに詳細に説明する。図18図24のグラフィカルユーザインターフェースは、モデルの品質に関する人間の判断を容易にする情報を提供する。ユーザがいくつかの例文にアノテーションを付けると、初期モデルを訓練することができ、追加のサンプリング方法が利用可能になる。
【0188】
図18に、開示した技術の例示的な実施形態による、アノテーションプロセス、アノテーションプロセスを管理するためのツール、及び進捗状況に関するフィードバックを示す例示的なグラフィカルユーザインターフェース1800を示す。グラフィカルユーザインターフェース1800により、機械学習モデルを訓練するのに必要な認知負荷及び専門知識が最小化される。これは、ユーザにより提供されたデータセットから取得された一連の例文を表示することによって、実現することができる。上述のように、例文は、ユーザが強力なモデルを作成するために必要とされるアノテーションの数を最小化することができるサンプラによって選択される。
【0189】
例文1802を、グラフィカルユーザインターフェースに提供してもよい。関心があるとわかった単語またはフレーズの強調表示1804が提供され、ここで、強調表示及び色は、最終的な予測に与えられる影響の方向及び大きさを表してもよい。また、前後の文などの周囲の文脈1806が、例文と共に提供されてもよい。さらに、予測1808が、その予測の信頼度スコアと共にユーザに表示される。「Yes」ボタン1810または「No」ボタン1812のいずれかを選択するなどして、データアノテーションを質問への回答に記憶することができる。ユーザは任意選択で、キーボードショートカットによって、たとえば「Y」または「N」を入力するなどして、応答を提供することができる。
【0190】
アノテーション付きデータの品質及び数量に関するフィードバック1814がユーザに提供される。たとえば、アノテーションのカバー範囲に関するフィードバックは、訓練されたいくつかの正例及びいくつかの負例の内訳を含む、訓練された例の数を含んでもよい。また、モデルの性能メトリック、たとえば、バイナリ分類器の正解率、適合率、再現率、F1スコア、またはROC下の面積などが表示されてもよい。他のメトリックが表示されてもよい。矢印1818の選択などによって例文のアノテーションをスキップするための、または矢印1816の選択などによって前の例文に戻るための、1つまたは複数のナビゲーションアイコンが設けられてもよい。
【0191】
図19に、開示した技術の例示的な実施形態による、ユーザが自身の反応の強さをスコア付けすることを可能にするアノテーションプロセスを示す例示的なグラフィカルユーザインターフェース1900を示す。アノテーションについて「Yes」または「No」の入力を提供することに加えて、またはその代わりに、ユーザは、スケール上の複数のスコアボタン1902(たとえば、「1」から「5」までのボタン)のうちの1つを選択することなどによって、例文の良さをスコア付けしてもよい。また、アノテーション用の例文を選択するために現在使用されているサンプラ1904のタイプについてのさらなるフィードバックが提供されてもよい。
【0192】
図20に、開示した技術の例示的な実施形態による、隣接するエントリにアノテーションを付ける機能、ならびにアノテーションに関する色付きのフィードバックを示す例示的なグラフィカルユーザインターフェース2000を示す。たとえば、例文が提示されると、ユーザは隣接するエントリを強調表示2002し、メニュー2004から選択して、たとえば、隣接するエントリに正例、負例としてアノテーションを付けたり、隣接するエントリの強調表示をクリアしたりしてもよい。
【0193】
図21に、開示した技術の例示的な実施形態による、複数のタイプの候補サンプリングを示すドロップダウンを示す例示的なグラフィカルユーザインターフェース2100を示す。上述のように、サンプラは、ユーザ入力を通じて手動で選択してもよい。図21に示す実施例では、例文を提供するための様々なタイプのサンプラから選択するためのサンプリング方法メニュー2102が設けられている。現在選択されているサンプラは、選択強調表示2104によって示される。選択可能なサンプラは、選択アイコン2106で示される。たとえば、選択アイコン2106を選択すると、サンプラは自動サンプラ(たとえば、進行過程500)から誤差低減サンプラに変更してもよい。他のタイプのサンプリング方法メニュー、たとえば、ドロップダウンリストなどが使用されてもよい。上述の優先度キュー608を使用することにより、グラフィカルユーザインターフェースに例文を提供するためのサンプリングアルゴリズムを変更しても、ユーザは後続の例文を取得する際の処理の遅れに気付くことはない。
【0194】
図22に、開示した技術の例示的な実施形態による、データにわたる一回限りのキーワード検索を示す例示的なグラフィカルユーザインターフェース2200を示す。加えて、上述のように、シードサンプラ502は、ユーザによって提供された入力を使用して、さらなる例文を検索してもよい。たとえば、ユーザは検索ボックス2202にキーワードを入力して、データセット内を検索し、さらなる例文を特定してもよい。ユーザが検索ボックス2202でキーワード検索したことに応答して、ユーザインターフェース2200は、ユーザの検索を拡張するための追加の選択可能なキーワードまたはフレーズ2204を提示してもよい。たとえば、上述のように、シソーラス、辞書、及び/またはオントロジーを使用して、追加のキーワードまたはフレーズを生成してもよい。選択可能なキーワードまたはフレーズ2204のうちの1つが選択されると、選択されたキーワードまたはフレーズを使用したさらなる検索を実行してもよい。
【0195】
図23に、開示した技術の例示的な実施形態による、ユーザが自身のデータを視覚的に探索することを可能にし得るデータマップを示す例示的なグラフィカルユーザインターフェース2300を示す。上記のように、データセットの非構造化表現を使用して、t-sneまたはPCAなどの技法を使用して、データの次元を2次元または3次元に削減することができる。次いで、これらの低次元表現は、グラフィカルユーザインターフェース2300上にデータマップ2302として表示することができる。データマップ2302は、識別されたクラスタまたは他のデータグループ内のサンプルを表すデータインジケータ2304を含んでもよい。各サンプルは、そのサンプルのアノテーションを表す色、またはそのサンプルにアノテーションが付けられていないかを示す色を有してもよい。加えて、サンプルの信頼度スコアが、所与のサンプルを表すアイコンのサイズによってグラフィカルに表現されてもよい(たとえば、円の直径が信頼度スコアに基づいて異なる)。アノテータ間の不一致/間違いは、データマップ2302上でエラーアイコン(たとえば、赤色、または間違いを示す独特の形状もしくはパターン)を介してさらに示されてもよい。ユーザは、データマップ2302でデータを移動させ、アノテーションのための特定の例文2306を探して選択することができる。たとえば、ユーザは、アノテーションを付けたいサンプルの周囲に境界ボックスまたは投げ縄を描いてもよい。上述のように、シードサンプラ502は、ユーザによって提供されたこの入力を使用して、さらなる例文を提示してもよい。たとえば、ユーザは、まだアノテーションが付けられていない識別されたサンプルのクラスタにアノテーションを付けることを選択してもよい。あるいは、ユーザは、クラスタ内のデータ要素にアノテーションを付けるために複数の異なるアノテーションが使用されたことを表す、サンプルに関連付けられたいくつかの色を使用して、サンプルのクラスタにアノテーションを付けることを選択してもよい。したがって、ユーザは、所望のアノテーションを明確にするか、あるいはさらなる入力を提供して、選択したデータの正しいアノテーション付けを容易にしてもよい。
【0196】
図24に、開示した技術の例示的な実施形態による、いかにして失敗状態を処理することができ、情報がユーザに返されるかを示す例示的なグラフィカルユーザインターフェース2400を示す。たとえば、失敗状態が表示された理由についてフィードバック2402が提供され、失敗状態を解決する方法についての推奨2404が提供されてもよい。推奨2404を自動的に開始するための推奨行動ボタン2406が設けられてもよい。
【0197】
図25に、開示した技術の例示的な実施形態による、以前にアノテーションが付けられたエントリのリスト及びそれらのエントリの管理方法を示す例示的なグラフィカルユーザインターフェース2500を示す。たとえば、アノテーションをレビューするためのレビューボタン1308、1324を選択すると、ユーザインターフェース2500に移動し得る。アノテーションのレビューを実行する際、ユーザはアノテーションのいずれかを選択して、そのアノテーションに関連するアノテーションを変更してもよい。たとえば、アノテーションを選択すると、アノテーションメニュー2502に、異なるアノテーションを選択するためのオプションを提示し得る。
【0198】
図26に、開示した技術の例示的な実施形態による例示的なコンピュータシステムを示す。
【0199】
開示した技術の特定の態様は、本明細書では、システム及び方法、及び/またはアプリケーション、プログラム、または他のコンピュータ関連の実施態様及び構成に関して説明している。本明細書に記載の「システム」は、単一のコンピュータまたは分散コンピューティングアーキテクチャを利用し得るコンピュータ関連のシステム及びコンポーネントを指す場合がある。グラフィカルユーザインターフェースの態様を示し、本明細書で説明した様々な図の図解は、表示されるデータに加え、機能的なインタラクティブ要素及び出力を指し、これらは、入出力コントローラ及び/または1つまたは複数のコンピューティングシステムの他のシステムによって制御し得る。1つまたは複数のコンピューティングシステムは、本明細書で言及する様々なシステム、方法、及び/またはアプリケーション/プログラムを実装するための機能コンポーネント、たとえば、命令を記憶するための1つまたは複数のメモリデバイス及び/または他の記憶デバイスに結合される1つまたは複数のプロセッサを含む1つまたは複数のコンピュータを含むことができ、命令は、1つまたは複数のプロセッサによって実行されると、開示した技術の説明した実施形態の様々な態様を実施するための特定のタスクをコンピュータ(複数可)に実行させる。
【0200】
コンピュータ(複数可)のそのようなコンポーネントは、上記で簡単に述べたように、入力デバイスからの入力、たとえば、グラフィカルユーザインターフェースの表示を見ているコンピュータのユーザからの対話型入力を受け取り、1つまたは複数の表示デバイスあるいは他の出力周辺デバイスへのデータの出力を制御するための入力/出力コントローラに結合されてもよい。本明細書で言及される「方法」は、1つまたは複数のプロセッサ及び/または他のコンピュータシステムコンポーネントによって実行される一連の動作を含むコンピュータ実装方法とすることができる。本明細書におけるアプリケーション、プログラムなどへの参照は、モジュール、ハードディスク、及び/またはリムーバブルストレージメディア(別名「コンピュータ可読媒体」もしくは「コンピュータ可読記憶媒体」または「非一時的コンピュータ可読記憶媒体」)に記憶され得るコンピュータ実行可能命令とすることができ、それらの命令は、1つまたは複数のプロセッサによって実行されると、1つまたは複数のコンピュータシステムに、本明細書に記載の実施形態に関する特定の機能を実行させる。本明細書に記載の様々なコンピュータ及び/またはシステムのコンポーネントは、インターネットまたは内部ネットワークなどのネットワークへのネットワーク接続にアクセスして、たとえば、1つまたは複数の外部サーバとデータを交換することによって、そのようなネットワークを介してデータを送受信するためのネットワークインターフェースコンポーネントを含むことができる。
【0201】
様々な図に関して本明細書で説明する論理演算は、(1)コンピューティングデバイス(たとえば、図26に記載のコンピューティングデバイス)上で実行される一連のコンピュータ実装行為またはプログラムモジュール(すなわち、ソフトウェア)として、(2)コンピューティングデバイス内の相互接続された機械論理回路または回路モジュール(すなわち、ハードウェア)として、及び/または(3)コンピューティングデバイスのソフトウェア及びハードウェアの組み合わせとして実装し得ることを理解されたい。したがって、本明細書で説明する論理演算は、ハードウェア及びソフトウェアのいかなる特定の組み合わせにも限定されない。その実装は、コンピューティングデバイスの性能及び他の要件に応じて選択できる問題である。したがって、本明細書に記載の論理演算は、動作、構造デバイス、行為、またはモジュールと様々に呼ぶ。これらの動作、構造デバイス、行為、及びモジュールは、ソフトウェア、ファームウェア、専用デジタルロジック、及びそれらの任意の組み合わせで実装してもよい。また、図示及び本明細書の説明よりも多いまたは少ない動作を実行してもよいことも理解されたい。これらの動作は、本明細書の説明とは異なる順序で実行されてもよい。
【0202】
図26を参照すると、本発明の実施形態が実装され得る例示的なコンピューティングデバイス2600が示されている。たとえば、本明細書に記載のアノテーションサーバ202またはクライアントコンピュータ206のそれぞれは、コンピューティングデバイス2600などのコンピューティングデバイスとしてそれぞれ実装されてもよい。例示的なコンピューティングデバイス2600は、本発明の実施形態が実装され得る適切なコンピューティング環境の一実施例にすぎないことを理解されたい。任意選択で、コンピューティングデバイス2600は、よく知られているコンピューティングシステムとすることができ、たとえば、限定はしないが、パーソナルコンピュータ、サーバ、ハンドヘルドもしくはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、ネットワークパーソナルコンピュータ(PC)、ミニコンピュータ、メインフレームコンピュータ、組み込みシステム、及び/または上記のシステムもしくはデバイスのいずれかを複数含む分散コンピューティング環境とすることができる。分散コンピューティング環境により、通信ネットワークまたは他のデータ伝送媒体に接続されたリモートコンピューティングデバイスは、様々なタスクを実行することが可能になる。分散コンピューティング環境では、プログラムモジュール、アプリケーション、及び他のデータは、ローカル及び/またはリモートコンピュータの記憶媒体に記憶されてもよい。
【0203】
一実施形態では、コンピューティングデバイス2600は、協働してタスクを実行する、互いに通信する2つ以上のコンピュータを備えてもよい。たとえば、限定ではないが、アプリケーションは、そのアプリケーションの命令の同時及び/または並列処理を可能にするような方法で分割されてもよい。あるいは、アプリケーションによって処理されるデータは、2つ以上のコンピュータによるデータセットの異なる部分の同時及び/または並列処理を可能にするような方法で分割されてもよい。一実施形態では、コンピューティングデバイス2600が仮想化ソフトウェアを利用して、コンピューティングデバイス2600内のコンピュータの数にそのまま縛られないいくつかのサーバの機能を提供してもよい。たとえば、仮想化ソフトウェアは、4つの物理コンピュータ上に20個の仮想サーバを提供してもよい。一実施形態では、クラウドコンピューティング環境でアプリケーション及び/または複数のアプリケーションを実行することにより、上記で開示した機能が提供されてもよい。クラウドコンピューティングは、動的にスケーラブルなコンピューティングリソースを使用して、ネットワーク接続を介したコンピューティングサービスを提供することを含んでもよい。クラウドコンピューティングは、仮想化ソフトウェアによって少なくとも部分的にサポートされてもよい。クラウドコンピューティング環境は、企業によって確立される場合があり、及び/または必要に応じてサードパーティプロバイダからレンタルされる場合がある。一部のクラウドコンピューティング環境は、企業により所有及び運用されるクラウドコンピューティングリソースに加え、サードパーティプロバイダからレンタル及び/またはリースされるクラウドコンピューティングリソースを含む場合がある。
【0204】
最も基本的な構成では、コンピューティングデバイス2600は、典型的には少なくとも1つの処理ユニット2620及びシステムメモリ2630を含む。コンピューティングデバイスの正確な構成及びタイプに応じて、システムメモリ2630は、揮発性(たとえば、ランダムアクセスメモリ(RAM))、不揮発性(たとえば、読み取り専用メモリ(ROM)、フラッシュメモリなど)、またはこれら2つの組み合わせであってもよい。この最も基本的な構成は図26に破線2610で示している。処理ユニット2620は、コンピューティングデバイス2600の動作に必要な算術演算及び論理演算を実行する標準的なプログラマブルプロセッサであってもよい。1つの処理ユニット2620のみを図示しているが、複数のプロセッサが存在してもよい。したがって、命令はプロセッサによって実行されるものとして論じている場合があるが、命令は同時に、連続的に、あるいは1つまたは複数のプロセッサによって実行されてもよい。コンピューティングデバイス2600は、コンピューティングデバイス2600の様々なコンポーネント間で情報を伝達するためのバスまたは他の通信メカニズムをさらに含んでもよい。
【0205】
コンピューティングデバイス2600は、さらなる特徴/機能を有してもよい。たとえば、コンピューティングデバイス2600は、磁気もしくは光ディスクまたはテープを含むがこれらに限定されない、リムーバブルストレージ2640及び非リムーバブルストレージ2650などの追加のストレージを含んでもよい。コンピューティングデバイス2600は、そのデバイスが本明細書に記載の通信経路などを介して他のデバイスと通信することを可能にするネットワーク接続(複数可)2680をさらに含んでもよい。ネットワーク接続(複数可)2680は、モデム、モデムバンク、イーサネットカード、ユニバーサルシリアルバス(USB)インターフェースカード、シリアルインターフェース、トークンリングカード、ファイバー分散データインターフェース(FDDI)カード、ワイヤレスローカルエリアネットワーク(WLAN)カード、無線トランシーバーカード、たとえば、符号分割多重アクセス(CDMA)、モバイル通信用グローバルシステム(GSM)、ロングタームエボリューション(LTE)、世界規模相互運用マイクロ波アクセス(WiMAX:worldwide interoperability for microwave access)、及び/または他のエアインターフェースプロトコルの無線トランシーバーカード、ならびに他のよく知られているネットワークデバイスの形態をとってもよい。コンピューティングデバイス2600は、キーボード、キーパッド、スイッチ、ダイヤル、マウス、トラックボール、タッチスクリーン、音声認識器、カードリーダー、紙テープリーダー、または他のよく知られている入力デバイスなどの入力デバイス(複数可)2670を有してもよい。プリンタ、ビデオモニタ、液晶ディスプレイ(LCD)、タッチスクリーンディスプレイ、ディスプレイ、スピーカーなどの出力デバイス(複数可)2660が含まれてもよい。コンピューティングデバイス2600のコンポーネント間のデータ通信を容易にするために、追加のデバイスがバスに接続されてもよい。これらのデバイスは全て当技術分野ではよく知られており、ここで詳細に議論する必要はない。
【0206】
処理ユニット2620は、有形のコンピュータ可読媒体に符号化されたプログラムコードを実行するように構成されてもよい。有形のコンピュータ可読媒体とは、コンピューティングデバイス2600(すなわち、マシン)に特定の方法で動作させるデータを提供可能な任意の媒体を指す。様々なコンピュータ可読媒体を利用して、処理ユニット2620に命令を提供して、実行させてもよい。有形のコンピュータ可読媒体の実施例は、限定はしないが、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータなどの情報を記憶するための任意の方法または技術で実装される揮発性媒体、不揮発性媒体、リムーバブルメディア及び非リムーバブルメディアを含んでもよい。システムメモリ2630、リムーバブルストレージ2640、及び非リムーバブルストレージ2650は全て、有形のコンピュータ記憶媒体の実施例である。例示的な有形のコンピュータ可読記録媒体は、限定はしないが、集積回路(たとえば、フィールドプログラマブルゲートアレイまたは特定用途向けIC)、ハードディスク、光ディスク、光磁気ディスク、フロッピーディスク、磁気テープ、ホログラフィック記憶媒体、ソリッドステートデバイス、RAM、ROM、電気的消去可能プログラム読み取り専用メモリ(EEPROM)、フラッシュメモリまたは他のメモリ技術、CD-ROM、デジタル多用途ディスク(DVD)または他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、または他の磁気ストレージデバイスを含む。
【0207】
実行可能なソフトウェアをコンピュータにロードして実装できる機能を、よく知られている設計ルールによりハードウェア実装に変換できることは、電気工学技術及びソフトウェア工学技術の基本である。ソフトウェア対ハードウェアのコンセプトの実装の意思決定は、典型的には、ソフトウェアドメインからハードウェアドメインへの変換に関連する問題というよりも、設計の安定性と、生産されるユニットの数との考慮事項に依存する。一般に、ハードウェア実装のリスピンはソフトウェア設計のリスピンよりも費用がかかるので、まだ頻繁に変更される設計はソフトウェアで実装する方が好ましい場合がある。一般に、大量生産される安定した設計は、特定用途向け集積回路(ASIC)などのハードウェアで実装することが好ましい場合があり、その理由は、大量生産では、ハードウェア実装はソフトウェア実装よりも安価な場合があるためである。多くの場合、設計は、ソフトウェア形式で開発及びテストし、その後、よく知られている設計ルールによって、ソフトウェアの命令をハードワイヤした特定用途向け集積回路の同等のハードウェア実装に変換してもよい。新たなASICによって制御されるマシンが特定のマシンまたは装置であるのと同じように、同様に、プログラムされた及び/または実行可能な命令がロードされたコンピュータは、特定のマシンまたは装置と見なしてもよい。
【0208】
例示的な実施態様では、処理ユニット2620は、システムメモリ2630に記憶されたプログラムコードを実行してもよい。たとえば、バスはシステムメモリ2630にデータを運んでもよく、そこから処理ユニット2620が命令を受け取り、実行する。任意選択で、システムメモリ2630によって受け取られたデータは、処理ユニット2620による実行の前または後に、リムーバブルストレージ2640または非リムーバブルストレージ2650に記憶されてもよい。
【0209】
本明細書に記載の様々な技法は、ハードウェアもしくはソフトウェア、または適切な場合にはそれらの組み合わせに関連して実装してもよいことを理解されたい。したがって、本開示の主題の方法及び装置、またはそれらの特定の態様もしくは部分は、たとえば、フロッピーディスク、CD-ROM、ハードドライブ、または他の任意のマシン可読記憶媒体などの有形媒体に具現化されたプログラムコード(すなわち、命令)の形をとってもよく、プログラムコードがコンピューティングデバイスなどのマシンにロードされて実行されると、マシンは本開示の主題を実施するための装置になる。プログラム可能なコンピュータ上でプログラムコードを実行する場合、コンピューティングデバイスは一般に、プロセッサと、プロセッサによって読み取り可能な記憶媒体(揮発性及び不揮発性メモリ及び/または記憶素子を含む)と、少なくとも1つの入力デバイスと、少なくとも1つの出力デバイスとを含む。1つまたは複数のプログラムは、たとえば、アプリケーションプログラミングインターフェース(API)、再利用可能なコントロールなどを使用して、本開示の主題に関連して説明したプロセスを実装または利用してもよい。そのようなプログラムは、コンピュータシステムと通信するように、高水準の手続き型またはオブジェクト指向プログラミング言語で実装されてもよい。しかしながら、所望であれば、プログラム(複数可)はアセンブリ言語または機械語で実装することができる。いずれにせよ、言語はコンパイル型言語でもインタプリタ型言語でもよく、ハードウェア実装と組み合わせられてもよい。
【0210】
方法及びシステムの実施形態は、方法、システム、装置及びコンピュータプログラム製品のブロック図及びフローチャート図を参照して本明細書で説明している場合がある。ブロック図及びフローチャート図の各ブロック、ならびにブロック図及びフローチャート図におけるブロックの組み合わせは、それぞれ、コンピュータプログラム命令によって実装できることは理解されよう。これらのコンピュータプログラム命令を汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置にロードしてマシンを生成し、コンピュータまたは他のプログラム可能なデータ処理装置で実行される命令により、フローチャートの1つまたは複数のブロックで指定された機能を実施する手段が作成されるようにしてもよい。
【0211】
これらのコンピュータプログラム命令は、コンピュータ可読メモリに記憶されてもよく、コンピュータプログラム命令は、コンピュータまたは他のプログラム可能なデータ処理装置に特定の方法で機能するように指示して、コンピュータ可読メモリに記憶された命令により、フローチャートの1つまたは複数のブロックで指定された機能を実施するためのコンピュータ可読命令を含む製品が生産されるようにすることができる。また、コンピュータプログラム命令を、コンピュータまたは他のプログラム可能なデータ処理装置にロードして、コンピュータまたは他のプログラム可能な装置で一連の動作ステップを実行させることによって、コンピュータ実装プロセスを生成し、それによって、コンピュータまたは他のプログラム可能な装置で実行される命令により、フローチャートの1つまたは複数のブロックで指定された機能を実施するためのステップが提供されるようにしてもよい。
【0212】
したがって、ブロック図及びフローチャート図のブロックは、指定された機能を実行するための手段の組み合わせ、指定された機能を実行するためのステップの組み合わせ、及び指定された機能を実行するためのプログラム命令手段をサポートする。また、ブロック図及びフローチャート図の各ブロック、ならびにブロック図及びフローチャート図のブロックの組み合わせは、指定された機能またはステップを実行する専用ハードウェアベースのコンピュータシステム、あるいは専用ハードウェア及びコンピュータ命令の組み合わせによって実装することができることを理解されたい。
【0213】
「及び/または」という語句の使用は、選択肢のリストの任意の1つまたは任意の組み合わせが使用できることを示す。たとえば、「A、B、及び/またはC」とは、「A」、「B」、または「C」、「A及びB」、「A及びC」、または「B及びC」、あるいは「A及びB及びC」を意味する。本明細書で使用する場合、単数形「a」、「an」、及び「the」は、文脈が明確に別途指示しない限り、複数の指示対象を含む。さらに、本明細書では、読者の便宜のためにタイトルまたはサブタイトルが使用される場合があり、これらは開示した技術の範囲に影響を与えないものとする。「備える(comprising)」もしくは「含む(containing)」または「含む(including)」とは、少なくとも指定された化合物、要素、粒子、または方法のステップが組成物もしくは物品または方法の中に存在することを意味するが、他のそのような化合物、材料、粒子、方法のステップが指定されたものと同じ機能を有する場合でも、他の化合物、材料、粒子、方法のステップの存在を排除するものではない。
【0214】
例示的な実施形態を説明する際に、明確にするように用語を使用する。各用語は、当業者によって理解されるその最も広い意味を企図しており、同様の目的を達成するために同様の方法で動作する全ての技術的均等物を含むものとする。
【0215】
方法の1つまたは複数のステップの言及は、追加の方法のステップ、または明示的に特定されたそれらのステップの間の介在する方法のステップの存在を排除しないことを理解されたい。方法のステップは、本明細書の記載とは異なる順序で実行されてもよい。同様に、デバイスまたはシステムにおける1つまたは複数のコンポーネントの言及は、追加のコンポーネント、または明示的に特定されたそれらのコンポーネント間の介在するコンポーネントの存在を排除しないことも理解されたい。
【0216】
本開示ではいくつかの実施形態を提供しているが、開示したシステム及び方法が、本開示の精神または範囲から逸脱することなく、他の多くの特定の形態で具現化し得ることを理解されたい。本実施例は限定ではなく例示的なものと見なされるべきであり、その意図は本明細書に示した詳細に限定されるべきではない。たとえば、様々な要素またはコンポーネントが別のシステムにおいて組み合わせられても統合されてもよく、特定の機能が省略されても実装されなくてもよい。
【0217】
また、様々な実施形態で個別または別個のものとして説明及び図示した技法、システム、サブシステム、及び方法は、本開示の範囲から逸脱することなく、他のシステム、モジュール、技法、または方法と組み合わせられても統合されてもよい。互いに直接結合されるかまたは通信するように図示または説明している他のアイテムは、電気的、機械的、またはそれ以外にかかわらず、何らかのインターフェース、デバイス、または中間コンポーネントを介して間接的に結合されるかまたは通信してもよい。変更、置換、及び変形の他の実施例は、当業者によって解明可能であり、本明細書に開示した精神及び範囲から逸脱せずに実施することができる。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26