월간 데이콘 소설 작가 분류 AI 경진대회

알고리즘 | NLP | 분류 | 자연어 | LogLoss

  • moneyIcon 상금 : 100만원+애플워치
  • 1,418명 마감

 

Private 1위 Public 0.14156 BERT-embedding

2020.12.07 19:05 10,433 조회 language

안녕하세요. 이런 대회 참가가 거의 처음이라 아는것을 써보자는 명목으로 제출하게 되었습니다.

데이콘 측에서 사전학습 모델 사용 금지라고 하셨었는데,

임베딩 과정에서는 사전학습 모델 사용 가능하다고 하셔서,

tensorflow 공식문서에서는 BERT를 text embedding 이라고 보고 있기에 일단 사용해 보았습니다.

https://www.tensorflow.org/hub/common_saved_model_apis/text#transformer-encoders

1달동안 다들 너무 고생많으셨습니다.

환경 : Local(Geforece 1080TI)

kaggle 등에서 돌아다니는 BERT 사용 예제 그대로 사용하였습니다.

실행 과정은 용량문제로 생략하도록 하겠습니다.

코드
로그인이 필요합니다
0 / 1000
파이썬초보만
2020.12.08 11:58

삭제된 댓글입니다

파이썬초보만
2020.12.08 12:04

수고하셨습니다.
모델 훈련시에 bert_layer = hub.KerasLayer(module_url, trainable=True) 을 사용하는데
사전학습된 모델을 임베딩에만 쓰려면 trainable=False가 되야하는게 아닌가 생각합니다.

LA오빠
2020.12.08 13:53

수고하셨습니다. 아쉽지만 StarWaz88님께서 지적하신데로 BERT가 fine-tuning에 사용되었기 때문에 학습 단계에서 선학습 모델 사용을 금지한 규정에 어긋나는 것으로 보입니다. 앞으로 더 좋은 결과 있으시기 바랍니다. :)

Toona
2020.12.08 14:01

저도 StarWaz님과 같은 의견입니다.
pre-train된 bert 모델에 대회 데이터를 추가적으로 학습한 것으로 보여집니다.

또, bert의 임베딩을 인정한다는 것이
1. embedding layer의 token embed + segment embed + position embed 을 더한 것만을 bert 임베딩으로 인정하는 것인지,
2. StarWaz88님의 의견과 같이 Bert의 Transformer 레이어를 모두 거친 뒤 리턴되는 sequence_output을 bert 임베딩으로 인정하는 것인지 궁금합니다.

하비두비
2020.12.08 17:23

수고하셨습니다. 다만 저도 StarWaz님과 같은 의견이네요. 임베딩을 인정하는 기준을 명확하게 알려주셨으면 합니다.

당쇠
2020.12.12 23:51

수고하셨습니다.

Mather
2021.04.04 07:36

늦게지만 축하 드립니다.