대표전공 예측 모델: 기초 모델링

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

[2023대입] 상위대학 신설학과 10개교 18개 1054명 ‘확대’

최근에는 빠르게 변화하는 직업군과 기술들에 맞게 신설학과가 개설되거나 다양한 학과가 병합되는 등의 일들이 빈번하게 이뤄지고 있다. 스마트모빌리티학부, 디스플레이융합공학과 같은 형태의 융복합적이고 포괄적인 학과명부터, 인플루언서학과, 크리에이터학과 등의 학과명으로는 생소한 학과명까지 등장하고 있다.

학과명이 이렇게 다채롭게 변화됨에 따라, 데이터를 분석하고 다루는 입장에서는 이력서의 상당히 주요한 정보인 학과명 데이터에 대한 난이도가 조금 더 올라갔다. 기존에 보유하고 있던 학과명 코드나 분류체계로 대응하기 난해해진 것이다. 이용자에게 분류를 직접 선택하게 하기엔 그 자체로 피로도가 높아지는 것이 문제가 된다.

AI LAB에서는 이러한 문제들에 대해서 대응하고자 기존에 쌓아둔 이력서 빅데이터와 워크넷에서 제공하고 있는 학과명 사전 데이터를 베이스로 삼아, 대표학과를 예측해주는 인공지능 모델을 만들기로 했다. 목표는 자연어로 입력된 학과명에 대한 대표학과와 학부를 예측해주는 형식의 딥러닝 모델과 전후처리를 포함한 실시간 분석 API이다.

1차 학습데이터 구축

AI LAB 내에는 이미 2019년, 워크넷의 학과명 사전 데이터를 베이스로 추가 구축한 학과명 — 전공계열 매핑 사전이 있었다. 그러나 이는 신설학과가 우후죽순으로 생겨나고 있는 현재에는 다소 적용이 어려운 부분이 있기 때문에 2022년 버전으로 새롭게 업데이트를 하는 작업이 우선적으로 필요했다. 교육통계서비스(KESS)에서 제공하고 있는 학교/학과별 데이터셋을 기반으로 사전을 업데이트하는 작업을 착수했다. 결과적으로 약 2만건 이상의 학과명을 134개의 대표학과명으로 매핑할 수 있는 형태의 대표학과 매핑 사전을 확보할 수 있었다.

KESS의 학교/학과별 데이터셋 서비스 화면

이후 사람인 내에 공개된 이력서 데이터를 활용하여 구직자가 직접 입력한 학과명들을 확보했다. 이후 구직자가 입력한 학과명 정보를 전처리하고 매핑 사전을 통해 매핑하는 작업을 거쳤다. 매핑 과정에서 134개의 레이블 내에 매핑되는 학과명과 매핑되지 않는 학과명을 분리하였다. 매핑되지 않는 학과명은 직접 검수를 거치면서 추가적인 전처리 사항을 파악했다.

1차 레이블링 데이터를 만들어 본 결과, 총 1,636,583건의 학과명 데이터가 학습데이터로 확보되었다. 이를 무작위로 섞어 8: 1: 1의 비율로 학습/검증/실험 집합을 구성했다.

기초 모델링

이번 프로젝트의 모델 요건은 다음과 같았다.

  1. 자연어 형태의 학과명 데이터만 입력으로 받고 대표학과명을 출력할 것.
  2. 실시간으로 리턴을 줄 수 있는 형태의 모델일 것.

일단 자연어 형태로 입력되는 학과명 데이터만을 입력으로 받기 때문에, 다른 부가적인 정보를 자질로 활용할 수는 없었다. 학과명 데이터는 일반적으로 10자 내외의 짧은 텍스트이고, 띄어쓰기가 없으며, 복합명사나 신조어, 전문용어 등의 활용이 매우 많은 특징을 가졌다. 이러한 특징들 때문에 모델링에 있어서 WPM(Word Piece Model)이나 형태소 기반의 토큰화 작업에 적합하지 않을 수 있겠고 생각했다. 음절 기반의 토크나이징과 음소 기반 정도를 후보로 뒀고, 2번의 요건으로 파라미터를 줄이는 것이 우선이라 판단하여 음절 기반의 모델을 선택했다.

다음으로, 2번 요건을 충족시키기 위해서 자체적으로 학습한 PLM(Pre-Trained Language Model)모델의 활용을 과감히 포기했다. PLM 베이스의 모델링을 활용하면 물론 성능 자체는 크게 확보할 수 있겠지만 파라미터나 자원을 그만큼 요구한다. 물론 Fine-Tuning 작업으로 얻는 모델의 경우에는 비교적 가볍다고 할 수 있겠으나, 태스크 자체의 성격이나 데이터의 규모로만 따져봐도 기초적인 딥러닝 모델을 데이터 특징에 맞게만 활용하면 충분히 일정 수준 이상의 성능을 확보할 수 있을 것이라 판단했다. 서비스 적용 시에는 이러나저러나 매핑 사전 기반의 전후처리를 필요로 할 것이다. 때문에 자주 호출될 실시간 서비스이자 대규모 색인 작업에 활용될 기초적이고 작은 태스크인 이번 프로젝트에는 PLM이 적합하지 않다고 생각했다.

대표전공 예측 기초 모델 구조

결과적으로 선택한 구조는 Multi-filter CNN과 Bidirectional GRU 구조를 복합적으로 활용한 분류 모델이었다. 음절 기반으로 데이터를 임베딩해서 받고, 복합명사나 신조어 처리 등에 유효한 1D CNN과 짧은 음절 간의 연결성 정보를 활용하기 위한 RNN 구조를 선택했다. 각 음절 임베딩 결과는 두 네트워크에 각각 분석되도록 구성했는데 이는 파라미터로 각각을 나눠서 학습해보고 테스트할 수 있도록 했다. 해당 결과들을 Soft-Voting로 취합하여 Softmax로 134개의 레이블 중 하나를 예측하는 모델 구조를 잡았다.

학습 및 테스트 결과

전반적인 파라미터는 최소한으로 가져갈 수 있도록 범위를 잡고, 파라미터 테스트를 진행했다. 파라미터를 최소화하면서 학습한 결과, CNN과 RNN 구조를 동시에 활용하는 Voting 모델이 가장 성능이 좋았고 학습 및 예측 속도도 확보할 수 있었다. 다음 표는 상술한 학습 데이터와 모델을 통해 확보한 예측 성능이다.

기초 모델 학습 결과

이후에는 전후처리를 엮어서 서비스 시에 활용할 수 있는 로직을 개발했다. 우선 “학과”, “과”, “학부” 등의 텍스트가 오입력되거나 입력되지 않은 경우에는 매핑이 용이하도록 전처리를 했다. 이후 매핑 사전을 통해서 입력된 자연어 학과명을 매핑할 수 있는 경우에는 모델을 활용하지 않고 바로 리턴하는 구조를 잡았다. 기초 구조를 잡은 후에 예측 품질 테스트를 콘솔상으로 간략히 구성해 진행했다.

1차 콘솔 테스트 당시의 결과

위 그림에서 학과명 입력 줄 이후에 괄호로 표시된 곳은 매핑 사전을 통해서 값을 구한 케이스이다. 모델을 활용한 결과로 보더라도 소요시간은 매우 짧게 잡힌 것을 확인할 수 있다. 전반적인 예측은 나름대로의 품질을 보여줬지만, 몇 가지의 문제점을 확인할 수 있었다.

먼저 “크리에이터학과” 같은 경우 사전 업데이트 이후에도 반영되지 않았고 기존의 학과명 데이터에도 거의 없는 케이스라서 대응력이 떨어진다는 점이었다. 그 외에도 위 그림에는 표현되어 있지 않으나 테스트를 통해 영타로 입력된 학과명, 오탈자가 있는 경우, 줄임말로 입력된 경우 등에 대해서는 다소 아쉬운 성능을 확인할 수 있었다.

결과적으로 기초적인 모델링으로는 다소 아쉬운 부분들이 많아서 서비스에 적용하기에는 어려움이 있다고 판단했다. 이를 개선하기 위해서 학습 데이터에서부터 모델링까지 다양한 개선 작업을 진행했다. 이에 대한 이야기는 다음 포스팅에서 이어서 풀어보고자 한다.

참고문헌

[1] 한정현, “[2023대입] 상위학과 신설학과 10개교 18개 1054명 ‘확대’” [참고: 2022.11.14], 베리타스 알파, http://www.veritas-a.com/news/articleView.html?idxno=418651

[2] KESS 교육통계서비스, “학교/학과별 데이터셋” [참고: 2022.11.14], KESS 교육통계서비스, https://kess.kedi.re.kr/contents/dataset?itemCode=04&menuId=m_02_04_03_02&tabId=m2

--

--