共立出版さまより『Human-in-the-Loop 機械学習』をご恵贈いただきました。一通り読み終えたので感想を共有します。
本書は機械学習モデルを訓練するためのデータを人間がどのように用意するかという問題を扱っています。本書の前半では能動学習というラベル付けデータの選び方の技法が、本書の後半では人間が付けたラベルの管理方法やラベル付けのための適切なインターフェースが紹介されています。
機械学習におけるデータをいかに作るかということは私自身とても注目している領域です。『Active Learning from the Web(能動学習を使ってウェブから機械学習データを収集する)』という論文を書いたこともありますし、PDF 翻訳サービスの Readable では能動学習に基づいたアノテーションを実際に行っています。そのため本書は非常に興味を持って読ませていただきました。
いかにしてデータを作るかということは機械学習を扱っている方は皆さん重要に感じているトピックかと思います。本書では
良いデータと簡単なアルゴリズムで最高の結果が得られることがよくあるのに対し、悪いデータを使って構築された最高のアルゴリズムが良い結果を生むことはほとんどありません。
と述べられていますが、これは私も全面的に同意します。良いデータを集めることが機械学習プロジェクトの成否を左右するといっても過言ではありません。
しかし、このトピックについてのノウハウは産業界・学術界の両方においてほとんど公開されてきませんでした。本書でも著者は
機械学習の講義は、どのコンピュータサイエンス学科にもありますが、学習データ作成の講義はほとんど存在しません。
と述べています。私自身、研究をしていてもデータの作り方についての論文は極端に少ないと感じています。というのも、(私を含めて)技術オタクはアルゴリズムの改善や数理的な側面に強く興奮し、データ作成仕事になると泥臭く感じて途端に興味を失うという性向が一因かと思います。本当はアルゴリズムよりもデータの方が大事にもかかわらず。
本書はこの問題に正面から取り組んでいます。機械学習データの作成方法をまとまった形で提供している資料はたいへん貴重です。B5 版(よくある学術書より二回り大きい)428 ページと大ボリュームです。また、人間が介在すると数理的にはきれいな議論にはなりづらいという問題点については、著者の豊富な経験に基づき、完璧でないかもしれないが現実的に役に立つような解決策や議論を提供するという方式を取っています。まさに今から機械学習データを用意しようと考えている方にとっては大いに役立つ本だと思います。
一方で、研究者としては賛否が分かれる点も多いように感じました。明確なメリット(賛)は論文を読むだけでは触れられない新しいトピックに触れられることです。ここから新しい研究のアイデアに繋がることもありそうです。デメリット(否)は標準的な研究文献の流れは汲んでいないことです。著者オリジナルの内容がかなり多く、今から能動学習の研究をする人が文献調査のためにこの本を読むと偏った認識を持つことになりそうです。章末の文献案内は品質が高いので、研究目的の方は文献案内に基づいて原論文に読む方が有益かもしれません。本書は学術書というよりは技術書や実用に重きを置いた本であると認識して読むと間違いが少ないと思います。
以降では前後半の内容にそれぞれ触れたのち、本書の特徴について感じたことを良い面も悪い面も詳しく述べていきます。
🤸♀️能動学習パート(前半部)
能動学習とは、数ある候補の中からどのデータにラベルを付けるかを考えながら、反復的にラベルを付けることで高い精度の機械学習モデルの得る手法です。
能動学習の根拠は「すべてのデータは同じ価値ではない (Not All Data Is Created Equal)」と説明されることがあります。そもそも有用なデータと有用でないデータがあることもあります。また、ラベル付きデータが増えていくにつれて新たにラベルを付ける効果は逓減しますが、手持ちのラベルによって、あまり価値が逓減していないデータとほとんど情報がないデータに分かれることもあります。
例えば将来の大気中のCO2濃度を予測する問題を考えてみましょう。日付 x を受け取り、CO2濃度 y を予測する問題です。訓練データとして
- 1987年7月28日は346.0ppm
- 1987年7月23日は344.2ppm
- 1987年7月30日は349.6ppm
- 1987年8月1日は351.6ppm
- 1987年8月3日は345.6ppm
というものが与えられると、1987 年の話はもういいよとなるかと思います。一方、
- 1990年1月1日は360.1ppm
- 2000年1月1日は374.0ppm
- 2010年1月1日は394.4ppm
- 2020年1月1日は419.0ppm
というデータが与えられると、増加トレンドがあることが分かり、ある程度の精度で将来のCO2濃度を予測できるようになるかと思います。このように、どの日付 x にラベルを付けるか(濃度を測定するか)ということは構築できる予測モデルの精度に大きくかかわってきます。効果的な選定方法を自動で選ぶのが能動学習の技術です。
本書の能動学習パートの展開は比較的とオーソドックスな展開のように感じました。最小確信度サンプリングやアンサンブルベースの手法など、産業界でも学術界でも人気のある定番手法が一通り紹介されています。ただしオーソドックスな展開の中にも、本書の特徴、実用重視や著者の経験、が色濃くにじみ出ています。これらの点については後述します。
📝アノテーションパート(後半部)
後半部分では、アノテーション(ラベル付け)の方法について解説しています。第 7 章「アノテーターとの協同」や第 11 章「データアノテーションのためのインターフェース」など、学術界ではあまり扱われてこなかったトピックが詳しく説明されています。私は個人的には、この第 7 章と第 11 章が新鮮で、本書の中で最も面白いと感じました。
第 7.2.4 節「社内のアノテーション会議を定期的に行う」は特にお気に入りです。
この会議は、チームビルディングの練習にもなります。組織のあらゆる場面の人々を 1 つの部屋に集めれば、(長時間になる場合は食べ物や飲み物を用意して)非常に楽しく、社内の誰もが機械学習アプリーケーションに貢献できるようになるでしょう。このような会議を実施することで、全員が少なくとも 1 時間、データのアノテーションを行いながら、エッジケースに遭遇したらそれについて議論できます。私が働いてきた多くの会社では、「アノテーション・アワー」が多くの人が 1 週間のうちで一番好きな時間でした。
なんとも楽しそうではありませんか!また、実際に生産的でもありそうです。単純作業は他の人と一緒に行った方が生産的になるという社会的促進の理論 [Zajonc 1965] とも整合性があります。私も「アノテーション・アワー」を実施したいと思いました。
以下では私が感じたこの本の特徴を議論していきます。
👫人間が主人公
本書では単に人間が機械学習パイプラインに組み込まれているのではなく、人間が主人公として扱われています。
例えば、本書の第一章で反復プライミング効果が
アノテーターがソーシャルメディアの投稿に感情分析のラベルを付けているときに、連続して 99 件のネガティブな感情の投稿に遭遇すると、100 件目の投稿がポジティブでも、ネガティブとラベル付けしてしまう間違いが発生しやすくなります。[中略] ネガティブの連続で注意力が低下したことによる単純なミスも否定できません。
と導入され、以降もプライミング効果やアノテーターの自己効力感・当事者意識についてことあるごとに触れられています。研究でも [Eickhoff WSDM 2018, Draws+ HCOMP 2021] のように人間的な側面が扱われることがありますが、それはどちらかというと傍流だったのに対して、本書では積極的にこのような人間的な側面に触れて重要性を強調しています。
能動学習において、データ選定の基準を複数用いて合併することがしばしばあります。これは学術的には、バイアスを軽減する・頑健性を高める・汎化性能を高めるなどと説明することができ、私もこのように理解していました。しかし、この方法は様々なデータを見せることでアノテーターを飽きさせず、アノテーターの自己効力感を高め、またアノテーターが多様なデータを見て学習することでラベル付けの精度が上がりやすくなるという人間的な側面からのメリットもあります。私にはこのような考え方が抜け落ちていたのですが、本書を読めばこのような人間的な側面からも説明できるようになりました。
後半部のアノテーションパートでは特に人間に焦点を当て、報酬の決め方やアノテーターへの依頼方法や非協力的なアノテーターへの断り方など、人と人のコミュニケーションについて詳しく説明があります。「アノテーションプロジェクトの目的と、アノテーションにより生み出される価値をワーカーに共有するべきです。自分が価値を生み出していることを知れば、だれでも気分が良くなるものです。」など、それはそうだというようなことも、それはそうということだからこそ明示的に文書化していることがあまりないので、このような形でまとまっていることは有益だと感じました。
💪著者の豊富な経験
著者の Robert (Munro) Monarch は様々な機械学習データ作成プロジェクトを率いてきた経験があり、本書の内容は著者の経験に基づいて執筆されています。これには良い面と悪い面があるように感じました。
良い面はもちろん、豊富な経験に裏打ちされた実用的な技術が学べることです。過去に実際に行われたデータ作成プロジェクトの経験を基にしながらの説明は非常に説得力があります。また、学術界で行われている研究では、存在しない問題を作り上げて数理的に解いている場合が少なくありませんが、本書はそのようなことはなく、確実に存在する問題、というのも多くは著者が自ら経験した問題、のみを取り上げることで、確実に役に立つ議論になっていることが多いと感じました。
悪い面は著者の経験に全面的に依存している点です。このことは、議論のあとに根拠として引用を示すという伝統的な引用スタイルを本書は採用しておらず、巻末に参考文献がないことからも見て取れます(ただし各章末に文献案内はありこちらは品質が高いです。)このため、著者を信頼して主張を受け入れざるを得ず、議論の余地がある場合には疑ってかかる研究者からすると納得がしきれない議論も散見されました。
これらの特性は切っても切れないコインの裏表ではあります。前述のように、機械学習データ作成のノウハウは産業界・学術界の両方においてほとんど公開されておらず、伝統的な引用スタイルに従うことを要求するとそもそも本書はどのような人の手にかかっても書けなかったことと思います。どうしてもブートストラップせざるを得ないため、このようなスタイルになったのでしょう。
このことが強く表れているのは著者が考案した ATLAS という手法についてのくだり(第 5.4 節)です。
ATLAS は本書の執筆時点ではまだあまり検証されていないアルゴリズムですが、有用なので、ここで紹介します。私が ATLAS を考案したのは 2019 年末で [中略] ATLAS は私が実験してきたデータでは成功していますが、まだ産業界では広くは利用されていませんし、アカデミアでピアレビューを受けて検証もされていません。
ATLAS はちょっとした手法ではなく、本書でも繰り返し登場する重要な手法です。
自著で手法を自作して紹介できるというのはある意味とても「強い」です。 私も本を書いていて、本の流れ的に話したいことがあるのだけども世の中にはそういう研究が無いために泣く泣くストーリーを変更したり、歯切れの悪いような論調になることはあります。その穴を自分で埋めてしまえばまっすぐなストーリーできれいに話を進めることができる訳です。これはなかなかできることがでありません。それができているのは著者がこの分野について深い洞察を持っていることの証左でしょう。しかもこの ATLAS という手法はたしかに納得感があり、ちゃんとピアレビューを受けると採択されるだろうなという手法でもあります。また、このことはインターネットから寄せ集めた情報だけを書いた書籍ではないことも裏付けています。ATLAS を含め本書の多くの内容は他では得ることのできないオリジナリティでありそこが本書の大きな強みにもなっています。
🤫暗黙知への言及
前述の著者の経験にも関連しますが、本書では暗黙知を文書化しており非常に好ましく思いました。
このことは例えば第 5.1.1 節で紹介されている
この手法は、多くの企業が必要に迫られてそれぞれ独自に考案したものなので、広く普及しているにもかかわらず、一般的な名称はありません。
というくだりに見て取れます。この手法は論文ではあまり使われることがなく、論文を読んでいるだけでは気づけないため、このような形で文書化することは研究者にとっても大いに役立ちます。
また、
私の知る限り、能動学習に適用する場合の、各種のクラスタリングアルゴリズムの普遍的な優劣を深く研究した人はいません。多くの研究は特定のクラスタリングアルゴリズムに焦点を当てており、包括的な研究は存在しません。もしあなたがこのトピックに興味があるなら、素晴らしい研究テーマになるでしょう。
というように「存在しない研究」にも言及しています。「存在しない研究」は本当に無いのかを確認することが非常に難しいですし、これを明記することは勇気がいることだと思いますが、明記することで今後この分野で研究しようとしている人のためになるような形になっていることはとても良いと思いました。
🥳数理なし
本書は徹底的に数理的な内容が排除されています。そもそも数式がほとんどなく、たまに登場しても高校数学の基礎程度のものです。良い面は気楽に読み進められることです。悪い面は系統的な理解が難しいことです。
手法を説明するためにはある程度の数式を使わなければ難しいようにも思いますが、それを回避するために本書では具体例と一枚の図で手法を説明しています。これは斬新であり違和感があった部分でもありました。これはその手法がどういうものなのかをざっくり眺めるためには良い方法であり、一方で細かい動作については想像で補完するしかなく理解を深めるのは難しかったです。また、なぜその手法が良いのかということについても多くは言葉でのみ説明がされており、納得感が薄い箇所もありました。例えば本書でモデルベースの外れ値サンプリングと呼ばれている、活性化値が小さいものは不確実であるとする手法において、なぜ活性化値が小さいと不確実と言えるのかは(言いたいことは分からないでもないものの)深くは納得できませんでした。私としては全体的にもう少し数理を入れてくれてもよかったのになと感じました。
また、説明に数理が必要な手法は本書では扱われていません。例えば、GLAD [Whitehill+ NeurIPS 2009] など項目応答理論に基づいたアノテーションの集約方法やワーカー能力の推定方法は人間参加型の機械学習分野では盛んなトピックですが、本書では言及されていません。アノテーションの集約方法については、本書では単純な算術で行える範囲の手法が紹介されています。一定以上に数理的な手法は現場では必要なく、状況に合わせて基本的な解決策を選ぶ方が重要であるという信念に基づいているのだと感じました。実際、本書でも
実際に現場で能動学習システムを構築する開発者としては、先進的なアルゴリズムを試す前に、まずは簡単な解決策を試してみるべきです。
と述べられています。この方針は本書では一貫しており、そのような本であるということを念頭に置いて読み進めると間違いがないと思います。
数理的・学術的な側面にも興味がある場合は『ヒューマンコンピュテーションとクラウドソーシング (機械学習プロフェッショナルシリーズ)』が良い入門書になります(私の指導教員の著書です。)こちらは A5 版 127 ページとよりコンパクトなので、ざっとクラウドソーシングの概要に知るのにも便利です。かなりスタンスが異なるので、二冊の本を読み比べてみると面白く、多角的な視点が身につくと思います。
まとめ
今までほとんど無かった、機械学習用のデータを作成するための書籍です。実用性を強く重視しており、まさに今から機械学習データを用意しようと考えている方にとっては大いに役立つ本だと思います。研究者にとっては良い面と悪い面がありますが、新しいトピックに触れたい方や、逆にアカデミア流に凝り固まった考えをほぐしたい方にはぴったりだと思います。
Amazon: Human-in-the-Loop 機械学習
連絡先: @joisino_ / https://joisino.net