6月に販売開始した、ストックマーク株式会社の機械学習エンジニアによる共著『BERTによる自然言語処理入門:Transformersを使った実践プログラミング』(オーム社)。売れ行きも好調で、発売日の前から重版が決定していた。
本書はデータセットの処理から、BERTのファインチューニング(BERTを特定の言語タスクに特化させるための学習)、性能の評価までの一連の流れを、文章分類・固有表現抽出・文章校正・類似文章検索といった言語タスクごとに体験できる。
>>BERTによる自然言語処理入門 Transformersを使った実践プログラミング | Ohmsha
「入門」と銘打っているが、はじめて自然言語処理を体験する人や、非エンジニアでも読めるのか?本書の魅力をさらにフカボリすべく、執筆をリードした、ストックマーク株式会社 R&D マネージャーの近江 崇宏氏に話を聞いた。
ストックマーク株式会社にて自然言語処理の研究開発に従事。
2012年に京都大学大学院理学研究科博士課程修了。博士(理学)。その後は、2020年まで東京大学生産技術研究所(最終職位:特任准教授)にて時系列解析を中心とする統計学・機械学習の研究に従事。2020年4月より現職。
本のコンセプトは「BERTでできることを知る」
ストックマークは、ユーザーの閲覧履歴をAIが学習し、世界中のビジネスニュースの中から業務に直結するニュースをレコメンドする「Anews」をはじめ、自然言語処理技術を生かしたサービスを提供している。テックブログやイベントでのBERT、自然言語処理の情報発信もさかんだ。
日本語の自然言語処理ノウハウを持つそんな同社が、なぜ入門にフォーカスしたのか?
そこには”入門書”の方が売れる、というわずかなたくらみだけでなく、BERTを使って自然言語処理のいろいろなタスクができることを知ってほしい、という執筆チームの強い思いがあった。
「BERTでどのようなことができるのかのイメージを掴んでもらえればと思っています。
私も専門外の分野、例えば画像処理でいろいろなモデルの名前を聞くことはありますが、何ができるかというのはあまり知りません。
そうした、機械学習をやっているけれど自然言語処理は未経験という方や、BERTで何ができるか分からない、という方に向けた『入門』としています」
実際に本書では、BERTとBERTを扱うためのライブラリであるTransformersの概要や使い方を解説したのち、自然言語処理の各タスクの説明に入る。目次には「固有表現抽出」「文書校正」「類似文章」といった章が並び、読者は本文を読み進める前から、BERTを使って何ができるかを知ることができる。
機械学習の経験がなくてもBERTを使えるワケ
この本には同類の解説書と違うふたつの特徴がある。そのひとつが、BERTやTransformersの使い方に着目した章立てだ。
BERTやTransformersの使い方も解説
まず本書の前半で自然言語処理やBERTについて解説があり、「自然言語処理とは?」「ニューラル言語モデルとは?」といった基礎的な部分も、コンパクトかつていねいな説明で紐解く。
後半では、Transformersという事前学習済み言語モデルを提供するライブラリを用いて、BERTを動かして言語タスクを解く。BERTとTransformersとの組み合わせも近江氏いわく「自然言語処理ではスタンダードな構成」であるものの、初学者にとってはハードルが高い。
「Transformersの使い方は、インターネットで調べれば解説記事が見つかります。
ただ公式ドキュメントや一般のブログも、”見る人が見れば分かる”というもので、ある程度の前提知識がないと理解をするのは難しい。特にTransformersの公式ドキュメントはすべて英語なので、私自身が初めて勉強したときも分かりづらいなと思っていたのです。
本書では、あまり使ったことがない人でも動かせるように、丁寧な解説を心がけました」
ライブラリの基本的な使い方は巻末の「付録」などで紹介する技術書が多い中、本書では初学者を想定した解説がなされている。
英語データセットで分かるのはBERTが動いているという事実だけ
この本でもうひとつ特徴的なのが、日本語データセットを使った解説だ。
自然言語処理の解説書やオンラインの記事では、著者が日本人でも英語のデータセットを使って解説することが少なくない。日本語のデータセットの数は英語などに比べて少ないという事情があるからだ。
近江氏は執筆プロジェクトが立ち上がったとき「日本語のデータセットで統一しましょう」と提案したほど、強いこだわりを持っていたのだとか。
「極端な話、BERTが動いているかどうかを知るには英語のデータセットでも問題ありません。でも英語になじみがないと”動いている”ことがわかるだけですし、ちょっと面白くないですよね。
自然言語処理は私たちの日常に密接に関わっています。多くの日本人が日本語の言葉や文章のイメージを自分なりに持っているので、日本語のデータセットの方が、読者の方に楽しんでいただけるのではないかと考えました」
本書では大量のデータを事前学習させたBERTを使うほか、「Wikipedia を用いた日本語の固有表現抽出データセット」や「日本語Wikipedia 入力誤りデータセット」、「livedoor ニュースコーパス」、「chABSAデータセット」など自然言語処理の各タスクに適した公開データセットをファインチューニング用に用いる。
日本語データセットを使うからこそ、直感的に「自然な文章が出た」「文章のネガポジ判定に成功した」などの処理結果が分かるのだ。
実は過去に経験がなかった「文章校正(9章)」。手を動かしながら執筆を進めた
技術書の執筆というと、著者がこれまで培った専門知識や経験・ノウハウを集約して出すものが多いが、自分の知識がアップデートされるということも少なくない。
近江氏も本書の執筆を進めていく中で、新たな学びがあったとのこと。
9章の「文章校正」は、執筆担当の森長 誠氏と近江氏は共に経験がなく、まさに手探りでの挑戦だったそうだ。担当編集者にも「できるんですか?」と心配されたほど。それでも試行錯誤を経て、なんとか本書で解説できる形まで持っていったという。
「最初はうまく行くのか自信がありませんでしたが、データセットをどう使うのか、どういうふうにしたら読者にとって分かりやすいのか、などと考えながら手を動かしました。当初の想定よりも完成度が高いものができて、新しい学びも多くありました。
逆に、8章の『固有表現抽出』は、私が業務で培った経験が特に活かせたように思います。書きたいことが書けたという実感がありましたので、こちらもぜひ見ていただけると嬉しいです」
固有表現抽出とは、文章から人名・組織名といった固有名詞を抽出するタスクのこと。本書では解説に加え、同氏がプロダクト開発で培ったノウハウも充実している。
まずは、BERTを動かしてみてほしい
タスクごとに拾い読みができる構成の本ではあるが、読者におすすめしたい読み方はあるか?を聞いてみると、
「自然言語処理に詳しくない方は、BERTを知らない方は1章から3章まで。どうやって動くかに興味を持った人は4〜6章ぐらいまでを、まずしっかり読んでみてください。
SNSで『後半部分は難しい』という声がちらほらありましたが、7章から10章は、処理の内容が複雑になり、コードもそれ以前の章に比べると難しくなります。ただし、すべてを理解しなければ次の章に進めない、というものではないので、まずはざっくりとイメージを掴んでもらえたらと思います」
とのことだ。本書は一般書と専門書の間のレベルに調節していて、読者のレベル感も幅広く想定している。読み進めていくと難しい部分もあるかもしれないが、ブラウザ上から実行できるGoogle Colaboratoryで気軽に試してみてほしいそうだ。
「本書で、BERTで何ができるのか、どういう仕組みで動いているのか、というイメージを持っていただけたら嬉しいかなというところです。
モデルやアルゴリズムの詳細な解説もできなくはありませんでしたが、実践的な内容にしたいと思い、あえて必要最低限に留めました。実際に手を動かして、BERTで何ができるか、どう使うかを理解できる内容になっていると思います。
前半のモデルの解説を難しく感じられたら、まずは後半のコードを動かすところでイメージを掴むのも良いかもしれません。未経験者でもどんどん実践してみてほしい。このBERT入門をきっかけに、自然言語処理そのものにも興味を持っていただけたら嬉しいです」
先日、Ledge.ai Webinar vol.32『自然言語処理でビジネスパーソンが注目すべき技術とは?BERT以降の変遷とこれから』に登壇。多くの視聴者が注目した
当分はもう書きたくない?けど……
これまでの話でうかがったとおり、本書は入門書という位置づけだ。本書の続編や違った切り口での発信を考えているか?とたずねたところ、直近で続編を出す予定はないが、今後もBERTや自然言語処理などの情報発信は続けていきたいという。
「執筆はハードスケジュールでしたし、今の段階ではもう書きたくないという気持ちもありますが(笑)もう少し体力が戻ってきたらできるかもしれないかなといったところです。
どんなトピックを取り上げるかはまだ未定ですが、我々としては最先端の技術を一般に広く、わかりやすく伝えていきたいと考えています。プロダクト開発で新しい技術も取り入れていっているので、新しい技術でどういうことができるかは今後も発信していきたいと思っています」
自然言語処理の”はじめの一歩”を後押しする一冊
インタビュー中も一貫して「まずはBERTを触って試してほしい」と近江氏が言っていたとおり、非エンジニアの筆者が本書を手にとって最初に感じたのが、圧倒的なとっつきやすさだ。
BERTやTransformersの解説ページをはじめ、ブラウザ(Google Colaboratory)中心の環境構築、日本語データセットが「とりあえず触ってみる」まで、自然言語処理を始めるうえで背中を後押ししてくれる。
この本を参考に、先日筆者も文章の穴埋めタスクを体験してみた。初めて自分のマシンでBERTが動いて、日本語の文章が画面に表示されたのを見たときは、感動すらおぼえた。
コードが詳しく分からなくても、英語に慣れていなくても、自然言語処理の”はじめの一歩”を踏み出せる。『BERTによる自然言語処理入門:Transformersを使った実践プログラミング』は、以下リンクなどで現在販売中だ。