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
パイプラインを以下に添付します。
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
- 出力
RF
- lightgbm の rf mode
- 特徴量は LGB と同一
その他
- Null importance による feature selection
- CV は単純に KFold を使用
参考までに feature selection 後の LGB の feature importance を添付します。
Download