ICML2021論文読み会に参加して

札幌に移住してしまった身としては、リアルな論文読み会というのは滅多に参加できなくなってしまったものなのだが、今回の[ICML論文読み会](https://line.connpass.com/event/221309/)は完全にオンラインで参加でき、非常に有り難かった。もっとオンライン化進め！と心から願う。
また形式も１論文10分のLT形式ということで、言い方は悪いが、最先端の論文を気軽につまみ食いでき、非常に楽しかった。さらに、専門に研究されている方・得意とされている方がその分野の最先端の論文を紹介されているので、分かりやすく納得できるものであった。
今まで参加した勉強会の中でも、最も良かった会のひとつだと思う。少なくとも私には非常にマッチしたものだった。

備忘録の意味で、私が気になったものを以下に書き留める。
才能ある若手の皆様の発表を、Shallow Learning を主戦場とする糞ジジイがコメントしてるだけなんで、あまり参考にはならないと思うけど。
ちなみに元論文ほとんど読まずに、聞いた限りの知識で書いている。間違ってたらゴメンナサイ。

# Lanient Regret and Good-Action Identification in Gaussian Process Bandits
発表者：BCG 鹿野さん
論文リンク：[Lenient Regret and Good-Action Identification in Gaussian Process Bandits](https://arxiv.org/abs/2102.05793) 

私がWeb広告業界にいたころは「バンディットやんなきゃ」と思って勉強してみたのだが、論文や書籍が少なくかなり苦労した。（そしてそれほど身につかなかった）
しかしこの数年で飛躍的に発展をしているみたいだ。まずそこにびっくりした。

まずは Gaussian process bandits。
通常の bandit (multi-armed bandit) は、N台のスロットマシンからどれか選んでガチャするので離散的なものなのだが、これを連続的なものに拡張している。すげえ。
ってことは、「どの広告を出すか」みたいな離散的な問題だけじゃなくて「パラメータを0から1の間のどの値にするか」みたいな汎用的な問題に bandit を適用することが出来るってことだ。
（2010年にはGP-UCBの論文が出てきて、確かに私もGP-UCBという名前は見たことあるので、ここらへんを当時の私は整理して理解出来ていなかったのだろう）

そして Good-Action Identification。
bandit といえばリグレットを最小化するで有名。理論上の最大報酬から、ガチャしたときの報酬の差分を見て「あ〜、あっちをやっときゃ良かった〜」っていう後悔を最小化する。
そういう後ろ向きのモチベーションじゃなくて、「設定した値以上の報酬ゲットしたからええやん」という前向きのモチベーション。
ってか、これ提唱したの鹿野くんやん。いつの間に。

この論文は、Gaussian process bandits 上で Lenient Regret と Good-Action Identification を考えたもの（なんかリグレットも増えてる！）。
また再び bandit を考えなければならなくなった時の為にメモ。

# A General Framework For Detecting Anomalous Inputs to DNN Classifiers
発表者：LINE 吉永さん
論文リンク： [A General Framework For Detecting Anomalous Inputs to DNN Classifiers](https://arxiv.org/abs/2007.15147) 

パンダにノイズ加えたらテナガザルになっちゃったショックはかなり大きかったらしく、この論文もその対策を考えたもののひとつ。

DNNの中間層での値を使って、Classification と同時に Anomaly Detection しちゃうってやつ。もう既に何種類か手法が考案されているらしい。知らなかった。遅れている。

同じことを Shallow でやろうと思ったら、ちょっと考えると Classificator と Anomaly Detector を同時に作るぐらいしか思いつかないのだが、そもそも入力値としては Anomaly ではない（ノイズ加えても人間にはパンダに見える）ので、Shallow な Anomaly Detection では無理だ。中間層を持つ Deep な人にしか出来ない。ずるい。

しかし、パンダとか画像は置いといても、一般的に、これは ML model をデプロイした場合に常に注意しなければならないことなのではないか。吉永さんも「MLOpsの文脈」と仰っていたが、まさにその通り。

パンダとか画像とか Deep を抜きにして考えると、Classification では目的のカテゴリに加えて「その他」のカテゴリも加えて学習してしまって、その他は外す、ということが考えられるが、そもそも「その他」のデータってどうやって入手するねん、って問題が出てくる（これは Anomaly Detection 全般に共通する問題ではあるが）。

ということで、DNN で Classification したら、それを使って Anomaly Detection 出来るってのはかなり大きい。俺ももっと Deep するべきなのかもしれない。

この論文は、このような中間層から指標を計算するフレームワークを提唱したもの。そのフレームワーク上で実際に検証して、だいたい良かったよという話。

でも個人的には Deep Mahalanobis ([A Simple Unified Framework for Detecting Out-of-Distribution Samples and Adversarial Attacks](https://arxiv.org/abs/1807.03888)) の方が気になってはいる（Mahalanobis好き）（こっちは[実装](https://github.com/pokaxpoka/deep_Mahalanobis_detector)がある）。教師ありの Anomaly Detection だから実際には使えないよ、って話なのかなぁ。（全然読んでない）

# Mandoline: Model Evaluation under Distribution Shift
発表者：Uzabase 高柳さん
論文リンク：[Mandoline: Model Evaluation under Distribution Shift](https://arxiv.org/abs/2107.00643) 

この論文が一番興味深かった。

私は特徴量エンジニアリングとして、連続量の離散化とか、クラスタリングしてその結果を stack するとかやるのだが、それってこの論文と相通ずる所があるんじゃね、と。我が意を得たり、という感じだった。論文の主旨と違う所ですまん。でも、そんな私はこの論文の手法がスッと納得できた。

論文の主旨は、学習データの分布と（学習時には得られなかった）予測データの分布って違うよね、それってなんとかしなきゃいけないよね、って話（共変量シフト）。

正直、実際の ML model のローンチで、共変量シフトまで考えるのはとても大変。恥ずかしながら、やってない。でも、やんなきゃいけない。Adversarial Attack 対策以上にやらなくてはならない。

私は全然 MathMath してないので（測度論苦手）、この論文を読むのは苦労するだろうが、読まなければならない。
技術評論社から出ているホクソエム監修シリーズの本も勉強しなきゃいけないと思ってる（宣伝に非ず）。いっぱい勉強することあって大変だよ。

勉強不足すぎるので、コメントはこの辺で。

# Thinking Like Transformers
発表者：Uzabase 中村さん
論文リンク： [Thinking Like Transformers](https://arxiv.org/abs/2106.06981) 

HuggingFace の [Transformers](https://huggingface.co/transformers/) は使えるけど、Attention や Transformer の理解はまだまだ至っていない。ヘタレ Machine Learning Engineer です。

でも Attention が select と aggregate ってのは、とても分かり易かった。select してるから attention なんだもんね。

[Attention Is All You Need](https://arxiv.org/abs/1706.03762) と Kashima さんの [Attention might be something you need](https://docs.google.com/document/d/1e0vscvd-mtpwHWJdhMMEUs-193hQ_LnKpssDkU8NaW0/edit) も読まなければならない。

# On Disentangled Representations Learned from Correlated Data
発表者：Recruit 荒居さん
論文リンク： [On Disentangled Representations Learned from Correlated Data](https://openreview.net/forum?id=1ibNKMp8SKc) 

GANのlatent spaceを見たときから、「この１個１個が因子を表してたら良いのになぁ」と思っていた。考えることはみんな同じ。で、これを Disentangled Representation と言うらしい。

教師なし Disentangled の不可能性の証明：世の中そんな上手くいかない
相関ありの Disentanglement：そりゃそうだよね（モチベーションも難しさも）

２次元美少女の顔を GAN で生成するサイトがあって、スライダーで髪の色とかを変えられるようになってたけど、あれって膨大な試行錯誤でやってるんじゃないかと思っている。（違うかもしれない）

応援しています。（応援しているだけ）（俺には無理だ）（GANは学習するの難しいよ〜）

# DeepWalking Backwards: From Embeddings Back to Graphs
発表者：Sansan 黒木さん
論文リンク： [DeepWalking Backwards: From Embeddings Back to Graphs](https://arxiv.org/abs/2102.08532) 

グラフやっている人は、私なんかとは脳みその次元が違うと思っている。頭良すぎ。

この論文は、node embedding（グラフを低次元の密なベクトルで表現する）の逆変換を考えて、node embedding がどのような情報を保持してるのかを探るもの。

で、NetMFはローカルな構造（3-クリークとか）を洗い流しちゃうけど、グローバルな構造（コミュニティ・平均経路長）は保持すると。
それって実務的には問題無いってことなんじゃないかね。（Sansan さんはローカルな構造も使うかもしれないけど）

そうなると、安心して node embedding を使って良いと。

私は word embedding 大好き人間なので、node2vec に俄然興味が湧くのだが、NetMF は単なる matrix factorization ではなくて、Deep Walk や node2vec も包含するものであると。

論文：[Network Embedding as Matrix Factorization: Unifying DeepWalk, LINE, PTE, and node2vec](https://arxiv.org/abs/1710.02971)
実装：[xptree/NetMF](https://github.com/xptree/NetMF)

恐らくは本当に包含しているのではなくて、Laplacian行列の圧縮はnode2vecと同等ぐらいを言っているのだとは思うけど。いつか使うこともあるだろう。

しかし Laplacian 行列とか見ると、本当に頭良さそうだよね！（頭悪い感想）