- はじめに -
先月、4日間に渡って東京の京王プラザホテルで開催されたSIGIR 2017に会社員として参加した。
参加に10万程必要な高額な学会であるが、弊社からは3人参加。
後の社内勉強会で情報もシェアしたので、個人的に気になったものを少ないけどいくつか出しておく。
(書くのが遅くなってしまい忘れた部分が多いので普段より少なめです…)
- Session -
大まかに見ると「Embbeding」と「Deep Learning」のお祭りという感じだった。
TF-IDFやword2vecは “Classical method” になっていた。
GloVe、Seq2Seq、Attention、CNN、End-2-End、Encoder-Decoder辺りがやっぱりホットワード。機械学習カンファレンスかというくらい機械学習の話を聞いた気がする。
あとはちらほらSolrの話を聞いた
Deep Learning for Extreme Multi-label Text Classification
Deep Learning for Extreme Multi-label Text Classification
Targetは巨大なラベルコレクションからクラスにラベルサブセットを割当るタスク
(例えばWikipediaなら「ポテト」に対して
「ナス属」「根菜」「南米産の作物」…)
こういったタスクは、ラベルコレクションが巨大になると所謂分類では難しいので、ラベル間の相関とかを利用しながらラベル付けしていく手法が良いのではという発表。
Extreme Multi-label Text Classificationでは、現状以下のような手法がある。
- target-embeddingとtree-based ensemble
- Deep Learning
- max-margin method
SLEEC[K Bhatia, NIPS 2015] のようにラベルを線型部分空間投影で有効数削減して、減らしたラベルをmainラベルとしてラベル付け、それらに付随するtailラベルをpairwise distancesで求める方法(target-embedding)。
MSのFastXML [MSR, Y Prabhu, KDD 2014] のように木構造(RF)でginiなどを使わずnDCG(normalized discounted cumulative gain)を直接最適化していく方法(tree-based ensemble)。
Github: https://github.com/Refefer/fastxml, https://github.com/fastxml/fastxml
DeepNetを工夫したFastText [Facebook, 2016]、Kim-CNN [Y Kim, EMNLP2014]、Bow-CNN [Rie Johnson, ACL2015]辺りの手法(この辺はググると解説記事が出てくる)。
PD-Sparse [IEH Yen, 2016]などにおける、ラベルごとに重み行列を設定し線形分類器を回してmax-marginを出していく方法(この辺: http://www.cs.utexas.edu/~xrhuang/PDSparse/)。
既存の中でもword2vecで生成したベクトルをCNNに突っ込むCNN-Kimを工夫した「XML-CNN」を提案しますという内容だった。図で示すと以下。
やっていたことは以下
- Dynamic max pooling
- sigmoid output layer
- Hidden Bottleneck Layer
普通のMax poolingだと長い文章列にはあまり良くないので、レイヤーをさらにチャンクに分割して動的にMaxPooling。
OutputにSoftmax使うのは重いし学習に良くない(最近割と話題になりつつある)。
隠れ層を追加して圧縮すれば精度も上がって出力のsigmoidの計算も早い。
ResultはWiki-500KとかAmazon-670Kで挑戦しているが、どの既存手法よりも精度良く出ており割と効果はありそうだった。
シンプルな改善なので、機械学習実務レベルだと既にやられていそうだなあと思いつつ、今後こういった「ビックデータにおける自然言語における自動ラベル付け」というのはビジネスにおいても非常に重要になりそうだし聞いてよかった。
Max-Margin Based Embeddings for Entity Retrieval
エンティティ検索において、SemanticWebのような構造表現(Structured ER)も語彙表現(Document-centric ER)もどちらも大事だし使いたいという内容。
A Three-Way Model for Collective Learning on Multi-Relational Data [Nickel ,ICML11]でいうところのknowledge graphベースなRESCAL。その拡張のTransE [Antoine Bordes, NIPS, 2013]。(yamaguchi先生記事: TransE [NIPS'13] を実装(と実験再現)した - でかいチーズをベーグルする)
あと古典的なINEXやTREXをDocument-centric ERとして紹介。
word2vecやGloVeといったWord Embeddingの紹介をして、TransEとGloVeを合わせたEECSモデル [S Jameel, 2016]の拡張を提案。
数式を見て分かるようにkernelを使っており、分離平面ごとに検証。
計算時間が増加してもquadなkernelを使ったほうが大体結果が良いという内容だった。
また、エンティティ検索結果として見栄えの良いものが出ていただけでなく、ある程度短めな文章で検索した場合にも結果が得られている所が印象的だった。
- Poster -
ポスターセッションは大体見た
ここでもDeepNetとベクトル化の手法が多々あった
Cross-Device User Linking: URL, Session, Visiting Time, and Device-log Embedding
タスクとしては、ユーザが複数デバイスから見たWebページ情報から同一人物化どうか判定するというもの。
Embeddingの方法としてURL Embeddingを使っていてちょっと面白いなと思った。
Graph EmbeddingやらNode Embeddingやら本当にIR系だと有益そうだしブーム。
SogouT-16: A New Web Corpus to Embrace IR Research
https://www.thuir.cn/group/~yqliu/publications/sigir2017Luo-SogouT.pdf
中国でWebページのデータセット(HTMLやCSS)を公開しているよというポスター
セッションでも「中国の複数の動画サイトをまとめたWebサービスがあってそこからデータ集めたよ」みたいなのがあって、中国スゲーってなった。
分析屋としてというよりは、個人でスクレイピングの色々をやっているので、スクレイピング周りの研究が進むためにもこういったデータセットの普及が進んでほしいなと思った。
- おわりに -
ニューラルネットなら色んな特徴量投げ込める上、分類からRankNetのようなモデルもあるので研究の幅は広がっていそうだが、実際に「Deep」とタイトルにあるセッションを聞きに行くと「実は4層のネットワークでより深いのはこれから〜」みたいなのが多々あり、フレームワークによって誰でも触れられるものになったとは言えDeep Learningを持て余してる人の方が多いというのが現状っぽいなと思った。
CNNで特徴量生成器を作ろうというのは実務だとマシンリソースから総合的にマイナスになったりするし、入力に自由が効くというのは別にNNじゃなくても〜とちょっと思う場面もあった。Cross-Convolutionは確かに便利だけど。
あとアウトプットにおけるワードクラウドの多さがすごかった。それっぽさ。
日本開催である事と機械学習ブームもあってか参加者は882人(前年比53%UP)らしく、Yahoo! や楽天、KDDI、スマートニュース、Cookpadといった機械学習系でも割と尽力している企業の日本人と沢山話す機会があった。後は中国を筆頭にアジア系の方々。
Banquetでは、寿司職人がその場で握るブースがあったり、開幕は鏡開きでスタート、かき氷、綿あめのブースといった和意識な内容でなかなか楽しかった。しましま先生にも挨拶することができた。
いつもの:しましまのSIGIR2017まとめ - Togetterまとめ
パっとググった感じだと、ちゃんと技術踏まえて行ってきた感想記事を上げてるのは以下くらいだった。
プレゼンはまだ聞けたけど、ポスターで質問したいという時に英語力が低すぎて「オーイェーアハーン」くらいしか言えないのでつらかった。
せめて自分の疑問を言語化できるくらいにはなろう…
あとカンファレンスの感想をブログに書くならその週のうちに書かないと死ぬ。
はっきりわかった。来週はWebDBに参加、登壇するので頑張ろう。
検索とMLのブームにおいていかれないように努力したい