はじめに
本記事は、第4回ステアラボ人工知能セミナーの勉強会レポートです。
ステアラボ人工知能セミナーは千葉工業大学主催で行われ、16年7月7日に第4回が開催されました。
第4回の講師は京都大学の馬場先生でした。「クラウドソーシングと機械学習」について講演されました。
講演内容のスライドは以下を御覧ください;
http://www.slideshare.net/stairlab/4-63932628
テーマ
- 群衆をうまく組み合わせる(多数決でうまくいく)
- 群衆から専門家を見つける(マイナー問題)
- 機械学習のために群集を活用する
クラウドソーシングとは
インターネット上で不特定多数の人に仕事を依頼する仕組み。
例:Amazon Mechanical Turk, CrowdFlower、ランサーズ、Yahoo!クラウドソーシング
タスク依頼例
データセット構築
- ラベル付き画像→ImageNet(クラウドソーシングで作業依頼)
-
Visual Genome:詳細ラベル付きの大規模画像データセット(オブジェクト・関係・属性)
→多段パイプラインで詳細ラベルを獲得
→シーン領域選択・説明文記述→説明文中のオブジェクト抽出・領域選択
→オブジェクトの関係・属性抽出
「品質保証」はクラウドソーシングの重要課題
<解決優先度>
「品質保証」 > 「タスク分割、割当、報酬設計、強調作業支援 etc…」
<目的>
検品無しで良い成果物を獲得する
不真面目なワーカ→全問で最初の選択肢、「あああ」とひたすらうつ(大量データの検品では気づくの難しい)
※ImageNetの工夫: 複数人が同じ画像を検品
※Visual Genome: 別のワーカに検品させる、インターフェース利用(画像定間隔表示、Yesの場合のみキーを押す)
群衆をうまく組み合わせるパターン
回答統合
- 群衆の回答から正解を予測
- ワーカが複数タスクに回答することを利用して能力を推定、正解予測に利用
- タスク・ワーカー行列において、ワーカの回答を要素に入れる
- 真陽性($\alpha_1^j$)と真陰性($\alpha_0^j$)の確率をパラメータにして、能力を推定する
- 正解と能力を交互に推定する(正解を潜在変数としたEMアルゴリズム)
- ワーカの能力、タスクの難易度を重み、入力値にして正解確率を評価する
- 正解確率をシグモイド関数でモデル化する(2009 NIPS)
$$Pr[y_{ij} = t_i] = \frac{1}{1 + \exp(-w_jx_i)}$$
(w: 能力, x: 簡単さ)
ワーカーのタスクの相性を考慮するモデル
(P.Welinder et al. NIPS 2010)
Pr[y_{ij} = 1] = \Phi\Big( \frac{{\bf w}_j^T{\bf x}_i - \tau_j}{\sigma_j} \Big)
$\Phi$: 標準正規累積分布関数
${\bf w}$: 能力
${\bf x}$: 潜在特徴
$\tau$: 閾値
$\sigma$: スケーリング
能力類型を導入し複数ワーカーをグループ化する
(M.Venanzi et al., WWW, 2014)
- 能力類型で複数ワーカをまとめることで推定を効率化
- ひとつの類型にひとつのコミュニティが対応
- 各ワーカーはいずれかのコミュニティに属する
- 各ワーカの能力は、所属コミュニティの能力類型にノイズが加わって生成される
ワーカの確信度を利用する
(S.Oyama, Y.Baba, IJCAI 2013)
- 入力データに自信の有無も加える
- $\beta_{10}^j$: 正解がTRUE、回答がFALSEのときに確信がある確率
ソーシングタスクによる分類
- 真偽・選択型(写真中の特定物の有無判定): 多数決で成果物を統合する
- 数値型(写真中の特定物の数え上げ):回答候補が無限
→間違い方の偏りをCRPで表現(人が多いテーブルに人が集まりやすい傾向をモデル化)
→CRPにより3種類の回答行動をそれぞれモデル化する;
正答、既出の誤答を選択、未出の誤答をする - 非定型成果物:回答統合が困難なので、代わりに品質を推定したい
▼ 評価自体も別のワーカーに依頼する、評価結果を統合
▼ クラウドソーシングで成果物を評価するプロセス
▼ 評価結果を利用して品質を推定
▼ 成果物作成ワーカと評価ワーカの能力をモデルに導入
・成果物作成:基本能力$\mu$と分散$\lambda$(得意不得意)
・評価者:バイアス$\tau$(甘め・辛め)、分散$\kappa$(好き嫌いによる散らばり)
・採点結果の平均で→うまくいってから統計(別の人に評価させるという点が大事!!)
実験の再現性の担保:モデル回答統合テストサンプルがあったりする
(自前でやるとなると変数が多くとっても難しい!)
群衆から専門家をみつけるパターン
難しい問題(正しく回答できる人が少ない問題)は回答統合がうまく機能しない→専門家の発見が解決の糸口になる
<専門家発見方法アイディア>
- 事前テスト用意
- 正解既知のタスクを混ぜ、正答率で見つける
機械学習手法では
①属性利用法
- 属性(学歴・専攻)を専門家発見に利用
- 新しいワーカにも適用しやすい利点
-
ボトムアップ選択とトップダウン選択
少数の正解既知のタスクを用い、一部のワーカの能力を推定する
ボトムアップ選択→ワーカの属性から能力、属性ベクトルの線形和
トップダウン選択→能力の高い人が満たす属性、分散分析を用い、重要な属性を絞り込む
②ウェブ広告を利用した専門家発見
(P.Ipeiorotis, E. Gabrilovich, WWW, 2014)
1.ウェブ広告を利用して
ワーカの興味にあった問題を出せる
答えるかどうかの判断はワーカ任せ(self-selection)
2.ワーカの探索と活用をバランスするためMDP(マルコフ過程)を利用
回答率・正答率をコンバージョン率とし、タスク広告定時に利用
各ワーカの回答状況に応じ、探索・活用のどちらを決めるべきかMDPで決める
③問題文からワーカのトピック別能力を推定
(F. Ma et al., KDD, 2015)
問題文から問題トピックを推定
問題文生成モデルと回答生成モデルの組み合わせ
④翻訳者の発見
(Y.Ehara, Y.Baba, IJCAI, 2016)
自己申告語彙テストにより低コストで翻訳能力を推定
機械学習のために群集を活用する
- クラウドソーシングで機械学習のデータを集めをする(ラベル決め)
- ラベルの品質を見る
- 群衆がつけた訓練モデル:ラベル統合後の学習は遠回り
- 予測モデルと群衆のラベルの生成モデルを突き合わせる
①特徴抽出の決定に群集を活用
・予め用意した質問文に対する回答を特徴として利用(問題文を自分でつくるので手間かかる)
②ワーカに特徴抽出のための質問文つくらせる
・正例・負例ペアを見せ、違いを見つけさせる
③Kaggleなどのデータ解析コンペティション
・参加者各々がモデルを構築・精度を競い合う
・予測モデリングのクラウドソーシングとも言える
・最終的にモデルを統合することもできる
・群衆の力で多様なモデルを探索
④探索型データ解析に群集を活用:可視化ツール
・可視化を通じて仮説を導く
・Manyeyes(皆でデータについて議論するための可視化ツール)→可視化+フォーラム
・Kaggleも同様のツールあり("Scripts")→再現コードと可視化
・クラウドソーシングから仮説発見させる方法 (W.Willet strategies for crowdsourcing social data analysis CHI 2012)
<その他>
・ビッグデータ大学(ゲノム解析コンペティション始まる)
・費用設計の研究
→強化学習(何円で依頼すると報酬がいくらになるのようなテーマ、Banditアルゴリズム)
・報酬と真面目さの関係を導くのは難しい
→正しい答えがない(アンケートタスクなど)タスクに対する、統計的アプローチは難しい