1. 概要

マルコフ連鎖は、最も複雑なリアルタイムプロセスでさえも記述できる基本的な概念です。 何らかの形で、マルコフ連鎖として知られるこの単純な原理は、チャットボット、テキスト識別子、テキスト生成、および他の多くの人工知能プログラムによって使用されます。

このチュートリアルでは、この概念を理解することがいかに簡単であるかを示します。 主に、マルコフ理論を使用して特定の学習方法を取得します。これにより、意味のある会話を実行できるチャットボットを作成できます

2. マルコフ連鎖とは何ですか?

これは、統計から生物学、経済学から物理学まで、そしてもちろん、テキスト生成やチャットボットなどの機械学習で使用される概念です。

2.1. マルコフ連鎖の基本概念

この概念を理解するために、簡単な例から始めましょう。

ハンバーガー、ピザ、ホットドッグの3種類の料理しか提供していないレストランがあるとしましょう。ただし、これらは奇妙なルールに従います。特定の日に、これら3つのアイテムのうち1つだけを提供し、昨日何を提供したかによって異なります。 。 言い換えれば、彼らが今日何を提供しているかを知っていれば、彼らが明日何を提供するかを予測する方法があります。

したがって、たとえば、今日がハンバーガーの日であるとすると、明日はピザの日になる可能性があります。これは、上の画像では重み付きの矢印で表されています。

矢印は現在の状態から始まり、将来の状態を指しています。 上の図は単なるマルコフ連鎖です。

2.2. マルコフ連鎖の性質

マルコフ連鎖のいくつかの特性について説明しましょう。 まず、最も重要な特性は、将来の状態が現在の状態にのみ依存し、の前のステップには依存しないことです。 数学的には、{n}の前にあるステップの完全なシーケンスではなく、ステップのみに依存すると言えます。

   

もう少し理解してみましょう。レストランが1日目にピザ、2日目にハンバーガー、3日目にピザを提供したとします。 では、4日目にホットドッグを提供する確率を見てみましょう。 さて、3日目を見るだけでいいのですが。 これはマルコフ連鎖の中心であり、マルコフ性として知られています。

次に、2番目の重要なプロパティは、任意の状態からの出力矢印の重みの合計がに等しいことです。 それらは確率を表すため、これは真実である必要があり、確率が意味をなすためには、それらを合計する必要があります。

一見、これはあまり印象的ではないように思われるかもしれませんが、よく見ると、これらのプロパティにより、複雑な現実の問題に取り組んでいる間、私たちの生活がはるかに楽になることがわかります。 それでは、チャットボットなどの実際の問題でこの概念を使用する方法を見ていきましょう。

3. チャットボットのマルコフ連鎖

ここでは、特に応答状況でユーザーセンテンスがある場合に、人工知能(AI)の開発に関する上記の情報の一部をどのように使用できるかを探ります。 次に、おそらく、このマルコフ理論を使用して、チャットボットから取得できる特定のタイプの学習方法と特定のタイプの応答を取得できます。

それを達成するために、単語をつなぐ方法と、これらの単語と単語の連鎖を使用する際にさまざまな理由で統計を使用する方法を説明することから始めます。

3.1. チェーンワード

特に一般的な使用におけるマルコフ連鎖の例があります。 たとえば、メッセージを送信するときや単語を入力するときに、一部のプログラムは、スペルを支援するために実際に入力しようとしている単語の種類を推測するだけでなく、次に来る可能性のある単語を予測します。

ですから、電話を使ってたくさんのテキストを送るとき、いつも「ボブ」という男に挨拶するために「こんにちは」のような一言を言っていました。 つまり、テキストメッセージを送信するたびに、「こんにちはボブ」と繰り返します。 したがって、電話プログラムは、「こんにちは」と言うときはいつでも、「ボブ」という単語が続く可能性が高いことを学習します。 統計的には、電話にそうするように教えたので、「ボブ」という単語は常に「こんにちは」の後に続きます。

正確な方法と不正確な方法があるため、統計を作成する方法はさまざまです。 ここで、マルコフ連鎖の原理をさらに深く掘り下げてみましょう。 単語の連鎖に関して比率が何であるかについてのアイデアを与えるためのいくつかの例を次に示します。

つまり、比率は1つのキーワードに続く1つの単語を意味し、比率は2つのキーワードに続く1つの単語を意味し、比率は1つのキーワードに続く2つの単語を意味します。

ここで、比率がのマルコフ連鎖を使用してみましょう。 次の文を使用します「ピザが2つ欲しい、ハンバーガーが欲しい」。  そこで、「欲しい」をキー、「2つ」を次のように(比率2:1)、「2つ欲しい」をキー、「ピザ」を次のように始めます。 次の単語は、特定の単語のペアに対して複数の後続単語を持つことができるため、多くの「アイテム」を保持する任意のコレクションである可能性があります。 この例では、「I want」を2回、次に「two」、次に「a」を指定します。 したがって、最終的には、次のようなテーブルが作成されます。

3.2. マルコフ連鎖チャットボットはどのように機能しますか?

マルコフ連鎖チャットボットによって生成されたテキストは必ずしも意味がありませんが、読むのは楽しい場合があります。チャットテキストを入力(トレーニング用)として使用しながら単語を連鎖させるのと同じ原理です。 この簡単なチャットテキストを例として使用して、手順に分けてみましょう。

ボット: THREE DAYSレストランへようこそ!

ユーザー:こんにちは。

ボット:こんにちは! 今日はハンバーガーの日です! 注文しますか?

ユーザー:はい! ワッパーハンバーガーが欲しいです。

ボット:食事にしますか?

使用:はい!

ボット:ワッパーコンボミールを選択しました! どこで注文を受け取りますか?

単語の連鎖と同様に、マルコフ連鎖チャットボットは、次のように1つの文をキーとして使用し、別の文を使用します。 それで、「こんにちは」から始めます。 キーセンテンスとして「こんにちは! 今日はハンバーガーの日です! 注文しますか?」 次のように、「はい! ワッパーハンバーガーが欲しいです。」 と「それを食事にしますか?」 次のように。 つまり、マルコフ連鎖を使用してユーザーへの応答を生成しようとしています。

フォローセンテンスは、特定のキーセンテンスに対して複数のフォローセンテンスを持つことができるため、多くの「アイテム」を保持する任意のコレクションにすることができます。 たとえば、ユーザーが「こんにちは」と言った場合です。 ボットは「こんにちは! 今日はハンバーガーの日です! 注文しますか?」、「こんにちは! どのように私はあなたを助けることができますか」または単に「こんにちは! 今日の割引オファーを見たいですか?」 ここに、キーセンテンスの後に続く各フォローセンテンスの確率を計算するユーティリティがあります。 したがって、単純に、候補のフォローセンテンスの中で最も確率が高いフォローセンテンスをユーザーキーセンテンスの応答として選択できます。

最後に、上記のチャットテキストに基づいて、次のようなテーブルが作成されます。

キーセンテンスに続く1つのセンテンスだけを使用する必要はないことを覚えておいてください。 次の文として2つまたは15の文を使用できます。 違いは、「より長い」ビルディングブロックを使用すると、チャットボットがより正確に表示されることです。 これは、入力が大きいほど、キーセンテンスのフォローセンテンスが多くなり、「よりスマートなボット」が作成されるため、テキストを追加してボットを「トレーニング」できるためです。

4. 結論

このチュートリアルでは、マルコフ連鎖の基本概念と、その原理を理解することで、有意義な会話を続けることができるスマートボットの開発にどのように役立つかについて説明しました。 チャットボットのマルコフ連鎖の原理とその仕組みについても説明しました