知識グラフ

最近、AI業界では知識の表現に「知識グラフ(Knowledge Graph)」を用いた研究が流行っていて、うちの研究室でも使っています。

知識グラフは、知識を「主語ー述語ー目的語」の3つ組の集合で表現したものです。例えば、「リンゴの色は赤い」という知識は、(リンゴ, 色, 赤)という3つ組で表されます。もう少し正確にいうと知識グラフはグラフ  G=(V,R,E) であって、 Vは概念を表すノードの集合、 Rは関係の集合、 Eは辺 (v_1,r,v_2)の集合で、 v_1,v_2 \in V r \in Rです。

知識グラフは、1960年代後半に A. M. CollinsとM. R. Quillianによって考案された、古典的な知識表現手法である意味ネットワークと本質的な違いはありません。そういう意味で知識グラフは新しい知識表現法ではありません。どちらかというと、意味ネットワークが、基本関係として持っているis_aやhas_a (part_of)を規定していないことから、知識表現方法としては後退しているといっても良いでしょう。最近、知識グラフ上での(ハードな)構造マッチングにより推論をするといった研究を見受けますが、この類の研究は50年以上前から活発に研究されており、過去の研究をサーベイしてから研究をした方がいいでしょう。近年は、知識表現手法として意味ネットワークの後継技術であるオントロジーを用います。オントロジー上ので検索や推論は、RDFトリプルをベースにしたSPARQLやSWRL規則による推論で高度に実現されています。また、人工知能に詳しい方ほど、オントロジー自体も既に古い技術で誰も使ってないと認識されているようですが、実際に生物、医学、物質関係の専門知識を表現するのに現在も積極的に使われています。

では、なぜ意味ネットワークと言わずに知識グラフと呼ぶかというと、知識グラフと呼ぶときには、グラフ表現学習がセットになっているからです。つまり、グラフ構造の表現学習の研究をする文脈で説明のしやすさのために、意味ネットワークを知識グラフと呼んでいるだけです。つまり、知識は、各関係についてのノード間の隣接行列で表されることを前提にできるので、隣接行列をベースにグラフ表現学習を行うことでリンク予測により未知の関係を発見することができます。簡単にまとめると、グラフ構造を隣接行列で表現して、表現学習をするための知識構造を指すときに、意味ネットワークを知識グラフと呼んでおいた方が便利なのでそう呼んでいるということです。本質的に知識グラフと意味ネットワークは同じものですので、意味ネットワークに対して同じ表現学習をすることができます。その技術的な違いはありません。

アジア国際研究賞2023

超電導に関する文献からの情報抽出の成果に関して、アジア国際研究賞2023「アジア優秀研究賞」に選ばれたようです。

主催はインドの選定機関で、賞を受けるには6/9までに$225を支払う必要があるとのこと。

まあ、そういうことです。常識的には、受賞というのは賞金が貰えるものなのではないかと思います。4月ぐらいにも同じメールが届いていましたがうっかり放置していました。

完全な送金詐欺というわけではなく、ある程度のインパクトファクターの論文誌に掲載された論文の中でそれなりのインパクトのある論文を選んで、授賞式もインドで行ってはいるようです。といっても厳正な審査が行われているかどうかはわかりません。状況的にはビジネス的な要素が強いように見受けられます。実際に申し込むとどうなるかチャレンジしていないのであくまで個人の感想となります。

ChatGPT と言語モデル

文には、表現のレベルと意味のレベルがあります。私たちが普段言葉を使っているときにこの2つレベルの違いは意識せずに自然に話をしていますが、この2つのレベルには明らかな違いがあり、かつこの2レベルは当然のことながらお互いに強く関係しています。

表現のレベルから意味のレベルを切り離すと、文としては正しい(文法的に正しいし、語の繋がりとしても違和感がない)が意味がまったく現実と異なる文を作ることができます。例えば、「2022年のプロ野球セリーグの優勝チームは西武ライオンズだ」という文は、文法的にも正しいし、野球をほとんど知らない人からすると「そうなのか」という内容で違和感はない。しかし、現実問題として、2022年時点では西武はセリーグに属していないので、意味的にはおかしな文になる。逆に、表現はおかしくても、意味は通じるという文もある。「2022年がプロ野球セリーグで優勝したのはヤクルトスワローズのチーム」は構文はオカシイけど、日本語を学習中の外国人が話したとすると意味は分かる。

2006年に亡くなったロシア語同時通訳者の米原万理さんの著書に「不実な美女か貞淑な醜女か」という意味深なタイトルの有名な本がある。この本には、同時通訳をするとき、元の言語の内容を正確に伝えた少しぎこちない通訳(=貞淑な醜女)と、元の言語の内容を多少伝えきれていなかったり変わっていても、通訳先の言語の文としては流暢で聞きやすい通訳(=不実な美人)のどちらが良いか、という究極の選択について書かれている。特に同時通訳は時間との勝負なので、限られた時間の中で、どれだけ意味的に正確でかつ通訳された文が聞き取りやすく分かりやすい通訳ができるかという勝負になる。時間が限られるので、ある程度見切りをつけて、どちらかを犠牲にしないといけなくなることもある。場合によっては、そもそも言語の違いにより、対応する表現や概念自体がずれていたり、存在しなかったりするため、正確性か流暢さのどちらかを諦める必要がある。その葛藤を本のタイトルとして適確に表したのがこの本だ。私自身は通訳はできないが、昔々ISSという通訳学校に通っていたときに同時通訳者である先生が「同業者でお客さんには通訳が分かりやすいという評判の人がいるけど、通訳が結構いい加減なのよね」と嘆いたのを聞いたのを思いだす。

前にも書いたように、ChatGPTは対話機能を大幅に強化した大規模言語モデル(LLM: Large Language Model)です。言語モデルというのは、先の例で言うと、前者のある特定の言語について「表現のレベル」で正しい文をモデル化したものです。言語モデルの研究は昔からあり、文書データを使った言語モデルの構築も以前から行われてていますが、最近発展しているLLMは、従来の言語モデルとは異なるレベルの大規模な言語データ(例えば、インタネット上のすべての文書情報)を深層学習により精密にモデル化したものであり、極端に言えば、この世で使われている表現をすべて一度は学習したような言語モデルになっている。その意味で、表現のレベルで正しい文を生成しながら、現実とそんなに乖離した表現になることはない。例えば、単語「セリーグ」の周辺に出てきやすいチーム名はセリーグのチームだし、単語「パリーグ」の周辺にはパリーグのチーム名が出やすいので、「セリーグ西武ライオンズ」という表現は語の繋がりとしての確率が低くなる。それでも、GPT-3.5の頃のChatGPTが嘘ばかり言うと話題になったのは、言語表現としては正しいが、意味的に違うことをシレっと言ってのけるからだ。「豊田工大は豊田市にある」というウソをもっともらしく生成する。学習データに「豊田工大は豊田市にあるとよく間違われる」といった文があれば、語の並びとしては生成されやすくなる。この世でデータとして使える文書に現れるすべての単語の並びを学習しているので、生成される文章はとてもきれいで分かりやすい。このこと自体画期的なことで、自然言語処理の研究者であっても、2、3年前には想像もできなかったぐらいすばらしい技術革新が起きている。しかし、現実の意味の世界から考えると正しくないことを堂々と話すGPTは「不貞な美女」ということになる。結局LLMは意味や世界知識を直接扱うことなく、対象の文書の中にじわっと含まれている意味や知識を語の並びの確率モデルとして構築しているだけなので、おのずと限界がある。Bing Chatのように、ChatGPTと検索エンジンと組み合わせるのは、GPTの弱点を補うひとつの解決法ではある。最新の検索結果をプロンプトとして言語モデルにバイアスをかけているのだろう。ただし、対処療法でしかないので本質的に世界知識を明示的にLLMに組み込んでいるということではない。

ChatGPT が突きつける「理解」とは何か

続いてChatGPTの話題。

GPT-3の登場あたりから、人間とコンピュータの対話(タイピングを通したチャット)が違和感のない文を通してできるようになったことで、この対話を通して、コンピューターは本当に分かって話しているのかどうかが議論になっている。

たとえば、フィボナッチ数列について、フィボナッチ数列とは言わずに 1, 1, 2, 3, 5, 8 の次の数字は何と聞くと、13と答える。GPT-4だと、これはフィボナッチ数列で隣り合った5+8 =13で13です、ということまで教えてくれる。ここで、昨年のSymbolic-Neural Learning Workshopで Ed Hovy先生の講演で取り上げられた通り,本当に分かって答えているのか、ネット上のいたるところにフィボナッチ数列の説明があるので、それを持ってきて生成しているだけではないのか、という疑問が湧く。

毎年、人工知能の講義の最初で、チューリングテスト中国語の部屋の話をしてきた。これまでは、単なる人工知能の常識としてこの2つの対比を取り上げてきたわけですが、ChatGPTの登場で、この問題が改めて「理解とは何か」についてのかなり深い問題提起になっている。

チューリングテストは、情報科学分野のノーベル賞といわれる賞であるチューリング賞 Alan Turingが考えたテスト。Alan Turingは、マンチェスター大学教授でチューリングマシンなど情報科学会に多大な功績を残した。余談になるが、残念ながらこれまで日本人は一人もチューリング賞を受賞していない。五十嵐滋筑波大学名誉教授はプログラム理論の研究でチューリング賞に近かった日本人のひとりであるが、これまで日本人の受賞者はいない。チューリングテストは、人間の判定者が、コンピュータまたは人間とチャットで会話して、相手が人間かコンピュータかわからなければ、そのコンピュータは知能を持っていると判断してよい、とするテスト方式である。チューリングテストは、知能とは何かを定義することが困難であることから、インタラクションを通して知的に見えればそれは知能を持っていると判断して良いという考え方だ。

これに対し、中国語の部屋は、UC バークレイ大学の哲学者 John Searleが、チューリングテストを批判するために考えた思考実験である。ある部屋の中に、英語しかわからない人間が居て、その部屋には膨大な量の本があり、その本には中国語の文字列を別の中国語の文字列に変換するルールが書かれている。部屋の中の人間は、非常に賢く、また中国語の文字は理解していないが、図形としてどの文字と文字が同じかのマッチングを大量の本に対して一瞬でできる。ありえない設定ではあるが、哲学で用いられる思考実験ですので、これをベースに考えを進める。さて、この部屋に外から中国語の文を入れると、中の人はこれをルールブックに従って超高速に処理し、漢字列を作って部屋の外に返すとする。ルールブックが良く出来ていて、部屋にいれた文に対する回答になっているとする(ここも思考実験の前提)。John Searle の問題提起は、この設定で中の人は中国語を理解していると言っていいのか、ということ。部屋の外からは中国語で対話できているように見えるが、実際に中の人はなにもわかってないではないか、という批判。

ここまでは、これまでも人工知能業界の中では考えられたことだし、哲学者ではなく工学者の立場から考えると、人を含めた部屋全体がシステムとして、それなりの答えを返しているのであれば、部屋がシステムとして知的であると考えて良いというのが模範解答になる。しかし、 ChatGPT の登場により、コンピュータが理解して会話しているのかということを議論しはじめると、John Searle の問いかけが重く圧しかかってくる。GTP-4になってから、会話の内容に極端なウソはなくなってきているし、人間でもときどき間違ったことを勘違いで言ってしまうことがある。前回の書いたように、プロムプトをうまく書くと、いろいろなシチュエーションを変えながら英会話をしてくれる。1970頃に開発されたElizaやScholarに始まる過去の作りこんだ対話システムでは、想定した範囲でしか会話が成立しなかったが、ChatGPT では明らかに人間と同じような柔軟性をもって会話してくれる。一見すると、ChatGPTは「分かって」会話しているように見える。しかしながら、本当に分かっているのか、分かっているとは何なのか、を突き詰めると答えが分からなくなる。チューリングテストに習えば、分かっていると見えれば分かっていると考えればいい、ということになるが、システム的に分かっていると言って良いかは工学的に気になる。John Searle 的に言えば、システム的にどこに分かっている部分があるかを明らかにしないと「分かっている」といってよい気がしない。

現状を分析すると、たぶん、GhatGPTは、分かって答えているものと分かって答えてないものが混ざっているという状態のように思う。ここで分かっていない、と思うのは、回答が明らかに整合しない場合があるから。特に、簡単な思考の連鎖でカバーできていないものは、回答がおかしくなる。分かっていると思うのは、簡単な連立方程式について教えてくれ、というとどの方程式の例題を与えても解き方をステップバイステップで教えてくれる。これでも分かっている、とは言えないと考える人も多いとは思いますが。分かってないと思うのは、ときどき、学習データにあった他の例題に引きずられたのか、与えたのと異なる連立方程式の解き方を説明することもあります。

基本的に、ChatGPT は言語モデルですので、中で知識ベースを持っているのではなく、次の文を生成するための隠れ状態に、過去の対話履歴や学習した言語情報を数値ベクトルに変換して保存しているだけですので、複雑な論理構造は持ってないと思われます。ここに埋め込める程度の論理性や繋がりの範囲では理解しているといってもいいのかもしれませんが、人間が思うような知識的な理解はできていないように思います。とはいえ、鳥と飛行機の関係のように、人間と同じように理解しなくても、近い将来には知識の埋め込みも対話生成のベースに入ることが想定でき、そのときにはどのような理解に基づいて会話しているのかまで追跡できるようになるかもしれません。あくまで個人的な想定ですが。

ChatGPT

ひさしぶりに言語処理の話題です。

GPT-4になっておかしな答えをすることも減ってきています。
まず ChatGPT とは何かを簡単に説明します。ChatGPTは、膨大な数の文書を学習データとして、どのような文が尤もらしいかを深層学習(Deep Learning)により学習したものです。大量の文書からある言語はどういう単語の並びを構成するかをモデル化したものととられることができるので、大規模言語モデルLarge Language Model (LLM)と呼ばれます。どれぐらい大規模かというと、ChatGPTの場合は文書量を公表していませんが、想像するに現在手に入る世界中のあらゆるの文書データから学習していると思われます。

ChatGPTは単に、1つの文がどのような単語並びになるかを予想できるだけでなく、文間の繋がりも学習しています。さらに、Chain of Thoughts (思考の連鎖)の学習を行っており、ある事柄の説明や解法をステップごとに分解して繋ぎながら文章を構成していくことも学習しています。

さらに、ChatGPTがBERTのような従来のLLMと異なるのは、人間との対話を通して、どのような答えをしていくかの学習に対して膨大な調整がかけられていることです。このあたりは、かなりノウハウに近いところで現状のChatGPTどのように学習しているのかは論文になっていないため分かりませんが、InstructGPTと同じようなことをやっていると言われています。この方法は Human in the Loop と呼ばれ、人間が学習のループの中に入って調整していくということです。通常は、人間が学習データを作成して、深層学習はそのデータを読み込んで学習して、学習した結果のモデルを使って問題を解く、という流れですが、Human in the Loopは、ベースの学習が終わった後に、オンライン学習のように入力に対する答えを与えながら、出力を調整していくというアプローチです。例えば、政治的に中立な答えをするようにかなり綿密に調整してある感じがします。また、実際にユーザが使った結果も学習データとして加えていき、うまく動かなかったときの調整をかけている気がします。昨年の11月にChatGPTのトライアルの実行をしたときは、表示された文が戻っていくところを見た記憶があります。意地の悪い質問をして、矛盾点を問い詰めたら、表示されていた文が途中からバックスペースで減っていって、答えられませんというエラーになりました。この時は相手が人間だったと思っています。初期のときだけですが。

このようにChatGPTは人間が頼みそうなことについてはあらかた事前に学習しています。たとえば、200文字で要約してください、といって要約できるのは、似たような要約問題を何問も学習させているからです。このとき、要約の学習は、要約に関する対話を与えていますので、どのような入力をするかが大事になります。つまり、プロンプトエンジニアリング(Prompt Engineering)と呼ばれる、「指示」の与え方に関するノウハウが非常に大事になります。たとえば、「円安対策を400文字で考えてください」と書くより、「あなたは日本政府に対してアドバイスをする金融政策の専門家になって答えてください。円安対策を400文字で考えてください」と一種のロールプレイのような形にした方が良い回答が得られます。なぜそうか、と言われると、そのように学習データが与えらえているから、としか言えません。

では、以下、実際にとてつもなく有用なChatGPTの使い方を紹介します。ある程度インターネット上でも似たような紹介はありますが、英会話を実現する日本語によるプロンプトは自然言語処理を研究している、豊田工業大学の知能数理研究室で開発したもので、ここに書くのが初出、オリジナルです。

ここではGPT-4をベースにしたBing chatを対象にプロンプトを紹介します(Bing Chatでしか検証していませんので GPT-4ベースのChatGPTでどうなるかは分かりません)。

TTI-COIN英会話プロンプト(この名前で引用可)

1. 英会話の勉強をしたいので,英語でのロールプレイをしてください.
2. もし,私の英語表現が英語ネイティブが使わないものだった場合は,正しい表現を教えてください.
3. (状況設定)のロールプレイをします.私が(役名1)で,あなたが(役名2)です.
4. あなたが会話を始めてください.

プロンプトは日本語ですが、英会話がスタートします。かなり調整してここに至っていますので、少し変えると日本語で会話を始めたり、勝手に先生と生徒の会話の両方を列挙したりします。これの凄いことは、英語による会話がほぼ人間と同じように成立します。たとえば、中学数学の授業の会話の中で連立方程式を適当に立てて、答えると、その解き方をステップバイステップで(もちろん英語で)教えてくれます。その教え方が、まったく違和感がありません。英語学習にはぴったりです。さらに、英語表現の修正を指示してあるので、"By the way, ..."といって、タイプミスはもちろん、文法的におかしなものや、文法的には会っていてもネイティブが使わない表現は指摘してくれます。

このプロンプトの優れた点は、ロールプレイの指示が日本語ですので、日本人の英語学習者が自分が思ったシチュエーションを簡単に設定して英会話ができます。

最後に、ChatGPTで生成した文がオカシイとか、説明がまだまだなどとTVなどでいわれていますが、このレベルで日本語や英語の文を生成できること自体が数年前の技術レベルから比較して、驚異的な進歩であり、長年の自然言語処理研究者たちの研究成果が結実したものです。また、十分なプロンプトを与えずに、生成結果が良くないといっているのは、指示をまったくしていないか、指示の仕方が悪い可能性も多分にあります。要は使いこなせていないのに批判しているのです。ちなみに今Prompt Engineerを年収4000万円の年収で募集している企業があるとか。

最後にと言っておきながらもう一点蛇足で、日本独自のChatGPTを作らなければいけないという声がありますが、注意が必要なのは、ChatGPTは日本語だけで学習して動いているのではないということです。使っていて明らかに分かるのは、内部は英語を中心に動いていて、日本語のデータが日本語の言語モデルを定めて枠をはめているという感じです。ただし翻訳しているのではなく、多言語翻訳のように隠れ状態で多言語が混ざっている感じです。ですから、日本独自の生成言語モデルを作るのは、話としては結構なことですが、英語や多言語を含めて学習をかけないと日本語のみではデータ量の差があるのでChatGPTには永遠に追い付きません。GoogleのBARDでさえChatGPTに追いつけていないので、責任者は相当な覚悟で取り組む必要があります。

7インチタブレット

NLPとは全く関係ありませんが、未だにNexus7同等の7インチタブレットを見つけることができません。

現時点での必須条件として、純正のAndroid 11以上、ディスプレイ7インチ、フルHD以上、メモリ4G以上、SIMスロットx2(e-SIMスロット含む)を想定しています。実用的にあると便利なのは、指紋認証Felicaと防水。希望はタブレットですので、縦長ではなく5:3ぐらいの比率の7インチが理想です。最近、スマホの画面サイズが大きくなってきていて、7インチ前後のものが出ています。それらの中で、縦長の6.8インチではありますが、なんとかこれらの条件に近いのが Motorola の Moto g52jで最近、暫定的にこれを自分で購入して使っています。3万5千円ぐらいですので購入しやすい価格です。Moto g52jのスペックのまま、5:3ぐらいのタブレット(ファブレット)を5万円ぐらいで出してくれれば買うんだけどなぁ。ちなみになぜ7インチかというと、ちょうどいいから。上着のポケットにスッと入り、ブラウザ画面の全体を見ることができる。縦長だと、縦にするとブラウザ画面の横幅が足りないし、横にすると見える縦の行数が少なくなる。同じく画面上のqwertyキーボードも縦にするとキーが小すぎるし、横にすると画面を半分ぐらい隠してしまう。8インチのdtabでも仕事上は使えるけど、体感的に持ち歩くには少し大きすぎる。個人の好みの問題でしょうけど、同じような感想の人は多いと思う。

AMIA 25x5

AMIA(American Medical Informatics Association: 米国医療情報学会)は、AMIA 25x5という活動を宣言しており、2022年から5年間で医師などが電子カルテ等の文書作成に要している労力を25%削減することを学会の活動目標として定めている。さらに、この活動を通して労力の75%削減を最終的に目指している。

このような学会による数値目標の設定はいかにもアメリカ的で、学会の存在意義を社会に対して明確に訴えるためのメッセージとして十分に強力だろう。我々の研究室も、まさにバイオメディカルNLPの研究をしていますので、この活動に自然と巻き込まれていることになります。日本の学会は、基本的に論文誌の発行や大会の開催をつつがなく実施することが活動内容であって、学会として世の中を変えることに対する数値目標を設定するという話はあまり聞いたことがない。

2009年まで英国立マンチェスター大学にいたときには、その時点のTHE世界ランキング90位ぐらいから、さらにランキングの上位に上がるためには何をすべきかを大学として検討し、中長期計画を立てていた(当たり前ですが私は全くタッチしていません)。現時点で50位ぐらいまで上がってきているので、たぶん当時の計画には効果があったのだろう。

ちなみにイギリスの大学評価は、非常に細かく綿密に数値化されており、カリキュラムや授業の状況を調査するだけでなく、学科単位で所属教員・研究員の論文数やインパクトファクター、被引用数からスコアを算出し、一般に公表する。このため、うちの大学の○○学科は△△大学の○○学科より、学科のスコアが0.3高いといった宣伝が公然と行われ、高校生もこのようなスコアをベースに何処の大学のどの学科がどれぐらい頑張っているのかを判断する。そのため、人事の際には、被引用数の多い論文やインパクトファクターの高い論文誌に掲載された論文を多く持っている教員・研究員が優先的に採用されることになる。

被引用数をベースにした指標にh-indexがあり、アメリカの大学の教員の採用時点では人物像以外にh-indexの値がかなり参考にされるようだ。h-index は、ある人が著者となっている論文を被引用数が多い順に並べて、上位N位までの論文の被引用数がN以上となる最も大きいNである。例えば、ある人の被引用数第12位の論文の被引用数が15回で、第13位の論文の被引用数が11回であればその人のh-index=12となる。h-indexには少し問題があり、長く研究しているほど論文数が多いので有利になる。また、1本だけ参照数が数千あるようなノーベル賞級の論文を書いていて、残りの研究はあまり参照されていないという特殊な場合は、h-indexはあまり高くない。とはいえ、h-indexは研究者のパフォーマンスを計るためのそこそこ良い尺度であるので、これからも使われていくだろう。

とここまで書いたところで、Times Higher Educationからサーベイ依頼のメールが来ました。少し監視されているようで気味が悪い。考えすぎだと思いますが。