LoginSignup
69
79

More than 5 years have passed since last update.

自然言語処理を用いたチャットボット開発の流れ

Posted at

概要

自然言語とは、日本語や英語などの我々が普段使う言語のこと
自然言語処理(NLP Natural Language Processing)とは、自然言語をコンピュータで処理する技術のこと

使われているところ

・検索エンジン
・機械翻訳
・予測変換
・スパムフィルタ
・音声アシスタント
・小説の執筆
・対話システム
など

自然言語処理の技術

形態素解析

・文書を単語に分割する技術

word2vec

・文書内での関係性を踏まえて、単語をベクトル化する技術

リカレントニューラルネットワーク(RNN)

・時系列を扱うのが得意なニューラルネットワークの一種

seq2seq

・RNNをベースとした、文章を生成可能なモデル

チャットボット開発の流れ(機械学習型)

前処理

大量の対話文コーパスを用意する
コーパスは大きいほどいいが、学習に時間がかかるのが難点
以下は収集元の例
・研究所や大学が提供するコーパス
・青空文庫などにある著作権フリー文庫
・SNSのログ
・顧客とのやりとりのログ
データがデジタルであれば様々な文書からコーパスを収集することができる

学習過程

RNNなどのニューラルネットワークを構築する
ニューラルネットワークに対話文コーパスを学習させる

システム構築

学習済みのニューラルネットワークを使って、チャットボットのシステムを構築する

チャットボットのプラットフォーム

Colaboratoryに構築
コマンドラインに構築
サーバーに構築し、APIとして呼び出す
スマホアプリとして
音声認識、発生が可能なIoT機器に
Dialogflowなどの既存のサービスを使うのもあり

ニューラルネットワーク

RNN Recurrent Neural Networkとは

時系列データを扱うニューラルネットワーク
中間層の出力が再帰的に行われる

キーワード

バックプロパケーション

順伝搬:予測
逆伝搬:学習

one-hot表現

分散表現

word2vecのニューラルネットワーク

CBOW(continuous bag-of-words)
skip-gram

doc2vecのニューラルネットワーク

dmpv(distributed memory)
DBOW(distributed bag-of-words)

RNNで扱う時系列データの例

文書、音声データ、音楽、株価、産業機器の状態など

RNNは再帰型ネットワークともよばれる

中間層の再帰入力を行うことで過去の記憶を保持することができる

勾配爆発

学習時に相をさかのぼるにつれて勾配が大きくなりすぎる問題
勾配クリッピングが有効

勾配消失

勾配が小さくなりすぎる問題
LSTMが有効

LSTM(Long Short-Term Memory)は、RNNの一種

通常のRNNでは、難しい長期の記憶保持が得意
LSTM層では「ゲート」とよばれる仕組みを導入。これにより、過去の情報を「忘れるか忘れないか」を判断しながら、必要な情報だけを次の時刻に引き継ぐことができる

GRU(Gated Recurrent Unit)は、LSTMを改良したもの

SLTMと比べて、全体的にシンプルな構造で、計算量が少ない
入力ゲートと忘却ゲートが統合され、「更新ゲート(Update gate」になっている
記憶セルと出力ゲートはない
値をゼロにリセットする「リセットゲート(Reset gate)」

Seq2Seqとは

系列(sequence)を受け取り、別の系列へ変換するモデル
自然言語処理でよく利用される
文章などの入力を圧縮するencoderと、出力を展開するdecoderからなる
機械翻訳、文章要約、対話に使われる

Seq2Seqによる対話文の生成

大量の対話文コーパスを用意
encoderに文章を入力すると、decoderから返事が出力されるように、Seq2Seqに学習させる
訓練では、ある時刻におけるdecoderの出力が、次の時刻の入力に近づくよう学習を行う(教師強制)
訓練済みのモデルを使用する際は、ある時刻におけるdecoderの出力を次の時刻におけるdecoderの入力として使う

チャットボットの未来

チューリングテスト

人工知能の父の一人、アランチューリングによって考案された、ある機会に知性があるかどうかを判定するためのテスト
会話をしている姿の見えない相手が、機械化人間に判別できなければ、このテストにパスしたことになる

チューリングテストをパスするためには?

訓練のフェーズのみだけではなく、会話中にも学習する
遠い昔の記憶を保持し、必要に応じて取り出す仕組み
バックプロパケーションに代わる、学習の仕組み
ニューラルネットワーク同士が会話し、学習する仕組み
ニューラルネットワークが「内部世界」を持つ
機会に意識を持たせる「人工意識」

出典元

こちらの記事は以下の学習サイトを元にして作成しました
https://www.udemy.com/ai-nlp-bot/

69
79
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
69
79