3rd place solution

諸事情により遅くなって申し訳ありません。solution をシェアします。運営の方々、興味深いコンペを開催していただきありがとうございました。

Youtube view count 3rd place solution

他の方と同じように以下のような手法を用いています。

  • ratings_disabled, comments_disabled の likes 等を埋める
  • BERT を使って特徴抽出する

ユニークと思われるのは下記のような点かと思います。

  • channel 内での前後の投稿の属性(前回の投稿日、前回の likes など)を特徴として利用する。この際、テストデータを含む全データを利用する。
  • BERT は ja だけでなく en と multilingual も利用する。日本語だけでなく、英語、中国語、韓国語などもよく見られたため。
  • target や BERT emb の rolling

パイプラインを以下に添付します。

c0a50ed9-2d66-425c-b6d8-53c5cb6e008e.jpeg

Download

特徴量

  • 単一、四則演算の特徴量
  • title, description, channelTitle, tags
    • BERT emb (ja, en, multi)
    • tfidf
    • TruncatedSVD によって次元削減
  • channel 内の groupby
  • channel 内の前後の投稿の属性
  • NN から予測された、likes_per_time, dislikes_per_time, comments_per_time
  • BERT emb の rolling
  • target の rolling

モデル

LGB をメインとして最後は NN, RF (lightgbm rf mode) の Linear Regression による stacking です。

NN_txt

ratings_disabled, comments_disabled の likes 等を埋めること、時系列に沿ったテキストの特徴量を得ることを意図しています。複数の BERT emb を CNN でまとめています。

  • 入力
    • title, description, channelTitle
    • BERT emb (MEAN-MAX) ja, en and multi
    • publishedAt, collection_date
  • 出力
    • likes_per_time, dislikes_per_time, comments_per_time

NN_img

NN_txt と同様の画像版です。EfficientNet-b3 を使用しています。

  • 入力
    • thumbnail image
    • publishedAt, collection_date
  • 出力
    • likes_per_time, dislikes_per_time, comments_per_time

LGB

メインのモデル

NN

  • 入力
    • 単一、四則演算の特徴量
    • categoryId (Embedding)
    • tags tfidf
    • rolling likes
    • DistilBERT emb (CLS token) ja and en
  • 出力
    • y (log(y))

RF

  • lightgbm の rf mode
  • 特徴量は LGB と同一

その他

  • Null importance による feature selection
  • CV は単純に KFold を使用

参考までに feature selection 後の LGB の feature importance を添付します。

513fce5d-d9bf-433a-b9d3-aa2115d3de0e.png

Download

Favicon
new user
コメントするには 新規登録 もしくは ログイン が必要です。