Slide 1

Slide 1 text

Sansan x atmaCup#6 ソリューションの概要 2020/11/16

Slide 2

Slide 2 text

もくじ ● 自己紹介 ● 問題の概要 (再掲) ● どういった要素が効く問題だった? ● どんな手法が使われた?

Slide 3

Slide 3 text

Who Are You? atma(アートマ)株式会社 取締役 山口貴大 @nyker_goto (twitter) 担当領域: データ分析・フロントエンド・バックエンド・ インフラ 京都大学大学院 最適化数理卒 SGDが好き Kaggle Master kaggle.com/nyk510 3

Slide 4

Slide 4 text

はじめに 今回もたくさんのDiscussionをPostしていた だきました!!(全部で41件) これらDiscussion, 並びにLT会で共有されて いた内容をざっと振り返ります。 細かい内容に立ち入ると無限に時間がかか るのでサラッと行きます。

Slide 5

Slide 5 text

問題の概要 (再掲) 大きく2つの要素 ● 企業情報 ● 名刺交換トランザクション

Slide 6

Slide 6 text

どういった要素が効く課題だった? ● 企業情報はほとんどワークしない ○ 企業の業種予測なので属性情報が最も単純な特徴 ○ ナイーブに GBDT に入れても性能が出ない & Importance も低い ● 有用な情報はほとんど名刺交換に存在 ○ 交換の情報を上手に特徴量に変換 or 交換をそのまま扱える枠組みで捉え ることが出来るかが鍵 ● 単に集計するよりもグラフとして扱う方法がとても有効だった

Slide 7

Slide 7 text

どんな方法が使われた? > 特徴量編 ● 名刺交換のEmbedding ○ 取引先のIDを文章中の単語とみなして Word2Vec ○ DeepWalk / Nod2Vec / ProNE などグラフのNodeを埋め込む手法 ○ Embedding の埋め込み次元数も重要な要素 ■ 事前検証では 300 ぐらいまでは増やせば増やすほど良くなった。 ● 取引先の Target 情報 ○ 取引がある相手の target ごとの count / それを normalize したもの ● 上記の集約特徴量

Slide 8

Slide 8 text

どんな方法が使われた? > モデル編 ● 多種多様なモデルで精度を出している人が多かった ○ MLP・GNN・GBDT などなど ○ NYK510賞: GNNの実装例 一般的なテーブルデータのように「GBDT でポン」という感じではない印象 ● CatBoost > XGBoost > LightGBM ○ 普通の table data のような属性情報が多くない ○ LightGBM でも Depth が浅めのほうが良い ● One-VS-All が有効 ○ 複数の出力クラスのそれぞれに対して binary classificationする方法

Slide 9

Slide 9 text

Public/Privateの相関 めちゃくちゃキレイでした https://www.guruguru.science/competitions/ 11/summary

Slide 10

Slide 10 text

Models Models Models Appendix: VIVID Solution Node2Vec (dim=64, 200, 400) 部分ネットワークNode2Vec 時系列の交換枚数自己相関 SVM Logistic LightGBM XGB Logistic Avg. (mean) XGB LightGBM Features (10set) … 10 set の特徴ごとに 1段目のモデル(x6)を学習 60モデルごとにGBDTにいれる XGBoost Private: 0.8190 Public: 0.8220 LightGBM Private: 0.8156 Public: 0.8141 とりあえずたくさんモデルを作ることが目的なのでわちゃわちゃしています。 VIVID は nyk510 が作っているML用のライブラリです。stacking などがかんたんに試せるのが特徴。 x 10set