always one step forward

2014/9 NLP若手の会 YANS2014 に参加した

photo by wolfgangfoto

(写真はイメージです)

‥もう3ヶ月過ぎてしまったいま、勉強のため参加した会のメモが発掘された。個人的冬休みの宿題としてまとめておく。不勉強ながら、その道の先端を行くアカデミア+企業の方々の講演等を聴けて有意義だった。合宿という雰囲気も懐かしくてよかった。

会の概要

NLP若手の会 (YANS) 第9回シンポジウム

NLP若手の会 (YANS) は、自然言語処理および関連分野の若手研究者の交流を促進し、若手のアクティビティを高めることを目指したコミュニティです。なおYANSは、Young Researcher Association for NLP Studiesの頭文字をとったものです。

上記サイトに全て公開されているので割愛。講演一覧、発表スライドもけっこう公開されている

参加目的

  • 以下の勉強+情報収集(発表参加、ハッカソン参加はなし)
    • 統計的機械翻訳とは何か?
    • 自然言語処理の分野では、どのような研究が、どのような人によって(←これも重要)行われているのか?

所感

SMTであることがまずスタンダード

  • 発表全体、ほぼ統計的機械翻訳SMTのみ
  • 「SMTを導入する」が第1ステップとして、次ステップとしては以下を踏んでいる研究が多かった:
    • 用いるコーパスをどう整備するか
    • コーパス内の単語並び(アライメント)をどう工夫するか
    • 単語単位の翻訳 → 単語単位でなく句単位(フレーズベース)へ

機械翻訳自然言語処理の一分野

  • 「(自然)言語処理」という大きな分野の下に、いろいろな分野がある
    • 分野ごとに人気があったりなかったりする。機械翻訳も言語処理の一分野である
  • 例)今年のACL(言語処理分野で最大の国際学会)への投稿数が多い順にジャンルを並べると:
  • 今回のシンポジウムの全発表においても、何割かは機械翻訳に関するもので、主要な研究対象の一つと感じた(扱われる言語は日・英・中)

"業界"用語

複数の発表で登場した語(おそらく言語処理分野では基本用語。勉強になりました)

  • ドメイン
    • この分野では、辞書やコーパスが紐づく"分野"を示す
    • 辞書を分野ごとに持たせる考え方
  • 「意味ベクトル」
    • 任意の単語を何らかの空間に置き、その位置で語どうしの類似性/非類似性を見つけようという考え方
    • 「犬」と「猫」は似ているけど、「爪切り」は遠くにいる、など
    • どのような空間を想定するか?=どのような軸を定義するか?
      • よく引用されている論文がスタンダードではあるが、どう規定するか自体が未だ研究対象
    • word2vecというツールがわりと最近よく使われている
      • シンプルな考え方で、ユーザーは深く考えずに「近い意味」の語を検出してくれる
  • 「語義曖昧性の解消」
    • 複数の意味を持つ語(例:plant「植物」「工場」)の周辺情報(文脈など)から、その文脈における適切な意味を見つける
    • 意味ベクトルの考慮により、「その表記では意味が一意に定まらない」ような現象を減らしたいという考え方
    • 当然、翻訳精度にも大きく関連する

自社技術との比較

  • RBMTがなかった時点で比較困難ではあったけれど、分野に特化した翻訳前/後処理、特定表現の事前翻訳、という手法をとっているところはあまりなかった(見落としているだけかも)
    • これは当然とも言える:
      • SMTはそもそも、文単位で言語モデル、翻訳モデルを作る
      • 特定部分の変換等を行う発想が基本的にはない
    • このため、SMTがスタンダードであるうちはずっと、この傾向は続くと思われる
  • 「特許文章の機械翻訳って難しいですよね」という切り口で学生数名に聞くと以下に分かれた:
    • 「取り組んだけれど難しいので(研究は)やめてしまいました」
    • 「文構造は機械的に扱いやすく、機械翻訳に向いている」

学生時代の視点に立ってみると‥

  • どんな分野でもありがちな疑問を持っていた:
    • 「大学(アカデミア)での研究は、いわゆるビジネスニーズと結びついていないのでは?」
  • ざっと聴いた感じではそのようなことはなかった。ただ、僕が掴みきれていない部分では、そのような側面も大なり小なりあるだろう
  • 就職を意識する学生であれば、「自分のテーマはどの程度世の中に貢献するのだろう‥」は、どの分野でも起こりうる疑問
    • そこはうまく、企業との共同研究(あれば)、外部の学会/展示会で適当に質問しまくる、等で意識できると理想的
    • 今回の会では、企業によるスポンサー発表がいい"薬剤"だったように思う
    • 自然言語処理をこのように使って、このようなアウトプットに活かしているのか」がとてもわかりやすかった

合宿の雰囲気

  • ⚪︎ とてもよいと思った。なんだかんだ言ってこのような場に参加できるのは、学生の間だけ。就職先で理解があればよいが、平日を費やして参加できるかどうかは、その会社によるというところ
  • ⚪︎ 運営形態。複数日に渡るイベントながら、その道のプロであるイベント運営会社が入ることもなく、企業+大学の有志数名で成し遂げられていた
    • 宿泊あり、途中参加あり、予想外の人の動きあり、金銭の動きあり、⚪︎⚪︎の数が合わない‥など、イレギュラーがもはやレギュラーになったり、で対応しきれないこともあったかもしれない(けれど一参加者としては気づかなかった)お疲れさまでした
  • △ 「A. ハッカソン B. 講演/ポスター発表」AとBが並行するスケジュール
    • ハッカソン参加者の中には、講演を聞きつつ手を動かしている人が何人もいた。講演をあまり聴けてなかったのでは?
    • それでもよい、という参加者個人の判断なのだろうけれど、果たしてこの形でいいのだろうか?というのはよくわからなかった(アンケートにもそんなことを書いた記憶が)
  • 個人的には、M1の頃、8月の数週間で参加した某企業のインターンを思い出した。化学系学生が集まり、テーマに分かれ実験や理論計算を行う。研究所の業務をサポートするという位置付け
    • 情報系ではなく、ハッカソン等はなかったものの、割と設備のよい寮に泊まり込み、夜は基本的には飲み会、当然最終日は成果発表。わりとおもしろい横の繋がりができたのだった

講演/ポスター発表聴講メモ

理解の抜けや誤りがあるかもしれず、後半は結構ぼやけた感じですいません

シンポジウム2日目 2014/9/22

9:00-10:20 口頭発表

  • 15万文(=30000x5)の"自動"評価
  • RIBES:同一単語のアライメントを見る
  • 大まかには、同じ位置にあれば高精度な翻訳と見なす
  • デメリット:人手翻訳が適用しづらい
    • 人によって出てくる単語が異なる
    • 同一単語アライメントが不十分
  • 「RIBES+」の提案
    • ユニグラム適合率 → 類似度、重要度に分ける
    • 類似度
      • 単語間類似度をとり幾何平均を求める
    • 重要度
      • (共通単語の単語重要度の総和)/(翻訳文中の単語重要度の総和)
  • 人手評価:ネイティブによる5段階評価
  • 以下両パターンがある
    • RIBESでNG、RIBES+でOK
    • RIBESでOK、RIBES+でそうでもない
  • 今後は単語単位でなく句単位で類似度検出したい

質問/コメント

  • 平均単語数10、短いのでは
    • heをsheとしてしまう翻訳はcritical、これをとれないリスクの検討
  • 何をもって重要とするか
  • 問題設定が妥当かどうか
    • 人間が翻訳する文章をうまく使いたい
    • "translationese"
  • 人手評価(5段階)との相関
    • 1〜3、4〜5に分けて2グループとの相関を見てみる案
  • 参照訳の作成、選択のスタンス
    • 日本人の翻訳:逐語訳寄り
    • ネイティブの翻訳:"流麗な"訳、読売新聞コーパス

10:40-12:30 ポスター発表

  • ブースター(1人2分で概要を順に発表):とてもよい仕組み
    • 皆さんだいたい1-2枚で(タイトル、背景、目的、結果)
    • 聴講者は概要を理解でき、発表者はポスター発表で"最初から"説明する手間を省ける
  • 科学論文を対象とした日英統計的機械翻訳
    • 科学技術論文コーパス
    • かっこ()付きの語を正しい位置に戻す
  • 高頻度語は平易?(小学生の文章読解支援)
    • 対象語と候補語が共通に持つ文脈の種類数:多い
    • 候補語が持つ文脈の種類数:少ない
  • 700万人人口無脳
    • LINEアカウント「パン田一郎」
    • 雑談DB
  • 国語学習者の誤り分析
    • 5分類 redundant, missing, disorder, selection, correct
    • Lang-8 learner corpra, JSON
  • 自由対話システム
    • 対話行為の定義、その自動推定
    • 対話行為(自己開示、質問Y/N、質問W、‥)ごとに学習素性を推定
  • 実用的な自動歌詞生成
    • ソフトウェア音源、歌声合成、自動演奏、自動作詞
    • 定義(歌詞作成とは?作詞家のプロセスは?)評価(いい歌詞とは?)
  • 日本語言い換えデータベースの評価
    • 対訳コーパスを材料に、日→英、英→日と翻訳し、言い換えの組を抽出しよう
  • Twitter炎上表現の解析/同定
    • 検知、訂正、返信提示を試みた

13:30-14:30 開発の現場におけるコードの検証と共有

  • 強化学習
  • Who ubuilt the was エッフェル塔?
  • When was built?
  • 文脈を考慮した回答表示
  • ナレッジグラフ 知識構造、500億個のファクト
  • 統計的機械翻訳80カ国語5122言語ペア
前提
  • ウェット系では実験ノートが重要
  • ドライ系(情報科学を含む)ノートなし
  • 「コードがあれば再現可能」本当?
  • 学生時代のコード:今どこにある?論文と同じ結果を出せる?正しいとどう確認した?
  • 科学の前提:客観化と検証性(反証可能性
  • 技術進歩が速すぎて、研究の方法論の進歩が追いついていない
コードの管理
  • プログラム、前処理のためのスクリプト、後処理・グラフ化コマンド
  • 変更前のコードの状態を保存、いつでも以前の状態に戻せるように
  • 複数環境でコードを共有 などが重要
  • バージョン管理システム
    • git, svn, cvs(concurrent versioning system),
  • 望ましいコード管理(提案)
    • 研究室単位でレポジトリを用意
    • コード、論文TeX、共有できるデータはレポジトリに保存
    • 1日最低1回、実験実行前は必ずcommit
    • 作業記録、かつバックアップ
    • その日のbash historyいれてもよい
コードの検証
  • ステマチックな検証方法=テストコードを書く
  • 使っているコードは本当に正しいか?
    • 特定のデータだけ処理に失敗している
  • 一度正しく動いても、後の修正でバグ混入しうる
  • テストコード
    • デメリット;コード量増大、機能変更するとテストも要変更→開発効率低下
    • メリット:バグ混入に早く気づく(気づかず進めるほうが大損失)
  • アサーション:前提が正しいかどうかチェックする
    • assert(i>=0 && i<size && "index must be in range")
  • 結合テスト
    • 「入力Xを入れると出力Yが出てくる」組み合わせを用意する
  • 三角形の問題
    • 3つの整数を与えて「正三角形」「二等辺三角形」「それ以外の三角形」を出力する
test 7 7 7 = "正三角形"
test 5 5 7 = "二等辺角形"
test 1 1 9 = "エラー"        # 三角形が成立しない 
test 5 5 -7 = "エラー"       # 正の数が入るとは限らない 
test A 3 9 = "エラー"        # 数字だけが入るとは限らない 
  • ... チェック必要なパターンは多数あり
  • テストを書かなくていい方法
  • テストファースト
    • テストが実装になる、開発現場寄り
    • ただし研究でそこまで必要か?
コードの共有
  • 自分しか読めないコード、遠からず自分も読めないコードになる
  • 他人に読めるコードにするのは自分のためにも重要
  • 一般公開レポジトリへの公開もおすすめ、公開だけでなく貢献を呼びかける
  • コードレビュー=コードの査読と同じ
  • github
    • 作成者が修正内容をPull request
    • レポジトリオーナーがレビュー、Pull で反映
    • Pull request がコードレビューをかねる
  • 学生向け:氏名にひもづくコード公開は採用面でインセンティブになる
  • 人事担当は氏名で検索する

14:50- 単語ベクトル空間における意味構成と非線形類似度学習

  • 単語の意味をベクトル空間に置く。どんな空間が望ましいか?
  • Japan のそばに Germany, France
  • 猫をベクトルで表現する
  • 似た文脈に出現する単語は似た意味を持つ(Harrisの分布仮説)
  • 他の単語との「共起頻度」を数値化し、ベクトル成分とする
  • 語が多いと多次元、せめて50-200次元におとしたい
意味の構成性
  • 単語ベクトルの和で、句の意味を計算
  • "run"のベクトル表現
    • cat等と違って多義語、いろいろな単語と共起
    • さまざまな意味をベクトルが含む
    • companyに関係する動詞(buy, buildなど)それぞれがベクトルを持ち、何らかの空間を形成する
    • "run"ベクトルの射影をその空間へ落とす

15:30- 関係分類に特化した特徴量の分散表現学習

16:10- 招待講演

機械翻訳の実務化の現状

  • 言語処理学会会長・多言語翻訳研究室 室長 隅田英一郎氏「今がいちばん楽しい」
  • 2020東京オリンピックで引き合い活性化
  • 翻訳受託:(めちゃくちゃ)安い・早い・(そこそこ)良い
  • 「留学生ネットワーク@みんなの翻訳」650名翻訳者、全体30%はプロ翻訳者
    • 評価者が別にいる、翻訳はしない
  • ZOZOTOWN アイテム説明テキストデータ、NICTライセンスMTサーバで学習、翻訳
  • 品質はそこそこよい、コスト大幅減
  • HMT "human machine translation"
  • 物流/決済/翻訳
    • このうち翻訳はとてもわるい
    • eコマース分野の人を集めて「国家予算で自動翻訳エンジンつくろう」
    • 2009/8/26 民主党政権交代、その案がストップ

カメリオにおけるNLPコンテンツキュレーション技術

  • CERN, ATLAS "100PB in 3yrs"
  • Higgs-Boson発見の前に退却
  • 大量データの中からいかに大切なデータを取り出すか、取り出したデータが大切と気づけるか
  • 工場見学の記事に含まれる「疑似体験」

NLP in スマニュー

  • 1000万記事/日を収集、スコア計算+カテゴリ分け、1000万記事/日を配信
  • ユーザーの権威性 authority :国籍や言語を推定
    • ローカル判定(つぶやき内容、位置情報など)
    • グローバル判定(follower, friend)
    • 判定結果の信頼性判定
ローカル判定
  • 全文検索法の課題
    • 辞書をどう構築するか:難しい
      • 語を増やせばよいというものでもない(tokyo があるから国籍=日本?)
    • 全文検索法の実装:やさしい
    • 辞書をどう使い分けるか:難しい
    • 辞書を自動で使い分け:難しい
  • 課題対応は休眠中、ネットワーク判定が有効ぽいので
信頼性理論
  • ローカル or ネットワーク判定、結果が違う場合どちらを信用するか?
  • → 一方を捨てるのではなく加重平均
  • 10 x 1/4 + 5 x 3/4
  • ビュールマン法

シンポジウム3日目 2014/9/23

9:00-10:20 機械翻訳システムの誤りアノテーションツール及びコーパスの作成と評価

  • 翻訳における誤りの自動検出
  • 誤りの箇所にラベル付け
  • 手動だと:つけた人にしかわからない、揺れが大きい
  • 「後編集の対応コーパス」をつけて対応
  • 誤った訳、正解の訳を対応づけてコーパス
  • 挿入誤り 例)平等院末寺平等院"派"の寺院(派が追加されている)
  • (削除/並べ替え/置換/部分的な置換) 誤り、フレーズ(に|から)余計な単語が(付随/欠落) etc.
  • Travatarの翻訳結果を使用
まとめ

言語モデルを用いた盛り上がりツイートの解析と検出

  • 検出においてイベントは有用
    • 通常平均 750/秒、シュートの瞬間 2940/秒(ワールドカップ日韓戦)
  • ハッシュタグを含むツイートは全体の1/7
  • perplexityを計算し「盛り上がり言語モデル」を作成
  • 入力「ある時刻iのツイート集合」→モデル
    • → あるしきい値以上なら「盛り上がりツイート」以下なら「通常のツイート」
  • 言語モデルにより盛り上がりを検出できているか検証
  • perplexityが低い=予測しやすい?

11:00-12:30 ポスター発表

(ここだけメモが消えてしまっていた‥面白い発表はいくつもあっただけに残念)

13:30-15:30 国際会議参加報告

ACL参加報告(1)

ACL参加報告(2)

  • 単語をベクトル化
    • one-hot
    • distributional スタンダード、周りの文脈に寄ってきまる
    • distributed representation 構文的、意味的な情報を組み込む
  • 句・分に対するベクトル表現を!
  • 画像処理系で使われていたconvolutional neural network(CNN)が言語処理で使われだした
    • 例)特徴検出フィルタの畳み込み演算
    • エッジ検出など、画像の特徴的な何かを取り出す
  • テキストでは?入力文の単語たちのD次元ベクトル

Coling参加報告

  • ダブリン
    • 2年おき、前回2012ムンバイ、次回2016大阪開催
  • 採択数218(口頭139ポスター79)採択率31.6%
    • 採択数、参加者とも中国1位、日本採択率4位、参加者45人
  • タイトルのワードクラウド 2012→2014
    • translation, dependency, parsing 従来通り+ semantic, strcuture増加
  • ソーシャルメディアを頑健に解析」が約半数、教師なし単語生成など
  • 木構造変換、句による翻訳生成が主流なのはいつも通り
  • best paper+論文、トークをいくつか紹介
  • 採択論文は多言語について(英語だけではない)日本語に関する内容でも投稿の意義がある
  • 日本語ツイートを公開情報として使える機会が少ない、公開できないか?
    • 難しい。諸原因がある