wantedly/machine-learning-round-table

[2023/08/02]Machine Learning 輪講

Opened this issue · 5 comments

Why

Machine Learning 輪講は最新の技術や論文を追うことで、エンジニアが「技術で解決できること」のレベルをあげていくことを目的にした会です。

prev.#204

What

話したいことがある人はここにコメントしましょう!
面白いものを見つけた時点でとりあえず話すという宣言だけでもしましょう!

注意

8/2会は通常の論文読み会ではなく、「atmCup#15の振り返り」をテーマに開催することになりましたのでご注意ください。

順位

image🫠

コード

https://github.com/zerebom/atma15

上位解法まとめ

https://receptive-hair-6a7.notion.site/c5000d6287234fecb516577a25ddd2d6?pvs=4

やったこと

  • anime.csvの基本的な前処理
    • 年齢とかの抽出
    • categorical → TruncatedSVD
  • SeenとUnseenユーザを分けて学習
    • Seenはlgbm
    • UnseenはSurpriseを利用
  • TargetEncoding
  • anime2Vec

LateSubでやったこと

  • implicitを使ったBPR, ALS
  • anime2Vecのvector_sizeを小さくする(効いた)

間に合わなかったこと

  • item2itemやuser2userの利用
  • アンサンブル

振り返り

image

順位

スクリーンショット 2023-08-02 18 35 09

コード

25.best_model.ipynb.zip

やったこと

  • 開始年月・終了年月の抽出とそれに基づいた特徴量の作成
  • watching や on_hold などの数値特徴量の四則演算
  • anime2vecで得られたベクトル特徴量、類似度
  • Target Encoding
    • mean, max, min, median, diff

順位

188位
Private: 1.2249
Public: 1.2467

image

やったこと

  • 単純にユーザーごとの平均
  • アイテムベース協調フィルタリング
  • LGBM
  • LGBM + 協調フィルタリング
  • CatBoost + 協調フィルタリング
  • stacking(ちょっとだけ上がった)

コード

特徴量

  • ユーザーごとのscoreのmean, median, max, min
  • animeごとのscoreのmean, median, max, min
  • episode数
  • duration
  • 放映時期の近さ(日数)
  • カテゴリをすべてone hot encoding
  • その他協調フィルタリングのscore

やったけど上手く行かなかったこと

  • GNN (Hetero, 多分単純に実装ミスってたっぽい)
  • user-カテゴリでの協調フィルタリング

間に合わなかったこと

  • TabNet
potsbo commented

順位

image

やったこと

https://www.guruguru.science/competitions/21/discussions/b46b4dda-6ce7-4a9b-99f9-0c3caabb3ba7/ をベースにした word2vec に anime_id の列ではなく、anime の特徴から単語列(ざっくり title をmecab split とか)を出してチューニングしていった

議事録

@.hakubishin3

開始年月・終了年月の抽出とそれに基づいた特徴量の作成

  • 何クールぐらいやってるか(たくさんやってたら人気)

watching や on_hold などの数値特徴量の四則演算

  • 最後まで見た割合とか、規模の違うアニメでの比較ができるようになる

anime2vec

  • implicit全件で作った。基本興味のあるものを見るでしょという仮定
  • ユーザが登録したアニメの平均をユーザのベクトルとする。その逆も然り

fold

  • scoreで層別5fold。これでもわりと相関した

@.nogawanogawa

  • Supriseのスコアを突っ込んだら精度が上がった
  • lgbm → catboostで少数第3位で1,2上がるくらい。stackingも同じくらい
    • catboostはcategoryの処理がリークしにくいからよい?

@.potsbo

  • アニメを単語列に変換する
    • テキストをmecabで分割
      • 助詞を落とすとか前処理も
    • 単語の後にカテゴリ変数を継ぎ足す
  • アニメベクトルは単語のw2vの平均値を取る