murawaki の雑記

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

Hmong-Mien Langage History

Martha Ratliff. (2010). Hmong-Mien Language History.

なぜか一般受けした駄文を一時の気の迷いで書いてしまったが、平常運転に戻る。本の紹介。それも、アフィれない程度に入手困難な本。

モン・ミエン語族に関する本。現代語の紹介とかぬるい話は抜きにして、ひたすら Proto-Hmong-Mien を再構。現時点で最新に近いと思われる。*1

話の前提として、上古音 (Old Chinese) 再構問題がある。最近の定番は Baxter and Sagart. (2014). Old Chinese: A New Reconstruction (再構結果はウェブで公開されている)。*2 この本にあるように、Old Chinese が類型論的にクメール語のような構造を持っていたことはほぼ確実。すなわち

  • 声調はなかった。中古音の平声 (A) は *-∅;、上声 (B) は *-ʔ、去声 (C) は *-h (< *-s)、入声 (D) は -p, -t, -k に由来する。
  • 単音節とは限らない。例えば、「壯」が *k.dzraŋ で、「脰」が *kə.dˤok-s。具体的には tightly attached preinitial consonants と loosely attached presyllables の 2 種類が想定されている。完全な音節の前に、単純な構造の弱い音節 (あるいはそのようなもの) が先行する。クメール語の説明では sesquisyllabic という用語を見るが、Baxter and Sagart (2014) はこの用語を使わない。こうした語はおそらく元は 2 音節語にさかのぼる。
  • 派生接辞を盛んに用いる。接尾辞 *-s で動詞から名詞を派生させたり、接頭辞 *N- で他動詞から状態の自動詞を派生させたり。

こうした特徴は典型的にはクメール語に見られる。同じオーストロアジア語族のなかでは、ベトナム語は声調言語で単音節で孤立語。でも、オーストロアジア祖語にまでさかのぼらなくても、Vietic の親戚に sesquisyllabic で派生形態素を持つ非声調言語が見つかる。Kra-Dai は Proto-Tai の時点で sesquisyllabic だったらしい。派生接辞の話は聞かないけど。

では、大陸部東南アジア (MSEA) 言語連合*3のなかで、残る Hmong-Mien はどうか。Ratliff (2010) によると、上述の Old Chinese の特徴は Proto-Hmong-Mien にもあてはまる。声調はなかった。Ratliff (2010) は disyllabism と言っているが、Baxter and Sagart (2010) が Old Chinese について言っているのと同様に、tight *NC- と loose *N-C- の 2 種類が存在した。派生接辞はというと、漢語の場合と同じような doublet が存在するので、接辞の痕跡を見ているっぽい。

面白い議論が 2 つ。一つは声調発生 (tonogenesis) の時期 (Chapter 3)。鍵となるのは漢語からの借用語。Hmong-Mien に見られる漢語からの借用語には、両者の間で tone category が一致するものがある。一次的な ABCD の分化だけでなく、語頭の有声無声の対立が高低に転化したと推測される二次的分化 (A1, A2, B1, B2, ...) も対応する。借用元 (漢語) と借用先 (Hmong-Mien) はどの段階だったか。tonal か atonal かで 2x2=4 通りの組み合わせが候補に挙がる。Ratliff (2010) は他の言語間の借用事例を見ながら、その一つ一つ検討する。その結果、声調が規則的に対応し得るのは双方が atonal な場合だけだと主張する。なお、従来の説では、声調のシステムそのものが漢語から Hmong-Mien に借用されたと考えられていたとのこと。Ratliff (2010) に従うと、そうした借用は Old Chinese の時期に発生し、その後、tonogenesis が並行的に起きたことになる。それはそれで不思議な話。

ここからは私の妄想。超大雑把に言って、MSEA 型の tonogenesis は

disyllabic (atonal) -> sesquisyllabic (atonal) -> monosyllabic (tonal)

という過程をたどったことになる。狭義の tonogenesis は最終段階にすぎない。その前段階として、少なくとも sesquisyllabic になっていることが、狭義の tonogenesis の条件 (precursor) となる。sesquisyllabic というのも変わった特徴であって、MSEA の地域的特徴と言える。漢語、Kra-Dai の大半、Vietic のいくつは、Hmong-Mien は MSEA の核だけど、その周辺に、クメール語や、別の過程を経て tonal になった sesquisyllabic なビルマ語が存在する。オーストロネシア語族はその外側に位置する。Austronesia と Kra-Dai を兄弟とする仮説はおそらく正しいと私は思うし、そうでなかった場合も、両者の接触があった可能性は高い。広義の tonogenesis は Proto-Austronesian が離れてから発生したということになるか。そして日本語はさらにその外側にいる。稲作とか、文化的には関係があってもおかしくなさそうなのに、言語的にも遺伝的にもまったく無関係っぽいのが不思議なところ。

もう一つ面白いのは numeral classifier に関する議論。Hmong-Mien は numeral classifier を義務的に使うらしい。しかし、Ratliff (2010) は、助数詞のシステム自体を漢語から借用したと推測する。それどころか、Old Chinese においても商周時代の助数詞の使用は限定的であり、この地域における classifier の発達は同時期に起きたかもしれないと推測する。Hmong-Mien には numerical classifier と機能的にかぶるところが多い classifying prefix というのがある。接頭辞の起源が古いことを考えると、後者の方が古いはず。文法化という面では、noun => classifier と class noun => prefix は起きているが、class noun => classifier が起きていないとか。あと、Aikhenvald (2000) を引いて classifier system は通言語的に借用しやすいと言っている。ここはよくわからない。助数詞を使うシステムが既にある言語が新たな助数詞を借りるのが容易という話なのか、システム自体も容易に借りられるという話なのか。

Nichols (1994) は助数詞、声調、二人称代名詞 m- を人類による Pacific colonization の第3層だと主張していた。代名詞は置いておくとして、最初の2つは、こうして仔細に見ていくと、時間的にさほどさかのぼらない可能性が高い。しかも、系統的 (縦の) 関係ではなく、空間的 (横の) 関係を反映しているようである。

それにしても、横の関係は現象として謎すぎる。何とかして機序を解明したいところ。

2016年11月5日追記: 流音について、松本 (2006) は、lateral l と rhotic r の複式、いずれかだけの単式、いずれも持たない欠如型という類型を設定し、日本語を含む「太平洋沿岸言語圏」は単式流音によって特徴づけられるとぶちあげている。松本 (2006) は、ミャオ・ヤオ諸語の 8 サンプルをすべて単式に分類するのみで説明を付していない。これに対して、Ratliff (2010) は、Proto-Hmong-Mien に *l- と *r- の 2 種類を再構している。ただし、異説が少なくない様子。West Hmongic の [l] と [ɭ] の対立を Proto-Hmong-Mien にさかのぼらせる説や、*r- をまったく再構しない説などもあるらしい。Ratliff (2010) は West Hmongic の [ɭ] は *lj- に由来すると見ている。

漢語については、松本 (2006) は複式から単式に変化したとし*4、「この言語に純粋に内部的な要因だけで説明するのは無理であろう」(p.335) と述べて接触的変化を想定する。ただし、Bodman (1980) を引いて、「ある種の環境 (たとえば語末) では、l と r の区別が漢の時代まで保たれていたらしい」と言う。Baxter and Sagart (2014) は当然複式を採用している。Old Chinese の *r が Middle Chinese で retroflexion を引き起こしたというのが、中古音を説明する鍵になっている (例えば「住」 *dro(ʔ)-s > drjuH -> zhù)。Middle Chinese の l- は Old Chinese の *r(ˤ)- に由来する (例えば、「犂」 *C.r[ə][j] > lij > lí)。証拠はいろいろあるが、例えば Proto-Min で *z- に対応すること。*r > l は、先行して *l が消滅した穴を埋めたもの。Old Chinese からは *l- > y-, *lˤ > d-, *lˤr- > dr- と変化したという (例えば、「夷」*ləj > yij > yí、「田」*lˤiŋ > den > tián)。*lˤ > d の最初の証拠は紀元後1世紀だというから、*r > *l はさらに下ることになる。あと *l-, *r- に対応する無声の系列の *l̥-, *r̥- も再構していて、Middle Chinese の th- に対応するという (例えば、「湯」*l̥ˤaŋ > thang > tāng)。

松本 (2006) を読むと、素朴な印象として、流音の類型は安定的という割には例外を頑張って説明し過ぎではないかと思う。漢語に対する説明もひっかかる。チベットビルマ系の言語が「言語接触、それもクレオール化と呼ばれるような言語混合を伴った激しい接触的変化」(p.335) を受けて漢語が成立したというには、流音まわりの変化の時期が新しすぎる。仮に激しい言語接触があったとして (これ自体はおそらく正しい)、Old Chinese は接触後の言語ではないか。もし Proto-Sino-Tibetan では複式だけど Old Chinese までに単式に変化したというなら納得できる。実際には Old Chinese は複式。その後単式に移行した原因を接触に求めるのは妥当なのか?

*1:この記事を書いている最中に新しい論文を見つけた。Weera Ostapirat. (2016). Issues in the Reconstruction and Affiliation of Proto-Miao-Yao.

*2:漢語音韻学業界はジャーゴンに満ち溢れていて近寄りがたいことが多いが、Baxter and Sagart (2014) は普通の用語を使っていてわかりやすい。

*3:Ratliff (2010) は Matisoff に従って Sinosphere と言うが、Sinocentrism の香りが微妙。

*4:英語の Korea は、l ではなく r だから日本語に由来するという私の議論は、松本 (2006) の議論の応用。

ニューラル機械翻訳と記号幻想の死

ニューラル機械翻訳が最近ひどいことになっている。科学技術論文の中日翻訳の結果を見て、ボスの中では機械翻訳はできてしまったことになっている。長年開発してきた用例ベース機械翻訳システムもあっさりお払い箱。しかしボスは満足している。既存研究の再実装にいろんなチューニングを加えただけで、論文にできるような新規性は何一つないにも関わらず。そのぶん、機械翻訳以外をやっている私たちへの風当たりがきつい。

そんなある日、AIが翻訳の不可能性に気付く日というブログ記事を見つけた。率直に言えば、懐かしさすら覚えるひどい代物。ここ2、3年ほどの機械翻訳研究をまったく追わないまま、聞きかじった話を適当に組み合わせるとこうなるのだろう。しかし、いままでぼんやりと考えていたことが、いい感じにツッコミどころとして配置されている。この機会に言語化してみようという気になった。なお、ブログ記事で引用されている文献は一切確認していない。

教師あり学習としての機械翻訳

ニューラル機械翻訳に限らず、機械翻訳の入出力は単純明快。源言語のテキストを入力として受け取り、目的言語のテキストを出力する。テキストといっても、現在のシステムの処理単位は基本的に文。

そうしたシステムをどうやって作るか。翻訳に必要な知識をどうやって計算機に教えるか。人間が翻訳規則を直接書いていた大昔ならいざしらず、現在は計算機自身に翻訳のための知識を獲得させる。そのために、源言語と目的言語の文ペアを大量に計算機に与える。日英や日中なら百万のオーダ。その大量の文ペアから、どういう入力に対してどういう出力をするかという対応を計算機が学習する。教師データと完全一致する文しか翻訳できないようでは困るので、ある程度汎化した形で対応を学習する。教師データから学習するので教師あり学習といえる。*1

では、教師データである源言語と目的言語のペアは誰が作ったのか。人間である。計算機は人間が翻訳した結果から学習し、その結果をもとに未知の源言語テキストを翻訳するのである。翻訳不可能性もへったくれもない。人間が、目的言語に等価な表現がなくて困り、適当な近似的表現を編み出していたなら、計算機はそれを学習する。それが計算機に期待された動作。源言語のテキストが表現しているものが、いままで人間が目的言語で表現したことないもので、翻訳に苦労することなんていくらでもあると思う。そんなものを機械翻訳が魔法のように翻訳してくれるわけがない。そんなことは期待されていない。実際、科学技術論文だけを与えて学習した中日翻訳システムは、「你好」すらまともに訳せない。

現状の確認

機械翻訳の従来の定番手法はフレーズベース統計的機械翻訳とよばれるもので、Google Translate の中身も基本的にはこれ。いわゆる深層学習とは無縁だったはず。

機械翻訳はそれなりに大掛かりなタスクであり、ニューラルネットワークが華麗に復活したあとも、しばらくはニューラルネットワークの使いみちはサブタスクを解くことだった。

やがて源言語から目的言語への翻訳をニューラルネットワークで一気に行うモデルが提案されるようになった。2014年が当たり年で、これこれは、精度的には従来手法を下回っていたものの、唖然とするほど単純なモデルでそれなりの精度を叩き出したことで衝撃を与えた。それまでは、機械翻訳といえば、頭の良い人が計算量の爆発と戦いながら、精緻なモデルを頑張って作る分野だった。*2 今までの苦労は何だったのか。

これらのモデルには長い文に弱いという欠点があったが、同じく2014年に提案された改良版解消軽減されている。現在定番となっているのはこの手法。

Google が発表したニューラル機械翻訳もこの流れ。*3 2016年9月には Google Translate の中英翻訳がニューラル機械翻訳に置き換えられている。他の言語対もそのうち置き換えられるだろう。

記号操作の排除

言語は少なくとも表層的には記号列でできている。記号への思い入れが強い人がいて、記号だけで一つの業界ができていたりする。しかし、記号の背後にある意味についてはいまだに誰も正しい扱い方を知らない。意味についても記号の操作だけで何とかできると考える人がいた。isa(Socrates, Man) みたいに記号によって記号同士の関係を記述するとか、Woman を +HUMAN, +ADULT, -MALE のように別の記号の組み合わせに分解して表現するとか。少なくとも昔の人工知能研究はそんな感じだった。でも、人間のような天然知能は記号操作だけを行っているわけではない。結局、記号操作だけで完結する実用的なシステムが作られることはついになかった。ニューラル機械翻訳はそうした記号幻想に引導を渡そうとしている。定番化した手法の時点で記号排除が進んでいるうえに、最近の流行はより一層暴力的に記号を扱うこと。

ニューラル機械翻訳であっても、入出力は源言語と目的言語の文、つまりは記号列。しかし記号列なのは入り口と出口だけで、その間をつなぐ経路からは記号が徹底的に排除されている。

ニューラル機械翻訳は、広くは sequence-to-sequence (seq2seq)、つまり系列から系列へ変換する手法の一種として実現されている。源言語系列は一度に全部受け取るが、目的言語側では記号を一つ一つ出力する。少しややこしいが、システムへの入力は (1) 源言語記号列と (2) システム自身が途中まで吐いた目的言語記号列。これらをもとにシステムは目的言語の次の記号を出力する。

日英翻訳を例にとると、源言語の記号列「私 は 学生 です 。 」( は終了を表す特殊記号) と目的言語の途中までの記号列「I am a」を受け取ったとき、システムは次の出力記号として「student」を吐く (ことが期待される)。出力の頭では、源言語の文だけを受け取った状態で「I」を吐くし、「.」を吐いた次は を吐く (ことが期待される)。

システムの中身を直感的に説明するのは難しい。LeCun 御大の例えをもじって、ノブを使った説明を試みる。機械翻訳というブラックボックスには、上部と下部に大量の穴があいていて、それぞれ入力と出力に対応する。上部の適切な穴に水を注ぐと、下部の適切な穴から水が出てくる。上部と下部の穴の間には複雑にからまったパイプがあり、途中で分岐 (というより分身) したり合流したりするし、途中に水を貯めている箇所があったりもする。そういう箇所にはノブがあって、水の流れを制御する。実際には、量が増幅されたり、負の値をとったりするので、水で例えるのは微妙だけど。

上部と下部の穴は何を表すか。いま、源言語と目的言語の語彙をそれぞれ3万に制限するとする。足りない語は無理矢理 という特殊記号に変換してしまう。そうすると、源言語の各単語に対して、3万個の穴を用意し、そのうちの一つだけに水を注げばよい。「私」なら42番目の穴、「は」なら3番目の穴といった具合。源言語文が を含めて 6 つの記号だとすると、それは 6x3万=18万個の穴に対応する。出力済みの単語も同じように上部の穴に対応していて、水を注ぎ込む。下部の穴は、次の単語を表す3万個の穴。そのうちの一つから水が流れ出す。802番の穴なら「student」といった具合。

学習とはノブを調整すること。ノブを適切に調整していないと、別の穴からちょろちょろと水が漏れたりする。正しい穴だけから水が出るようにノブを調整する。こういった階層の深いシステムであっても、充分な教師データを与えれば適切にノブを調整できることがわかった。それが深層学習とよばれているもの。とはいえ、途中を流れている水を見ても、何が起きているのか人間には (システム設計者ですら) さっぱりわからない。

そろそろノブの例えが厳しくなってきたのでここでやめにするが、最後に一つ付け加える。システム内部は、水の流れが多いか少ないかという数量で制御されている。確かに入り口と出口は離散的だけど、中は連続値で支配されている。記号の出る幕はない。

記号の連続空間表現

機械翻訳において、意味はどのように扱われているのだろうか。ニューラル以前は、記号同士を直接結びつけようとしていた。素朴には、例えば、英語の「cat」と日本語の「猫」を結びつけておけばよい。しかし、そう単純にいかないからシステムが複雑化していく。「bank」が「銀行」と「土手」に対応するといった曖昧性、「punctual」と「時間 に 正確だ」のように単語単位では扱えない対応など。そこで、ニューラル以前のフレーズベース統計的機械翻訳がとった対策は 2 つ。(1) 単語ではなく句を単位にする。(2) スコアによって曖昧性を解消する。フレーズベース統計的機械翻訳は、句単位での源言語と目的言語との対応にスコアを紐付ける。翻訳時には、とにかく候補を列挙して、スコアが最大となる訳を選んでいた。スコアのような非記号的要素が加わったとはいえ、記号同士を直接結びつけていた。

ニューラル機械翻訳は記号同士を直接結びつけるのをやめてしまった。システムの中で何が起きているのかよくわからないが、入力直後と出力直前の処理であればまだ想像できる範囲内。

入力の各単語は、まず連続空間表現 (分散表現) に変換される。(-1.26, 0.23, 0.92, ..., -0.54) のような、500次元くらいの実数値の羅列。こうした数値列が「私」、「は」といった単語タイプごとに辞書に格納されていて、入力単語は辞書引きによって連続空間表現に変換される。源言語の語彙を3万に制限していたので、3万x500で1500万個の実数値。目的言語も同じだけある。この数値列が実際のところ何を表しているのかよくわからない。ただ、「私」の連続空間における近傍を探すと「僕」が見つかったりする。意味的に似た単語が近くにくる傾向は確認できるので、何らかの意味を表しているのだろうと推測できる。

ニューラルネットワークの特徴量と意味論の素性は全然別物。前者は連続値で後者は離散的。実態を確認せずに「特徴量 = feature = 素性」という連想ゲームをやるのは無意味。

入力は置いておいて、出力直前の処理を見よう。出力単語の候補も辞書に格納されている。例によって語彙が3万で、500次元とする。やはり似た意味の単語は近くに集まっている。出力直前には、システムはこれと同じ長さ (500次元) の数値列を作り出す。システムはこの数値列と出力候補の3万語各々との内積をとり、一番大きな値を返した候補を出力する。内積\mathbf{a}\cdot\mathbf{b}=\left\|\mathbf{a}\right\|\left\|\mathbf{b}\right\|\cos\theta と変形でき、長さがほぼ同じと仮定すると、単なる cosine 類似度になる。つまり、システムが作った500次元の数値列に一番近い連続空間表現を持つ単語を選んでいると解釈できる。これは面白くて、システムはまず次に出力したい「意味」を作って、次にそれを一番うまく近似する単語を選んでいることになる。

出力直前の処理は、ニューラル機械翻訳が犯す誤りを見るとよくわかる。例えば、英日翻訳で、「Tunisia」を「ノルウェー」と翻訳するといった不思議な間違いが生じる。「チュニジア」も「ノルウェー」も地名としてテキスト中で同じように振る舞うから、連続空間上で近くに配置され、つい間違えてしまうのだろう。

要素還元主義のおわり

「bank」が「銀行」と「土手」に対応するといった曖昧性はどのように解消されているのだろうか。よくわからない。わからないので以下は単なるクソポエムだが、源言語文の文脈によって解消されているのではないかと想像する。

入力単語はまず連続空間表現に変換されると言ったが、この数値列から出力の意味を直接作ろうとするのではない。さらに変換をかませた結果を使う。この変換は、源言語の系列を前から後ろに流れてくる数値列と自身の数値列を合成することで実現される。同じように、後ろから前に流れてくる数値列と自身の数値列を合成しており、最終的には前向き版と後ろ向き版を結合したものを使う。

想像するに、この前向きと後ろ向きの流れが文脈を表していて、例えば源言語文で「deutsche」が「bank」の前に来ていたら、前向き文脈に引っ張られて「銀行」の方の意味が活性化するのではないか。本当にそんなことが起きているのか検証したいところ。

ともかく、ニューラル機械翻訳以前は、文をどうやって翻訳に有効な構成要素に分解するかに頭を悩ましていたのだが、文脈の数値列によって、ふわっと解消されてしまったように見える。

文法よいずこへ

翻訳においては、訳語の選択だけでなく、語順の変換も難しい。ニューラル機械翻訳以前は、源言語記号列を目的言語記号列に並べ替えるモデル (distortion model) がまず研究された。これは単なる列の並べ替えだが、それでは駄目で、統語構造をちゃんと考えましょうという研究も流行っていた。

ニューラル機械翻訳が来て、時計の針が巻き戻されてしまった。seq2seq は系列を見ているだけで、統語構造を陽には扱わない。陽には扱っていないのに、語順を適切に並べ替えたように見える結果を出力してくる。並べ替えができるということは、この巨大なモデルの膨大なパラメータのどこかに語順に関する情報が保持されているはずである。それがどう表現されているか以前に、どのあたりにあるのかすらよくわからない。誰か助けて。

再帰性は実は難しくない

人間が他の動物と異なるのは言語を持つことであり、言語を特徴づけるのは再帰性だと思っていた。人間と他の動物との知能にはそれなりの断絶がありそうだから、再帰性を扱うのはそれだけ難しいと推測してもおかしくない。しかしどうやら再帰性はそんなに難しくないらしい。単なる系列モデルで再帰性が扱えることが実証されてしまった。

2014年末に発表された Grammar as a Foreign Language は、seq2seq で構文解析を行う。入力は

John has a dog .

のような普通の文。出力は

(S (NP NNP )NP (VP VBZ (NP DT NN )NP )VP . )S

のように構文木を直列化したもの。ニューラル機械翻訳に既存の構文解析器の出力をひたすら食わせて訓練すると、少なくともその構文解析器の振る舞いは再現できてしまったようである。

何が起きているのだろうか? 自分が「(NP」を吐いたことを覚え続けておいて、適切な時点で「)NP」を吐く、あるいはスタックに非終端記号を積んだら、あとで取り出すということはできている。それに、「(NP」を吐いたら、NP 内という文脈に移行して、「)NP」を吐いたら、S 内という文脈に戻りつつ、既に NP を吐いたという追加情報を加えた文脈に移行できている。この2つを系列モデルで難なく行えることが実証されてしまった。それも実用的な精度で。

もちろんこれは教師あり学習であり、構文木は教師データとしてシステムに直接与えられている。幼児の言語獲得のように明確な教師データのない設定で実現できてはじめて再帰性を克服できたと言えるのだろうが。

Grammar as a Foreign Language は本気で構文解析を置き換えるというよりも、単なる一発ネタっぽかった。2016 年に発表された Recurrent Neural Network Grammars はもう少し本気さがうかがえる。やりかたは、seq2seq よりも遷移型 (前から順番に単語を読みながら構文木を組み立てる) の構文解析に近い。とはいえ、seq2seq と同様に、系列モデルの枠組みで、文脈を前から後ろに流しながら構文解析を行っている。

言語には系列データとしての側面と、再帰性を持つ構文構造という側面があり、両側面をどうやって統合的に扱うかは個人的にずっと謎だった。伝統的な構文解析は系列としての側面を軽視しすぎている印象があったし、従来の系列モデルは構文的側面を完全に無視していた。どうやら、系列を主体としつつ再帰性を扱うのが正解っぽい感触がある。

さらなる暴力の連鎖

ここまではテキスト処理だけを見てきたが、画像から説明文を生成する研究も2014年頃から流行っている。画像を入力すると、「A group of people shopping at an outdoor market. 」のような自然文が出力される。これも結局、源言語文だったものが画像に置き換えられただけで、翻訳の一種と言える。記号列だった入力が、最初から数値列で与えられる。テキスト翻訳の場合は源言語の情報を過不足なく目的言語に変換する必要があったが、画像の場合は、膨大な数値列から必要な情報を抽出する感じ。それを除けば同じ枠組み。どうしてこんな無茶苦茶なモデルが動いているのだろうか。

機械翻訳の多言語化も流行っている。一つの源言語から複数の目的言語へ翻訳したり、複数の源言語から一つの目的言語へ翻訳したり、さらには多対多だったり。途中のパラメータを共有している。単純には教師データが増えるという利点がある。それ以上に深い効果があるのかはよくわからない。言語対特有のエラーが減るという観察もある。

ニューラル機械翻訳では内部から記号操作が排除されたとはいえ、入力と出力は記号列である。記号幻想の最後の拠り所といえるここにも暴力の嵐は及んでいる。ニューラル機械翻訳では語彙を3万とか、比較的小さな数で固定しないといけない。語彙を増やすと速度が下がるし、低頻度語はうまく学習できないし、教師データに出てこない未知語は学習しようがない。そこで、入出力を単語単位で扱うのをやめて、あるいは補助的に、もっと小さな単位を導入する。文字単位で処理するとか、文字よりは単位が大きいものの、高頻度な文字の連鎖を適当に連結しただけの代物を使うとか。さらに、これは (まだ) 機械翻訳への適用ではないけど、文字よりも小さなバイト列を処理するという話すらある。もう無茶苦茶。

おわりに

記号絶対殺すマン自体は大昔からいて、おそらくコネクショニストとよばれていたのだと思う。よく知らないけど。おもちゃのような実験設定でいろいろ議論している昔の論文が探せばみつかるはず。機械翻訳は、そういう実験とは違って、大勢の頭の良い人が長年取り組んできた実際的な問題。この問題がある程度解けたとなると本物である。

複雑だと思っていた問題が、驚くほど単純なモデルで解けている。ではそれで満足かというと、まったく満足感がない。わかった感じがほとんどなくて、むしろもどかしい。機械翻訳は個別の現象を分析するには複雑に入り組みすぎている。

そもそも、ここに書きなぐったことがいつまで有効かもまったくわからない。異常な速度で新しい成果が報告されるので。

2016年11月12日追記: 11月11日頃から、Google Translate の日英翻訳もニューラルっぽい振る舞いをするようになった。公式の告知はないけど。

私には当たり前すぎて明確には書いてなかったけど、読者にとってはもしかしたら当たり前ではないかもしれないこと。機械翻訳という問題が最終的に解決したとは私は微塵も思っていない。従来よりも良い精度の翻訳が、従来よりもはるかに簡単なシステムで実現できるようになっただけ。機械翻訳は複雑な問題なので、現時点で解けない事例はいくらでもある。その本質的な難しさを垣間見たければ、takeda25 さんのブログ記事がおすすめ。

*1:ニューラル機械翻訳が来るまで、単なる文ペアは明示的な教師データとはあまり考えられていなかった。以前は要素還元主義的で、単語や句といった文より小さな単位で源言語と目的言語を対応付ける必要があった。単なる文ペアにはそうした対応の正解が付いていない。計算機は、正解データがないまま、そうした対応を学習する必要があった。だから、教師データのない状況で学習する、教師なし学習の一種とみなされがちであった。

*2:ニューラル以前の統計的機械翻訳モデルの、作っている人の頭のヤバさ加減を知りたければ、渡辺太郎ほか『機械翻訳』(2014) を眺めればよい。

*3:Google のシステムは金に物を言わせたえげつない代物で、うちの研究室程度の資金力では再現しようがない。

Comparative phylogenetic analyses uncover the ancient roots of Indo-European folktales

Sara Graça da Silva and Jamshid J. Tehrani. 2016. Comparative phylogenetic analyses uncover the ancient roots of Indo-European folktales. Royal Society Open Science.

各民族がある民話類型を持っているか否かをバイナリコーディングしたデータベースがあり、さらに印欧語族の年代付き系統樹がある。民話が系統樹に沿って継承されたと仮定し、祖語の状態を推定する。最初は 275 種類あった民話はフィルタリングされてどんどん減っていくが、残った一つ、ATU 330 'The Smith and the Devil' は印欧祖語が有していた可能性が高いと主張する。しかしこの主張は怪しいと思う。そのあたりをメモ。

最近締め切りにばかり追われていて、締め切りのない話は永遠に後回しになりそうなことにふと気づいた。この論文も公開されたのは 1 月で、その時雑記に書こうと思っていたのに、もう 4 月である。*1このままでは今までに身につけた資産を食い潰すばかりでジリ貧。そこで、休日は締め切りのことは忘れて新しいことをやると決めた。ということで、この雑記を見かけても、どうか締め切りの催促は控えてほしい。

本題。分子生物学由来の統計モデルは、言語に限らず文化的特徴にも適用されている。第2著者の Tehrani はその研究者。トルクメン刺繍の類型の伝承みたいな渋い研究をやっている。

文化的特徴となると、言語以上に水平伝播が問題になる。この分野では、系統的な縦の継承を phylogenesis、横の伝播を ethnogenesis と呼んでいるらしい。今回の研究は、phylogenesis が従来考えられてきたよりも強いという主張になっている。

まず素朴な感想として、人類学系の人たちは自分で系統樹を作る気がないというのが新鮮。系統樹はよそで作られたのを借りてくるものらしい。言語研究者としては、系統樹こそが推定したいものなんだけど。*2

系統樹を所与とすると、観測されたデータが系統樹に沿って継承されたかをテストできる。具体的な方法として、D という指標を見たり、Towner らの autologistic analysis をやって、基準に満たない民話をどんどん取り除いていく。これらの方法はこの論文で知った。機会があれば詳しく見るかも。D は系統樹上でのテスト。Towner らの手法は、観測データの分布を (1) 空間グラフと (2) 言語グラフの組み合わせとしてモデル化し、それぞれの要素の重みを推定する。空間グラフは、言語に紐付いた地理位置を見て、適当な距離内にある言語ペアに辺を引いて作ったグラフ。言語グラフは、語族、語派といった言語系統上のクラスタを二次元グラフで置き換えたもの。言語研究者からすると、系統樹を潰してしまうなんて、ありえない乱暴な処置。さすが人類学者。

これらの手続きにより、275 種類の民話から 76 種類が選抜される。この時点で怪しいと思うが、後回しにする。生き残りに対して、いよいよ系統樹上の状態を推定する。系統樹Bouckaert et al. 2012 が基礎語彙をもとに作ったもの。変化のモデルは普通の連続時間マルコフ過程。0 が死んでいる状態、1 が生きている状態。変化の速度を制御する遷移行列を Q = \begin{pmatrix} -\alpha & \alpha \\ \beta & -\beta \end{pmatrix} とすると、ある時点で状態 i \in \{0,1\}のとき、時間t後の状態jの確率は P(x=j|\pi(x)=i,t)=\exp (tQ)_{i,j} で表される。系統樹と葉の状態は観測されているので、推定するのは内部ノードの状態と遷移行列のパラメータ。結論として、印欧祖語が有していた確率が 50% 以上の物語として、328330402554 の 4 種類が残る。閾値を 70% に引き上げると 330 番だけが残り、これは別のテストも通過する。330 番は、都合の良いことに、鍛冶、つまり鉄器にまつわる民話。おかげで、著者らはクルガン仮説に関する楽しい妄想を語っている。

数式が出てきまくる統計の話だからといって、びっくりするような魔法があるわけではない。人手でも大雑把には推測できる。系統樹があって、葉ノードは黒 (生) または白 (死) で塗りつぶされている。内部ノードはまだ色が塗られていない。子供を見て、だいたい黒で塗ってあったら自分も黒だろうし、白なら白。拮抗しているなら半分黒、残りを白で塗りつぶす。そんな感じの操作を繰り返して根までさかのぼったとき、黒の割合がどの程度か。

結局、印欧祖語の状態推定に効いているのは、早期に分岐した (ことになっている) ギリシア語っぽい。民話 330 番の場合、ヨーロッパ系言語は 3 言語を除いてすべて保有しているが、残りは Hindi, Romani, Greek しか保有していない。Romani (ジプシー) はヨーロッパ側と考えると、インド・イラン系ではヒンディー語しか残らない。こんな状態で、本当に印欧祖語が有していたと言えるのか。クルガン仮説について妄想を語って許されるのか。

330 番よりも、最後に脱落した 554 番の方が印欧祖語話者に由来する可能性が高そうに見える。実際、Table S5 を見ると、印欧祖語 (PIE) の保有確率は 330 番が 0.54 に対して、554 番は 0.61。554 番はインド系 (Hindi, Urdu, Romani)、イラン系 (Iranian, Tadzik, Kurdish, Ossetic)、Greek、Armenian が持っている。330 との違いは、ヨーロッパ系の歯抜けが 8 言語と少し多いこと。おそらくこの影響で、ヨーロッパ祖語の保有確率が低く推定され、同時に遷移行列のパラメータが大きく (変化しやすいように) 推定され、印欧祖語の保有仮説が Bayes factor が弱くなったのだろう。近現代社会において目当ての民話が採取できたかはかなり偶発的な要因に左右されていそうだが、今回の推定はその偶発的要因の影響を強く受けているっぽい。専門家の意見を聞きたいところ。

さらに言えば、autologistic analysis が怪しい。ギリシア語が、印欧語族中で早期に分岐した (ことになっている) ために、印欧祖語の状態推定に強い影響力を持つことは既に言ったが、それだけでなく、ギリシア語自体が他の言語に対して水平の強い影響力を持っていたことは明らか。ヨーロッパはもちろん、インド・イラン系についても、バクトリアやインド・グリーク朝の影響が考えられる。言語は対等ではなく、影響力の強いものと弱いものがある。しかし、autologistic analysis では言語は対等で、影響力の区別はない。autologistic analysis が提案されたときの適用先は Western North American Indian で、多数の小集団が共存する地域だったから、このモデルでも大きな問題はなかったのだろう。しかし印欧系はそうはいかない。方言周圏論もそうだが、水平伝播を考えるなら、影響力の大小をモデルに組み込む必要があるだろう。その数値データをどこから持ってくるかが難しいのだけど。

*1:しかし、なぜか 4 月 22 日付けで Science の記事が出ている。今月になって Mark Pagel が Current Biology に follow-up を書いたから認知されたらしい。

*2:ただ、最近は別のやり方も考えている。言語データは DNA とくらべて貧弱すぎて系統推定にも限界がある。DNA で系統樹 (というか有向非循環グラフ (DAG) ) を作っておいて、DAG 上を言語が伝播するような推定をやっても良い気がする。

Creoles are typologically distinct from non-creoles

クレオールの類型論的性格について、非クレオールから弁別的*1だと主張する一連の論文群。表題に採用したのは 2011 年のジャーナル論文。

翌 2012 年の EACL の workshop*2で発表された論文の方が論点が整理されている。

著者の 1 人が 2014 年に発表した 2 編の guest column によって、何だか論争になっているらしいことと、著者が従来の立場を維持していることがわかる。

別の著者が 2013 年に出した論文もあるが、所属機関からは無料で閲覧できなかった。abstract、supplemental content と上記の guest column に引用された部分しか見ていない。

彼らの基本方針はデータベースを用いた定量的分析。これ自体は良い。しかし、具体的に採用している手法が変。そこでまず彼らの手法を見て、それから別の手法を考えてみる。

解きたい問題

知りたいのはクレオールの類型論的特徴がどこから来たか。2012 年の論文によると、4 通りの立場が考えられる:

  • superstrate (lexifier)
  • substrate(s)
  • feature pool (only superstrate and substrates)
  • restructuring universals

最初の 2 つは、それぞれ superstrate = 上層言語 (lexifier = 語彙提供言語)、substrate = 基層言語に由来するという立場。これはない。そもそもクレオールが興味深いのは、語彙の大半が lexifier (superstate) に由来するのに、文法的には lexifier とは大きく異なること。さらに言えば、substrate とも異なる。そもそも superstrate や substrate と大差ないのであれば、クレオールという区分自体が不要だったはず。

feature pool は superstrate と substrate の特徴量が pool されていて、そこから適当に値を選択していくという説明。この説を否定するには、いずれにも存在しない特徴量の値がクレオールにあればよい。そして、実際にあるらしい。

最後の restructuring universal は、クレオールの形成過程を retension (lexifier, substrates), loss (pidginization), reconstruction (grammaticalization, creolization) からなると考える。ピジン化の過程で失われた特徴をクレオール化の過程で作り直すのだが、ここに何らかの普遍性が存在すると考える。著者らはこの立場。私もたぶんそうだろうと思っている。

著者らの主張で飛躍だと思うのは、表題にも採用した creoles are typologically distinct from non-creoles というもの。単に restructuring universals の示しただけでは、この主張の裏付けにはならない。restructuring の結果、lexifier とも substrate とも異なる特徴を獲得したとしても、それが非クレオールの中でもありふれたものである可能性が排除できていない。

NeighborNet

著者らは一貫して分析手法として NeighborNet を使う。いわく、tree ではなく、network だからクレオールの分析に適していると。たしかに NeighborNet は、tree としては conflict を起こす部分を網状に可視化する。しかし bottom-up clustering であり、基本的には木を作ろうとしている。superstratist と substratist は木に基づくとみなせる。だから、NeighborNet の結果が彼らにとって不都合であることを示せば良い。でも、feature pool と universalist はそもそも木に基づかない。NeighborNet を作ったところで、何の意味があるのかわからない。

とりあえず結果を見ていく。まずは superstratist の検証から。クレオール群と lexifier 群を入力として NeighborNet を作る。その結果、クレオールクレオール同士で、lexifier は lexifier 同士で別々にクラスタが形成された。superstratist の立場からすると、クレオールは対応する lexifier とクラスタを形成するはず。よって supserstratist は支持されない。

同様にして、substratist の検証は、クレオール群と substrate 群による NeighborNet で検証される。するとやはりクレオールと substrate が別々にまとまり、両者が分離できる。ただし、クレオールと非クレオールの境界に近い言語が存在する。おそらく、文法的側面では substrate がクレオール形成に与えた影響は superstrate よりも強いのだろう。

feature pool の検証は、lexifier, substrate、クレオールの 3 種類を入れた NeighborNet による。すると lexifier と substrate がクラスタを形成し、クレオールと対立した。しかしこの方法は直接的ではない。feature pool 説に従うなら、クレオールは対応する lexifier と substrate の間に位置しなければならない。これを検証するなら、それらの 3+ 言語だけを比較すれば良い。複数のクレオールを分析に突っ込み、クレオール同士でクラスタを作った結果、クラスタの重心が、lexifier と substrate の中間から離れていったため、結果として lexifier と substrate がクラスタを作ったというシナリオも考えられる。

universalist の検証には、さらに lexifier でも substrate でもない言語を追加している。その結果、やはりクレオールだけでクラスタができた。著者らは、この結果をもって、クレオールが非クレオールから弁別的であると主張する。この論理展開が謎。restructuring universals が支持されるかを検証するはずだったのに、いつのまにか creole distinctiveness の議論にすり替わっている。それに、わずか 52 言語のネットワークでは、世界の言語類型を網羅していないのではないかという疑いが拭えない。

分類器

restructuring universals については一旦忘れて、先に弁別性の問題を片付ける。クレオールは非クレオールから弁別的か。この問題に直接取り組むには、2 値分類器を作れば良い。各言語の特徴量列を入力とし、クレオールなら 1、非クレオールなら -1 を返すような分類器。もし高精度な分類器が作れたなら、弁別性は支持される。もし失敗した場合は、2通りの解釈が考えられる。(1) 分類器の作り方が悪かった。(2) クレオールと非クレオールは弁別的ではない。

普通に言語処理をやっていたら分類器を作ることを思いつくはず。著者らが何年もの間ひたすら NeighborNet に固執しているのが謎。一から十までソフトウェア化されているモデルしか使わない方針なんだろうか。生物系の研究を見ると、この分野には分業体制があるみたい。ごく一部の頭の良い人達がモデルを作ってソフトウェア化し、残りの人はそのソフトウェアを使ってデータ作成と分析だけをやっている。統計的な言語研究もそんな感じになるのだろうか。

話が脱線したが、言うだけでな何なので実際にやってみた。使用データは Atlas of Pidgin and Creole Language Structures (APiCS)World Atlas of Language Structures (WALS)

APiCS の特徴量の一部には WALS への mapping が記述してある。その 47 種類の特徴量を使う。言語数は 77。ピジンを含む contact language を広く収録している。この点は問題かもしれない。しかし、APiCS はピジンとかクレオールといった分類を明示的に付与していない。とりあえず全部使う。

WALS 側では Pidgins and Creoles に分類されている言語を除外する。さらに欠損値の比較的少ないもの 541 言語を残す。APiCS と WALS のデータを結合し、欠損値は multiple correspondence analysis (MCA) で適当に補完。

分類器は線形 SVMsklearn.svm.LinearSVC を使ったので、内部的に LIBLINEAR を呼んでいるはず。パラメータは適当に grid search。5 分割交差確認で精度を測定。

結果。accuracy は全部非クレオール (NC) に分類すると 87.5% なのに対して、SVM は 94.2%。クレオールに着目すると、再現率 79.7%、適合率 71.4%、F1 が 75.3%。混同行列を示す。











混同行列
sys
NC C
ref NC 527 14
C 22 55
そういう訳で結構分類を間違えている。ここから先、カーネルトリックを使って非線形分類を頑張っても良いが、解釈が難しくなりそう。線形分離できないことをもって弁別的でないと結論づけても良さそうに思う。

2015 年 11 月 18 日追記: APiCS のピジンを除去して再実験してみた。ピジン排除の基準は、sociolinguistic feature ""Ongoing creolization of pidgins"" の値が "Not applicable (because the language is not a pidgin)" あるいは "Widespread" ではないもの。これで 13 言語が除去された。











混同行列 (ピジン除去版)
sys
NC C
ref NC 534 7
C 10 54
ということで、精度 97.2%、再現率 88.5%、適合率 84.4%、F1 86.4% と少し分類精度が上がった。しかしあいかわらず間違いは残っている。

PCA

SVM の失敗事例を分析してもよいのだが、別の方法を試す。高次元データの性質を知りたいなら、とりあえず主成分分析 (PCA) してみれば良い。

PCA の結果を示す。まずは PC1-2。赤がクレオール (APiCS)、緑が非クレオール (WALS)。

PC2-3。

クレオールは世界の言語の中で偏った一群であることは確か。しかし、非クレオールとは分離されておらず、分布が重なっている。

点が多すぎて密集具合がわかりにくいのでカーネル密度推定を使って連続分布に変換してみる。

PC1-2 の非クレオールの分布。

PC1-2 のクレオールの分布。

PC2-3 の非クレオールの分布。

PC2-3 のクレオールの分布。

クレオールと非クレオールは異なる分布を持つが、両者が重なっていないとはとても言えない。

ラベルを見ると、PC1-2 においてクレオールの中心から外れている言語はピジンが目立つ。でも、Sri Lankan Malay、Korlai、Kikongo-Kituba、Lingala、Mixed Ma’a/Mbugu などは 309 Proportion of native speakers によるとそれなりに母語話者がいてクレオール化されている。

結論と今後の課題

結論としては、クレオールは非クレオールから弁別的とまでは言えない。条件をいろいろ変化させて、もう少し真面目に調べれば、ちょっとした成果にはなりそう。

今後だが、やはり一度脇においていた restructuring universals が気になる。restructuring universals について著者らは何も示せていない。feature pool のモデルと、さらに restructuring universals を考慮するモデルを作って、後者の方がクレオールのデータをより自然に説明できると実験的に示せば良い。しかし、著者らは他人が作ったソフトウェアに頼りっきりなので、手が出せないのだろう。データが充実しつつあるのに、分析できる人がまだいないのは狙い目。

Bakker の guest column を読むと、台湾の Yilan Creole Japanese (宜蘭クレオール) がクレオールでありながら、クレオールの典型から外れていて面白そう。私がこの言語を知ったのは 2008 年 8 月、以下の報告から。

簡単な報告で、語彙の分析が少しあるだけ。

今調べてみると別の報告が出ている。

  • 真田 信治 and 簡 月真. 宜蘭クレオール. 国語研プロジェクトレビュー. 3 (1). 2012.

クレオールは一般に SVO 語順を持つと言われるが、宜蘭クレオールは日本語のような SOV が基本とのこと。格標示の後置詞が使われるのも非典型的。

いまのところ宜蘭クレオールは APiCS には収録されていない。もっと本格的な報告が出たら登録できるかもしれない。

2016年11月12日追記: この記事の最後の方でうだうだ言っていた話もひっくるめて論文にした:

Yugo Murawaki. (2016). Statistical Modeling of Creole Genesis. In Proceedings of the 2016 Conference of the North American Chapter of the Association for Computational Linguistics: Human Language Technologies (NAACL-HLT 2016), pp. 1329-1339.

*1:distinctive をどう訳すか困る。ここでの意味は専門用語的ではないのだけど。

*2:workshop ということで格は落ちる。でも、こんな風に言語処理業界で発表してもらえると、私も研究しやすくなる。

アノテーション一致度

アノテーション一致度 (inter-annotator agreement) を測りたいけど、κ が使えない場合どうするか。想定しているタスクは以下の通り。テキストからいくつか chunk を抽出し、それぞれにラベルを付与する。chunk の大きさはバラバラだし、テキストの一部しか被覆しない。

てっきり FAQ になっているかと思ったが見当たらない。少し調べた結果、以下の手順を採用した。

  1. アノテーション結果を集約したデータを 1 セット用意
  2. 一致度を測りたいサンプルを対象に、1 とは独立にアノテート
  3. 集約データを普通の正解、独立にアノテートした結果をシステム出力扱いして、再現率、適合率、F 値等の通常の評価尺度を使う

タスクの設定によっては Krippendorff’s α も使えるかもしれない。もしより良い方法を知っていたら教えてほしい。

以下、ここに至った経緯をメモ書き。

ざっと調べた中で一番詳しく議論していたのが Grouin et al. (2011)。workshop 論文だけど。

アノテーション一致度の尺度としてすぐに思い浮かぶのは Cohen's κ とその変種。N 個の要素に異なり数 C のラベルのいずれかを付与する場合。Cohen's κ は 2 人のアノテータの一致度の尺度。単にラベルが一致した割合を測るのではなく、偶然一致する確率で補正している。

κ 系の尺度が問題となるのは、固有表現認識のように、テキストの一部にタグ付けする場合。N 個の要素というが、その要素自体が自明ではなくなる。Grouin et al. (2011) は要素を markable と呼んで、いろんな markable を検討している。n <= 6 の n-gram とか。そうすると overlap する n-gram は明らかに独立ではない。独立試行の仮定に反している。

また、データのごく一部にしかタグ付けしない場合、タグ付けされていない (どうでもいい) 部分が与える影響が大きくなりすぎてしまう。

次に考えているのが pooling。複数のアノテータの間で、少なくとも一人がつけたものに対象を限定する。これもやはり重複する markable 同士が独立ではないと思うが、その指摘はない。この方法だと低めの数字が出る。

これも指摘されていなけど、ラベル異なり数が増えてくると偶然一致の確率が 0 に近づいていくはず。その場合、単に一致する割合を測るのと変わらなくなるだろう。

結論として F-measure を使えば良いと Grouin et al. (2011) は主張している。

Grouin et al. (2011) は Alex et al. (2010) を参照している。これも workshop 論文。

こちらもタスクは固有表現認識。

For each pair of annotations on the same document, IAA was calculated by scoring one annotator against another using precision (P), recall (R) and F1. An overall IAA was calculated by micro-averaging across all annotated document pairs. We used F1 rather than the Kappa score (Cohen, 1960) to measure IAA as the latter requires comparison with a random baseline, which does not make sense for tasks such as NER.

もう一つ引いている Hripcsak and Rothschild (2005) は 3 ページのジャーナル。

こちらは情報検索。要旨だけ読んでおけばよさそう。結論としては F-measure を使えと。

Information retrieval studies that involve searching the Internet or marking phrases usually lack a well-defined number of negative cases. This prevents the use of traditional interrater reliability metrics like the κ statistic to assess the quality of expert-generated gold standards. Such studies often quantify system performance as precision, recall, and F-measure, or as agreement. It can be shown that the average F-measure among pairs of experts is numerically identical to the average positive specific agreement among experts and that κ approaches these measures as the number of negative cases grows large. Positive specific agreement--or the equivalent F-measure--may be an appropriate way to quantify interrater reliability and therefore to assess the reliability of a gold standard in these studies.

Corbett et al. (2007) な chemical named entities を扱う。

彼らも F1 を使う。アノテータ同士の pairwise で。

Inter-annotator agreement was measured pairwise, using the F score.

κ は使い物にならないと主張。

Given the character-level nature of the annotation task, and that the papers were not tokenised, the task cannot sensibly be cast as a classification problem, and so we have not calculated any kappa scores.

しかし pairwise な比較は、アノテータによって質がばらついているときに微妙っぽい。

Krippendorff (2004) は独自手法を提案している。

Krippendorff’s α として Wikipedia に長文記事があるが、本人がかなり手を入れているっぽい。

基本は \alpha = 1 - \frac{D_o}{D_e}。ここで D_o は observed agreement、D_e は chance agreement。複数のラベルからなる場合は \alpha = 1 - \frac{\sum_c D_{oc}}{\sum_c D_{ec}}。ラベルタイプごとに別々に計算した結果を集約する。問題は、D_oD_e の計算方法。詳細は省くが、2 つの線分上の重複区間を考慮するような式になっている。

Krippendorff (2004) の手法には微妙な点がある。文字列 A B C D E に対して、A [ B C D ] E のように BCD ひとかたまりにタグ付けする場合と、A [ B ] [ C D ] E のように B と CD をわけてタグ付けする場合を区別したいことがある。私の理解が正しければ、この区別ができない式になっている。

Krippendorff’s α を NLP で使っていて、なおかつ markable の問題がある例として Wacholder et al. (2014) が見つかった。

談話へのアノテート。fuzziness of unit boundaries が問題となる。以下のように既存尺度の問題を述べたあとで独自のクラスタリング手法を提案する。

We show that current metrics for inter-annotator agreement (IAA) such as P/R/F1 and Krippendorff’s α provide inconsistent results for the same text. In addition, IAA metrics do not tell us what parts of a text are easier or harder for human judges to annotate and so do not provide sufficiently specific information for evaluating systems that automatically identify discourse units.

彼らの説明によると、Krippendorff’s α, a variant of the α family of IAA coefficients specifically designed to handle fuzzy boundaries and multiple annotators らしい。

F1 と Krippendorff’s α を文書 (thread) ごとに出して、順位付けしたら全然違う結果がでたという。

ただ、彼らが問題にしているのはむしろ別の点。

They do not pinpoint the location in a document where the extent of variation can be observed.

1 個のスカラーで要約されても役に立たないというが、これは言いがかりに近い。

Stab and Gurevych (2014) も Krippendorff’s α を使っている。

Since there are no predefined markables in our study, annotators have to identify the boundaries of argument components. We evaluate the annotations using Krippendorff’s αU (Krippendorff, 2004). It considers the differences in the markable boundaries of several annotators and thus allows for assessing the reliability of our annotated corpus.

Krippendorff’s αU は低めの数値になる様子。ちなみに Kolhatkar et al. (2013)uα と表記している。

Explaining the Linguistic Diversity of Sahul Using Population Models

Ger Reesink, Ruth Singer, Michael Dunn. Explaining the Linguistic Diversity of Sahul Using Population Models. PLoS Biology. 2009.

せっかく STRUCTURE と ADMIXTURE の混合分布モデルを見たので、言語への応用例にも触れてみる。サフル (オーストラリアとニューギニアに相当) の言語 121 個の類型論データに STRUCTURE を適用し、各言語を潜在クラスの混合として扱う。得られた潜在クラスと各言語の混合比を既存の言語学の知見と比較する。

やっていることは結果の図を見れば一目瞭然。pie chart が各言語で、色分けは潜在クラスに対応している。ここではクラス数 K=10。

生物のように両親から 1 個ずつ、計 2 個のコピーを引き継ぐ (diploid) ということはないので、A = 1。ますます LDA っぽい。

著者のグループは Dunn et al. (Science, 2005) 以来、パプア諸語の系統問題に取り組んでいる。問題は、系統関係不明の大量の言語をどう解釈するか。長期にわたり接触が続いたと見られることから木のモデルは不適当だと著者らは主張する。そこで代わりに混合分布モデルが出てくる。しかし、「そこに山があるから」ではないが、そこにツールがあるからやってみた感はある。時間的変化を考えないモデルなので、得られるのは時間を超越した仮想的クラスタ

系統不明の言語が集まっているという点で、極東はニューギニア周辺に似ていないこともない。日本語は混成言語だと主張している人は、試しに日本周辺の言語にこの手法を適用してみたら良いのではないか。私は混成言語説は支持しないけど。

ここで考えたいのは、広い意味での接触をどうモデル化するか。系統樹の話をすると、「クレーオルとかどうするんですか」という質問が出て FAQ 化しつつあるが、決定打がまだ出ない。木を使うのは計算上の都合。木はひたすら分岐していくだけで、接触や合流を扱わない。一般のネットワークは自由度が高すぎて扱いにくい。Nelson-Sathi et al. (2011) のように、先に木を用意してから、辺を追加するという tricky な手法もあるけど。

その点、混合分布モデルは現実的な解法ではある。系統推定に言語連合を組み込む話も、結局は系統樹と言語連合という 2 種類の混合だった。このモデルでは、言語連合は時間を超越している。接触を通じて徐々に特徴を獲得するという話にはなっていない。

引っかかるのは、例によって特徴量の独立性。最初に、各言語の混合比を draw したあとは、各言語の特徴量の所属クラスは条件付き独立。この特徴量とこの特徴量は連動するという話は扱えない。直感的には、あちこちの言語群からランダムに特徴を借りてくるとは考えにくい。接触時にはこういう変化が起きやすいという一般的な傾向を捉えるようなモデルにしたい。

一応、STRUCTURE には特徴量間の依存関係を扱うための拡張が入っていた。隠れマルコフモデルによって、隣と同じクラスになりやすいという性質を扱っていた。しかし、言語類型論の特徴量は、便宜的に列で表現しているが、実際には集合。順番に意味はないので、マルコフモデルでは表せない。やはり、表層特徴量をそのまま扱うのではなく、依存関係を捉えるような深層構造に写像するという私の現状の方針が良さそう。

Support for linguistic macrofamilies from weighted sequence alignment

Gerhard Jäger. Support for linguistic macrofamilies from weighted sequence alignment. PNAS. 2015.

単語対の文字列的な類似度を定義する。各言語は単語の集合で表現される。言語対の距離は、単語集合同士を比較して、単語対の類似度の平均を用いて定義する。この距離を使って、昔ながらの距離ベースのクラスタリングを行って系統樹を作る。この手続きをユーラシアの言語約 1K 個に適用したところ、既存の語族群の上に大語族 (macrofamily) が作られた。それらの大語族を言語学で過去に提案された (怪しげな) 大語族と関連付けて議論している。

著者は Automated Similarity Judgment Program (ASJP) 一派の人。大規模なデータベースを頑張って作っているのは偉い。しかし、正直言って筋が悪い。

なぜこの論文を通してしまったのか理解に苦しむ。なぜ提案する手続きでうまくいくと期待できるかが説明されない限り、この研究は叩き潰すしかない。

まずはこの研究の位置づけから。広いくくりで言うと、この研究は語彙ベースの系統推定に分類できる (他の方法は、例えば言語類型に基づくもの)。語彙ベースの系統推定には。この研究以外に以下も含まれる。

[B] との違いは、音法則の中でも音対応、要するに現代語同士の対応を見ていること。[B] は音変化 (親から子への変化) をモデル化している。だから祖語の状態が推定できる。つまり、過去から現在への歴史的変化を直接説明している。これに対し、音対応は間接的な手がかり。祖語から分岐した 2 つの子孫において別々に音変化が起きた結果。音対応は歴史的変化を説明しない。だから、これに手続き的な操作を加えた結果出てくるものが何なのかわからない。Materials and Methods を見るとわかるが、謎パラメータつきの謎手続きを何段階も繰り返す。[B] の洗練されたモデルに比べると見劣りする。

[G] との違いは、同源語 (cognate) の扱い。[G] は専門家が cognate か否かを 0/1 で判定し、言語をバイナリ列で表現する。言語変化は 0 -> 1 あるいは 1 -> 0 の遷移でモデル化される。大幅に簡略化されてはいるものの、やはり過去から現在への歴史的変化を直接説明している。これに対し、この研究は、単語同士の関係を 0/1 ではなく連続値で表現する。この連続値が何を意味するかも分からない。語源的に無関係な単語対の類似度なんてノイズでしかない。個別には怪しくても 40 個集めて平均すれば使えるのではないかという希望的観測しか提示されていない。*1

さて、語彙ベースの手法であることを踏まえると、大語族の推定の怪しさは明らか。この研究は、提案手法によって既知の語族をうまく再現できたと主張している。しかし、そもそも既存の語族は語彙ベースの手法 ([H]) で作られたものである。そして、大語族は、語彙ベースの手法ではうまく作れなかったからこそ大語族と呼ばれているのである。前者が再現できただけでは、後者の推定は正当化できない。これが、例えば Pagel et al. (PNAS, 2013) であれば、ultraconserved な単語が存在するという主張にもとづいて大語族を構築している。つまり、大語族の推定が正当化されているし、その妥当性を検証しようと思ったら、ultraconserved とされる具体的な単語の妥当性を検証すれば良い。

もし何かやるとしたら、この研究を叩き潰す方向の検証。大語族を構成する語族間では、ろくに同源語を共有しているとは思えない。では、出てきた距離は一体何に左右されているのか。まず借用が効いていそう。あとは、素朴には、音素体系と音節構造が似ていたら、言語同士の距離も近くなりそう。ただし、この研究が使っている calibrated similarity は、名前の通り、その影響を補正するような類似度尺度になってはいる。何が起きているかを知るには、実際にデータを見るしかなさそう。

*1:考え方としては Greenberg の mass comparison に近いと思うのだが、その文脈では Greenberg を引いていない。