280 Views
July 20, 21
スライド概要
KaggleのTweet Sentiment Extractionコンペ(https://www.kaggle.com/c/tweet-sentiment-extraction/overview/evaluation)のsolutionをまとめた
公立はこだて未来大学複雑系学部3年
Tweet Sentiment Extraction Solution comparison B3 加藤まる 2021/5/31 FUN AI
理解度レベル BERTは全て飛ばしてる
目次 1. コンペ概要 2. First level models 3. Second level models
コンペ概要 Tweet Sentiment Extraction
Task & Data Task: あるツイートと感情が与えられたら、感情を反映している部分を 抽出 Data(tweet数) ● train:27k ● Public test 4k ● Private test 8k
Data
Evaluation metric def jaccard(str1, str2): a = set(str1.lower().split()) b = set(str2.lower().split()) c = a.intersection(b) return float(len(c)) / (len(a) + len(b) - len(c))
Evaluation metric
Jaccard係数
Problem with labels
Problem with labels
First level models
Heartkilla’s model ● Models: RoBERTa-base-squad2, RoBERTa-large-squad2, DistilRoBERTa-base, XLNet-base-cased ● Multi Sample Dropout ● AdamW with linear warmup schedule ● Custom loss: Jaccard-based Soft Labels
Heartkilla’s model
Dropout 画像出典
Multi Sample Dropout 日本語survey: https://github.com/AillisInc/paper_survey/issues/4
Adam 画像出典
AdamW 画像出典
Use Normal Jaccard
Jaccard-based Soft Labels
Hikkiiii’s model ● Models: 5fold-roberta-base-squad2(0.712CV), 5fold-roberta-large-squad2(0.714CV) ● Append sentiment token to the end of the text ● CNN + Linear layer on the concatenation of the last 3 hidden states ● Standard cross-entropy loss
交差エントロピー誤差(cross entropy) 出典
Theo’s model ● Models: bert-base-uncased (CV 0.710), bert-large-uncased-wwm (CV 0.710), distilbert (CV 0.705), albert-large-v2 (CV 0.711) ● MSD on the concatenation of the last 8 hidden states ● Smoothed categorical cross-entropy ● Discriminative learning rate ● Sequence bucketing to speed up the training
ラベル平滑化交差エントロピー誤差 出典
Cl_ev’s model ● ● ● ● ● Models: roberta-base (CV 0.715),Bertweet MSD on the concatenation of the last 8 hidden states Smoothed categorical cross-entropy Discriminative learning rate Custom merges.txt file for RoBERTa
問題 ・Transformersはトークンレベルで処理してるからノイズの多いパター ンに弱い ・Transformersは文字レベルにできない(難しい) ・トークン化が違うモデルは単純にブレンドできない
解決法 ・Transformerでトークンの確率を出した後、各文字にそれを割り当て る(noise対策) ・スタッキング(アンサンブル手法の一つ)を使用して、複数のトランス フォーマーからNN(文字レベル)に流す
Second level models
アンサンブル学習 個々に別々の学習器として学習させたものを、融合させる事によっ て、未学習のデータに対しての予測能力を向上させるための学習
スタッキング 画像出典
OOF(out-of-fold)用いたスタッキング 画像出典
擬似ラベル(Pseudo-labeling) 1. ラベルづけされているデータで学習済みモデルを作る 2. 1.で作成したモデルを使って、ラベルづけされていないデータで予測 値を出す 3. 2.の予測値を疑似的なラベル、疑似ラベルとし、疑似ラベルづきデー タをラベルづきデータに混ぜて学習する 参考
擬似ラベル(Pseudo-labeling) ・Google Quest Q&A 1位からのアプローチ 「漏れのない」疑似ラベル ・ 信頼度スコア: (start_probas.max() + end_probas.max()) / 2 ・閾値= 0.35 カットオフ
RNN
BiLSTM 画像出典
Softmax 画像出典
Softmax 画像出典
CNN
Batch Normalization 画像出典
WaveNet
Char-level NNs ・Adam optimizer ・Linear learning rate decay without warmup ・Smoothed Cross Entropy Loss ・Stochastic Weighted Average ・Select the whole text if predicted start_idx > end_idx
Ensemble
Ensemble
Things that didn’t work ・NERアプローチ ・BCE + SoftIOU の損失 ・サンプルの重み付け ・T5、BART、GPT-2、ELECTRA、XLM-RoBERTa ・チャーレベルトランス ・事前トレーニング済みの埋め込み: FastText、Flair ・統計的特徴: num_words、num_spaces etc. ・第 2 レベルとしての XGBoost ・3rdレベルモデル ・前処理・後処理
おわり。