tetsuのlog

テツがひとりでに読んだ論文とか行き詰まったところをshareする場

Gunosyのハッカソンに参加してきました

f:id:tetsu316:20190529122643j:plain
お気に入りのシール

こんにちは、テツです!!

5月25, 26日に開催されたGunosyデータ分析ハッカソンに参加してきました。

manaboo.me

それではレポートです!!!

ハッカソン内容

記事のデータからその記事のメディアを推定するといったタスクでした。 Kaggleと同じようにtrainとtestが分けられていて、testの予測結果をsubmitしてスコアがわかる方式で、評価指標はaccuracyでした。 データとしては記事のタイトル、記事の内容( 200文字まで )、投稿時刻が与えられました。 50クラス分類でしたが、そこまで難しくはなくハッカソン終盤では1位のスコアは96.0%ほど出ていました。 計算リソースとしては手元のローカル環境かGoogleのColaboratoryを使う形でした。僕はDeepの方が得意なのでGPUが使用できるColaboratoryを使用しました。

結果

結果的に順位は3位でした!!!!

賞金5千円と景品としてモバイルバッテリー、Gunosyカラーペンをいただきました!!

初のハッカソンとしては大健闘だったのではないかと思います!

f:id:tetsu316:20190529122024j:plain:w300
オタク

やったこと

ちょうど今Kaggleでjigsawのコンペが開催されるということもあり、同じような手法を使いました! テキストデータを軽く眺めたところ、単語分割がうまくいきそうになかったので、自分の研究で使用している文字レベルの処理を行いました。

タイトルと内容をそれぞれ

LSTM -> 1×1 Conv1d -> concat -> fc

って感じのネットワークに流しました。 ゴリゴリのDeepをやってるのは僕だけでしたね...

他にはcosine annealing*1を採用したり、 online hard example mining*2を導入したりと色々盛り込みました!

チャレンジとしては前回の記事で紹介したAugmenting Data with Mixup for Sentence Classification: An Empirical Study*3を実際に実装して使用してみました!!

tetsu316.hatenablog.com

今回はsentenceMixupの方で試してみました。 結果としてはdata augmentation手法としてはかなりよく、過学習は抑制の期待はできるが精度はあまり変わらないって感じでした...

ちょっと疑問の残る論文ではあったので効果があったことを身を以って知れてよかったです!

Mixupを使わないモデルで5-fold cross validationのアンサンブルで推論したところ93.3%の結果が出ました!!( これがほぼ最高スコアでした )

他の参加者の方の手法

1位と2位の方は自分で特徴量を作成したり、データを綺麗にしたり特徴量エンジニアリングが素晴らしかったです。 特に1位の方は独走していて、分析力がすごかったです。

また、自分の使用しなかった投稿時刻のデータにかなり情報があったそうで、特にデータを分析したりすることもせず、NNにぶち込んでしまっていたため見落としてしまいました。

なんでもDeepでやればいいってもんじゃないってことを学びました...

TfidfやBag of Wordsといった手法はそこまで効かないらしく、一筋縄ではいかないようなハッカソンでした。

まとめ

2日間という限られた時間の中で自分のベストを出せて、かなり満足感のあるハッカソンでした!

懇親会ではいろんな方の手法を聞くことができて、かなり自分の成長に繋がったと思います。 年の近い方々と話すのはとても良い刺激になり、自分のモチベーションの向上にも繋がりました!

また、Gunosyさんの社員の方々とも色々話ができて楽しかったです!

これからもハッカソンやコンペなど積極的に参加していきたいと思いますのでみなさんよろしくお願いします。 次回ハッカソンに参加するときは、優勝したいです!!!