Steady Seller

한국어 임베딩 [자연어 처리 모델의 성능을 높이는 핵심 비결 Word2Vec에서 ELMo, BERT까지]

  • 지은이이기창
  • 감수자NAVER Chatbot Model
  • ISBN : 9791161753508
  • 35,000원 (eBook 28,000원)
  • 2019년 09월 26일 펴냄
  • 페이퍼백 | 348쪽 | 188*235mm
  • 시리즈 : 데이터 과학

책 소개

가장 최신 버전의 소스 파일은 여기에서 내려 받으실 수 있습니다.
https://github.com/ratsgo/embedding/zipball/master

공식 안내 페이지는 여기를 누르시면 확인하실 수 있습니다.
https://ratsgo.github.io/embedding/

요약

임베딩(embedding)은 자연어를 숫자의 나열인 벡터로 바꾼 결과 혹은 그 일련의 과정 전체를 가리키는 용어다. 단어나 문장 각각을 벡터로 변환해 벡터 공간에 '끼워 넣는다(embed)'는 취지에서 임베딩이라는 이름이 붙었다. 컴퓨터가 자연어를 처리할 수 있게 하려면 자연어를 계산 가능한 형식인 임베딩으로 바꿔줘야 한다.
임베딩은 컴퓨터가 자연어를 이해하도록 하는 첫 관문으로 매우 중요한 기능을 한다. 자연어 처리 모델의 성능은 임베딩이 좌우한다고 해도 과언이 아니다. 이 책에서는 다양한 임베딩 기법을 일별하고 한국어 데이터 전처리, 임베딩 구축에 이르는 전 과정을 튜토리얼 방식으로 소개한다. Word2Vec 등 단어 수준 기법부터 ELMo, BERT 등 문장 수준 임베딩까지 다룬다.

추천의 글

처음 리뷰를 부탁받고 읽어봤을 때가 생각납니다. 책을 펼치기 전에는 솔직히 약간의 의구심이 있었습니다. 한 권의 책으로 풀어내기에는 임베딩이 다소 협소한 주제가 아닐지, 한국어라는 재료와 관련 지어 어떻게 설명할 수 있을지 말이지요. 하지만 원고를 읽어 나가며 의구심이 모두 사라졌습니다. 이 책은 임베딩의 개념, 수학적 원리, Word2Vec이나 FastText 등 단어 임베딩 기법, ELMo나 BERT 등 문장 임베딩 기법, 또 구현과 예시까지 관련 내용들을 빠짐없이 짚어 나갑니다. 한국어 처리에 대한 장을 따로 마련하고 이를 기반으로 실제 지은이가 새로이 구현한 내용을 바탕으로 설명한 내용도 인상적이었습니다. 마치 저자 직강 수업을 듣는 듯했습니다. 처음에는 가벼운 마음으로 컴퓨터 화면으로 원고를 보고 있었는데, 어느 순간 이 내용을 종이책으로 만나고 싶다는 생각이 부쩍 들었습니다. 그런데 드디어 그날이 오게 됐네요. 기쁜 마음으로 독자 여러분께 추천드립니다. 더불어 지은이의 겸손하고 꼼꼼한 성향이 책의 완성도를 높인 것은 물론, 이 책의 생명력에 큰 기여를 할 것 같습니다. 원고를 다 읽은 다음 이기창 님에게 이런저런 제안을 드리자 진지하고 겸허한 태도로 저의 제안을 검토하고 원고를 보완하기 위해 고민하는 것을 봤습니다. 그 마음이 계속 이어져 호흡이 짧은 IT 출판 시장에서 이 책이 스테디셀러가 되기를 희망합니다.
ㅡ 박규병/ 카카오브레인 NLP 연구원

빅데이터의 시대라고 한다. 어디를 가도 데이터는 넘쳐흐를 것만 같다. 하지만 막상 내가 관심 있는 영역이 생겨 데이터를 얻으려고 하면 좀처럼 찾기 힘들다. 영역을 좁히고 보면 빅데이터란 것은 존재하지 않는다.
공부 자료 역시 마찬가지다. 세상에 공부거리가 차고 넘쳐서 더 이상 공부 환경을 가지고 투덜거리면 안 된다고는 하지만, 막상 세부 영역으로 가면 관련 자료가 희박하다. 그 자료가 한국어로 쓰여진 것이거나 한국어에 대한 것이라면 더더욱.
그런데 이 책은 그 두 가지 목마름을 다 채운다. 한국어에 대한 한국어로 쓰인 책. 한국어 NLP에 대해 목말라 했던 사람들에게 단비 같은 존재가 아닐 수 없다. 게다가 기초적인 개념 해석부터 아주 최근의 연구 결과까지도 담고 있어 기본기를 갖춘 사람뿐만 아니라 경험이 어느 정도 있는 사람도 얻어 갈 것이 있는 책이다. 각종 알고리즘에 대한 해석뿐만 아니라 실무에 적용할 수 있게 코드 스니펫도 담고 있어 공부하는 학생도, 실무에 투입된 회사원도 얻어 갈 내용이 많으리라 장담한다. 이렇게 탄탄한 책을 써 준 지은이에게 무척 고맙다.
혹자는 이 책의 제목만 보고 ‘한국어’와 ‘임베딩’의 교집합만 다룰 거라고 여길 수 있다. 하지만 고맙게도 ‘한국어’와 ‘임베딩’의 합집합을 다룬다. 따라서 둘 중 한쪽에만 관심 있는 사람에게도 유용하다. 한국어 분석에 관심은 있는데, 어디서부터 시작해야 할지 몰랐다면 이 책을 추천한다. NLP 관련 최신 논문을 여러 권 접했지만 좀 더 개념을 분명하게 잡고 싶은 사람에게도 이 책을 추천한다.
ㅡ 박은정/ 네이버 파파고 테크리더, KoNLPy 컨트리뷰터

지은이를 처음 만난 곳은 자연어 처리를 공부하는 자리였습니다. 저는 이기창 님의 블로그를 읽으면서 그의 팬이 됐습니다. 습득한 지식을 나누려는 마음뿐만 아니라 스스로의 발전을 위해 꾸준히 노력하는 모습에서 많은 것을 배울 수 있었습니다. 이 책 역시 임베딩의 개념과 사용법을 배울 수 있는 좋은 자료가 되리라 생각합니다.
최근의 자연어 처리의 발전은 정보를 표현하는 방식의 변화에 기인합니다. 벡터 공간에서 작동하는 머신 러닝 알고리즘을 잘 활용하기 위해서는 벡터 공간에서의 데이터의 표현법에 대해 깊게 알 필요가 있습니다. 이 책은 임베딩이라 부르는 자연어 처리 분야에서의 데이터 표현법에 대한 개념, 원리, 실습을 통한 학습의 경험이 잘 정리돼 있습니다. 그렇기 때문에 임베딩 기반 자연어 처리 방법에 입문하는 이들은 공부의 범위와 우선순위에 대한 방향타를 얻을 수 있으며, 자연어 처리 학습자들도 임베딩 지식을 정리할 기회를 얻을 것이라 생각합니다.
이 책은 각 알고리즘을 학습하고 활용할 수 있는 코드를 제공하고 있습니다. 머신 러닝의 공부 과정에는 반드시 실제 데이터의 적용 및 학습 결과의 탐색이 포함돼야 합니다. 또한 빠르게 현업에 알고리즘을 적용하기 위해서는 사용하기 쉬운 정리된 코드가 필요합니다. 이 책은 스크립트 형식으로 손쉽게 사용할 수 있는 코드와 세부 파이썬 코드들을 모두 제공하기 때문에 실습과 적용이 필요하신 분 들에게도 큰 도움이 될 것이라 생각합니다.
언제나 이기창 님을 응원하며, 그 결실 가운데 하나인 이 책이 임베딩과 자연어 처리를 공부하는 분들께 큰 도움이 되길 바랍니다.
ㅡ 김현중/ 서울대 공학박사, soynlp 메인 컨트리뷰터, 텍스트마이닝 블로그(lovit.github.io) 운영

이 책에서 다루는 내용

■ 자연어 처리의 첫 관문인 임베딩의 개념과 종류, 역사 소개
■ 임베딩이 어떻게 자연어 의미를 함축하는지 이론적 배경 풀이
■ 위키백과, KorQuAD 등 한국어 말뭉치 전처리 노하우 공유
■ KoNLPy, soynlp, 구글 센텐스피스(sentencepiece) 패키지 안내
■ Word2Vec, GloVe, FastText, Swivel 등 단어 수준 임베딩
■ LDA, Doc2Vec, ELMo, BERT 등 문장 수준 임베딩 설명
■ 개별 모델 학습과 동작 과정을 코드 레벨로 설명한 후 튜토리얼 진행
■ 문서 분류 태스크를 중심으로 임베딩 파인튜닝(fine-tuning) 실습

이 책의 대상 독자

■ 임베딩의 이론적 배경과 동작 원리에 관심이 많은 데이터 과학자
■ 자연어 분포와 의미 사이의 관계 해명을 중시하는 언어학 연구자
■ 품질 좋은 임베딩을 현업에 적용하려는 머신 러닝 엔지니어와 개발자

이 책의 구성

이 책은 다양한 임베딩 기법을 소개한다. 크게 단어 수준 임베딩과 문장 수준 임베딩을 다룬다. 각각 단어와 문장을 벡터로 변환하는 기법이다. 여기서 설명하는 단어 수준 임베딩으로는 Word2Vec, GloVe, FastText, Swivel 등이 있다. 문장 수준 임베딩은 ELMo, BERT 등이 있다.
이 책에서는 각 임베딩 기법의 이론적 배경을 살펴본 후 한국어 말뭉치로 실제 임베딩을 구축하는 과정을 설명한다. 각 기법을 설명할 때는 가급적 원 논문의 수식과 표기를 따른다. 코드 또한 논문 저자의 공식 리포지터리에서 가져와 소개할 예정이다.
말뭉치 전처리(preprocess), 임베딩 파인 튜닝(fine-tuning) 역시 이 책이 다루는 중요한 주제다. 전자는 임베딩 구축 전에, 후자는 임베딩 구축 후에 거쳐야 하는 과정이다. 전처리의 경우 KoNLPy, soynlp, 구글 센텐스피스(sentencepiece) 등 오픈소스 사용법을 설명한다. 긍정, 부정 등 문서의 극성(polarity)을 예측하는 문서 분류 과제를 예로 들어 임베딩을 파인 튜닝하는 방법을 실습한다.

각 장별 주요 내용은 다음과 같다.
1장, '서론'에서는 임베딩의 정의, 역사와 종류 등을 살핀다. 도커(docker) 등 개발 환경을 구성하는 과정 역시 설명한다.
2장, ‘벡터가 어떻게 의미를 가지게 되는가’에서는 자연어의 의미를 임베딩에 어떻게 함축시킬 수 있는지에 대한 내용을 소개한다. 각 임베딩 기법들은 크고 작은 차이가 있지만 말뭉치의 통계적 패턴(statistical pattern) 정보를 반영한다는 점에서 공통점을 지닌다는 사실을 짚는다.
3장, ‘한국어 전처리’에서는 임베딩 학습을 위한 한국어 데이터의 전처리 과정을 다룬다. 웹 문서나 json 파일 같은 형태의 데이터를 순수 텍스트 파일로 바꾸고 여기에 형태소 분석을 실시하는 방법을 설명한다. 띄어쓰기 교정 등도 소개한다.
4장, ‘단어 수준 임베딩’에서는 다양한 단어 수준 임베딩 모델을 설명한다. NPLM, Word2Vec, FastText 등은 예측 기반 모델, LSA, GloVe, Swivel 등은 행렬 분해(matrix factorization) 기반의 기법들이다. 가중 임베딩(weighted embedding)은 단어 임베딩을 문장 수준으로 확장하는 방법이다.
5장, ‘문장 수준 임베딩’에서는 문장 수준 임베딩을 다룬다. 행렬 분해(matrix factorization), 확률 모형, 뉴럴 네트워크 기반 모델 등 세 가지 종류를 소개한다. 잠재 의미 분석(LSA)은 행렬 분해, 잠재 디리클레 할당(LDA)은 확률 모델, Doc2Vec, ELMo, BERT 등은 뉴럴 네트워크가 중심인 방법들이다. 특히 BERT는 셀프 어텐션(self-attention) 기반의 트랜스포머 네트워크(transformer network)가 그 뼈대를 이루고 있다.
6장, ‘임베딩 파인 튜닝’에서는 단어, 문장 수준 임베딩을 파인 튜닝하는 방법을 다룬다. 네이버 영화 리뷰 말뭉치를 가지고 극성을 분류하는 과제를 수행한다.
‘부록’에서는 이 책을 이해하는 데 필요한 기초 지식을 간략하게 살펴본다. 선형대수학, 확률론, 뉴럴 네트워크, 국어학 등의 주요 개념을 설명한다.

상세 이미지

저자/역자 소개

지은이의 말

컴퓨터는 ‘계산기’에 불과하다. 컴퓨터는 사람의 말, 즉 자연어(natural language)를 바로 이해할 수 없다. 자연어를 100% 이해하는 인공지능이 등장하더라도 그 이해(understanding)의 본질은 연산(computation)이나 처리(processing)다. 컴퓨터가 자연어를 처리할 수 있게 하려면 자연어를 계산 가능한 형식으로 바꿔줘야 한다.
임베딩(embedding)은 자연어를 숫자의 나열인 벡터(vector)로 바꾼 결과 혹은 그 일련의 과정 전체를 가리키는 용어다. 단어나 문장 각각을 벡터로 변환해 벡터 공간(vector space)에 ‘끼워 넣는다(embed)’는 취지에서 임베딩이라는 이름이 붙었다. 컴퓨터는 임베딩을 계산, 처리해 자연어 형식의 답변을 출력함으로써 인간과 상호작용할 수 있게 된다. 그렇기 때문에 임베딩은 컴퓨터가 자연어를 이해하도록 하는 첫 관문으로 매우 중요한 기능을 한다.
임베딩에는 말뭉치(corpus)의 의미, 문법 정보가 응축돼 있다. 임베딩은 벡터이기 때문에 사칙연산이 가능하며, 단어/문서 관련도(relevance) 역시 계산할 수 있다. 최근 들어 임베딩이 중요해진 이유는 따로 있다. 바로 전이 학습(transfer learning) 때문이다. 전이 학습이란 특정 문제를 풀기 위해 학습한 모델을 다른 문제를 푸는 데 재사용하는 기법을 의미한다. 예컨대 대규모 말뭉치를 미리 학습(pretrain)한 임베딩을 문서 분류 모델의 입력값으로 쓰고, 해당 임베딩을 포함한 모델 전체를 문서 분류 과제를 잘할 수 있도록 업데이트(fine-tuning)하는 방식이 바로 그것이다. 물론 전이 학습은 문서 분류 이외의 다양한 다른 과제에도 적용할 수 있다.
전이 학습 혹은 프리트레인-파인 튜닝 메커니즘은 사람의 학습과 비슷한 점이 있다. 사람은 무언가를 배울 때 제로 베이스에서 시작하지 않는다. 사람이 새로운 사실을 빠르게 이해할 수 있는 이유는 그가 이해를 하는 데에 평생 쌓아 온 지식을 동원하기 때문이다. 자연어 처리 모델 역시 제로에서 시작하지 않는다. 우선 대규모 말뭉치를 학습시켜 임베딩을 미리 만들어 놓는다(프리트레인). 이 임베딩에는 의미, 문법 정보가 녹아 있다. 이후 임베딩을 포함한 모델 전체를 문서 분류 과제에 맞게 업데이트한다(파인 튜닝). 이로써 전이 학습 모델은 제로부터 학습한 모델보다 문서 분류 과제를 빠르게 잘 수행할 수 있다.
품질 좋은 임베딩은 잘 담근 김치와 같다. 김치 맛이 좋으면 물만 부어 끓인 김치찌개 맛도 좋다. 임베딩 품질이 좋으면 단순한 모델로도 원하는 성능을 낼 수 있다. 모델 구조가 동일하다면 그 성능은 높고 수렴(converge)은 빠르다. 자연어 처리 모델을 만들고 서비스할 때 중요한 구성 요소 하나만 꼽으라고 한다면, 나는 주저하지 않고 ‘임베딩’을 꼽을 것이다. ELMo(Embeddings from Language Models), BERT(Bidirectional Encoder Representations from Transformer), GPT(Generative Pre-Training) 등 자연어 처리 분야에서 당대 최고 성능을 내는 기법들이 모두 전이 학습 혹은 프리트레인-파인 튜닝 메커니즘을 사용하는 것은 우연의 일치가 아니다.
주지하다시피 자연어 처리 분야의 대세는 오픈소스(open source)다. 논문은 물론 데이터와 코드까지 모두에게 공개하는 경우가 다반사다. 덕분에 모델 발전 속도가 상상 이상으로 빨라졌다. 최초의 뉴럴 네트워크 기반 임베딩 기법으로 평가받는 NPLM(Neural Probabilistic Language Model)이 2003년 제안된 이후 10년 만에 단어 수준의 임베딩 기법 Word2Vec이 발표됐다. 5년 뒤 문장 수준 임베딩 기법 ELMo가 공개됐고, 같은 해 GPT와 BERT가 등장했다. 이후 모델들에 대해서는 기회가 된다면 이 책의 2판에서 다뤄야 할 것이다. 이 책에서는 NPLM, Word2Vec, FastText, 잠재 의미 분석(LSA), GloVe, Swivel 등 6가지 단어 수준 임베딩 기법, LSA, Doc2Vec, 잠재 디리클레 할당(LDA), ELMo, BERT 등 5가지 문장 수준 임베딩 기법을 소개한다. 이외에도 다양한 임베딩 기법이 있지만 두 가지 원칙에 입각해 일부만 골랐다. 우선 성능이 안정적이고 뛰어나 현업에 바로 적용해봄직한 기법을 선택했다. 또 임베딩 기법의 발전 양상을 이해하는 데 중요한 역할을 하는 모델을 포함했다. ‘정보의 홍수’ 속에서 살아가는 독자들에게 핵심에 해당하는 지식만을 전해주고 싶었기 때문이다. 기타 임베딩 기법들은 대부분, 이 책에서 소개하는 11개 모델의 변형에 해당하기 때문에 독자 여러분이 추가로 공부하고 싶은 최신 기법이 있다면 이 책에서 가지를 쳐 나가는 식으로 학습하면 수월할 것이다.
이 책을 읽는 독자라면 논문 저자들이 공개한 코드를 내려받아 자신의 데이터로 얼마든지 직접 임베딩을 구축할 수 있을 것이다. 개별 임베딩 기법의 이론적 배경을 쉽게 설명해 놓은 영문 자료들도 차고 넘친다. 그러나 내가 아는 한 임베딩이라는 주제를 본격적으로 취급한 ‘한국어 서적’은 없다. 이것은 내가 아직 부족한 것이 많음에도 임베딩에 초점을 맞춰 책을 써 보기로 결심한 계기이기도 하다. 독자 여러분이 임베딩 기법을 이해하는 시간과 노력을 아끼는 데 이 책이 조금이라도 도움이 된다면 더 이상 바랄 것이 없다.

지은이 소개

이기창

서울대학교 국어국문학과를 졸업하고 고려대학교 대학원에서 공학 석사 학위(산업경영공학)를 취득했다. 문장 범주 분류에 큰 영향을 미치는 단어들에 높은 점수를 주는 기법에 대한 논문(SCI 저널 게재)에 1저자로 참여했다. 현재 네이버에서 대화 모델을 개발하고 있다. 주요 업무는 임베딩 학습 및 구축이다. 문장 생성(text generation)에 관심이 많다. 자연어 처리를 주제로 블로그(http://ratsgo.github.io)를 운영하고 있다. 딥러닝과 자연어 처리의 무궁무진한 가능성을 믿는다.

기술 감수자 소개

NAVER Chatbot Model

지은이가 속해 있는 팀으로, 인공지능 비서 ‘클로바(CLOVA)’의 대화 엔진을 한국어와 일본어로 서비스하고 있다. 서드파티 개발사를 대상으로 한 인공지능 플랫폼 ‘클로바 익스텐션 키트’와 ‘네이버 비즈니스 플랫폼’에 탑재된 챗봇 엔진 개발을 맡고 있다. 한국 네이버와 일본 라인(LINE)의 챗봇형 고객센터를 운영하고 있다. 핵심 멤버는 ‘동천 AI 클러스터’에 거주 중이며 데자와나 콜라, 트레비 없이는 개발하지 않는다.

목차

목차
  • 1장. 서론
  • 1.1 임베딩이란
  • 1.2 임베딩의 역할
  • 1.2.1 단어/문장 간 관련도 계산
  • 1.2.2 의미/문법 정보 함축
  • 1.2.3 전이 학습
  • 1.3 임베딩 기법의 역사와 종류
  • 1.3.1 통계 기반에서 뉴럴 네트워크 기반으로
  • 1.3.2 단어 수준에서 문장 수준으로
  • 1.3.3 룰 → 엔드투엔드 → 프리트레인/파인 튜닝
  • 1.3.4 임베딩의 종류와 성능
  • 1.4 개발 환경
  • 1.4.1 환경 소개
  • 1.4.2 AWS 구성
  • 1.4.3 코드 실행
  • 1.4.4 버그 리포트 및 Q&A
  • 1.4.5 이 책이 도움받고 있는 오픈소스들
  • 1.5 이 책이 다루는 데이터와 주요 용어
  • 1.6 이 장의 요약
  • 1.7 참고 문헌

  • 2장. 벡터가 어떻게 의미를 가지게 되는가
  • 2.1 자연어 계산과 이해
  • 2.2 어떤 단어가 많이 쓰였는가
  • 2.2.1 백오브워즈 가정
  • 2.2.2 TF-IDF
  • 2.2.3 Deep Averaging Network
  • 2.3 단어가 어떤 순서로 쓰였는가
  • 2.3.1 통계 기반 언어 모델
  • 2.3.2 뉴럴 네트워크 기반 언어 모델
  • 2.4 어떤 단어가 같이 쓰였는가
  • 2.4.1 분포 가정
  • 2.4.2 분포와 의미 (1): 형태소
  • 2.4.3 분포와 의미 (2): 품사
  • 2.4.4 점별 상호 정보량
  • 2.4.5 Word2Vec
  • 2.5 이 장의 요약
  • 2.6 참고 문헌

  • 3장. 한국어 전처리
  • 3.1 데이터 확보
  • 3.1.1 한국어 위키백과
  • 3.1.2 KorQuAD
  • 3.1.3 네이버 영화 리뷰 말뭉치
  • 3.1.4 전처리 완료된 데이터 다운로드
  • 3.2 지도 학습 기반 형태소 분석
  • 3.2.1 KoNLPy 사용법
  • 3.2.2 KoNLPy 내 분석기별 성능 차이 분석
  • 3.2.3 Khaiii 사용법
  • 3.2.4 은전한닢에 사용자 사전 추가하기
  • 3.3 비지도 학습 기반 형태소 분석
  • 3.3.1 soynlp 형태소 분석기
  • 3.3.2 구글 센텐스피스
  • 3.3.3 띄어쓰기 교정
  • 3.3.4 형태소 분석 완료된 데이터 다운로드
  • 3.4 이 장의 요약
  • 3.5 참고 문헌

  • 4장. 단어 수준 임베딩
  • 4.1 NPLM
  • 4.1.1 모델 기본 구조
  • 4.1.2 NPLM의 학습
  • 4.1.3 NPLM과 의미 정보
  • 4.2 Word2Vec
  • 4.2.1 모델 기본 구조
  • 4.2.2 학습 데이터 구축
  • 4.2.3 모델 학습
  • 4.2.4 튜토리얼
  • 4.3 FastText
  • 4.3.1 모델 기본 구조
  • 4.3.2 튜토리얼
  • 4.3.3 한글 자소와 FastText
  • 4.4 잠재 의미 분석
  • 4.4.1 PPMI 행렬
  • 4.4.2 행렬 분해로 이해하는 잠재 의미 분석
  • 4.4.3 행렬 분해로 이해하는 Word2Vec
  • 4.4.4 튜토리얼
  • 4.5 GloVe
  • 4.5.1 모델 기본 구조
  • 4.5.2 튜토리얼
  • 4.6 Swivel
  • 4.6.1 모델 기본 구조
  • 4.6.2 튜토리얼
  • 4.7 어떤 단어 임베딩을 사용할 것인가
  • 4.7.1 단어 임베딩 다운로드
  • 4.7.2 단어 유사도 평가
  • 4.7.3 단어 유추 평가
  • 4.7.4 단어 임베딩 시각화
  • 4.8 가중 임베딩
  • 4.8.1 모델 개요
  • 4.8.2 모델 구현
  • 4.8.3 튜토리얼
  • 4.9 이 장의 요약
  • 4.10 참고 문헌

  • 5장. 문장 수준 임베딩
  • 5.1 잠재 의미 분석
  • 5.2 Doc2Vec
  • 5.2.1 모델 개요
  • 5.2.2 튜토리얼
  • 5.3 잠재 디리클레 할당
  • 5.3.1 모델 개요
  • 5.3.2 아키텍처
  • 5.3.3 LDA와 깁스 샘플링
  • 5.3.4 튜토리얼
  • 5.4 ELMo
  • 5.4.1 문자 단위 컨볼루션 레이어
  • 5.4.2 양방향 LSTM, 스코어 레이어
  • 5.4.3 ELMo 레이어
  • 5.4.4 프리트레인 튜토리얼
  • 5.5 트랜스포머 네트워크
  • 5.5.1 Scaled Dot-Product Attention
  • 5.5.2 멀티헤드 어텐션
  • 5.5.3 Pointwise Feed-Forward Networks
  • 5.5.4 트랜스포머의 학습 전략
  • 5.6 BERT
  • 5.6.1 BERT, ELMo, GPT
  • 5.6.2 프리트레인 태스크와 학습 데이터 구축
  • 5.6.3 BERT 모델의 구조
  • 5.6.4 프리트레인 튜토리얼
  • 5.7 이 장의 요약
  • 5.8 참고 문헌

  • 6장. 임베딩 파인 튜닝
  • 6.1 프리트레인과 파인 튜닝
  • 6.2 분류를 위한 파이프라인 만들기
  • 6.3 단어 임베딩 활용
  • 6.3.1 네트워크 개요
  • 6.3.2 네트워크 구현
  • 6.3.3 튜토리얼
  • 6.4 ELMo 활용
  • 6.4.1 네트워크 개요
  • 6.4.2 네트워크 구현
  • 6.4.3 튜토리얼
  • 6.5 BERT 활용
  • 6.5.1 네트워크 개요
  • 6.5.2 네트워크 구현
  • 6.5.3 튜토리얼
  • 6.6 어떤 문장 임베딩을 사용할 것인가
  • 6.7 이 장의 요약
  • 6.8 참고 문헌

  • 부록

  • 부록 A. 선형대수학 기초
  • 1.1 벡터, 행렬 연산
  • 1.2 내적과 공분산
  • 1.3 내적과 사영
  • 1.4 내적과 선형변환
  • 1.5 행렬 분해 기반 차원 축소 (1): 주성분 분석(PCA)
  • 1.6 행렬 분해 기반 차원 축소 (2): 특이값 분해(SVD)

  • 부록 B. 확률론 기초
  • 2.1 확률변수와 확률 분포
  • 2.2 베이지안 확률론

  • 부록 C. 뉴럴 네트워크 기초
  • 3.1 DAG로 이해하는 뉴럴 네트워크
  • 3.2 뉴럴 네트워크는 확률모델이다
  • 3.3 최대우도추정과 학습 손실
  • 3.4 그래디언트 디센트
  • 3.5 계산 노드별 역전파
  • 3.6 CNN과 RNN

  • 부록 D. 국어학 기초
  • 4.1 통사 단위
  • 4.2 문장 유형
  • 4.3 품사
  • 4.4 상과 시제
  • 4.5 주제
  • 4.6 높임
  • 4.7 양태
  • 4.8 의미역
  • 4.9 피동
  • 4.10 사동
  • 4.11 부정

  • 참고 문헌

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안

정오표

정오표

수정 사항은 여기에서 내려받으세요.

3쇄 수정사항 (2020년 2월 출간)

[p.20 : 부록 페이지]
245
->
291

[p.217 : 2문단 1행]
쓰인다. 쓰인다.
->
쓰인다.

[p.149 : 4.6.1 모델 기본 구조]
f(xij)가 클수록 Ui,Uj 벡터 간 내적값이 실제 PMI 값과 좀 더 비슷해야 학습 손실이 줄어든다.
->
f(xij)가 클수록 Ui,Vj 벡터 간 내적값이 실제 PMI 값과 좀 더 비슷해야 학습 손실이 줄어든다.

2쇄 수정사항 (2019년 10월 출간)

https://ratsgo.github.io/embedding/notice.html

1쇄 수정사항 (2019년 9월 출간)

https://ratsgo.github.io/embedding/notice.html