본문 바로가기

AI

(28)
[NLP] BM25를 이용한 영화 추천 키워드 기반의 랭킹 알고리즘 BM25 BM25(a.k.a Okapi BM25)는 주어진 쿼리에 대해 문서와의 연관성을 평가하는 랭킹 함수로 사용되는 알고리즘으로, TF-IDF계열의 검색 알고리즘 중 SOTA인 것으로 알려져 있다. 엘라스틱서치에서도 유사도 알고리즘으로 BM25 알고리즘을 채택하였다. BM25 계산 BM25에서 점수를 계산할 때는 아래와 같은 식을 사용하여 계산한다. 키워드 $[q_1, q_2, \ldots, q_n]$을 포함하는 쿼리 $Q$가 주어질 때 문서 $D$에 대한 BM25 점수 계산을 다음과 같다. $$\begin{aligned} \text{score} (D, Q) &= \sum_{i=1}^n \text{IDF}(q_i) * \frac{f(q_i, D)*(k_1 +1)}{f(q_..
[NLP] Transformer-XL : Attentive Language Models Beyond a Fixed-Length Context 리뷰 Transformer-XL : Attentive Language Models Beyond a Fixed-Length Context Transformer-XL: Attentive Language Models Beyond a Fixed-Length Context Transformers have a potential of learning longer-term dependency, but are limited by a fixed-length context in the setting of language modeling. We propose a novel neural architecture Transformer-XL that enables learning dependency beyond a fixed length..
[NLP] BERT : Pre-training of Deep Bidirectional Transformer for Language Understanding 리뷰 BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding Introduction 언어 모델의 사전 학습(pre-training)은 많은 자연어 처리 task에서 효과적인 성능 향상을 보였습니다. sentence level task는 언어 추론(NLI)이나 paraphrasing처럼 전체 sentences를 분석하여 sentence 간의 관계를 예측합니다. token level task는 고유명사 인식이나 QA 등이 있습니다. 이처럼 많은 task에서 효과적인 사전 학습된 언어 표현을 down-stream tasks에 적용하기 위한 2가지 방법이 있습니다. 바로 Feature-based approach와 Fine-tun..
[NLP] Attention을 이용하여 한-영 번역기 만들기 Github 링크 GitHub - RealMyeong/Going_Deeper_NLP Contribute to RealMyeong/Going_Deeper_NLP development by creating an account on GitHub. github.com 사용 데이터 링크 GitHub - jungyeul/korean-parallel-corpora: Korean Parallel Corpus Korean Parallel Corpus. Contribute to jungyeul/korean-parallel-corpora development by creating an account on GitHub. github.com 1. 데이터 확인 및 전처리 import tensorflow as tf import n..
[NLP] Attention Is All You Need 리뷰 Introduction LSTM, GRU 같은 순환 신경망은 language modeling과 기계 번역 분야에서 SOTA의 자리를 굳건하게 지키고 있었습니다. Recurrent 모델은 기본적으로 input과 output sentence의 symbol위치에 따라서 계산을 고려합니다. position을 계산 step에 aligning 하면서 hidden state의 시퀀스 $h_t$를 이 전 hidden state $h_{t-1}$과 position $t$에서의 input을 이용하여 생성합니다. 이것은 본질적으로 training examples에서의 병렬화를 막고, batching across examples에서의 메모리 제한을 두게 됩니다. 이 문제를 해결하기 위해 많은 노력이 있었지만, sequenti..
[NLP] Neural Machine Translation by Jointly Learning to Align and Translate 리뷰 Abstract 기존 통계기반 기계 번역과 다르게, 신경망 기계 번역은 성능을 극대화할 수 있게 함께 조정될 수 있는 단일 신경망 구축을 목표로 합니다. 최근에 제안된 모델은 encoder-decoder 계열로 decoder가 번역을 생성할 때 사용할 수 있는 고정 길이 벡터를 encode에서 만들어냅니다. 논문에서는 이러한 고정 길이 벡터가 기본적인 encoder-decoder모델의 성능 향상을 저하한다고 추측했고, 그에 따라 모델이 자동적으로 source sentence에서 예측할 단어와 관련 있는 부분을 찾을 수 있게 하는 방법을 제안합니다. Introduction 전통적인 phrase-based 번역 시스템은 개별로 조정되는 많은 sub-components를 갖고 있었던 것과 다르게 신경망 기계 ..
[NLP] Sequence to Sequence Learning with Neural Networks 리뷰 Abstract DNN은 large labeled training set을 이용하여 학습을 가능하게 해 줬지만, sequence를 sequence로 표현하는 데는 사용되지 않았습니다. 이에 논문에서는 sequence 학습에 대한 end-to-end방법을 소개합니다. 멀티 레이어 LSTM을 사용하여 input sequence를 하나의 고정 길이 벡터로 표현하고, 다른 LSTM을 이용하여 표현된 벡터로부터 target sequence를 decode 합니다. LSTM은 긴 문장에서도 어려움 없이 동작합니다. 그리고 단어 순서에 민감하고 능동적 및 수동적 표현에 상대적으로 강건한 구와 문장 표현을 학습했습니다. 마지막으로 source sentence의 단어 순서를 뒤집는 것이 LSTM의 성능을 크게 향상하는 것..
[NLP] Distributed Representations of Words and Phrases and their Compositionality 리뷰 Abstract 이 논문은 이 전에 발표된 Efficient Estimation of Word Representations in Vector Space의 후속 논문으로 기존의 Skip-gram 모델보다 단어 벡터의 quality를 높이는 것과 동시에 훈련 시간을 줄이는 방법을 제시했습니다. 빈도수가 높은 단어를 subsampling 함으로써 훈련 시간을 줄이고, 좀 더 보편적인 단어 표현을 얻을 수 있었습니다. 또한, 계층적 소프트맥스를 대신할 수 있는 negative sampling에 대해서도 설명합니다. 단어 표현의 고질적인 문제는 관용어구를 표현할 수 없다는 것입니다. 예를 들어 'Canada'와 'Air'의미를 가지고 'Air Canada'로 합치는 것은 쉽지 않습니다. 이에 영감을 받아서, 텍스..