リクルートテクノロジーズ メンバーズブログ  IJICAI 2018 に参加してきました

IJICAI 2018 に参加してきました

こんにちは、リクルートテクノロジーズ 機械学習エンジニアの田口です。普段は自前で構築したBanditアルゴリズム入りABテスト基盤の面倒を見ながら、エンハンスをちょこちょこ進めております。興味範囲はOnline Learning、AutoMLです。

今回はスウェーデンで開催されたIJCAI(※)に参加してきたので、その内容をいくつかご紹介できればと思います。

※IJCAIとは・・・International Joint Conference on Artificial Intelligenceの略。ICMLnips等のカンファレンスと比較して、強化学習、深層学習とかAIの匂いがするpaperが多めでした。とはいえICMLでもaccepted papersのマジョリティが強化/深層関連なので、最早名前で分類しようとするのは難しいのではないかとも感じました。

論文関連の情報は昨今簡単に手に入るので、今回は現地に行ったからこそ手に入った情報に寄せてお届けします。

■ Deep Learning for AI (tutorial)

https://www.iro.umontreal.ca/~bengioy/talks/IJCAI-13july2018.pdf

Yoshua Bengioさんのチュートリアルや!これは聞かねば、と思って参加したセッションです。普段意識していることが「必要なデータ収集〜デプロイして金銭的効果を出すまで最短距離を進む」であるため、正直これまで学習やデータ集めに多少時間のかかるDeep Learningは、個人的には積極的に使ってきませんでした。

実際IJCAI workshopでもありましたが、Alibabaではすでに全てのレコメンドがDeep Learningを駆使したものとなっており、今後の基礎知識として必要不可欠である認識もしているので、改めてこの機会に体系的に学ぶつもりで参加しました。

結論から言うと、望んだ通りの知識を持ち帰ることができたと思います。feed forward、back propの話から始まり、CNN、RNNの話、gateやattention、最後は強化学習まで時系列でDeep Learningの発展を追いかけながら、それぞれがどういった技術かの解説、具体的な論文はコレ、など改めて学びなおすには最適な内容だったと思っています。参加して真面目に聞いたからといって体得したことには全くなりませんが、帰国してからの教材含め手に入ったのは非常に有意義でした。

■AutoML(workshop)

https://sites.google.com/site/automl2018icml/

一口に自動化といっても、その言葉が指す範囲は広く、実際に自動化が可能かどうかは別にして、データ取得〜結合〜前処理〜モデリング〜人間によるモデル理解〜デプロイ〜モニタリング、リプレイスまでがその対象となりえます。

当然全てをカバーした仕組みを作ることは(少なくとも現時点だと)難しいので、ワークショップ内ではそのパーツ、具体的にはモデリング部分、前処理部分等々トピックに分かれてトークが複数存在する形となっていました。

セッションの一つでは、モデリングの自動化ツールを紹介していました。モデリングが指す範囲もまた広いですが、ここでは統計モデリングの自動化に絞ったツール、具体的には事前分布の選択〜カーネルの選択、最適化指標の選択からモデル理解(特徴量重要度やどういったケースに強い/弱い等の理解ができるレポート)までをカバーした自動化ツールを紹介していました。モデル構築自動化の文脈だとリクルートが出資しているDataRobot含め、昨今少しづつサービスが出てきている印象です。

ポスターではDeep LearningのArchitecture Searchに光が当たっていました。2018年春あたりにGoogleがNAS-netを公開し、個人的にはArchitecture Searchという概念に非常に感動したのですが、上記を更に改良したものがいくつもあったと思っています。

Googleは潤沢なマシンパワーを生かした精度向上に力を割き(1本の結果を得るために450GPUで1週間の学習等)、その他ポスターはより短時間で学習可能なEfficient Searchに焦点を当てていた印象でした。(実際、アメリカBig4、中国トップ企業以外にそんなにマシンパワーをかけられるところは、なかなか存在しないのではないかと思っています)

本ワークショップは自分の興味範囲ということもあり、全般興味深かったですが、特に興味深かったのはbackprop evolutionというポスターでした。

先ほど述べたように、Architecture Searchは(少なくとも研究者界隈では)十分市民権を得てきた印象がありますが、現状はfeed forward部分をどううまく作るかにフォーカスした作りになっており、ゲートや離れた層のコネクション、活性化関数の選択等々、DNNを構築するにあたって重要な他のピースについては大きく触れられていないように見受けられました。

本ポスターはBack Propagationをevolution-baseで実施、通常のback propagationよりも高速な学習が可能になるという内容で、feed forward architecture optimization偏重だった研究をさらに発展させるための楔を打ってくれたものだと個人的には思っています。(と言ってもNAS-net登場から概ね半年程度しか経っていないのですが)

また、恥ずかしながらAutoML Challengeなるものが存在していることに現地で気づき、来年は出たいと思いました。

大枠kagggle等のデータ解析コンペと同じですが、前処理含めたコード全体をsubmitする点が違います。phase1では当該コードをsubmit→結果が出るといった内容ですが、phase2では人間の介入なしで当該コードを使って出た結果のみで評価されます。

また、公平を期し、実用性を(少しでも)高めるため、参加者は主催者が用意した環境を使い、制限時間内にタスクをクリアする必要がある(時間がかかり過ぎると有用なものとは言えない)+違ったデータセット(全5種)に対するpredictionを実施する必要(汎用性観点)があります。1位、2位のソリューションがポスターになって発表されていた&2位のソースはGithubで公開されている(https://github.com/jungtaekkim/automl-challenge-2018)ので、興味があれば見てみてください。

AutoMLの文脈で言えばAAAI2017にも同じタイトルのワークショップがあり、私はそこにも出席していましが、結論、(今でも)前処理がかなり大変な印象です。AAAI2017でChallenge Paper枠(※解く価値が非常に高い&非常に困難な問題に取り組んだもの。結果は問われない)で出ていた取り組みの中に特徴量エンジニアリングをメタデータだけ使って実施する、というものがありましたが、結果は芳しくありませんでした。

上記だけで判断するのは早計かもしれませんが、現状特徴量エンジニアリングは人間のドメイン知識/Kaggle等の特徴量生成手法に基づいて実施するのが最良で現実的な手段だと思います。しかし、自動化のためには上記知識の獲得という非常に難しいタスクをクリアする必要があります。とても無理に見える話なのでAutoMLの実現はまだ先になるのでは…と思っていたら、帰国後Kerasの開発者、Francis Chollet氏の最近のTwitterでの発言を見て、思っているよりは早く実現されるかもしれないと思いました。

少し下で書く内容の先取りになりますが、invited talkで現在の強化学習が抱える問題点として紹介されたもの(①前提知識、常識ゼロの状態から教え込む必要がある②学習が非効率(悪いプレイからも学習してしまう)、 ①②があるゆえ、学習に非常に時間がかかる)とかなり似ていると思いました。

実際前処理文脈でも、過去の前処理したときの内容が利用できるならば効率的な学習(過去加工したデータセットのメタデータの特徴を利用し、今回前処理するデータに近い前処理を実施する等、強化学習で言えばよりよくプレイできた回のみ学習する等)ができる!という論文がありました。

前提知識の獲得、効率的な学習という強化学習と共通したように見える問題が解決(or改善)されればAutoMLは一躍脚光を浴び、機械学習が更に日常生活に浸透する未来(実現するんだろうか・・・)が見えます。

■Learning World Models: the Next Step Towards AI(invited talk)

既に直前でネタバレしていますが書きます。
強化学習が碁を含めゲーム方面で多大なる発展を遂げている一方、その学習コストの高さ(Atariで60時間等)、現状を打破していく方向性についての話でした。

通常の人間であればAtariを数回プレイすれば満足にプレイできるようになるのに、強化学習の学習はいくらなんでも遅すぎる。大きな原因は2点、一般的知性/常識の欠如と学習の遅さである。人間の1歳児、猿でも重力に反する事象が起きた時に驚きを隠せないリアクションをとるのに、そうした常識がない、本当に赤ん坊以上にまっさらな状態から学習をスタートする点で学習効率が非常に悪いこと指摘していました。

関連する話で、別日セッションに自然言語処理文脈での常識を踏まえた質問分への回答生成や、効率的学習(Atariを例にすると、うまくプレイできた回からのみ学習する)があったので、研究者界隈では問題意識としては共通したものがあり、解くための試みがすでに始まりつつあるのだと思います。

こうしたセッションは研究者が次の研究の対象/方向性を決めるには大いに意義のあるものだと個人的には思っており、今回著名人から改めて現行強化学習の常識の欠如、学習の遅さが問題点として再設定されたので、遅くとも来年あたりには非常に効率的な強化学習やAutoMLの話が聞けるのではないか、お財布に優しい強化学習、AutoML(の一部)ができるのではないかと勝手に期待しております。

■DEMOS1 – Demos Talks 1: Planning, Robotics, Vision

Data-Driven Inventory Management and Dynamic Pricing Competition on Online Marketplaces
Amazonのようなオンラインマーケットプレイスでのプライシングを競合の存在や不確実な需要を踏まえた上でシミュレーション、価格の最適化を行うためのツールです。
たくさんパーツがありますが、docker-compose upで一発。
こんな全部盛りの状態でOSSで出てくることに、非常に驚きました・・・。
https://github.com/hpi-epic/pricewars

ドローン+密猟者detection
ドローンを使った公共事業を国外でやっている方がいますが、本件も非常に有意義なドローンの活用方法を提示してくれました。

アフリカの密猟者をドローンで発見(たとえ森の下に隠れていたとしても)し、一番近くにいるレンジャーに即座に情報連携、未然に密猟を防ぐ、というものでした。ドローンは高所作業、広大な土地、公共事業と相性がいいなと思います。何より楽しそうです。

■Alibaba Workshop

Alibabaで現在利用されている商品のレコメンド、CTR予測を実施するために利用しているモデルの話でした。両方ともDeep Learningをベースにした手法を採用していますが、製造元と繋がれる世界一のオンラインサービスだけあって、内部で採用しているアルゴリズムの日進月歩での進化の軌跡を垣間見ることができました。こちら残念ながら資料は非公開とのことです・・・。

■おまけ:個人的に気になった論文集

※リポジトリ/ライブラリが公開されているものを多めに紹介します。
それ以外のものは簡単に論文概要を紹介しますので、ぜひ検索してみてください。

tune: R&D用分散モデル選択、トレーニングの自動化

https://github.com/ray-project/ray

efficient neural architecture search with network morphism(AutoKeras)

https://autokeras.com

Orion: ハイパーパラメータごとの精度可視化

https://github.com/mila-udem/orion

AMLA : neural network design library by Cisco

https://github.com/ciscoai/amla

far-HO:ハイパーパラメーターサーチ+メタラーニングのためのパッケージ

https://github.com/lucfra/FAR-HO

online deep learning

https://github.com/phquang/OnlineDeepLearning
深い層のモデルを作るが、1層ごとにoutputを出す。結果は層ごと出力の重み付けアンサンブル。
データが少ない時は浅い層の出力重みが増し、多くなってきたら深い層の出力重みが増す。

A Genetic Programming Approach to Designing CNN Architectures(GECCO 2017 (oral presentation, Best Paper Award))

https://github.com/sg-nm/cgp-cnn
出来上がるarchitectureのクオリティは最高級ではないが、短時間でCNNのarchitecture searchを可能にした。
architecture searchには強化系、進化系、その他の3種があるが、進化系を採用している。

NeuRec: On Nonlinear Transformation for Personalized Ranking

https://github.com/cheungdaven/NeuRec
user×item、item×item、 representationをembedした特徴量を生成する。

Dynamic Network Architectures

画像ごとに分類に最適なネットワークの構成要素は異なるので、個別に多少違った処理をするためのネットワークを構築する。
ただしDNNの構造は予め用意しておく必要がある。
例)あるレイヤーでの処理が3×3convか5×5convかが対象によって変わる

UCBoost: A Boosting Approach to Tame Complexity and Optimality for Stochastic Bandits

確率Banditにおいて 複雑さと最適性をバランスするためのアンサンブルアプローチについての論文。
kl-UCBは計算量が重い、UCB1は精度に問題あるので間をとった。分布間距離計算が軽いものを複数使い、最良のものを都度採用する。
文中に登場するsemi-distance functionという定義を満たすものならば何でも、本論文で紹介しているアンサンブル手法に加えて使える。
kl-UCBと比較して1%の計算時間ですむ。

Finding Frequent Entities in continuous Data

class:nullを許した部分的なclustering。特徴量空間において、データが密集しているエリアこそが大事。
画像検索:特徴空間における密集度が高い=検索結果として表示するものが重複している。diversityを確保したいなら検索結果からは抜いたほうがいい。
streaming data→密度が高い=大事な/着目すべきデータ。distance metricは自由に選べる。

おまけ2 現地の様子

公園にトレーニング器具が

魔女の宅急便、最後のシーンのモデルになった広場

レセプションパーティーはストックホルム市庁舎での開催!でしたが、満員とのことで入場制限が。。。募る悲しみ

banquetはかの有名(?)なvasa museum内での開催

バイキング的な雰囲気を感じる生演奏が突如発生

夜11時に日の入り

宣伝:

仲間を募集しています!
海外著名カンファレンスに参加、最新の知識を仕入れて新しいソリューションを作りたい!サービスづくりに生かしたい!
そんな方はリクルートテクノロジーズへぜひどうぞ!

https://recruit-tech.co.jp/recruitment/mid-career.html