ae-8. 自然言語処理(問答,要約,テキスト生成,単語の特徴ベクトル,単語の類似度)

454 Views

January 29, 23

スライド概要

トピックス:自然言語処理, 単語の特徴ベクトル, Word2vec, Transformer, ディープラーニング, 人工知能

ディープラーニング(スライドとプログラム例,Python を使用)(全15回)
https://www.kkaneko.jp/ai/ae/index.html

金子邦彦研究室ホームページ
https://www.kkaneko.jp/index.html

profile-image

金子邦彦(かねこくにひこ) 福山大学・工学部・教授 ホームページ: https://www.kkaneko.jp/index.html 金子邦彦 YouTube チャンネル: https://youtube.com/user/kunihikokaneko

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

8. 自然言語処理(問答,要約, テキスト生成,単語の特徴ベク トル,単語の類似度) (ディープラーニング,Python を使用) (全15回) https://www.kkaneko.jp/cc/ae/index.html 金子邦彦 1

2.

問答 リカレントニューラルネットワークは,回帰により,過去の情報を テキスト 保持する.時系列データなどのデータの並びを扱う能力を持つ 質問 要約 回帰 答え 保持する リカレントニューラルネットワークは,回帰により,過去の情報を 保持する.時系列データなどのデータの並びを扱う能力を持つ 要約 データは回帰する能力がある. テキスト生成 リカレントニューラルネットワークは,回帰により,過去の情報を 保持する.時系列データなどのデータの並びを扱う能力を持つ 生成 リカレントニューラルネットワークは,回帰により,過去 の情報を保持する.時系列データなどのデータの並びを扱 う能力を持つ.線形回帰モデル(pn-model)は,過去のデータが 現在から何百年後かに再度出現する.つまり, AIが生成する結果の例 2

3.

機械学習 • 学習による上達の能力 • 訓練データを使用して,学習を行う 3

4.

フィードフォワードとリカレントニューラルネッ トワーク 回帰 フィードフォワード ネットワーク リカレントニューラルネッ トワーク ある層の出力を,次の層が受 け取る 回帰により,前回の実行時での 結果の一部が,次の実行に反映 される. 4

5.

リカレントニューラルネットワークの動作イメー ジ① 保持 使用 デ ー タ の 並 び 5

6.

リカレントニューラルネットワークの動作イメー ジ② 保持 前回の実行時での 結果も使用 デ ー タ の 並 び 使用 6

7.

リカレントニューラルネットワークの動作イメー ジ③ 保持 前回の実行時での 結果も使用 デ ー タ の 並 び 使用 7

8.

リカレントニューラルネットワークの応用 • 時系列データを用いた予測 データの並びを扱う • 手書き文字認識 筆記の動きを扱う • 音声認識 音の並びを扱う • 「言葉」の理解,翻訳,テキスト生成,プログラ ム生成 単語の並びを扱う 8

9.

アウトライン 番号 項目 8-1 8-2 8-3 8-4 自然言語処理 単語の特徴ベクトル 自然言語を扱うニューラルネットワーク 演習 各自,資料を読み返したり,課題に取り組んだりも行う 9

10.

全体まとめ • 自然言語処理で行うこと:問答,要約,テキスト 生成などさまざま. • 語の類似性を扱うため: 単語の特徴ベクトル ・・・ 単語を数値化(1つ の単語を複数の数値の組で置き換えたもの) 単 語 数値化 iPhone 多数の数値の組 • 文章は長い.単語の順が変わっても同じ意味とい うこともある: 文章全体を単語の列として扱う.2017年発表の Transformer などの技術がある. 10

11.

8-1. 自然言語処理 11

12.

自然言語処理 • 人間の言葉(日本語や英語など)を,コンピュー タが処理することを,自然言語処理という • 人間の言葉を理解できる能力をもつアプリやサー ビスの制作に役立つ 12

13.

「明日の天気は」で検索 検索結果 インターネットでの検索では,人間の言葉を使うこ とが当たり前に 13

14.

人間の言葉を理解し, 曲をかけたり,電気製品を制御したり するスマートスピーカー 14

15.

自然言語の処理の例 • • • • • • • • • 問答 要約 テキスト生成 分類 翻訳 欠損の補充 文章の類似度 人間の言葉として正しいか正しくないかの判定 文法に関するもの(品詞,係り受け) など 15

16.

翻訳(日本語から英語,英語から日本語) DeepL 翻訳ツール https://www.deepl.com/ja/translator 16

17.

翻訳 ワード,パワーポイントファイルの中から, 文字のデータを取り出すことも当たり前に 翻訳結果 元のパワーポイントファイル DeepL 翻訳ツール https://www.deepl.com/ja/translator 17

18.

文章からの画像の合成 I like chocolate 元の文章 AI が生成した画像 DALL-E mini のオンラインデモ https://huggingface.co/spaces/dalle-mini/dalle-mini 18

19.

まとめ • 人間の言葉(日本語や英語など)を,コンピュータが 処理することを,自然言語処理という • 自然言語処理には,さまざまな種類がある 主なもの • • • • • • • • • 問答 要約 テキスト生成 分類 翻訳 欠損の補充 文章の類似度 人間の言葉として正しいか正しくないかの判定 文法に関するもの(品詞,係り受け) 19

20.

8-2. 単語の特徴ベクトル 20

21.

【自然言語処理の課題①】 語の類似性を扱うこと 私の母は親切だ 私の母は優しい 私の母は思いやりがある これらの単語は類似しているということを、 データをもとに裏付けること自体も課題 21

22.

単語を数値化し,単語の特徴ベクトルを得ている 単語 単語 iPhone iPad 数値化 多数の数値の組 (ここでは 300個の数値) 数値化 多数の数値の組 (ここでは 300個の数値) 22

23.

数値と距離 9 10 近い (距離: 1) 100 遠い (距離: 90) 23

24.

ベクトルと距離 複数の数値の組(ベクトル)で考えることもある 遠い 10, 6 近い 5, 5 4, 4 1つの点が2個の数値の場合 24

25.

単語の特徴ベクトル • 単語の特徴ベクトルは,単語を数値化したもの このとき,複数の数値の組(ベクトル)を考える • 意味の近い単語は近くになるようにする。 みかん バス りんご 25

26.

単語の特徴ベクトル どうやって,コンピュータが単語の特徴ベクトルを 得るか? 【分布仮説】 同じ文脈で出現する単語は、類似する意味を持つ みかんは甘い りんごは甘い みかんを食べた りんごを食べた バスは速い バスを探した 互いに 同じ文脈 違う文脈 Harris, Z. (1954). Distributional structure. Word, 10(23): 146-162. 26

27.

ヒエログリフの ??? の単語は,何と似ているか? (??? の単語の意味は、実は dog である) cat, pig と傾向が似ている 値は、2つの単語の共起頻度(共起する回数) Stefan Evert, Marco Baroni and Aslessanddro Lenci, Distributional Semantic Models, Tutorial as NAACL-HLT 2010, 2010. http://wordspace.collocations.de/lib/exe/fetch.php/course:acl2010:naacl2010_part1.slides.pdf 27

28.

どうやって,コンピュータが単語の特徴ベクトルを 得るか? • 分布仮説,多数の文書データを使用 • 実在の文書データをそのまま利用できる。 • 特別な準備は不要(「国語辞典」を使うというよ うな考え方ではない) 28

29.

Word2vec • 分布仮説,多数の文書データを使用して,単語の特 徴ベクトルを求める1手法.2013年発表 ① Skip-Gram: 中心の単語から周辺の単語を予測するモデル ② CBoW (continuous bag-of-words): 周辺の単語から中心の 単語を予測するモデル ①あるいは②を用いる.多数の文書データを用いて,予測 精度を上げる.その結果,単語の特徴ベクトルが求まる. 29

30.

Word2vec • 意味の近い単語は近くになる • 対立する意味の言葉の中間地点に、中間の意味の 単語が来るように 「angry」と「pleased」の中間地点に「unhappy」 Joo-Kyung Kim and Marie-Catherine de Marneffe. 2013. Deriving Adjectival Scales from Continuous Space Word Representations. In Proceedings of the 2013 Conference on Empirical Methods in Natural Language Processing, pages 1625–1630, Seattle, Washington, USA. Association for Computational Linguistics. 30

31.

まとめ • 自然言語処理では,語の類似性を考慮することが大切 • 単語の特徴ベクトルは,単語を数値化したもの このとき,複数の数値の組(ベクトル)を考える 単語 iPhone 多数の数値 数値化(ここでは 300個の数値) • Word2vec など,分布仮説,多数の文書データを使用 して,単語の特徴ベクトルを求める方法がある 31

32.

8-3. 自然言語を扱う ニューラルネットワーク 32

33.

【自然言語処理の課題①】 語順が違っても扱えること 今日は晴れだが、明日も晴れだ。 明日は晴れだが、今日も晴れだ。 同じ意味の文章 33

34.

自然言語を扱うニューラルネットワーク 【種類】 • リカレントニューラルネットワーク,LSTM やその 改良版 • Transformer (2017年発表) など 34

35.

自然言語を扱うニューラルネットワーク <文章> = 単語1 単語2 単語3 単語1 単語2 単語3 ニューラル ネットワーク 特徴 特徴 特徴 ベクトル ベクトル ベクトル 35

36.

自然言語を扱うニューラルネットワーク <文章> = 単語1 単語2 単語3 単語1 単語2 単語3 ニューラル ネットワーク 1 番 目 の 出 力 特徴 特徴 特徴 ベクトル ベクトル ベクトル 36

37.

自然言語を扱うニューラルネットワーク <文章> = 単語1 単語2 単語3 単語1 単語2 単語3 ニューラル ネットワーク 2 番 目 の 出 力 特徴 特徴 特徴 ベクトル ベクトル ベクトル 37

38.

自然言語を扱うニューラルネットワーク 単語1 単語2 単語3 ニューラル ネットワーク 特徴 特徴 特徴 ベクトル ベクトル ベクトル 順々に処理される (文章が長いときも同じ) 3 番 目 の 出 力 38

39.

自然言語を扱うニューラルネットワーク • 翻訳など,多くの自然言語処理を AI で行うときは, 教師あり学習である 文章 (単語の列) プログラム 列 コンピュータ 訓練データ 39

40.

Transformer リカレントニューラルネットワークの欠点を克服す るものとして,Transformer が 2017年提案された • 列を入力とし,列を出力とする点などは,リカレ ントニューラルネットワークと同じ • リカレントニューラルネットワークの欠点を克服 するため,離れた単語間に依存関係を直接扱う Attention の仕組みを導入 • リカレントニューラルネットワークにあった「回 帰」の仕組みは廃止 自然言語処理で,リカレントニューラルネットワークや LSTM を使うと, 保持できる情報が少なすぎるのが欠点. (単語の特徴ベクトル1つ分の情報しか保持できないという考え方も) 長い文章を扱うのが困難であったり,精度が出なかったりする. 40

41.

全体まとめ • 自然言語処理で行うこと:問答,要約,テキスト 生成などさまざま. • 語の類似性を扱うため: 単語の特徴ベクトル ・・・ 単語を数値化(1つ の単語を複数の数値の組で置き換えたもの) 単 語 数値化 iPhone 多数の数値の組 • 文章は長い.単語の順が変わっても同じ意味とい うこともある: 文章全体を単語の列として扱う.2017年発表の Transformer などの技術がある. 41

42.

8-4. 演習 42

43.

Google Colaboratory の使い方概要 ① 実行 コードセル Google Colaboratory ノートブック コードセルの再実行や変更には, Google アカウントでのログインが必要 43

44.

Google Colaboratory の使い方概要 ② 実行 コードセル テキストセル 実行 コードセル • WEBブラウザでアクセス • コードセルは Python プログラム. 各自の Google アカウント でログインすれば, 変更,再実行可能 一番上のコードセルから順々に実行 44

45.

① 単語の特徴ベクトル,単語の類似度 1. 使用するページ: https://colab.research.google.com/drive/1E86OSq90AyI1zULE6hNoVmpCJ_7fCR8?usp=sharing 2. 必要な事前知識 • 単語の特徴ベクトルは,単語を数値化したもの このとき,複数の数値の組(ベクトル)を考える • Word2vec など,分布仮説,多数の文書データを使用して, 単語の特徴ベクトルを求める方法がある 3. 各自で行うこと 各自で説明、ソースコード、実行結果を確認する. 45

46.

② 自然言語処理(問答、要約、テキスト生成) (Transformer を使用) 1. 使用するページ: https://colab.research.google.com/drive/1L9n5E0_BTRy1q0jE1 I2xT3MTuSpceVSY?usp=sharing 2. 必要な事前知識 Google Colaboratory の使い方 3. 各自で行うこと • コードセルの1-③,2-③,3-④を書き換えることに より、「自分の考えた文章」で、問答、要約、テキスト生 成を考えてみること • 必ずしも成功するわけではない • いろいろ試し「どういう場合には成功しそうか」、「どう いう用途で本当に役に立ちそうか」を考察してみる 46