roberta의 outputs을 얻고 차원을 하나 줄여줍니다. [[data]] 형태로 되어있어서 [data] 형태로 바꾸는 과정이다.
이중 hidden 차원을 사용해 16 384 768 의 크기를 qa_outputs에 입력해서 logits을 얻는다.
결과 분석
성능이 매우 안나옵니다. 아무래도 이번 대회에서는 사용을 해도 큰 성능 발전이 없을 것 같습니다. 적어도 몇십점대는 나와야 이후에 bi-direction attention 모델이나 qanet을 적용하려고 했는데 그러지 못하겠습니다.
근데 이 부분은, 비판적으로 받아들여주세요. 추후에 성능이 잘 나온팀은 이 테크닉을 써서 성능이 올라올 수도 있으니까요.
1) 너무 성능이 안나오는 점 2) 추후에 붙이는 additional layer들은 매우 복잡해서 많은 시간을 할애해야 한다는 점 3) 현재 로버타만을 돌려 얻은 valid 점수가 실제 벤치마크 점수와 매우 유사한점(MRC만 가정)을 보아, 제 판단에는 Addition model 실험을 더 가져가지 않는 것으로 결정했습니다.
본 roberta가 성능을 못 내는 이유는 사전학습이 되어있지 않기 때문이라는 피드백을 받고 이를 수정했습니다. 결과는 기존 모델 자체보다는 성능이 낮게 나왔지만, 그에 엇도는 성능이 나왔기 때문에 더욱더 발전된 additional layer를 추가할 수 있는 가능성을 보였습니다.
MRC 모델을 수정하기 위해 다음을 고민했습니다.
Customized Model Class 생성
Attach
결과 분석![image](https://user-images.githubusercontent.com/45033215/138232288-c1f7c134-8359-415a-abf1-9c1fa0c60cd2.png)
피드백 적용 후 결과 분석
본 roberta가 성능을 못 내는 이유는 사전학습이 되어있지 않기 때문이라는 피드백을 받고 이를 수정했습니다. 결과는 기존 모델 자체보다는 성능이 낮게 나왔지만, 그에 엇도는 성능이 나왔기 때문에 더욱더 발전된 additional layer를 추가할 수 있는 가능성을 보였습니다.
앞으로의 방향
읽어볼만한 논문
BERT-QE: Contextualized Query Expansion for Document Re-ranking
BERTNet
QANet 유튜브
BERTNet을 읽어보니 Robert-Large가 가장 성능이 좋아서, additional layer가 큰 의미가 없는 것으로 느껴진다