放送大学全科目感想 007 自然言語処理 (’19)

  • 情報コース
  • ラジオ授業
  • 黒橋禎夫先生(京都大学教授)
  • 難易度 ★★★☆☆
  • おすすめ度 ★★★★★

コンピュータを使った自然言語処理で、今できることと挑戦の始まっている分野は何なのかを学ぶ。特に「今できること」については、どのようにその技術が成り立っているか概観だけではなく仕組みを詳細に解説してくれる。アルゴリズムのトレースもある。そのため回によっては慣れていないとやや難解な箇所もあるが、見返りも大きい。終盤は専門家や学者さんへのインタビューもあり、研究者の肌感覚もわかる。素晴らしい講義でした。

※本講義の印刷教材「自然言語処理」は、自然言語処理の入門書として定評があります。

第1回

自然言語処理の概要とその困難さ、それから歴史について。アシスタントが先生の下で学んでいると思われる現役学生さんなので好感が持てる。

自然言語とは恣意的なもので、語の指す対象と語の間に何ら必然税がないのが特徴。誰かがそう呼んだってのを一般化したものだものね。あと日本語の数詞みたいに、慣習で決まってて法則性がないものも多い。そういうのはコーパスと計算機の発展による力技で何とかなってきている段階らしい。

自然言語処理の歴史はAIとほぼ一緒で、コンピュータの発展とともに予算が増えたり減ったりしている。AIのターニングポイントがgoogleのAlphaGo(2015-2016)だったのに対して、自然言語の方はIBMのWatsonがクイズ選手権で優勝した時(2011)。WatsonはAIの歴史でもかなり大事な役割だった。いずれも計算機の発展の勝利って感じ。

第2回

文字コードと文字列探索の話。かなり基本的なところから話を始めてくれるんですね。助かります。

UnicodeのUTF-8の仕組みが分かった。マルチバイトだったのか。今まで知らんかった。

文字列探索は音声だけではぜーんぜんわからん。トライ法を説明されたけど図がないと無理です。木構造作っとけば計算量が少なくて楽だってことは感覚的にはわかるけどさー。印刷教材が届いたら、一々トレースしてるっぽいから手を動かしたり、考えながら読んでみるとよいと思う。

第3回

形態素解析とビタビアルゴリズム、未知語について。特に形態素解析が中心。

日本語は分かち書きがないから品詞分解が大変という話。英語はそういう心配なくていいよね。簡単な単語だと同音異義語(同音別品詞?)が多いとはいえ文法上有限個の組み合わせだから楽勝な気がする。日本語はかなりフリーダムだよなあ。

スコアをつけて最短スコアを導き出してく仕組みのとこは、ソフトウェア開発と全く同じ思想なので楽しい。いかにして問題を解決していくか、そこがアルゴリズムを考える醍醐味だよね。昔、東京メトロの運賃自動計算プログラム作ったときのことを思い出す。最近は機械学習でスコアをつけられるから、楽になったよね。

未知語はスコアを高くするってのも工夫の賜物だなー。ありえる組み合わせか、ありえない組み合わせかの判定のとこも面白い。ラティス構造のとこは想像力が及ばなかったから、印刷教材が来たらよく復習しておこう。

第4回

コーパスの話。コーパスが登場する前は学者が直感でスコアとか構造を与えるしかなかったが、コーパスの登場で語の出現確率や構文の適用がやりやすくなった。意味解析を含んだコーパスは活用方法によっては強い武器になりそう。確率のマルコフモデルは叩き込んでおかないとダメだな。

意味解析を含んだデータ集合という構想は自分にもあって、卒論で音楽について何かデータ的解析をやってみたいのだけど、音楽の解析ってやっぱコード進行とか、BPMとか楽器の情報とかなのかな。できれば自動でなんでも解析できるとよいのだがそうは問屋が卸さないだろう。

第5回

第4回の話の英語版。英語は品詞の決定が難しいことをtime flies like an arrowという文を例にして説明してた。機械が自然に考えるとtime filesを名詞+動詞とみるか、複合名詞とみるかで迷ってバグる。文法的にはどちらも正しい。そこで機械学習の出番となる。time fliesという組み合わせがあり得るかあり得ないか、周りの単語の登場回数や順序などを参考にして、隠れマルコフモデル、ビタビアルゴリズムなどを駆使してスコアを出していく。

コーパスに必須の情報としてタグ付けがある。意味解析したデータ集合を作る際、適切なタグ付けと、そもそもの適切なタグの定義が難しそうだ。未知の合成語を見つけた時、先頭にくるもの、来ないもの、他の単語の後ろに来るもの、単に不適切なもの(洒落でやるよね)などを全部分けないといけない。このタグ付けの作業が、コーパスを作るにあたって膨大なコストとなることが予想される。

一次元構造を持つのは文章も音楽も一緒なので、音楽解析のためにはデータにタグ付けをしないといけないが、それを音楽理論をベースにするのか、全く新しい概念をベースにするのかでいろいろ研究結果が変わってくる。自然言語と音楽は非常に類似しているので、この講義は全部マスターしていきたい。

第6回

語の意味解析について。シソーラスを使った共起語による分析の話が多かった。共起語とは、ある語と一緒に使われることが多い語のこと。多義語の意味が1つに確定しないときは、共起する語を手掛かりにして意味を確定すればいい。これは漢字でだいたい意味の確定する日本語よりも英語の方でおきやすい問題といえる。例えばbankという単語は「土手」「銀行」の意味があるが、お金の話題と一緒なら銀行、川とか道路とかと一緒なら土手と解釈すればいい。

多義語が1対nの関係だとすると同義語はn対1の関係のこと。ある語の言いかえ、例えば「うまい」と「おいしい」は同義語といえる。微妙なニュアンスの違いは当然排除できないがまだ機械がそのレベルに達してないらしい。

共起ってのは要するに相関関係の問題だと思う。講義を聴きながらどれも音楽に関連させるんだけど、あるコードが他のコードと一緒に出現する確率が高ければそれが共起といえるはず。同義語は転調した場合の相対的なⅠとかⅦとかの関係かなぁ。違う気もする。

あと意味を解釈したとしてそれをどうやって自然言語処理に応用していくんだろう?意味が分かるというのは、辞書の1,2,3番のどの意味に該当するかということだと思うのだけど、これがわかっても表面上の文字に何も影響ないじゃん?ちょっとわからなかった。

第7回

構文、語の結びつきの関係について。一次元の文を平面や立体にしているのは語の結びつきによるもの。

文脈自由文法とCKY法という基本的な手段の解説がされたが、前者は文が木構造に分解できるということ、後者は解析結果を保存しながら探索することでオーダーがn^3まで減らせること、以上のことはわからなかった。図が必要。なんでラジオ授業にしたし。

構文を考えてるのって言語学者の直観によるらしいが、構文そのものもコーパスを使ってDLで抽出できるらしい。たとえば和音構造をDLで学習させたら、よくある旋法や、特定のアーティストの好む旋法が解析できるのでは?特徴抽出は機械の得意なところなはず。何の構造を抽出していくか、何を得たいか、は今後検討の余地あり。

第8回

構文解析2回目。依存構造解析をnon-projective(係り受けが交差してもいい場合)、projective(交差しない場合)に分けて説明する。依存構造解析とは、単語・文節単位で係り受けの矢印をつないでいく構造のこと。係り受けの交差とは、1.これが 2.僕は 3.正しいと 4.思う という文の場合、1→3、2→4のように意味の矢印をつなぐと矢印が重なってしまうこと。日本語も英語も交差はほとんど発生しないので、例外的な扱いとなる。両言語とも、解析はprojectiveなものが主流で、精度は90%くらいだそう。

projectiveな依存構造解析は複雑でラジオ講義では何を言っているかほとんど不明だった。ざっくりと、矢印にスコアを割り当てていって(コーパスを参考にするのかな?)スコアが最大になる構造を選択するということ。矢印なのでループができてしまうことがあるが、ループは一つのノードとして扱いスコアを算出する。ループを含む構造はたいていスコアが低くなるし、最終的にループを含まない構造を選べばよいということ。処理の単純化のためかな。

projectiveな構造解析の計算オーダーはCKY法と同じくnの3乗。実務でも3乗ならぎりぎり実用範囲という感覚があるし、だいぶ工夫が上手なんだなと思う。

第9回

意味解析2回目。格(主格とか目的格とか)を確定する話がメイン。英語は文法上格が確定しやすい(ドイツ語なんかもっと分かりやすそう)のであんまり問題にならないが、日本語は大いに問題となる。大規模コーパスに格を付与した格フレーム構築のための技術と、その利用について解説していたが、なかなか難しく、印刷教材での復習が必須だ。

ひとつ衝撃だったのは「格にあいまいさがある文は捨てる」というところ。あいまいさがある場合は教師データとして採用しないというのだ。そうすることで、核となる規則を頑健に抽出できる一方で、あいまいさがある文を例外として扱うことができるのかな。

第10回

(今回は聞きながら書いてます)

どんどんマクロな解析になっていき、今日は文脈の解析。文脈解析とは、代名詞(照応関係)、省略、文の間の関係の処理をすること。

照応関係とは代名詞を含め、ある語の指し示す対象が他の文にも出現していること。なお、出現していないこともある(外部照応。「みなさん」とか)。コーパスで照応関係を機械学習しても6割くらいの精度にしかならないらしい。照応関係「しやすい」くらいのことしかわからないようだ。

「太郎はのどが渇いた。水を飲んだ」のように「彼は」とか「太郎は」が省略されることは日本語ではよくある。こういうのを補うことをゼロ照応解析という。格フレーム知識があると、欠けているものがわかるから少しは解析ができる。でもせいぜい50%しかわからない(50%でも高いように思える)。

文章の一貫性について。RSTという手法では、文章を談話という単位に分けて主従とか根拠とか背景とかの関係をつける。重要度に優劣をつけるらしい。一番重要な談話を核と呼ぶ。核だけ選べば要約になるというわけ。人によって解釈が異なるから、コーパスを作るのが難しい(そりゃーそうだ)。注釈付与前に「だから」「しかし」などのディスコースマーカーをつけておいて、あらかじめ談話関係を明確にしておく手法もある(でもどのディスコースマーカーをつけるかにおいて技術の優劣が付くんじゃね)。

第11回

情報抽出と知識獲得について。今回は構造の話ではなく、統計の話になった。

ある語(特に、固有名)に着目して、関連する情報をくっつけていくやり方、特定のイベントに着目して、類似の表現を獲得していくやり方、事態の間の関係をスクリプトとして記録していくやり方、どれも、ビッグデータを前提として、大規模な機械学習をおこなっていくことで、外延を少しずつ獲得していこうという試みのようだ。ビッグデータとしては、wikipediaが好まれることが多い。

知識獲得については他の授業でもフォローがされているから詳しく学ぶとして、wikipediaのような文章集合からの知識獲得って、世の中のみなさんの知的活動に敬意を払った手法だよなあって思う。哲人による直観とは正反対の方法で、みなさんの知的活動のいわば平均をとるわけじゃん。理想的には、平均中の平均の思考ができるようになればいいわけだし、民主的な知識ができるわけだよなあ。昔想像されてた「コンピュータだから間違いはない」みたいなロボット像とはだいぶ変わってきたよね。

第12回

情報検索、主にgoogleのページランク算出法について。慶應の図書館情報学でやったのと同じやった。ページランクの高いサイトからのリンクに高い点数をつけてランク高くするってやつ。あれって最初の点数(一番ランクの高いサイト)は1とかにしておくのかな。

googleのクローラーって、サイトをそのまんま保存しておくのはコスト高すぎだから、インデックスつけてそこだけ保存するんだろうけど、そういうコストの削減方法についてはどういうアルゴリズムを採用しているのか気になる。↓の本とか読んだら書いてあるんかな。

途中から乾先生へのインタビュー。

Tohoku NLP Lab / 東北大学 乾研究室

乾先生はtwitterの分析や、災害時の情報収集に自然言語処理を応用しているそう。自然言語の基礎研究の方も相当進んでいて、もう少しで常識とか背景知識の推測とかの段階まで行けそうらしい。計算量も多く相当なコンピュータが必要になるだろうが、人間って高速演算なんか必要なく楽勝でできちゃってるからすごいよね。

第13回

対話処理について。siriとかしゃべってコンシェルとか。うちではアレクサが大活躍しているけど、収録時期が古いのかアレクサは話題になってなかった。しゃべってコンシェルも今ではマイナーな気がする。

対話で難しいのは、人間が決まりきった形という意味で正確に質問に答えないことがあること。「日曜に遊ばないか」「月曜に試験がある」という会話は、暗黙のうちに提案を断っているのだけど、コンピュータが認識するのが難しい。

webやtwitterなどアクセスできる資源は膨大にあるけど、それでも会話ってのは難しい。人間が会話のパターンや構造を認識して、会話にラベル付けをしていかないと学習すらできない。勝手に賢くなるシステムってのはまだまだ不可能なんだな。

終盤はしゃべってコンシェルの開発者さんへのインタビュー。口調はtwitterから「女性の語尾の顕著な特徴を学習」するなどして実装しているらしい。応答速度は、よくある質問をテンプレにして高速化を図っているらしい。プログラムってジェネラルになるほど動作遅くなるから、スペシフィックにして高速化っていう発想はここでも汎用性があるんだなーと思った。

第14回

機械翻訳について。まずは異言語間の単語がn対nの関係にあるため、難しいという話から。それから実際の手法について。統計的翻訳が以前の主流だったけど、最近はニューラルネットワークを使った翻訳が主流らしい。

準備としてニューラルネットワークの解説があった。ありがたい。ニューラルネットワークとは、ベクトルを利用して重みづけを自動で学習させる方式のこと。入力と出力のデータを大量に用意する必要があるが、精度がとても高い。google翻訳はこいつを使ってるとのこと。

ニューラルネットワーク式なら、1語前から訳を予測するだけではなく、2語3語前、1-2-3語後からも重みづけを線形結合するだけで予測していくことができるので強い。線形、時系列のものに向いている。ってこれまんま音楽に応用できるやん。絶対すでに研究が進んでいると思うので、卒研に向けて論文をいっぱい読んでおこう(英語だろうな)。

言語や音楽みたいな人間の営みって、なるべくアルゴリズムを使わないで、枠組みはデータから得るようなアプローチをとれないのかなあ。ニューラルネットワークはだいぶデータ主導のアプローチに近くなったと思うけど、入力→出力の関係しか得られないのは制限がきついなあとも思う。概念を抽出するみたいなことはできないのかな?

第15回

まとめと今後の展望と、黒橋先生の恩師、長尾真先生(故人)へのインタビュー。

クラウドソーシングを言語資源構築に使うことについて。従来は言語仕様を専門家の直観に頼っていたのを、一般の人の言語直観を利用できるという最大の利点がある(思いつかなかったよ)。そもそも言語は一般人の慣習なんでこっちの方が優れてるはず。

ニューラルネットワークの導入について。やっぱ全自動、特徴量の自動設定ができるってのが大きい。適用範囲が広い。End-to-end学習(ブラックボックス学習)ができてしまう。なんか知らんけど解析できましたって感じになるのが新しいみたい。機械翻訳の質も一気に向上した。

長尾真 – Wikipedia

目玉は長尾先生へのインタビュー。長尾先生は2021/5/23に亡くなったばかり。科学技術文章の自動翻訳や、電子図書館システムに大いに貢献した偉大な方。60年代当時のコンピュータは1秒に数十回~数百回のオーダーしか処理できず、その状態から日本語入力システムを開発したりしたらしい。

自動翻訳システムは80年代ごろのプロジェクトで、機械翻訳の技術向上に大いに貢献し、企業からもいっぱい人が参加して、その後各企業に研究者が戻って、たくさん翻訳システムができていったらしい。こういうプロジェクト、現代でできるんか?金があるって、基礎研究ができるって素晴らしいことだなあ。

電子図書館の思想ってほぼほぼ慶應通信で習った図書館情報学のまんまじゃん。もしかしてこの先生が一人で開発したんじゃないか?で、そのうえで電子図書館は人間の知識の集積だけど、人間の頭脳はそんなもんやないと考えてらっしゃる。感情と他人への理解がまだまだ難しいと。たしかに「音楽・情報・脳」の講義でもあったように、感情が理性の上部フィードバック機構だという現代脳科学の立場からすると、コンピュータってのはせいぜい理性の世界の限定された世界しか対応できてないしね。まだまだ人間優位は揺るがなさそう。

参考: 音楽・情報・脳(’17)

先生はやりたいことをとことん追求せよと。数年でできる研究もいいが何十年もかけて追及するべきテーマを持つといいとのこと。先生は50年言語処理を研究してきた。50年ってスゲーわ。今私が50年研究できるテーマを持てるか?それは何だろう?

コメントを残す

メールアドレスが公開されることはありません。