자연어 처리 | 중의성 해소가 중요 |
분석 단계 | 형태소 분석 , 구분분석, 의미분석, 담화분석 |
구분 분석 | 어휘적 중의성과 구조적 중의성 |
의미 분석 | 단어 중의성 해소 - 단어의 현재 문장에서의 의미 분석 의미역 결정 - 서술어와 관계있는 논항의 역할을 결정 |
담화 분석 | |
자연어 처리 응용 | 기계번역, 문서요약, 질의응답, 정보추출(인식-관계추출,이벤트추출) 대화시스템 감성분석, 문서분류, Text style transfer(구어체를 문어처로 변경), text simplification NLI(2개의 의미의 동일/상이 여부) |
최근 동향 | 응용 분야에 대한 태스크가 관심 분야로 부각 End-to-end model로 발전 : 자연어 처리의 중간단계 과정을 딥러닝이 해결 - 소스언어에서 타겟 텍스트를 생성해 주는 형태로 발전 - 과거의 구문분석/의미분석 등의 단계를 딥러닝이 해결 |
고전적 방식과 차이 | 고전적 방식의 자연어 처리와 최근 기술의 방식은 차이가 발생 |
자연어 처리 특징 | 중의성 : 감기(명사), 감다(동사) 고차원 : 몇 만 차원도 발생 seq labeling tasks : 단어별 레이블 분류 작업 - 대표 모델 : HMM -> CRF(conditional random fields) -> RNN -> BERT 기반 모델 로 발전 seq-to-seq tasks : 입력이 단어의 열, 출력도 단어의 열 - 1:다, 다:1, 다:다 ( seq. labeling tasks 는 1:1 매핑) - 대표 응용 : 기계 번역 . Rule -> Statistical Machine Translation -> RNN |
텍스트 표현 방식 | one-hot representation (symbolic) : 고차원 예) [ 0000010000000000] 차원이 높고, 유사도가 0 이 되는 문제 |
워드임베딩 word2vec | 입력은 one-hot representation 앞뒤의 2단어를 보고서 가운데 단어를 생성 비슷한 벡터값은 모이도록 계산 고차원 문제를 차원 축소해서 서로 다른 단어의 유사도 여부를 확인해 주는 방식 |
Large voca | Many Rare Words 자주 등장하는 단어와 100번 이하 또는 10번 이하에서 corpus 에서 존재 자주 등장 단어에 대한 워드 임베딩 학습이 쉬우나 빈도가 낮은 단어에 대한 워드 임베딩 학습에 문제 발생 |
Large voca 이유 | 형태소(하다, 하였다, 했다, 했니, 할까.... ) 의 변형 - 해결 : 형태소 분석을 통해서 단어 분리 복합명사 - 대학생선교회(대학생, 선교회, 대학 생선 교회) 사람 이름 - 많은 단어들이 발생 ㅇ 해결 : 긴 단어를 짧은 단어로 잘라 내어야 함 |
BPE | Byte Pair Encoding - 단위로 잘라서 처리하는 방법, 단어를 서브워드로 분리해서 처리 -> large voca 문제 해결 ㅇ 가장 많이 존재하는 character 끼리 묶어 내는 방식 - 3만개 단어 사전으로 관리 |
BPE 의 장점 | 대용량 데이터로 부터 자동으로 학습 가능 사전을 만들때 자주 등장하는 단어는 하나의 단어로 구분 텍스트 사이즈를 작게 하면서 효율적으로 표현 Trade-off : BPE 사전의 사이즈에 따라 인코딩의 길이 의존 - 사전의 사이즈가 커지면 디코딩 속도에 영향을 줌(3만개 사전이 일반적) |
BPE의 적용 | 한국어 어절에 BPE 직접 적용 가능 : 꽤 잘 동작 한국어 어절에 적용 시 생길 수 있는 문제점은 발생 |
BPE 적용 방법/유형 | 바로 적용 한국어 형태소 분리 후 BPE 적용 형태소 분석 + 품사 제거 + BPE 적용 |
RNN | 변하는 단어의 길이에 대응한 방식으로 RNN이 해결책으로 대두 |
RNN 구성 | 이전 유닛의 히든유닛을 입력으로 받아서 처리 - 입력 : hidden unit , input unit |
양방향 RNN | 양쪽 방향의 히든 유닛 활용 : 왼쪽과 오른쪽의 문맥을 둘 다 볼 수 있음 |
Vanishing gradient | 거리가 먼 위치의 유닛 단어에서의 영향력의 감소 문제 |
LSTM | 게이트 추가를 통해서 보완 게이트 자체도 하나의 뉴럴 네트워크 |
GRU | 속도 향상 |
RNN 만 이용시 문제 해소 | 앞 단어의 히든 유닛만 보는 한계 - 레이블간의 의존성 추가 : CRF 모델 도입 -> RNN + CRF |
LSTM + CRF | seq labeling에 많이 사용 |
BERT + CRF | 개선 모델로 출현 |
인코더-디코더 모델 | 하나의 벡터로 시작해서 디코더도 출력 단어열을 분류하면서 번역 동작 단점 : 입력 문장이 길어지면 하나의 벡터로 표현 불가로 번역 성능 저하 -> 해소 : 어텐션 메커니즘 출현 |
어텐션 메커니즘 | 인코더의 히든 스테이트와 이전 단계 히든스테이트를 통해 번역 성능 확보 |
Transformer - 가장 우수 성능 |
self attention - 기존 RNN을 어텐션으로 대체 - 기존 RNN에서는 앞 단어가 뒤 단어 영향을 위해서 히든 스테이트 거쳐야 했으며 vanishing gradient 문제 -- 게이트 추가로 -- 이것도 문제 발행 -> 이걸 고친 것이 self attention 비슷한 의미의 단어라면 멀리 있든 가깝든 weighted sum을 통해서 멀리 떨어진 단어 가져옴 - RNN의 정보 손실을 극복한 모델 - 단점 : 거리 정보와 상대 위치 정보 모델링 약점 -> position 정보 추가 모델링으로 향상 추구 멀티-헤드 셀프-어텐션 - 여러 개의 헤드 사용 - 문맥에 따른 해석에 도움 : 기존 워드임베딩은 단순 벡터로만 제공했으나 문맥을 제공함 인코더와 디코더, 크로스 어텐션 : 3개 인코더용 셀프 어텐션 디코더용 셀프 어텐션 크로스 어텐션은 그대로 존재(인코더-디코더 모델에 원래 있던 어텐션) 스태킹 가능 : 6개 블럭 포지셔널 인코딩 - 입력 임베딩과 더해서 위치 정보도 임베딩 가능 |
BERT - 높은 분류 성능 |
Transformer의 인코더를 떼어 와서 사전 학습 - multi-head self attention ' 양방향 사전 학습 수행이 특징 - masked lang model : 주변 문맥을 보고 mask 단어 맞추기 2개 태스크로 사전 학습 - 연속 여부 예측, masked LM 예 - 하나의 문장이 동일한가 - 시퀀스 레이블링 태스크 처리 - 시작과 끝 위치 찾기 - 단일 문장 해석 응용 - 분류에 높은 성능 |
OpenAI GPT - 생성에 높은 성능 |
transformer에 decoder를 사용한 방식 - 디코더에서 크로스 어텐션을 뺀 것 BERT와 동일한데 현재 토큰에서는 앞 것만 보도록 제한한 모델 |
BERT 이후 최근 동향 | Transfer-XL : 기존 512 토큰 처리를 확장, transformer+RNN 모델 - 현재 단어에서는 앞에 단어만 - 앞에 쪼갠 걸 메모리 했다가 뒤에서 어텐션을 구할 때 가져다 처리해서 확장 - 512만 볼 수 있던 걸 확장 SpanBERT - 여러 토큰으로 마스크를 씌우고 토큰별 예측 - span 과 포지셔널 임베딩을 추가해서 학습 XLNet - Transfer-XL에다 permutation LM(예측 순서를 바꾸어서 적용 : X2-X4-X3-X1) RoBERTa - BERT 학습 시 잘못 학습하던 것을 학습을 잘만 하더라도 성능이 높음 - dynamic masking - 하나의 sentence만 적용 - large batch 적용 ELECTRA - 사전 학습과 실제 학습과의 차이를 제거하는 모델 - Generator-Discriminator 적용 : 바뀐 단어를 확인 - 입력에 마스크가 없기 때문에 빠르게 학습 StructBERT - 토큰 순서를 셔플링해서 입력하는 태스크 추가 - 연속 문장 뿐만 아니라 떨어진 문장(랜덤) , 역순 3가지를 활용한 학습 LUKE - 링크가 걸린 단어를 추가로 입력하면서 엔티티로 관리 - 엔티티 정보를 BERT와 함께 추가 DistilBERT - 속도 개선을 위해 기존 BERT의 knowledge를 작은 모델로 학습(확률 분포) TinyBERT - 성능 개선 목표 student model 적용 XLM : cross-language - 병령 corpus 를 이용해서 마스킹 - 단일 언어 뿐만 아니라 다른 언어의 문맥도 분석 MASS - 인코더와 디코더를 모두 사전 학습 : 연속된 마스크 예측 - 기계번역과 문서요약에서 성능 발휘 BART - 인코더와 디코더를 모두 사전 학습 : 랜덤한 마스크 예측 T5 - 사전학습도 하고 mult-task 처리도 진행 DeFormer - question 과 passage를 따로 처리하고, 나중에 합쳐서 성능을 개선 Reformer - 긴 문장 처리에 대해 유사도 기반으로 어텐션 스코어 산출 - 로컬리티 센서티브 해싱 기술로 처리 Longformer - 512 이상의 긴 문장의 self attention 수행 목표 Big bird - 긴 문장 처리 수행 위해 sliding wjrdyd PoolingFormer - 긴 문장 처리 위해 sliding window와 pooling 을 활용 Long-Short Range Attention - self attention 시간 감소 방법 Synthetic attention - 예측 방식으로 self attention 대체 등 decoder 레이어를 낮추고 encoder 레이어를 높여서 번역 속도 높이기 Compressed Attention Network - cross attention과 self attention을 하나로 처리 ByT5 - char 단위로 인코딩 Charformer - char 단위로 인코딩 |
Vision분야 | ViT - 하나의 단어로 쪼개기 ->임베딩-> 트랜스포머-히든 스테이트 분류 ViLT - 한 쪽은 어드 임베딩, 한쪽은 linear projection of flattened patches |
'AI metacog' 카테고리의 다른 글
LLM 파인튜닝과 파라미터 수 (0) | 2025.03.09 |
---|---|
우수한 LLM을 파인튜닝 이유 (0) | 2025.03.09 |
LLM의 개념과 작동 원리 (0) | 2025.03.09 |
추천 시스템과 동향 (0) | 2021.08.10 |
computer vision 최근 연구 동향 (0) | 2021.08.10 |