第一階段實驗 - s9891326/Fine-Tuning-BERT GitHub Wiki
- 2019資料集準備(17529筆)
- 訓練集(14023筆,0:4248、1:5403、2:4372)
- 測試集(3506筆,0:1036、1:1328、2:1142)
- 修正弱點(794筆)
- (
500
)姓名文 - (
100
)問候文 - (
184
)上面短文判斷誤差錯誤的項目 - (
10
)特定產業特殊文章
- (
- 修正弱點,情緒標籤分佈
正面 | 負面 | 中立 |
---|---|---|
13 | 24 | 757 |
-
範例
短文資料
LEC 追很兇,2 噓: 台女典範,2 推: 辭職阿,2 噓: 北部人,2 →: 送貴的啊,2
姓名文
姓名文 推: 老高,2 阮小二,2 阮小五,2 桃貴粉報到!,2 運宏大大,2
特定產業特殊文章文
特定產業特殊文章 已經刪除的內容就像Dcard一樣,錯過是無法再相見的!,2 Po Chu Hui Kwong Lam Mak氣炸魷魚,2 「大庭廣眾呼喚我太害羞了,我剛訊息你了私聊吧!」BY藍白戰士,2
問候文
問候文 寶貝早安❤️,2 晚安,2 下午安,2 推: 早安,2
- 將2019資料集 + 弱點資料集一起訓練
- 先載入舊模型(2019),再用弱點資料集進行訓練
- 準備舊測試集(2019),訓練集2019、2019 + 修正弱點的資料集,驗證舊測試集的Loss/Accuracy
- 訓練
- (舊模型)2019資料集(14023筆,0:
4248
、1:5403
、2:4372
) - (新模型)2019 + 修正弱點(14817筆,0:
4261
、1:5426
、2:4717
)- 修正弱點(794筆, 0:
13
、1:24
、2:757
)
- 修正弱點(794筆, 0:
- (舊模型)2019資料集(14023筆,0:
- 測試
- 2019資料集(3506筆,0:
1079
、1:1307
、2:1120
)
- 2019資料集(3506筆,0:
- 實驗方向
- 增加修正弱點後,測試2019資料集Accuracy有沒有更高?
- 那對於短文預測有更好嗎?
- 還有什麼不足的地方?
-
增加修正弱點後,測試2019資料集Accuracy有沒有更高?
(2019)舊模型 (修正弱點)新模型 (load修正弱點)新模型 2019資料集 0.2865/0.9056
0.2704/0.9053 0.8604/0.6198 訓練時間 370.152s 382.683s 65.629s (舊)2019
2019資料集 precision recall f1-score support 0 0.9569 0.9074 0.9315 1102 1 0.9238 0.9014 0.9124 1318 2 0.8400 0.9088 0.8731 1086 accuracy 0.9056 3506 macro avg 0.9069 0.9059 0.9057 3506 weighted avg 0.9083 0.9056 0.9062 3506
(新)2019 + 修正弱點
2019資料集 precision recall f1-score support 0 0.9828 0.8811 0.9292 1102 1 0.9013 0.9287 0.9148 1318 2 0.8440 0.9015 0.8718 1086 accuracy 0.9053 3506 macro avg 0.9094 0.9038 0.9053 3506 weighted avg 0.9092 0.9053 0.9060 3506
(新)2019 + 修正弱點(load)
2019資料集 precision recall f1-score support 0 0.9982 0.5082 0.6735 1102 1 0.9925 0.4014 0.5716 1318 2 0.4494 0.9982 0.6198 1086 accuracy 0.6198 3506 macro avg 0.8134 0.6359 0.6216 3506 weighted avg 0.8261 0.6198 0.6185 3506
-
那對於短文預測有更好嗎?
- 比較上面AS1標記的"短文情緒驗證"的bbs
- 原本: 總共
1973
筆,標記正確:1810
,標記錯誤:163
,正確率:0.917
- 進行文字去重複
- 2019模型: 總共
1618
筆,標記正確:1459
,標記錯誤:159
,正確率:0.902
- 2019 + 弱點模型: 總共
1618
筆,標記正確:1262
,標記錯誤:356
,正確率:0.78
- 比較結果
- 2019模型: 總共
- 原本: 總共
- 姓名文、問候文、短文 --> 實驗結果
(舊)2019模型
短文弱點資料集 precision recall f1-score support 0 0.9795 0.9459 0.9624 555 1 0.9053 0.9557 0.9298 970 2 0.1207 0.0753 0.0927 93 accuracy 0.9017 1618 macro avg 0.6685 0.6590 0.6616 1618 weighted avg 0.8856 0.9017 0.8929 1618
(新)2019 + 弱點模型
短文弱點資料集 precision recall f1-score support 0 0.9935 0.8252 0.9016 555 1 0.9795 0.7392 0.8425 970 2 0.2047 0.9355 0.3359 93 accuracy 0.7800 1618 macro avg 0.7259 0.8333 0.6933 1618 weighted avg 0.9398 0.7800 0.8337 1618
- 比較上面AS1標記的"短文情緒驗證"的bbs
-
還有什麼不足的地方?
- 諧音 or 台語 --> 沒進行訓練
- 腫滑冥狗,2,1
- 膩害惹👍,0,1
- 修但幾類,2,2
- 午夠破格!,1,1
- 不蘇湖,1,2
- 雞賣啊雞賣,1,2
- 推噓文 --> 推噓文定義不夠明確,不應該只單獨看內文
- 噓:dpp,恭喜恭喜啊恭喜恭喜,發啊發大財,0,1
- 噓:dpp真的很棒,0,1
- 噓:kmt真好用,0,1
- 字詞包含負面情緒,但被歸類再中立 -> 先前定義不明確導致
- 容易疲倦的人,2,1
- 符號文 -> 某些符號再BERT是可以被解析的,某些符號是具有意義存在的,但未被訓練。
- 樓主👍,0,2
- 🔥 求救!犬山居 #Apple 走失!🔥,1,2
- 新詞 --> 沒進行訓練
- 你當我
塑膠
喔?,1,2 -
那個男人
也許會遲到,但永不缺席,2,1 - 這天氣
是在哈囉
?,1,2 - →:美國人不吃中國牌
芒果乾
啦...,1,2
- 你當我
- 諧音 or 台語 --> 沒進行訓練
- 增加修正弱點後,測試2019資料集Accuracy有沒有更高? => 沒有,反而有稍微下降
- 那對於短文預測有更好嗎? => 有,但還不夠全面,需要更多的資料集,來協助模型訓練以及驗證
- 還有什麼不足的地方? => 上面那4點
Q : train model vs load old model to train new model
2020 model(19+20) - 2019+2020 dataset : loss: 0.2889 - accuracy: 0.9017
2020 load_model(19+20) - 2019+2020 dataset : loss: 0.3466 - accuracy: 0.8642
經由上面的比較,重新訓練跟載入舊有的模型再acc上面相差了約0.04%左右
A :
-
maybe opt problem, I recompile opt when you re-train. 儲存模型時把optimizer也一起存起來。
-
主要問題是排序問題,想像一下當我們把訓練集按照label由0、1、2依序排列,進行訓練的話會有什麼樣子的結果?(如下圖1)。就像是我們先把2019的資料及訓練完成後,再訓練2020的資料集,這就會有順序性的問題,導致他針對2020的資料集進行模型權重、bias的調整,這樣就會導致對2019的驗證集效果較差,但對2020的驗證集較佳(也就是上面的現象)。若我們把2019的訓練集取一部分出來加入2020的訓練集,是否就可以解決這樣的問題?(如下圖2)
-
圖1(排序過後的訓練集)
2019資料集 - loss: 7.4693 - accuracy: 0.3195
2020弱點 - loss: 4.8755 - accuracy: 0.5542
2019+2020弱點 - loss: 7.3031 - accuracy: 0.3345
- 圖2(隨機打亂的訓練集)
2019資料集 - loss: 0.3205 - accuracy: 0.8999
2020弱點 - loss: 0.3558 - accuracy: 0.8458
2019+2020弱點 - loss: 0.3228 - accuracy: 0.8964