murawaki の雑記

はてなグループから移転してきました

ChatGPT 雑感

ChatGPT についてポエムを書き散らすのが流行っている。珍しく流行に乗ってみる。機会を逃すとまた状況が激変しそうだし。

研究者の YouTuber 化

ChatGPT は研究者が想定していた成長曲線よりも上に外れたところに現れた。こんなに流暢にテキストを生成するモデルがこんなに早く出現するとは思わなかった。なぜ日本語まで流暢なのかはいまだに謎。

ChatGPT はテレビでも取り上げられるくらい一般に認知されているらしい。複数のテレビ取材に応じたという人がいたのでそうなのだろう。*1

私の観測範囲で起きているは、参入者が大勢いること。これまで自然言語処理をやってこなかったであろう人。従来の技術よりも圧倒的に敷居が低い。そもそもプログラムを書く必要がない。自然言語で指示を出すだけなら誰でもできる。

ChatGPT の上で踊りたいかというと気乗りしない。参入障壁が低いということは、競合が多いということ。そしてこれまでの研究の蓄積が無力化されているということ。それでもって勝者総取り。*2 こんなしんどい競争は嫌。まるで YouTuber。誰が勝ち残ろうと胴元が安泰なのも同じ。

個別タスクの教師あり学習の終わり

ChatGPTで自然言語処理は終わるのか?」という学会企画があった。少なくとも個別タスクの教師あり学習は研究として明るい展望がない。

個別タスクの教師あり学習は、自然言語処理に統計的機械学習が導入されて以降ずっと王道だった。(1) まず、人間が行っている活動の一部を切り出してタスクとして定義。(2) タスクに合わせてデータセットを構築。(3) データセットの一部を使ってモデルを訓練し、残りのデータでモデルの精度を自動評価。

タスクとは具体的には文書分類とか分類機械翻訳とか質問応答とか。基本的に入力に対して望ましい出力が定まる。人間なら事前に知っていたり、その場で答えを見つけられるような問題。

教師あり学習だけが機械学習ではないが、実用上は教師あり学習一択。企業からの相談で、データセットがないから教師なし手法を試すか検討していると言われることが時々あるが、悪いことは言わないのでデータセットを作って教師あり学習をしましょうと答えていた。

とはいえデータセットを作るのは大変。機械翻訳は何百万、何千万の文対を用意していた。何十年もの継続的な取り組みの成果。タスクによるが、数万事例は欲しいよねという相場観があった。その後 2018 年に BERT が出てきて事前学習の有効性が知られるようになった。まっさらなモデルを訓練すると一から教えないといけないが、大規模テキストで事前学習しておけば、言語の基本的なことは分かっている状態から始められる。これもタスクによるが、千事例くらいの教師データがあればエントリできるかなあという相場観に変わった。それがこれまでの状況。

ChatGPT、というかGPT-3 は、zero-shot なり few-shot、つまり多くての数個の事例を prompt として与えるだけで (つまり追加の訓練なしで) そこそこ答えてくれる。人間が知っていること、少なくともウェブ上でよく書かれることなら何でも知っているように見える。*3それも単なる丸覚えではなく、新たなパターンであっても、類推によって、人間と遜色のない水準で扱えているように見える。翻訳すら結構できる。*4

もちろん精度競争をすると、ChatGPT のような汎用モデルに個別タスクのモデルが勝つ場面がみられることは今後もしばらく続きそう。ただ、研究として明るい展望がない。*5 人間が知っていること計算機にわからせるタイプの問題は ChatGPT に任せて、まだ誰も答えを知らない問題に注力するのが良さそう。

prompt の特定性

対話という UI は、モデルの出力に満足できない場合に軌道修正を可能にする。自然言語処理研究者ではない人 (長いので非専門家とよぶ) の使い方を見ていると、結構発話を重ねて目的を達成している様子。とはいえ、ChatGPT は初手からほとんど的を外さずに来る印象を受ける。

これはよく考えると不思議。ChatGPT は Google 検索の覇権への挑戦とみなされているが、研究史的にも検索は質問応答の劣化版というか、妥協の産物だった。計算機が人間の質問に対して適切な答えを特定できない限定的な能力しか持たない状況下で、計算機は正解の候補を並べるだけにとどめ、正解は人間に探させる。検索は上位 N 件中に答えが入っていれば許される設定だが、質問応答は 1 件だけ選んだ回答が正解でなければならない。

検索よりもはるかに難しい問題を扱っているはずだが、ChatGPT への入力フォームはまるで検索窓。森羅万象何でもござれの状態から始まって、ほんのわずかな長さの prompt を与えるだけで、探索空間を適切な範囲に限定できていることになる。*6

なぜこんなことが可能なのだろうか? 一つの仮説は、実はそこまで探索空間が限定されていないというもの。対話という UI のトリック。*7人間が人間を相手に対話する場合も相手が何を言い出すかわからない。同じように、ChatGPT が何を言ってもそういうものだと人間側が受け入れている。純粋な質問応答システムとして提示された場合よりも人間側の許容範囲が広がっている。さらに言えば、そもそも答えが一意に定まらない、探索的な用途で使うように人間が誘導されているようにも思う。

非専門家のこういう使い方は、mindset が個別タスクの教師あり学習になっている自然言語処理研究者と違っている。ChatGPT、というか GPT-3 を研究用途で呼び出している研究者は、自分が答えを知っている問題をあいかわらずモデルに解かせようとしている。prompt に few-shot 事例を入れて、prompt の特定性を上げまくって探索空間を絞り、望んだ回答を返させようとしている。prompt を発話と見るなら、とてもいびつな振る舞い。

非専門家に研究者のような使い方ができるかというと無理だろう。研究者は既に作ってある訓練データから few-shot 事例を引っ張ってくれば良い。一方、非専門家がその場で思いついた問いにあわせて、その場で few-shot 事例を作るのはめんどくさすぎる。

体系化と定型化、そしてマイクロタスク

この複雑な世界のなかで、森羅万象何でもござれな人間はいない。その点でも ChatGPT は特異な存在。複雑さに対する人間の答えは体系化。物事は分割され、それらは階層的に整理される。体系化は人間の能力の限界に応じたものだろう。

ChatGPT はこの限界から解放されているのだろうか? そこはよくわからない。しかし、少なくとも使うのが人間である以上、人間からの要請として体系化に需要がありそうなものである。

反対に体系化が要請されないのはどんな場合だろうか。いま思い浮かぶのが、人間が世界の複雑さを理解することなく答えがほしい場合。例えば確定申告の書類作成。別の例はインストールしたばかりのソフトの使い方。利用者から見るとやりたいことは決まっているが、どうやったら良いかがわからない。世の中の要求の複雑さに応じて制度や UI は複雑化し、それに応じて体系化されていく。それらの体系にはそこに至った理由があるはずだが、利用者はそんなものを理解したくない。ともかく何をすればやりたいことが実現できるか、その答えがほしい。こうしたタスクの場合、モデルには体系的な理解が必要かもしれない。しかし、対話を通じた人間に対する情報の提示は非体系的。

ではこの反対の場合を何かといえば、人間が複雑な世界を理解する必要がある場面ということになる。モデルが広い意味での教育を人間に行う場面。人間に複雑なものを効率的に教えようとすると、体系化したうえで教授することになる。

物事が体系化され、つまり分割されていくと、個々の断片は定型化していく。三角形の面積の求め方でも、英語の基本5文型でも。そうするとモデルに期待される振る舞いも、通常の対話よりも限定されていく。それでも個別タスクの教師あり学習ほど答えが一意的とは限らない。より大きな違いは、大量の教師データを作る必要はなさそうなこと。せいぜい few-shot 事例を用意すればモデルの振る舞いの制御としては十分だろう。これまでの教師あり学習の個別タスクよりも軽い準備で実現できるとすると、マイクロタスクとよぶのが良さそう。そうして用意したマイクロタスクを束ねて制御するメタなタスクが作れたら完成。利用者には few-shot 事例などは直接見せず、ChatGPT はアプリケーションが内部的に呼び出す関数として扱えば良い。

教える際には体系化されたものが伝授されるが、教わった結果血肉化したものを人間は非体系的に運用している。北辰一刀流を体系的に、順序立てて教わったとしても、実戦では渾然一体となった運用がなされる。語学も同じ。翻訳をする際にいちいち基本文型に分類したりはしない。テキストは世界を分割して伝えるための手段である一方で、混沌の中にある ChatGPT はテキストの世界に住んでいる。*8ここに何かひずみがありそう。

*1:自分では確認できていない。もう長い間テレビを見ていない。

*2:持たざる者が一発逆転を狙うには良い機会かもしれない。

*3:hallucination 問題はもちろん認識している。

*4:そもそもモデルの規模からして翻訳モデルとは桁違い。

*5:巨大すぎるモデルを運用するのは大変なので、個別タスクに特化した小さなモデルを抽出したいという需要はあると思う。しかし、これまでできなかったことをできるようにするのと、できるとわかったことをより効率的に実現するのでは、どうしても前者の方が優先順位が高くなる。

*6:「あなたは X です。」という指示を与えて role play をさせるのが効果的だとよく聞く。

*7:HCI でいう affordance というやつ。

*8:AI における説明という課題と教育にはつながりがありそうに思える。

AI は内心を攻撃する手段となる

1年近く経ってしまったが前回の続き。自分の研究がどこに向かっているのかを思案する。私が思い描く理想とは反対の、碌でもない未来を作る片棒を担いでいる気がする。今回はそのことを書き出してみる。

話の出発点は 2021年に招待講演にともなう解説記事的な論文に書いたネタ。AI、というかニューラルネットの応用として、人間を説明するという方向性を考えている。具体的には、まず人間の機能をニューラルネットに近似的に再現させ、次にそのニューラルネットの内部の振る舞いを適当な手法を使って説明する。ニューラルネットがいい感じに人間の機能を再現できていれば、ニューラルネットに対する説明は人間に対する説明として使えそう。人工知能の原義からいって、これは自然な着想だと私は思っている。しかし、なぜか世の中では見かけない。

例。これも解説記事に書いたが、2020年に発表した母語話者表現検出母語話者表現は、例えば英語の to be a hard sell (人を説得して買ったり承諾させるのが難しいもの) のように、母語話者が使うが、熟練の L2 話者でも意味が取りづらいか、少なくとも自分ではなかなか使えない表現。これを母語話者が書いたテキストから検出する。そのために母語話者が書いたテキストを熟練の第二言語 (L2) 話者が書いたテキストと対照する。

この例では、ニューラルネットが近似的に再現すべき人間は、母語話者と熟練の L2 話者のテキストに長期間さらされた結果、「このテキストは母語話者っぽい」、「こちらは L2 話者に違いない」といった感覚を獲得した人。そうした人は、テキスト中のパターンと書き手の属性 (母語話者 or 熟練の L2 話者) との連合を学習しているはずだが、何を手がかりに母語話者らしさを感じたかは当人にとっても自明ではない。当人以外にとってはなおのことブラックボックス

この人間を近似するニューラルネットは分類器。テキストを入力として、書き手の属性を予測する。ニューラルネットは複雑で、何が起きているか解釈するのは容易ではないが、人間と違って、少なくとも内部の振る舞いは観測できる。例えば、入力テキスト中のどの部分列が分類器の母語話者らしいという予測に強く貢献したかを分析できる。こうして見つけてきた部分列が母語話者表現ということになる。to be a hard sell のような複数単語からなる句、それも構成要素の単語自体はごく基本的なものも見つけてくる。私はこの点を気に入っている。

一歩引いてみると、これは何なのだろうか。この雑記で散々書いてきたように、ニューラルネットが実現しているのは条件反射的な直感。条件反射というと、教科書で見る行動主義を連想する。ただし、スキナーの時代と違い、入出力をつなぐ規則は人間が直接記述できないほど複雑。猿の視覚信号を受け取って、それを猿と認識する処理を人間が記述できないのと同じ。ともかく、入出力間に何らかのパターンがあれば、ニューラルネットは驚くほど柔軟にそれを学習してくれる。

さて本題。この先、何ができるだろうか。まずはニューラルネット研究の最近の進展を取り込むことを考える。大きく 2 つ。1つ目は事前訓練 (pretraining)。2020 年の研究ではまっさらなモデルを一から訓練した。データが大量にあった (1.5億文) のでそれが可能だった。最近は生テキストを使った事前訓練の威力が実証されている。事前訓練によって言語についてある程度知っている状態を作っておけば、それほど大量にデータが用意できないタスクへの適応も現実的になった。2 つ目は生成。分類器はテキストを encode するだけで、出力は複雑な構造を持たない。一方、GPT-* で有名になった巨大言語モデルは生成 (decode) 能力を備えている。何らかの入力刺激を受けてテキストを生成するタスクが取り扱える。

最近の進展を人間の説明という私の研究に取り込むと何が起きるか。人間がテキストを書くという行為をニューラルネットに近似的に再現させることで、人間の内部の振る舞い、つまりは内心を説明できる可能性がある。例えば、ある人物に着目し、Twitter のタイムラインを入力として、当人のツイートを生成する訓練を行うとしよう。その人物が社会正義を唱えるわりには、「正義」の適用先が選択的であるという仮説を立てたとする。この仮説をニューラルネットを使って検証するとすれば、「正義」のツイートを行う際にタイムラインのどこに着目しているかを可視化すると、言及対象の党派性に着目していることが明らかになるかもしれない。あるいは、タイムライン中の言及対象の党派性を改変した反実仮想のタイムラインをモデルに与えると、モデルが代理生成する当人のツイートがどのように変化するかを検証するという方向性もありえる。仮説があたっていれば、ある種のバイアスが浮かび上がるかもしれない。*1

注意すべきは、この営みは書くという行為を動物的にモデル化したものであるということ。読む側ではなく書く側。ましてや、書かれたものを字義的に読み、書かれていないことを勝手に推測しないというアスペルガー的理想からは程遠い。読み手の行為なかで近いものを挙げるなら、文を読まずに行間を読むという Twitter でよく見るアレ。*2 国語力の欠如したタイムライン動物園は AI の参入によっては解決されず、逆に地獄度が増す。

さて、ニューラルネットによる代理モデルから内心に関する説明が得られたとして、それが正しいと言えるだろうか。上述の例のように、対象の人物と分析者の利害が対立する場合には、対象の人物は得られた説明を否定する公算が大きい。

この問題に関係するのが羅生門効果。Breiman (2001) から始まる統計の文脈の議論では、データに同じくらい良くフィットするがデータの処理方法が異なる複数のモデルが生じたとき (それはよく起きる)、どのモデルに基づく説明を採用すれば良いかという問題。Breiman (2001) はニューラル以前の論考だが、D'Amour (2021) が述べる通り、overparameterize されたニューラルネット機械学習業界を席巻したことで重要性が増している。おそらく羅生門効果を根本的に解決する方法はない。モデルのアンサンブルを使うという軽減策がよく使われるが、付け焼き刃的。そもそも言語自体が、集団によって担われているにも関わらず、それによって固定化するわけでもなく、時間とともに変化していく。

*1:こうした分析が古典的な計量的手法でできないわけではない。しかし、母語話者表現検出が基本単語の組み合わせを検出できたように、ニューラルネットの柔軟性は別次元。

*2:別の観点から見ると、だんまりを決め込むという不作為も行為の一種であり、モデルに説明させるのは比較的容易だろう。書かれたものを字義的に読むという方向性では、書かれていないものは扱えない。

AI は人間の直感の外部化

先週、学部同期の原さんのブログ記事「「悪いやつをAIで予測する」のがなぜいけないか」がバズっていた。*1 人間が何に反応するのかわからないものである。目についた反応のなかで私の感覚に近いのは、「みんなそんなことわかったうえで議論しているんだよ」 (大意) というもの。とはいえ、私の今の仕事では、一般人を説得しなければならない機会がままある。世間の認識を知っておく必要があるし、それがまるっきり駄目だから今の私の惨状があるともいえる。前置きが長くなったが、この記事が世間の認識を反映していると仮定して、私の認識とのずれを書き出してみる。

この記事でも顕著だが、世間でいう AI は人間とは異質な他者。私にとっては人間の機能の一部、主に直感を切り出して外部化したもの。

注意。この認識はいわゆる人工知能研究者を代表したものではなく、言語研究者という私の立ち位置が影響している可能性が高い。機械学習屋さんによっては、はなから人間の機能の再現を目指さずに、人間らしさの全然ないセンサデータ等を扱っているかもしれない。

少なくとも今回のお題はかなり人間的。レストレランの入り口で人間を視認して要注意人物か否かを判定する。これは実際、人間が日常的に行っていること。おっさんが平日昼間の公園に行くと警戒されるのとどこが違うのだろうか? 人間は日常的に属性を手がかりに推論している。どういうわけか、同じことを計算機にやらせた途端に大問題になるのである。

よく引き合いに出されるのが Amazon の採用 AI が 2015 年に稼働停止になった事件。女性の評価を「不当に」低く出すというのが理由。言い換えれば、能力との関係において「本質的でない」手がかりを使って推論を行うのが社会正義に反するというのである。では、人間はこの種のバイアスから自由なのだろうか?

計算機が表層的な手がかりを使ってズルをするという問題はよく知られている。ズルをすると何が駄目かというと、ちょっとひねった問題を出されると簡単に誤答してしまう。しかし、この問題は研究者間でよく知られていて、よってたかって解決が試みられている。あまりにアホな振る舞いは早晩改善されるだろう。

問題は、本質的な解決があり得るかである。ないというのが私の回答。ズルは計算機の専売特許ではない。受験生が小手先の受験テクニックにばかりを磨いた結果、本番では出題傾向が変わって爆死したというのと変わらない。あくまで程度問題。

計算機がアホな振る舞いをしているのをメタ的に観測していると、より本質的な手がかりがありそうに思える。しかし、計算機に本質を理解させるには、何らかの手段でそれを教えなければならない。何も策を講じずに計算機にそれを期待するのは無理な話。少し具体化すると、ある分布に従う問題から学習した計算機に、別の分布に従う問題に対する高い性能を期待するなら、両者に共通する性質 (本質) を何らかの形で教えなければならない。解きたい問題の分布を観測したあとに事後的に本質が認識できるとしても、事前にわかるものだろうか?

現在 AI とよばれているもののほとんどすべてがパターン認識器。入力と出力の間にパターンを見つけて、それを新たな入力に適用する。人間でいえば経験則に基づく直感に相当する。勘の良い人間もいれば鈍い人間もいる。それは程度問題。直感に基づく推論結果そのものは決定的な正しさの保証とは無縁の代物。ブログ記事では、AI の判断を根拠にしてはならないという議論が出てくる。計算機に期待しすぎである。そもそも、AI の判断が直感に相当すると世間が認識していれば、こういう議論にはならないはず。

「いまの AI はブラックボックス (だから駄目)」という議論がよくあるが、話は逆。人間の直感こそがブラックボックス。それを計算機に代行させることで、むしろ推論過程が見えてしまうのである。そうして観測できる推論過程は必ずしも人間にとって解釈可能ではないが、差別的に手がかりを使っていた場合には、それがバレてしまう。もしそれが表層的な手がかりに頼ったズルであれば、モデルを改善すれば良い。それでも駄目なら、学習に使ったデータ、つまりは人間の営みに問題があったということになる。要するに信頼できないのは人間である。推論を計算機に代行させ、その過程を観察しながら適宜介入することで、少なくともある観点からは、より良い社会を作れる可能性がある。もしこの楽観的な見通しが成り立たないとすれば、Amazon 事件のように、人間同士の利害が対立している (求職者 vs AI を抱え込む雇用者) からである。人間の敵は人間であって AI ではない。

冒頭で述べたように、AI は人間とは異質な他者だと世間は認識している。私からするとこれは誤解なのだが、それで救われている部分もある。仮に AI が直感の外部化の手段だと世間が認識したらしたで、本当の地獄が始まると予想している。これについては別の機会に述べるとしたい。

*1:この表現もいい加減古いが

大航海時代の海域アジアと琉球


中島楽章. 2020. 大航海時代の海域アジアと琉球: レキオスを求めて. 思文閣出版.

琉球を中心とした海域アジアに対する大航海時代のヨーロッパ人の地理認識を文献、地図から解明しようという本。今回取りあげるのは第II部「ゴーレスとレキオス」、特にその中の第6章「ゴーレス再考 (二): その語源問題をめぐって」。中島は歴史の人で、50近くになってからポルトガル語を学び始め、リスボンで文献調査を行えるまでになったとのこと。その努力には敬意を表するが、個別の論証については首を傾げざるを得ない部分が多い。

Gores は16世紀初頭のポルトガル史料に現れる集団で、一般に琉球人と理解されている。その由来はアラビア語史料に15世紀後半から現れる al-Ghūr で、史料では琉球の別名とされている。この Gores の語源が高麗であるという説をとなえる者がいる。中島の先行研究紹介によると、古くは内田 (1915-17)、秋山 (1928)、桑田 (1932)、Haguenauer (1935)、安里 (1941)、Schurhammer (1963) などが挙げられ、中島も改めてこの説を支持している。

前の記事でも述べたように、私は Caule/Cauli 系の語はモンゴル帝国時代に登場したあとは使用が絶え、大航海時代南蛮人が日本に到着したあとで日本語の高麗に由来する Corea が現れたと考えている。もし Gores 高麗語源説が正しければ、私の仮説は少々修正が必要になる。ただし、Corea が Gores に由来するという説をとなえる者はいないようである。

結論を先にいうと、Gores 高麗語源説は成り立たないと私は考えている。私が支持するのは前嶋 (1971) の説。al-Ghūr は窪んだ場所を意味する al-ghaur に由来し、中国語の落漈を訳したものだろう。落漈は東方海上にあり、水が落ちていくとされる場所。川の水が海に注ぎ込み続けても水位が上がらないことを説明するために中国人が生み出した伝説。落漈は『元史』の頃から瑠求 (=台湾) と結びついた形で登場する。al-Ghūr の初出であるイブン・マージド『海洋学精選』の「この地方から南にゆけば、あるものといえば危険とアル・グールだけ」という記述とも整合する。アラビア人は中国人の地理認識に詳しくないので、もとはアラビア語語根 (غ و ر) に基づく固有語だったことが忘れられ、借用語と再解釈されたと考えれば母音の揺れは説明できる。al-Ghūr = 瑠求 (=台湾) というモンゴル時代からの知識が先にあって、明代になって琉球と称する集団が沖縄から来た結果、al-Ghūr = 琉球 (=沖縄) となったのだろう。

一方、中島は、「アル・グールを語源とするゴール Gor と、高麗が転訛したゴール Gor ないしゴーレ Gore の発音はかなり近く、必ずしも区別されていなかったことになる。このことは十五世紀のアラビア語史料におけるアル・グール al-Ghūr も、本来は高麗に由来する呼称であった可能性を示唆するのではないか」(p.167) と主張し、元代には「泉州などに来航・居住するムスリム海商にとって、中国東方海上の高麗はかなり身近なものであった。彼らはこの高麗を、アル・グール al-Ghūr と称したのではないか。(中略) グール Ghūr は、閩南音の高麗 kou-le の対音であろう。」(p.171) と推測する。中島は様々な断片的な記述をもとに想像を膨らませている。高麗に由来する語が登場する出来事は高麗が存在した時代に起きていなければならないという思い込みから逃れるのは難しいのだろう。

まず中島の前提がおかしい。「ヨーロッパ人は明代を通じて、朝鮮をおもに高麗に由来する呼称で記録していた。ポルトガルなどで作成された世界図では、一五六〇年代から朝鮮半島付近に、高麗の漢語音に由来するコーレ core やコレア corea、日本語音に由来するコライ corai やコンライ conrai などの地名が記されるようになる。」(p.165) といい、core が漢語音に由来すると主張する。漢語音に由来するなら L 音をともなうはず。R 系の語形は漢語に由来しない。

なお、中島はこの記述に注 (20) を付して海野 (2003) を引用しているが、これはやや杜撰だ。海野 (2003) には「Gore が「高麗」のシナ音 Kao-li のなまったものであることは ...」という怪しい記述があるが、core, corea が漢語音に由来するとは述べていない。

中島は的場 (2007) の Gores の語源はモルッカ諸島で刀剣を意味する goles であるという説を批判するなかで、「goles と Ghūr とは、確実な語源といえるほど近い発音ではない」(p.162) と述べている。的場説に対する批判の根拠は他にも並べているので、この論拠単体では弱いと考えているのかもしれない。しかし、同じ批判が自説にも当てはまるはずだ。

中島は、Gores と高麗を結びつける根拠の一つとして、Tomé Pires の Suma Oriental (東方諸国記) の記述を挙げている (p.165)。

華人 chijs とタルタリア人の間にある場所にゴーレス guores がいる。そしてタルタリアの背後にロシア Roxia があるということである。これらのことは華人が話しているのである。

中島は「従来の研究では指摘されていないが」(p.164) といってこの記述を紹介するが、実際には海野 (2004) もこの記述に触れている。小論なので見逃したのだろうか。

海野一隆. 2004. ゴーレスとは? 日本古書通信. 69(6), pp. 6-8.*1

それにしても、Suma Oriental の記述が1510年代に書かれたとは信じがたい。書誌学的な検討は済んでいるのだろうか。ロシアがモンゴル・満洲接触を始めるのは17世紀に入ってからだから、何らかの理由で写本に17世紀頃の記述が混入した可能性を考えたい。

私はこれまでは L/R の区別を問題としてきたが、Gores/Ghūr を検討するなら語頭音も問題となる。「高」は見母で無声破裂音 [k] を持つ。アラビア語は (ペルシャ語も) [k] (ك) を持つので、わざわざ有声摩擦音 (غ) をあてる理由がないように思う。見母を غ で写した事例が豊富にあるというなら話は別だが。「麗」の母音が落ちるのも不自然。中島にはアラビア語に関する知識がなく、前嶋 (1971) からの進展は期待できない。

前嶋 (1971) のいう通り、al-Ghūr が al-ghaur に由来するなら、Gores と高麗の関連をにおわせる記述はどう説明すべきだろうか。Suma Oriental の怪しい記述以外にも、『大アルフォンソ・デ・アルブケルケ実録』に「当時 (注: 1511年のマラッカ占領時) 彼ら (注: ゴーレス) の国は大陸にあるといわれていたが、一般の意見では彼らの国は島で ...」という記述がある。

大陸と関連付ける記述が登場するのはポルトガル史料になってからで、先行するアラビア語史料では al-Ghūr は島として扱われている。逆ではない。だとすると、Gores という語が先にあって、その後、誰かが二次的に高麗と結びつけて再解釈することがあったのではないだろうか。Ghūr のように語頭が摩擦音で、かつ子音終わりの語に対しては、高麗を連想できなかったのだろうが、語頭を破裂音に変えて、人間集団を表す -es をつけた Gores であれば、特定の話者にとっては連想可能だったのだろう。L と R の区別のない中国人でも可能かもしれない。しかし、日本語族の話者の方が、2つの理由からより自然だ。1) 自らも R 音を使う。2) 朝鮮を高麗をよび続けていた。海野 (2004) は「かつて琉球社会では、朝鮮のことを「コーレー (高麗)」と称しており ... (中略) ...トメ・ピレスの場合はともかく、ゴーレスは琉球語の「コーレー」が訛ったものと考える方が理にかなう。」(p.8) と述べている。話は逆で、「ゴーレス」という語を聞いた琉球人がそれを高麗と解釈したのだろう。*2琉球が言語文化的に中世日本の影響下にあったことの傍証ともなる。

*1:海野 (2004) も「これによって、ゴーレスが「高麗」のシナ音 kao-li の訛ったものであったらしいことが知られる」(p.7) と述べており、この点で海野 (2003) から変更はない。

*2:海野は現代沖縄方言の「コーレー」が当時からその語形だったと思っていたようだが、沖縄で /ai/ が融合して /ee/ になったのは比較的新しい時代。例えば、語音翻訳 (1501) のハングル表記を見ると、卓子 타기대 (-台)、匙 캐 (かひ) などの例から、まだ融合していないことがわかる。

꼬레아 코리아

오인동. 2006. 꼬레아 코리아. 책과함께.

Korea やそれに類する西洋系の語は日本語の高麗に由来する。この仮説はほぼ確実だと私は考えている。それと同時に、どうして他の人間がそう明確に主張しないのか不思議に思っている。2016年7月には私の理解を説明する記事を書いた。このページにはぼちぼちアクセスがあるが、いずれも日帝が Corea を Korea に改名したという陰謀論との関係で言及されている。しかしそれは話の枕に過ぎない。私が本当に言いたいのはもっと前、400年以上前の経緯。残念ながらそちらに関する反応は観測できない。

現状の記事は完成しているとは言いがたい。一番の問題はポルトガル史料の調査が甘いこと。他にも Gores という語についても補足したい。しかしそれらを完遂する余裕はない。ひとまず知識の断片を雑記に残しておく。

上記の本は最近偶然見つけた。著者はロサンゼルス在住の整形外科医兼統一運動家とのこと。本の刊行は Google Books によれば2006年9月だが、2015年には統一後の国名を Gori にすることを主張するインタビュー記事を載せている。経歴からするとトンデモ本の危険性を感じる。しかし、意外なことに、集めている史料はまともで、推論も途中までは穏当に見える。しかし、Google Books の snippet で見える範囲からは、結論として何を主張しているのかよくわからない。普通に考えると著者の運動家としての主張と整合しない結論に至るはずだが。

先に私の主張を要約しておく:

  • モンゴル帝国時代の史料に見える Caule/Cauli は Korea の直系の祖先ではない。次に Corea 系の語が登場するまで時間的断絶があるし、L から R への変化が説明できない。
  • 1393年に明が朝鮮の国号を李朝に下賜したことで高麗の国号は消滅したが、日本人は引き続き高麗とよび続けていた。
  • Corea 系の語は大航海時代南蛮人が日本に到着したあとに出現する。Corai や Coray など、日本語の高麗を写した語がポルトガル史料に現れる。
  • ポルトガル語史料に現れる Coria, Còria, Còrea などは Corai/Coray をポルトガル語化 (-a をつけて女性名詞化) したものと推測される。
  • 英語の Corea はポルトガル語からの借用のようだが、最初期の用例は日本発。

呉は私と同じく Corea/Korea の陰謀論から話を説き起こしている。Corea から Korea への置き換えが米国主導で進んだこと、日本は併合後 Chosen を使っていたことを指摘している。それなら陰謀論には根拠がないという結論で終わりそうだが、私が探した限りでは、呉はそう明確には主張していない。

呉は Corea と日本語の高麗の関係を示唆する史料を並べている。しかし、両者の関係について明確な主張をしていない。呉は日本に来たイエズス会士の報告に言及している。snippet 表示からは部分的にしか確認できないが。Gaspar Vilela が 1571 年に日本から出した書簡に Corai/Coray が登場することは有名で、呉も紹介している。キリスト教史とは別に地理学史の研究も昔から行われている。日本だと海野一隆とかが有名。Dourado の同時期の地図に costa de Conrai が登場することも呉は紹介している。両者がどのような関係にあるのか以前から知りたいと私は思っているのだが、そのあたりを整理した研究をまだ見ていない。

呉はポルトガル史料の Corai/Coray が日本語を写したものであることを正しく認識している。そこまで来ておいて、どうして Corea と日本語の高麗を明確に結び付けないのだろうか。16世紀後半、国号が朝鮮に変わって久しいはずなのに、なぜ高麗の名称が使われ続けていたのか。惜しいところまで来ているはずなのに、呉はその答えにたどり着いていない。日本の史料を見ればいくらでも高麗が出てくるのだが。おそらく西洋史と日本史が別分野として断絶していて、両方に通じた者がいないのだろう。

2021年1月5日追記: Gores についての記事も書いた。

熟慮の使いどころ

2020 年になってしまったが、雑事に追われるばかりで進歩がない。進歩がないので去年 5 月のネタを蒸し返してみる。世の中一般的に想像される知性の高低と、計算機による実現の難しさは違う。前回は「昆虫とままごと」と言ってみた。世の中に蔓延する憶測に対する逆張りを 2 つ持ってきたというだけで、対比にはなっていなかった。今回は「ままごと」は捨て置く。「昆虫」を普通の言葉で置き換えると直感。それに対立するのは熟慮。現状で計算機上で実現されているのは直感。そしてこれから実現したいのは熟慮。しかし熟慮は使いどころが難しいという話をしてみる。オチはない。

時事ネタから始める。先月のことだが、日本維新の会が「近い将来、司書の仕事は人工知能 (AI) で代替可能になる」と主張して学校司書の配置増に反対した。そんなことが近い将来実現するわけがないのは大前提。問題は、維新の議員がAIにとって代わられるほうが早いなどと言って溜飲を下げる者が観測されること。どう考えても政治家の方が司書よりも計算機による実現が難しい。維新がポピュリズム全開なのに対して、批判者からは自分の方が賢いという自意識が透けて見える。そのぶん批判者の方がたちが悪い。

司書といっても多岐にわたり、特に今回の対象は学校司書と特殊だが、ひとまず司書の中核と思われるレファレンス業務を考える。これは質問応答の一種であり、研究自体は大昔からある。キーワードマッチングでなんとかしようとしていたのも今は昔、ここ 1, 2 年でベンチマークスコアは急激に上がった。まだ大規模知識源の扱いに難があるが、技術的には数年以内で解決可能だろう。少なくとも機械翻訳と同程度には。

2 点予防線を張っておく。第 1 に、技術的に解決可能であることと、社会的な実現には大きな落差がある。社会的な実現には政治的・経済的な課題の解決も必要。それは、いつまでたっても電子書籍が紙を置き換えるに至らないことからも明らか。比較的成功している例でいくと、機械翻訳にとっては膨大な対訳データの蓄積が決定的だった。レファレンス業務で対応するデータはレファレンス協同データベースということになるか。頑張っているとは思うが、絶対的な件数が少ないし、知識源たる書籍がまともに電子化されていないのも厳しい。

第 2 に、別に司書の業務すべてをそのままの形で計算機で置き換えようという話はしていない。いつもの例を使うなら、自動改札機は駅員による改札をそのままの形で置き換えたわけではない。利用者側の適応も必要だし、駅員が完全に消滅したわけでもない。しかし駅員の業務内容は一変するし、非正規化が進んだりもする。

さて、そろそろ本題に入る。世の中的には、ここ 1, 2 年で人工知能が急速に賢くなったことになっている。しかし私の印象は違う。最近わかってきたのは、人間の知性とされてきたもののくだらなさ。

例えばテキスト理解に使われている仕組み*1は本当にくだらない。何がくだらないかは前回言った通り。適当な入力刺激を受け取ると、適当な信号がネットワークを流れていって、適当な反応を示すだけ。条件反射的で、熟慮も何もあったものではない。こんな下等な仕組みでいろんなタスクがそれなりに解けてしまうことに驚きがあった。でも、それは最初だけ。あまりにくだらない論文があふれていて、読んでいて心底うんざりする。

しかし、少なくともベンチマークスコアは上がりまくって人間*2を上回ったりしている。どうやら人間が普段行っている仕事のかなりの部分は、それが世の中一般的には高度に知的だと思われているものであっても、下等な仕組みで実現できてしまうらしい。充分な訓練データがあれば。習得に歳月を要するが、いったん習得したあとの日常業務は定型的で、条件反射的に行っているような仕事は将来が危ない。技術的に置き換え可能というだけでなく、経済的にも置き換えのインセンティブが大きい。

世界中を巻き込んだ配線工学競争に参入してもつらいだけなので、別のことをやりたい。条件反射の直感を超えるには計算機に熟慮させるのが良さそうに思える。ああでもないこうでもないと悩んだ末に答えを出すような計算機。

しかしこれが難しい。難しい点はいろいろあるが、特に難しいのは勝算のありそうなシナリオをひねり出すこと。大学という組織にも、そこに棲まう研究者にも余裕がないので、勝算のなさそうな博打には資源を投下できない。

仮定の話をする。現状の、直感に基づくシステムがある。さらに熟慮するシステムがあって、後者のほうが高い精度を出すとする。その場合、熟慮システムを教師として直感システムを訓練すれば済むのではないか。データがいくらでも自動生成できるから、universal approximator としてのニューラルネットが本領を発揮する。そうなれば、熟慮システムの出番は訓練時だけ。実運用時は直感システムを使えば良い。熟慮していると速度面で圧倒的に不利。精度面で優位性がなければどうしようもない。

実運用時にも熟慮システムの出番があるとしたらどういう場合だろうか。訓練時にあらかじめ想定できない事例が実運用時に次々登場するというのはどうだろうか。例えば、翻訳に創造性がないわけではない。文化差に由来する表現などで、翻訳先の表現が事前に確立されていないものに対して訳語をひねり出す必要が生じることがあるだろう。訳語候補を作り出す部品と、その良さを評価する部品が協調するようなシステムが妄想できなくもない。

しかし、そんな複雑なシステムを作ったところで、精度が向上する余地があるようには思えない。既存のベンチマークでは駄目で、そういうシステムが勝てるようにタスク設計から見直さないとどうにもならない。思うに、人間が行っている (と思われる) 定型的な作業を切り出してタスクとして設定するというこれまでの業界の営みが、熟慮システムとの相性が良くない。

話はここで終わりでオチはないのだが、1 個蛇足がある。AlphaGo が話題になったのはもう 4 年も前のこと。世の中的には、人工知能が賢くなったという言説に渾然一体となって回収されているように思う。しかし、今回のネタを考えているうちに、ボードゲームは最近のテキスト理解の研究とは性質が違う気がしてきた。囲碁で直感に対応するのは評価関数だが、評価関数だけでは完結しない。外側に木探索アルゴリズムがいる。木探索のようなハードコードされたアルゴリズムに知性は感じられない。でも、直感を外側から使役しているという点で、直感・熟慮の二項対立において、熟慮の側に落ちるのではないか。熟慮界の中でも最弱といったおもむきだが。

*1:BERT とかそういうやつ

*2:といっても大体が、さほど真面目でもないクラウドワーカだろうけど

はてなグループからの引っ越し

2019 年 7 月第3週に数日かけて、はてなグループにあった雑記をはてなブログに移した。その処理のメモ。はてなグループを使っている人、さらには日記機能だけを使っていた人は少ないだろうから、需要はないと思われるが、備忘録として。

背景

2009 年 4 月にはてなダイアリーを使いはじめたが、すぐにはてなグループに移行したという経緯がある。当時のはてなダイアリーは encoding に EUC-JP を使っており、JIS の範囲外の文字を使おうとすると文字参照の嵐になって不便だった。はてなグループを採用したのは、日記の encoding が UTF-8 だったから。日記以外の機能は一切使っていなかった。

2019 年 7 月 3 日にはてなグループの年内終了の予告があった。サービス終了のリスクは前々から感じていた。明らかに放置されていたので。しかし意外だったのは、自社サービス内での移行機能をまともに提供していないこと。予告には「MT形式での出力など対応を検討いたします」とあったが、はてなのやる気のなさを考えると実現するか疑わしい。それに、MT 形式での export にしか言及してないということは、はてなブックマーク等の移行を行う気がないという意味だと理解した。それなら自分でやってしまった方がはやい。はてなブログを採用したのは、はてな記法を真面目に整形するのが面倒という消極的な理由。

手順は以下の通り

  1. はてなグループの日記を CSV ファイルにエクスポート
  2. エクスポートされた日記を記事に分割
  3. 各記事をはてなブログに仮アップロード
  4. 新旧記事の URL 対応を取得
  5. 記事間リンクを修正した記事をはてなブログに再アップロード
  6. はてなグループの日記の各記事を新 URL への案内に差し替えてアップロード

はてなグループの日記を CSV ファイルにエクスポート

はてなグループの日記の「管理」から「データ管理」以下の「日記のダウンロード」に進み、CSV ファイルをダウンロード。

「データ管理」とは別に「日記のエクスポート・インポート・削除」があるのが謎すぎる。

エクスポートされた日記を記事に分割

ローカルで CSV 形式の日記を記事単位のテキスト単位に分割。csv2hw.pl: CSV からはてダラ形式への変換スクリプトを取ってきて魔改造。改造の目的は HatenaBlogWriter 形式にあわせること。

  • はてなダイアリーライター形式は YYYY-MM-DD.txt という日単位のテキストファイルを要求するが、HatenaBlogWriter は YYYY-MM-DD_NN.txt という記事単位のテキストファイルを要求する。1 日に複数の記事を書いた場合は分割しないとけない。
  • HatenaBlogWriter が要求するメタ情報 (title, date, category 等) を抽出し、出力のヘッダに記述

例えば、日単位のテキストでは body 内に

*p1*[ネタ]昆虫とままごと

のように記述されていた記事タイトルから、記事番号 NN (01)、category (ネタ)、title (昆虫とままごと) を抽出。

各記事をはてなブログに仮アップロード

記事単位のテキストファイルを HatenaBlogWriter を使ってはてなブログにアップロード。

ruby hbw.rb

1 日 100 記事の投稿制限に引っかかった。実行を 2 回にわけることに。

新旧記事の URL 対応を取得

なぜ仮アップロードかというと、雑記内には以前の記事へのリンクが大量に貼られていて、これを適切に書き換える必要があったから。はてなブログでは、一度アップロードしてみないことには、どの URL が割り当てられるかわからない。

HatenaBlogWriter は ./data/YYYY-MM-DD_NN.txt.dat というファイル名でメタ情報を出力する。このうち、

url: https://rekken.hatenablog.com/entry/20190526/1558796400

に着目し、YYYY-MM-DD_NN から新 URL への対応表を作る。

記事間リンクを修正した記事をはてなブログに再アップロード

この対応表を見ながら、各記事テキストを走査し、http://rekken.g.hatena.ne.jp/murawaki/YYYYMMDD/pNNhttps://rekken.hatenablog.com/entry/YYYYMMDD/?????????? に書き換え。

再び hbw.rb を呼び出して再アップロード。これで新しいはてなブログ側の処理は終了。

はてなグループの日記の各記事を新 URL への案内に差し替えてアップロード

最後に古いはてなグループの日記を移転告知に差し替える。

改造していない、元の csv2hw.pl を呼び出して、CSV 形式の日記を YYYY-MM-DD.txt というファイル名の日毎の日記に分割。

日毎の日記を走査し、

*p1*[ネタ]昆虫とままごと

のような記事タイトルにマッチすると、それをそのまま出力。続けて、先の対応表を参照し、

<a href="https://rekken.hatenablog.com/entry/YYYYMMDD/??????????">はてなブログに移転しました</a>

という移転告知を出力。もとあった記事本文は捨てる。

この結果をはてなグループの日記にアップロード。アップロードには はてなダイアリーライター (hw.pl) を使う。HTTPS でのアクセスが必須になっているらしいが、

require Crypt::SSLeay;

が通らず、Crypt::SSLeay を CPAN で取ってきて build しようとしても失敗する。

コードの中身をちゃんと確認していないが、Crypt::SSLeay が登場するのはここだけ。stackoverflow のやりとりを参考にしつつ、これを

require Net::SSLeay;

に書き換えると問題なく動いた。