COLING 2012 ワークショップ: モバイルテキスト入力の最前線

本会議は終わったが最後のワークショップがあるので、荷物をまとめて会場の IIT (インドで一番有名な国立の工科大学。インド各地にある) に出発。スーツケースを持ち運ぶのも面倒で、ホテルで預かってもらい、ワークショップが終わったら一度ホテルに戻ってきてホテルから空港に行くことも考えたが、渋滞に巻き込まれると危険なので、会場から直接空港に行くことにしたのである。

Tuktuk で会場まで送ってもらったはいいが、昨日までの招待講演があった会場ではなくレジストレーションがある会場のほうだったので、スーツケースを引きずりながら移動。階段があるのでちょっとしんどい。ワークショップだけ参加の人もいるようで、「ワークショップの場所はどこですか?」と聞かれたので一緒に行く。インドの大学でちょうど英語の感情推定の研究を始めたばかりで、大きな国際会議が開かれると聞いたので発表に来てみた、とのこと。せっかく来るなら本会議からくればよかったのに、と思うのだが、平日は仕事をしていたそうだ。なんか仕事しながら大学通っている人、多い気がする。

さて、今日はテキスト入力に関するワークショップ、Second Workshop on Advances in Text Input Methods (WTIM 2) に参加する。しかしながら会議のハンドブックには9:30と書いてあるのに、ウェブページには9時開始と書いてあって、混乱は必至だと思っていたが、予想通り9時には人が集まらず (かくいう自分も渋滞に巻き込まれて9:10に着いたが)、結局9時半になるまで始まらなかった。(最終的には30人弱集まった。うち日本人は7,8人)

ワークショップの運営は Microsoft Research, India の Monojit さん、Kalika さん、そして SwiftKey の [twitter:@nokuno] さん、の3人で、@nokuno さんもインドビザを準備して来る気満々だったようなのだが、出発前日にパスポートを盗まれただとかなんだとかで、急遽来られないことになったそうだ。海外でパスポードかないというのはかなり致命的なので (すぐ再発行してくれるだろうが)、無事だとよいのだけど……。複数人体制でワークショップやシンポジウムを企画しておくと、不測の事態があっても柔軟に対処できるので、よいなと思った。

まずは @nokuno さんの所属する SwiftKey の Chief Software Architect、Paul Butcher さんによる招待講演。SwiftKey という会社についてご存じない方も多いかもしれないが、SwiftKey の入力システムは Android における 2012 年の最もダウンロードされたアプリ (※ただしゲームアプリを除く) であり、誤りの自動訂正と予測入力で有名である。Paul さん自身は PhD を持っていて研究にも理解のある人で、研究と開発の間のギャップについても意識されており、大変刺激的な話をされていた。この話を聞くことができただけでも、WTIM 2 に参加した価値があると思った。

たとえば、SwiftKey のキー入力でどのような情報を使っている (保存している) かというと、キーストローク、タッチの状態、どこをどう通ったか、という物理的な値を記録しているそうで、a だとか b だとか認識した値で、これを使ってユーザが実際どのキーをどう叩いているか、という「ヒートマップ」を作っていて、これを使ってユーザのモデリングを行なっているそうだ。そこから分かった典型的なユーザ像は2種類で、1つは目でキーを見て入力する人で、典型的には指1本で入力していて、こういう人は提示された情報 (たとえば予測入力や訂正候補) を使ってくれるそうだ。もう1つは「筋肉」で入力する人で、典型的には親指2本で入力していて、キーを見ないで手がどこを押せばいいか覚えているそうだ。あと、ちゃんと打つべき場所のあたりを押しているが入力が速く個々のキータッチが軽い人、そもそも打つべき場所が傾いていて入力が遅くキータッチが強い人、それぞれでキーの反応領域を変えたり、誤り訂正の強さを変えたりしているそうである。

一方 (恐らくヨーロッパの会社なので) 複数の言語を同時に混ぜ書きすることがよくあるそうで、自分が入力する可能性のある言語を登録しておくと、数単語入力すると自動的にいま何語を書いているのかを検出して、言語モデルをスイッチするそうだ。これは完全に統計的なモデルで、どのような言語を混ぜ書きすることもできるそうである。

誤り訂正の自動評価がエンジニアリング的には難しいところだそうだが、彼らは誤りを自動的に発生させるモデルを作っていて、人工的に発生させた誤りがどれくらい訂正できるかによって、質の改善を評価しているそうである。誤りモデルが実際の誤りをどこまで反映しているかが重要 (たとえば単語 unigram だけで誤りを発生されていたら、前後と関係する誤りは出て来ない) だと思うが、インクリメンタルに改善するのであれば問題ないのかもしれない。

予測入力の評価はさらにトリッキーで、ユーザが何回予測を受け入れたか (訂正も同じだが)、どれくらい認知的な負荷を減らすことができたか (予測ウィンドウが入力とともにあっちへ行ったりこっちへ来たりするのは気が散るし、目の位置は固定したほうがいい)、フラストレーションが溜まらないようにできたか、といったようなことが大事だそうだ。訂正しないことと訂正に失敗 (間違った候補を提示してしまう) することでは後者のほうが遥かに、実に遥かに悪いことであり、precision 超重視とのことである。あと「Details matter.」ということで、細かく思えることが重要である、ということだ。たとえば疑問符やカンマ、ピリオドは言語によって形が違ったり、前後にスペースを入れるか入れないかが違ったりするのだが、たった1つのスペースを入れるか入れないかで全然違う、と。

開発で重要なことはユーザを幸せにすることで、研究的にすごいことをやることではない、という一例として、ユーザからのフィードバックとして「予測の文字の色をピンクにしてほしい」というリクエストがあって、開発チームは「そんなフォントの色に何の意味があるのか」と思ったが、色を変更しただけでなんと売り上げが20%上がった (単に一過性のものではなく、20%上がってそのまま)、ということで、何をユーザが求めているかは開発者からは謎なこともあるが、ユーザを幸せにすることを第一に考えることが大事で、使ってくれてボランティアでサポートまでしてくれるコミュニティは財産である結んでいた。

WTIM の今回の論文発表は前回と違い、全てポスター発表なのだが、ポスター紹介 (poster boaster) セッションが1発表あたり QA なしで12分とけっこう長く、全国大会並の時間があったので、ある意味口頭発表もやっているような感じ?

個人的には Microsoft Research, Cairo の

  • Achraf Chalabi and Hany Gerges. Romanized Arabic Transliteration. WTIM 2 (2012).

が興味深かった。ウェブからクロールしたローマ字とアラビア文字それぞれで書かれた歌詞の対訳コーパスを用いてローマ字で書かれたアラビア語アラビア文字に翻訳するエンジンを作ったそうだ。Microsoft Maren Transliteration で公開しているとのこと。基本的には MSR で使っている (フレーズベース) 統計的機械翻訳の手法をそのまま適用しただけで、データを抽出するところ以外で特別なことはしていないように見えるが、ウェブマイニングする (歌詞に着目したら対訳コーパスを抽出することができる、という目の付け所) のがポイントなのかな。我々の Lang-8 を使った研究も同様だが……。

そもそもなんでこんなのが必要かというと、アラビア文字で書かれたアラビア語をローマ字表記する正書法がないので、複数のローマ字表記法があるということと、1つのローマ字表記が複数のアラビア文字に対応することがあるので、自動的に曖昧性解消しなければならないそうだ。また、実は最近の若い人はアラビア文字をどんどん書かなくなっていて、ローマ字でたとえば英語と混ぜ書きで Facebook に書き込んだり、特に歌のようなものはローマ字で書かれることが多いということで、どんどんメディアの変化に伴って言語現象も変わっているそうである。

ご飯前最後のセッションはオープンディスカッションで、どの言語はどういう資源が使えるというような話を共有する場であった。中心的な話題はもし次回やるとしたらどうするか、共通タスクをやるかどうか、など。共通タスクというのは、予測入力やスペル訂正に関して複数チームで参加してシステムを作って同じデータで評価・議論するようなことをやってはどうか、という話で、いろいろ良い面悪い面あると思うが、オーガナイザが乗り気なのであれば、止めた方がよいと積極的に言うほどのことはないかな……。評価が難しいという問題は別にあるが、機械翻訳の共通タスクでも複数の評価尺度の結果を出すのが普通だし、そもそも一元的な評価尺度でランキングすることが共通タスクの目的ではない (データや知見を共有して、問題点を洗い出したり議論したりすることが目的) ので、あとは参加する人が納得の行く形になっていればよいだけで。CoNLL の共通タスクの参加者の人から、もし共通タスクをやるならデータが将来に渡って簡単に入手できることが大事で、グレーなデータは研究で使いにくいので、やるならライセンスと入手方法 (たとえば LDC からダウンロードできるようにするとか) クリアにしてほしい、というコメントがあり、それはごもっともだなと思った。

午後の招待講演は Quillpad というソフトの開発者の人のトークで、これはほとんど初のモバイル機器向けのインド諸語の入力メソッドらしく、インドの人なら誰でも一度はインストールしたことのある超有名なソフトだそうだ。裏側のアルゴリズムなど細かいところをご紹介くださって、自然言語処理的には何も難しいことはしておらず (デコードは言語モデルとビームサーチ、UI に工夫している)、エンジニアリング的にも特筆すべきところはないが (自動評価やテストもしていない、と言っていた)、今後の課題が興味深い。

一つは南インドの言語では複数の単語がひとまとまりになって1つの表現になることがあり (multiword expression みたいな?)、単語ベースのいまの手法では対応できないということ、もう一つは話し言葉を入れたいのか格式張った表現を入れたいのかによって自動で予測や訂正を変えたいということ、最後はインドは言語が多いので母語でない言語を入力しないといけないことがあるだとかで、そういう人手も使えるようにしたいということ。複単語の入力については日本語・中国語の手法がほぼそのまま使えると思うし、入力スタイルの切り替えは日本語の入力メソッドがだいぶ前からやっていること (最近はモードレス?) だが、インドでも第二言語習得の問題がある、というのは言われるまで気がつかなかったので、なるほどと思った。特定の言語に限らず、複数言語を読み書きする必要がある人を支援するのはいろいろと需要があるようだ。

最後のセッションはパネルディスカッションで、自分は一度パネリストになるのを断ったのだが、「CJK のことを知っているユーザとして、どうしても参加してほしい」と言われて押し切られ、せっかくだからやってみるかと思って引き受けたのだが、蓋を開けてみると自分以外の4人は全員企業の人で、自分だけが大学の所属だということで、アカデミアの立場も代弁する必要があったり……。

おもしろい話題としては、やはり SwiftKey のお話で、脳波を測るような計測器を導入して、それで入力できるか試してみたところ、もちろん全く実用には耐えないものではあるのだが、意外なことに全く入力できないわけではなく、5年10年後に使い物になるようになっていても全然おかしくなく、スマートフォンでソフトウェアキーボードを使って入力するのが一気に過去のものになってもおかしくない (10年経ってもノイズばかりで全然変わっていなくて使い物にならないかもしれないが、と断っていたが)、というのが印象的であった。企業より大学のほうが新しい意味の分からないことに挑戦しやすいと思うのだが、そういう新しい刺激的な話題は企業の人から聞くことが多い (いろいろ新しいことに挑戦している) のであった。

ワークショップ終了後、[twitter:@mhkoji] さんたちのタクシーに便乗させてもらう。しかしものすごい渋滞で、空港には2時間前に到着。時間がないことが分かっていたのでウェブチェックインを済ませておいてよかった。手荷物を預けてから切手を買って投函しようと、搭乗券をもらってから係の人に相談したところ、切手は出発階ではなく到着階でしか売っていなくて、チェックインしたらもう行けないとのこと……。どうしようと思って困惑していると、なんと代わりに切手を買って投函しておいてくれるそうで、切手の代金を少し多めに渡しておくことにする。ありがたい。

とりあえずゲートの近くまで行こうと思い、出国審査を受けようとすると、長蛇の列で萎える。ここまで来て間に合わないことはないと思ったが、結局ゲート近くに到達できたのは搭乗時間まで30分もなく、ギリギリである。近くにラウンジがあったので少しだけラウンジで一服。そうこうしていると搭乗時間になったのでゲートに行くと、[twitter:@yuchang] や [twitter:@niam] さん、ryu-i さんなど COLING 参加組が来ていたので、合流して搭乗。

飛行機に乗る直前、絵はがきを預かってくれた係員の人が「お金をお預かりしましたが、予想より少ないお金で送れることが分かったので、残りはお返しします」と日本語で丁寧に伝えてくれて、いや、インドルピーがあっても次いつ来るか分からないし、代わりに投函してくれるなら喜んでチップとして払うつもりで、余ったお金はいいですよ、と渡そうとしたのだが、さわやかな笑顔で「お客様のためですから、お金は結構です。気持ちだけありがたくいただきます」と固辞され、結局受け取ってくれなかったのだが、感銘を受ける。そういう教育をしているためかもしれないが、ムンバイの人は全体的に親切な人が多い (困っている人がいたら、通りすがりでも自発的に助けてくれる) と思う。町自体はちょっと汚いと思うが、最後にはとてもよい気持ちで帰国することができた。

飛行機ではたまたま ryu-i さんと隣の席だったので、消灯するまで生活の話、研究の話、今後の話、いろいろ話す (研究のスライドを見せてもらったりもする)。以前 COLING-ACL 2006 に参加するときこうやって一緒に飛行機に乗って隣でいろいろお話したのを思い出した。あのとき ryu-i さんと話していなかったら、もしかしたら博士に進学するのを止めていたかもしれないし、なんだか懐かしくなった。終わりよければ全てよし、今回のインドは波瀾万丈だったが、来てとてもよかった。