Sansan Tech Blog

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

【ML Tech RPT. 】第15回 構造に関連する機械学習を学ぶ (1)

f:id:ssatsuki040508:20181210005017p:plain
DSOC研究員の吉村です. 最近は (ファッション誌ではなく) ファッション史にハマっていて, 色々本をあさっています. 世の中の流れをファッションで変えてきたクリエイターやデザイナーの逸話はとても面白いです.

さて, 今回からは構造に関連する機械学習についての話をしていこうと思います. 構想段階では, 構造学習 (Structured Learning, Structured Prediction, Structured Output Prediction) をテーマにしようとしていたのですが, 構造に関わる機械学習技術を広く扱いたかったため今回は少し広いテーマを立てています. 具体的には、入力か出力に何らかの特殊な構造がくるような問題設定を取り扱います. まずは, 構造をモデルに組み込む意味や, 具体的な問題設定を紹介します.

構造をモデルに組み込む意味

オーソドックスな機械学習では, 入力に属性を並べた特徴ベクトルを与えて, それに対応する連続値や離散値を適切に出力するようにモデルを学習します. このような形の問題設定で構造に関連する機械学習を考えると, 扱える問題の幅に限界があったり, 学習や予測が非効率になることがあります.

そこで, もし, 構造を適切にモデルに反映させることができれば, より広い問題を機械学習で扱うことができ, また, より少ないデータ量で妥当な予測ができるモデルを学習できるようになることが期待できます.

特定の構造を出力する問題設定の場合には, 適切な構造を探し出すために構造を探索する必要があります. この時, 対象の構造にあった最適化アルゴリズムを用いることで, 効率よく現実的な時間で結果を得ることが可能となります.

様々な構造の問題設定

機械学習で扱う構造には, 様々なものがあります. ここではそのいくつかを紹介していきます.

系列構造 (Sequential Structure)

系列構造とは, データが一連のつながりを持ち, 前後関係があるようなものを指します. 例えば, 文を入出力に取るようなものがそれに当たり, 単に Bag-of-Words のように単語の存在やその回数のみをモデルに与えるのではなく, 文脈や語順の情報を用いることで性能の向上を期待します. 特に, 問題によっては, 文脈を捉えないと絶対に解くことができないようなタスクが存在することは想像に難くないと思います.

格子構造 (Grid)

ここで言う格子構造というのは, 碁盤の目上のデータの構造を指します. 具体的には, 画像データがそれにあたり, 各ピクセルが格子状に周囲8方向につながった構造をしています. この場合, 明らかに近傍のピクセル同士は何らかの関係を持つことを期待できます.

グラフ構造 (Graph)

グラフ構造とは, 事例間の関係を表現したもので, グラフ理論の分野などで研究がなされています. 具体的には, SNSなどの大規模なつながりや, 分子構造などがそれにあたります. SNSの例であれば, 似たもの同士の繋がりが多くなりますし, 分子の例であれば, 特定の構造を持つ時のみに発生する性質などもあります.

また, グラフ構造と一言で言っても, 有向か無向かや, 重みがあるかなどいくつか種類があります. 特に連結で閉路を持たない無向グラフを木 (Tree) と言い, Hierarchical Classification [*1]などの問題設定で重要となります.

多様体構造 (Manifold Structure)

構造と言えば離散的なものを想像しがちですが, これを連続空間上に拡張した概念もあります.具体的に説明すると, モデルの出力空間として線型空間や離散空間ではなく, 多様体空間 (Manifold Space) を想定した問題設定で, これを [*2] では多様体構造予測 (Manifold Structured Prediction) と呼んでいます.

その他

その他にも構造が関係するものとして, ランキング (Ranking), 変位置推定 (Quantile Estimation) [*3] , ハイパーグラフ (Hypergraph) [*4], そして, 最適輸送 (Optimal Transport) [*5] などを扱った研究があります. これらについても本テーマの今後の連載の中で少し詳細を触れていこうと思います.

まとめ

今回から, 構造を対象にするような機械学習の技術についての記事を書いていくことにしました. 特に本記事では, 構造を捉えてモデルに組み込む意味や, 様々な構造についての概要をまとめました. 次回からは, 各構造に関する技術についての詳細をまとめていきますので, 引き続きよろしくお願いします.

気になる方は, 読者になるボタンをポチッとお願いします.



▼【ML Tech RPT. 】シリーズ
buildersbox.corp-sansan.com

*1:D. Tuia, J. Munoz-Mari, M. Kanevski, and G. Camps-Valls, "Structured output SVM for remote sensing image classification," in SPS, 2011.

*2:A. Rudi, C. Ciliberto, G. Marconi, and L. Rosasco, "Manifold structured prediction," in NeurIPS, 2018.

*3:Q. V. Le, T. Sears, and A. J. Smola, "Nonparametric quantile estimation," in MLR, 2005.

*4:H. Kajino, "Molecular Hypergraph Grammar with Its Application to Molecular Optimization," in ICML, 2019.

*5:G. Luise, A. Rudi, M. Pontil, and C. Ciliberto, "Differential properties of sinkhorn approximation for learning with wasserstein distance," in NeurIPS, 2018.

© Sansan, Inc.