作者Sixigma (六西格玛)
看板Soft_Job
标题[讨论] 关於 Dcard ML 实习作业
时间Sun May 14 01:29:57 2023
看到下面有篇大神有讨论到这次 Dcard ML 实习作业,因为没有收到团队的具体反馈
想和大家讨论作业的状况
题目是用结构资料,包含标题、看板资讯以及1-6小时的爱心数和评论数等等
来预测发文後 24 小时的爱心数
因为当时是期中,我只大概花了五天约二十个小时来做
我的作法大致如下
首先先用 XGBoost LightGBM 把量化资料做出 baseline
但没办法处理最重要的标题资讯
所以就直接拿 Huggingface BERT 来做
直接把资料喂进去的训练是无法收敛的
後来也尝试一些 Emsemble 和 training tricks
但也都没办法收敛,甚至达不到 baseline 的效果
认为是资料量的问题
到这边没什麽特别想法就直接写报告了
我一直都主要是做 CV ,硕论跑去做 3D
对 NLP 非常不熟悉,不知道是否有漏掉关键操作
想请同有拿到作业的大神指点
谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.171.131.209 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1683998999.A.DBB.html
1F:推 changecandy: 你用BERT做了什麽以及什麽东西无法收敛? 05/14 03:05
任务如文中所述,是回归问题,目标是文章发文後24小时的爱心数
因为有中文标题,故直觉想到就是 BERT,将中文标题 tokenize 後
连同其他 feature 一同 concatenate,送入BERT直接 end2end 训练出爱心数
2F:推 Tommnny: 这边跪等神人分享 我们实验室没有人上 05/14 10:49
不知道实验室内有没有其他效果比较好的解法?
3F:推 Bujo: 这个案例建议使用LSTM序列 05/14 12:01
谢谢提供思路,但LSTM的话要如何考虑中文标题?
一样使用word2vec或tokenizer吗?
4F:推 cilovwx: 虽然我也没上,但我自己还有另外萃取出判断个版跟标题是 05/14 13:05
5F:→ cilovwx: 否有分类之类的feature,这两项做关联度分析,相关性也 05/14 13:05
6F:→ cilovwx: 不低 05/14 13:05
谢谢,确实我几乎没有做 feature engineering
是否方便请教後续是用什麽方法回归出爱心数?
7F:推 DrTech: 你这样 concatenate bert出来的维度那麽大,变成严重主导 05/14 14:36
8F:→ DrTech: 预测结果。但实际上 05/14 14:36
9F:→ DrTech: 但标题实际上根本不太会影响爱心与评论数。光看这点,就觉 05/14 14:38
10F:→ DrTech: 得你没有从最基本的业务理解business understanding来解了 05/14 14:38
11F:→ DrTech: 。 05/14 14:38
12F:→ DrTech: 对了,资料量有多打? 资料量少,用复杂的模型根本没用。 05/14 14:41
13F:→ DrTech: 资料量少的话,例如少於几万笔,对标题做任何处理可能都没 05/14 14:46
14F:→ DrTech: 太大意义。 05/14 14:46
15F:→ DrTech: 这题,爱心数,评论数的特徵,相较於标题,标题绝对是杂讯 05/14 14:48
16F:→ DrTech: 。 05/14 14:48
17F:→ DrTech: HuggingFace tokenizer出来的标题维度很大的,只会让标题 05/14 14:51
18F:→ DrTech: 杂讯主导一切。当然没办法收敛,很正常。 05/14 14:51
19F:→ DrTech: 资料量确实是问题。但人是否会根据标题就评论或点爱心,是 05/14 14:58
20F:→ DrTech: 你优先需要思考到的。 05/14 14:58
谢谢DrTech大的回复,tokenizer出来的embeddings我是有再downsampling的
当时也有考虑到这件事情,我也测试过downsample到4 - 16或其他一些奇淫巧技
也有对tokenizer做regularization等等,但对训练帮助都不大
至於标题是否影响爱心数,确实实际上不一定
但该资料集提供的特徵数很少,其余大多都是scalar
相信他们一定希望受试者去分析标题,当然处理整个标题可能不是个好办法
1-6小时爱心数与24小时爱心数的相关性非常高
故我也在BERT之中尝试建立使用这些高相关feature的MLP回归模型
以及和 XGBoost LightGBM 的 Ensemble
但对训练并无明显益处
我在写这份测验的时候,并不觉得量化结果会多好,因为仅有约五万笔资料(文章)
而同时也要展现工程能力,譬如我用 Pytorch-lightning 架构整个
training, monitoring, evaluation pipeline
实作上的能力可能会区分我与其他一部分的面试者
但结果看来可能是有大神直接干出很好的模型和训练结果
後续评分项如解题思路、报告呈现和实作能力都没有被考量了
才很好奇进入面试的大神是怎麽得出很好的预测方法的
感谢您的回覆
※ 编辑: Sixigma (118.171.131.209 台湾), 05/14/2023 16:03:47
21F:推 cilovwx: 我自己对於标题的作法是单纯直接用snownlp去做sentiment 05/14 16:44
22F:→ cilovwx: polarity 而已,因为我自己认为标题其实只是吸引大家点 05/14 16:44
23F:→ cilovwx: 进去的机率,但按爱心的数量跟内容比较有相关。我的model 05/14 16:44
24F:→ cilovwx: 部分,我记得我一开始用xgboost效果不是很好,所以我後 05/14 16:44
25F:→ cilovwx: 来改用SVR跟一个我自己建的NN模型。但是我那时候也在准 05/14 16:44
26F:→ cilovwx: 备其他事情,所以好像也没有fine-tuned 得很好 05/14 16:44
27F:推 hsuchengmath: 遇到这种 一定是先做基本的统计分析啊,先看 24小 05/14 17:01
28F:→ hsuchengmath: 时爱心数的分布,然後分成 多爱心数 和 少爱心数的 05/14 17:01
29F:→ hsuchengmath: ,然後看哪些特徵 是有用的,最後才建模啊,别在直 05/14 17:01
30F:→ hsuchengmath: 接套膜了,不会进步的xdd 05/14 17:01
31F:推 DrTech: 谢谢你,长文那麽仔细回应互动喔 05/14 17:54
32F:→ changecandy: 直接使用BERT做预测的确是个挑战,原因有很多就不展 05/14 18:43
33F:→ changecandy: 开了,但你可以考虑换个用法,例如把BERT基於文字所 05/14 18:43
34F:→ changecandy: 预测的分数当成你主要预测模型的其中一项特徵,这样 05/14 18:43
35F:→ changecandy: 也算是引入文字资讯了。 05/14 18:43
36F:嘘 Matz: 去鸿海第一年150没问题 05/14 21:13
37F:推 abc21086999: 烦不烦哪里都有鸿海 05/14 23:37
38F:推 email81227: 好奇用哪个BERT Pre-Training的版本? 05/15 03:09
39F:推 nistik84114: 中文如果没在你用的bert的tokenizer里会直接被忽略 05/15 06:11
40F:→ nistik84114: 喔 确认一下 05/15 06:11
41F:→ gamania0258: 话一堆时间写作业还不给回馈 这间很像挺看得起自己的 05/15 16:04
42F:→ gamania0258: lul 只能说 没上是好事 05/15 16:04
43F:推 T160: 我做法跟h大说的差不多XD 也是至少花了20小时以上时间搞这pr 05/15 22:35
44F:→ T160: oject 结果就一封罐头感谢函 好歹也给个排名吧真的很没诚意- 05/15 22:35
45F:→ T160: _- 05/15 22:35
46F:推 hia261321: 根据之前看同学打比赛 我猜可能有人自己去抓dcard的额 05/16 09:42
47F:→ hia261321: 外资料来训练 资料量比一般人多很多的情况下随便丢个 05/16 09:42
48F:→ hia261321: 模型都赢大家 05/16 09:42
49F:推 aacs0130: 推hsuchengmath跟DrTech 05/27 13:44