Hatena::Grouprekken

murawaki の雑記

2015-11-13

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)。

f:id:murawaki:20151109174745p:image

PC2-3。

f:id:murawaki:20151109174746p:image

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

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

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

f:id:murawaki:20151112153430p:image

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

f:id:murawaki:20151112153429p:image

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

f:id:murawaki:20151112153432p:image

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

f:id:murawaki:20151112153431p:image

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

ラベルを見ると、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 ということで格は落ちる。でも、こんな風に言語処理業界で発表してもらえると、私も研究しやすくなる。

2015-10-23

アノテーション一致度

アノテーション一致度 (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α と表記している。

2015-09-29

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

2015-09-26

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 を引いていない。

2015-09-20

STRUCTURE と ADMIXTURE の混合分布モデル

久しぶりに NLP タグをつけたが、生物系の混合分布モデルの話。ゲノムを使う系統関係の論文では、PCA と並んで、よくこういう図が出てくる。

参考までに caption も引用。

(A) Representative estimate of population structure for 1,384 individuals from worldwide populations, including 432 individuals from India. The plot represents the highest-likelihood run among ten STRUCTURE runs with K = 7 clusters. Eight of the other nine runs identified a cluster largely corresponding to India, and five of these eight produced plots nearly identical to the one shown.

Figure 2. Population Structure Inferred from Microsatellite and Insertion/Deletion Polymorphisms

縦の列 (column) が各個体。各個体ゲノムの列 (sequence) で表現されている。これが K=7 個の潜在クラスで色分けされている。要は混合分布モデル、というか NLP 業界的にいうとトピックモデル。となると、具体的にどういうモデルなのか気になるところ。しかし、論文を読むと、生物系の人が生物の言葉で語っていて何度かくじけた。今回 ADMIXTURE の論文 (2009) を見たところ、最初から統計の言葉で説明されていて、ようやく糸口がつかめた。NLP 的な説明に翻訳してみる。

まずソフトウェアの確認から。STRUCTURE という検索泣かせな名前のソフトが昔からあった。最近、ADMIXTURE というこれまた嫌がらせのようなソフトが出てきた。新しい論文では ADMIXTURE を使っていることが多い。他に frappe というソフトもあるが、それほど見かけない。まずは新しい方の ADMIXTURE を見て、次に STRUCTURE に移る。

ADMIXTURE の混合分布モデルのグラフィカルモデルは以下の通り。

f:id:murawaki:20150921081447p:image

  • 事前分布が設定されておらず、pLSI 的。
  • 3 重の plate になっている。外側の I が個体のループ。次の J が DNA の列のループ。言語のトピックモデルだとこの 2 つ (I: 文書, J: 文書内の単語)。A は染色体の数。最近の genome-wide SNP の話だと、diploid といって、両親から 1 個ずつ受け継ぐため、A = 2 らしい。
  • \theta個体ごとの混合比。要素数は K。結果の図で色分けされているのはこれ。
  • \varphi が K と J の 2 重ループになっているのも特徴的。言語のトピックモデルだと K ごとにサイズ V の語彙分布を持っている。DNA の場合は列の場所ごとに別の分布を持っているので K x J 個の変数が必要。SNP の場合はベルヌーイ分布。
  • 記号は言語のトピックモデル風に変更している。また、元の説明だとカウントの分布 (多項分布) を考えているが、ここでは列の分布 (categorical 分布) を示している。

Z で周辺化して、W の確率にすると以下の通り。

\begin{eqnarray} p(W | \Theta,\Phi) &=& \prod_i \prod_j \prod_a \sum_k p(z_{i,j,a}=k | \theta_i) p(w_{i,j,a} | z_{i,j,a}=k, \Phi)\\ &=& \prod_i \prod_j \prod_a \sum_k \theta_{i, k} \,\times\, \varphi_{j,k,w_{i,j,a}} \end{eqnarray}

推論は、論文ではまず EM を導入する。しかし EM は遅いからと、別の手法提案する。EM で遅いと言われると、サンプリング脳なのでつらい。

次。STRUCTURE のグラフィカルモデルは、Pritchard et al. (2000) によると以下の通り。

f:id:murawaki:20150921081448p:image

ADMIXTURE のモデルとの違いは、事前分布が追加されていること。\alpha\eta はいずれも Dirichlet 分布のパラメータ。symmetric なパラメータを一つ与えるか、経験ベイズ的にデータから推定するかでモデルに変種がある。ほぼ LDA。

推論。\theta\varphi は共役性を利用して積分消去したいところだが、元論文はそのままにしている。\theta\varphi と z を (実は\alphaも) MCMCサンプリングする。

欠損値は、ADMIXTURE の場合、あらかじめ補完するという。STRUCTURE のような MCMC であれば、補完を sampling に組み込むのは簡単そう。

トピック数 K はあらかじめ指定する。Pritchard et al. (2000) では K を自動推定する怪しげなモデルが説明されている。実際に使われているのだろうか。AIC などを使ってモデル選択をするという手もある。論文でよく見かけるのは、K = 2 ... 5 くらいの結果を並べてお茶を濁すもの。

新しい ADMIXTURE の方がモデルが退化しているのが妙なところ。STRUCTURE はサンプリングの遅さが嫌われて ADMIXTURE への移行が進んでいるみたい。規模感としては、I が千ぐらい、J が数十万。確かに小規模とはいえない。でも、Wikipedia の記事 3M ページに対するトピック推定などと比べると、特別大きいわけでもない。

似た研究を別々に進めるのは不健全。LDA を提案した Blei et al. (NIPS2002) が 2002 年だから、実は STRUCTURE の Pritchard et al. (2000) の方が先行している。NIPS 2002 でも、2003 年の JMLR 版でも、Pritchard et al. (2000) への言及がない。2004 年の Blei の博論では引用されているので、このあたりで生物系の研究に気付いたらしい。というか、Blei の論文リストを眺めていると、2015 年になって Posterior predictive checks to quantify lack-of-fit in admixture models of latent population structure という論文を出しているのに気付いた。

ADMIXTURE の論文は 2009 年に出ているが、トピックモデルへの言及がない。ここ 10 年ぐらいで発展したトピックモデルの手法DNA データにもそのまま使えそう。例えば、階層 Dirichlet 過程を使ってトピック数 K をデータに決めさせるとか、高速化の手法とか。需要はないのだろうか。