Bert 11

Sentence-BERT: Sentence Embeddings using Siamese BERT-Networks (EMNLP'19)

Contents Abstract BERT, RoBERTa 등의 모델이 STS(Semantic Textual Similarity)과 같은 분야에서 우수한 성능을 발휘하고 있다. 그러나, 두 문장 자체가 전부다 임베딩에 들어가고 계산되어야 하기 때문에 Computational Overhead가 발생한다. 해당 문제를 해결하고자 Sentence-BERT (SBERT)를 제안한다. BERT를 사용하여 문장 간의 유사도를 계산하면 65 시간이 소요되는 것에 비해, SBERT를 사용하면 5초 만에 이를 가능하게 한다. Introduction Siamese과 Triplet Networks를 활용한 BERT 즉, Sentence-BERT를 통해 Large-Scale의 입력 데이터에서도 문장 간의 유사도 비교(Seman..

BERT4Rec: Sequential Recommendation with Bidirectional Encoder Representations from Transformer (CIKM'19)

Contents BERT4Rec은 모델명 그대로 BERT를 이용한 Recommendation 모델이다. Sequential 데이터를 다룰 때 주로 사용하는 기법으로, SASRec 다음으로 나온 모델이라고 볼 수 있다. SASRec과 다른 점은 Bidirectional 하다는 점과 Masking 기법을 사용한다는 점이다. Introduction 기존 Sequence 데이터를 다루는 추천 시스템 연구에서는 주로 Recurrent Neural Network (RNN) 과 같은 기법을 사용하여 Encoding한다. 그러나 RNN 기법은 왼쪽에서 오른쪽으로, 즉, 입력으로 들어오는 제품의 순서만을 고려하기 때문에 left-to-right 방식(Undirectional)은 사용자의 표현(Representation)..

BERTopic: Neural topic modeling with a class-based TF-IDF procedure

Contents Abstract 토픽 모델링은 수집된 문서 내에서 잠재되어 있는 토픽을 추출하는 기법이다. 본 연구에서는 Clustering task를 기반으로 토픽을 추출하는 기법인 BERTopic 기법을 제안한다. BERTopic은 class-based TF-IDF 기법을 통해 토픽을 추출한다. 구체적으로 사전 학습된 트랜스포머 모델을 사용해 문서 임베딩을 생성한 후, class based TF-IDF 기법을 사용하여 토픽 representation을 생성한다. Introduction 전통적인 토픽 모델링 기법으로는 LDA(Latent Dirichlet Allocation)과 NMF(Non-Negative Matrix Factorization) 기법이 있다. 그러나 이와 같은 기법은 단어 간의 관계(..

[Pytorch] Transformer 구현하기

Contents Transformer는 자연어 처리(Natural Language Processing, NLP) 분야에서 성능이 우수한 것으로 검증된 대표적인 Self-Attention 모델이다. 기존 Sequential Based 모델인 RNN, LSTM, GRU 등과 같은 모델에 비해 매우 우수한 성능을 보여주고 있으며, BERT, GPT 등의 사전 학습 기반 모델이 Transformer의 골조를 활용하였다. 이번 글에서는 Transformer의 Encoder와 Decoder가 어떻게 구성되어 있는지 짧은 코드를 통해 알아보자. Import Package Transformer는 HuggingFace 에서 지원하는 transformers 패키지와 PyTorch를 이용하여 구현할 것이다. 따라서, 구현에..

Python/Pytorch 2022.12.20

[Transformers] Bert Tokenizer 알아보기

Contents Transformers 패키지는 자연어처리(NLP) 분야에서 엄청 많이 사용되는 패키지 중 하나이다. BERT 등과 같은 모델을 구축할 때 Transformers 패키지를 사용하면 매우 편하게 구축할 수 있다. 이번 글에서는 Transformers에 존재하는 BERT에서 사용하는 tokenizer 함수를 뜯어본다. BertTokenizer BertTokenizer는 PreTrainedTokenizer를 상속받는다. PreTranedTokenizer는 나중에 알아보도록하고, 단순히 사전 학습된 tokenizer 정도로 이해하면 된다. BertTokenizer 내에는 vocab_file, do_lower_case, unk_token 등 다양한 파라미터들이 존재하는데, 중요한 파라미터 위주로 ..

Python/Transformers 2022.12.04

[Pytorch] BERT로 감성 분석하기. 기초 설명까지

Contents BERT(Bidirectional Encoder Representation from Transformers)는 Transformer를 기반으로 양방향 학습을 하는 사전학습 모델이다. 사전학습 모델이란 미리 사전에 많은 양의 코퍼스를 학습하고, 그 후 파인튜닝(Fine-tuning)을 통해 본인이 사용하고자 하는 도메인에 적용하는 모델이다. Transformer가 나오기 이전에도 Bi-LSTM 등과 같이 양방향 학습 모델이 존재했지만, 사전 학습 모델은 아니었으며, BERT는 Self-supervised Learning 중 하나인 Making 기법을 사용하여 학습의 성능을 향상시키고, 지금까지도 많이 사용된다. 이번 글에서는 BERT를 사용하는 방법에 대해서 알아보고, 각 코드가 어떤 의미..

Python/Pytorch 2022.12.03

Exploiting BERT for End-to-End Aspect-based Sentiment Analysis (2019)

Contents 본 논문은 2019년 EMNLP에서 발표한 논문이다. E2E-ABSA를 하기 위한 BERT 모델을 제안하였다. ABSA는 Aspect Based Sentiment Analysis 를 의미한다. 기존의 Sentiment Analysis는 문장 전체를 살펴보고 긍정인지 부정인지 분류하는 형태로 진행되었다. 그러나, 이는 문장 내에 다중 속성(Aspect)이 내포되어 있더라도 하나의 속성 만을 도출한다는 단점이 존재한다. 예를 들어, "이 식당은 음식은 맛있지만, 서비스는 별로다." 라는 리뷰는 음식의 맛에 대한 속성은 긍정을 나타내고, 서비스에 대한 속성은 부정을 나타낸다. 그러나, 기존 기법을 사용하는 경우 음식, 서비스에 대한 속성을 모두 긍정 혹은 부정으로 판별한다는 것이다. 본 논문에..

[NLP] BERT의 종류

Contents BERT는 Transformer의 Encoder 부분을 사용한 모델이다. 현재까지도 BERT의 파생 모델이 많이 제안되고 있으며, 우수한 모델로써 인정받고 있다. BERT에는 가장 기본적인 BERT와 RoBERTa, ALBERT 등 다양한 파생 모델이 존재하는데, 각각의 모델들이 어떠한 차이점을 가지고 있는지 간략하게 알아보자. BERT BERT는 2018년 구글에서 기계 번역을 위해 제안한 모델이며 "BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding"에서 처음 발표하였다. 이는 Supervised Learning 뿐만 아니라 Self-Supervised Learning이 가능하다고 언급하고 있..

[CS224N] Subword Model - BPE, Wordpiece

12강에서는 Subword Models에 대해서 다룬다. 이전의 언어모델에서는 형태론을 통해서 각 단어를 띄어쓰기 기반으로 분류해 단어에 대해 분석을 진행했다. 하지만 합성어의 경우 띄어쓰기가 존재하는 합성어도 있고 아닌 경우도 있으며, 띄어쓰기가 없는 언어도 존재하기 때문에 문제에 직면하게 된다. 모든 단어를 커버할 수 없기 때문에 단어기반이 아닌 Character 기반의 모델이 등장했다. Character level 모델은 Unknown word도 파악이 가능하며, Conneted Language 분석은 당연히 가능하며, Character n-gram으로 의미를 추출하는 경우로 주로 사용된다. Byte Pair Encoding (BPE) 수부지 피부 고민이라는 단어를 예측하려면 '수부지'라는 단어는 ..

[NLP] Lexical Analysis

Lexical Analysis Lexical Analysis(어휘 분석) 이라함은 말 그대로 단어수준 토큰 수준으로 의미를 보존할 수 있는 최소한의 수준에서 분석을 하는 것을 의미한다. 어떠한 일정한 순서가 있는 characters 들의 조합을 tokens으로 변화하는 것을 의미한다. 이 tokens은 의미를 가지고 있는 character string이다. NLP에서는 morpheme(형태소)가 가장 기본적인 유닛이 되고, text mining에서는 단어 관점에서도 tokens을 사용하기도 한다. process of lexical analysis - Tokenizing - Part-of-Speech (POS) tagging - Additional analysis : NER, noun phrase reco..

반응형