Sansan Tech Blog

Sansanのものづくりを支えるメンバーの技術やデザイン、プロダクトマネジメントの情報を発信

【ML Tech RPT. 】第1回 Zero Shot Learning を学ぶ (1)

f:id:s_yuka:20181213172701p:plain
こんにちは、 Sansan DSOC 研究員の吉村です。今年の春新卒として入社しました。専門は機械学習及びクラウドソーシング周りで、現在は予測モデルの作成やワーカのミスの分析などを行なっています。こちらの連載では、自身の勉強を兼ねて普段の業務やその周辺技術についての発信をしていこうと思います。
初回は、業務とはあまり関係がないところではありますが、知見を溜めるという意味合いも込めて以前から興味があった Zero Shot Learning について調べてみましたので、共有をさせていただきます。この記事では Zero Shot Learning についての、問題設定やそれを利用するモチベーションについて説明します。

Zero Shot Learning とは

Zero Shot Learning とは機械学習における研究分野の一つであり、訓練データ中に一度も出現しなかったラベルを予測する問題設定です。
つまり、特徴量空間を X 、ラベル空間を Yとし、訓練データ内で観測されたラベルのみによって表される空間をY^{train}、訓練データ内で観測されなかったラベルのみによって表される空間をY^{target}とすると、

$$
f : X \rightarrow Y^{target}
$$

となるような分類器fを学習することが目的となります。
だだし、この時、
$$Y^{train} \cup Y^{target}=Y,$$
$$Y^{train} \cap Y^{target}=\emptyset$$
の両方が成り立ちます。

前提

Zero Shot Learning の問題設定を見てみると、そんなことが出来るのだろうかという気持ちが湧いてくるかと思います。Zero Shot Learning でこのような不思議なことができるのには訳があります。それは Zero Shot Learning では訓練データ中に一度も出現しなかったラベルを含む全てのラベルに対して、何らかの情報が既知であるという前提をおいているからです。したがって、詰まる所、Zero Shot Learning とは、「予測対象となる全てのラベルに与えられている何らかの情報と、訓練データとをうまく利用することで、新たに与えられる入力に対応する真のラベル y (\in Y^{target}) を予測するモデルを作成する」問題と言えます。ちなみに、ここで述べている、何らかの情報の一例を示すと、例えば、物体認識の時に各ラベルとなる物体に対して、「毛が生えているか否か、哺乳類か否か、人工物か否か」などの情報を 0/1 で表現したベクトルなどがそれに当たります。

Zero Shot Learning を利用するモチベーション

Zero Shot Learning のように「訓練データの中には存在しないラベルについての分類問題を解きたい」という状況はラベル付けの困難が伴った時に発生します。例えば、「候補ラベル(クラス)数が膨大なマルチクラス分類問題を解きたいが、それぞれのラベルに属するサンプルを十分な量集めることが困難な場合」や「ラベルを付けるために専門的な知識が必要であったり、手間のかかる作業が必須であったりするために、ラベル付けのコストが非常に高い場合」などです。前者の例としては物体認識問題が挙げられます。世の中には幾千もの物体が存在しており、それら全てのラベル付き画像を集めることは不可能に近いです。そのため、認識対象となるラベル空間を広げれば広げるほど、十分な量の学習用のサンプルを集めるのが困難ということになります。後者の例としては neural activity decoding (神経活動の解読作業) が挙げられます。neural activity decoding では、ラベル付きデータを取得する場合には被験者を用いた実験を行う必要があるため、ラベル付きデータを取得するコストが高いと言えます。

広義の Zero Shot Learning と狭義の Zero Shot Learning

f:id:ssatsuki040508:20181105111311p:plain

(広義の) Zero Shot Learning は、さらに詳細な二つの問題設定に分けることができます。一つ目の問題設定が (狭義の) Zero Shot Learning (ZSL) と呼ばれるものです。ZSL の目標は訓練データ中のサンプルに対して一度も割り当てられなかったラベルのみを予測することです。つまり、「Zero Shot Learning とは」の章で述べた Zero Shot Leargning の説明そのものということになります。この問題設定は、訓練データに存在しなかったラベルのみからなるラベル空間で分類問題を行うものであるため、問題の状況が特殊すぎると言う理由からあまり現実的ではありません。もう一つの問題設定は、この非現実的な問題設定をより現実的な問題設定に修正したもので Generalized Zero Shot Learning (GZSL) と呼ばれます。GZSL の目標は訓練データ中のサンプルに対して一度も割り当てられなかったラベルだけでなく、訓練データ中のサンプルに対して割り当てられたラベルも予測対象とすることです。つまり、
$$
f : X \rightarrow Y
$$
となるような分類器fを訓練データ集合 \{(\boldsymbol{x}, y) | \boldsymbol{x} \in X, y \in Y^{train} \} から学習する問題ということになります。

Zero Shot Learning の始まり

Zero-data Learning について

Zero Shot Learning に関連がある研究の中で最も古いと考えられるのは、 (H. Larochelle et al., 2008)*1です。H. Larochelleらはこの論文の中で "Zero-data Learning" と言う、後の "Zero Shot Learning" に類似した問題設定を提案しています。この論文では「識別対象の全てのクラスをカバーできない量のラベル付き訓練データしか存在しない分類問題や、利用可能な訓練データから解きたいタスクのうち、いくつかのものに対して期待する出力をもつインスタンスが与えられていないようなマルチタスク学習問題を解くことを目的」とするのが "Zero-data Learning" であると記述されています。

Zero Shot Learning についての初めての言及

Zero Shot Learning という言葉について初めて言及されたのは、(M. Palatucci et al., 2009)*2 です。この論文では、 Zero Shot Learning の文脈での手法である Semantic Output Code Classifier (SOC) が提案されています。

最後に

今回は Zero Shot Learning について、問題設定やそのモチベーションを中心に調査しました。調査する以前は、Zero Shot Learning の前提となる、「全てのラベルに対して何らかの情報が与えられている」という部分を知らなかったので、そんな魔法のようなことができるのだろうかと思っていました。しかし、しっかりと論文を読んでいくことによって、それがかなり現実に寄り添った問題設定であることがわかりました。

次回は途中で言及した SOC も含めた、 Zero Shot Learning に関する手法についての記事を書く予定です。今回ご興味をいただいた方は、ぜひ次回も読んでください!

*1:H. Larochelle, D.Erhan, and Y. Bengio, "Zero-data learning of new tasks," in AAAI, 2008.

*2:M. Palatucci, D. Pomerleau, G. Hinton, and T. M. Mitchell, "Zero-Shot Learning with Semantic Output Codes," in NIPS, 2009.

© Sansan, Inc.