2,3장: NLP 기본 개념과 언어학, 활성화 함수, 손실 함수, 그래디언트 최적화, 훈련-평가 반복
4장: MLP(은닉층에서 n-그램과 유사한 관계 감지 가능하나 비효율적), CNN('파라미터 공유'로 효율적인 계산), L1/L2 규제, 드롭아웃
6장: RNN(적은 파라미터로 시간에 따른 긴 의존성 감지), 엘만 RNN, LSTM, GRU
7장: seq-to-seq 모델(인코더-디코더 모델)
9.2 전통적인 NLP 주제
9.2.1 대화 및 상호작용 시스템
컴퓨터와 사람이 원활히 대화하는 것이 목표
ex) 아마존의 알렉사, 애플의 시리, 구글의 어시스턴트
개방형(무엇이든 물어보는) 또는 폐쇄형(항공 예약과 차량 네비게이션 등)
연구 주제: 대화 행위, 문맥, 상태를 어떻게 모델링하는가? (음성, 영상, 텍스트 등) 멀티모달 대화 시스템을 어떻게 만드는가? 어떻게 시스템이 사용자의 의도를 인식하는가? 어떻게 사용자마다의 기호에 잘 맞는 응답을 생성하는가? 더 인간적인 응답?
9.2.2 담화 분석
텍스트 문서의 부분-전체 특징을 이해하는 것
대용어(반복을 피하기 위한 대동사,대명사) 복원, 환유(이름이 아니라 그 사물이나 개념과 관련된 의미로 칭하는 것) 감지 를 포함
환유어를 파악하기 위해 기반 지식이 필요하기도 함(ex Beijing 지역이 아닌 중국 정부를 의미)
9.2.3 정보 추출과 텍스트 마이닝
텍스트에서 개체명, 이벤트, 관계의 추출
텍스트에서 언급된 개체를 DB 항목에 매핑
지식 베이스를 구축하고 관리하는 방법
9.2.4 문서 분석과 문서 추출
대량의 문서 이해, 주제 추출 (토픽 모델링)
어떻게 문서를 지능적으로 인덱스하고 검색할지
검색 쿼리의 이해 (쿼리 파싱)
많은 문서의 요약
9.3 최신 NLP 모델
전통적인 NLP 연구에서 딥러닝 패러다임으로의 전환
딥러닝 분야는 역사가 짧지만 NLP 분야의 역사는 훨씬 길다는 점
모델의 조합
논문에서 많은 경우 여러 모델을 조합해서 사용
ex) CNN(문자에 대해) + LSTM + MLP(분류)
작업에 따라 여러 구조를 조합할 수 있다는 점이 딥러닝의 가장 강력한 기능
시퀀스를 위한 합성곱
최근 시퀀스 모델링에서 합성곱 연산으로만 시퀀스를 모델링하는 경향
디코딩에서 전치 합성곱 연산 사용
합성곱 모델 사용 시 훈련 속도 높일 수 있음
필요한 것은 어텐션이 전부이다
최근 합성곱을 어텐션 매커니즘으로 바꾸는 트렌드
셀프 어텐션과 멀티헤드 어텐션을 이용하여 넓은 범위의 의존성을 감지
RNN과 CNN을 사용해 모델 만들기
전이 학습
한 작업에서 학습한 표현을 사용하여 다른 작업의 학습을 향상시키는 방법
사전 훈련된 단어 벡터를 사용한 전이 학습 기법이 많이 사용
언어 모델링 작업에서 학습한 비지도 표현이 질의응답, 분류, 문장 유사도, 자연어 추론 같은 NLP 작업에 도움
최근 대화 기반 작업에서 강화 학습 분야의 성공
9.4 NLP 시스템을 위한 디자인 패턴
제품 수준의 NLP 시스템은 복잡
기술, 비즈니스, 전략, 운영 목표에 맞는 제품 개발을 위해 팀에서 선택해야할 사항 (trade-off 관계)
온라인 시스템 vs 오프라인 시스템
온라인: 모델 예측이 (거의) 실시간 ex) 스팸 필터나 콘텐츠 관리 / 적대적인 환경에 민감해야 함 ex) 마이크로소프트 챗봇 테이는 부적절한 대화를 학습
오프라인: 입력 배치를 동시에 효과적으로 처리하도록 시스템 구축 후 변환학습 등을 활용
변환학습: 준지도 학습과 비슷하지만 함수를 모델링하지 않고 테스트 세트에 대한 레이블 부여에 초점을 맞춤
일반적으로 오프라인 시스템을 먼저 만들고 온라인 시스템을 만드는 순서로 시스템 구축, 적대 샘플을 다뤄야하는 등의 사각지대 만날 수 있음, 온라인 시스템에 오프라인 시스템보다 많은 엔지니어링 필요
상호작용 시스템 vs 비상호작용 시스템
대부분 자연어 시스템은 상호작용이 없음, 주로 모델이 예측을 만듦
샹호작용 시스템에서는 모델과 사람이 예측을 만드는데 관여, 사람을 참여시킴으로서 높은 정확도 달성
유니모달 시스템 vs 멀티모달 시스템
하나 이상의 모드(오디오, 비디오 등)를 사용하면 도움이 될 때가 많음
구축과 베포에 많은 비용이 들지만 유니모달에서 얻을 수 없는 신호 제공
ex) 여러 소스 언어를 입력받아 번역 품질 향상, 텍스트와 이미지 특성을 동시에 활용하여 웹 페이지의 주제 선정
엔드 투 엔드 시스템 vs 분할 시스템
엔드 투 엔드 시스템: 기계 번역, 요약, 음성 인식과 같은 많은 분야에서 선호, 구현과 베포의 복잡도를 낮추고 코드 라인 수를 크게 줄임
분할 시스템: 작업을 부분 작업으로 쪼개어 최종 작업 목적과 관계없이 개별적 최적화, 모듈화 가능, 특정 이슈 수정 쉽지만 기술 부채 발생
*기술부채: 현 시점에서 더 오래 소요될 수 있는 더 나은 접근방식을 사용하는 대신 쉬운 솔루션을 채택함으로써 발생되는 추가적인 재작업의 비용을 반영하는 관점
폐쇄형 도메인 시스템 vs 개방형 도메인 시스템
폐쇄형: 해당 도메인에서 잘 작동하도록 ex 생의학 저널
개방형: 범용적인 목적으로 사용
ex) 문서 레이블링 시스템: 사전에 정의된 클래스 중 하나만 예측한다면 폐쇄형 도메인, 그러나 새로운 클래스를 발견하도록 고안되었다면 폐쇄형(개방형?)
단일 언어 시스템 vs 다중 언어 시스템
단일 언어: 하나의 언어를 다룸, 만들기와 최적화는 쉬움, 고품질 시스템을 만들 수 있음, 개별 단일 언어 시스템을 묶어 다중 언어 시스템을 구현하기도 함