대표전공 예측 모델: 튜닝 포인트 잡기

김선우
saraminlab
Published in
7 min readNov 16, 2022

이번 글에서는 지난 포스팅에 이어서 대표전공 예측 모델의 튜닝 포인트를 잡고 개선하는 과정을 정리해보고자 한다.

기초 모델링 이후 로직을 잡고 콘솔 테스트와 미매핑 데이터에 대한 레이블링 작업을 진행했다. 진행 과정 중 전혀 새로운 직업군에 대한 학과명 문제에 대해서는 매핑 사전을 업데이트하는 것으로 해결했다. 그 외에 추가적으로 파악한 문제점은 크게 3가지였다.

  1. 오탈자
  2. 영문 학과명
  3. 과적합

이번 글에서는 위 항목을 각각 어떤 방식으로 튜닝했는지 정리할 것이다.

오탈자 문제 : UNK 토큰 마스킹

기초 모델링 테스트 이후 문제점과 해결방법을 찾고자 학습데이터 구축 당시 매핑 사전을 통해 제대로 매핑되지 않은 데이터들을 직접 검수하는 과정을 진행했다. 이 과정에서 대부분의 미매핑 데이터가 오탈자로 발생한다는 사실을 발견했다.

음절 데이터를 기반으로 모델을 학습했기 때문에, 기초 모델 내에 들어있는 음절 사전은 매핑되어 있는 데이터 기반으로 구성되어 있다. 즉, 학습과정에서 모델은 미등록어 토큰, 즉, UNK(Unknown) 토큰 자체를 만날 일이 없다. 오탈자가 입력될 경우엔 대부분 사전에 없는 UNK 토큰으로 인덱싱되면서 분석 결과가 흐트러지는 OOV(Out Of Vocabulary) 문제였다.

오탈자 교정 모델을 앞선에서 적용할 수 있다면 더 좋겠지만 기초적인 문제에 가볍게 돌리고자 하는 태스크 목적에는 적합하지 않다고 판단했다. 이에 1차적으로 작업한 것은 오탈자 데이터를 편집거리를 통해 추가 레이블링하는 것이었다.

이후 [1]의 아이디어를 참고하여 학습시에만 의도적으로 UNK 토큰으로 인덱싱 하는 것이 이번 문제에 도움이 될 수 있겠다는 아이디어를 얻었다. 사전을 늘려도 오탈자 전체에 대응할 수는 없기 때문에 UNK를 일부러 일부 인스턴스에 던져주면서 UNK 토큰이 있더라도 유연하게 예측이 가능하도록 구성하고자 한 것이다.

오탈자 케이스와 유사 상황을 학습하기 위한 UNK 토큰 마스킹

위 그림과 같이 확률에 따라 UNK 토큰을 통해 마스킹을 하면 UNK 토큰의 동적 임베딩 벡터가 주요한 자질이 아니라 주변 텍스트 정보에 맞게 예측할 수 있는 자질 값을 갖는 방향으로 학습될 것이라 기대했다. 이는 일종의 정규화 과정이다. 일부로 노이즈를 주어 과적합을 방지하고, 모델에게 UNK 토큰이 낯설지 않게끔 학습과정을 유도했다.

UNK 마스킹 확률은 전반 데이터 중 오탈자로 미매핑된 데이터의 등장 비율을 대략적으로 구하여 1/3000로 두었다. 해당 확률에 맞게 선정된 인스턴스는 학습 과정에서 전체 음절 중 최대 2글자가 무작위 위치에서 나타나도록 했다.

영문 학과명 문제 : 데이터 증강(Augmentation)

학습데이터를 살펴보면서 또 하나 발견한 문제는 이력서 도메인 자체가 국내 구직자들이 주를 이루다보니, 대부분의 전공명이 한국어로 입력되어 있다는 점이었다. 영문 데이터의 대부분은 미매핑 데이터루 분류되어 학습집합으로 활용되지 못했다. 이는 음절 사전에도 당연하게 영향을 미쳤고 대부분의 알파벳이 UNK 토큰으로 처리되는 문제가 있었다. 결과적으로 예측 시에 영문 학과명을 입력 받을 경우, UNK의 집합을 입력 받는 것과 같았고 전혀 관계 없는 결과를 리턴하게 되는 문제였다.

전공명 분류 및 정의 등이 영문으로 정리되어 있는 MyMajors

대응책은 학습데이터에 영문 학과명 데이터를 만들어 밀어 넣어주는 것이었다. 전반적인 학과명을 번역 모델을 통해 영문으로 구성하고, 영문 학과명의 특징에 따른 패턴(“Dept. of ~”, “major in ~” 등의 표현)을 학과명의 기본형에 맞게 붙여 확장했다. 전반과정에서 영문 학과명이 정리되어 있는 MyMajors 사이트를 참고하였고, 이를 바탕으로 매핑 사전도 같이 업데이트하였다.

결과적으로 위 데이터 증강 방법을 통해서 매핑된 전공명 데이터들을 무작위로 1/10의 비율로 영문 번역을 했다. 이에 기초적인 검수를 수행하고 패터닝을 적용해 총 162,856건을 학습 데이터 추가할 수 있었다.

과적합 문제 : 텍스트 마이닝 기반 전처리

학습데이터와 모델 전반을 살펴보아도 이해가 되지 않는 예측 결과들이 있었다. 이따금씩 엉뚱하게 예측되는 결과들로, “배드민턴”을 입력했는데 예술학과가 나온다던지 하는 식의 문제였다. 딥러닝 모델의 특성상 완전하게 모델을 이해하기는 어렵기 때문에 과적합 문제 또는 음절 조합에 따른 튀는 현상 정도로 이해했다.

이를 처리하기 위해서는 조금 더 컨트롤 가능한 전후처리 로직이 필요하다고 판단했다. “배드민턴”, “호른”, “AI” 등의 일부 특수한 키워드들은 특정 전공에만 나타날 것이라는 가정을 먼저 세웠고, 이러한 키워드들을 추출하는 작업을 진행했다.

고전적인 키워드 가중치 방법 중 하나인 TF-IDF (그림 출처 : [3])

우선 고전적인 텍스트마이닝 방법론인 TF(Term Frequency)와 DF(Document Frequency)를 활용해서 TF-IDF를 키워드 단위로 뽑아서, 특정 대표학과명에만 주로 등장하는 핵심 키워드 사전을 도출했다. 이를 직접 검수하여 대표학과별 독보적인 키워드 사전을 확보하고 전처리 로직에 녹여 매핑을 한 단계 더 강화시켰다.

적용 결과 및 테스트

이러한 3가지의 대응 방법을 통해, 전체 학습데이터는 총 1,806,457건으로 확장되었다. 이를 처음과 마찬가지로 무작위로 섞은 후 8: 1: 1의 비율로 나누어 학습/검증/실험 집합을 구성했다.

학습집합과 모델 실험 성능

영문 학과명 데이터의 추가로 전반적인 음절 최대 길이 값이 늘어나게 되었다. 입력값이 늘어나면서 모델의 전반적인 파라미터 자체가 늘어나게 되었고, 모델의 학습 및 예측 속도 전반이 다소 느려지게 되었다. 그래도 전반적인 모델의 파라미터가 가벼운 덕분에 부하테스트 결과 상으로 실시간 서비스가 가능한 수준의 TPS는 확보할 수 있었다.

또한, 모델의 양적 성능 자체에서도 위 표와 같이 3% 가량 감소한 모습을 확인하였다. 이는 의도적인 노이즈를 추가하고 영문 데이터도 소규모로 확장한 부분이 원인으로 보인다.

튜닝 이후의 콘솔테스트 결과

그러나 전처리 로직을 포함한 콘솔 테스트를 시행해 본 결과, 모델의 품질 자체는 보다 나아진 성능을 확인할 수 있었다. 위 그림은 개편 이후의 콘솔 테스트 결과로, 오탈자와 줄임말, 영문 학과명 예측에 대해서도 전반적으로 나아진 모습을 확인할 수 있다.

약 1달 간의 프로젝트 진행 결과로 확보한 대표전공 예측 모델은 현재 서비스 내에 직접적으로 공개는 안되어 있으나, 내부적으로는 운영 론칭되어 이력서 색인 및 전공 통계 정보등에 시범적으로 사용 중이다.

이것이 이번 프로젝트의 완성이라고 보기에는 어렵다. 현재도 특정 음절에 대한 과적합 문제이 나타나는 등의 문제가 있고 모델의 양적 성능에 대해서도 개선 여지가 있다. 이러한 부분들을 차근차근 더 개선해서 이후에는 구직자들이 직접 이용할 수 있도록 적용하는 것을 목표로 하고 있다.

이번 프로젝트를 진행하면서 태스크 목적과 요건에 맞게 학습데이터 구축 및 가공, 모델링과 로직을 잡는 방법 등 전반을 더 깊게 고민할 수 있었다. 각 아이디어와 대응 방법을 통해서 튜닝 포인트를 잡아보면서 서빙을 할 수 있었던 좋은 경험이었다.

참고문헌

[1] 남건민 외 3인(2021). 신조어의 의미 학습을 위한 딥러닝 기반 표적 마스킹 기법. 2021 한국컴퓨터정보학회 하계학술대회 논문집(29). 391-394.

[2] MyMajors, “College Majors” [참고: 2022.11.15], https://www.mymajors.com/college-majors/.

[3] 클래스101 기술블로그, “TF-IDF를 활용한 클래스 유사도 분석과 추천 서버 구축 1편”[참고: 2022.11.15], https://class101.dev/ko/blog/2019/07/16/esmond/.

--

--