2014/9 NLP若手の会 YANS2014 に参加した
(写真はイメージです)
‥もう3ヶ月過ぎてしまったいま、勉強のため参加した会のメモが発掘された。個人的冬休みの宿題としてまとめておく。不勉強ながら、その道の先端を行くアカデミア+企業の方々の講演等を聴けて有意義だった。合宿という雰囲気も懐かしくてよかった。
会の概要
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
- 中国語学習者の誤り分析
- 自由対話システム
- 対話行為の定義、その自動推定
- 対話行為(自己開示、質問Y/N、質問W、‥)ごとに学習素性を推定
- 実用的な自動歌詞生成
- ソフトウェア音源、歌声合成、自動演奏、自動作詞
- 定義(歌詞作成とは?作詞家のプロセスは?)評価(いい歌詞とは?)
- 日本語言い換えデータベースの評価
- 対訳コーパスを材料に、日→英、英→日と翻訳し、言い換えの組を抽出しよう
- Twitter炎上表現の解析/同定
- 検知、訂正、返信提示を試みた
13:30-14:30 開発の現場におけるコードの検証と共有
- 強化学習
- Who ubuilt the was エッフェル塔?
- When was built?
- 文脈を考慮した回答表示
- ナレッジグラフ 知識構造、500億個のファクト
- 統計的機械翻訳80カ国語5122言語ペア
前提
- ウェット系では実験ノートが重要
- ドライ系(情報科学を含む)ノートなし
- 「コードがあれば再現可能」本当?
- 学生時代のコード:今どこにある?論文と同じ結果を出せる?正しいとどう確認した?
- 科学の前提:客観化と検証性(反証可能性)
- 技術進歩が速すぎて、研究の方法論の進歩が追いついていない
コードの管理
- プログラム、前処理のためのスクリプト、後処理・グラフ化コマンド
- 変更前のコードの状態を保存、いつでも以前の状態に戻せるように
- 複数環境でコードを共有 などが重要
- バージョン管理システム
- 望ましいコード管理(提案)
コードの検証
- システマチックな検証方法=テストコードを書く
- 使っているコードは本当に正しいか?
- 特定のデータだけ処理に失敗している
- 一度正しく動いても、後の修正でバグ混入しうる
- テストコード
- デメリット;コード量増大、機能変更するとテストも要変更→開発効率低下
- メリット:バグ混入に早く気づく(気づかず進めるほうが大損失)
- アサーション:前提が正しいかどうかチェックする
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- 関係分類に特化した特徴量の分散表現学習
- word2vec
- entity - destination
- "The accident has spread the oil in the ocean." (oil - ocean)
- "relation2vec"
16:10- 招待講演
機械翻訳の実務化の現状
- 言語処理学会会長・多言語翻訳研究室 室長 隅田英一郎氏「今がいちばん楽しい」
- 2020東京オリンピックで引き合い活性化
- 翻訳受託:(めちゃくちゃ)安い・早い・(そこそこ)良い
- 「留学生ネットワーク@みんなの翻訳」650名翻訳者、全体30%はプロ翻訳者
- 評価者が別にいる、翻訳はしない
- ZOZOTOWN アイテム説明テキストデータ、NICTライセンスMTサーバで学習、翻訳
- 品質はそこそこよい、コスト大幅減
- HMT "human machine translation"
- 物流/決済/翻訳
カメリオにおけるNLPコンテンツキュレーション技術
- CERN, ATLAS "100PB in 3yrs"
- Higgs-Boson発見の前に退却
- 大量データの中からいかに大切なデータを取り出すか、取り出したデータが大切と気づけるか
- 工場見学の記事に含まれる「疑似体験」
NLP in スマニュー
- 1000万記事/日を収集、スコア計算+カテゴリ分け、1000万記事/日を配信
- ユーザーの権威性 authority :国籍や言語を推定
- ローカル判定(つぶやき内容、位置情報など)
- 全文検索、AHO-CORASICK法
- グローバル判定(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)
- 自然言語処理分野の最大学会 @ ボルチモア
- 言語学(計算言語学・自然言語処理)
- long paper: 146/557, short paper: 139/532(採択数/投稿数)採択率26%
- 機械翻訳&意味解析(いつも通り)&中国語&ニューラル
- 何らかの形でニューラルネットワークを使用したものが多い
- 「単語選択にNN使用」がbest paper
- NN由来の素性を機械翻訳に導入可能
- 素性だけで、(いろいろ工夫してきた)従来の設計法とほぼ同等の性能
- (斬新なモデル or 性能向上すごい) and 妥当な実験
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+論文、トークをいくつか紹介
- 採択論文は多言語について(英語だけではない)日本語に関する内容でも投稿の意義がある
- 日本語ツイートを公開情報として使える機会が少ない、公開できないか?
- 難しい。諸原因がある