2024. 12. 3. 13:21ㆍ전공관련 이슈 어슬렁어슬렁
https://if.kakao.com/2022/session/72
1. 오타 교정을 아시나요?
오타란?
-의도와 다른 입력
-‘아이우 콘서트 애매’
->아이유 콘서트 예매를 잘못 입력하는 경우
-(반대로) 올바르게 입력된 경우: 정타
검색에서 오타는?
-일반적인 맞춤법 오류와는 다름
-‘검색’을 이용하는 사용자 목적이 중요
-맞춤법에 맞지 않는 검색어라도 오타가 아닐 수 있음
-예) 블럭: 비표준어
검색어 오타 교정(스펠러, Speller)이란?
-검색어에 대해 오타인지 판별하고, 오타인 경우 적절한 정타로 교정하는 것
-잘못 입력한 검색어라도 적절한 검색 결과 제공을 위해 검색어 오타 교정은 꼭 필요한 서비스
오타를 몇가지 유형으로 정리
: 단순입력 오류, 문자 변환 오류, 맞춤법 오류, 외래어 표기 오류, 잘못된 배경 지식으로 인한 오류
스펠러는 다음 검색, 카카오톡, 멜론, 다음 지도 등 다양한 곳에 적용되어 있습니다.
2. 기존 서비스의 문제
기존 스펠로 구조
-노이즈 채널을 이용한 통계 기반 오타 교정 모델
-노이즈 채널 모델(noisy channel Model)
-오류 모델, 언어 모델의 곱 결과에서 가장 큰 확률값을
가지는 결과를 정타 후보로 예측
-오류 모델
-언어 모델
기존 스펠러 단점
-교정 커버리지(coverage)가 낮음
-교정 대상 중 교정한 비율
-높은 교정 정확률을 위해 제한된 편집 거리 사용
-교정 정확률(precision)
-교정 결과가 정답인 비율
-오교정이 치명적인 스펠러 특성상 매우 중요
-참고 편집거리
-한 문자열에서 다른 문자열로 변환시 연산 횟수
-예)<abc,abd>의 편집 거리는 1
그래서…
-기존 서비스의 단점들을 딥러닝 모델을 이용해 해결해보고자 했습니다.
-오타 교정: 오타로부터 정타를 생성하는 문제로 정의
-디노이징 seq2seq모델
(Denoising Seqence-to-Sequence Model)을 사용
-기존 모델의 한계를 여러 도메인에서 좋은 성능을 내는 딥러닝 모델을 통해 극복해보고자 함
기대효과
—복잡한 서비스 구조를 단순한 구조로 변경
—데이터 추가시 지속적인 성능 개선 가능
—학습 데이터에 따라 도메인에 특화된 모델 제공 가능
—ex) 음악, 쇼핑, 로컬 등
—(디노이징 모델을 위한) 노이즈 생성 함수 개발
—확장이 용이하고, 여러 도메인에 적용 가능한 오타
생성 방법 개발 가능
—학습 데이터: <오타, 정타> 쌍 데이터
3. 딥 스펠러 소개
Seq2seq 모델의 학습 데이터
노이즈 함수
—노이즈가 적용된 학습 데이터(<오타, 정타>쌍)를 생성하는 부분
—정타를 입력하여 오타를 생성
—정타: 관리 도구 데이터와 검색 로그를 활용
-keystroke 변환 : 입력을 keystroke로 변환
-오류 모델 기반 오타 생성 : 기존 서비스의 오류 모델을 활용
-패턴 기반 오타 생성 : 관리 도구 데이터, 세션 로그를 이용하여<정타, 오타> 패턴으로 오타 생성
-번역 모델 기반 오타 생성 : 관리 도구 데이터, 세션 로그를 이요하여 <정타, 오타> 오타 생성 모델 학습
모델
—오타를 정타로 교정하도록 학습
—학습 데이터: <오타, 정타> 쌍 데이터를 사용
—Seq2seq 모델
—인코더, 디코더 레이어: 각 3개씩 사용
—빠른 처리 시간을 위해 모델 사이즈를 최소화
—토큰 단위: 문자
학습 데이터
—관리 도구 데이터, 검색 로그를 정제 후 사용
—정제 기준
—숫자, 기호, 자모 url만 있는 경우
—오타 패턴이 포함되어 있는 경우
분류기
—교정 결과의 신뢰도를 높이는 과정
—<입력, 출력> 쌍에 대해 출력의 언어 모델 확률이 더 높을 때 교정 결과를 사용
—여러가지 실험을 통해 언어 모델을 이용한 분류기를 사용
4. 개선 결과
평가 방법
—입력 데이터 종류에 따라 나눠 평가
—오타 정확률
—True : 오타를 바르게 교정한 경우
—False : 오타를 교정하지 않거나, 잘못 교정한 경우
—정타 정확률
—True : 정타를 교정하지 않는 경우
—False : 정타를 잘못 교정한 경우
평가 데이터
—검색 로그를 활용하여 구축
—모수를 잘 반영할 수 있도록 층화 샘플링
—구축방법
1. 입력이 정타인지 오타인지 분류하고
2. 오타인 경우 오타 유형을 구분, 정타 기록
—예) ‘카카옼’
-오타, 단순 입력 오류, 정타는 ‘카카오’
—2명의 리뷰어가 교차 검증을 통해 데이터를 구축
—데이터 규모: 약 10만개
오타 : 전체 데이터의 약 5%
분류기 유무에 따른 성능 비교
오타 정확률 : +16% —> +13%
정타 정확률 : -8% —> -1%
5. 향후 계획
앞으로 해야 할 일
—모델 개선
—노이즈 함수 추가 개발
—웹문서 키워드 추출을 통한 학습 데이터 보강
—시스템 개선
—모델 최적화
—유저의 피드백(클릭 유무) 활용
'전공관련 이슈 어슬렁어슬렁' 카테고리의 다른 글
모바일 얼굴인식 SDK개발[컨퍼런스 내용정리] (1) | 2024.12.03 |
---|---|
실험을 잘한다는것은 무엇일까?[컨퍼런스 내용정리] (1) | 2024.12.03 |
네이버 검색은 어떻게 나보다 더 내 의도를 잘 아는가?[컨퍼런스 내용정리] (3) | 2024.12.03 |
비대면 실명확인 시스템 개발 이야기[컨퍼런스 내용정리] (3) | 2024.12.03 |
네이버 검색은 어떻게 나보다 더 내 의도를 잘 아는가?[컨퍼런스 내용정리] (0) | 2024.12.03 |