"한국사 자격시험 年 51만명…이젠 수능보다 많이 본다" 「한국경제」, 2022년 08월
"한국사능력검정시험 접수 홈페이지 마비... 수험생 불편 겪어" 「연합뉴스」, 2021년 01월
"연구사·지도사 공채 한국사 과목, 한국사능력검정시험으로 대체" 「연합뉴스」, 2020년 04월
"한국사능력검정시험 年 4회→6회 확대" 「서울신문」, 2019년 11월
“당신을 위한 한국사능력검정시험 문제 추천 AI - 길동국사" [바로가기]
김선도 | 나인혁 | 노태엽 | 박우석 | 전병웅 |
프론트엔트 모델링 마케팅 |
백엔드 모델링 데이터 베이스 설계 |
프론트엔드 모델링 마케팅 |
백엔드 모델링 시각화 |
백엔드 모델링 크롤링 |
한국사능력검정시험은 대한민국 교육부 산하의 국사편찬위원회가 주관하는 한국사 시험입니다.
주로 공무원 시험, 공기업 취업 등에 가산점으로 활용되며 현재 연간 50만 명이 응시하는 큰 시험입니다.
길동국사는 한국사능력검정시험을 준비하는 모든 수험생을 돕고자 시작한 서비스입니다.
한국사능력검정시험 준비의 기본인 기출문제부터 오답 분석, 문제 해설, 문제 추천 기능을 포함합니다.
길동국사는 사용자의 다양한 피드백을 적극적으로 수용하여 지속적인 개선이 이루어지고 있습니다.
그럼, 길동국사의 주요 기능을 간략히 소개하겠습니다.
한국사능력검정시험 개정 이후 모든 회차(47회~62회)의 기출문제를 풀 수 있는 서비스를 제공합니다. (2023년 1월 기준)
기본, 심화 각 시험에서 무작위로 문제를 풀 수 있는 랜덤문제 기능을 제공합니다.
틀린 문제를 살펴보고 오답 분석을 할 수 있는 오답노트, 중요한 문제를 기록하는 북마크 기능을 제공합니다.
길동국사의 핵심 기능인 사용자의 문제 풀이 데이터를 바탕으로 인공지능 문제 추천 서비스를 제공합니다.
2023년 2월 기준 : 누적 가입 유저 192명 / 누적 문제 풀이 건수 12390건
2023년 1월 기준 : 누적 가입 유저 130명 / 누적 문제 풀이 건수 7800건
React : Client
Firebase : Database & Middleware
FastAPI : Backend Server
PostgreSQL : Dataset Backup
Airflow : Continuous Integration
길동국사의 주요 기능을 소개합니다.
길동국사에 사용된 머신러닝, 딥러닝 모델을 소개합니다.
- 실제 틀릴만한 문제를 많이 커버하는게 중요하기 때문에 Recall이 의미있을 것이라 판단
- 틀릴 확률 상위 5개의 문제를 추천하기 때문에 순서가 중요할 것이라 판단하여 NDCG를 참고
- 따라서 NDCG@10가 제일 높은 EASE, Recall@10가 제일 높은 SASRec를 서빙 모델로 선정
- 자체적으로 고안한 모델
- KoNLPy, TF-IDF, 코사인 유사도(Cosine Similarity)를 합친 모델
- (1) KoNLPy를 통해 각 문제의 해설 부분에서 주요 형태소를 추출
- (2) 불용어 전처리 후 TF-IDF로 임베딩
- (3) 임베딩된 벡터끼리의 코사인 유사도를 구하는 방식으로 Top-K 문제를 사용자에게 추천
- Collaborative Filtering에서는 hidden layer를 적게 사용하는 것이 성능이 더 좋다는 것이 밝혀져 있기 때문에 hidden layer를 아예 사용하지 않는 EASE가 좋은 성능을 기록할 것이라 예상
- EASE모델은 다른 모델에 비해 inference가 매우 빠르다는 장점이 있기 때문에 실시간으로 빠르게 추천을 제공해야 하는 현재 서비스에 적합하다고 판단
- Transformer 구조를 추천에 활용한 첫 모델
- Self-attention 구조를 사용하기 때문에 Sparse 구조에 적합한 Markov Chain의 단기적 예측 능력 그리고 dense 구조에 적합한 RNN을 이용한 장기적 예측 특징을 모두 반영 가능
모델명 | 참조 |
---|---|
TF-IDF | Luhn, H. P. (1957). A statistical approach to mechanized encoding and searching of literary information |
BM25 | S. E. Robertson, K. Sparck Jones. (1976). Relevance weighting of search terms |
SASRec(Self-Attentive Sequential Recommendation) | Wang-Cheng Kang, Julian McAuley. (2018). Self-Attentive Sequential Recommendation |
EASE(Embarrassingly Shallow Autoencoders for Sparse Data)) | Harald Steck. (2019). Embarrassingly Shallow Autoencoders for Sparse Data |
- https://recbole.io/ (recbole)
- https://ko.reactjs.org/docs/getting-started.html (react docs)
- https://firebase.google.com/docs?hl=ko (firebase docs)
- https://fastapi.tiangolo.com/ (fastapi docs)
- https://www.postgresql.org/docs/ (postgresql docs)
- https://konlpy.org/ko/latest/index.html (konlpy)