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

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

▶ キナクシス インコーポレイテッドの特許一覧

<>
  • 特開-対話型機械学習 図1
  • 特開-対話型機械学習 図2
  • 特開-対話型機械学習 図3
  • 特開-対話型機械学習 図4
  • 特開-対話型機械学習 図5
  • 特開-対話型機械学習 図6
  • 特開-対話型機械学習 図7
  • 特開-対話型機械学習 図8
  • 特開-対話型機械学習 図9
  • 特開-対話型機械学習 図10
  • 特開-対話型機械学習 図11
  • 特開-対話型機械学習 図12
  • 特開-対話型機械学習 図13
  • 特開-対話型機械学習 図14
  • 特開-対話型機械学習 図15
  • 特開-対話型機械学習 図16
  • 特開-対話型機械学習 図17
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023052555
(43)【公開日】2023-04-11
(54)【発明の名称】対話型機械学習
(51)【国際特許分類】
   G06N 20/00 20190101AFI20230404BHJP
【FI】
G06N20/00
【審査請求】未請求
【請求項の数】18
【出願形態】OL
(21)【出願番号】P 2023007474
(22)【出願日】2023-01-20
(62)【分割の表示】P 2022521962の分割
【原出願日】2020-10-15
(31)【優先権主張番号】62/915,076
(32)【優先日】2019-10-15
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】16/697,620
(32)【優先日】2019-11-27
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】16/699,010
(32)【優先日】2019-11-28
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.BLUETOOTH
2.ブラックベリー
3.Nook
(71)【出願人】
【識別番号】521084851
【氏名又は名称】キナクシス インコーポレイテッド
(74)【代理人】
【識別番号】110000855
【氏名又は名称】弁理士法人浅村特許事務所
(72)【発明者】
【氏名】ビッソン - クロール、シャンタール
(72)【発明者】
【氏名】リン、ジェン
(72)【発明者】
【氏名】アムレカール、アイシャン
(72)【発明者】
【氏名】シェン、ケビン
(72)【発明者】
【氏名】ノウラシャラフェディン、セイエナセル
(72)【発明者】
【氏名】オーレット、セバスチャン
(57)【要約】      (修正有)
【課題】ユーザにトレーニングされた機械学習モデルから予測された結果が与えられるシステム、対話型機械学習のコンピュータ実装方法及び記憶媒体を提供する。
【解決手段】方法は、データを前処理すること206と、トレーニングされた機械学習モデルを選択すること210と、トレーニングされた機械学習モデルに基づいて結果を予測すること212と、ユーザのための予測をユーザ・インターフェースに出力すること214と、補正された予測を与えるために、ユーザによって、ユーザ・インターフェースを介して予測を補正すること218と、補正された予測に関連付けられたデータに基づいて、トレーニングされた機械学習モデルを再トレーニングすること226と、補正された予測に関連付けられたデータと、再トレーニングされた機械学習モデルとに基づいて新しい結果を予測すること224と、を含む。
【選択図】図2
【特許請求の範囲】
【請求項1】
プロセッサと、
命令を記憶するメモリと
を備えるシステムであって、前記命令が、前記プロセッサによって実行されたとき、
機械学習モジュールによって、データを前処理することと、
前記機械学習モジュールによって、トレーニングされた機械学習モデルを選択することと、
前記機械学習モジュールによって、前記トレーニングされた機械学習モデルに基づいて結果を予測することと、
前記機械学習モジュールによって、ユーザのための予測をユーザ・インターフェースに出力することと、
補正された予測を与えるために、前記ユーザによって、前記ユーザ・インターフェースを介して前記予測を補正することと、
前記機械学習モジュールによって、前記補正された予測に関連付けられたデータに基づいて、前記トレーニングされた機械学習モデルを再トレーニングし、それによって、再トレーニングされた機械学習モデルを与えることと、
前記機械学習モジュールによって、(i)前記補正された予測に関連付けられた前記データと、(ii)前記再トレーニングされた機械学習モデルとに基づいて新しい結果を予測することと
を行うように前記システムを構成する
システム。
【請求項2】
前記ユーザ・インターフェースがグラフィカル・ユーザ・インターフェースである、請求項1に記載のシステム。
【請求項3】
前記結果がデバイスに出力され、前記ユーザが、前記デバイスのスクリーン上の1つ又は複数のオブジェクトを移動することによって前記予測を補正する、請求項2に記載のシステム。
【請求項4】
前記ユーザが、前記予測に関連付けられたデータ・ファイルを補正することによって前記予測を補正する、請求項1に記載のシステム。
【請求項5】
前記機械学習モデルが、K平均クラスタリング、ミーンシフト・クラスタリング、ノイズのあるアプリケーションの密度ベース空間クラスタリング(DBSCAN)、混合ガウス・モデル(GMM)を使用する期待値最大化(EM)クラスタリング、凝集型階層クラスタリング及びそれらの任意の組合せからなるグループから選択される、請求項1に記載のシステム。
【請求項6】
前記命令が、
前記機械学習モジュールによって、品目の複数の説明を複数の単語ベクトルに変換することであって、各単語ベクトルが複数の次元を有する、単語ベクトルに変換することと、
前記機械学習モジュールによって、前記ユーザ・インターフェースの2次元平面上に前記複数の単語ベクトルを投影することと、
前記機械学習モジュールによって、前記複数の単語ベクトルと2次元座標の複数のセットとについて前記機械学習モジュール内のニューラル・ネットワークをトレーニングすることであって、2次元座標の各セットがそれぞれの単語ベクトルに関連付けられる、ニューラル・ネットワークをトレーニングすることと、
2次元座標の複数の補正されたセットを与えるために、前記ユーザによって、前記ユーザ・インターフェースを介して前記2次元座標の複数のセットのサブセットを補正することと、
前記機械学習モジュールによって、2次元座標の前記複数の補正されたセットについて前記ニューラル・ネットワークを再トレーニングすることと
を行うように前記システムを構成する、請求項1に記載のシステム。
【請求項7】
対話型機械学習のコンピュータ実装方法であって、前記方法は、
機械学習モジュールによって、データを前処理することと、
前記機械学習モジュールによって、トレーニングされた機械学習モデルを選択することと、
前記機械学習モジュールによって、前記トレーニングされた機械学習モデルに基づいて結果を予測することと、
前記機械学習モジュールによって、ユーザのための予測をユーザ・インターフェースに出力することと、
補正された予測を与えるために、前記ユーザによって、前記ユーザ・インターフェースを介して前記予測を補正することと、
前記機械学習モジュールによって、前記補正された予測に関連付けられたデータに基づいて、前記トレーニングされた機械学習モデルを再トレーニングし、それによって、再トレーニングされた機械学習モデルを与えることと、
前記機械学習モジュールによって、(i)前記補正された予測に関連付けられた前記データと、(ii)前記再トレーニングされた機械学習モデルとに基づいて新しい結果を予測することと
を含む、対話型機械学習のコンピュータ実装方法。
【請求項8】
前記ユーザ・インターフェースがグラフィカル・ユーザ・インターフェースである、請求項7に記載のコンピュータ実装方法。
【請求項9】
前記結果がデバイスに出力され、前記ユーザが、前記デバイスのスクリーン上の1つ又は複数のオブジェクトを移動することによって前記予測を補正する、請求項8に記載のコンピュータ実装方法。
【請求項10】
前記ユーザが、前記予測に関連付けられたデータ・ファイルを補正することによって前記予測を補正する、請求項7に記載のコンピュータ実装方法。
【請求項11】
前記機械学習モデルが、K平均クラスタリング、ミーンシフト・クラスタリング、ノイズのあるアプリケーションの密度ベース空間クラスタリング(DBSCAN)、混合ガウス・モデル(GMM)を使用する期待値最大化(EM)クラスタリング、凝集型階層クラスタリング及びそれらの任意の組合せからなるグループから選択される、請求項7に記載のコンピュータ実装方法。
【請求項12】
前記機械学習モジュールによって、品目の複数の説明を複数の単語ベクトルに変換することであって、各単語ベクトルが複数の次元を有する、単語ベクトルに変換することと、
前記機械学習モジュールによって、前記ユーザ・インターフェースの2次元平面上に前記複数の単語ベクトルを投影することと、
前記機械学習モジュールによって、前記複数の単語ベクトルと2次元座標の複数のセットとについて前記機械学習モジュール内のニューラル・ネットワークをトレーニングすることであって、2次元座標の各セットがそれぞれの単語ベクトルに関連付けられる、ニューラル・ネットワークをトレーニングすることと、
2次元座標の複数の補正されたセットを与えるために、前記ユーザによって、前記ユーザ・インターフェースを介して2次元座標の前記複数のセットのサブセットを補正することと、
前記機械学習モジュールによって、2次元座標の前記複数の補正されたセットについて前記ニューラル・ネットワークを再トレーニングすることと
を含む、請求項7に記載のコンピュータ実装方法。
【請求項13】
非一時的コンピュータ可読記憶媒体であって、前記コンピュータ可読記憶媒体は、コンピュータによって実行されたとき、前記コンピュータに、
機械学習モジュールによって、データを前処理することと、
前記機械学習モジュールによって、トレーニングされた機械学習モデルを選択することと、
前記機械学習モジュールによって、前記トレーニングされた機械学習モデルに基づいて結果を予測することと、
前記機械学習モジュールによって、ユーザのための予測をユーザ・インターフェースに出力することと、
補正された予測を与えるために、前記ユーザによって、前記ユーザ・インターフェースを介して前記予測を補正することと、
前記機械学習モジュールによって、前記補正された予測に関連付けられたデータに基づいて前記トレーニングされた機械学習モデルを再トレーニングし、それによって、再トレーニングされた機械学習モデルを与えることと、
前記機械学習モジュールによって(i)前記補正された予測に関連付けられた前記データと、(ii)前記再トレーニングされた機械学習モデルとに基づいて、新しい結果を予測することとを行わせる命令を含む、非一時的コンピュータ可読記憶媒体。
【請求項14】
前記ユーザ・インターフェースがグラフィカル・ユーザ・インターフェースである、請求項13に記載のコンピュータ可読記憶媒体。
【請求項15】
前記結果がデバイスに出力され、前記ユーザが、前記デバイスのスクリーン上の1つ又は複数のオブジェクトを移動することによって前記予測を補正する、請求項14に記載のコンピュータ可読記憶媒体。
【請求項16】
前記ユーザが、前記予測に関連付けられたデータ・ファイルを補正することによって前記予測を補正する、請求項13に記載のコンピュータ可読記憶媒体。
【請求項17】
前記機械学習モデルが、K平均クラスタリング、ミーンシフト・クラスタリング、ノイズのあるアプリケーションの密度ベース空間クラスタリング(DBSCAN)、混合ガウス・モデル(GMM)を使用する期待値最大化(EM)クラスタリング、凝集型階層クラスタリング及びそれらの任意の組合せからなるグループから選択される、請求項13に記載のコンピュータ可読記憶媒体。
【請求項18】
前記命令が、
前記機械学習モジュールによって、品目の複数の説明を複数の単語ベクトルに変換することであって、各単語ベクトルが複数の次元を有する、単語ベクトルに変換することと、
前記機械学習モジュールによって、前記ユーザ・インターフェースの2次元平面上に前記複数の単語ベクトルを投影することと、
前記機械学習モジュールによって、前記複数の単語ベクトルと2次元座標の複数のセットについて前記機械学習モジュール内のニューラル・ネットワークをトレーニングすることであって、2次元座標の各セットがそれぞれの単語ベクトルに関連付けられる、ニューラル・ネットワークをトレーニングすることと
2次元座標の複数の補正されたセットを与えるために、前記ユーザによって、前記ユーザ・インターフェースを介して2次元座標の前記複数のセットのサブセットを補正することと、
前記機械学習モジュールによって、2次元座標の前記複数の補正されたセットについて前記ニューラル・ネットワークを再トレーニングすることと
を行うように前記コンピュータを構成する、請求項13に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般に、機械学習に基づく予測を対象とし、より詳細には、機械学習予測とのユーザ対話のためのシステム及び方法を対象とする。
【背景技術】
【0002】
様々な産業に機械学習を適用する現在の試みはエンド・ユーザによる直接関与をめったに使用しない。さらに、機械学習モデルの予測は、機械学習がトレーニングされるデータの品質に大きく依存する。しかしながら、たいていのユーザは、そのようなモデルを、ユーザが理解もせず、直観的に信頼もしない「ブラック・ボックス」とみなす。さらに、ユーザは、機械学習モデルの予測された成果にどのように直接影響を及ぼすかを知る機会を有しない。
【0003】
新製品導入は多くの産業並びにサプライ・チェーン管理及び需要予測における極めて大きい問題である。この問題は、製品の販売又は購買に取り組むいずれの団体にも広く当てはまる。
【0004】
いくつかの事例では、既存の品目は、最初に、教師なしの機械学習手法を使用して意味の相似性に基づいてグループ化される。新しい品目が導入される際、新しい品目は、自動的に、1)最も相似しているクラスタに追加されるか、又は2)それが既存の品目のいずれとも完全に異なるとき、機械学習モデルは新しい品目から別個のクラスタを作成する。品目のクラスタリングから取得されるこれらの区分の問題は、それらがユーザの選好からかけ離れ得ることである。
【発明の概要】
【課題を解決するための手段】
【0005】
ユーザ対話が、入力データを変更すること、又はモデルを再トレーニングすることのいずれかによって機械学習結果に影響を及ぼすことを可能にするシステム及び方法を本明細書で本開示する。言い換えれば、サプライ・チェーン情報に関する予測の正確さを改善するために、モデルを再トレーニングするために人間フィードバックが使用される。
【0006】
ユーザが機械学習モデルへの直観的信頼を築くことを可能にするために、本開示は、ユーザがユーザ対話に基づいてモデル自体に影響を及ぼすことを可能にする方法及びシステムを提供する。そのような影響は、1)予測するために使用される情報を変更すること、2)モデル自体を再トレーニングすることの2つの方法で行うことができる。
【0007】
本開示は、ユーザが、それの後に追加されるすべての品目のポジションに影響を及ぼす所望の品目を移動することを可能にするシステム及び方法を提供する。そのようなシナリオを実装するために、モデルは、ユーザ・フィードバックをキャプチャし、モデルがフィードバックから学習することを可能にするために、各ユーザ対話の後に再トレーニングされ得る。
【0008】
一態様では、システムは、プロセッサと、命令を記憶するメモリとを備え、命令は、プロセッサによって実行されたとき、機械学習モジュールによって、データを前処理することと、機械学習モジュールによって、トレーニングされた機械学習モデルを選択することと、機械学習モジュールによって、トレーニングされた機械学習モデルに基づいて結果を予測することと、機械学習モジュールによって、ユーザのための予測をユーザ・インターフェースに出力することと、補正された予測を与えるために、ユーザによって、ユーザ・インターフェースを介して予測を補正することと、機械学習モジュールによって、補正された予測に関連付けられたデータに基づいて、トレーニングされた機械学習モデルを再トレーニングし、それによって、再トレーニングされた機械学習モデルを与えることと、機械学習モジュールによって、(i)補正された予測に関連付けられたデータと、(ii)再トレーニングされた機械学習モデルとに基づいて新しい結果を予測することとを行うようにシステムを構成する。
【0009】
いくつかの実施例では、ユーザ・インターフェースはグラフィカル・ユーザ・インターフェースであり得る。いくつかの実施例では、結果はデバイスに出力され得、ユーザは、デバイスのスクリーン上の1つ又は複数のオブジェクトを移動することによって予測を補正し得る。
【0010】
いくつかの実施例では、ユーザは、予測に関連付けられたデータ・ファイルを補正することによって予測を補正し得る。
【0011】
いくつかの実施例では、機械学習モデルは、K平均クラスタリング、ミーンシフト・クラスタリング、ノイズのあるアプリケーションの密度ベース空間クラスタリング(DBSCAN:Density-Based Spatial Clustering of Applications with Noise)、混合ガウス・モデル(GMM:Gaussian Mixture Models)を使用する期待値最大化(EM:Expectation-Maximization)クラスタリング、凝集型階層クラスタリング及びそれらの任意の組合せからなるグループから選択され得る。
【0012】
いくつかの実施例では、命令は、機械学習モジュールによって、品目の複数の説明を複数の単語ベクトルに変換することであって、各単語ベクトルが複数の次元を有する、単語ベクトルに変換することと、機械学習モジュールによって、ユーザ・インターフェースの2次元平面上に、複数の単語ベクトルを投影することと、機械学習モジュールによって、複数の単語ベクトルと2次元座標の複数のセットとについて機械学習モジュール内のニューラル・ネットワークをトレーニングすることであって、2次元座標の各セットがそれぞれの単語ベクトルに関連付けられる、ニューラル・ネットワークをトレーニングすることと、2次元座標の複数の補正されたセットを与えるために、ユーザによって、ユーザ・インターフェースを介して2次元座標の複数のセットのサブセットを補正することと、機械学習モジュールによって、2次元座標の複数の補正されたセットについてニューラル・ネットワークを再トレーニングすることとを行うようにシステムを構成することができる。
【0013】
別の態様では、対話型機械学習のコンピュータ実装方法であって、本方法は、機械学習モジュールによって、データを前処理することと、機械学習モジュールによって、トレーニングされた機械学習モデルを選択することと、機械学習モジュールによって、トレーニングされた機械学習モデルに基づいて結果を予測することと、機械学習モジュールによって、ユーザのための予測をユーザ・インターフェースに出力することと、補正された予測を与えるために、ユーザによって、ユーザ・インターフェースを介して予測を補正することと、機械学習モジュールによって、補正された予測に関連付けられたデータに基づいて、トレーニングされた機械学習モデルを再トレーニングし、それによって再トレーニングされた機械学習モデルを与えることと、機械学習モジュールによって、(i)補正された予測に関連付けられたデータと、(ii)再トレーニングされた機械学習モデルとに基づいて新しい結果を予測することとを含む。
【0014】
いくつかの実施例では、ユーザ・インターフェースはグラフィカル・ユーザ・インターフェースであり得る。いくつかの実施例では、結果はデバイスに出力され得、ユーザは、デバイスのスクリーン上の1つ又は複数のオブジェクトを移動することによって予測を補正し得る。
【0015】
いくつかの実施例では、ユーザは、予測に関連付けられたデータ・ファイルを補正することによって予測を補正し得る。
【0016】
いくつかの実施例では、機械学習モデルは、K平均クラスタリング、ミーンシフト・クラスタリング、ノイズのあるアプリケーションの密度ベース空間クラスタリング(DBSCAN)、混合ガウス・モデル(GMM)を使用する期待値最大化(EM)クラスタリング、凝集型階層クラスタリング及びそれらの任意の組合せからなるグループから選択され得る。
【0017】
いくつかの実施例では、本方法は、機械学習モジュールによって、品目の複数の説明を複数の単語ベクトルに変換することであって、各単語ベクトルが複数の次元を有する、単語ベクトルに変換することと、機械学習モジュールによって、ユーザ・インターフェースの2次元平面上に複数の単語ベクトルを投影することと、機械学習モジュールによって、複数の単語ベクトルと2次元座標の複数のセットとについて機械学習モジュール内のニューラル・ネットワークをトレーニングすることであって、2次元座標の各セットがそれぞれの単語ベクトルに関連付けられる、ニューラル・ネットワークをトレーニングすることと、2次元座標の複数の補正されたセットを与えるために、ユーザによって、ユーザ・インターフェースを介して2次元座標の複数のセットのサブセットを補正することと、機械学習モジュールによって、2次元座標の複数の補正されたセットについてニューラル・ネットワークを再トレーニングすることとを含む。
【0018】
別の態様では、非一時的コンピュータ可読記憶媒体であって、コンピュータ可読記憶媒体は、コンピュータによって実行されたとき、コンピュータに、機械学習モジュールによって、データを前処理することと、機械学習モジュールによって、トレーニングされた機械学習モデルを選択することと、機械学習モジュールによって、トレーニングされた機械学習モデルに基づいて結果を予測することと、機械学習ジュールによって、ユーザのための予測をユーザ・インターフェースに出力することと、補正された予測を与えるために、ユーザによって、ユーザ・インターフェースを介して予測を補正することと、機械学習モジュールによって、補正された予測に関連付けられたデータに基づいて、トレーニングされた機械学習モデルを再トレーニングし、それによって、再トレーニングされた機械学習モデルを与えることと、機械学習モジュールによって、(i)補正された予測に関連付けられたデータと、(ii)再トレーニングされた機械学習モデルとに基づいて新しい結果を予測することとを行わせる命令を含む。
【0019】
いくつかの実施例では、ユーザ・インターフェースはグラフィカル・ユーザ・インターフェースであり得る。いくつかの実施例では、結果はデバイスに出力され得、ユーザは、デバイスのスクリーン上の1つ又は複数のオブジェクトを移動することによって予測を補正し得る。
【0020】
いくつかの実施例では、ユーザは、予測に関連付けられたデータ・ファイルを補正することによって予測を補正し得る。
【0021】
いくつかの実施例では、機械学習モデルは、K平均クラスタリング、ミーンシフト・クラスタリング、ノイズのあるアプリケーションの密度ベース空間クラスタリング(DBSCAN)、混合ガウス・モデル(GMM)を使用する期待値最大化(EM)クラスタリング、凝集型階層クラスタリング及びそれらの任意の組合せからなるグループから選択され得る。
【0022】
いくつかの実施例では、命令は、機械学習モジュールによって、品目の複数の説明を複数の単語ベクトルに変換することであって、各単語ベクトルが複数の次元を有する、単語ベクトルに変換することと、機械学習モジュールによって、ユーザ・インターフェースの2次元平面上に複数の単語ベクトルを投影することと、機械学習モジュールによって、複数の単語ベクトルと2次元座標の複数のセットとについて機械学習モジュール内のニューラル・ネットワークをトレーニングすることであって、2次元座標の各セットがそれぞれの単語ベクトルに関連付けられる、ニューラル・ネットワークをトレーニングすることと、2次元座標の複数の補正されたセットを与えるために、ユーザによって、ユーザ・インターフェースを介して2次元座標の複数のセットのサブセットを補正することと、機械学習モジュールによって、2次元座標の複数の補正されたセットについてニューラル・ネットワークを再トレーニングすることとを行うようにコンピュータを構成し得る。
【0023】
この明細書の主題の1つ又は複数の実施例の詳細は添付の図面及び以下の説明に記載されている。本主題の他の特徴、態様及び利点は、説明、図面及び特許請求の範囲から明らかになろう。
【0024】
様々な図面における同様の参照番号及び指定は同様の要素を示す。
【0025】
任意の特定の要素又は行為の説明を容易に識別するために、参照番号中の最上位の1つ又は複数の数字は、その要素が最初に導入された図番号を指す。
【図面の簡単な説明】
【0026】
図1】対話型機械学習の一実施例による概観を示す図である。
図2】対話型機械学習の一実施例によるブロック図を示す図である。
図3】対話型機械学習の一実施例によるフローチャートを示す図である。
図4】対話型機械学習の一実施例によるフローチャートを示す図である。
図5】対話型機械学習の一実施例によるブロック図を示す図である。
図6】対話型機械学習の一実施例によるフローチャートを示す図である。
図7】対話型機械学習の一実施例による、プロモーション最適化のフェーズ1を示す図である。
図8図3に示された実施例による、最適化された予測800を示す図である。
図9図8に示された実施例による、プロモーションの対話型フェーズを示す図である。
図10図9に示された実施例による、プロモーション最適化の最後のフェーズを示す図である。
図11】対話型機械学習の一実施例によるブロック図を示す図である。
図12】対話型機械学習の一実施例による、クラスタ・グルーピングのダイヤグラムを示す図である。
図13】一要素を移動した後の図12のクラスタ・グルーピングのダイヤグラムを示す図である。
図14】新しい要素を追加した後の図13のクラスタ・グルーピングのダイヤグラムを示す図である。
図15】対話型機械学習の一実施例による、一要素を追加、移動、及び追加した後のクラスタ・グルーピングの一連のダイヤグラムを示す図である。
図16】対話型機械学習の一実施例によるフローチャートを示す図である。
図17】対話型機械学習の一実施例によるシステムを示す図である。
【発明を実施するための形態】
【0027】
本文書では、実例、インスタンス又は説明として役に立つ、本明細書で説明する本主題の任意の実施例又は実装形態は、必ずしも、他の実施例に対して好ましい又は有利であると解釈されるべきであるとは限らない。
【0028】
本開示は様々な変更及び代替形態の余地があるが、それの特定の実施例は、例として図面に示されており、それについて以下で詳細に説明する。しかしながら、それは、本開示を開示した特定の形態に限定するものではなく、反対に、本開示は、本開示の趣旨及び範囲内に入るすべての改変、等価物及び代替をカバーするものであることが理解されるべきである。
【0029】
「備える(comprises)」、「備える(comprising)」という用語、又はそれの任意の他の変形は、構成要素若しくはステップのリストを含むセットアップ、デバイス又は方法が、それらの構成要素又はステップのみを含むのではなく、明確に記載されない、又はそのようなセットアップ若しくはデバイス若しくは方法に固有の他の構成要素又はステップを含み得るように、非排他的に包含をカバーするものである。言い換えれば、「を備える」に続くシステム又は装置中の1つ又は複数の要素は、さらなる制約なしに、システム又は装置中の他の要素又は追加の要素の存在を排除しない。
【0030】
本開示の実施例の以下の詳細な説明では、本出願の一部を形成し、本開示がそこにおいて実施され得る特定の実施例が説明として示されている添付の図面を参照する。これらの実施例について、当業者が本開示を実施することを可能にするために十分詳細に説明するが、本開示の範囲から逸脱することなく、他の実施例が利用され得、変更が行われ得ることを理解されたい。以下の説明は、したがって、限定的な意味で取られるべきではない。
【0031】
図1は、対話型機械学習の一実施例による概観100を示す。
【0032】
図1において、従来のプロセス110は、機械学習モデル104をトレーニングするためにデータ・ベース102が与えられた、従来の機械学習の簡単な概観を示し、トレーニングされたモデルは予測106を与える。
【0033】
図1において、対話型機械学習112の概観は、データ・ベース102と機械学習モデル104との送信の間のユーザ対話108の挿入を示す。すなわち、ユーザは、機械学習モデルによるデータの使用の前に、データを操作するために直接介入する。
【0034】
図2は、対話型機械学習の一実施例によるブロック図200を示す。
【0035】
生データが最初にステップ204において機械学習モジュールに送信される。データはステップ206において前処理され、その後に、データは、ステップ208において1つ又は複数の機械学習モデルをトレーニングするために送られる。各トレーニングされたモデルは評価され、予測を行うために、ステップ210においてトレーニングされたモデルが選択される。トレーニングされたモデルは、ステップ212において結果を予測するために使用される。この際、結果は、ステップ218において予測された結果を補正するオプションを有するユーザに提示される。補正された結果は、次いで、新しい又は更新されたデータとして使用される。
【0036】
機械学習モデルが回帰分析を与える場合、補正された結果は、ステップ222において前処理されたデータとして扱われる。その後、ステップ224において、前処理されたデータは、ステップ212において予測を行うために、ステップ210において選択されたトレーニングされたモデルによって使用される。ユーザは、新しい予測をもう一度調べ、結果を保持する(その時点において、ステップ216においてプロセスは終了する)べきか、ループ230を継続するべきかを決定することができる。このループは、ユーザが結果に満足するまで必要に応じて何回も実行され得、プロセスはステップ216において終了する。
【0037】
機械学習モデルが回帰分析(たとえば、クラスタリング分析)を与えない場合、補正された結果は、ステップ206において前処理されるべきデータとして扱われ、ステップ208~ステップ212が再実行される。ユーザが新しい予測に満足した場合、プロセスはステップ216において終了する。他の場合、ループ228は、ユーザが結果に満足するまで必要に応じて何回も実行され得、プロセスはステップ216において終了する。
【0038】
図3は、対話型機械学習の一実施例によるフローチャート300を示す。
【0039】
図3において、ユーザ304はサーバ306に結果を要求310する。この初期要求に基づいて、サーバ306は、要求された結果のために必要とされるものを計算することができる。サーバ306は、データストア308にクエリを送るか、又はデータを要求312し、データストア308は、次いで、機械学習モジュールをホストするサーバ306にデータの送信314を与える。このモジュールは、予測を行い、結果の送信316をユーザ304に与える機械学習モデルに供給されるデータを前処理し、ユーザ304は、次いで、ユーザ補正302を介して結果を修正することができる。
【0040】
データの前処理は、データの変換、検証、修正又はそれらの任意の組合せを含み得る。
【0041】
データの検証は、単に、入来データに潜在的なエラーがあるかどうかを決定することを意味する。たとえば、検証は、消失したデータ、ヌル・データ、行数の相違、及びデータ不一致の識別を含むことができる。いくつかの実施例では、データ検証モジュールは、異常データ値を識別するためにzスコアしきい値とともに機械学習アルゴリズムを使用し得る。
【0042】
データ修正は、エラーを示すデータの修正又は再計算を伴う。たとえば、消失した値又は誤った値は、1つ又は複数の既存の値、既存のデータの算術平均、又は既存のデータの平均から補間されるデータを使用して交換され得る。いくつかの実施例では、データの修正は、エラーを示すデータを交換するために予測モデルを使用することができる。
【0043】
ユーザ304からサーバ306への補正された結果/データの送信318が行われる。この時点で、データの前処理326が行われる。たとえば、補正されたデータは(図2におけるステップ206又はステップ222の場合と同様に)前処理される。機械学習モデルが回帰タイプ分析を与える場合、データの前処理326は、(図2のループ230の場合と同様に)新しい又は更新された予測を行うためのトレーニングされたモデルの再適用を含む。機械学習モデルが回帰分析(たとえばクラスタリング分析)を伴わない場合、再トレーニング328は、新しい又は更新された予測を行うために、図2のループ228中のステップを含むことができる。
【0044】
更新された予測は、更新された結果の送信322によってユーザ304に与えられる。この時点で、ユーザ304は、更新された結果を承認するか、又は、随意のループ324を介して結果を補正することを求めることができ、データ326の前処理とともに、サーバ306への補正された結果/データの送信318がもう一度行われ、新しい予測のさらなる計算と更新された結果の送信322とがユーザ304に戻る。随意のループ324は、ユーザ304が結果に満足するまで継続する。最後の補正されたデータセットは、補正されたデータの送信320を介して記憶のためにデータストア308に送られる。
【0045】
いくつかの実施例では、ユーザ補正302は以下のように行われ得る。ユーザ304に送信された予測は、(たとえば、スプレッドシートに又はJSONドキュメント中のデータセットとして)予測されたデータを含む任意のフォーマットであり得る。ユーザ304は予測を購入することができる。その場合、ユーザ304は、品目の1つのグループについて予測が多少間違っていることを決定し、予測されたデータセットを含んでいるファイルを補正することによって(たとえば、補正された予測を用いてスプレッドシート又はJSONドキュメントを補正することによって)予測を補正する。ユーザ304は、補正されたデータ・ファイルを(たとえば、スプレッドシート又はJSONドキュメントをHTTP要求によって)サーバ306に送信し、サーバ306はそれを承認する。サーバ306は、データの前処理326において補正されたデータセットを用いて前処理されたデータセットを補正する。
【0046】
図4は、対話型機械学習の一実施例によるフローチャート400を示す。
【0047】
図4において、ユーザはサーバ306に結果を要求310する。この初期要求に基づいて、サーバ306は、要求された結果のために必要とされるものを計算することができる。サーバ306は、データストア308にクエリを送るか、又はデータを要求312し、データストア308は、次いで、機械学習モジュールをホストするサーバ306にデータの送信314を行う。このモジュールは、データを前処理し、データは機械学習モデルに供給され、機械学習モデルは、予測を行い、ユーザ304に結果の送信316を行い、ユーザ304は、次いで、ユーザ補正302を介して結果を修正することができる。
【0048】
ユーザ304からサーバ306への補正された結果/データの送信318が行われる。この時点で、データの前処理326が行われる。たとえば、補正されたデータは(図2におけるステップ206又はステップ222の場合と同様に)前処理される。機械学習モデルが回帰分析を含む場合、データの前処理326は、(図2のループ230の場合と同様に)新しい又は更新された予測を行うためのトレーニングされたモデルの再適用を含む。機械学習モデルが回帰分析(たとえばクラスタリング分析)を与えない場合、再トレーニング328は、新しい又は更新された予測を行うために、図2のループ228中のステップを含むことができる。
【0049】
更新された予測は、更新された結果の送信322によってユーザ304に与えられる。この時点で、ユーザ304は、更新された結果を承認するか、又は、随意のループ324を介して結果を補正することを求めることができ、データの前処理326とともに、サーバ306への補正された結果/データの送信318がもう一度行われ、新しい予測のさらなる計算と更新された結果の送信322とがユーザ304に戻る。随意のループ324は、ユーザ304が結果に満足するまで継続する。最後の補正されたデータセットは、補正されたデータの送信320を介して記憶のためにデータストア308に送られる。
【0050】
図4において、予測されたデータを含んでいるファイルを直接補正するのではなく、データを補正するためにユーザ304によってユーザ・インターフェース402が使用される。ユーザ・インターフェース402は、ユーザが予測された結果を取得し、補正し、ユーザ304に送り返すことを可能にする任意のタイプのインターフェースであり得る。いくつかの実施例では、ユーザ・インターフェース402は、結果がGUIによって解析され、それによって、ユーザ304が結果を補正/制約/確定することを可能にするグラフィカル・ユーザ・インターフェース(GUI)であり、結果は、次いで、サーバ306に送り返され、その後、新しい予測の送信の前に、データのさらなる前処理326が行われる。
【0051】
図5は、対話型機械学習の一実施例によるブロック図500を示す。
【0052】
生データが最初にステップ504において機械学習モジュールに送信される。データはステップ506において前処理され、その後に、データは、ステップ508において1つ又は複数の機械学習モデルをトレーニングするために送られる。各トレーニングされたモデルは評価され、予測を行うために、ステップ510において1つのトレーニングされたモデルが選択される。トレーニングされたモデルは、ステップ512において結果を予測するために使用される。この際、結果は、ステップ518において予測された結果を補正するオプションを有するユーザに提示される。補正された結果は、次いで、新しい又は更新されたデータとして使用される。
【0053】
補正された結果は、ステップ520において前処理されたデータとして扱われる。その後、ステップ522において、前処理されたデータは、ステップ512において予測を行うために、ステップ510において選択されたトレーニングされたモデルによって使用される。ユーザは、新しい予測をもう一度調べ、結果を保持する(その時点において、プロセスはステップ516において終了する)べきか、又は、もう一度、ループ524を継続するべきかを決定することができ、ループ524は、ユーザが結果に満足するまで必要に応じて何回も実行され得、プロセスはステップ516において終了する。
【0054】
実施例:ユーザベースの制約を用いた機械学習
図6は、対話型機械学習の一実施例によるフローチャート600を示す。図6において、対話型機械学習は、機械学習モデルにおけるユーザベースの制約を用いた最適化のために使用されている。
【0055】
第1のステップは、前にトレーニングされ、選択された機械学習モデルを使用して出力の予測が行われるステップ604である。出力は、次いで、ステップ606において(最適化アルゴリズムを使用して)データの1つ又は複数のサブセットに対して最適化され得る。ステップ608において、ユーザは1つ又は複数のサブセット中に制約を導入し、その結果、元のデータセットに1つ又は複数の制約が課される。この補正された結果は新しいデータセットとして扱われ、それは、次いで、ステップ612において新しい予測を行うために(ステップ604において)同じトレーニングされたモデルによって処理される前に、ステップ610において前処理され、それにより、ステップ612において新しい機械学習モデル予測が得られる。この段階で、ユーザは結果を承認し、したがって(ステップ616において)プログラムを終了するか、又は、さらなる制約を導入し、ステップ616において満足な結果が得られるまでループ618をもう一度実行することを決定し得る。
【0056】
フローチャート600を使用した実施例が図7図10に示されている。
【0057】
実施例:プロモーション最適化における対話型機械学習
プロモーション最適化は多くの産業並びにサプライ・チェーン管理及び需要予測における極めて大きい問題である。
【0058】
機械学習は、製品の販売高を最大にするようにプロモーションの日付を最適化するために使用され得る。単一の実行において、アルゴリズムは複数回(たとえば数百回、数千回など)の最適化反復を行う。各反復において、プロモーション日付は異なる日付に移動され、予測が実行され、得られた販売高が記録される。最終的に、販売高の最大値に達し、プロモーション日付が戻される。元の結果と最適化された結果とは、次いで、ユーザに表示される。ユーザは、プロモーションを移動し、将来の実行のためにそれらを「アンカー」する選択肢を有する。プロモーションが「アンカー」されると、それは移動又は最適化されない。これは、実業界において制約をシミュレートするためである。たとえば、企業は、すでにある日付にプロモーションをあらかじめスケジュールしており、それを移動することができない。この例は、ユーザ・フィードバックがアルゴリズムの将来の実行に影響を及ぼすことを可能にすることによって対話型機械学習を証明する。
【0059】
そのような実施例では、機械学習モデルは最適化のためのモジュールとユーザ・フィードバックのためのユーザ・インターフェースとともに使用される。実例は、LightGBM(予報/予測アルゴリズム)、DiscreteOnePlusOne(最適化のためのフェイスブックのNevergradライブラリにある一般的アルゴリズム)、(ユーザ・インターフェースのための)Plotly Dashを含む。
【0060】
実験詳細(プロモーション最適化)
第1のフェーズでは、適切な最適化アルゴリズムを使用してプロモーションを最適化することによって販売高を増加させることが可能である。製品の選択されたサブセットについてできる限り多くのアルゴリズムを実験することによって、最適なモデルが見つけられ得る。
【0061】
最初に、公開されているデータセットを使用した。第2に、データに基づいて予測を与えるために機械学習モデルを構築した。次いで、フェイスブックのNevergradライブラリにある多数の最適化アルゴリズムについて全数探索を行った。最適モデル・ハイパーパラメータのセット並びに最良の最適化アルゴリズムが見つかった。これにより、販売高がかなりの金額(単一の最適化に対して5~15%の間)をブーストされた。
【0062】
最初に、データセットに適合させるためにLightGBMと呼ばれる予報/予測モデルを選択した。LightGBMは他のデータに適合させるために極めてうまく機能したので、過去の経験に基づいてLightGBMを選定した。プロモーションの日付をモデルの特徴(入力)として扱った。目標は、販売高を最大限ブーストするであろう日付にプロモーションを移動する(すなわち、最適プロモーション日付を見つける)ことであった。
【0063】
取引金額が多く、モデルのための良好な適合を有するデータセット中の製品を選択した。モデルが最初からうまく適合しない場合、いかなる最適化試みも不正確になり得るので、これは重要である。次に、フェイスブックAIのNevergradライブラリにおいて最良のアルゴリズムの全数探索を実行した。Nevergradライブラリはオープン・ソースの勾配のない最適化プラットフォームである。すなわち、探索の総数は(Nevergrad中のアルゴリズムの数)×(選択された製品の数)になり、ここで、ライブラリ中の各アルゴリズムを製品ごとにテストし、平均化した。最も良く機能したアルゴリズムを選択した。この実施例では、DiscreteOnePlusOneが、最良の結果を与えたモデルであった。モデル上で最適化を1回実行した後に、プロモーションを新しい日付にシャッフルし、販売高は製品によって約5~15%ブーストされた。
【0064】
第2のフェーズはいくつかのプロモーションのアンカリングであった。すなわち、これらのプロモーションは最適化されなかった。これは、人間の意思決定が関与したかのように状況を模倣するためであった(人間がプロモーション日付についていくつかの要件を与え、アルゴリズムは、それらの要件を念頭において最適化しなければならない)。ユーザ・インターフェースのためにPlotly Dashを使用してアンカリングを実施した。
【0065】
さらに、インストア・ディスプレイ、フライヤー、及び値引きなど、異なるタイプのプロモーションについても実験を行った。総じて、我々の手法は、我々の仮説をテストするためのシステマティックな調査と分析とを必要とした。
【0066】
図7は、対話型機械学習の一実施例によるプロモーション最適化700のフェーズ1を示す。図7において、機械学習モデルは、異なるプロモーションがスケジュールされた、プレッツェル714の販売高を予測するために使用されている。
【0067】
図7において、第1のタイプのプロモーション704(すなわちディスプレイ・プロモーション)と、第2のタイプのプロモーション706(すなわち特徴プロモーション)と、第3のタイプのプロモーション708(すなわち値引きプロモーション)との3つのタイプのプロモーションがあり、各プロモーションは図示のようにスケジュールされている。2017年7月13日に、第3のタイプのプロモーション708の1つのインスタンスがある。2011年7月20日に、第1のタイプのプロモーション704の1つのインスタンスと第2のタイプのプロモーション706の1つのインスタンスとがある。2011年7月27日に、第1のタイプのプロモーション704の1つのインスタンスと第2のタイプのプロモーション706の1つのインスタンスとがある。2011年11月2日には、第1のタイプのプロモーション704の1つのインスタンスと第2のタイプのプロモーション706の1つのインスタンスとがある。2011年11月7日に、第2のタイプのプロモーション706の1つのインスタンスがある。2011年11月14日に、第2のタイプのプロモーション706の1つのインスタンスがある。すべてにおいて、第1のタイプのプロモーション704の3つのインスタンスと、第2のタイプのプロモーション706の5つのインスタンスと、第3のタイプのプロモーション708の1つのインスタンスとがある。予測712は、2474単位が販売されるであろうと予測する。
【0068】
図8は、図7に示された実施例による最適化された予測800を示す。
【0069】
図8において、プロモーションは、予測を最適化するように移動される。(プロモーションが最適化されなかった)図7から予測された販売高702に対する最適化された予測合計802が示されている。
【0070】
結果として、最適化された予測806が販売高における2778単位への急増、予測712からの304単位又は12.3%の急増を予測するように、3つのタイプのプロモーションが移動されている。
【0071】
第1のタイプのプロモーション704の3つのインスタンスうちの2つは(元の日付の2011年7月27日と2011年11月2日とから)2011年6月8日と2011年6月29日とに移動している。第1のタイプのプロモーション704の1つのインスタンスのみが2011年7月20日のままである。
【0072】
第2のタイプのプロモーション706の5つのインスタンスのうちの4つは、(元の日付の2011年7月20日と、2011年7月27日と、2011年11月2日と、2011年12月7日とから)2011年11月9日と、2011年11月23日と、2011年12月21日と、2012年1月4日とに移動している。第2のタイプのプロモーション706の1つのインスタンスのみが2011年12月14日のままである。一方、第3のタイプのプロモーション708の唯一のインスタンスは、それの元の日付の2011年7月13日から2011年7月7日に移動している。
【0073】
図9は、図8に示された実施例によるプロモーション900の対話型フェーズを示す。図9において、ユーザは、ユーザ・インターフェースを通して、プロモーション日のうちの1つ又は複数を固定することによって機械学習モデルと対話する。この実施例では、ユーザ・インターフェースはグラフィカル・ユーザ・インターフェースであり、ユーザはそれによってスクリーン上でプロモーションを移動することができる。図9において、ユーザは、第2のタイプのプロモーション706の2つのインスタンス、すなわち、それぞれ黒点によって示された固定されたプロモーション902と固定されたプロモーション904とを固定している。すなわち、ユーザは、十分に最適化された結果の(図8に示された)結果を使用しないことを選び、代わりに、2011年9月7日には1つのプロモーションが、2011年9月14日には別のプロモーションがなければならないことを決定した。ユーザは、しかしながら、残っているプロモーションに制約を課していない。
【0074】
図10は、図9に示された実施例によるプロモーション最適化1000の最後のフェーズを示す。
【0075】
2つの固定されたプロモーション(固定されたプロモーション902及び固定されたプロモーション904)を伴う、図10において、機械学習モデルは、残っているプロモーションのために再最適化される。結果は新しい対話型の最適化された予測対話型の最適化された予想の合計1002である。予測された合計単位は2734単位であり、2474単位の元の予測712と比較すると、それは10.5%増である。(プロモーションのための固定された日付なしの)最適化された予測合計802は2778単位である。
【0076】
新しい最適化されたプロモーション日付(固定されたプロモーション902及び固定されたプロモーション904を除いて)は以下の通りである。第1のタイプのプロモーション704は、ここでは、2011年6月15日と、2011年7月6日と、2011年7月20日とに予定されている。第2のタイプのプロモーション706は、ここでは、2つの固定された日付の2011年9月7日と、2011年9月14日とに加えて、2011年10月5日と、2011年11月2日と、2011年11月30日とに予定されている。
【0077】
この段階において、ユーザは、(プロモーション制約なしの2778単位から、2つの固定されたプロモーション日付を使用する2734単位への)予測された販売高のわずかな低下が許容できるかどうかを決定することができる。ユーザは、戻って、他の固定された日付を検討(すなわち、固定された日付の前後に移動)し、機械学習モデルがユーザの要件に基づいて販売高をどのように予測するかを見ることができる。
【0078】
実施例:機械学習(クラスタリング)
図11は、対話型機械学習の一実施例によるブロック図1100を示す。
【0079】
生データが最初にステップ1104において機械学習モジュールに送信される。データはステップ1106において前処理され、その後に、データは、ステップ1108において1つ又は複数の機械学習モデルをトレーニングするために送られる。各トレーニングされたモデルは評価され、予測を行うために、ステップ1110において1つのトレーニングされたモデルが選択される。トレーニングされたモデルは、ステップ1112において結果を予測するために使用される。
【0080】
この際、結果は、ステップ1116において予測された結果を補正するオプションを有するユーザに提示される。補正された結果は、次いで、新しい又は更新されたデータとして使用され、(ステップ1106、ステップ1108、ステップ1110、ステップ1112から構成される)ループ1120を実行する。ループ1120は、ユーザが結果に満足するまで必要に応じて何回も実行され得、プロセスはステップ1118において終了する。
【0081】
代替的に、ステップ1106においてデータを前処理した後に、ループ1122が使用され得る。ループ1122は、機械学習モデルをトレーニングし、評価する(ステップ1108及びステップ1110)のではなく、単に、選択されたモデルを再トレーニングする。再トレーニングされたモデルは、ステップ1112において新しい結果を予測するために使用される。
【0082】
実施例:新製品導入における対話型機械学習
新製品の導入は多くの産業並びにサプライ・チェーン管理及び需要予測における極めて大きい問題である。この問題は、製品の販売又は購買に取り組むいずれの団体にも広く当てはまる。
【0083】
いくつかの実施例では、既存の品目は、最初に、教師なしの機械学習手法を使用して意味の相似性に基づいてグループ化される。新しい品目が導入される際、新しい品目は、自動的に、1)最も相似しているクラスタに追加されるか、又は2)それが既存の品目のいずれとも完全に異なるとき、機械学習モデルは新しい品目から別個のクラスタを作成する。品目のクラスタリングから取得されるこれらの区分の問題は、それらがユーザの選好からかけ離れ得ることである。本開示は、ユーザが、それの後に追加されるすべての品目のポジションに影響を及ぼす所望の品目を移動することを可能にするシステム及び方法を提供する。そのようなシナリオを実装するために、モデルは、ユーザ・フィードバックをキャプチャし、モデルがフィードバックから学習することを可能にするために、各ユーザ対話の後に再トレーニングされ得る。
【0084】
いくつかの実施例では、これは、最初に、品目の説明/名前を複数の次元(いくつかの実施例では、300次元)の単語ベクトルに変換することによって達成され得る。これらの品目は、それらを2D平面上に投影することによってユーザ・インターフェース上で(いくつかの実施例では、ユーザ・インターフェースはGUIである)ユーザに示され得る。ニューラル・ネットワークは、単語ベクトルとそれらの予測された2D座標とでトレーニングされ得、その後、これを使用して、ユーザ・インターフェース上に示された品目のロケーションを予測する。ユーザ・インターフェース上に示されている予測された結果に変更が行われたときはいつでも、ニューラル・ネットワークはフィードバックで再トレーニングされ、次いで、ユーザに許容できる結果を生成する。
【0085】
実験詳細(新製品導入)
どのモデル又はアルゴリズムが、(システム制約を与えられた)既存の品目をクラスタリングすることと、グラフ上で既存の品目の座標を変更することなしにユーザ入力でモデルを再トレーニングすることの両方を可能にすることができるかを決定するために、探索を行った。これは、t分布型確率的近傍埋め込み法(t-SNE:t-Distributed Stochastic Neighbor Embedding)及び主成分分析(PCA:Principal Component Analysis)、K平均法、ファジーK平均法及びDenclueのようなクラスタリング・アルゴリズム、スピアマンの順位、ピアソン相関係数及びクラメールのV統計のような相関アルゴリズムなど、次元削減のための異なるタイプの技法に関するいくつかの実験を必要とした。別の不確定性は、1つ又は複数の品目を移動することが、望ましい結果を生成するためにモデルを有意味に再トレーニングするために十分な情報を生成するかどうかであった。
【0086】
多くの手法及び仮説を評価した。第1に、アルゴリズムの適切なセットを用いて既存の品目をクラスタリングすることが可能であるということを仮定した。モデルがユーザ・フィードバックから学習することを可能にするために、機械学習モデルの意味のある再トレーニングを可能にするために、いくつかのアルゴリズムを作成し、テストした。
【0087】
実験を行うために、公開されているデータセットを使用した。第2に、製品の相似性予測のためにモデルを構築した。次いで、製品を移動する(座標を変更する)及び新製品を追加するなど、ユーザ対話から学習することが可能であるクラスタリングされた製品を可視化することを可能にするために、より高い次元から2次元スクリーンへの製品の投影のために、別のモデルを構築した。モデル・ハイパーパラメータの最適なセット、並びに、ユーザ・フィードバックをキャプチャし、ユーザ・フィードバックから学習するための最良のアルゴリズムが見つかった。これにより、製品をより良く分類するためにラベルなしユーザ・フィードバックから効果的に学習することができるモデルの作成が可能になった。
【0088】
最初に、データセットから製品の相似行列を作成するために、英語における単語の相似性を学習するために、Word2Vecを選択した。次いで、多層パーセプトロン(MLP:Multi-Layer Perceptron)リグレッサーと呼ばれるニューラル・ネットワークを、単語ベクトルと、t-SNEからの2D投影出力とに適合させた。製品の説明/名前をモデルの特徴(入力)として扱った。目標は、製品の意味論的意味によって製品を正しく分類し、モデルがそれから学習する方法でユーザがこの予測にオーバーライドすることを可能にすることである。
【0089】
データセットからすべての製品を選択した。すべての製品説明の単語ベクトルを見つけ出すために、すべての製品説明に対して事前トレーニングされたWord2Vecモデルを実行した。t-SNEを使用してこれらの単語ベクトルを2D平面上に投影した。この予測は、製品が異なるロケーションに移動されるか、又はユーザによって新製品が追加されたときはいつでも再トレーニングするために使用されるニューラル・ネットワークを使用して学習された。したがって、ニューラル・ネットワークは、人間対話から学習し、時間とともにより良い予測を行う。
【0090】
図12は、対話型機械学習の一実施例によるクラスタ・グルーピング1200のダイヤグラムを示す。
【0091】
図12において、(単語又はフレーズを特徴とする)一連の品目は、機械学習プログラムによってほぼ4つのクラスタにグループ化されている。クラスタ1 1202は口腔衛生製品に対応し、クラスタ2 1204はプレッツェル関係の製品に対応し、クラスタ3 1206はピザ関係の製品に対応し、クラスタ4 1208はシリアル関係の製品に対応する。ユーザは、「編組型ハニー・ウィート・プレッツェル」(品目1210)が機械学習プログラムによってクラスタ4 1208とグループ化されていることに留意する。ユーザは、これは不正確な配置であると考える。
【0092】
図12は、品目1210(「編組ハニー・ウィート・プレッツェル」)をクラスタ4 1208(シリアル関係製品)からクラスタ2 1204(プレッツェル関係製品)に移動した後の図12のクラスタ・グルーピングのダイヤグラム1200を示す。そうする際、ユーザは、編組ハニー・ウィート・プレッツェルがプレッツェル関係グループと分類され、シリアル関係グループと分類されていない修正されたデータセットで機械学習モデルを再トレーニングした。
【0093】
図13は、したがって、機械学習モデルを再トレーニングするために使用される対話型機械学習を示す。
【0094】
図14は、いくつかの新しい要素を追加した後の図13のクラスタ・グルーピング1200のダイヤグラムを示す。
【0095】
たとえば、「電動歯ブラシ」(品目1404)という新しい用語が機械学習プログラムによってクラスタ1 1202(口腔衛生関係製品)に追加されている。「エンチラーダ(enchilada)」(品目1406)という新しい用語が機械学習プログラムによってクラスタ3 1206(ピザ関係製品)に追加されている。しかしながら、「芝刈り機(lawn mower)」(品目1408)と「グラス・トリマー(grass trimmer)」(品目1410)という2つの用語は機械学習モデルによって新しいクラスタ5 1402に入れられている。対話型機械学習における新しい品目の追加は、実際に、ユーザによる機械学習プロセスにいかなる影響をも及ぼさない。
【0096】
図15は、対話型機械学習の一実施例による、一要素を追加、移動、及び追加した後のクラスタ・グルーピングの一連のダイヤグラムを示す。
【0097】
図15は、以下のように説明される、一連の変化を経る、図12のクラスタの3 1206(ピザ関係製品)のクローズアップを与える。
【0098】
スナップショット1502において、新しい品目1512(「サワードウ・パン」)が機械学習モデルに入力され、機械学習モデルは、それを、スナップショット1504に示されているようにクラスタ3 1206に入れる。ユーザは、品目1514(「サワードウ・ニブラ」)は品目1512(「サワードウ・パン」)に密接に関係していることに留意し、これらの2つの品目は、それら自体の別個のグループを形成するべきであることを決定する。すなわち、ユーザは、スナップショット1504に示されているように機械学習分類をオーバーライドすることを望む。
【0099】
そうするために、ユーザは、スナップショット1506に示されているように、新たに追加された品目1512(「サワードウ・パン」)を削除する。ユーザは、次いで、スナップショット1508に示されているように、品目1514(「サワードウ・ニブラ」)を元のクラスタ3 1206(ピザ関係製品)からそれ自体のクラスタ6 1518に移動する。この際、ユーザ対話は、新しいクラスタ6 1518を作成するように機械学習モデルを再トレーニングする。
【0100】
ユーザは、次いで、スナップショット1510に示されているように、そのときに機械学習モデルによって配置された品目1512(「サワードウ・パン」)を品目1516(「サワードウ・ニブラ」)と一緒にクラスタ6 1518(サワードウ関係製品)に追加する。
【0101】
したがって、図15は対話型機械学習を示す。
【0102】
図16は、対話型機械学習の一実施例によるフローチャート1600を示す。
【0103】
特に、図16に示された実施例は、図12図15に示されたユーザ対話を用いたクラスタリングの実例において使用されたフローチャート1600を示す。
【0104】
特に、ブロック1602は、機械学習モデルがトレーニングされ、クラスタの結果を与え、次いで、ユーザが、1つのクラスタ中の1つのエンティティを異なる又は完全に新しいクラスタに移動することによって結果と対話するケースを示す。このプロセスは以下のステップを含む。履歴データ1606は前処理1608を受け、次いで、機械学習モデルをトレーニングする1610ために使用される。トレーニングされたモデルは、予測を行い1612、クラスタの結果1614をユーザに与える。これは、たとえば、図12に示された、グループのクラスタを取得するために使用されるプロセスについて説明することができる。
【0105】
この時点で、ユーザは、機械学習モデルによって与えられた品目のクラスタリングに同意しないことがあり、1つ又は複数の品目を異なるクラスタに「移動」する(すなわち再分類する)か、又は新しいクラスタを開始することができる。1つの品目が再分類を受ける1616とき、ユーザによる対話により、トレーニングされたモデルは、「移動」された品目の新しい分類を反映するために再トレーニングされる(矢印1622)。
【0106】
ブロック1602は、たとえば、図12に示された分類から図13に示された分類までの進行中の移行を説明する。両方の図において、同じ数の品目が分類されている。図12において、結果(すなわち結果1614)は、品目1210(「編組型ハニー・ウィート・プレッツェル」)が、はちみつ関係品目を一緒にグルーピングするクラスタ4 1208に入れられることを示す。しかしながら、品目1210の配置に満足しないユーザは、品目1210を、プレッツェル関係品目をグルーピングするクラスタ2 1204に入れたほうが良いと決定する。ユーザは、図13に示されているように、品目1210(「編組ハニー・ウィート・プレッツェル」)をクラスタ2 1204に移動する。品目1210のこの再分類は、機械学習モデルの次の実行の前に機械学習モデルを再トレーニングする。これは、再分類1616として矢印1622によってブロック1602に示されている。
【0107】
ブロック1604は、機械学習モデルがトレーニングされ、分類結果を与えるケースを示す。その後、1つ又は複数の新しい品目が追加され、それらの分類はトレーニングされたモデルに基づく。新しい品目は、トレーニングされたモデルによって、先在するクラスタに追加され得るか、又は、新たに定義されたクラスタの一部になり得る。トレーニングされたモデルによって新しい品目が追加され、クラスタに入れられると、ユーザは、1つのクラスタ中の1つの品目を異なる又は完全に新しいクラスタに移動することによって結果と対話し得る。
【0108】
ブロック1604中のプロセスは以下のステップを含む。履歴データ1606は前処理1608を受け、次いで、機械学習モデルをトレーニングする1610ために使用される。トレーニングされたモデルは、予測を行い1612、クラスタの結果1614をユーザに与える。ユーザは、次いで、新しい品目1618を追加し、それの配置は、結果1614に示された予測1612によって与えられる。この時点で、ユーザは結果1614に同意しないことがあり、1つの品目を異なるクラスタに、又は完全に新しいクラスタに移動することを選択し得る。この時点で、再分類1620が行われ(矢印1622)、モデルは再トレーニングされる。
【0109】
たとえば、図14に示された状況はブロック1604のステップによって説明され得る。(図12に示された)グループの初期クラスタリングの後に、続いて(図13における)品目の1210のクラスタ2 1204への移動が行われる。この移動、又は対話は品目1210の再分類を与え、それはモデルを再トレーニングする。図14において、新しい品目1406が追加され、1回再トレーニングされたモデルによってクラスタ3 1206に入れられる。次に、品目1404が追加され、1回再トレーニングされたモデルによってクラスタ1 1202に入れられる。その後、新しい品目1408が追加され、1回再トレーニングされたモデルによって新しいクラスタ51402に入れられる。最後に、新しい品目1410が追加され、1回再トレーニングされたモデルによって新しいクラスタ5 1402に入れられる。イベントのシーケンスはユーザによる品目の任意の移動(又は再分類)を伴わない。図14に示された状況は、トレーニングされたモデルに基づく新しい品目の分類の簡単な予測、すなわち、新しい品目1618を追加すること、新しい品目1618の予測1612、その後の結果1614のシーケンスである。
【0110】
ブロック1604に戻り、新しい品目の分類が予測される(予測1612)と、ユーザは新しい品目の配置の後の分類結果に同意しないことがある。ブロック1602と同様に、ユーザは1つ又は複数の品目を異なるクラスタに「移動」する(すなわち再分類する)か、又は新しいクラスタを開始することができる。いくつかの実施例では、ユーザは、新しい品目を異なるクラスタ、すでに存在し得るクラスタに移動するか、又は完全に新しいクラスタ・グルーピングを作成することを選択し得る。いくつかの実施例では、ユーザは、新たに分類された品目の分類を維持しながら、前に分類された(すなわち、新しい品目ではない)1つの品目を移動する(又は再分類する)ことを選択し得る。品目が再分類1620を受けるとき、ユーザによる対話により、トレーニングされたモデルは、「移動」された品目の新しい分類を反映するように再トレーニングされる(矢印1622)。
【0111】
ブロック1604は、たとえば、図15に示された移行を説明する。スナップショット1502において、新しい品目1512(「サワードウ・パン」)が機械学習モデルに入力され、機械学習モデルは、スナップショット1504に示されているように新しい品目1512(「サワードウ・パン」)をクラスタ3 1206に入れる。これは、新しい品目1618が入力された後のトレーニングされたモデルによる簡単な予測(予測1612)である。ユーザは、品目1514(「サワードウ・ニブラ」)が品目1512(「サワードウ・パン」)に密接に関係していることに留意し、これらの2つの品目は、それら自体の別個のグループを形成するべきであることを決定する。すなわち、ユーザは、スナップショット1504に示されているように機械学習分類をオーバーライドすることを望む。
【0112】
そうするために、ユーザは、スナップショット1506に示されているように、新たに追加された品目1512(「サワードウ・パン」)を削除する。ユーザは、次いで、スナップショット1508に示されているように、品目1514(「サワードウ・ニブラ」)を元のクラスタ3 1206(ピザ関係製品)からそれ自体のクラスタ6 1518に移動する。この際、ユーザ対話は、新しいクラスタ6 1518を作成するように機械学習モデルを再トレーニングする。すなわち、ユーザは(ブロック1604中の再分類1620に対応する)品目1514を再分類し、したがって、モデルの再トレーニングにつながる(矢印1622)。
【0113】
ユーザは、次いで、品目1512(「サワードウ・パン」)を挿入し、品目1512(「サワードウ・パン」)は、次いで、スナップショット1510に示されているように、再トレーニングされた機械学習モデルによって品目1516(「サワードウ・ニブラ」)と一緒にクラスタ6 1518(サワードウ関係製品)に入れられる。ユーザによって満足であると考えられたこの結果1614はそのままである(すなわち、この配置は再分類1620を受けない)。
【0114】
図17は対話型機械学習の一実施例によるシステム1700を示す。
【0115】
システム1700は、システム・サーバ1704と、機械学習ストレージ1712と、クライアント・データ・ソース1722と、1つ又は複数のデバイス1706、1710及び1708とを含む。システム・サーバ1704は、メモリ1716と、ディスク1718と、プロセッサ1714と、ネットワーク・インターフェース1720とを含むことができる。1つのプロセッサ1714が示されているが、システム・サーバ1704は1つ又は複数のプロセッサを備えることができる。いくつかの実施例では、不揮発性メモリであり得るディスク1718と比較して、メモリ1716は揮発性メモリであり得る。いくつかの実施例では、システム・サーバ1704は、ネットワーク1702を介して、機械学習ストレージ1712と、クライアント・データ・ソース1722と、1つ又は複数の外部デバイス1710、1706及び1708と通信することができる。機械学習ストレージ1712はシステム・サーバ1704とは別個として示されているが、機械学習ストレージ1712はまた、システム・サーバ1704内の別個の構成要素か、又はメモリ1716とディスク1718とのうちの少なくとも1つの一部のいずれかとしてシステム・サーバ1704に一体化され得る。
【0116】
システム1700はまた、追加の特徴及び/又は機能を含むことができる。たとえば、システム1700は、限定はしないが、磁気又は光ディスク又はテープを含む(リムーバブル及び/又は非リムーバブル)追加のストレージも含むことができる。そのような追加のストレージはメモリ1716とディスク1718とによって図17に示されている。記憶媒体は、コンピュータ可読命令、データ構造、プログラム・モジュール又は他のデータなどの情報の記憶のために任意の方法又は技術において実装される、揮発性媒体及び不揮発性媒体、リムーバブル媒体及び非リムーバブル媒体を含むことができる。メモリ1716及びディスク1718は非一時的コンピュータ可読記憶媒体の実例である。非一時的コンピュータ可読媒体はまた、限定はしないが、所望の情報を記憶するために使用され得、システム1700によってアクセスされ得る、ランダム・アクセス・メモリ(RAM:Random Access Memory)、読取り専用メモリ(ROM:Read-Only Memory)、電気的消去可能プログラマブル読取り専用メモリ(EEPROM:Electrically Erasable Programmable Read-Only Memory)、フラッシュ・メモリ及び/又は他のメモリ技術、コンパクト・ディスク読取り専用メモリ(CD-ROM:Compact Disc Read-Only Memory)、デジタル多用途ディスク(DVD:digital versatile discs)、及び/又は他の光ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージ又は他の磁気記憶デバイス、及び/又は任意の他の媒体を含む。任意のそのような非一時的コンピュータ可読記憶媒体はシステム1700の一部であり得る。
【0117】
ネットワーク1702を介したシステム・サーバ1704と機械学習ストレージ1712と1つ又は複数の外部デバイス1710、1706及び1708との間の通信は様々なネットワーク・タイプを介して行われ得る。いくつかの実施例では、プロセッサ1714はネットワーク・インターフェース1720を介したネットワーク1702との通信中に配設され得る。ネットワーク・インターフェース1720はネットワーク1702と通信し得る。ネットワーク・インターフェース1720は、限定はしないが、直接接続、イーサネット(登録商標)(たとえば、ツイストペア10/40/400 Base T)、伝送制御プロトコル/インターネット・プロトコル(TCP:transmission control protocol/IP:internet protocol)、トークン・リング、IEEE802.11a/b/g/n/xなどを含む接続プロトコルを採用し得る。非限定的な例示的ネットワーク・タイプは、ファイバー・チャネル、小型コンピュータ・システム・インターフェース(SCSI:small computer system interface)、Bluetooth、イーサネット(登録商標)、Wi-fi、赤外線データ協会(IrDA:Infrared Data Association)、ローカル・エリア・ネットワーク(LAN:Local area networks)、ワイヤレス・ローカル・エリア・ネットワーク(WLAN:Wireless Local area networks)、インターネット、シリアル、及びユニバーサル・シリアル・バス(USB:universal serial bus)などワイド・エリア・ネットワーク(WAN:wide area networks)を含むことができる。一般に、システム1700の様々な構成要素間の通信は、ハードワイヤード、セルラー、Wi-Fi又はBluetoothネットワーク化構成要素などを介して行われ得る。いくつかの実施例では、システム1700の1つ又は複数の電子デバイスはクラウドベース・メモリ・ストレージなど、クラウドベース機能を含み得る。
【0118】
機械学習ストレージ1712は、揮発性(たとえば、非ディスクベース)ストレージ(たとえば、ランダム・アクセス・メモリ)がキャッシュ・メモリのためと動作中に全データ・ベースを記憶するための両方に使用され、永続ストレージ(たとえば、1つ又は複数の固定されたディスク)がオフライン持続とデータベース・スナップショットの保守とのために使用される「メモリ内」データ・ベースを実装し得る。代替的に、永続ストレージは全データ・ベースを記憶するが、最近使用されたデータを記憶するためのキャッシュ・メモリとして揮発性ストレージが使用され得る。
【0119】
機械学習ストレージ1712は、データの構造と関係と意味とに関するメタデータを記憶し得る。この情報は、データ内に記憶されるデータベース・テーブルのスキーマを定義するデータを含み得る。データベース・テーブル・スキーマは、データベース・テーブルの名前と、データベース・テーブルの列と、各列に関連付けられたデータ・タイプと、データベース・テーブルに関連付けられた他の情報とを指定し得る。機械学習ストレージ1712はまた、又は代替的に、プログラム的に互いに分離された複数の論理データベース・システムを与えることによってマルチテナンシー(multi-tenancy)をサポートし得る。その上、データは、それの速い探索と取出しとを可能にするためにインデックス付けされ及び/又はインデックス中で選択的に複製され得る。さらに、機械学習ストレージ1712は、システム・サーバ1704によってアクセスされる機械学習モデルの数を記憶することができる。いくつかの機械学習モデルが使用され得る。
【0120】
機械学習が使用されるいくつかの実施例では、勾配ブースト・ツリーと、ツリーのアンサンブルと、サポート・ベクター回帰とが使用され得る。機械学習のいくつかの実施例では、1つ又は複数のクラスタリング・アルゴリズムが使用され得る。非限定的な実例は、クラスタリング構造を識別するための階層クラスタリングと、K平均と、混合モデルと、ノイズのあるアプリケーションの密度ベース空間クラスタリングと、発注点(ordering point)とを含む。
【0121】
機械学習のいくつかの実施例では、1つ又は複数の異常検出アルゴリズムが使用され得る。非限定的な実例は局所外れ値因子法(local outlier factor)を含む。
【0122】
機械学習のいくつかの実施例では、ニューラル・ネットワークが使用され得る。
【0123】
クライアント・データ・ソース1722は、限定はしないが、すべてのロケーションにおけるクライアントの全製品の販売高記録を示すポイント・オブ・セールス・データと、すべてのロケーションにおけるクライアントの全製品のインベントリ履歴と、全ロケーションにおける全製品のための販売促進キャンペーン詳細と、すべてのロケーションにおけるクライアントの製品の販売高のための重要な/関連があるイベントとを含む、ユーザからの様々な生データを与え得る。
【0124】
ネットワーク・インターフェース1720とネットワーク1702とを使用して、システム・サーバ1704は1つ又は複数のデバイス1710、1706及び1708と通信し得る。これらのデバイス1710、1706及び1708は、限定はしないが、1つ又は複数のパーソナル・コンピュータ、1つ又は複数のサーバ、セルラー電話、(たとえば、アップルiPhone(登録商標)、ブラックベリー、アンドロイド(登録商標)ベース・フォンなど)スマートフォン、タブレット・コンピュータ、(アマゾンKindle、Nookなど)電子ブック・リーダー、ラップトップ・コンピュータ、ノートブック、(マイクロソフトXbox、任天堂DS、ソニーPlayStationなど)ゲーミング・コンソールなど、様々なモバイル・デバイスなどを含み得る。
【0125】
ネットワーク1702を使用して、システム・サーバ1704は機械学習ストレージ1712とクライアント・データ・ソース1722とからデータを取り出すことができる。取り出されたデータはメモリ1716又は1708に保存され得る。いくつかの実施例では、システム・サーバ1704はまた、ウェブ・サーバを備え、リソースをウェブ・ブラウザ上に表示されるために好適なフォーマットにフォーマッティングすることができる。
【0126】
仮の機械学習結果が1つ又は複数のデバイスのいずれかに与えられると、ユーザは結果を補正することができ、結果は、さらなる実行のために機械学習ストレージ1712に再送される。結果は、次いで1714に送られる1つ又は複数のデータ・ファイルとの対話によって、或いは1つ又は複数のデバイス1710、1706及び1708におけるユーザ・インターフェースを通して補正され得る。たとえば、1720において、ユーザは、グラフィカル・ユーザ・インターフェースを使用して結果を補正することができる。
【0127】
上記で説明したアルゴリズムは、上記のフローチャートに関して別個に説明したアルゴリズムを含むが、本明細書で開示した任意の2つ又はそれ以上のアルゴリズムが任意の組合せで組み合わせられ得ることを理解されたい。本明細書で説明した方法、モジュール、アルゴリズム、実装形態、又はプロシージャのいずれも、(a)プロセッサ、(b)コントローラ、及び/又は(c)任意の他の好適な処理デバイスによる実行のための機械可読命令を含むことができる。本明細書で開示した任意のアルゴリズム、ソフトウェア、又は方法は、たとえば、フラッシュ・メモリ、CD-ROM、フロッピー(登録商標)・ディスク、ハード・ドライブ、デジタル多用途ディスク(DVD)、又は他のメモリ・デバイスなど、非一時的有形媒体上に記憶されるソフトウェアにおいて実施され得るが、アルゴリズムの全体及び/又はそれの一部は、代替的に、コントローラ以外のデバイスによって実行され、及び/又はよく知られている様式のファームウェア又は専用のハードウェアにおいて実装され得る(たとえば、それは、特定用途向け集積回路(ASIC: application specific integrated circuit)、プログラマブル論理デバイス(PLD: programmable logic device)、フィールド・プログラマブル論理デバイス(FPLD: field programmable logic device)、ディスクリート論理などによって実施され得る)ことを当業者は容易に諒解するであろう。さらに、本明細書で示したフローチャートを参照しながら特定のアルゴリズムについて説明したが、例示的な機械可読命令を実装する多くの他の方法が代替的に使用され得ることを当業者は容易に諒解するであろう。たとえば、ブロックの実行の順序は変更され得、及び/又は説明されたブロックのうちのいくつかは、変更され、なくされ、又は組み合わせられ得る。
【0128】
様々なモジュールを有するとして本明細書で示し、説明したアルゴリズムは、特定の機能を実行し、互いに対話することに留意されたい。これらのモジュールは、説明のためにそれらの機能に基づいて分離されているにすぎず、コンピュータ・ハードウェア、及び/又は適切な計算ハードウェア上での実行のためにコンピュータ可読媒体上に記憶された実行可能なソフトウェア・コードを表すことを理解されたい。異なるモジュール及びユニットの様々な機能は、任意の様式でモジュールとして上記のようにハードウェアとして、及び/又は非一時的コンピュータ可読媒体上に記憶されたソフトウェアとして組み合わせられるか又は分離され得、別個に又は組み合わせて使用され得る。
【0129】
主題の特定の実施例について説明した。他の実施例は以下の特許請求の範囲の範囲内に入る。たとえば、特許請求の範囲に記載されている行為は、異なる順序で実行され、依然として望ましい結果を達成することができる。一例として、添付図に示されているプロセスは、望ましい結果を達成するために、必ずしも示されている特定の順序、又は逐次順次を必要としない。いくつかの実装形態では、マルチタスキング及び並列処理が有利であり得る。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17