Slide 1

Slide 1 text

自然言語処理 シリーズAI入門 どんなことができるのか? © FSCjJh3NeB 2021 (※ 但し画像を除く) 初版:2021.02.03 改訂:2023.10.20

Slide 2

Slide 2 text

n ここまで,NNを含む機械学習を見てきた u 機械学習は結局,数値化された入力(特徴量)を うまく分離したり学習する仕組みだった p 基本的には 距離や誤差を最小化する,というもの u 知能の本質が「ことば」にあるとする p 「ことば」=記号とは,同値類での世界の分類だった p ∴ “うまく分類できているのだから,知能です”とは言える u でも,もう少し「ことば」を直接扱えないのか? これは果たして知能なのか??? ことば を 扱う技術: 自然言語処理 2

Slide 3

Slide 3 text

自然言語処理: Natural Language Processing; NLP n こんな感じで普通に書かれた文書を処理する技術 n 何が嬉しいのか? u センサ などから取得できる “数値データ” は 機械学習の手法をほぼそのまま適用することができる u 一般に人間が触れるデータはアンケートの自由記述, 営業日報など,自然言語で記述!(非定型データ) u 機械学習等のツールが使えない… 3 自然言語処理の出番!

Slide 4

Slide 4 text

自然言語処理の様々な技術 n 形態素解析 :文章を単語レベルに分解する n 固有表現抽出 :固有名詞などを取り出す n トピック抽出 :文書群から話題(トピック)を取り出す n 構文解析 :係り受けなどの構文を解析する n 文章要約 :長い文章から重要そうなものを取り出す n 機械翻訳 :ある文章を他言語等に自動翻訳する n 情報検索 :情報を検索する… n 質問応答 :質問文に対応する答えを検索等して返す n 文章生成 :任意の単語等に関連する文章を生成する n 音声認識 :発話内容を文字に書き起こす などなど… 4

Slide 5

Slide 5 text

自然言語処理の概要 n よくあるデータマイニングの流れ u 1.形態素解析により単語に分割 u 2.何らかの手法で数値データ化 u 3.機械学習の手法を用いて分析 5

Slide 6

Slide 6 text

NLPの基本戦略 n ことば を 数値 に置き換える u 機械学習 や NN の回を通じて,便利な手法を見てきた p 特徴量として数値を受け取り,あとは誤差を最小化するよう調整 u ことば を 数値 に置き換えられれば,同じようにいける p 単語それぞれを“次元”として捉えることで,数値化 p 自然言語に対してもいろいろな数値解析手法が適用可能に! 6 文書1 文書2 み,み,み,り み,み,り,り,り みかん りんご 文書1 文書2 “みかん” と “りんご” の2語で構成される 文書があったとすると…

Slide 7

Slide 7 text

n 遺伝性自己免疫疾患 u 「遺伝性」「自己免疫」「疾患」? n すもももももももものうち u 「すもももももももも」「の」「うち(家)」? n 仲里依紗 u 「仲里」「依紗」? 形態素解析 n 日本語は切れ目がないので,文章をどこで切り分けるか 別途考える必要がある 形態素解析 けいたいそかいせき 7 単語 分割 すもももももももも? 代表的ツール;MeCab, Juman, Chasen

Slide 8

Slide 8 text

MeCabによる形態素解析の例 8

Slide 9

Slide 9 text

係り受け解析 n 黒い目の大きな女の子 u 「色黒で,目が大きい,女性」の「子供」? u 「目が黒くて」「大きな女性」の「子供」? u 「黒目が大きい」「女子」? u 「目が黒くて」「大きな女子」? n 各単語がどこに結びつくかで意味が異なる u 単語の間の関係性=係り受け関係 代表的ツール;Cabocha 9

Slide 10

Slide 10 text

CoboChaによる係り受け解析の例 10

Slide 11

Slide 11 text

CoboChaによる係り受け解析の例 https://qiita.com/naoyu822/items/ 9d7a83879c161573f63c ※ 一見すると文法的に解析が難しいものの解析例であって,記述内容 や 著者の人格 等と 文法的な難しさ は独立です。 11

Slide 12

Slide 12 text

文章の類似度 n 文書間の類似度をどう測るか u 数値に変換できたので距離も計算できるが,問題も p 論理的には 0 から 無限 の範囲の値になる,など 12 ここの角度=類似度! cosを取ったら,0(直行)〜1(一致)にできて&多次元でもいけて便利 実数値しか取らないので,ベクトルは第1象限のみ=0-90度までしかない 文書1 文書2 み,み,み,り み,み,り,り,り みかん りんご 文書1 文書2 cos類似度 という

Slide 13

Slide 13 text

ベーシックな類似度ではダメな例 n 奥さんのバースデーにケーキを買って帰った u 奥さん,バースデー,ケーキ,買う,帰る n 妻の誕生日に苺ショートを求めて帰宅した u 妻,誕生日,苺,ショート,求める,帰宅,する n 〆切までがショートな質問への回答を求めた u 〆切,ショート,質問,回答,求める 13 1番目と2番目の類似度はゼロ 2番目と3番目はそこそこ類似

Slide 14

Slide 14 text

分散表現 n 深層学習の自己符号化学習を活用して, 言葉の「意味」的な近さを表現できる技術 u 従来の手法では,「みかん」と「ミカン」は独立したものとして 扱うか,人力で辞書を作って近さを表現する必要 u 分散表現を使うと,「みかん」と「ミカン」「オレンジ」「柑橘 類」を似たようなものとして学習し,数値的に表現可能 n 考え方 u ある単語の周りに出てくる単語を学習して穴埋め問題を解く p 「大学の構内に入るとXXが歩いてきたので,声をかけてみた。」 p XX= 友達 30%,女の子 30%,先生 20%,猫 10%,机 0%… 14 代表的ツール;Ward2Vec, FastText,BERT

Slide 15

Slide 15 text

分散表現の計算方法 n 前頁では “穴埋め問題を解く” とのみ説明 u 実際には,CBOW,Skip-gram の2種類 u CBOW: Continuous Bag of Words p 与えられた 単語セット に 関連する単語 を探す • 朝,ご飯,XXXX,食べる ← XXX を探す u Skip-gram p 与えられた 単語 に 関連する単語セット を探す • サンドイッチ ← 関連しそうなあれこれを探す 15

Slide 16

Slide 16 text

単語 から 文書 へ n 文書についても分散表現の算出手法がいくつか存在 n 単純なのは “単語の分散表現” を 平均化したもの u 文書中の単語数が同程度で,似た単語が使われる文章であれば, その単語分散表現の平均も似ていて,近くに配置されるはず 16 ミカン,ミカン, リンゴ,スイカ みかん,みかん, りんご,バナナ 似ていない 分散表現を⽤いない場合 (共通する記号がない) ミカン,ミカン, リンゴ,スイカ みかん,みかん, りんご,バナナ 似ている 分散表現を⽤いた場合 ミカン と みかん, リンゴ と りんご は 似た概念

Slide 17

Slide 17 text

分散表現を用いた分析プロセス例 17 動物 会議 計算機 1. 対象文書の収集 2. 対象文書の数値化 3. クラスタリング 4. クラスタごとの頻出語抽出 5. クラスタの解釈(ラベリング) 6. 文書へのラベリング (クラスタ数は人間が指定) (本作業は人間が実施) (類似するものを近くに配置) fasttext k-means ─ 分散表現と類似度を用いたクラスタリング ─

Slide 18

Slide 18 text

分散表現+COS類似度 n 分散表現では単語を300次元などの高次元空間にマップ u 似てそうな単語は近くに配置 n 単語それぞれを独立次元と考えず,分散表現の空間で COS類似度を取ると,より良い感じに類似度が出せる 18 みかん オレンジ 従来手法 分散表現 みかん オレンジ ぜんぜん違う 無関係 似ていそう 関係がある

Slide 19

Slide 19 text

この類似度でもダメな例 n 犬が人を噛む u 犬,人,噛む n 人が犬を噛む u 人,犬,噛む 19 類似は100%! 順序,コンテキストで 意味は変わる コンテキストを どう捉えるか???

Slide 20

Slide 20 text

分散表現 (進化版) n 分散表現により,「みかん」と「ミカン」は同じようなもの …という表現は可能に u 「みかん」「ミカン」それぞれの座標を設定 n 細胞核,原子核,話の核心,核の傘… u おなじ「核」だが,座標値は一つで良いか? u 同じ語でも文脈に応じて,座標(意味)が異なるはず n 同じ単語でも,文脈によって異なる座標 u 文脈(コンテキスト)も考慮した,頭の良い表現に 20 具体的な手法は,Word2Vec や fastText 具体的な手法は,GloVe や BERT 将来補足

Slide 21

Slide 21 text

類似度計算の課題 n “この論文と似たのを探してきてちょうだい” u そう言って,教授が 101本の論文 を渡してきた… p 1本が探す元になる論文,残り100本が対象 u どうやって,課題をこなす??? n 当然だが,100本全部見ないといけない u フレーム問題と同じく,“関係ない” かどうかは, 比べてみるまで分からないので,総当たりの必要 21

Slide 22

Slide 22 text

類似度計算の課題 n 特定の1件と似たものを探すならまだしも… u 類似する論文のクラスタを作成しよう,と思ったら… p 論文が100件あったら,100^2/2 回 位の類似度算出 p 1,000 なら 1,000^2 の規模,10,000 だったら… n 分散表現を活用するとこの問題も対処できる u そもそも,似たものは空間上で近くにある p 類似度計算なしに,クラスタリング手法が適用可能 u 類似度計算をショートカットもできる p 高次元ベクトル近傍探索 という技術との組み合わせ • あらかじめ,空間的に近くにありそうなものを探す技術 p 100件なら100件全部見ずに,近くの数件と比較でOK 22

Slide 23

Slide 23 text

参考資料 n このあたりを もう少し知りたいヒトは… u 大阪大学 荒瀬 先生 による 解説資料 が オススメです https://www.slideshare.net/yukiarase/ss-239499604 クリップアート選びのセンスが素晴らしいです J 23 https://www.slideshare.net/yukiarase/jsai2018-101054060

Slide 24

Slide 24 text

参考資料 n こちらも丁寧で良いです https://www.slideshare.net/HitomiYanaka/2020deep-learning-9-236561673 24

Slide 25

Slide 25 text

トピックモデルによる文書分類 n 沢山の文書があったときに,そのなかから 「内容(トピック)」を見つけ出す技術 n 同一のトピックは同一の単語で構成される n ひとつの文章では基本的にひとつの話題が扱われる u 野球のニュース記事には野球用語が多用される u 政治のニュース記事では政治用語が多用される u 野球ニュースで急に政治関連の単語が出てくることは少ない u ひとつのニュース記事で野球と政治の両方を記述することは少ない n 似た単語が出てくる文章 = おそらく同じトピックを扱っている n 同じトピックっぽい章に出てくる単語 = そのトピックに関連するっぽい単語 25 代表的ツール;LDA (Latent Dirichlet Allocation)

Slide 26

Slide 26 text

トピックモデルのイメージ n 大量の文書(単語の固まり)を与えると,トピック(話題)を自動的に 抽出し,各文書にどのトピックが紐付いているか教えてくれるような手法 26 大量のニュース記事(文書) 投球,バッター, 盗塁,イチロー, メジャーリーグ, ドラフト,… アイドルグループ, イベント, コンサート, アイドル,テレビ, ドラマ,… 選挙,投票, 演説,国会, 遊説,党,大統領 予算,法律,… 野球? 芸能? 政治? Topic Model Topic 0 Topic 1 Topic 2 ※ トピックの名前(ラベル)はキーワードを見て人間が付与 トピック抽出のイメージ トピック推定のイメージ X日,アイドルグループの総選挙が行われ, 事前予測とは異なり,XXさんが1位を取得した. XXさんは,この逆転ホームランを受けて, 「驚いているが,いまはとにかく 主演しているドラマと舞台を頑張りたい」 との談話を発表した. ニュース記事例(文書) X日,アイドルグループの総選挙が行われ, 事前予測とは異なり,XXさんが1位を取得した. XXさんは,この逆転ホームランを受けて, 「驚いているが,いまはとにかく 主演しているドラマと舞台を頑張りたい」 との談話を発表した. 10% 45% 45% 野球 芸能 政治 トピック推定結果 野球 政治 芸能 Topic Model

Slide 27

Slide 27 text

トピックモデル は 生成モデル n 深層学習の後編の回で生成モデルの話をした u 何かの確率分布から世界ができるいると考えて u ある事柄に関する出来事の生起確率を学習させて u その確率に基づいて,新しい何かを生成 n トピックモデル は 上記の2番目の結果 u ごちゃっとした 文書 はトピックの混合 u トピック は 何らかの単語の塊 u ごちゃっと した 文章 からトピックを分離 p トピック = 一緒によく出てくる 単語 のセット 27

Slide 28

Slide 28 text

トピックモデルのイメージ 別解 n LEGO® を想像してみると良い u お城シリーズ や 警察シリーズ みたいな キット がある p お城シリーズ には 兵士 や お城の窓 など 特殊パーツ p 警察シリーズ には 警官 や パトカー用 の 特殊パーツ p 両方で 共通するパーツ も当然ある u 2つ以上のキットを掛け合わせて作ったらしい “何か” が 今,自分の手元に… u この “何か” を分解して,ブロックを色々と選り分けて 元のキットを推定する作業 が トピックモデル 28

Slide 29

Slide 29 text

どんなところで使われているか? n 最初期:ニュース記事の分類 u Googleがニュース記事の自動分類などに適用し有名に n 現在:いろいろなところで u アンケートの自由記述文,クレーム処理,様々な文書 29

Slide 30

Slide 30 text

トピックモデル と 分散表現ベースのクラスタリング n トピックモデル u 様々なミックスジュースから,それらに含まれている果物とその量を推定する n 分散表現ベースのクラスタリング u 様々なミックスジュースそれぞれについて,似ているものをまとめる 30

Slide 31

Slide 31 text

単語 の 重要度を考える n Breakfast とは u 朝に食べるご飯,朝食のことである。 u 例えば,白米やパン,芋,麵 などを主体として, 汁物や副菜などがセットで供されることが多い。 u アジアの多くの国では,屋台で朝食を食べることも多い。 u 含まれる名詞句 p 朝 ご飯 朝食 白米 パン 芋 麵 主体 汁物 副菜 セット アジア 国 屋台 31 全ての単語が同じ重み(重要度)ということはあり得るか?? 重要な単語と,そうでもない単語があるのでは?

Slide 32

Slide 32 text

TF-IDFの考え方 n 単語の“重み”(重要度)を考える指標 u どの文章にも登場する単語の情報量は小さい u 滅多に出てこない単語の情報量は大きい u 単純に登場回数少ないものが重要とすると,S/N比悪化 u 特定の文章によく出てくるものが大事 n TF:Term Frequency u 単語の出現頻度 n DF:Document Frequency u ある単語を含む文書の数 n IDF:Inverse DF 32

Slide 33

Slide 33 text

TF-IDFの考え方 ある文書内の全単語数 ある単語 i の数 ある単語を含む文書数 文書の数 33

Slide 34

Slide 34 text

34 基礎トレーニング 簡単な計算問題にチャレンジ

Slide 35

Slide 35 text

COS類似度の算出にチャレンジ 35

Slide 36

Slide 36 text

COS類似度の算出にチャレンジ 2次元の場合 3次元の場合 36

Slide 37

Slide 37 text

考え方 n 文章に出てくる単語を列挙する(次元数の確定) u 文章1 p こおり,りんご,りんご,ごりら u 文章2 p すいか,ごりら,らっぱ,ぱんだ p こおり,りんご,ごりら,すいか,らっぱ,ぱんだ 元の数式に忠実に実装する場合の例 37

Slide 38

Slide 38 text

考え方 n 単語の数をかぞえる u 文章1 p こおり,りんご,りんご,ごりら p こおり:1,りんご:2,ごりら1:,すいか:0,らっぱ:0,ぱんだ:0 u 文章2 p すいか,ごりら,らっぱ,ぱんだ p こおり:0,りんご:0,ごりら:1,すいか:1,らっぱ:1,ぱんだ:1 元の数式に忠実に実装する場合の例 38

Slide 39

Slide 39 text

考え方 n かけたり,足したり 元の数式に忠実に実装する場合の例 完成! 39

Slide 40

Slide 40 text

考え方 n 文章1 u こおり,りんご,りんご,ごりら n 文章2 u すいか,ごりら,らっぱ,ぱんだ u 類似度はおおよそ, 0.204 40