그 외에 성능 향상을 위해 손실 함수를 커스텀하여 사용했습니다. 먼저 Subgroup에 해당하는 Identity 피처 가운데 일부를 제외했습니다. 여러 모델을 실험했을 때 모든 Subgroup에 대하여 BPSN 수치가 항상 낮지는 않았습니다. 저희 팀에서 만든 모델의 상위 3개 피처(male, female, christian)의 경우는 비교적 좋은 성능을 내고 있었으므로 가중치를 주지 않는 것을 선택했습니다.
마지막으로 실험을 통해서 여러 손실 함수를 만들어보고 이를 합산한 결과를 사용했습니다. 이 컴페티션의 정답은 0 또는 1의 값이 아닌 0과 1 사이의 값입니다. 이 말인즉슨, 이 데이터셋은 어떤 텍스트가 명확하게 악성이다 아니다를 표현하지 않고, 악성의 정도를 수치로 나타내고 있다는 뜻입니다. 손실 함수를 디자인할 때 이 부분을 한번 고려해보는 것이 좋습니다.
한 가지 예를 들자면, 0.49의 악성을 가진 텍스트에 대해 정답을 0으로 할 수도 있고, 0.49로 할 수도 있습니다. 0.51의 악성을 가진 텍스트는 정답을 1로 할 수도 있고 0.51로도 할 수 있습니다. 전자를 보통 Hard-label, 후자를 Soft-label이라고 칭합니다. 이 컴페티션의 도메인에서 어떤 선택이 과연 옳은지 한번 고민해보는 것이 실험을 확장하는 데 도움이 많이 됩니다. 저희 팀은 기본적으로 Soft-label을 적용하고, 앞서 구한 가중치를 적용한 손실 함수에는 Hard-label을 적용한 뒤 이를 합산해서 계산될 수 있도록 했습니다.