EMNLP気になった論文メモ
- 上の2つは特に気になった論文.
Rumor has it: Identifying Misinformation in Microblogs
- Vahed Qazvinian, Emily Rosengren, Dragomir R. Radev and Qiaozhu Mei.
Class Label Enhancement via Related Instance
- Zornitsa Kozarev, Konstantin Voevodski and Shang-Hua Teng.
Dual Decomposition with Many Overlapping Components
- Andre F. T. Martins, Noah A. Smith, Pedro M. Q. Aguiar and Mario A. T. Figueiredo.
- Attachment
クラウドソーシング時代の能動学習
例によって,ICML2011からActive Learning from Crowdsのメモ書きです.
クラウドと銘打ってはいますが,結局のところ複数アノテーターがいるときにどのように能動学習を行うとよいか,という手法提案の論文になっています.
概要
- アノテーターが複数いる場合の能動学習手法の提案
- ラベル付けしたいデータに関して,一番信頼できるアノテーターのラベル付け情報を信頼する
- ただ単に多数決を取るよりも高い精度を達成
能動学習 (Active Learning)
- 今までラベル付けしたデータから学習器を生成
- 上手く分類出来ないデータ(今後の学習に一番有効なデータ)を選び,アノテーターによるラベル付け
- 上記の操作を繰り返す
複数アノテーター
- 多くの教師あり学習では,一人のアノテーターがラベル付けすることを暗に仮定
- この仮定は本当に正しいか?
- 近年は,多くのあのテーターが同時にラベル付けする事も多い
- Ex. Amazon Mechanical Turk
複数アノテーターの利点
- 専門家間でも意見が食い違う事が多い
- データによって必要な専門知識が異なる
- 専門家一人雇うよりも,複数の非専門家を雇う方がローコスト
- アノテーター間の知識共有がより簡易かつ一般的になっている
- 以上の理由から,複数アノテーターが流行っている
複数アノテーターの問題点
- あるアノテーターは他のアノテーターより信頼できる
- 悪意のあるアノテーターが入り込む
- あるアノテーターが別のアノテーターに影響を受ける
- アノテーターによって事前知識(事前分布)が異なる
- データの分け方によって結果が異なる
やりたい事
- 複数アノテーターにおけるActive Learningでは,同じデータでも意見が割れることがあり,正しいラベル付けを行うのが困難
- ラベル付けを行うべきデータを同定したい
- 一番信頼できるアノテーターを同定し,その人のラベル付けを信頼したい
モデル構築
- まずは,マルチアノテーターモデルを構築
-
- : 入力ベクトル, : 出力ラベル, : アノテーターtがつけた出力ラベル, : データiにラベル付したアノテーター集合
- EMを使えと言わんばかりの式
- 次に上のモデルから,以下の処理を繰り返す(式略)
- ラベル付けを行うべきデータポイントを探索,そのポイントに一番近いデータを抽出
- 一番信頼できるアノテーターを同定し,そのデータにラベルを付与
- パラメータを再学習
個人的に思うところ
- Multi-AnnotatorsのコンセプトとActive Learningのコンセプトが相反している気がして,これらを組み合わせることに納得が行かない
- Active Learningは,ラベルが曖昧でないデータは学習によってラベル付を行う.曖昧なデータは正確なラベルを付与することで高性能な学習器を低コストで生成する,という理解
- 一方Multi-Annotatorsは,専門家でない大量のアノテーターを集めて,高速かつ安価にラベル付け可能にする,という理解
- 少量のデータでラベル付け出来ない部分は,Multi-Annotatorsを用いても意見が割れるだけなので,こういうデータのラベル付けにこそ専門家が必要なのでは
- その意味では,一番信頼できる人を見つけ出そう,という意図自体は良いと思うが…
ドメイン適応を用いた評判分析手法
ICML2011のドメイン適応の論文のメモ書き.数式番号が1つも使われていない,珍しい論文.
Domain Adaptation for Large-Scale Sentiment Classification: A Deep Learning Approach
概要
- 評判分析,評判抽出のためのドメイン適応手法の提案
- Deep Learningというアプローチを採用
- 特徴の上位概念(製品の質,コストパフォーマンス等)を学習する
- 大規模データ解析,大量のドメイン適応を同時に行うことが可能
Domain Adaptation
Deep Learning
- 特徴の階層構造を学習 (今回のタスクの場合)
- Ex. 特徴そのものではなく,製品の質,値段,顧客サービス等の要素を探索する
- Stacked Denoising Auto-encoders(SDA)などの手法
- 特徴の中間表現へのEncoder / Decoder を学習する
- PCAみたいな事をやっていると思えば良い
評判分析でDeep Learningを用いることの利点
- 多くのドメインで共通の概念が存在する(製品の質,値段等)
- 上記の概念を表す代表的な単語があらかじめ予測できる
- 評判分析以外のタスクでも,Deep Learningによって面白い知見が得られている
- ドメインごとに別々の転移学習をする必要がない (一度,全ドメインで共通の階層構造を学習すれば良い)
- rectifier unitsを用いることで,疎な中間表現を得ることも可能
分散型オンライン学習
ICML2011のOptimal Distributed Online Predictionをざっくりと読んだので,メモ書き.
論文
概要
distributed mini-batch framework(DMB)とは?
- k個の学習器にそれぞれ別のデータを食わせて勾配を計算させる
- 勾配情報がある程度溜まったら,勾配の平均を取り新しい学習器を生成する
DMBを用いる利点
- シングルプロセッサでは到底処理不可能な量のストリームデータを扱うことが可能
- Ex. 検索エンジンのクエリ
- 確率的勾配法ベースのDMBならば,並列性にほぼ線形での速度向上が可能
Regret Bound
(m:データ数)
証明は,ロングペーパーの方を参照
制約
- "ある程度"の数bは,データ数mに依存する(但し,bはmより十分に小さければ問題ない)
- 学習結果のやり取りや勾配平均の計算には遅延が発生するが,データ数mの増大にはスケールしなければ問題ない
その他
- Master-Worker構成の分散システムにおけるDMBについて議論
- k個の分散システム全てに同じ処理を指せることは不可能
- Masterで勾配情報の収集・勾配平均の計算・放送を行い,一方でWorkerはそれぞれ勾配を計算する
- Masterが死んだ時の処理についてもアレコレ (Fault Torelance)
- Robust Decentralized Architecture(ADMB)
- さらにRobustなMaster-Worker構成のDMBアルゴリズムを提案
- 各ノードは,勾配情報を近隣のノードにのみ送る
- 各ノードは,自身の勾配情報と近隣ノードの購買情報がある程度集まったら,自身の重みベクトルを更新
- Regret Boundは係数が2倍に
劣勾配法(ヒンジ損失)書いたよ
内容
- 劣勾配法の解説は,以下のブログ記事が詳しいです.
- こちらでも劣勾配法について簡単に説明したいと思います.
- 多クラス分類問題を解く場合,ヒンジ損失関数は以下の式で定義することが出来ます.
- ここで,が現在の重みベクトル,が入力ベクトル,が正解ラベルです.
- ヒンジ損失関数では,正解ラベルのスコアと不正解ラベルのうち一番高いスコアとの差が重要な役割を果たします.
- このように定義したヒンジ損失関数を用いて,劣勾配法はデータが1つ与えられるたびに以下の更新式に従い重みベクトルを更新します.
- ここで,は,毎回の更新時にどの程度重みベクトルを動かすかを調節するステップ幅です.
- 多くの場合,ステップ幅はとなる値を用います.[Zinkevich, 2003]
- 以上が劣勾配法(ヒンジ損失関数)のアルゴリズムです.
- 今回はヒンジ損失関数を用いていますが,凸な関数であれば任意の関数を用いることが出来ます.
- さらに,Regretという概念を用いることで,最適解への収束性を示すことが可能です.[Zinkevich, 2003]
実験結果
既存手法との比較は以下になります.
NaiveBayes accuracy : 9800 / 10000 Perceptron(1 iteration) accuracy : 9725 / 10000 PA-II(1 iteration, C=0.001) accuracy : 9789 / 10000 Subgradient Method(1 iteration, eta=1.0) accuracy : 9802 / 10000
劣勾配法の精度が一番高いですね.
データセットによって,どの手法が一番精度が高いか,というのは変わってくると思います.
速度は,PerceptronやPA-IIと遜色ありません.
Passive-Aggressive書いたよ
ソース
内容
Passive-Aggressiveの概要・説明については,先日のオンライン学習による線形識別器のスライドをご覧ください.
http://d.hatena.ne.jp/kisa12012/20110625/1309003409
実験結果
NaiveBayes, Perceptronとの比較は以下.
NaiveBayes accuracy : 9800 / 10000 Perceptron(1 iteration) accuracy : 9725 / 10000 Passive-Aggressive(1 iteration) accuracy : 9738 / 10000 PA-I (1 iteration, C=0.001) accuracy : 9787 / 10000 PA-II(1 iteration, C=0.001) accuracy : 9789 / 10000
Perceptron書いたよ
ソース
内容
Perceptronの概要・説明については,先日のオンライン学習による線形識別器のスライドをご覧ください.
http://d.hatena.ne.jp/kisa12012/20110625/1309003409
実験結果
NaiveBayesと比較すると,以下のようになりました.
NaiveBayes accuracy : 9800 / 10000 Perceptron(1 iteration) accuracy : 9725 / 10000
という結果になりました.(データセットは,データセット生成コードで自動生成生成したもの)
学習速度はパーセプトロンの方が圧倒的に早いので,これも一長一短ですね.
(用いるデータセットによって違うでしょうが…)