- API ドキュメント
- CLI
- 連携ガイド
- ブログ
- 機械が単語を理解する方法:NLPに埋め込むためのガイド
- トランスフォーマーによるプロンプトベースの学習
- 効率的な変圧器II:知識蒸留と微調整
- 効率的な変圧器I:注意メカニズム
- 階層的な教師なしインテントモデリング:トレーニングデータなしで価値を得る
- Communications Mining による注釈バイアスの修正
- アクティブ ラーニング: より優れた ML モデルを短時間で実現
- それはすべて数字にあります-メトリックを使用してモデルのパフォーマンスを評価します
- モデルの検証が重要な理由
- 会話型データ インテリジェンスのための Communications Mining と Google AutoML の比較
階層的な教師なしインテントモデリング:トレーニングデータなしで価値を得る
ビジネスはコミュニケーションで成り立っています - 顧客は何かが欲しいときに手を差し伸べ、同僚は仕事を成し遂げるためにコミュニケーションを取ります。 すべてのメッセージが重要です。 Communications Miningの使命は、これらのメッセージの価値を解き放ち、ビジネス内のすべてのチームがより良い製品とサービスを効率的かつ大規模に提供できるよう支援することです。
そのために、機械学習と自然言語理解のコア技術を継続的に研究開発しています。 Communications Mining の機械学習モデルは、事前トレーニング、教師なし学習、半教師あり学習、 アクティブ ラーニング を使用して、ユーザーからの時間と投資を最小限に抑えながら最先端の精度を提供します。
この研究投稿では、コミュニケーションデータセットからトピックと意図、およびそれらの分類構造を自動的に認識するための新しい教師なしアプローチを探ります。 それは、私たちが提供する洞察の質とそれらが取得される速度を向上させることです。
トピック モデルは、"ドキュメント" のコレクションで発生する "トピック" を検出するためのメソッドのクラスです。 重要なのは、トピック モデルは注釈付きのトレーニング データを収集しなくても機能することです。データセット内のトピックと、各ドキュメントに表示されるトピックを自動的に識別します。
架空の「失敗した取引」メールと、自動的に推測したい階層トピックの種類
この投稿の内容:
- 従来のトピックモデルについて説明し、トピックの数を事前に知る必要がある、トピック間の関係がキャプチャされていないなど、それらの弱点のいくつかについて説明します。
- トピックは、データセットのトピック構造に基づいて 自動的に 推測される階層に編成されます。 階層は、意味的に関連するトピックをグループ化します。
- Transformerベースの埋め込みをモデルに組み込むことで、より一貫性のあるトピック階層を実現します。
トピック モデルでは、データセット (ドキュメントのコレクション) に一連のトピックが含まれていることを前提としています。 トピックは、各単語がドキュメント内で出現する可能性を指定します。 データセット内の各ドキュメントは、トピックの組み合わせから生成されます。 一般に、一緒に頻繁に発生する単語のセットは、特定のトピックで高い確率を持ちます。
たとえば、次のドキュメントで構成されるデータセットがあるとします。
- 文書1:「犬はオオカミの飼いならされた子孫である」
- 文書2:「猫はひげと引き込み式の爪を持つ肉食哺乳類です」
- 文書3:「大きな猫は犬を攻撃することが知られている」
- 文書4:「猫の鋭い爪に引っかかれた後、一部の犬は猫を恐れることができます」
- 文書5:「飼いならされた犬は他の犬よりも猫の存在を好むかもしれない」
これらのドキュメントでトレーニングされたトピック モデルは、次のトピックとドキュメント トピックの割り当てを学習できます。
トピック1 | トピック 2 |
---|---|
イヌ | 猫 |
家畜 | 爪 |
オオカミ | 鬚 |
... | ... |
最も高い確率で並べ替えられた単語を含むトピックの例。
トピック1 | トピック 2 | |
---|---|---|
資料1 | 100% | 0% |
資料2 | 0% | 100% |
資料3 | 50% | 50% |
資料4 | 33% | 67% |
資料5 | 67% | 33% |
ドキュメントとトピックの割り当ての例。
各トピックで最も可能性の高い単語と、各ドキュメントが属するトピックを表示すると、データセット内のテキストの内容と、互いに類似しているドキュメントの概要が表示されます。
正規トピックモデルは、 潜在ディリクレ割り当て(LDA)と呼ばれます。 これは、(近似) 最尤推定を使用してトレーニングされた生成モデルです。 LDA は、次のことを前提としています。
- K 個のトピックがあり、それぞれが語彙 (データセット内の単語のセット) に対する分布を指定します。
- 各ドキュメント(単語のコレクション)には、トピック全体に分布しています。
- ドキュメント内の各単語は、トピックに対するドキュメントの分布とボキャブラリに対するトピックの分布に従って、1 つのトピックから生成されます。
最新のトピック モデルのほとんどは LDA 上に構築されています。最初は埋め込み トピックモデル(ETM)に焦点を当てます。 ETM では、埋め込みを使用して単語とトピックの両方を表します。 従来のトピックモデリングでは、各トピックは語彙全体に完全に分布しています。 ただし、ETM では、各トピックは埋め込み空間内のベクトルです。 トピックごとに、ETM はトピック埋め込みを使用して語彙全体に分布を形成します。
トレーニングと推論
- 事前分布から潜在表現zをサンプリングします:z∼N(0,I)。
- トピックの比率 θ=ソフトマックス(z)を計算します。
- ドキュメント内の各単語 w について:
- 潜在的なトピックの割り当てのサンプル
- 単語をサンプリングする
- 潜在的なトピックの割り当てのサンプル
ガウス分布は推論分布に使用され、その平均と分散は、ドキュメントの単語表現のバッグを入力として受け取るニューラルネットワークの出力です。
上記のトレーニング目標のおかげで、推論分布は、真ではあるが扱いにくい事後、つまり qθ(z∣x)≃p(z∣x)を近似することを学習します。 つまり、モデルがトレーニングされると、推論分布を使用して、ドキュメントが割り当てられているトピックを見つけることができます。 推論分布の平均を取り、ソフトマックス関数を適用すると(上記の生成プロセスのステップ2に従って)、特定のドキュメントのおおよその事後トピックの比率が得られます。
実例
20のニュースグループデータセットでETMをトレーニングし、20の階層トピックに関するディスカッションフォーラムからのコメントを次のように分類します。
- コンピューティング: コンプグラフィックス、 comp.os.ms-windows.misc、 comp.sys.ibm.pc.hardware, comp.sys.mac.hardware, comp.windows.x
- レクリエーション: 自動車、オートバイ、スポーツ野球、 記録.スポーツ.ホッケー
- 科学: 科学クリプト、科学電子工学、科学医学、sci.space
- 政治: talk.politics.misc, トーク.政治.銃、 トーク.政治.中東
- 宗教: talk.religion.misc, アルト無神論、社会宗教、キリスト教
- その他: その他
Communications Miningでは、プライベートなことで有名な通信データのみを使用しています。 再現性のため、また機械学習の研究文献で最も一般的に使用されているトピックモデリングデータセットであるため、ここでは20のニュースグループデータセットを使用します。 これは、トピックモデリングの 「Hello world」 と見なされます。
20のトピックでモデルをトレーニングします(つまり、 K = 20)このデータセットでは、トピックの数がすでにわかっています(ただし、一般的にはそうではありません)。 GloVeを使用して埋め込み行列Uを初期化します。
以下は、各トピックで学習された上位10の単語と、各トピックを最も可能性の高いトピックとして含むドキュメントの数です。
学習された上位の単語は、データセット内の実際のトピックとほぼ一致します。 トピック2 = talk.politics.guns, トピック13 = sci.space、 等。 ドキュメントごとに、トピックの割り当て確率を表示することもできます。いくつかのサンプルを以下に示します。 1 つのトピックに対する確率が高いドキュメントもあれば、複数のトピックが混在するドキュメントもあります。
例 1
ばかげているようですが、gifファイルを編集できるtgifや、gif形式との間で変換するためのさまざまなツールを見つけましたが、ウィンドウを開いてgifファイルを表示するだけのプログラムを見つけることができませんでしたその中に。 私はさまざまなFAQファイルを調べましたが、役に立ちませんでした。 アーカイブに潜んでいるものはありますか? 洗練されたものは何もありません。ただ「きれいな絵を見せる」だけですか? あるいは、gifの仕様を見つけることができれば、自分で書くのはそれほど難しいとは思いませんが、どこから仕様を探し始めるのかさえわかりません。 (まあ、実際には、私はアイデアを持っています-このニュースグループ。 ;-)取得、xv、バージョン3.0。 さまざまな形式の読み取り/表示/操作を行います。
例 2
あなたが紹介するゴールキーパーはクリント・マラルチュクです。 彼はその時セイバーズで遊んでいました。 その直前の彼のチームはワシントンキャピタルズでした。 彼は回復してプレーを続けていますが、私は彼の現在の所在を知りません。
例 3
ネットワールドでこんにちは、私たちは古いMac(SEとプラス)のラボを持っています。 すべての新しいマシンを購入するのに十分なお金がないので、高密度ディスクを持っている人々が私たちの機器を使用できるように、古いMac用にいくつかのスーパードライブを購入することを検討しています。 私はこの種のアップグレードで人々がどのような経験(良いか悪いか)をしたのか疑問に思っていました。 マレー
事前にデータセットについて何も知らなくても、データセットの概要をすばやく簡単に把握し、各ドキュメントがどのトピックに属しているかを特定し、類似したドキュメントをグループ化できることがわかりました。 教師ありタスクをトレーニングするために注釈付きデータも収集する場合は、トピックモデルの出力により、より多くの情報に基づいた視点から注釈付けを開始できます。
前のセクションで説明したトピック モデルは非常に便利ですが、特定の制限があります。
- トピックの数は事前に指定する必要があります。 一般に、正しい番号がどうあるべきかはわかりません。
- トピックの数が異なる複数のモデルをトレーニングし、最適なモデルを選択することは可能ですが、これにはコストがかかります。
- トピックの正しい数がわかっていても、学習したトピックが正しいトピックに対応していない場合があります。 図 1 のトピック 16 は、20 のニュースグループ データセットの実際のトピックのいずれにも対応していないようです。
- このモデルでは、トピックが互いにどのように関連しているかはキャプチャされません。 たとえば、図 1 にはコンピューティングに関するトピックが複数ありますが、これらが関連しているという考えは、モデルでは学習されません。
実際には、トピックの数が事前に不明であり、トピックが何らかの形で相互に関連していることが通常です。 これらの問題に対処する 1 つの方法は、各トピックをツリー内のノードとして表すことです。 これにより、トピック間の関係をモデル化できます。関連トピックは、ツリーの同じ部分に配置できます。 これにより、解釈がはるかに簡単な出力が提供されます。 さらに、モデルがデータから、必要なトピックの数とそれらが互いにどのように関連しているかを学習できる場合は、事前にこれを知る必要はありません。
これを実現するために、 ツリー構造化ニューラルトピックモデル(TSNTM)に基づくモデルを使用します。 生成プロセスは、ツリーのルートからリーフまでのパスを選択し、そのパスに沿ったノードを選択することによって機能します。 ツリーのパス上の確率は、二重リカレントニューラルネットワークを使用してパラメータ化されるスティックブレイクプロセスを使用してモデル化されます。
スティックブレークプロセス
スティックブレークプロセスを使用して、ツリーのパス上の確率をモデル化できます。直感的には、これには、最初は長さ1のスティックを繰り返し壊すことが含まれます。 ツリー内のノードに対応するスティックの比率は、そのパスに沿った確率を表します。
たとえば、図 2 のツリーで、各層に 2 つのレイヤーと 2 つの子があるとします。 ルートノードでは、スティックの長さは1です。 次に、それぞれ長さ0.7と0.3の2つの部分に分割されます。 次に、これらの各ピースは、木の葉に到達するまでさらに分解されます。 棒を折り続けることができるので、木は任意に広くて深くすることができます。
二重リカレントニューラルネットワーク
二重リカレントニューラルネットワーク(DRNN)を使用して、スティックブレークの比率を決定します。ルートノード h1 の非表示状態をランダムに初期化した後、各トピック k について、非表示状態 hk は次式で与えられます。
ここで、 hpar(k) は親ノードの非表示状態、 hk-1 は直前の兄弟ノードの非表示状態です (兄弟は初期インデックスに基づいて順序付けられます)。
ここで、 j∈{1,...,k−1} はノード k の前の兄弟です。 これらは、図 2 の緑色の値です。各リーフ ノードの値は、そのパスの確率です (各リーフ ノードへのパスは 1 つだけです)。
ツリーのパスに対する確率がわかったので、各パス内のノードに対する確率が必要です。 これらは、別のスティックブレークプロセスを使用して計算されます。 ツリーの各レベルで、隠れ状態 glは次式で与えられます。
これは、ツリーの同じレベルにあるすべてのノードが gl に対して同じ値を持つことを意味します。
レベルl,nlに割り当てられた残りのスティックの割合は、次式で与えられます。
水準 l,θl での確率は次式で与えられます。
経験的に、ツリー内の子ノードにとって最も可能性の高い単語は、意味的に親の単語とは無関係であることが時々わかりました。 これに対処するために、式2ではシグモイドを柔らかくするために温度を適用します。
実験では、ψ=0.1 に設定しました。 これにより、子ノードの確率質量がゼロ以外の場合、その親もゼロになる可能性が高くなります(子ノードが親と無関係になる可能性が低くなります)。
トレーニングと推論
トレーニング目標は式1と同じです。唯一の変更は、p(xw=vw|z) の指定方法です。 これは現在、次のように指定されています。
ツリー構造の更新
これまでのところ、ツリー構造は修正されています。 ただし、これはデータに基づいて学習してもらいたいと思います。 ツリーの正確な構造をハイパーパラメータとして指定することは、フラットなトピックモデルの場合のように、単にいくつかのトピックを指定するよりもはるかに困難です。 ツリーの一般的な構造を事前に知っていれば、トピックをモデル化する必要はないでしょう。 したがって、ツリー構造のトピックモデルの実際のアプリケーションでは、データから構造を学習できる必要があります。 これを行うには、ツリーへのノードの追加とツリーからの削除に 2 つのヒューリスティック ルールを使用します。 まず、各ノードでの総確率質量は、トレーニングデータのランダムなサブセットを使用して推定されます。 ノード k では、この推定値は次のようになります。
ここで、 d={1,...,D} はランダムに選択されたドキュメントのサブセットにインデックスを付け、Nd はドキュメント d の単語数です。 これらの推定値に基づいて、 すべてのI 反復の後:
- pk がしきい値を超えている場合、トピックを絞り込むためにノード k の下に子が追加されます。
- 累積合計 がしきい値より小さい場合、ノード k とその子孫は削除されます。
20 のニュースグループの結果
TSNTM は、上記の ETM のトレーニングに使用したのと同じ 20 のニュースグループ データセットで実行します。 ツリーを初期化して、各レイヤーに3つの子を持つ2つのレイヤーを作成します。 以下は、最終的なツリー構造、各トピックで学習された上位10の単語、および各トピックを最も可能性の高いトピックとして持つドキュメントの数です。
フラットなトピックモデルと比較して、ツリー構造のアプローチには明らかな利点があります。 ツリーはデータから自動的に学習され、同様のトピックがツリーのさまざまな部分にグループ化されます。 上位レベルのトピックはツリーの一番上にあります(例: 多くの文書に現れる有益でない単語は根本にあります)、より洗練された/特定のトピックは葉にあります。 これにより、図 1 のフラット モデル出力よりもはるかに有益で解釈しやすい結果が得られます。
TSNTMによって学習されたドキュメントの例と関連するトピック割り当て確率を以下に示します。
例 1
ラボ用のAppleOneカラースキャナーを受け取りました。 しかし、スキャンした写真をLaserWriter IIgで印刷するときに、妥当なスキャン出力を得るのに問題があります。 より高い解像度でスキャンしようとしましたが、画面上の表示が非常に見栄えがします。 しかし、印刷版は醜く出ています! これはプリンターの解像度機能によるものですか? それとも、より良い品質を得るためにトリックが必要ですか? それとも、画像を「きれいにする」ために何か(PhotoShopなど)を取得する必要がありますか? 私は任意の提案をいただければ幸いです。 前もって感謝します、-クリス
例 2
それは終わりました-セイバーズは今夜OTでブルーインズを6-5で破り、シリーズをスイープするために戻ってきました。 ブラッド・メイ(ラフォンテーヌが氷の上に横たわっている間に彼をセットアップした)による美しいゴールがそれを終わらせました。 フールは肩を負傷して試合を去り、ラフォンテーヌも強打された。しかし、セイバーズは一週間の休息をとるので、怪我は問題にならないはずです。 モントリオールはケベックを3-2で下し、第7戦に向かうようだ。ハブは最初の2つのピリオドを支配し、40分後に2-2の引き分けしか持たなかったのは不運でした。 しかし、3rdのブルネットの早いゴールがそれを勝ち取りました。 アイランダーズはレイ・フェラーロのゴールでシリーズ3回目のOTゲームに4-3で勝利した。キャップスは、2ndで3-0のリードを奪った後、単に崩壊しました。 アイルズの史上最高のプレーオフOT記録は現在28-7です。
例 3
Wergo Musicレーベルで20ドル未満でCDを入手できる場所を教えてください。
明らかに特定のトピック(最初のトピックなど)に分類されるドキュメントはリーフノードで高い確率を持ち、学習したトピック(3番目のトピックなど)のいずれにも明確に該当しないドキュメントはルートノードで高い確率を持ちます。
定量評価
トピックモデルは、定量的に評価するのが難しいことで有名です。 それにもかかわらず、トピックの一貫性を測定するための最も一般的な指標は、 正規化点ごとの相互情報量(NPMI)です。 各トピックの上位 M 語を取ると、単語 wi と wj の各ペアの結合確率 P(wi,wj) が周辺確率 P(wi) と P(wj) と比較して高い場合、NPMI は高くなります。
確率は経験的カウントを使用して推定されます。
NPMI | |
---|---|
ETM | 0.193 |
TSNTM | 0.227 |
これらの結果は、TSNTMがETMよりも一貫性のあるモデルであるという定性的結果を裏付けています。
TSNTMは直感的で解釈しやすい結果を生成しますが、学習したモデルにはまだ弱点があります。 たとえば、図 3 では、政治と宇宙に関連するトピックが同じ親ノードの下にグループ化されています。 これは不合理ではないかもしれませんが、彼らの親ノードは宗教に関連しており、それは間違いなく首尾一貫していません。 別のより微妙な例は、トピック1.3がハードウェアとソフトウェアの両方に関連するコンピューティングトピックをグループ化することです。おそらくこれらは分離する必要があります。
これらの問題は、これまでにトレーニングされたモデルが(非コンテキストの)GloVe埋め込みに基づいているためであると仮定します。 これにより、異なる文脈で異なる意味を持つ単語の曖昧さを解消することが困難になる可能性があります。 過去数年間で、Transformerベースのモデルは、テキストの有益で文脈的な表現を学習するための最先端のパフォーマンスを達成しました。 トランスフォーマーの埋め込みをTSNTMに組み込むことを目指しています。
all-mpnet-base-v2
バリアントを使用します。これは、多くの文レベルのタスクで一貫して高いスコアを達成するためです。
推論モデルに追加された SBERT 埋め込みを除き、前のセクションの TSNTM と同一のモデルをトレーニングします。 繰り返しになりますが、以下は各トピックで学習された上位10の単語と、各トピックを最も可能性の高いトピックとして持つドキュメントの数です。
SBERT 埋め込みを使用した TSNTM は、GloVe のみのモデルの一貫性のない問題のいくつかに対処しているようです。 宗教、政治、暗号化のトピックは、同じ親トピックの下にグループ化されるようになりました。 しかし、GloVeのみのモデルとは異なり、この親はより一般的なトピックになり、その上位の単語は意見を表明する人々に関連しています。 コンピューターのハードウェアとソフトウェアのトピックは分割され、スペースはツリーの独自の部分にあります。 NPMIはまた、SBERT埋め込みを持つモデルがより一貫性があることを示唆しています。
NPMI | |
---|---|
ETM | 0.193 |
TSNTM (GloVe のみ) | 0.227 |
TSNTM (GloVe + SBERT) | 0.234 |
トピックモデルは、注釈を付けずにデータセットを高レベルで理解するための優れた方法であることを示しました。
- 「フラット」トピックモデルは最も一般的に使用されますが、弱点があります(例: 出力は解釈するのが最も簡単ではなく、事前にトピックの数を知る必要があります)。
- これらの弱点は、関連するトピックをグループ化し、データからトピック構造を自動的に学習するツリー構造モデルを使用することで対処できます。
- モデリングの結果は、Transformer の埋め込みを使用することでさらに改善できます。
Communications Mining を会社で試してみたい場合は、 試用版 に登録するか 、デモをご覧ください。