(57)【要約】一部の態様では、機械学習モデルを迅速に構築し、管理し、共有するためのシステム及び方法を提供する。機械学習モデルのライフサイクルを管理することは、アノテーションなしデータのセットを受信することと、アノテーションなしデータのサンプルのアノテーションを要求して、アノテーション付きデータのセットを生成することと、アノテーション付きデータのセットに基づいて機械学習モデルを構築することと、機械学習モデルをクライアントシステムに配備することであって、クライアントシステムにおいて本番アノテーションが生成される、配備することと、生成された本番アノテーションを収集し、本番アノテーションを組み込んだ新たな機械学習モデルを生成することと、アノテーション付きデータのセットに基づいて構築された機械学習モデル、または新たな機械学習モデルの一方を選択することと、を含むことができる。【選択図】図３
2020522055.tif 000002
【特許請求の範囲】
【請求項１】
機械学習モデルのライフサイクルを管理する方法であって、
アノテーションなしデータのセットを受信することと、
前記アノテーションなしデータのサンプルのアノテーションを要求して、アノテーション付きデータのセットを生成することと、
前記アノテーション付きデータのセットに基づいて機械学習モデルを構築することと、
前記機械学習モデルをクライアントシステムに配備することであって、前記クライアントシステムにおいて本番アノテーションが生成される、前記配備することと、
前記生成された本番アノテーションを収集し、前記本番アノテーションを組み込んだ新たな機械学習モデルを生成することと、
前記アノテーション付きデータのセットに基づいて構築された前記機械学習モデル、または前記新たな機械学習モデルの一方を選択することと、
を含む、前記方法。
【請求項２】
適合率、再現率、平均適合率、受信者動作者特性スコア、またはＦベータスコアを含む、前記機械学習モデルの１つまたは複数の品質尺度を報告すること
をさらに含む、請求項１に記載の方法。
【請求項３】
前記モデルを第三者と共有すること
をさらに含む、請求項１に記載の方法。
【請求項４】
サンプルのアノテーションを要求することは、
ユーザ入力または自動サンプラ選択に基づいて、前記アノテーションなしデータのセットからサンプルを選択すること
を含む、請求項１に記載の方法。
【請求項５】
前記ユーザ入力は、セマンティック検索、類似サンプルの選択、または前記アノテーションなしデータの視覚マップ上の選択のうちの１つまたは複数を含む、請求項４に記載の方法。
【請求項６】
前記自動サンプラ選択は、進行過程内の複数のサンプラのうちの１つからのものである、請求項４に記載の方法。
【請求項７】
前記複数のサンプラのそれぞれは、異なるサンプリングアルゴリズムを使用する、請求項６に記載の方法。
【請求項８】
前記それぞれのサンプリングアルゴリズムは、密度サンプリングアルゴリズム、エントロピーサンプリングアルゴリズム、推定誤差低減サンプリングアルゴリズム、網羅的なサンプリングアルゴリズム、フラグ付き予測アルゴリズム、ハードネガティブマイニングサンプリングアルゴリズム、高信頼度サンプリングアルゴリズム、線形サンプリングアルゴリズム、マップ可視化サンプリングアルゴリズム、メタデータ検索サンプリングアルゴリズム、最小マージンサンプリングアルゴリズム、クエリバイコミッティサンプリングアルゴリズム、ランダムサンプリングアルゴリズム、レビューサンプリングアルゴリズム、検索サンプリングアルゴリズム、類似性サンプリングアルゴリズム、前記入力がサンプルをスキップするものであったサンプルのサンプリングのタイプのアルゴリズム、層化サンプリングアルゴリズム、最も信頼性のあるサンプルのアルゴリズム、または最も不確実なサンプルのアルゴリズムから選択される、請求項７に記載の方法。
【請求項９】
前記進行過程は、前記複数の前記サンプラのうちのサンプラ間で連続的に変更されることを含む、請求項７に記載の方法。
【請求項１０】
前記複数のサンプラの各サンプラは、前記進行過程における前または次のサンプラのいずれに移動するかを決定する結果の期待分布を有する、請求項９に記載の方法。
【請求項１１】
モデル予測が誤っている所定数のサンプルアノテーションを受信すると、前記進行過程はサンプラ間で、前記進行過程における前のサンプラに変更される、請求項１０に記載の方法。
【請求項１２】
モデル予測が一致する所定数のサンプルアノテーションを受信すると、前記進行過程はサンプラ間で、前記進行過程における次のサンプラに変更される、請求項１０に記載の方法。
【請求項１３】
前記機械学習モデルを構築することは、共有モデルを受信し、中間モデルの重みを前記共有モデルの重みに初期化し、異なる学習率で訓練することを含む、請求項１に記載の方法。
【請求項１４】
前記アノテーションなしデータのサンプルのアノテーションを要求することは、テストデータのセットの網羅的なアノテーションを要求することを含む、請求項１に記載の方法。
【請求項１５】
前記テストデータのセットの前記網羅的なアノテーションは、密度サンプリング、レベルセットツリー、またはランダムサンプリングのうちの１つまたは複数を含む遠距離教師あり学習によって実行される、請求項１４に記載の方法。
【請求項１６】
前記アノテーションなしデータのサンプルのアノテーションを要求することは、前記アノテーションなしデータのセットからサンプルを選択するための、複数のサンプラからのサンプラの推奨をグラフィカルユーザインターフェース上に提示することを含む、請求項１に記載の方法。
【請求項１７】
前記グラフィカルユーザインターフェース上にデータ品質メトリック及びデータ数量メトリックを提示することをさらに含む、請求項１６に記載の方法。
【請求項１８】
前記データ数量メトリックは、いくつかの訓練されたサンプル、いくつかの正例、いくつかの負例、またはサンプルのクラスについて訓練されたいくつかのサンプルのうちの１つまたは複数を含む、請求項１７に記載の方法。
【請求項１９】
前記データ品質メトリックは、正解率、適合率、再現率、またはＦ１スコアのうちの１つまたは複数を含む、請求項１７に記載の方法。
【請求項２０】
グラフィカルユーザインターフェース上に、前記アノテーションなしデータのセットのアノテーションにわたる不一致を提示することをさらに含む、請求項１に記載の方法。
【請求項２１】
前記機械学習モデルを構築することは、前記機械学習モデルを確立するためのアルゴリズム及び損失関数を選択することを含む、請求項１に記載の方法。
【請求項２２】
前記アルゴリズムを選択することは、モデルタイプに基づく、請求項２１に記載の方法。
【請求項２３】
前記アノテーションなしデータのセットからアノテーションが付けられたアノテーション付き訓練データのセットでモデルを複数回訓練し、実行にわたる品質メトリックの分散を測定することによって、収束をテストすること
をさらに含む、請求項２１に記載の方法。
【請求項２４】
前記品質メトリックは学習曲線の傾きを含む、請求項２３に記載の方法。
【請求項２５】
前記モデルは、所与のモデルタイプ及び前記アルゴリズムに対して選択されたデフォルトのハイパーパラメータを使用して訓練される、請求項２１に記載の方法。
【請求項２６】
前記ハイパーパラメータは、ランダム選択、グリッド探索、またはベイズ推定法のうちの１つまたは複数を使用して選択される、請求項２５に記載の方法。
【請求項２７】
ランダムシード、アルゴリズム選択、損失関数、ハイパーパラメータ、データセット分割、データセットハッシュ、またはクラス重みのうちの１つまたは複数が、前記モデルに対して記憶される、請求項２５に記載の方法。
【請求項２８】
前記機械学習モデルは、バージョン管理され、切り替えられ、またはロールバックされる、請求項１に記載の方法。
【請求項２９】
データドリフトまたはコンセプトドリフトを介してモデル間の変化を監視すること
をさらに含む、請求項１に記載の方法。
【請求項３０】
コンセプトドリフトは、前記アノテーション付きデータのセットと前記本番アノテーションとの間でいくつかの変化した予測を定量化することに基づいてモデルを訓練することにより計算される、請求項２９に記載の方法。
【請求項３１】
データドリフトは、前記アノテーション付きデータのセットと前記本番アノテーションとの間のコーパス統計及び／またはコーパス比較に基づいて測定される、請求項２９に記載の方法。
【請求項３２】
データドリフトまたはコンセプトドリフトを識別した場合に警告が生成される、請求項２９に記載の方法。
【請求項３３】
前記データドリフトまたは前記コンセプトドリフトは、経時的なアノテーションなしデータに関するメトリック、または経時的なモデル予測に関するメトリックを含む、請求項３２に記載の方法。
【請求項３４】
前記モデルを共有することは、特徴ハッシュ化、暗号ハッシュ化、またはランダムプロジェクションのうちの１つまたは複数を実行することを含む、請求項３に記載の方法。
【請求項３５】
前記モデルを共有することは、前記モデルの勾配更新を共有することを含む、請求項３に記載の方法。
【請求項３６】
前記勾配更新は、計算グラフのレイヤに加算される、請求項３５に記載の方法。
【請求項３７】
前記モデルを共有することは、１つまたは複数のモデル資産を共有することを含む、請求項３に記載の方法。
【請求項３８】
前記１つまたは複数のモデル資産は、データセットで訓練された単語埋め込み、単語ベクトル、アノテーションのセット、キーワード及びフレーズのリスト、例文のリスト、言語モデル、辞書、ならびに訓練されたモデル、及びモデルアーキテクチャを含む、請求項３７に記載の方法。
【請求項３９】
前記１つまたは複数のモデル資産は、個人を特定可能な情報がサニタイズされる、請求項３８に記載の方法。
【請求項４０】
前記進行過程は、シードサンプラからハードネガティブサンプラ、層化サンプラ、不確実性サンプラへと進むことを含む、請求項６に記載の方法。
【請求項４１】
サンプルのアノテーションを要求することは、アノテーションフィードバックのためにグラフィカルユーザインターフェース上にユーザに質問を提示することを含む、請求項１に記載の方法。
【請求項４２】
前記アノテーションなしデータのサンプルに対して１つまたは複数のアノテーションを予測することをさらに含む、請求項１に記載の方法。
【請求項４３】
前記１つまたは複数のアノテーションの前記予測は、前記アノテーションなしデータのサンプルのアノテーションを要求する前である、請求項４２に記載の方法。
【請求項４４】
前記予測された１つまたは複数のアノテーションをサンプリングスコアに基づいて優先度キューに記憶することをさらに含む、請求項４２に記載の方法。
【請求項４５】
前記サンプリングスコアは、前記予測された１つまたは複数のアノテーションの信頼度スコアである、請求項４４に記載の方法。
【請求項４６】
前記予測された１つまたは複数のアノテーションを前記優先度キューに記憶する前に、前記サンプリングスコアが閾値サンプリングスコアより大きいか否かを判定することをさらに含む、請求項４４に記載の方法。
【請求項４７】
前記閾値サンプリングスコア未満であると判定されたサンプリングスコアを有する予測を破棄することをさらに含む、請求項４６に記載の方法。
【請求項４８】
前記優先度キューは、所定の最大数の予測を記憶する、請求項４４に記載の方法。
【請求項４９】
前記予測を前記優先度キューに記憶する前に、前記優先度キューに記憶されたいくつかの予測が前記予測の所定の最大数未満であると判定することをさらに含む、請求項４４に記載の方法。
【請求項５０】
前記予測を前記優先度キューに記憶する前に、前記サンプリングスコアが、前記優先度キュー内の少なくとも１つの以前に記憶された予測よりも大きいと判定することをさらに含む、請求項４４に記載の方法。
【請求項５１】
最も低いサンプリングスコアを有する、前記優先度キュー内の以前に記憶された予測を破棄することをさらに含む、請求項４４に記載の方法。
【請求項５２】
前記アノテーションなしデータのサンプルのアノテーションを要求することは、複数の優先度キューの中から前記優先度キューを選択することを含む、請求項４４に記載の方法。
【請求項５３】
機械学習モデルのライフサイクルを管理するためのシステムであって、
プロセッサと、
前記プロセッサに結合され、コンピュータ可読命令を記憶する非一時的メモリデバイスであって、前記コンピュータ可読命令は、前記プロセッサより実行された場合に、前記システムに機能を実行させ、前記機能は、
アノテーションなしデータのセットを受信することと、
前記アノテーションなしデータのサンプルのアノテーションを要求して、アノテーション付きデータのセットを生成することと、
前記アノテーション付きデータのセットに基づいて機械学習モデルを構築することと、
前記機械学習モデルをクライアントシステムに配備することであって、前記クライアントシステムにおいて本番アノテーションが生成される、前記配備することと、
前記生成された本番アノテーションを収集し、前記本番アノテーションを組み込んだ新たな機械学習モデルを生成することと、
前記アノテーション付きデータのセットに基づいて構築された前記機械学習モデル、または前記新たな機械学習モデルの一方を選択することと、
を含む、前記非一時的メモリデバイスと、
を備える、前記システム。
【請求項５４】
前記システムによって実行される前記機能は、
適合率、再現率、平均適合率、受信者動作者特性スコア、またはＦベータスコアを含む、前記機械学習モデルの１つまたは複数の品質尺度を報告すること
をさらに含む、請求項５３に記載のシステム。
【請求項５５】
前記システムによって実行される前記機能は、
前記モデルを第三者と共有すること
をさらに含む、請求項５３に記載のシステム。
【請求項５６】
サンプルのアノテーションを要求することは、
ユーザ入力または自動サンプラ選択に基づいて、前記アノテーションなしデータのセットからサンプルを選択すること
を含む、請求項５３に記載のシステム。
【請求項５７】
前記ユーザ入力は、セマンティック検索、類似サンプルの選択、または前記アノテーションなしデータの視覚マップ上の選択のうちの１つまたは複数を含む、請求項５６に記載のシステム。
【請求項５８】
前記自動サンプラ選択は、進行過程内の複数のサンプラのうちの１つからのものである、請求項５６に記載のシステム。
【請求項５９】
前記複数のサンプラのそれぞれは、異なるサンプリングアルゴリズムを使用する、請求項５８に記載のシステム。
【請求項６０】
前記それぞれのサンプリングアルゴリズムは、密度サンプリングアルゴリズム、エントロピーサンプリングアルゴリズム、推定誤差低減サンプリングアルゴリズム、網羅的なサンプリングアルゴリズム、フラグ付き予測アルゴリズム、ハードネガティブマイニングサンプリングアルゴリズム、高信頼度サンプリングアルゴリズム、線形サンプリングアルゴリズム、マップ可視化サンプリングアルゴリズム、メタデータ検索サンプリングアルゴリズム、最小マージンサンプリングアルゴリズム、クエリバイコミッティサンプリングアルゴリズム、ランダムサンプリングアルゴリズム、レビューサンプリングアルゴリズム、検索サンプリングアルゴリズム、類似性サンプリングアルゴリズム、前記入力がサンプルをスキップするものであったサンプルのサンプリングのタイプのアルゴリズム、層化サンプリングアルゴリズム、最も信頼性のあるサンプルのアルゴリズム、または最も不確実なサンプルのアルゴリズムから選択される、請求項５９に記載のシステム。
【請求項６１】
前記進行過程は、前記複数の前記サンプラのうちのサンプラ間で連続的に変更されることを含む、請求項５８に記載のシステム。
【請求項６２】
前記複数のサンプラの各サンプラは、前記進行過程における前または次のサンプラのいずれに移動するかを決定する結果の期待分布を有する、請求項６１に記載のシステム。
【請求項６３】
モデル予測が誤っている所定数のサンプルアノテーションを受信すると、前記進行過程はサンプラ間で、前記進行過程における前のサンプラに変更される、請求項６２に記載のシステム。
【請求項６４】
モデル予測が一致する所定数のサンプルアノテーションを受信すると、前記進行過程はサンプラ間で、前記進行過程における次のサンプラに変更される、請求項５３に記載のシステム。
【請求項６５】
前記機械学習モデルを構築することは、共有モデルを受信し、中間モデルの重みを前記共有モデルの重みに初期化し、異なる学習率で訓練することを含む、請求項５３に記載のシステム。
【請求項６６】
前記アノテーションなしデータのサンプルのアノテーションを要求することは、テストデータのセットの網羅的なアノテーションを要求することを含む、請求項５３に記載のシステム。
【請求項６７】
前記テストデータのセットの前記網羅的なアノテーションは、密度サンプリング、レベルセットツリー、またはランダムサンプリングのうちの１つまたは複数を含む遠距離教師あり学習によって実行される、請求項６６に記載のシステム。
【請求項６８】
前記アノテーションなしデータのサンプルのアノテーションを要求することは、前記アノテーションなしデータのセットからサンプルを選択するための、複数のサンプラからのサンプラの推奨をグラフィカルユーザインターフェース上に提示することを含む、請求項５３に記載のシステム。
【請求項６９】
前記システムによって実行される前記機能は、前記グラフィカルユーザインターフェース上にデータ品質メトリック及びデータ数量メトリックを提示することをさらに含む、請求項６８に記載のシステム。
【請求項７０】
前記データ数量メトリックは、いくつかの訓練されたサンプル、いくつかの正例、いくつかの負例、またはサンプルのクラスについて訓練されたいくつかのサンプルのうちの１つまたは複数を含む、請求項６９に記載のシステム。
【請求項７１】
前記データ品質メトリックは、正解率、適合率、再現率、またはＦ１スコアのうちの１つまたは複数を含む、請求項６９に記載のシステム。
【請求項７２】
前記システムによって実行される前記機能は、グラフィカルユーザインターフェース上に、前記アノテーションなしデータのセットのアノテーションにわたる不一致を提示することをさらに含む、請求項５３に記載のシステム。
【請求項７３】
前記機械学習モデルを構築することは、前記機械学習モデルを確立するためのアルゴリズム及び損失関数を選択することを含む、請求項５３に記載のシステム。
【請求項７４】
前記アルゴリズムを選択することは、モデルタイプに基づく、請求項７３に記載のシステム。
【請求項７５】
前記システムによって実行される前記機能は、
前記アノテーションなしデータのセットからアノテーションが付けられたアノテーション付き訓練データのセットでモデルを複数回訓練し、実行にわたる品質メトリックの分散を測定することによって、収束をテストすること
をさらに含む、請求項７３に記載のシステム。
【請求項７６】
前記品質メトリックは学習曲線の傾きを含む、請求項６９に記載のシステム。
【請求項７７】
前記機械学習モデルは、所与のモデルタイプ及び前記アルゴリズムに対して選択されたデフォルトのハイパーパラメータを使用して訓練される、請求項７３に記載のシステム。
【請求項７８】
前記ハイパーパラメータは、ランダム選択、グリッド探索、またはベイズ推定法のうちの１つまたは複数を使用して選択される、請求項７７に記載のシステム。
【請求項７９】
ランダムシード、アルゴリズム選択、損失関数、ハイパーパラメータ、データセット分割、データセットハッシュ、またはクラス重みのうちの１つまたは複数が、前記モデルに対して記憶される、請求項７７記載のシステム。
【請求項８０】
前記機械学習モデルは、バージョン管理され、切り替えられ、またはロールバックされる、請求項５３に記載のシステム。
【請求項８１】
前記システムによって実行される前記機能は、
データドリフトまたはコンセプトドリフトを介してモデル間の変化を監視すること
をさらに含む、請求項５３に記載のシステム。
【請求項８２】
コンセプトドリフトは、前記アノテーション付きデータのセットと前記本番アノテーションとの間でいくつかの変化した予測を定量化することに基づいてモデルを訓練することにより計算される、請求項８１に記載のシステム。
【請求項８３】
データドリフトは、前記アノテーション付きデータのセットと前記本番アノテーションとの間のコーパス統計及び／またはコーパス比較に基づいて測定される、請求項８１に記載のシステム。
【請求項８４】
データドリフトまたはコンセプトドリフトを識別した場合に警告が生成される、請求項８１に記載のシステム。
【請求項８５】
前記データドリフトまたは前記コンセプトドリフトは、経時的なアノテーションなしデータに関するメトリック、または経時的なモデル予測に関するメトリックを含む、請求項８１に記載のシステム。
【請求項８６】
前記モデルを共有することは、特徴ハッシュ化、暗号ハッシュ化、またはランダムプロジェクションのうちの１つまたは複数を実行することを含む、請求項５５に記載のシステム。
【請求項８７】
前記モデルを共有することは、前記モデルの勾配更新を共有することを含む、請求項５５に記載のシステム。
【請求項８８】
前記勾配更新は、計算グラフのレイヤに加算される、請求項８７に記載のシステム。
【請求項８９】
前記モデルを共有することは、１つまたは複数のモデル資産を共有することを含む、請求項５５に記載のシステム。
【請求項９０】
前記１つまたは複数のモデル資産は、データセットで訓練された単語埋め込み、単語ベクトル、アノテーションのセット、キーワード及びフレーズのリスト、例文のリスト、言語モデル、辞書、ならびに訓練されたモデル、及びモデルアーキテクチャを含む、請求項８９に記載のシステム。
【請求項９１】
前記１つまたは複数のモデル資産は、個人を特定可能な情報がサニタイズされる、請求項８９に記載のシステム。
【請求項９２】
前記進行過程は、シードサンプラからハードネガティブサンプラ、層化サンプラ、不確実性サンプラへと進むことを含む、請求項５８に記載のシステム。
【請求項９３】
サンプルのアノテーションを要求することは、アノテーションフィードバックのためにグラフィカルユーザインターフェース上にユーザに質問を提示することを含む、請求項５３に記載のシステム。
【請求項９４】
前記アノテーションなしデータのサンプルに対して１つまたは複数のアノテーションを予測することをさらに含む、請求項５３に記載のシステム。
【請求項９５】
前記１つまたは複数のアノテーションの前記予測は、前記アノテーションなしデータのサンプルのアノテーションを要求する前である、請求項９４に記載のシステム。
【請求項９５】
前記システムによって実行される前記機能は、前記予測された１つまたは複数のアノテーションをサンプリングスコアに基づいて優先度キューに記憶することをさらに含む、請求項９４に記載のシステム。
【請求項９６】
前記サンプリングスコアは、前記予測された１つまたは複数のアノテーションの信頼度スコアである、請求項９５に記載のシステム。
【請求項９７】
前記システムによって実行される前記機能は、前記予測された１つまたは複数のアノテーションを前記優先度キューに記憶する前に、前記サンプリングスコアが閾値サンプリングスコアより大きいか否かを判定することをさらに含む、請求項９５に記載のシステム。
【請求項９８】
前記システムによって実行される前記機能は、前記閾値サンプリングスコア未満であると判定されたサンプリングスコアを有する予測を破棄することをさらに含む、請求項９７に記載のシステム。
【請求項９９】
前記優先度キューは、所定の最大数の予測を記憶する、請求項９５に記載のシステム。
【請求項１００】
前記システムによって実行される前記機能は、前記予測を前記優先度キューに記憶する前に、前記優先度キューに記憶されたいくつかの予測が前記予測の所定の最大数未満であると判定することをさらに含む、請求項９９に記載のシステム。
【請求項１０１】
前記システムによって実行される前記機能は、前記予測を前記優先度キューに記憶する前に、前記サンプリングスコアが、前記優先度キュー内の少なくとも１つの以前に記憶された予測よりも大きいと判定することをさらに含む、請求項９７に記載のシステム。
【請求項１０２】
前記システムによって実行される前記機能は、最も低いサンプリングスコアを有する、前記優先度キュー内の以前に記憶された予測を破棄することをさらに含む、請求項９５に記載のシステム。
【請求項１０３】
前記アノテーションなしデータのサンプルのアノテーションを要求することは、複数の優先度キューの中から前記優先度キューを選択することを含む、請求項９５に記載のシステム。
【発明の詳細な説明】
【発明の詳細な説明】
【０００１】
［技術分野］
［関連出願の相互参照］
本出願は、２０１７年５月１４日に出願された米国仮特許出願第６２／５０５，９３６号の優先権及び利益を主張し、その全体が引用により本明細書に組み込まれている。
［背景技術］
【０００２】
従来の機械学習技術は、データアノテーション、データ探索、及びモデル作成の容易化に個別に対処する。データアノテーション用の一部のインターフェースでは、ユーザは関心のあるテキストの範囲を強調表示し、強調表示したテキストにアノテーションを割り当ててもよい。あるいは、ユーザは関心のある画像の部分を強調表示し、画像の強調表示した部分にアノテーションを割り当ててもよい。多くの場合、これらの手法では、データの手動の「総当たりの（ｂｒｕｔｅ  ｆｏｒｃｅ）」アノテーションが用いられており、ユーザがデータを順番に確認していく必要があるので、機械学習モデルの生成にかなりのコストと時間の遅れとが生じる。さらに、このような既存のツールでは、データの前処理、特徴抽出、及び実行する可視化のタイプに関する広範な知識が必要になる場合がある。
【０００３】
一部の従来手法の欠点、短所、及び不利点の中でもとりわけ、以下の問題がある場合がある。多くの場合、アノテーション済みのデータが必要であり、そのようなデータが存在しない場合、スタート地点が提供されない。非構造化データを対象としていないことが多い。多くの場合、モデルの訓練には時間がかかり、かなりのハードウェアリソースを必要とする。不均衡なデータ（すなわち、所望の結果の発生率が低い、たとえば、確率が１０％未満であるデータ）での作業に効果的に対処できない場合がある。統合されたワークフローを提供しない場合がある。
［発明の概要］
【０００４】
本開示は、機械学習モデルを迅速に構築し、管理し、共有するためのシステム及び方法に関する。本開示は、機械学習モデルのライフサイクルを管理する方法を提供する。一部の態様では、この方法は、アノテーションなしデータのセットを受信することと、アノテーションなしデータのサンプルのアノテーションを要求して、アノテーション付きデータのセットを生成することと、アノテーション付きデータのセットに基づいて機械学習モデルを構築することと、機械学習モデルをクライアントシステムに配備することであって、クライアントシステムにおいて本番アノテーション（ｐｒｏｄｕｃｔｉｏｎ  ａｎｎｏｔａｔｉｏｎ）が生成される、配備することと、生成された本番アノテーションを収集し、本番アノテーションを組み込んだ新たな機械学習モデルを生成することと、アノテーション付きデータのセットに基づいて構築された機械学習モデル、または新たな機械学習モデルの一方を選択することと、を含む。
【０００５】
本開示の上記態様のいずれかによれば、この方法は、適合率、再現率、平均適合率、受信者動作者特性スコア、またはＦベータスコアを含む、機械学習モデルの１つまたは複数の品質尺度を報告することをさらに含むことができる。
【０００６】
本開示の上記態様のいずれかによれば、この方法は、モデルを第三者と共有することをさらに含むことができる。
【０００７】
本開示の上記態様のいずれかによれば、この方法は、モデルを第三者と共有することをさらに含むことができる。
【０００８】
本開示の上記態様のいずれかによれば、サンプルのアノテーションを要求することは、ユーザ入力または自動サンプラ選択に基づいて、アノテーションなしデータのセットからサンプルを選択することを含むことができる。
【０００９】
本開示の上記態様のいずれかによれば、ユーザ入力は、セマンティック検索、類似サンプルの選択、またはアノテーションなしデータの視覚マップ上の選択のうちの１つまたは複数を含むことができる。
【００１０】
本開示の上記態様のいずれかによれば、自動サンプラ選択は、進行過程内の複数のサンプラのうちの１つからのものとすることができる。
【００１１】
本開示の上記態様のいずれかによれば、複数のサンプラのそれぞれは、異なるサンプリングアルゴリズムを使用することができる。
【００１２】
本開示の上記態様のいずれかによれば、それぞれのサンプリングアルゴリズムは、密度サンプリングアルゴリズム、エントロピーサンプリングアルゴリズム、推定誤差低減サンプリングアルゴリズム、網羅的なサンプリングアルゴリズム、フラグ付き予測アルゴリズム、ハードネガティブマイニングサンプリングアルゴリズム、高信頼度サンプリングアルゴリズム、線形サンプリングアルゴリズム、マップ可視化サンプリングアルゴリズム、メタデータ検索サンプリングアルゴリズム、最小マージンサンプリングアルゴリズム、クエリバイコミッティ（ｑｕｅｒｙ  ｂｙ  ｃｏｍｍｉｔｔｅｅ）サンプリングアルゴリズム、ランダムサンプリングアルゴリズム、レビューサンプリングアルゴリズム、検索サンプリングアルゴリズム、類似性サンプリングアルゴリズム、入力がサンプルをスキップするものであったサンプルのサンプリングのタイプのアルゴリズム、層化サンプリングアルゴリズム、最も信頼性のあるサンプルのアルゴリズム、または最も不確実なサンプルのアルゴリズムから選択され得る。
【００１３】
本開示の上記態様のいずれかによれば、進行過程は、複数のサンプラのうちのサンプラ間で連続的に変更されることを含むことができる。
【００１４】
本開示の上記態様のいずれかによれば、複数のサンプラの各サンプラは、進行過程における前または次のサンプラのいずれに移動するかを決定する結果の期待分布を有することができる。
【００１５】
本開示の上記態様のいずれかによれば、モデル予測が誤っている所定数のサンプルアノテーションを受信すると、進行過程はサンプラ間で、進行過程における前のサンプラに変更され得る。
【００１６】
本開示の上記態様のいずれかによれば、モデル予測が一致する所定数のサンプルアノテーションを受信すると、進行過程はサンプラ間で、進行過程における次のサンプラに変更され得る。
【００１７】
本開示の上記態様のいずれかによれば、機械学習モデルを構築することは、共有モデルを受信し、中間モデルの重みを共有モデルの重みに初期化し、異なる学習率で訓練することを含むことができる。
【００１８】
本開示の上記態様のいずれかによれば、アノテーションなしデータのサンプルのアノテーションを要求することは、テストデータのセットの網羅的なアノテーションを要求することを含むことができる。
【００１９】
本開示の上記態様のいずれかによれば、テストデータのセットの網羅的なアノテーションは、密度サンプリング、レベルセットツリー、またはランダムサンプリングのうちの１つまたは複数を含む遠距離教師あり学習（ｄｉｓｔａｎｔ  ｓｕｐｅｒｖｉｓｉｏｎ）によって実行され得る。
【００２０】
本開示の上記態様のいずれかによれば、アノテーションなしデータのサンプルのアノテーションを要求することは、アノテーションなしデータのセットからサンプルを選択するための、複数のサンプラからのサンプラの推奨をグラフィカルユーザインターフェース上に提示することを含むことができる。
【００２１】
本開示の上記態様のいずれかによれば、この方法は、グラフィカルユーザインターフェース上にデータ品質メトリック及びデータ数量メトリックを提示することをさらに含むことができる。
【００２２】
本開示の上記態様のいずれかによれば、データ数量メトリックは、いくつかの訓練されたサンプル、いくつかの正例、いくつかの負例、またはサンプルのクラスについて訓練されたいくつかのサンプルのうちの１つまたは複数を含むことができる。
【００２３】
本開示の上記態様のいずれかによれば、データ品質メトリックは、正解率、適合率、再現率、またはＦ１スコアのうちの１つまたは複数を含むことができる。
【００２４】
本開示の上記態様のいずれかによれば、この方法は、グラフィカルユーザインターフェース上に、アノテーションなしデータのセットのアノテーションにわたる不一致を提示することをさらに含むことができる。
【００２５】
本開示の上記態様のいずれかによれば、機械学習モデルを構築することは、機械学習モデルを確立するためのアルゴリズム及び損失関数を選択することを含むことができる。
【００２６】
本開示の上記態様のいずれかによれば、アルゴリズムを選択することは、モデルタイプに基づく。
【００２７】
本開示の上記態様のいずれかによれば、この方法は、アノテーションなしデータのセットからアノテーションが付けられたアノテーション付き訓練データのセットでモデルを複数回訓練し、実行にわたる品質メトリックの分散を測定することによって、収束をテストすることをさらに含むことができる。
【００２８】
本開示の上記態様のいずれかによれば、品質メトリックは学習曲線の傾きを含むことができる。
【００２９】
本開示の上記態様のいずれかによれば、モデルは、所与のモデルタイプ及びアルゴリズムに対して選択されたデフォルトのハイパーパラメータを使用して訓練され得る。
【００３０】
本開示の上記態様のいずれかによれば、ハイパーパラメータは、ランダム選択、グリッド探索、またはベイズ推定法のうちの１つまたは複数を使用して選択され得る。
【００３１】
本開示の上記態様のいずれかによれば、ランダムシード、アルゴリズム選択、損失関数、ハイパーパラメータ、データセット分割、データセットハッシュ、またはクラス重みのうちの１つまたは複数が、モデルに対して記憶され得る。
【００３２】
本開示の上記態様のいずれかによれば、機械学習モデルは、バージョン管理され、切り替えられ、またはロールバックされ得る。
【００３３】
本開示の上記態様のいずれかによれば、この方法は、データドリフトまたはコンセプトドリフトを介してモデル間の変化を監視することをさらに含むことができる。
【００３４】
本開示の上記態様のいずれかによれば、コンセプトドリフトは、アノテーション付きデータのセットと本番アノテーションとの間で変化したいくつかの予測を定量化することに基づいてモデルを訓練することにより計算され得る。
【００３５】
本開示の上記態様のいずれかによれば、データドリフトは、アノテーション付きデータのセットと本番アノテーションとの間のコーパス統計及び／またはコーパス比較に基づいて測定され得る。
【００３６】
本開示の上記態様のいずれかによれば、データドリフトまたはコンセプトドリフトを識別した場合に警告が生成され得る。
【００３７】
本開示の上記態様のいずれかによれば、データドリフトまたはコンセプトドリフトは、経時的なアノテーションなしデータに関するメトリック、または経時的なモデル予測に関するメトリックを含むことができる。
【００３８】
本開示の上記態様のいずれかによれば、モデルを共有することは、特徴ハッシュ化、暗号ハッシュ化、またはランダムプロジェクションのうちの１つまたは複数を実行することを含むことができる。
【００３９】
本開示の上記態様のいずれかによれば、モデルを共有することは、モデルの勾配更新を共有することを含むことができる。
【００４０】
本開示の上記態様のいずれかによれば、勾配更新は、計算グラフのレイヤに加算され得る。
【００４１】
本開示の上記態様のいずれかによれば、モデルを共有することは、１つまたは複数のモデル資産を共有することを含むことができる。
【００４２】
本開示の上記態様のいずれかによれば、１つまたは複数のモデル資産は、データセットで訓練された単語埋め込み（ｗｏｒｄ  ｅｍｂｅｄｄｉｎｇ）、単語ベクトル、アノテーションのセット、キーワード及びフレーズのリスト、例文のリスト、言語モデル、辞書、ならびに訓練されたモデル、及びモデルアーキテクチャを含むことができる。
【００４３】
本開示の上記態様のいずれかによれば、１つまたは複数のモデル資産は、個人を特定可能な情報がサニタイズされ得る。
【００４４】
本開示の上記態様のいずれかによれば、進行過程は、シードサンプラからハードネガティブサンプラ、層化サンプラ、不確実性サンプラへと進むことを含むことができる。
【００４５】
本開示の上記態様のいずれかによれば、サンプルのアノテーションを要求することは、アノテーションフィードバックのためにグラフィカルユーザインターフェース上にユーザに質問を提示することを含むことができる。
【００４６】
本開示の上記態様のいずれかによれば、この方法は、アノテーションなしデータのサンプルに対して１つまたは複数のアノテーションを予測することをさらに含むことができる。
【００４７】
本開示の上記態様のいずれかによれば、１つまたは複数のアノテーションの予測は、アノテーションなしデータのサンプルのアノテーションを要求する前とすることができる。
【００４８】
本開示の上記態様のいずれかによれば、この方法は、予測された１つまたは複数のアノテーションをサンプリングスコアに基づいて優先度キューに記憶することをさらに含むことができる。
【００４９】
本開示の上記態様のいずれかによれば、サンプリングスコアは、予測された１つまたは複数のアノテーションの信頼度スコアとすることができる。
【００５０】
本開示の上記態様のいずれかによれば、予測された１つまたは複数のアノテーションを優先度キューに記憶する前に、この方法によれば、サンプリングスコアが閾値サンプリングスコアより大きいか否かを判定することができる。
【００５１】
本開示の上記態様のいずれかによれば、この方法は、閾値サンプリングスコア未満であると判定されたサンプリングスコアを有する予測を破棄することをさらに含むことができる。
【００５２】
本開示の上記態様のいずれかによれば、優先度キューは、所定の最大数の予測を記憶することができる。
【００５３】
本開示の上記態様のいずれかによれば、この方法は、予測を優先度キューに記憶する前に、優先度キューに記憶されたいくつかの予測が予測の所定の最大数未満であると判定することをさらに含むことができる。
【００５４】
本開示の上記態様のいずれかによれば、この方法は、予測を優先度キューに記憶する前に、サンプリングスコアが、優先度キュー内の少なくとも１つの以前に記憶された予測よりも大きいと判定することをさらに含むことができる。
【００５５】
本開示の上記態様のいずれかによれば、この方法は、最も低いサンプリングスコアを有する、優先度キュー内の以前に記憶された予測を破棄することをさらに含むことができる。
【００５６】
本開示の上記態様のいずれかによれば、アノテーションなしデータのサンプルのアノテーションを要求することは、複数の優先度キューの中から優先度キューを選択することを含むことができる。
【００５７】
本開示は、機械学習モデルのライフサイクルを管理するためのシステムをさらに提供する。一部の態様では、システムは、プロセッサと、プロセッサに結合され、コンピュータ可読命令を記憶する非一時的メモリデバイスであって、コンピュータ可読命令は、プロセッサより実行された場合に、システムに機能を実行させ、機能は、アノテーションなしデータのセットを受信することと、アノテーションなしデータのサンプルのアノテーションを要求して、アノテーション付きデータのセットを生成することと、アノテーション付きデータのセットに基づいて機械学習モデルを構築することと、機械学習モデルをクライアントシステムに配備することであって、クライアントシステムにおいて本番アノテーションが生成される、配備することと、生成された本番アノテーションを収集し、本番アノテーションを組み込んだ新たな機械学習モデルを生成することと、アノテーション付きデータのセットに基づいて構築された機械学習モデル、または新たな機械学習モデルの一方を選択することと、を含む、非一時的メモリデバイスと、を備える。
【００５８】
本開示の上記態様のいずれかによれば、システムによって実行される機能は、適合率、再現率、平均適合率、受信者動作者特性スコア、またはＦベータスコアを含む、機械学習モデルの１つまたは複数の品質尺度を報告することをさらに含むことができる。
【００５９】
本開示の上記態様のいずれかによれば、システムによって実行される機能は、モデルを第三者と共有することをさらに含むことができる。
【００６０】
本開示の上記態様のいずれかによれば、システムによって実行される機能は、モデルを第三者と共有することをさらに含むことができる。
【００６１】
本開示の上記態様のいずれかによれば、サンプルのアノテーションを要求することは、ユーザ入力または自動サンプラ選択に基づいて、アノテーションなしデータのセットからサンプルを選択することを含むことができる。
【００６２】
本開示の上記態様のいずれかによれば、ユーザ入力は、セマンティック検索、類似サンプルの選択、またはアノテーションなしデータの視覚マップ上の選択のうちの１つまたは複数を含むことができる。
【００６３】
本開示の上記態様のいずれかによれば、自動サンプラ選択は、進行過程内の複数のサンプラのうちの１つからのものとすることができる。
【００６４】
本開示の上記態様のいずれかによれば、複数のサンプラのそれぞれは、異なるサンプリングアルゴリズムを使用することができる。
【００６５】
本開示の上記態様のいずれかによれば、それぞれのサンプリングアルゴリズムは、密度サンプリングアルゴリズム、エントロピーサンプリングアルゴリズム、推定誤差低減サンプリングアルゴリズム、網羅的なサンプリングアルゴリズム、フラグ付き予測アルゴリズム、ハードネガティブマイニングサンプリングアルゴリズム、高信頼度サンプリングアルゴリズム、線形サンプリングアルゴリズム、マップ可視化サンプリングアルゴリズム、メタデータ検索サンプリングアルゴリズム、最小マージンサンプリングアルゴリズム、クエリバイコミッティサンプリングアルゴリズム、ランダムサンプリングアルゴリズム、レビューサンプリングアルゴリズム、検索サンプリングアルゴリズム、類似性サンプリングアルゴリズム、入力がサンプルをスキップするものであったサンプルのサンプリングのタイプのアルゴリズム、層化サンプリングアルゴリズム、最も信頼性のあるサンプルのアルゴリズム、または最も不確実なサンプルのアルゴリズムから選択され得る。
【００６６】
本開示の上記態様のいずれかによれば、進行過程は、複数のサンプラのうちのサンプラ間で連続的に変更されることを含むことができる。
【００６７】
本開示の上記態様のいずれかによれば、複数のサンプラの各サンプラは、進行過程における前または次のサンプラのいずれに移動するかを決定する結果の期待分布を有することができる。
【００６８】
本開示の上記態様のいずれかによれば、モデル予測が誤っている所定数のサンプルアノテーションを受信すると、進行過程はサンプラ間で、進行過程における前のサンプラに変更され得る。
【００６９】
本開示の上記態様のいずれかによれば、モデル予測が一致する所定数のサンプルアノテーションを受信すると、進行過程はサンプラ間で、進行過程における次のサンプラに変更され得る。
【００７０】
本開示の上記態様のいずれかによれば、機械学習モデルを構築することは、共有モデルを受信し、中間モデルの重みを共有モデルの重みに初期化し、異なる学習率で訓練することを含むことができる。
【００７１】
本開示の上記態様のいずれかによれば、アノテーションなしデータのサンプルのアノテーションを要求することは、テストデータのセットの網羅的なアノテーションを要求することを含むことができる。
【００７２】
本開示の上記態様のいずれかによれば、テストデータのセットの網羅的なアノテーションは、密度サンプリング、レベルセットツリー、またはランダムサンプリングのうちの１つまたは複数を含む遠距離教師あり学習によって実行され得る。
【００７３】
本開示の上記態様のいずれかによれば、アノテーションなしデータのサンプルのアノテーションを要求することは、アノテーションなしデータのセットからサンプルを選択するための、複数のサンプラからのサンプラの推奨をグラフィカルユーザインターフェース上に提示することを含むことができる。
【００７４】
本開示の上記態様のいずれかによれば、システムによって実行される機能は、グラフィカルユーザインターフェース上にデータ品質メトリック及びデータ数量メトリックを提示することをさらに含むことができる。
【００７５】
本開示の上記態様のいずれかによれば、データ数量メトリックは、訓練されたいくつかのサンプル、いくつかの正例、いくつかの負例、またはサンプルのクラスについて訓練されたいくつかのサンプルのうちの１つまたは複数を含むことができる。
【００７６】
本開示の上記態様のいずれかによれば、データ品質メトリックは、正解率、適合率、再現率、またはＦ１スコアのうちの１つまたは複数を含むことができる。
【００７７】
本開示の上記態様のいずれかによれば、システムによって実行される機能は、グラフィカルユーザインターフェース上に、アノテーションなしデータのセットのアノテーションにわたる不一致を提示することをさらに含むことができる。
【００７８】
本開示の上記態様のいずれかによれば、機械学習モデルを構築することは、機械学習モデルを確立するためのアルゴリズム及び損失関数を選択することを含むことができる。
【００７９】
本開示の上記態様のいずれかによれば、アルゴリズムを選択することは、モデルタイプに基づく。
【００８０】
本開示の上記態様のいずれかによれば、システムによって実行される機能は、アノテーションなしデータのセットからアノテーションが付けられたアノテーション付き訓練データのセットでモデルを複数回訓練し、実行にわたる品質メトリックの分散を測定することによって、収束をテストすることをさらに含むことができる。
【００８１】
本開示の上記態様のいずれかによれば、品質メトリックは学習曲線の傾きを含むことができる。
【００８２】
本開示の上記態様のいずれかによれば、モデルは、所与のモデルタイプ及びアルゴリズムに対して選択されたデフォルトのハイパーパラメータを使用して訓練され得る。
【００８３】
本開示の上記態様のいずれかによれば、ハイパーパラメータは、ランダム選択、グリッド探索、またはベイズ推定法のうちの１つまたは複数を使用して選択され得る。
【００８４】
本開示の上記態様のいずれかによれば、ランダムシード、アルゴリズム選択、損失関数、ハイパーパラメータ、データセット分割、データセットハッシュ、またはクラス重みのうちの１つまたは複数が、モデルに対して記憶され得る。
【００８５】
本開示の上記態様のいずれかによれば、機械学習モデルは、バージョン管理され、切り替えられ、またはロールバックされ得る。
【００８６】
本開示の上記態様のいずれかによれば、システムによって実行される機能は、データドリフトまたはコンセプトドリフトを介してモデル間の変化を監視することをさらに含むことができる。
【００８７】
本開示の上記態様のいずれかによれば、コンセプトドリフトは、アノテーション付きデータのセットと本番アノテーションとの間で変化したいくつかの予測を定量化することに基づいてモデルを訓練することにより計算され得る。
【００８８】
本開示の上記態様のいずれかによれば、データドリフトは、アノテーション付きデータのセットと本番アノテーションとの間のコーパス統計及び／またはコーパス比較に基づいて測定され得る。
【００８９】
本開示の上記態様のいずれかによれば、データドリフトまたはコンセプトドリフトを識別した場合に警告が生成され得る。
【００９０】
本開示の上記態様のいずれかによれば、データドリフトまたはコンセプトドリフトは、経時的なアノテーションなしデータに関するメトリック、または経時的なモデル予測に関するメトリックを含むことができる。
【００９１】
本開示の上記態様のいずれかによれば、モデルを共有することは、特徴ハッシュ化、暗号ハッシュ化、またはランダムプロジェクションのうちの１つまたは複数を実行することを含むことができる。
【００９２】
本開示の上記態様のいずれかによれば、モデルを共有することは、モデルの勾配更新を共有することを含むことができる。
【００９３】
本開示の上記態様のいずれかによれば、勾配更新は、計算グラフのレイヤに加算され得る。
【００９４】
本開示の上記態様のいずれかによれば、モデルを共有することは、１つまたは複数のモデル資産を共有することを含むことができる。
【００９５】
本開示の上記態様のいずれかによれば、１つまたは複数のモデル資産は、データセットで訓練された単語埋め込み、単語ベクトル、アノテーションのセット、キーワード及びフレーズのリスト、例文のリスト、言語モデル、辞書、ならびに訓練されたモデル、及びモデルアーキテクチャを含むことができる。
【００９６】
本開示の上記態様のいずれかによれば、１つまたは複数のモデル資産は、個人を特定可能な情報がサニタイズされ得る。
【００９７】
本開示の上記態様のいずれかによれば、進行過程は、シードサンプラからハードネガティブサンプラ、層化サンプラ、不確実性サンプラへと進むことを含むことができる。
【００９８】
本開示の上記態様のいずれかによれば、サンプルのアノテーションを要求することは、アノテーションフィードバックのためにグラフィカルユーザインターフェース上にユーザに質問を提示することを含むことができる。
【００９９】
本開示の上記態様のいずれかによれば、システムによって実行される機能は、アノテーションなしデータのサンプルに対して１つまたは複数のアノテーションを予測することをさらに含むことができる。
【０１００】
本開示の上記態様のいずれかによれば、１つまたは複数のアノテーションの予測は、アノテーションなしデータのサンプルのアノテーションを要求する前とすることができる。
【０１０１】
本開示の上記態様のいずれかによれば、システムによって実行される機能は、予測された１つまたは複数のアノテーションをサンプリングスコアに基づいて優先度キューに記憶することをさらに含むことができる。
【０１０２】
本開示の上記態様のいずれかによれば、サンプリングスコアは、予測された１つまたは複数のアノテーションの信頼度スコアとすることができる。
【０１０３】
本開示の上記態様のいずれかによれば、予測された１つまたは複数のアノテーションを優先度キューに記憶する前に、この方法によれば、サンプリングスコアが閾値サンプリングスコアより大きいか否かを判定することができる。
【０１０４】
本開示の上記態様のいずれかによれば、システムによって実行される機能は、閾値サンプリングスコア未満であると判定されたサンプリングスコアを有する予測を破棄することをさらに含むことができる。
【０１０５】
本開示の上記態様のいずれかによれば、優先度キューは、所定の最大数の予測を記憶することができる。
【０１０６】
本開示の上記態様のいずれかによれば、システムによって実行される機能は、予測を優先度キューに記憶する前に、優先度キューに記憶されたいくつかの予測が予測の所定の最大数未満であると判定することをさらに含むことができる。
【０１０７】
本開示の上記態様のいずれかによれば、システムによって実行される機能は、予測を優先度キューに記憶する前に、サンプリングスコアが、優先度キュー内の少なくとも１つの以前に記憶された予測よりも大きいと判定することをさらに含むことができる。
【０１０８】
本開示の上記態様のいずれかによれば、システムによって実行される機能は、最も低いサンプリングスコアを有する、優先度キュー内の以前に記憶された予測を破棄することをさらに含むことができる。
【０１０９】
本開示の上記態様のいずれかによれば、アノテーションなしデータのサンプルのアノテーションを要求することは、複数の優先度キューの中から優先度キューを選択することを含むことができる。
【０１１０】
これら及び他の特徴は、添付の図面及び特許請求の範囲と併せて以下の詳細な説明からより明確に理解されよう。
【０１１１】
本開示をより完全に理解するために、ここで以下の簡単な説明を、添付の図面及び詳細な説明に関連して参照し、同様の参照番号は同様の部分を表す。必ずしも縮尺通りに描いていない添付図面は、本開示のいくつかの実施形態を示しており、本説明と共に、実施形態による開示した技術の原理を説明するのに役立つ。
【図面の簡単な説明】
【０１１２】
【図１】開示した技術の例示的な実施形態による、機械学習モデルを作成するための情報スタックを示す。
【図２】開示した技術の例示的な実施形態による、データアノテーション及び機械学習モデルの作成を容易にするコンピュータアーキテクチャを示す。
【図３】開示した技術の例示的な実施形態による、データアノテーション及びモデル構築のための統合されたワークフロープロセスのフロー図を示す。
【図４】開示した技術の例示的な実施形態による、訓練データのセットにアノテーションを付けるためのアノテーションプロセスのフロー図を示す。
【図５】開示した技術の例示的な実施形態による、アノテーションなしデータのアノテーションを容易にするサンプリング技法の進行過程のシーケンス図を示す。
【図６】開示した技術の例示的な実施形態による、データにアノテーションを付けるための計算アーキテクチャのブロック図である。
【図７】開示した技術の例示的な実施形態による、予測を高速化し、ハードウェア要件を低減するために使用される優先度キュー方法を示すブロック図である。
【図８】開示した技術の例示的な実施形態による、テストデータのセットにアノテーションを付けるためのアノテーションプロセスのフロー図である。
【図９】開示した技術の例示的な実施形態による、新たな機械学習モデルの作成を開始するための例示的なグラフィカルユーザインターフェースを示す。
【図１０】開示した技術の例示的な実施形態による、ユーザが複数のデータセットを管理できる方法を示す例示的なグラフィカルユーザインターフェースを示す。
【図１１】開示した技術の例示的な実施形態による、ユーザが複数のアノテーションのセットを管理できる方法を示す例示的なグラフィカルユーザインターフェースを示す。
【図１２】開示した技術の例示的な実施形態による、様々なアノテーションのセットの一実施例を示す。
【図１３】開示した技術の例示的な実施形態による、ユーザがアノテーションをセットアップするのに使用できる構成オプションを示す例示的なグラフィカルユーザインターフェースを示す。
【図１４】開示した技術の例示的な実施形態による、キーワード及びフレーズのリストを入力及び管理する方法を示す例示的なグラフィカルユーザインターフェースを示す。
【図１５】開示した技術の例示的な実施形態による、ユーザが関連する単語及びフレーズを発見及び管理できる方法を示す例示的なグラフィカルユーザインターフェースを示す。
【図１６】開示した技術の例示的な実施形態による、単語リスト管理へのオントロジーの組み込みを示す例示的なグラフィカルユーザインターフェースを示す。
【図１７】開示した技術の例示的な実施形態による、例文のリストを入力及び管理する方法を示す例示的なグラフィカルユーザインターフェースを示す。
【図１８】開示した技術の例示的な実施形態による、アノテーションプロセス、アノテーションプロセスを管理するためのツール、及び進捗状況に関するフィードバックを示す例示的なグラフィカルユーザインターフェースを示す。
【図１９】開示した技術の例示的な実施形態による、ユーザが自身の反応の強さをスコア付けすることを可能にするアノテーションプロセスを示す例示的なグラフィカルユーザインターフェースを示す。
【図２０】開示した技術の例示的な実施形態による、隣接するエントリにアノテーションを付ける機能、ならびにアノテーションに関する色付きのフィードバックを示す例示的なグラフィカルユーザインターフェースを示す。
【図２１】開示した技術の例示的な実施形態による、複数のタイプの候補サンプリングを示すドロップダウンを示す例示的なグラフィカルユーザインターフェースを示す。
【図２２】開示した技術の例示的な実施形態による、データにわたる一回限りのキーワード検索を示す例示的なグラフィカルユーザインターフェースを示す。
【図２３】開示した技術の例示的な実施形態による、ユーザが自身のデータを視覚的に探索することを可能にし得るデータマップを示す例示的なグラフィカルユーザインターフェースを示す。
【図２４】開示した技術の例示的な実施形態による、いかにして失敗状態を処理することができ、情報がユーザに返されるかを示す例示的なグラフィカルユーザインターフェースを示す。
【図２５】開示した技術の例示的な実施形態による、以前にアノテーションが付けられたエントリのリスト、及びそれらのエントリの管理方法を示す例示的なグラフィカルユーザインターフェースを示す。
【図２６】開示した技術の例示的な実施形態による例示的なコンピュータシステムを示す。
【発明を実施するための形態】
【０１１３】
１つまたは複数の実施形態の例示的な実施態様を以下に示すが、開示したシステム及び方法は、既知または既存であるかを問わず、任意数の技法を使用して実装し得ることを最初に理解されたい。本開示は、以下で説明する例示的な実施態様、図面、及び技法に一切限定されるべきではなく、添付の特許請求の範囲、ならびにそれらの均等物の全範囲内で修正してもよい。
【０１１４】
機械学習モデルの作成は、複雑で時間のかかるタスクである場合がある。従来、これには、データの集約、前処理、アノテーション、及び検査、特徴抽出及びベクトル化、ならびにモデルの訓練及び評価が含まれていた。結果として、そのようなモデルを作成する機能は、多くの場合、データサイエンスの専門知識を有する人々による使用に制限されていた。開示した技術の実施形態によって提供される利点及び利益の中でもとりわけ、データサイエンスの広範な知識を有さないユーザが強力なモデルを作成することができると共に、データサイエンティストが自身の仕事をより迅速に実行することが可能になる。
【０１１５】
開示した技術の様々な実施形態によれば、ユーザは適切なデータソースを接続し、アノテーションプロセスをセットアップし、データにアノテーションを付け、それらのアノテーションから機械学習モデルを構築し、機械学習モデルを配備し、本番のフィードバックを収集してモデルの新たなバージョンに組み込み、モデル及び学習内容を共有することができる。
【０１１６】
図１に、開示した技術の例示的な実施形態による、機械学習モデルを作成するための情報スタック１００を示す。情報スタック１００は、アノテーションなしデータ１０２、アノテーション付きデータ１０４、分析１０６、及びモデル１０８を含む。アノテーションなしデータ１０２は、データソースからの未処理データを含む。たとえば、アノテーションなしデータ１０２は、電子メールコミュニケーション、チャットログ、文書ストア、または他のテキストデータのソースのセットを含んでもよい。テキストデータはプレーンテキストファイルからのものでもよく、たとえば、電子メールもしくはチャットを介した電子的コミュニケーション、フラットファイル、または他のタイプの文書ファイル（たとえば、．ｐｄｆ、．ｄｏｃなど）からのものでもよい。また、アノテーションなしデータ１０２は、画像ライブラリ、ビデオライブラリ、または他の画像もしくはビデオデータのソースを含んでもよい。また、アノテーションなしデータ１０２は、電話、ポッドキャスト、及び他の音声データのソースを含んでもよい。アノテーションなしデータ１０２は、既存のデータストアから提供されてもよく、または任意の所望のフォーマットのアノテーションなしデータのライブストリームを含んでもよい。一部の実施態様では、アノテーションなしデータ１０２は、ファイルのディレクトリを含んでもよく、グラフィカル形式のデータを含むことができる。他の電子データのソースが使用されてもよい。
【０１１７】
新たな機械学習モデル１０８の作成におけるボトルネックは、アノテーションなしデータにアノテーションを付けてアノテーション付きデータ１０４にすることである。アノテーション付きデータ１０４は、アノテーション、または本明細書に記載のアプリケーションなどを介してユーザにより提供されるアノテーションと結合された１つまたは複数のデータセットを含むことができる。データサイエンスの専門家を利用するのとは対照的に、あるドメインの主題専門家（ｓｕｂｊｅｃｔ  ｍａｔｔｅｒ  ｅｘｐｅｒｔ）は、本明細書に記載のアノテーションプロセスに参加して、自身の知識を移転しやすくし、機械学習モデル作成プロセスの速度を向上させ、コストを削減してもよい。開示したアノテーションプロセスは、言語に依存せず、ドメインに依存しない方法で実行される。
【０１１８】
分析１０６を実行して、モデル１０８を作成する前に、十分なアノテーションが行われたことを確認することができる。
【０１１９】
図２に、開示した技術の例示的な実施形態による、データアノテーション及び機械学習モデルの作成を容易にするコンピュータアーキテクチャ２００を示す。コンピュータアーキテクチャ２００は、本明細書に記載のアノテーションプロセスを実行するアノテーションサーバ２０２を含む。アノテーションサーバ２０２は、情報スタック１００を内部に記憶するように構成されるデータベース２０４と通信する。単一のデータベースとして図示しているが、情報スタック１００の要素ごとに１つまたは複数のデータベースが使用されてもよい。アノテーションサーバ２０２は、アノテーションクライアント２０６からネットワーク２０８を介してアノテーションなしデータ１０２を受信して、データベース２０４に記憶してもよい。アノテーションサーバ２０２は、１つまたは複数のグラフィカルユーザインターフェースを介してアノテーションクライアント２０６と対話して、アノテーション付きデータ１０４の生成を容易にする。１つまたは複数のアノテーション訓練基準による指定通りに、アノテーションなしデータ１０２に十分にアノテーションが付けられると（たとえば、クラスごとに２０個のアノテーション）、アノテーションサーバ２０２は、１つまたは複数の中間モデルを生成するように構成される。
【０１２０】
これらの中間モデルはアノテーションなしデータについての予測を生成し、これをネットワーク２０８を介してアノテーションクライアント２０６または別のクライアントコンピュータ（図示せず）に通信して、本番アノテーションを容易にしてもよい。クライアントコンピュータ２０６での通常の本番作業中に、さらなる本番アノテーション付きデータが生成され、本番アノテーションデータベース２１０に記憶される。たとえば、クライアントコンピュータ２０６上で新たなデータが入力または操作されると、ベースラインモデルは新たなデータについてのアノテーションの予測を提示し、これは承認されるかまたは修正されて、さらなる本番アノテーション付きデータが生成される。定期的に、本番アノテーションは、アノテーションサーバ２０２にフィードバックされ、さらなる本番アノテーション付きデータを考慮した更新されたモデルを生成するために使用される。本番アノテーションは、本番アノテーションを含むファイルをインポートするか、またはアノテーションサーバ２０２上で公開された標準ＡＰＩを介して、アノテーションサーバ２０２にフィードバックされてもよい。ＡＰＩは、攻撃を防ぐためにレート制限されてもよい。
【０１２１】
図３に、開示した技術の例示的な実施形態による、データアノテーション及びモデル構築のための統合されたワークフロープロセス３００のフロー図を示す。３０２において、アノテーションなしデータ１０２がアノテーションサーバ２０２にインポートされて、データベース２０４に記憶される。
【０１２２】
３０４において、アノテーションなしデータ１０２の探索的データ分析が実行される。これにより、データをアノテーションのために適切にサブセットに層化することが可能になる。たとえば、テキストの場合、探索的データ分析により、ロジスティック回帰などの方法を使用して、外国語の分布、文書タイプ（電子メール、チャット、ポータブルドキュメントフォーマットの文書、ハイパーテキストマークアップ言語など）の分布、ならびにＦｌｅｓｃｈ−Ｋｉｎｃａｉｄ可読性スコアの分布を特定してもよい。画像データの場合、探索的データ分析により、カラー画像対白黒画像の分布、画像のサイズ及び解像度、ならびに画像内のエントロピーの分布を特定してもよい。これらの分布は、アノテーション用に層化されたサブセットを選択するために使用される。たとえば、ユーザは、２０１８年４月２日から２０１８年４月７日までの週のスペイン語のチャットメッセージにアノテーションを付けることを選択してもよい。
【０１２３】
３０７において、アノテーションなしデータ１０２は、事前定義されたまたはユーザ指定のクリーニングパイプラインを使用して前処理される。これは一種の次元削減であって、分析及び関心領域へのセグメンテーションのためにデータを正規化するものである。たとえば、テキストの前処理は、免責事項、意味のないテキスト、または電子メールのインライン返信の削除などのタスクの実行を含んでもよい。テキストデータの場合、これは、テキストをトークン化して、文、段落、または文書に分割すること、小文字に変換することを含むことができ、句読点の間にスペースが挿入されてもよく、日本語のような非空白言語の場合に、空白が挿入されてもよい。
【０１２４】
３０６において、前処理されたデータのサブセットが選択され、３０８において訓練候補のセットが提供され、３１４においてテストデータのセットが提供される。３１０において、以下で図４〜図７に関連してより詳細に説明するガイド付きアノテーションプロセスを通じて、アノテーション付き訓練セットが作成される。ガイド付きアノテーションプロセスにより、主題専門家は、短時間で、削減されたコストで、削減された計算リソースで、大きな訓練候補のセットにアノテーションを付けることが可能になる。データアナリストによるデータセットの「総当たりの」アノテーションに依存する従来のアノテーション方法では、典型的には、不均衡なデータセットに十分にアノテーションを付けるのに数人年かかるが、本明細書で開示するガイド付きアノテーションプロセスは、数人時または数人日にわたるデータセットの十分なアノテーションを容易にし得る。
【０１２５】
３１６において、以下で図８に関連してより詳細に説明するように、テストセットの作成のために確保されたデータにアノテーションを付けて、アノテーションテストセットを生成し、明示的に、または遠距離教師あり学習を使用して代理でテストする。一部の実施態様では、テストデータのセットに網羅的にアノテーションが付けられる。場合によっては、能動学習により、偏ったデータ分布が生成され、これは偏りのないテストセットを作成するのに適さない。代わりに、レベルセットツリー、ランダムサンプリングを使用した教師なしクラスタリング、及び密度ベースのサンプリングにより、テストデータのセットに十分かつ効率的にアノテーションを付けることが容易になる。
【０１２６】
３１２及び３１８において、アノテーション付き訓練セット及びアノテーション付きテストセットに対してデータレビューが実行される。データレビューは、基礎となるサンプルが意味的に類似しているが同一ではない場合でも、複数のレビューアにわたるアノテーション間の不一致を識別するアノテーション「クリーニング」を含む。アノテーションの一致は、ユーザ内で（疲労または誤った判断のため）またはユーザ間で確認することもできる。アノテーションの一致は、分散表現の類似度測定（たとえば、ベクトル埋め込みのコサイン類似度）と組み合わせたユーザアノテーションを使用することによって、測定することができる。このレビュー中に、教師（ｓｕｐｅｒｖｉｓｏｒ）は、「ゴールドスタンダード」アノテーションを確立することができる。一部の実施態様では、アノテーション「クリーニング」は、その全体が引用により本明細書に組み込まれる、Ｇａｒｄｎｅｒ  ｅｔ  ａｌ．による同一所有者の米国特許第９，０５８，３１７号「Ｓｙｓｔｅｍ  ａｎｄ  Ｍｅｔｈｏｄ  ｆｏｒ  Ｍａｃｈｉｎｅ  Ｌｅａｒｎｉｎｇ  Ｍａｎａｇｅｍｅｎｔ」に記載されているように実行されてもよい。
【０１２７】
３２０において、クレンジングされたアノテーション付き訓練セット及びアノテーション付きテストセットを使用して、機械学習モデルが構築される。場合によっては、共有モデル３２２を供給して、モデル構築３２０に情報を与えてもよい。共有モデル３２２が提供されると、構築中のモデルは共有モデル３２２の重みに初期化され、差分学習率で訓練される。一部の実施態様では、構築中のモデルは徐々に低くなる学習率を使用して訓練される。一部の実施態様では、共有モデル３２２によって提供される特定の重みは、未訓練のまま、または軽く訓練されたままであってもよい。構築中のモデルが未訓練または軽く訓練された重みを有する場合、高い学習率を選択的に維持して、それらの重みを迅速に訓練してもよい。
【０１２８】
３２４において、モデル構築３２０の結果として、挑戦者モデルが生成される。３２８において、生成されたモデルに関する報告を提示してもよい。一部の実施態様では、複数のモデルを構築し、アノテーション付きテストセットに対して共通の品質尺度を使用して比較してもよい。品質尺度は、たとえば、適合率、再現率、平均適合率、受信者動作者特性スコア、Ｆベータスコアなどを含んでもよい。他の品質尺度が使用されてもよい。モデル同士の意見が合う場合と、合わない場合との予測の実施例を、報告３２８を通じてユーザに提示してもよい。モデルの選択を容易にするために、モデルごとの様々な閾値での適合率−再現率曲線、ＲＯＣ曲線、及び真／偽陽性／陰性のサンプルについて、さらなる可視化が提供されてもよい。
【０１２９】
ユーザは任意の時点で、十分な訓練データが収集されたとみなし、モデルの構築を進める準備をしてもよい。モデル構築中に、アノテーションサーバ２０２は、ユーザに一連のステップを自動化された方法で案内する。一部の実施形態では、ユーザは、機械学習の訓練に使用される特定のアノテーションセットと、機械学習モデルの品質のテストに使用される他のアノテーションセットとを指定する。他の実施形態では、アノテーションサーバ２０２は、所与の概念について利用可能な全てのアノテーション付きデータを、訓練データのセット及びテストデータのセットに分割する。
【０１３０】
訓練データ及びテストデータならびにモデルタイプ（たとえば、テキスト分類器、画像分類器、意味役割ラベリング）が与えられると、アノテーションサーバ２０２は、ベースラインを確立するために使用する適切なアルゴリズム及び損失関数を選択する。ほとんどの場合、モデルのタイプ及び訓練データの量に対して特定のアルゴリズムが事前に決定されている。たとえば、バイグラム機能を有するロジスティック回帰がテキスト分類のベースラインアルゴリズムとして選択されてもよく、スペクトログラム機能を有する隠れマルコフモデルが自動音声認識のベースラインアルゴリズムとして選択されてもよい。ベースラインを超えて、各モデルタイプは、アノテーションサーバ２０２によって事前に決定された適用可能なアルゴリズムの関連付けられたリストを有する。
【０１３１】
アルゴリズム及び損失関数が選択されると、アノテーションサーバ２０２は収束をテストし、追加の訓練データの利益を評価し、ベースラインモデルを確立する。収束は、訓練データでモデルを複数回訓練し、テストデータで品質メトリックを測定し、実行にわたる品質メトリックの分散を測定することによってテストしてもよく、ここで、分散は標準偏差により計算される。追加の訓練データの利益は、学習曲線を介して評価され、フィードバックのためにユーザに返される。学習曲線を使用した評価については、以下でより詳細に説明する。最後に、「ベースラインモデル」は、所与のモデルタイプ及びアルゴリズムに対して選択されたデフォルトのハイパーパラメータを使用して訓練される。ベースラインモデルの予測と、テストセットの参照アノテーションとを使用して、多数のメトリックが計算される。これらのメトリックは問題のタイプに関するものであるが、以下でより詳細に説明するデータ品質メトリック、データ数量メトリック、及びモデル品質メトリックを含んでもよい。
【０１３２】
一部の実施形態において、メトリックは検証セットに対して実行される。他の実施形態では、検証セットは存在せず、訓練データは、典型的な交差検証方法によって、訓練及び検証の両方に使用される。
【０１３３】
ベースライン選択プロセスと同様に、アノテーションサーバ２０２はモデルタイプを使用して、適切な探索空間を選択する。探索空間は、アルゴリズムのファミリーと、それらに関連する損失関数と、アルゴリズムを調整するための潜在的なハイパーパラメータとで構成される。単一のハイパーパラメータの最適化の実行中に、アルゴリズム及びサンプルのハイパーパラメータが選択され、モデルが訓練され、メトリックが計算される。
【０１３４】
アルゴリズム及び候補ハイパーパラメータの選択は、任意数の方法を使用して実行され、たとえば、ランダム選択、グリッド探索、またはベイズ推定法（たとえば、Ｐａｒｚｅｎ推定器のツリー）などがある。モデル訓練の各実行では、実験を再現するために必要なパラメータ、及び実験の結果が、データベースに記憶される。これらのパラメータは、ランダムシード、アルゴリズム選択、損失関数、ハイパーパラメータ、データセット分割、データセットハッシュ（たとえば、変化が発生したか否かを判定するためのデータセット全体にわたる尺度）、及びクラス重みを含んでもよい。ストア結果は、ベースラインだけでなく、ハイパーパラメータ最適化中に実行される反復を含んでもよい。
【０１３５】
ハイパーパラメータの推定は、品質目標が達成された場合、品質の変化が小さくなった場合、または計算予算が使い果たされた場合に停止する。一部の実施形態では、ユーザには、全てのアルゴリズム及びハイパーパラメータの実行の結果のグラフィカルなリストが提示され、そこからモデルを選択することができる。他の実施形態では、目的関数を最大化または最小化する最良のモデルが自動的に選択される。たとえば、テキスト分類では、これは受信者動作特性曲線の下の面積を最大化するモデルであってもよい。
【０１３６】
一部の実施態様では、最初の挑戦者モデル３２４が生成されると、このモデルはチャンピオンであると見なされ、３３０において配備され得る。新たなアノテーションが、アノテーションクライアント２０６または他のクライアントコンピュータ（図示せず）などの外部のシステムから提供されてもよい。たとえば、コンプライアンス監視システムが存在し、コンプライアンス担当者の日々の活動が、会社にとって潜在的なリスクになるメッセージにフラグを立てることであると仮定する。これらのフラグ付きメッセージは本番アノテーションであり、これらをアノテーションサーバ２０２にフィードバックして、データベース２０４に記憶されたアノテーション付き訓練セットを補うことができ、３２４において新たな挑戦者モデルを生成するために使用することができる。ベースラインモデル、または最初の挑戦者モデル３２４は、チャンピオンモデル３２６とみなしてもよい。報告３２８は、上述のように、チャンピオンモデル３２６と、新たに構築された挑戦者モデル３２４とを比較して、３３０で配備されるモデルの１つの選択を容易にすることを含んでもよい。
【０１３７】
新たな本番アノテーションがアノテーションサーバ２０２に供給されると、その後生成されるモデルは、データドリフト計算及びコンセプトドリフト計算によって変化が監視される。たとえば、コンセプトドリフトは、アノテーション付き訓練セットの新旧バージョンに基づいて訓練モデルを計算し、新旧データセットに関していくつかの変化した予測を定量化することによって計算してもよい。データドリフトは、アノテーション付き訓練セットの新旧バージョン間のコーパス統計及び／またはコーパス比較に基づいて測定してもよい。たとえば、テキストデータの場合、コーパス統計は、文書で固定された割合、ＨＴＭＬタグの割合、参照語彙（たとえば、チャット語彙、標準語彙）と比較した語彙外の単語の割合、文字及び／または数字が混在している単語の割合、品詞の割合、句読点、文字（英語、キリル文字など）、数字、及び／または他のテキスト記号の割合、大文字の、小文字の、大文字で始まる、及び／または他の形式の単語の割合、いくつかの文字、単語、文、段落、及び／または単語、文、段落、及び／または文書ごとの段落、改行ごとの文字及び／または単語の分布、重複した文の分布、電子メールまたは他の文書ごとのいくつかの文の分布、形式、最も一般的な単語及びバイグラム、及び／または可読性スコア、を含んでもよい。コーパス統計は、追加的または代替的に、経時的なアノテーションなしデータに関するメトリック、または経時的なモデル予測に関するメトリックを含んでもよい。コーパス比較は、上記のコーパス統計、スピアマンの順位相関係数、及び／またはパープレキシティ（ｐｅｒｐｌｅｘｉｔｙ）のいずれか１つまたは組み合わせに基づく比較を含む。
【０１３８】
ユーザは、クライアントコンピュータ２０６に表示されるメッセージまたは画面を介して、それらのデータのそのようなドリフトを警告される。さらにモデルは、所望であれば、クライアントコンピュータ２０６を介して供給されるユーザ入力に基づいて、バージョン管理、切り替え、及びロールバックを行うことができる。
【０１３９】
３３２において、大規模なデータセットの迅速な探索及びアノテーション、ならびに対応するモデル作成が可能になることに加えて、特定の実施態様では、生成されたモデル及び／または生成されたモデル資産を購入、販売、共有、及び配布することが可能になる。これらのモデル資産は、限定はしないが、データセットで訓練された単語埋め込み、単語ベクトル、アノテーションのセット、キーワード及びフレーズのリスト、例文のリスト、言語モデル、辞書、ならびに訓練されたモデル、及びモデルアーキテクチャを含む。一部の実施態様では、アノテーションは、新たなモデルが訓練される前に、個人を特定可能な情報が「サニタイズ（ｓａｎｉｔｉｚｅｄ）」される。元の未加工の特徴が発見されないように、特徴を安全にハッシュ化してもよい。準同型暗号化を単純なモデルに使用することができる。
【０１４０】
一部の実施態様では、これらのモデルの「学習内容」は、モデル自体を共有せずに、公開または別の方法で共有される。たとえば、「パブリッシャ」が基礎となるモデルを調整すると、モデルの勾配更新が、管理された外部サーバに送信され、外部サーバはこれらの勾配更新を「サブスクライバ」に再配布する。「サブスクライバ」は、勾配更新を使用して自身のローカルモデルをさらに訓練することができる。一部の実施形態では、勾配更新は暗号化されてもよい。一部の実施態様では、勾配更新が計算グラフのレイヤに加算される。ローカルモデルを訓練する場合、勾配更新に局所学習率が乗算されてもよい。あるいは、勾配更新は（Ｘ，ｙ）を共有してもよく、ここで、Ｘは入力データ点、入力データの意味表現、または匿名データである。
【０１４１】
図４に、開示した技術の例示的な実施形態による、訓練候補のセットにアノテーションを付けるためのアノテーションプロセス４００のフロー図を示す。アノテーションプロセス４００は、３１０でのアノテーション付き訓練セットの作成中に行われ、アノテーションサーバ２０２によって実行されてもよく、アノテーションクライアント２０６上のローカルインストールで実行されてもよい。
【０１４２】
４０２において、アノテーションなしの訓練候補のセットが受信される。訓練候補のセット内の各データ要素を、アノテーションなしデータ１０２のサンプルと呼ぶ。たとえば、テキストの場合、サンプルは、前処理されたトークン化されたテキスト（たとえば、ｎグラム、文、段落など）を含む。４０４において、訓練候補のセットまたはそのサブセット内のサンプルに対してアノテーションを予測するモデル４０６によって予測セットが生成される。予測セット内の予測は、ストリーミングされてもよく（たとえば、１つずつ決定されてもよく）、予測のバッチで提供されてもよい。また、予測セット内の予測は、訓練候補のセット内のアノテーションなしサンプルの１つまたは複数のクラスタ内のサンプルに対して作成されてもよい。クラスタは、アノテーションなしデータ１０２の前処理中に特定されてもよい。モデル４０６は、予測ごとに予測ベクトルスコアをさらに提供する。たとえば、分類タスクの場合、モデル４０６は、バイナリ分類器アルゴリズムまたはマルチクラス分類器アルゴリズムを使用して、予測セットを生成してもよい。使用され得るモデルの実施例については、以下で図９を参照してより詳細に説明する。一部の実施態様では、モデルは、線形分類器及び訓練可能な単語埋め込みを有する連続的なバッグオブワード（ｂａｇ  ｏｆ  ｗｏｒｄｓ）モデルである。他の実施形態では、モデルは、訓練可能なまたは固定の単語埋め込みを有する深層学習モデル（たとえば、畳み込みまたはリカレントニューラルネットワーク）であってもよい。テキスト以外のデータ用の他のタイプのモデルが本開示により企図される。
【０１４３】
４０８において、予測の予測ベクトルに基づいて予測セットが評価され、１つまたは複数のサンプルのアノテーションを要求するか否かについての判定が行われる。アノテーションプロセスを通じたモデルの迅速かつ集中的な訓練を容易にするために、複数のサンプリングアルゴリズムのうちの１つに従って予測セットをサンプリングし、サンプリングされた予測セット内の各サンプルをキュー内にサンプリングスコアの順で並べることにより、サンプリングされた予測セットが生成される。サンプリングスコアは、信頼度スコアと等しくてもよく、予測がサンプリングアルゴリズムにどの程度適合するかを表すように予測ベクトルから導出されてもよい。サンプリングされた予測セットを生成するために使用されるサンプリングアルゴリズム、及びサンプリングされた予測セットが配置されたキューは、サンプラまたは「例文候補生成エンジン」と呼ぶ。そして、サンプラによって提供されるサンプルについて、アノテーションを要求してもよい。
【０１４４】
サンプリングアルゴリズムは、密度サンプリングに基づくサンプリング、エントロピーサンプリング（たとえば、最大レベルのシャノンエントロピーを有する予測を特定する）、推定誤差低減サンプリング、網羅的なサンプリング（たとえば、直線的な進行（ｌｉｎｅａｒ  ｐｒｏｇｒｅｓｓｉｏｎ））、フラグ付き（たとえば、予測にフラグを立てて後で分析できるようにするためのユーザ入力が提供された予測）、ハードネガティブマイニングサンプリング、高信頼度サンプリング（たとえば、最大信頼度スコアを有する予測）、線形サンプリング、マップ可視化サンプリング（たとえば、以下で図２３に関連してより詳細に説明するデータマップ上で受け取ったユーザ入力からのもの）、メタデータ検索サンプリング、最小マージンサンプリング、クエリバイコミッティサンプリング、ランダムサンプリング、レビューサンプリング、検索サンプリング（たとえば、以下で図１３〜図１６及び図２２に関連してより詳細に説明する検索パラメータ及び／またはキーワードのユーザ入力からのもの）、類似性サンプリング、スキップされたサンプリング（たとえば、ユーザ入力が予測のアノテーション付けをスキップするものであった予測）、層化サンプリング、最も不確実なもの（たとえば、最低信頼度スコアを有する予測）を含む。このサンプリングアルゴリズムのリストは、網羅的なリストであることを意図したものではなく、他のサンプリングアルゴリズムが使用されてもよい。
【０１４５】
４１０において、サンプラは、異なるサンプリングアルゴリズムを使用する異なるサンプラに変更されてもよい。サンプラは、サンプラを変更するためのユーザ選択の受信に基づいて、またはサンプラを変更するというアルゴリズムの判定に基づいて変更されてもよい。以下で図６〜図７を参照してより詳細に説明するように、サンプラを変更する際にモデルを再訓練する必要はない。
【０１４６】
４１２において、ユーザがサンプルにアノテーションを付けるのをスキップしたか否かが判定される。スキップした場合、プロセス４００はループして、アノテーションを要求するために他のアノテーションなしデータ４０２を評価する。スキップしなかった場合、４１４において、ユーザのフィードバックに基づいてサンプルにアノテーションが付けられる。４１６において、アノテーション付きサンプルに基づいてモデルが更新される。モデルは、新たなアノテーションのたびに更新が実行されるように、ストリーミング方式で更新されてもよい。あるいは、モデルは、たとえば所定数のアノテーションの後などに、バッチ方式で更新されてもよい。別の代替例として、モデルを更新するためのユーザ入力を受信したときに、モデルが更新されてもよい。さらなる代替例として、モデルはアルゴリズムの判定に基づいて、たとえば、定期的に、いくつかの正しい予測の追跡に基づいて、または学習を強化するように更新されてもよい。
【０１４７】
アノテーションプロセス４００は、更新されたモデル４１６が停止基準を満たすまで継続してもよい。停止基準は、モデルの品質に関する人間の判断を容易にする情報を提供してもよい。たとえば、更新されたモデル４１６は、データ品質メトリック及びデータ数量メトリックについて、網羅的にアノテーションが付けられたテストデータのセットに対して評価されてもよい。データ品質メトリックは、コヒーレンスメトリックを含んでもよい。たとえば、マルチクラス分類アルゴリズムの場合、ジニ係数カウントまたは各部分（ｐｒｏｐｏｒｔｉｏｎｓ）の最大エントロピーのパーセントに基づいて、クラスタコヒーレンスメトリックが生成される。
【０１４８】
データ数量メトリックは、学習曲線メトリックまたはモデル収束メトリックを含んでもよい。たとえば、学習曲線メトリックは、複数の所定のデータアノテーションレベルのそれぞれにおいて（たとえば、データの５、１０、２０、５０、７５、１００％にアノテーションが付けられた各時点で）、テストデータのセットに対して、更新されたモデルの反復の予測の正解率を測定してもよい。学習曲線の傾きは、更新されたモデルが学習している追加情報の量の尺度である。学習曲線が平坦になると、更新されたモデルのさらなる反復ごとに、学習される追加情報の量が減少する。したがって、アノテーションプロセス４００を終了するための停止基準は、学習曲線の傾きが所定の閾値学習率を下回った場合であってもよい。モデル収束メトリックは、実行にわたる、交差検証の分割にわたる、及び／または交差検証の平均にわたるメトリックの標準偏差である場合がある。アノテーションプロセス４００の他の停止基準が使用されてもよい。
【０１４９】
図５に、開示した技術の例示的な実施形態による、訓練候補のセットのアノテーションを容易にするサンプリング技法のアルゴリズムのサンプリングの進行過程５００のシーケンス図を示す。一般に、選択されたサンプラについて、モデルが高い信頼度のサンプルを識別しており、アノテーションクライアント２０６上でのアノテーション入力を介した確認フィードバックを受信している場合、サンプラの進行過程５００は続いて、サンプラを進行過程５００のさらに下のサンプラに変更する。すなわち、各サンプラは、進行過程における前または次のサンプラのいずれに移動するかを決定する結果の期待分布を有する。たとえば、選択されたサンプラがハードネガティブサンプラ５０４であって、ユーザによって提供されたアノテーションがモデル予測と一致する場合、サンプラを層化サンプラ５０６に変更してもよい。
【０１５０】
同様に、ユーザによって提供されたアノテーションがモデル予測と異なる場合、サンプラは進行過程５００のより上のサンプラに変更してもよい。すなわち、モデル予測が誤っている所定数のサンプルアノテーションを受け取ると、進行過程の前のサンプラが選択される。たとえば、層化サンプラ５０６が予測を正しく提供していない場合、サンプラはハードネガティブサンプラ５０４に変更してもよい。一部の実施態様では、進行過程５００は、いくつかの「サプライズ」アノテーションを最大化し、あるいは学習曲線の最大化を強化する（たとえば、学習曲線で可能な限り急な傾きを維持する）異なるサンプラを選択する。
【０１５１】
最初に、選択されるサンプラはシードサンプラ５０２である。シードサンプラ５０２は、ユーザによって提供された入力に基づいてサンプルを識別する。以下で図１３〜図１６を参照してより詳細に説明するように、入力は、ユーザにより入力された、ユーザが分類することに関心があるキーワード、フレーズ、及び／または例文を含んでもよい。さらに、他のデータタイプの辞書、オントロジー、または他のそのようなデータベースをインポートして、ユーザによって提供された入力を補い、拡張してもよい。また、入力は、上述の共有モデル資産などの共有モデル資産の入力を含んでもよい。また、シードサンプラ５０２により、以下により詳細に説明するように、ユーザが訓練候補のセット内のサンプルを能動的に検索することが可能になる。テキストベースのアノテーションの場合、シードサンプラ４０２に提供されるキーワード及びフレーズリストを使用して、まず、ユーザが探しているものの例文を探し、それにより不均衡なデータ（たとえば、データセット内のサンプル数と比較して少数の代表的なサンプルしか存在しないデータ）の問題に対処する方法を提供する。
【０１５２】
一部の実施形態では、「シード」サンプリングは、事前に訓練されたモデルによって部分的に完了している。これにより、ユーザが代表的なシード例を探す必要性が減少し、ハードネガティブサンプラへのより高速な進行が可能になる。そのような実施形態では、中間モデルは、前述の増分学習率を使用して漸進的に訓練される。
【０１５３】
進行過程５００はシードサンプラへ／から、ハードネガティブサンプラ５０４から／へ進む。ハードネガティブサンプラ５０４は、ハードネガティブマイニングサンプリングアルゴリズムを使用して、「サプライズ」アノテーションを識別しようと試みる。すなわち、ハードネガティブマイニングアルゴリズムは、信頼度スコアが高いアノテーションの予測をモデルが有するサンプルを検索するが、（たとえば、異なるアノテーションを割り当てることによって）アノテーションが正しくないというアノテーションをユーザから受け取る。
【０１５４】
進行過程５００はハードネガティブサンプラ５０４へ／から、層化サンプラ５０６から／へ進む。層化サンプラ５０６は、層化サンプリングアルゴリズムを使用する。層化サンプリングアルゴリズムは、所与の結果についてのスコアが２つの浮動小数の間［Ａ，Ｂ］にあるサンプルを識別する。
【０１５５】
進行過程５００は層化サンプラ５０４へ／から、不確実性サンプラ５０８から／へ進む。不確実性サンプラ５０８は、最大エントロピーアルゴリズム、最小マージンアルゴリズム、クエリバイコミッティアルゴリズム、または他のそのような不確実性サンプリングアルゴリズムのうちの１つまたは複数を使用する。不確実性サンプラ５０８は、不均衡なデータセット内のユニークな、もしくはまれな、または別の方法で等しくない確率サンプルにアノテーションを付ける際に特に役立つ。
【０１５６】
上記のように、このサンプラは、それぞれ独自のサンプリングアルゴリズムを有する事前に提供されたサンプラのリストからユーザが手動で選択してもよい。サンプリングアルゴリズムは、限定はしないが、最大情報量（最大エントロピー）、最小マージン、特定のクラスからのランダムサンプル、キーワードベースのサンプル、ランダムサンプル、またはデータの直線的な進行を含む。「最大エントロピー」などの方法により、フィードバックを求めるために、低い信頼度スコアが存在する予測を効果的に識別することができる。
【０１５７】
一部の実施態様では、たとえば図２１に示すように、ユーザは「自動サンプリング」を使用することを勧められる。上述のように、サンプリング進行過程５００による自動サンプリングによって、ユーザにより受け取られる新たなアノテーションに応じて得られる情報価値を最大化することができる。具体的には、進行過程５００は、最初にキーワード及びフレーズを使用し（不均衡なデータ内で正例を探すため）、その後、より高度な方法に移行してもよい。進行過程５００は、ユーザによって提供されたアノテーションが「サプライズ」となる（すなわち、アノテーションがモデルの予測と異なる）か否かに応じて、１つまたはいくつかの可能なサンプリング方法に適応することができる。たとえば、モデルが予測に関連する高い信頼度スコアを有すると仮定する。人間のアノテータがモデルの予測と意見が合う場合、進行過程５００は、より高い不確実性が存在するサンプルを提供するサンプラに自動的に移行してもよい。しかしながら、人間のアノテータがモデルの予測と意見が合わない場合、進行過程５００は、予想される情報獲得を最大化するために、他の「高信頼度」サンプルを表示し続けてもよい。
【０１５８】
一部の実施形態では、ユーザは、アノテーションの品質を維持するために、不確実なサンプルにフラグを立てて後でレビューすることができる。他の実施形態では、ユーザは、サンプルが「記憶」されるように指定することができ、これにより、これらのサンプルに関して、ハッシュテーブルを参照して機械学習モデルがオーバーライドされる。
【０１５９】
キーワード及びフレーズのリストが提供されたか、またはモデルにシードを与えるための他のそのような入力が提供された場合、進行過程５００は、入力データの適切な「カバー範囲」を確保してもよい。たとえば、１０個のキーワードのリストが与えられた場合、サンプラは各キーワードに関してユーザに表示されるサンプルの数を追跡してもよい。特定のキーワードが他のキーワードに対して「アンダーサンプリング」されていると判定された場合、進行過程５００は、不均衡が修正されるまでそのエントリをオーバーサンプリングすることを選択してもよい。この方法により、関連する学習モデルの再現率が改善される。
【０１６０】
ユーザが不十分な「文脈」が提供されたと考えた場合、追加の文脈を要求することができる。たとえば、文が曖昧であると考えられる場合、ユーザは文の前後を見ることを要求することができる。この場合、アノテーションだけでなく、より多くの文脈が必要であったという２つのアノテーションが記録されることになる。
【０１６１】
ユーザは訓練中の例の領域を最も関連性があるものとして「ほのめかす」か、または別の方法で手動で指定することができる。これにより、たとえば、観点付き感情分析（ａｓｐｅｃｔ−ｂａｓｅｄ  ｓｅｎｔｉｍｅｎｔ  ａｎａｌｙｓｉｓ）が可能になる。他のそのようなユーザ向けのサンプリング方法は、「類似のサンプル」及び「データマップ」を含む。これらのサンプリング方法のそれぞれは、アノテーションなしデータ１０２または訓練候補のセットに対して教師なし学習技法を使用することにより既に発見されている表現を利用する。ユーザが特定のサンプルの「類似のサンプル」を要求した場合、サンプラは教師なし学習技法で学習された情報を使用して、近似する例文を探そうとし得る。同様に、ユーザが特定の用語またはフレーズのキーワード検索を実行すると、サンプラは教師なし学習技法で学習されたこの情報を使用して、キーワード及びその類義語を有する例文を探そうとし得る。一部の実施形態において、連続的なバッグオブワードモデルを使用して文ベクトルが計算され、コサイン距離を使用して近い文が計算される。
【０１６２】
また、非構造化表現を使用して、ｔ−ｓｎｅまたはＰＣＡなどの技法により、データの次元を２次元または３次元に削減することができる。これらの低次元の表現は「マップ」として視覚的に提示することができ、これにより、図２３に示すように、ユーザは自分のデータを移動させて、特定の例文を探すことができる。そのような一実施形態では、サンプルは散布図のように表され、以前にアノテーションが付けられたサンプルはユーザアノテーションを表す色で提示される。「マップ」表現により、ユーザは、「まだ移動していない領域」に加え、予測ミスが発生している場合がある領域を視覚的に確認することが可能になる。
【０１６３】
図６は、開示した技術の例示的な実施形態による、データにアノテーションを付けるための計算アーキテクチャ６００のブロック図である。以下に詳述するように、計算アーキテクチャ６００は、限られた計算リソースでほぼリアルタイムに大規模なデータセットへの操作を提供する。図３及び図４に関連して上述したように、データベース２０４に記憶されたアノテーションなしデータ１０２は前処理され、前処理されたデータのサブセットが訓練候補のセットを生成するために選択される。計算アーキテクチャ６００では、アノテーションなしデータはストリーミング方式で処理される。６０２において、アノテーションなしデータ１０２または訓練候補のセットからサンプルが取得され、前処理される。サンプルは、アノテーションなしデータ１０２または訓練候補のセットから抽出された、ランダムに選択されたサンプルであってもよい。ランダム性の性質は、ランダムシードを介して制御することができる。取得されたテキストは前処理される（たとえば、小文字化され、句読点の間にスペースが挿入され、日本語などの非空白言語の場合は空白が挿入される）。
【０１６４】
６０４において、前処理されたデータ（たとえば、テキスト）は、モデル４０６を介してストリーミングされ、モデル４０６は、前処理されたデータ（たとえば、テキスト）をスコアのベクトル（分類器の場合）または他のそのようなモデル出力に変換して、予測セットの予測を生成する。６０６において、（サンプル識別子、ベクトルスコア）のタプル（またはモデルにより出力される他の予測）が、サンプリングストレージ書込器を介してストリーミングされ、予測を書き込む１つまたは複数の優先度キュー６０８が選択される。６１０において、サンプリング選択ロジックは優先度キューを選択し、そこから６１２においてアノテーションのためにサンプル及び予測がユーザに提示される。ユーザからアノテーションを受け取ると、６１４においてモデルが訓練されて、更新されたモデル６１６を生成され、プロセスが継続されて、６０４において前処理されたデータから予測が生成される。
【０１６５】
仮にシステムが全てのサンプルについての結果的に得られる予測を記憶するとすれば、メモリ及びディスク容量の要件は非常に大きくなる。たとえば、アノテーションなしデータ１０２または訓練候補のセットが、数百万さらには数千または数億のサンプルを有し得ることはよくある。全てのサンプルに対する予測を生成及び記憶するために必要な計算リソースは非常に大きくなる。したがって、優先度キュー６０８はそれぞれ、サンプラのタイプごとに、限られた長さの優先度キューを提供する。優先度キュー６０８のそれぞれは、サンプラによって使用されるサンプリングアルゴリズムに従って、サンプルの上位１０個、１００個、１０００個、または１００００個の予測のみを記憶してもよい。一部の実施態様では、優先度キュー６０８は、一度に２０００個のサンプルを記憶し得る。上述のように、関心のある様々なクラスのサンプラと、様々な目的関数とが存在し、それぞれ対応する優先度キュー６０８を有する。様々な実施態様では、２個、５個、１０個、２０個、またはそれ以上のサンプラが存在してもよい。一部の実施態様では、サンプラのうちの１つまたは複数は優先度キュー６０８を有さなくてもよく、代わりにリザーバサンプリングアルゴリズムに依存するものであってもよい。たとえば、クラスＡの信頼度レベルが０．５〜１．０の予測ベクトルから選択的にサンプリングするために、リザーバサンプリングは、これらの要件に適合するストリーミングされたサンプルからサブセットを選択的にサンプリングする。優先度キュー６０８は、クライアントコンピュータ２０６またはアノテーションサーバ２０２上のディスクに存続させることができる。一部の実施形態では、優先度キューは、データベース２０４に記憶されるなど、分散データベース技術を使用して記憶される。以下で図７に関連してより詳細に説明するように、優先度キュー６０８のデータ構造により、上位の結果のみを記憶し、その他を破棄することが可能になる。
【０１６６】
サンプラ及び優先度キュー６０８のそれぞれは、特定のユーザによる単一のアノテーションプロセスに属する。すなわち、異なるユーザが同じアノテーションなしデータのセットにアノテーションを提供してもよく、その場合、各ユーザに対して、別個のアノテーションのセットが提供される。優先度キュー６０８、及び進行過程５００で現在選択されているサンプラは、ユーザごとに異なっていてもよい。
【０１６７】
優先度キュー６０８はそれぞれ、異なるサンプリングアルゴリズムに基づいて異なるサンプルのセットを保持するので、アノテーションプロセス４００は、アノテーションの処理における明らかな遅延なしに、４１０などでサンプラを変更することができる。この結果は特に、必要なユーザの認知負荷を軽減するという設計目標から実現される。モデルの現在の反復を改善するためにアノテーションをシステムにフィードバックし、システムがサンプラに通知する、などとすることができる。
【０１６８】
たとえば、サンプルが与えられると、システムは分類予測を生成することができる。これらの予測を使用して、エントロピー、最小マージンなどの必要なメトリックを計算することができる。これらのスコアは、サンプラのタイプごとに既に記憶されているスコアと比較することができる。一部の実施形態では、予測が特定の基準を満たしている場合、予測は保持され、結果は１つまたは複数の優先度キュー６０８に記憶され、それ以外の場合は破棄される。有利かつ有益な正味の影響は、優先度キュー６０８に必要なメモリが、実行時にほとんど影響を与えずに、小さく、かつ固定であることである。そのような実施形態では、上述のように、モデルは短い固定の期間で、ユーザの要求により、またはアルゴリズムの再訓練の決定時に再訓練することができる。
【０１６９】
一部の実施態様では、モデルを動的な状態のままにすることができる。新たなアノテーションが到着すると、モデルは多少の調整を行うことができる。その後、サンプラサンプリングアルゴリズムの１つと一致するサンプルに遭遇するまで、予測に進むことができる。その時点で、モデルは「一時停止」して、ユーザからのさらなるフィードバックを待ってから、サンプルにアノテーションを付けることができる。このアノテーションが提供されると、このプロセスを繰り返すことができる。
【０１７０】
図７は、開示した技術の例示的な実施形態による、予測を高速化し、ハードウェア要件を低減するために使用される優先度キュー方法７００を示すブロック図である。予測７０２がサンプリングストレージ書込器６０６によってストリーミングされると、予測は複数の優先度キュー６０８に提供される。図７の実施例に示す優先度キュー６０８は、「クラスＡ」というアノテーションが付けられる高信頼度の予測を有するサンプル用の優先度キュー７０４、「クラスＢ」というアノテーションが付けられる高信頼度の予測を有するサンプル用の優先度キュー７０６、高いエントロピーを有するサンプル用の優先度キュー７０８（たとえば、最大のシャノンエントロピーの順に保持されるもの）、及び最小マージンサンプル用の優先度キュー７１０を含む。より多いまたはより少ない優先度キュー６０８が使用されてもよい。サンプルは、サンプリングスコア７１４の増加順に優先度キューに配置される。上述のように、サンプリングスコアは、信頼度スコアであってもよく、または予測ベクトルによって別の方法で得られる値であってもよい。
【０１７１】
新たな予測が受信されると、優先度キュー６０８のそれぞれは、新たな予測のサンプリングスコアを評価する。サンプリングスコアが所与の優先度キュー６０８の閾値７１６を下回る場合、優先度キュー６０８は予測を破棄７２０してもよい。異なる優先度キューは、異なる閾値７１６を使用してもよい。サンプリングスコアが所与の優先度キュー６０８の閾値７１６を上回る場合、優先度キューは予測を保存７１８するか否かを評価する。たとえば、所与の優先度キュー６０８が満杯ではなく、サンプリングスコアが閾値７１６より大きい場合、優先度キュー６０８は予測を保存する。しかしながら、所与の優先度キュー６０８が満杯である場合、サンプリングスコアは、優先度キュー６０８に以前に保存された予測のサンプリングスコアのうちの１つまたは複数と比較される。一部の実施形態では、サンプリングスコアが予め記憶された予測のサンプリングスコアのいずれよりも大きくない場合、予測は破棄される。そうでない場合、予測は優先度キュー６０８内に、その優先度スコアに応じた位置に保存され、最低スコアの予測が優先度キュー６０８から削除される。上述のように、このようにして、優先度キュー６０８は、全ての予測が保存される場合に必要となるよりも大幅に小さい固定メモリ要件を維持する。他の実施形態では、リザーバサンプリングなどの方法を使用して、基礎となる候補サンプルの分布を近似しながら、元の予測のサブセットを維持する。
【０１７２】
図８は、開示した技術の例示的な実施形態による、テストデータのセットにアノテーションを付けるためのアノテーションプロセス８００のフロー図である。アノテーションプロセス８００は、３１６でのアノテーション付きテストセットの作成中に行われ、アノテーションサーバ２０２によって実行されてもよく、アノテーションクライアント２０６上のローカルインストールで実行されてもよい。８０２において、アノテーションなしテストデータのセットが受信される。８０４において、アノテーションプロセス８００によって、またはユーザ入力を介して、テストセットの網羅的なアノテーションが望ましいか否かについての判定が行われる。望ましい場合、８０６において、アノテーションプロセス８００は、ユーザによるアノテーションのためのテストセットの直線的な進行を、プログレスバーなどによる直線的な進行の進捗状況の表示と共に提供する。
【０１７３】
網羅的なアノテーション付けが望ましくない場合、８０８において、テストセットデータのコアクラスタの識別を通じて遠距離教師あり学習プロセスが開始される。たとえば、基礎となる分布の分析に関連する様々な技法を通じて、コアクラスタが識別されてもよい。たとえば、分布モードを有する密度ベースのクラスタ、分布平均を有する確率ベースのクラスタ、または分布重心を有するレイヤベースのクラスタなどがある。各技法は対応する距離メトリックに関連付けられている（たとえば、レイヤベースのクラスタはユークリッド距離を使用する）。８１０において、クラスタのうちの１つまたは複数から取得されたサンプルにアノテーションを付ける要求が、グラフィカルユーザインターフェースを介してユーザに提示される。最初に、クラスタからサンプルをランダムに取り出してもよい。データにアノテーションが付けられると、コヒーレンスメトリック、たとえば、二乗距離の和、サンプルベースのエントロピーメトリック、及びジニ係数などがクラスタに割り当てられる。８１２において、アノテーションなしデータ点に、アノテーション付きサンプルまでの距離の逆数に関連する信頼度スコアが割り当てられる。システムは、既知のサンプルに近い点の活用と、分布の新たな部分の探索とを交互に行う。そのような一実施形態では、探索と活用とを交互に行うことは、ベイジアンバンディットなどの強化学習方法を介して行われる。８１６において、最も不確実な予測の信頼度スコアが閾値信頼度スコアを超えるか否かの判定が、アノテーションプロセス８００によって行われる。超えない場合、アノテーションプロセス８００はループバックして、８１０においてテストデータのセットの追加サンプルのアノテーションを要求する。超える場合、テストデータのセットは十分にアノテーションが付けられていると判定され、８１８において出力される。様々な実施形態において、全ての技法は同時に実行され（密度ベース、確率ベース及びレイヤベース）、強化学習を通じて最も成功した技法が学習される。
【０１７４】
図９〜図２５に、機械学習モデルを構築するためのアノテーション付き訓練セットを作成するための様々な例示的なグラフィカルユーザインターフェースを示す。図９〜図２５のグラフィカルユーザインターフェースは、アノテーションクライアント２０６のディスプレイ上に表示され、アノテーションクライアント２０６の入力デバイスを介してアノテーションユーザから入力が受け取られる。図９〜図２５のグラフィカルユーザインターフェースは、たとえば、アノテーションサーバ２０２が１つまたは複数のウェブページを提供して、アノテーションクライアント２０６のウェブブラウザに表示することによって、アノテーションサーバ２０２からアノテーションクライアント２０６に提供されてもよい。あるいは、アノテーションクライアント２０６上のローカルインストールが、アノテーションクライアントのディスプレイ上に図９〜図２５のグラフィカルユーザインターフェースを提示してもよい。他の構成が本開示により企図される。
【０１７５】
図９に、開示した技術の例示的な実施形態による、新たな機械学習モデルの作成を開始するための例示的なグラフィカルユーザインターフェース９００を示す。モデル名フィールド９０２は、作成する新たなモデルに名前を付ける英数字または他の文字列を受け取るように構成される。モデル選択セクション９０４は複数の選択可能なモデルボタンを含み、それぞれが異なるタイプの分類器に関連付けられている。たとえば、テキストモデルの場合、文分類器、段落分類器、文書分類器、表分類器、または表抽出器のそれぞれに選択可能なモデルボタンを設けてもよい。同様に、画像モデルの場合、物体検出モデルまたは画像類似性モデルのそれぞれに対して選択可能なモデルボタンを設けてもよい。本明細書では、他のタイプのモデルが使用されてもよい。上記のシステム及びプロセスは、使用されるデータまたはモデルのタイプに依存せず、テキストデータの場合、テキストで使用される言語に依存しない。アノテーションを作成するために現在ログインしているユーザアカウントを識別するためのユーザインジケータ９０６が表示されてもよい。ナビゲーションメニュー９０８は、本明細書に記載の他のグラフィカルユーザインターフェースに移動するための選択可能なボタン及び／またはメニューを提供する。グラフィカルユーザインターフェース間の移動は、所与の画面で所望の入力を提供したときに自動化されてもよい。たとえば、図９のグラフィカルユーザインターフェース上で新たなモデルに名前を付け、モデルのタイプを選択すると、図１０のグラフィカルユーザインターフェースが自動的に表示されてもよい。
【０１７６】
様々な実施態様において、アノテーションが付けられるアノテーションなしデータは、アノテーションなしのテキスト、画像、ビデオ、または音声データである。モデルは、１クラス分類器、バイナリ分類器、マルチクラス分類器、または言語分類器である。モデルは、回帰、情報抽出、意味役割ラベリング、テキスト要約、文、段落、または文書の分類、表抽出、機械翻訳、含意及び矛盾、質問回答、音声タグ付け、音声分類、話者ダイアライゼーション、言語モデル調整、画像タグ付け、物体検出、画像セグメンテーション、画像類似性、ピクセル単位アノテーション、テキスト認識、あるいはビデオタグ付けを実行してもよい。上記のアノテーションなしデータのモデル及びタイプのリストは、網羅的なものではなく、単に実施例として提供している。他の任意のタイプのモデルまたは他の任意のタイプのアノテーションなしデータが本開示により企図される。
【０１７７】
図１０に、開示した技術の例示的な実施形態による、ユーザが複数のデータセットを管理できる方法を示す例示的なグラフィカルユーザインターフェース１０００を示す。図示のように、アノテーションサーバ２０２もしくはアノテーションクライアント２０６またはそれぞれのデータベース２０４、２０８にインポートされた選択可能なデータセット１００２のリストに、アノテーションなしデータ１０２の１つまたは複数のデータセットが提供されている。
【０１７８】
図１１に、開示した技術の例示的な実施形態による、ユーザが複数のアノテーションのセットを管理できる方法を示す例示的なグラフィカルユーザインターフェース１１００を示す。１つまたは複数のデータセットがインポートされると、ユーザは「アノテーションセット」を作成することができる。グラフィカルユーザインターフェース１１００により、ユーザは多数のアノテーションセットを管理することが可能になる。アノテーション付きもしくはアノテーションなしの訓練候補のセットまたはテストデータのセットなどの１つまたは複数のアノテーションセット１０４が、アノテーションなしデータ１０２から生成された選択可能なアノテーションセット１１０２のリストに提供される。
【０１７９】
図１２に、開示した技術の例示的な実施形態による、様々なカテゴリのアノテーションのセットの一実施例を示す。たとえば、アノテーションセットは、感情カテゴリ１２０２、行動カテゴリ１２０４、ライフイベントカテゴリ１２０６、または顧客カテゴリ１２０８に分類してもよい。他のカテゴリ及びタイプのアノテーションセットが本開示により企図される。各カテゴリ内に、複数のアノテーションセットをリストしてもよい。たとえば、感情カテゴリ１２０２の場合、アノテーションセットのリストは、愛情、動揺、怒り、不満、幸福、悲しみ、連帯感、及び不安を含む。他の感情が本開示により企図される。
【０１８０】
図１３に、開示した技術の例示的な実施形態による、ユーザがアノテーションをセットアップするのに使用できる構成オプションを示す例示的なグラフィカルユーザインターフェース１３００を示す。図１７のグラフィカルユーザインターフェースに移動して例文を編集するための、選択可能な「例文編集」ボタン１３０２が設けられている。図１４のグラフィカルユーザインターフェースに移動してキーワードを編集するための、選択可能な「キーワード編集」ボタン１３０４が設けられている。ユーザがデータセットで探しているものの例文及びキーワードは、上記のシードサンプラ５０２への入力を提供する。図１８〜図２３のグラフィカルユーザインターフェースの１つに移動して、上述のプロセス３００〜８００のうちの１つまたは複数に従ってサンプルにアノテーションを付けるための、選択可能なアノテーション付けボタン１３０６が設けられている。図２５のグラフィカルユーザインターフェースに移動して、アノテーションをレビュー及び編集するための、選択可能なレビューボタン１３０８が設けられている。
【０１８１】
サンプルにアノテーションを付けるための選択可能なラベルボタン１３１０は、アノテーションの追加または変更を容易にする。選択されたアノテーションは、アノテーションセクション１３１２に表示される。２つのアノテーションのみが表示されているが、単一クラスまたはマルチクラスの分類器に対して他の数のアノテーションを提供してもよい。選択可能なデータセットボタン１３１４は、アノテーションを付けるさらなるデータセットの追加を容易にする。データセットは、図１０で保持されているデータセットのセットから選択可能であってもよい。データセットに関連付けられた選択可能な削除アイコン１３１６は、そのデータセットをアノテーションに関して削除することを容易にする。不均衡なデータに関する問題に対処するために、頻度選択１３１８は、ユーザがデータセット内の例文またはキーワードの出現頻度を示すのを容易にする。一部の実施態様では、キーワード、例文、及び／またはアノテーションは、外部サーバなどを介して外部プロバイダからダウンロード、購入、または販売されてもよい。進捗状況インジケータ１３２０は、サンプルのアノテーションを開始する前に、どの入力が提供済みであり、どれがまだ必要であるかをユーザに示す。選択可能なアノテーションボタン１３０６と同様に、図１８〜図２３のグラフィカルユーザインターフェースのうちの１つに移動して、上述のプロセス３００〜８００のうちの１つまたは複数に従ってサンプルにアノテーションを付けるための選択可能なアノテーションボタン１３２２が設けられている。同じく、選択可能なレビューボタン１３０８と同様に、図２５のグラフィカルユーザインターフェースに移動してアノテーションをレビュー及び編集するための選択可能なレビューボタン１３２４が設けられている。
【０１８２】
図１４に、開示した技術の例示的な実施形態による、キーワード及びフレーズのリストを入力及び管理する方法を示す例示的なグラフィカルユーザインターフェース１４００を示す。テキスト入力ボックス１４０２は、シードサンプラ５０２に提供するキーワードまたはフレーズを追加するために設けられている。キーワードまたはフレーズが追加されると、キーワードリスト１４１２が更新されて、入力されたキーワードまたはフレーズのリストが表示される。選択可能なボタン１４０４は、別の文書またはプログラムからコピーされたキーワードまたはフレーズのリストをペーストするオプションを提供する。選択可能なオプション１４０６は、キーワードリストに入力するためのキーワードまたはフレーズのファイルをアップロードするオプションを提供する。外部キーワードソースリスト１４１０は、アップロードされたキーワードリストによって更新される。リスト検索ボタン１４０８は、１つまたは複数のキーワードリストの検索及びダウンロードまたは購入を容易にする。
【０１８３】
キーワードリスト１４１２に表示された各キーワードまたはフレーズについて、選択可能な類義語ボタン１４１４は、入力されたキーワードまたはフレーズを拡張して類義語を含めることを容易にする。キーワードまたはフレーズは、シソーラスの参照、近似する単語埋め込み、及び外部のオントロジーを介して拡張される。単語埋め込みとは、単語を表す数字のセットを指す。これらの単語埋め込みは、事前に提供することができ、またはユーザにより提供されるデータセットから作成することもでき、あるいはその両方を行うこともできる。単語埋め込みは教師なし技法、たとえば、スキップグラム、ネガティブサンプリング、またはシフトされた正の自己相互情報量（ｓｈｉｆｔｅｄ  ｐｏｓｉｔｉｖｅ  ｐｏｉｎｔｗｉｓｅ  ｍｕｔｕａｌ  ｉｎｆｏｒｍａｔｉｏｎ）などを使用して学習されてもよい。オントロジーは、オープンソースまたはユーザ提供のオントロジー、たとえば、ＤＢペディアなどを指す。オントロジーエントリのツリーが作成されてもよく、キーワードのリストが与えられると、与えられたリストの最も近い共通の祖先が見つかる。次いで、この祖先の子孫をグラフィカルユーザインターフェース上に提示し、ユーザが選択してキーワードリスト１４１２に含めることができる。これらの各ケースでは、単語または短いフレーズが与えられると、図１５及び図１６に示すように、キーワードリスト１４１２を拡張するための類似の単語またはフレーズが選択可能な方法でユーザに提供される。キーワード及びフレーズの入力及び拡張が完了すると、選択可能な完了ボタン１４１６は、図１３のグラフィカルユーザインターフェースに戻ることを容易にする。
【０１８４】
図１５に、開示した技術の例示的な実施形態による、ユーザが関連する単語及びフレーズを発見及び管理できる方法を示す例示的なグラフィカルユーザインターフェース１５００を示す。キーワードインジケータ１５０２は、類義語またはさらなる文脈を追加するために現在検討中のキーワードを強調表示する。キーワードの類義語のリスト１５０４は、文脈クラスタに編成されて提供される。各クラスタは、そのクラスタ内の全ての類義語を選択するための選択可能なオプション１５０６を提供する。さらに、各クラスタ内の類義語のそれぞれには、対応する類義語を選択するための選択可能なオプション１５０８が提供される。キャンセルボタン１５１０は、選択した全ての類義語を破棄し、図１４のグラフィカルユーザインターフェースに戻るために選択可能になっている。そうでなければ、承認ボタン１５１２は、選択された類義語をキーワードリスト１４１２に保存し、図１４のグラフィカルユーザインターフェースに戻る。
【０１８５】
図１６に、開示した技術の例示的な実施形態による、単語リスト管理へのオントロジーの組み込みを示す例示的なグラフィカルユーザインターフェース１６００を示す。テキスト入力ボックス１４０２は、キーワードまたはフレーズをキーワードリスト１４１２に追加するために設けられている。キーワードまたはフレーズがキーワードリスト１４１２に追加されると、１つまたは複数のオントロジーが参照されて、キーワードリスト１４１２に追加する選択可能なキーワード１６０２のリストが提供される。上述のように、オントロジーエントリのツリーが作成されてもよく、キーワードリストのキーワードが与えられると、与えられたリストの最も近い共通の祖先が見つかる。次いで、この祖先の子孫をグラフィカルユーザインターフェース１６００上に選択可能なキーワード１６０２として提示し、ユーザが選択してキーワードリスト１４１２に含めることができる。
【０１８６】
図１７に、開示した技術の例示的な実施形態による、例文のリストを入力及び管理する方法を示す例示的なグラフィカルユーザインターフェース１７００を示す。グラフィカルユーザインターフェース１３００上の例文編集ボタン１３０２を選択することにより、グラフィカルユーザインターフェース１７００に移動してもよい。キーワードまたはフレーズと同様に、例示的なグラフィカルユーザインターフェース１７００は、新たな例文を追加するためのテキスト入力ボックス１７０２を含む。図示のように、例文は、１つまたは複数の文を通じて文脈の中でキーワードを提供する。各例文は、その例文にアノテーションを割り当てるために選択可能になっている。たとえば、アノテーションメニュー１７０４は、その例文が、ユーザがデータセット内で探している特定のクラスまたは他のデータの例文であるか否かを示すために提示される。以前に入力された例文及び対応するアノテーションのリスト１７０６が表示されている。完了ボタン１７０８は、グラフィカルユーザインターフェース１３００に戻るために選択可能になっている。
【０１８７】
以下、記載のアノテーションプロセスを容易にするグラフィカルユーザインターフェースの様々な態様についてさらに詳細に説明する。図１８〜図２４のグラフィカルユーザインターフェースは、モデルの品質に関する人間の判断を容易にする情報を提供する。ユーザがいくつかの例文にアノテーションを付けると、初期モデルを訓練することができ、追加のサンプリング方法が利用可能になる。
【０１８８】
図１８に、開示した技術の例示的な実施形態による、アノテーションプロセス、アノテーションプロセスを管理するためのツール、及び進捗状況に関するフィードバックを示す例示的なグラフィカルユーザインターフェース１８００を示す。グラフィカルユーザインターフェース１８００により、機械学習モデルを訓練するのに必要な認知負荷及び専門知識が最小化される。これは、ユーザにより提供されたデータセットから取得された一連の例文を表示することによって、実現することができる。上述のように、例文は、ユーザが強力なモデルを作成するために必要とされるアノテーションの数を最小化することができるサンプラによって選択される。
【０１８９】
例文１８０２を、グラフィカルユーザインターフェースに提供してもよい。関心があるとわかった単語またはフレーズの強調表示１８０４が提供され、ここで、強調表示及び色は、最終的な予測に与えられる影響の方向及び大きさを表してもよい。また、前後の文などの周囲の文脈１８０６が、例文と共に提供されてもよい。さらに、予測１８０８が、その予測の信頼度スコアと共にユーザに表示される。「Ｙｅｓ」ボタン１８１０または「Ｎｏ」ボタン１８１２のいずれかを選択するなどして、データアノテーションを質問への回答に記憶することができる。ユーザは任意選択で、キーボードショートカットによって、たとえば「Ｙ」または「Ｎ」を入力するなどして、応答を提供することができる。
【０１９０】
アノテーション付きデータの品質及び数量に関するフィードバック１８１４がユーザに提供される。たとえば、アノテーションのカバー範囲に関するフィードバックは、訓練されたいくつかの正例及びいくつかの負例の内訳を含む、訓練された例の数を含んでもよい。また、モデルの性能メトリック、たとえば、バイナリ分類器の正解率、適合率、再現率、Ｆ１スコア、またはＲＯＣ下の面積などが表示されてもよい。他のメトリックが表示されてもよい。矢印１８１８の選択などによって例文のアノテーションをスキップするための、または矢印１８１６の選択などによって前の例文に戻るための、１つまたは複数のナビゲーションアイコンが設けられてもよい。
【０１９１】
図１９に、開示した技術の例示的な実施形態による、ユーザが自身の反応の強さをスコア付けすることを可能にするアノテーションプロセスを示す例示的なグラフィカルユーザインターフェース１９００を示す。アノテーションについて「Ｙｅｓ」または「Ｎｏ」の入力を提供することに加えて、またはその代わりに、ユーザは、スケール上の複数のスコアボタン１９０２（たとえば、「１」から「５」までのボタン）のうちの１つを選択することなどによって、例文の良さをスコア付けしてもよい。また、アノテーション用の例文を選択するために現在使用されているサンプラ１９０４のタイプについてのさらなるフィードバックが提供されてもよい。
【０１９２】
図２０に、開示した技術の例示的な実施形態による、隣接するエントリにアノテーションを付ける機能、ならびにアノテーションに関する色付きのフィードバックを示す例示的なグラフィカルユーザインターフェース２０００を示す。たとえば、例文が提示されると、ユーザは隣接するエントリを強調表示２００２し、メニュー２００４から選択して、たとえば、隣接するエントリに正例、負例としてアノテーションを付けたり、隣接するエントリの強調表示をクリアしたりしてもよい。
【０１９３】
図２１に、開示した技術の例示的な実施形態による、複数のタイプの候補サンプリングを示すドロップダウンを示す例示的なグラフィカルユーザインターフェース２１００を示す。上述のように、サンプラは、ユーザ入力を通じて手動で選択してもよい。図２１に示す実施例では、例文を提供するための様々なタイプのサンプラから選択するためのサンプリング方法メニュー２１０２が設けられている。現在選択されているサンプラは、選択強調表示２１０４によって示される。選択可能なサンプラは、選択アイコン２１０６で示される。たとえば、選択アイコン２１０６を選択すると、サンプラは自動サンプラ（たとえば、進行過程５００）から誤差低減サンプラに変更してもよい。他のタイプのサンプリング方法メニュー、たとえば、ドロップダウンリストなどが使用されてもよい。上述の優先度キュー６０８を使用することにより、グラフィカルユーザインターフェースに例文を提供するためのサンプリングアルゴリズムを変更しても、ユーザは後続の例文を取得する際の処理の遅れに気付くことはない。
【０１９４】
図２２に、開示した技術の例示的な実施形態による、データにわたる一回限りのキーワード検索を示す例示的なグラフィカルユーザインターフェース２２００を示す。加えて、上述のように、シードサンプラ５０２は、ユーザによって提供された入力を使用して、さらなる例文を検索してもよい。たとえば、ユーザは検索ボックス２２０２にキーワードを入力して、データセット内を検索し、さらなる例文を特定してもよい。ユーザが検索ボックス２２０２でキーワード検索したことに応答して、ユーザインターフェース２２００は、ユーザの検索を拡張するための追加の選択可能なキーワードまたはフレーズ２２０４を提示してもよい。たとえば、上述のように、シソーラス、辞書、及び／またはオントロジーを使用して、追加のキーワードまたはフレーズを生成してもよい。選択可能なキーワードまたはフレーズ２２０４のうちの１つが選択されると、選択されたキーワードまたはフレーズを使用したさらなる検索を実行してもよい。
【０１９５】
図２３に、開示した技術の例示的な実施形態による、ユーザが自身のデータを視覚的に探索することを可能にし得るデータマップを示す例示的なグラフィカルユーザインターフェース２３００を示す。上記のように、データセットの非構造化表現を使用して、ｔ−ｓｎｅまたはＰＣＡなどの技法を使用して、データの次元を２次元または３次元に削減することができる。次いで、これらの低次元表現は、グラフィカルユーザインターフェース２３００上にデータマップ２３０２として表示することができる。データマップ２３０２は、識別されたクラスタまたは他のデータグループ内のサンプルを表すデータインジケータ２３０４を含んでもよい。各サンプルは、そのサンプルのアノテーションを表す色、またはそのサンプルにアノテーションが付けられていないかを示す色を有してもよい。加えて、サンプルの信頼度スコアが、所与のサンプルを表すアイコンのサイズによってグラフィカルに表現されてもよい（たとえば、円の直径が信頼度スコアに基づいて異なる）。アノテータ間の不一致／間違いは、データマップ２３０２上でエラーアイコン（たとえば、赤色、または間違いを示す独特の形状もしくはパターン）を介してさらに示されてもよい。ユーザは、データマップ２３０２でデータを移動させ、アノテーションのための特定の例文２３０６を探して選択することができる。たとえば、ユーザは、アノテーションを付けたいサンプルの周囲に境界ボックスまたは投げ縄を描いてもよい。上述のように、シードサンプラ５０２は、ユーザによって提供されたこの入力を使用して、さらなる例文を提示してもよい。たとえば、ユーザは、まだアノテーションが付けられていない識別されたサンプルのクラスタにアノテーションを付けることを選択してもよい。あるいは、ユーザは、クラスタ内のデータ要素にアノテーションを付けるために複数の異なるアノテーションが使用されたことを表す、サンプルに関連付けられたいくつかの色を使用して、サンプルのクラスタにアノテーションを付けることを選択してもよい。したがって、ユーザは、所望のアノテーションを明確にするか、あるいはさらなる入力を提供して、選択したデータの正しいアノテーション付けを容易にしてもよい。
【０１９６】
図２４に、開示した技術の例示的な実施形態による、いかにして失敗状態を処理することができ、情報がユーザに返されるかを示す例示的なグラフィカルユーザインターフェース２４００を示す。たとえば、失敗状態が表示された理由についてフィードバック２４０２が提供され、失敗状態を解決する方法についての推奨２４０４が提供されてもよい。推奨２４０４を自動的に開始するための推奨行動ボタン２４０６が設けられてもよい。
【０１９７】
図２５に、開示した技術の例示的な実施形態による、以前にアノテーションが付けられたエントリのリスト及びそれらのエントリの管理方法を示す例示的なグラフィカルユーザインターフェース２５００を示す。たとえば、アノテーションをレビューするためのレビューボタン１３０８、１３２４を選択すると、ユーザインターフェース２５００に移動し得る。アノテーションのレビューを実行する際、ユーザはアノテーションのいずれかを選択して、そのアノテーションに関連するアノテーションを変更してもよい。たとえば、アノテーションを選択すると、アノテーションメニュー２５０２に、異なるアノテーションを選択するためのオプションを提示し得る。
【０１９８】
図２６に、開示した技術の例示的な実施形態による例示的なコンピュータシステムを示す。
【０１９９】
開示した技術の特定の態様は、本明細書では、システム及び方法、及び／またはアプリケーション、プログラム、または他のコンピュータ関連の実施態様及び構成に関して説明している。本明細書に記載の「システム」は、単一のコンピュータまたは分散コンピューティングアーキテクチャを利用し得るコンピュータ関連のシステム及びコンポーネントを指す場合がある。グラフィカルユーザインターフェースの態様を示し、本明細書で説明した様々な図の図解は、表示されるデータに加え、機能的なインタラクティブ要素及び出力を指し、これらは、入出力コントローラ及び／または１つまたは複数のコンピューティングシステムの他のシステムによって制御し得る。１つまたは複数のコンピューティングシステムは、本明細書で言及する様々なシステム、方法、及び／またはアプリケーション／プログラムを実装するための機能コンポーネント、たとえば、命令を記憶するための１つまたは複数のメモリデバイス及び／または他の記憶デバイスに結合される１つまたは複数のプロセッサを含む１つまたは複数のコンピュータを含むことができ、命令は、１つまたは複数のプロセッサによって実行されると、開示した技術の説明した実施形態の様々な態様を実施するための特定のタスクをコンピュータ（複数可）に実行させる。
【０２００】
コンピュータ（複数可）のそのようなコンポーネントは、上記で簡単に述べたように、入力デバイスからの入力、たとえば、グラフィカルユーザインターフェースの表示を見ているコンピュータのユーザからの対話型入力を受け取り、１つまたは複数の表示デバイスあるいは他の出力周辺デバイスへのデータの出力を制御するための入力／出力コントローラに結合されてもよい。本明細書で言及される「方法」は、１つまたは複数のプロセッサ及び／または他のコンピュータシステムコンポーネントによって実行される一連の動作を含むコンピュータ実装方法とすることができる。本明細書におけるアプリケーション、プログラムなどへの参照は、モジュール、ハードディスク、及び／またはリムーバブルストレージメディア（別名「コンピュータ可読媒体」もしくは「コンピュータ可読記憶媒体」または「非一時的コンピュータ可読記憶媒体」）に記憶され得るコンピュータ実行可能命令とすることができ、それらの命令は、１つまたは複数のプロセッサによって実行されると、１つまたは複数のコンピュータシステムに、本明細書に記載の実施形態に関する特定の機能を実行させる。本明細書に記載の様々なコンピュータ及び／またはシステムのコンポーネントは、インターネットまたは内部ネットワークなどのネットワークへのネットワーク接続にアクセスして、たとえば、１つまたは複数の外部サーバとデータを交換することによって、そのようなネットワークを介してデータを送受信するためのネットワークインターフェースコンポーネントを含むことができる。
【０２０１】
様々な図に関して本明細書で説明する論理演算は、（１）コンピューティングデバイス（たとえば、図２６に記載のコンピューティングデバイス）上で実行される一連のコンピュータ実装行為またはプログラムモジュール（すなわち、ソフトウェア）として、（２）コンピューティングデバイス内の相互接続された機械論理回路または回路モジュール（すなわち、ハードウェア）として、及び／または（３）コンピューティングデバイスのソフトウェア及びハードウェアの組み合わせとして実装し得ることを理解されたい。したがって、本明細書で説明する論理演算は、ハードウェア及びソフトウェアのいかなる特定の組み合わせにも限定されない。その実装は、コンピューティングデバイスの性能及び他の要件に応じて選択できる問題である。したがって、本明細書に記載の論理演算は、動作、構造デバイス、行為、またはモジュールと様々に呼ぶ。これらの動作、構造デバイス、行為、及びモジュールは、ソフトウェア、ファームウェア、専用デジタルロジック、及びそれらの任意の組み合わせで実装してもよい。また、図示及び本明細書の説明よりも多いまたは少ない動作を実行してもよいことも理解されたい。これらの動作は、本明細書の説明とは異なる順序で実行されてもよい。
【０２０２】
図２６を参照すると、本発明の実施形態が実装され得る例示的なコンピューティングデバイス２６００が示されている。たとえば、本明細書に記載のアノテーションサーバ２０２またはクライアントコンピュータ２０６のそれぞれは、コンピューティングデバイス２６００などのコンピューティングデバイスとしてそれぞれ実装されてもよい。例示的なコンピューティングデバイス２６００は、本発明の実施形態が実装され得る適切なコンピューティング環境の一実施例にすぎないことを理解されたい。任意選択で、コンピューティングデバイス２６００は、よく知られているコンピューティングシステムとすることができ、たとえば、限定はしないが、パーソナルコンピュータ、サーバ、ハンドヘルドもしくはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、ネットワークパーソナルコンピュータ（ＰＣ）、ミニコンピュータ、メインフレームコンピュータ、組み込みシステム、及び／または上記のシステムもしくはデバイスのいずれかを複数含む分散コンピューティング環境とすることができる。分散コンピューティング環境により、通信ネットワークまたは他のデータ伝送媒体に接続されたリモートコンピューティングデバイスは、様々なタスクを実行することが可能になる。分散コンピューティング環境では、プログラムモジュール、アプリケーション、及び他のデータは、ローカル及び／またはリモートコンピュータの記憶媒体に記憶されてもよい。
【０２０３】
一実施形態では、コンピューティングデバイス２６００は、協働してタスクを実行する、互いに通信する２つ以上のコンピュータを備えてもよい。たとえば、限定ではないが、アプリケーションは、そのアプリケーションの命令の同時及び／または並列処理を可能にするような方法で分割されてもよい。あるいは、アプリケーションによって処理されるデータは、２つ以上のコンピュータによるデータセットの異なる部分の同時及び／または並列処理を可能にするような方法で分割されてもよい。一実施形態では、コンピューティングデバイス２６００が仮想化ソフトウェアを利用して、コンピューティングデバイス２６００内のコンピュータの数にそのまま縛られないいくつかのサーバの機能を提供してもよい。たとえば、仮想化ソフトウェアは、４つの物理コンピュータ上に２０個の仮想サーバを提供してもよい。一実施形態では、クラウドコンピューティング環境でアプリケーション及び／または複数のアプリケーションを実行することにより、上記で開示した機能が提供されてもよい。クラウドコンピューティングは、動的にスケーラブルなコンピューティングリソースを使用して、ネットワーク接続を介したコンピューティングサービスを提供することを含んでもよい。クラウドコンピューティングは、仮想化ソフトウェアによって少なくとも部分的にサポートされてもよい。クラウドコンピューティング環境は、企業によって確立される場合があり、及び／または必要に応じてサードパーティプロバイダからレンタルされる場合がある。一部のクラウドコンピューティング環境は、企業により所有及び運用されるクラウドコンピューティングリソースに加え、サードパーティプロバイダからレンタル及び／またはリースされるクラウドコンピューティングリソースを含む場合がある。
【０２０４】
最も基本的な構成では、コンピューティングデバイス２６００は、典型的には少なくとも１つの処理ユニット２６２０及びシステムメモリ２６３０を含む。コンピューティングデバイスの正確な構成及びタイプに応じて、システムメモリ２６３０は、揮発性（たとえば、ランダムアクセスメモリ（ＲＡＭ））、不揮発性（たとえば、読み取り専用メモリ（ＲＯＭ）、フラッシュメモリなど）、またはこれら２つの組み合わせであってもよい。この最も基本的な構成は図２６に破線２６１０で示している。処理ユニット２６２０は、コンピューティングデバイス２６００の動作に必要な算術演算及び論理演算を実行する標準的なプログラマブルプロセッサであってもよい。１つの処理ユニット２６２０のみを図示しているが、複数のプロセッサが存在してもよい。したがって、命令はプロセッサによって実行されるものとして論じている場合があるが、命令は同時に、連続的に、あるいは１つまたは複数のプロセッサによって実行されてもよい。コンピューティングデバイス２６００は、コンピューティングデバイス２６００の様々なコンポーネント間で情報を伝達するためのバスまたは他の通信メカニズムをさらに含んでもよい。
【０２０５】
コンピューティングデバイス２６００は、さらなる特徴／機能を有してもよい。たとえば、コンピューティングデバイス２６００は、磁気もしくは光ディスクまたはテープを含むがこれらに限定されない、リムーバブルストレージ２６４０及び非リムーバブルストレージ２６５０などの追加のストレージを含んでもよい。コンピューティングデバイス２６００は、そのデバイスが本明細書に記載の通信経路などを介して他のデバイスと通信することを可能にするネットワーク接続（複数可）２６８０をさらに含んでもよい。ネットワーク接続（複数可）２６８０は、モデム、モデムバンク、イーサネットカード、ユニバーサルシリアルバス（ＵＳＢ）インターフェースカード、シリアルインターフェース、トークンリングカード、ファイバー分散データインターフェース（ＦＤＤＩ）カード、ワイヤレスローカルエリアネットワーク（ＷＬＡＮ）カード、無線トランシーバーカード、たとえば、符号分割多重アクセス（ＣＤＭＡ）、モバイル通信用グローバルシステム（ＧＳＭ）、ロングタームエボリューション（ＬＴＥ）、世界規模相互運用マイクロ波アクセス（ＷｉＭＡＸ：ｗｏｒｌｄｗｉｄｅ  ｉｎｔｅｒｏｐｅｒａｂｉｌｉｔｙ  ｆｏｒ  ｍｉｃｒｏｗａｖｅ  ａｃｃｅｓｓ）、及び／または他のエアインターフェースプロトコルの無線トランシーバーカード、ならびに他のよく知られているネットワークデバイスの形態をとってもよい。コンピューティングデバイス２６００は、キーボード、キーパッド、スイッチ、ダイヤル、マウス、トラックボール、タッチスクリーン、音声認識器、カードリーダー、紙テープリーダー、または他のよく知られている入力デバイスなどの入力デバイス（複数可）２６７０を有してもよい。プリンタ、ビデオモニタ、液晶ディスプレイ（ＬＣＤ）、タッチスクリーンディスプレイ、ディスプレイ、スピーカーなどの出力デバイス（複数可）２６６０が含まれてもよい。コンピューティングデバイス２６００のコンポーネント間のデータ通信を容易にするために、追加のデバイスがバスに接続されてもよい。これらのデバイスは全て当技術分野ではよく知られており、ここで詳細に議論する必要はない。
【０２０６】
処理ユニット２６２０は、有形のコンピュータ可読媒体に符号化されたプログラムコードを実行するように構成されてもよい。有形のコンピュータ可読媒体とは、コンピューティングデバイス２６００（すなわち、マシン）に特定の方法で動作させるデータを提供可能な任意の媒体を指す。様々なコンピュータ可読媒体を利用して、処理ユニット２６２０に命令を提供して、実行させてもよい。有形のコンピュータ可読媒体の実施例は、限定はしないが、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータなどの情報を記憶するための任意の方法または技術で実装される揮発性媒体、不揮発性媒体、リムーバブルメディア及び非リムーバブルメディアを含んでもよい。システムメモリ２６３０、リムーバブルストレージ２６４０、及び非リムーバブルストレージ２６５０は全て、有形のコンピュータ記憶媒体の実施例である。例示的な有形のコンピュータ可読記録媒体は、限定はしないが、集積回路（たとえば、フィールドプログラマブルゲートアレイまたは特定用途向けＩＣ）、ハードディスク、光ディスク、光磁気ディスク、フロッピーディスク、磁気テープ、ホログラフィック記憶媒体、ソリッドステートデバイス、ＲＡＭ、ＲＯＭ、電気的消去可能プログラム読み取り専用メモリ（ＥＥＰＲＯＭ）、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）または他の光学ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、または他の磁気ストレージデバイスを含む。
【０２０７】
実行可能なソフトウェアをコンピュータにロードして実装できる機能を、よく知られている設計ルールによりハードウェア実装に変換できることは、電気工学技術及びソフトウェア工学技術の基本である。ソフトウェア対ハードウェアのコンセプトの実装の意思決定は、典型的には、ソフトウェアドメインからハードウェアドメインへの変換に関連する問題というよりも、設計の安定性と、生産されるユニットの数との考慮事項に依存する。一般に、ハードウェア実装のリスピンはソフトウェア設計のリスピンよりも費用がかかるので、まだ頻繁に変更される設計はソフトウェアで実装する方が好ましい場合がある。一般に、大量生産される安定した設計は、特定用途向け集積回路（ＡＳＩＣ）などのハードウェアで実装することが好ましい場合があり、その理由は、大量生産では、ハードウェア実装はソフトウェア実装よりも安価な場合があるためである。多くの場合、設計は、ソフトウェア形式で開発及びテストし、その後、よく知られている設計ルールによって、ソフトウェアの命令をハードワイヤした特定用途向け集積回路の同等のハードウェア実装に変換してもよい。新たなＡＳＩＣによって制御されるマシンが特定のマシンまたは装置であるのと同じように、同様に、プログラムされた及び／または実行可能な命令がロードされたコンピュータは、特定のマシンまたは装置と見なしてもよい。
【０２０８】
例示的な実施態様では、処理ユニット２６２０は、システムメモリ２６３０に記憶されたプログラムコードを実行してもよい。たとえば、バスはシステムメモリ２６３０にデータを運んでもよく、そこから処理ユニット２６２０が命令を受け取り、実行する。任意選択で、システムメモリ２６３０によって受け取られたデータは、処理ユニット２６２０による実行の前または後に、リムーバブルストレージ２６４０または非リムーバブルストレージ２６５０に記憶されてもよい。
【０２０９】
本明細書に記載の様々な技法は、ハードウェアもしくはソフトウェア、または適切な場合にはそれらの組み合わせに関連して実装してもよいことを理解されたい。したがって、本開示の主題の方法及び装置、またはそれらの特定の態様もしくは部分は、たとえば、フロッピーディスク、ＣＤ−ＲＯＭ、ハードドライブ、または他の任意のマシン可読記憶媒体などの有形媒体に具現化されたプログラムコード（すなわち、命令）の形をとってもよく、プログラムコードがコンピューティングデバイスなどのマシンにロードされて実行されると、マシンは本開示の主題を実施するための装置になる。プログラム可能なコンピュータ上でプログラムコードを実行する場合、コンピューティングデバイスは一般に、プロセッサと、プロセッサによって読み取り可能な記憶媒体（揮発性及び不揮発性メモリ及び／または記憶素子を含む）と、少なくとも１つの入力デバイスと、少なくとも１つの出力デバイスとを含む。１つまたは複数のプログラムは、たとえば、アプリケーションプログラミングインターフェース（ＡＰＩ）、再利用可能なコントロールなどを使用して、本開示の主題に関連して説明したプロセスを実装または利用してもよい。そのようなプログラムは、コンピュータシステムと通信するように、高水準の手続き型またはオブジェクト指向プログラミング言語で実装されてもよい。しかしながら、所望であれば、プログラム（複数可）はアセンブリ言語または機械語で実装することができる。いずれにせよ、言語はコンパイル型言語でもインタプリタ型言語でもよく、ハードウェア実装と組み合わせられてもよい。
【０２１０】
方法及びシステムの実施形態は、方法、システム、装置及びコンピュータプログラム製品のブロック図及びフローチャート図を参照して本明細書で説明している場合がある。ブロック図及びフローチャート図の各ブロック、ならびにブロック図及びフローチャート図におけるブロックの組み合わせは、それぞれ、コンピュータプログラム命令によって実装できることは理解されよう。これらのコンピュータプログラム命令を汎用コンピュータ、専用コンピュータ、または他のプログラム可能なデータ処理装置にロードしてマシンを生成し、コンピュータまたは他のプログラム可能なデータ処理装置で実行される命令により、フローチャートの１つまたは複数のブロックで指定された機能を実施する手段が作成されるようにしてもよい。
【０２１１】
これらのコンピュータプログラム命令は、コンピュータ可読メモリに記憶されてもよく、コンピュータプログラム命令は、コンピュータまたは他のプログラム可能なデータ処理装置に特定の方法で機能するように指示して、コンピュータ可読メモリに記憶された命令により、フローチャートの１つまたは複数のブロックで指定された機能を実施するためのコンピュータ可読命令を含む製品が生産されるようにすることができる。また、コンピュータプログラム命令を、コンピュータまたは他のプログラム可能なデータ処理装置にロードして、コンピュータまたは他のプログラム可能な装置で一連の動作ステップを実行させることによって、コンピュータ実装プロセスを生成し、それによって、コンピュータまたは他のプログラム可能な装置で実行される命令により、フローチャートの１つまたは複数のブロックで指定された機能を実施するためのステップが提供されるようにしてもよい。
【０２１２】
したがって、ブロック図及びフローチャート図のブロックは、指定された機能を実行するための手段の組み合わせ、指定された機能を実行するためのステップの組み合わせ、及び指定された機能を実行するためのプログラム命令手段をサポートする。また、ブロック図及びフローチャート図の各ブロック、ならびにブロック図及びフローチャート図のブロックの組み合わせは、指定された機能またはステップを実行する専用ハードウェアベースのコンピュータシステム、あるいは専用ハードウェア及びコンピュータ命令の組み合わせによって実装することができることを理解されたい。
【０２１３】
「及び／または」という語句の使用は、選択肢のリストの任意の１つまたは任意の組み合わせが使用できることを示す。たとえば、「Ａ、Ｂ、及び／またはＣ」とは、「Ａ」、「Ｂ」、または「Ｃ」、「Ａ及びＢ」、「Ａ及びＣ」、または「Ｂ及びＣ」、あるいは「Ａ及びＢ及びＣ」を意味する。本明細書で使用する場合、単数形「ａ」、「ａｎ」、及び「ｔｈｅ」は、文脈が明確に別途指示しない限り、複数の指示対象を含む。さらに、本明細書では、読者の便宜のためにタイトルまたはサブタイトルが使用される場合があり、これらは開示した技術の範囲に影響を与えないものとする。「備える（ｃｏｍｐｒｉｓｉｎｇ）」もしくは「含む（ｃｏｎｔａｉｎｉｎｇ）」または「含む（ｉｎｃｌｕｄｉｎｇ）」とは、少なくとも指定された化合物、要素、粒子、または方法のステップが組成物もしくは物品または方法の中に存在することを意味するが、他のそのような化合物、材料、粒子、方法のステップが指定されたものと同じ機能を有する場合でも、他の化合物、材料、粒子、方法のステップの存在を排除するものではない。
【０２１４】
例示的な実施形態を説明する際に、明確にするように用語を使用する。各用語は、当業者によって理解されるその最も広い意味を企図しており、同様の目的を達成するために同様の方法で動作する全ての技術的均等物を含むものとする。
【０２１５】
方法の１つまたは複数のステップの言及は、追加の方法のステップ、または明示的に特定されたそれらのステップの間の介在する方法のステップの存在を排除しないことを理解されたい。方法のステップは、本明細書の記載とは異なる順序で実行されてもよい。同様に、デバイスまたはシステムにおける１つまたは複数のコンポーネントの言及は、追加のコンポーネント、または明示的に特定されたそれらのコンポーネント間の介在するコンポーネントの存在を排除しないことも理解されたい。
【０２１６】
本開示ではいくつかの実施形態を提供しているが、開示したシステム及び方法が、本開示の精神または範囲から逸脱することなく、他の多くの特定の形態で具現化し得ることを理解されたい。本実施例は限定ではなく例示的なものと見なされるべきであり、その意図は本明細書に示した詳細に限定されるべきではない。たとえば、様々な要素またはコンポーネントが別のシステムにおいて組み合わせられても統合されてもよく、特定の機能が省略されても実装されなくてもよい。
【０２１７】
また、様々な実施形態で個別または別個のものとして説明及び図示した技法、システム、サブシステム、及び方法は、本開示の範囲から逸脱することなく、他のシステム、モジュール、技法、または方法と組み合わせられても統合されてもよい。互いに直接結合されるかまたは通信するように図示または説明している他のアイテムは、電気的、機械的、またはそれ以外にかかわらず、何らかのインターフェース、デバイス、または中間コンポーネントを介して間接的に結合されるかまたは通信してもよい。変更、置換、及び変形の他の実施例は、当業者によって解明可能であり、本明細書に開示した精神及び範囲から逸脱せずに実施することができる。
【図１】
2020522055.tif 000003
【図２】
2020522055.tif 000004
【図３】
2020522055.tif 000005
【図４】
2020522055.tif 000006
【図５】
2020522055.tif 000007
【図６】
2020522055.tif 000008
【図７】
2020522055.tif 000009
【図８】
2020522055.tif 000010
【図９】
2020522055.tif 000011
【図１０】
2020522055.tif 000012
【図１１】
2020522055.tif 000013
【図１２】
2020522055.tif 000014
【図１３】
2020522055.tif 000015
【図１４】
2020522055.tif 000016
【図１５】
2020522055.tif 000017
【図１６】
2020522055.tif 000018
【図１７】
2020522055.tif 000019
【図１８】
2020522055.tif 000020
【図１９】
2020522055.tif 000021
【図２０】
2020522055.tif 000022
【図２１】
2020522055.tif 000023
【図２２】
2020522055.tif 000024
【図２３】
2020522055.tif 000025
【図２４】
2020522055.tif 000026
【図２５】
2020522055.tif 000027
【図２６】
2020522055.tif 000028
【国際調査報告】
2020522055.tif 000029
2020522055.tif 000030