ML | AI
-
Odds(오즈) 실패 비율(확률) 대비 성공 비율(확률)을 의미한다. 수식으로 나타내면 다음과 같다. $odds = \frac{p}{1-p}$ 오즈를 활용하면 [0, 1] 사이의 확률 값을 [0, ∞]로 매핑할 수 있다. 확률이 0.5 일 때 오즈 값은 1이기 때문에, 1 값을 경계로 성공, 실패 여부 등을 표현할 수 있다. Logit(로짓) 오즈에 로그를 취한 것이다. 수식으로 나타내면 다음과 같다. $L = ln \frac {p}{1-p}$ 로짓을 활용하면 확률 값을 [-∞, ∞]로 매핑할 수 있다. 확률이 0.5일 때 로짓 값은 0이기 때문에, 0 값을 경계로 성공, 실패 여부 등을 표현할 수 있다.
[짧] Odds(오즈)와 Logit(로짓) 알아보기Odds(오즈) 실패 비율(확률) 대비 성공 비율(확률)을 의미한다. 수식으로 나타내면 다음과 같다. $odds = \frac{p}{1-p}$ 오즈를 활용하면 [0, 1] 사이의 확률 값을 [0, ∞]로 매핑할 수 있다. 확률이 0.5 일 때 오즈 값은 1이기 때문에, 1 값을 경계로 성공, 실패 여부 등을 표현할 수 있다. Logit(로짓) 오즈에 로그를 취한 것이다. 수식으로 나타내면 다음과 같다. $L = ln \frac {p}{1-p}$ 로짓을 활용하면 확률 값을 [-∞, ∞]로 매핑할 수 있다. 확률이 0.5일 때 로짓 값은 0이기 때문에, 0 값을 경계로 성공, 실패 여부 등을 표현할 수 있다.
2022.08.19 -
Concept 대규모 데이터 환경에선, 추천에 앞서 후보군을 결정하는 Matching 과정이 필요하다. Matching엔 아이템 기반 CF가 많이 활용되지만, 이 경우 동적으로 변하는 유저의 취향을 반영하기가 힘들다. 이러한 Matching에 Sequential 추천을 활용하면 유저의 취향을 더 잘 파악할 수가 있다. Sequential 추천 시나리오에선, 하나의 세션(short-term)에도 여러 목적이 있을 수 있다는 점과 유저에 따라 긴 시간(long-term) 동안 유지되는 선호도가 있다는 점을 고려하는 것이 중요하다. SDM은 각 세션 마다 여러 목적이 있을 수 있다는 점을 고려해 Single Head Attention 대신, Multi Head Attention를 도입했다. 또한 긴 시간 동안..
[논문 정리] SDM: Sequential Deep Matching Model for Online Large-scaleRecommender SystemConcept 대규모 데이터 환경에선, 추천에 앞서 후보군을 결정하는 Matching 과정이 필요하다. Matching엔 아이템 기반 CF가 많이 활용되지만, 이 경우 동적으로 변하는 유저의 취향을 반영하기가 힘들다. 이러한 Matching에 Sequential 추천을 활용하면 유저의 취향을 더 잘 파악할 수가 있다. Sequential 추천 시나리오에선, 하나의 세션(short-term)에도 여러 목적이 있을 수 있다는 점과 유저에 따라 긴 시간(long-term) 동안 유지되는 선호도가 있다는 점을 고려하는 것이 중요하다. SDM은 각 세션 마다 여러 목적이 있을 수 있다는 점을 고려해 Single Head Attention 대신, Multi Head Attention를 도입했다. 또한 긴 시간 동안..
2022.08.18 -
Concept Ensemble(앙상블) 기법을 활용하면 모델의 성능을 향상 시킬 수 있다. 하지만 앙상블에 사용할 모델을 추가로 저장하고, 또 추론 시 불러와야 하기 때문에 실행이 오래 걸린다는 문제점이 있다. 이때, Knowledge Distiliation(KD)으로 단일 모델을 구성하면 일종의 앙상블 효과를 얻으면서, 동시에 언급한 단점들을 해결할 수 있다. KD는 일반적으로 마지막 레이어의 소프트 라벨만 활용해서 진행된다. 하지만 MEAL은 중간 레이어의 Feature Vector 까지 유사하도록 만들기 위해, KD를 레이어 중간 마다 진행하면서 동시에 Adversarial Loss 까지 도입한다. 이를 Block 단위로 처리할 수 있도록 Adaptive Pooling을 도입했고, 이는 다양한 구조..
[논문 정리] MEAL: Multi-Model Ensemble via Adversarial LearningConcept Ensemble(앙상블) 기법을 활용하면 모델의 성능을 향상 시킬 수 있다. 하지만 앙상블에 사용할 모델을 추가로 저장하고, 또 추론 시 불러와야 하기 때문에 실행이 오래 걸린다는 문제점이 있다. 이때, Knowledge Distiliation(KD)으로 단일 모델을 구성하면 일종의 앙상블 효과를 얻으면서, 동시에 언급한 단점들을 해결할 수 있다. KD는 일반적으로 마지막 레이어의 소프트 라벨만 활용해서 진행된다. 하지만 MEAL은 중간 레이어의 Feature Vector 까지 유사하도록 만들기 위해, KD를 레이어 중간 마다 진행하면서 동시에 Adversarial Loss 까지 도입한다. 이를 Block 단위로 처리할 수 있도록 Adaptive Pooling을 도입했고, 이는 다양한 구조..
2022.07.16 -
Combining(Cross columns) columns를 결합해서 새로운 column 생성 조합에 사용되는 column에 unique한 값이 너무 많다면 단순히 경우의 수 나열과 똑같아져 의미가 없어짐 따라서 unique한 값이 적은 column끼리 묶어서 새로운 columns를 만들도록 하자 → 새로운 특성을 발견 가능 wide&deep에서 활용 Categorifying 0 ~ n - 1까지의 category로 변경 latent vector를 얻는 딥러닝에서 많이 활용 기존 column에 hashing으로 str 값이 입력된 경우 category(int)로 변경하면 데이터를 줄일 수 있음 자주 등장하지 않는 category를 그대로 사용한다면 overfitting이 발생! 자주 등장하지 않는 cat..
Feature Engineering 방법과 효과Combining(Cross columns) columns를 결합해서 새로운 column 생성 조합에 사용되는 column에 unique한 값이 너무 많다면 단순히 경우의 수 나열과 똑같아져 의미가 없어짐 따라서 unique한 값이 적은 column끼리 묶어서 새로운 columns를 만들도록 하자 → 새로운 특성을 발견 가능 wide&deep에서 활용 Categorifying 0 ~ n - 1까지의 category로 변경 latent vector를 얻는 딥러닝에서 많이 활용 기존 column에 hashing으로 str 값이 입력된 경우 category(int)로 변경하면 데이터를 줄일 수 있음 자주 등장하지 않는 category를 그대로 사용한다면 overfitting이 발생! 자주 등장하지 않는 cat..
2022.07.11 -
Abstract 대규모인 유튜브 환경에서 추천을 진행하기 위해 2 - stage information retrieval을 이용하여 추천 시스템을 구성하였다. 이때, 각 과정에 딥러닝을 활용했으며 2 - stage는 각각 다음과 같다. candidates generation 과정 ranking 과정 Introduction 유튜브에선 많은 유저(10억 단위)들에게 실시간으로 업데이트 되는 영상을 추천해야 하며, 이는 다음의 3가지 측면에서 challenging하다. Scale : 기존 추천 방식(Matrix Factorization)은 유저 - 콘텐츠가 매우 많은 유튜브에서 사용할 수 없다. 유튜브 추천 시스템은 실제 서빙 환경인 분산 처리 환경에서 잘 작동해야 한다. Freshness : 새로 업로드된 영..
[논문 정리] Deep Neural Networks for YouTube RecommendationsAbstract 대규모인 유튜브 환경에서 추천을 진행하기 위해 2 - stage information retrieval을 이용하여 추천 시스템을 구성하였다. 이때, 각 과정에 딥러닝을 활용했으며 2 - stage는 각각 다음과 같다. candidates generation 과정 ranking 과정 Introduction 유튜브에선 많은 유저(10억 단위)들에게 실시간으로 업데이트 되는 영상을 추천해야 하며, 이는 다음의 3가지 측면에서 challenging하다. Scale : 기존 추천 방식(Matrix Factorization)은 유저 - 콘텐츠가 매우 많은 유튜브에서 사용할 수 없다. 유튜브 추천 시스템은 실제 서빙 환경인 분산 처리 환경에서 잘 작동해야 한다. Freshness : 새로 업로드된 영..
2022.06.24 -
Intro Attention Is All You Need 논문에선 $Q$와 $K$ 벡터의 유사도를 0 ~ 1 사이의 확률 값으로 정규화하기 위해서 Dot-product Attention를 사용한다. 이때, Dot-product Attention을 그대로 사용하지 않고 $K$벡터의 차원 값인 $d_k$를 활용하여 scaling된 형태로 사용한다. $$Attention(Q, K, V) = softmax(\frac{QK^{T}}{\sqrt d_k})V$$ scaling의 근거는 논문에서 언급되며 다음과 같다. $d_k$가 커지면 $QK^{T}$ 값이 커진다. $QK^{T}$ 값이 커지면 softmax 함수의 gradient vanishing이 발생한다. scaling을 통해서 gradient vanishing..
Dot-product Attention과 Scaling 필요성Intro Attention Is All You Need 논문에선 $Q$와 $K$ 벡터의 유사도를 0 ~ 1 사이의 확률 값으로 정규화하기 위해서 Dot-product Attention를 사용한다. 이때, Dot-product Attention을 그대로 사용하지 않고 $K$벡터의 차원 값인 $d_k$를 활용하여 scaling된 형태로 사용한다. $$Attention(Q, K, V) = softmax(\frac{QK^{T}}{\sqrt d_k})V$$ scaling의 근거는 논문에서 언급되며 다음과 같다. $d_k$가 커지면 $QK^{T}$ 값이 커진다. $QK^{T}$ 값이 커지면 softmax 함수의 gradient vanishing이 발생한다. scaling을 통해서 gradient vanishing..
2022.06.14 -
이유? 딥러닝은 Loss function의 최적해를 탐색하기 위해서 Gradient Descent(경사 하강법)를 활용한다. 경사 하강법은 반복적으로 $\theta$를 $\theta+\Delta\theta$ 로 수정하며 최적해를 얻는 방법이고, Loss 함수의 1차 테일러 근사식이기도 하다. 근사식의 오차를 줄이기 위해선 Learning Rate(학습률)이 작아야 하고, 이것이 바로 학습률을 작은 값으로 설정하는 이유다. 수식으로 확인하기 $\theta+\Delta\theta$ 에서의 Loss는 다음과 같이 표현할 수 있다. $$L(\theta + \Delta\theta)$$ 테일러 전개의 기본 형태는 $f(x) = \sum_{n=0}^\infty \frac{f^{(n)}(a)}{n!} (x-a)^n$ ..
Gradient Descent(경사 하강법)에서 Learning Rate(학습률)를 작게 설정하는 이유이유? 딥러닝은 Loss function의 최적해를 탐색하기 위해서 Gradient Descent(경사 하강법)를 활용한다. 경사 하강법은 반복적으로 $\theta$를 $\theta+\Delta\theta$ 로 수정하며 최적해를 얻는 방법이고, Loss 함수의 1차 테일러 근사식이기도 하다. 근사식의 오차를 줄이기 위해선 Learning Rate(학습률)이 작아야 하고, 이것이 바로 학습률을 작은 값으로 설정하는 이유다. 수식으로 확인하기 $\theta+\Delta\theta$ 에서의 Loss는 다음과 같이 표현할 수 있다. $$L(\theta + \Delta\theta)$$ 테일러 전개의 기본 형태는 $f(x) = \sum_{n=0}^\infty \frac{f^{(n)}(a)}{n!} (x-a)^n$ ..
2022.04.26 -
1. 등장 배경 기존 collaborative filtering(협업 필터링)에서 활용되는 Matrix Factorization은 유저 - 아이템 행렬을 각각 유저, 아이템 임베딩으로 분해한 뒤 이를 해당 유저와 아이템의 look-up table로 삼는다. 이 경우 유저 - 아이템 행렬의 예측 값을 dot product로 구할 수 있으며 $M{\times}N$ 행렬을 $M{\times}K$, $K{\times}N$로 분해할 수 있다. 하지만 dot product는 linear한 연산이면서 동시에 모든 차원의 가중치를 동일하게 생각하기 때문에 복잡한 유저 - 아이템 행렬을 표현하기엔 충분하지 않다. 실제로 dot product가 활용될 latent space의 상황을 가정해보자. $u_4$의 경우 유저 -..
[논문 리뷰] Neural Collaborative Filtering1. 등장 배경 기존 collaborative filtering(협업 필터링)에서 활용되는 Matrix Factorization은 유저 - 아이템 행렬을 각각 유저, 아이템 임베딩으로 분해한 뒤 이를 해당 유저와 아이템의 look-up table로 삼는다. 이 경우 유저 - 아이템 행렬의 예측 값을 dot product로 구할 수 있으며 $M{\times}N$ 행렬을 $M{\times}K$, $K{\times}N$로 분해할 수 있다. 하지만 dot product는 linear한 연산이면서 동시에 모든 차원의 가중치를 동일하게 생각하기 때문에 복잡한 유저 - 아이템 행렬을 표현하기엔 충분하지 않다. 실제로 dot product가 활용될 latent space의 상황을 가정해보자. $u_4$의 경우 유저 -..
2022.04.14 -
목적 함수란? 머신러닝 모델의 평가지표는 손실(Loss)함수, 비용(Cost)함수, 목적(Objective) 함수 등 다양한 이름으로 불림 손실, 비용, 목적 함수의 명칭에 대해선 정확한 정의는 없지만 일반적으로 다음과 같이 생각하면 편함 A loss function is a part of a cost function which is a type of an objective function. 출처 결국 머신러닝 모델은 손실, 비용 함수는 줄이려고(minimise) 하며 목적 함수는 최적화(optimise)하려고 함 최적화하고 싶은 목적 함수는 최적의 모델을 확률 관점에서 볼 지 error 최소화 관점에서 볼 지에 따라서 다름 확률 관점에선 목적 함수를 최대화하고 싶어하고(Maximum Likelihood..
목적 함수(Objective function)와 최적화(Optimization)목적 함수란? 머신러닝 모델의 평가지표는 손실(Loss)함수, 비용(Cost)함수, 목적(Objective) 함수 등 다양한 이름으로 불림 손실, 비용, 목적 함수의 명칭에 대해선 정확한 정의는 없지만 일반적으로 다음과 같이 생각하면 편함 A loss function is a part of a cost function which is a type of an objective function. 출처 결국 머신러닝 모델은 손실, 비용 함수는 줄이려고(minimise) 하며 목적 함수는 최적화(optimise)하려고 함 최적화하고 싶은 목적 함수는 최적의 모델을 확률 관점에서 볼 지 error 최소화 관점에서 볼 지에 따라서 다름 확률 관점에선 목적 함수를 최대화하고 싶어하고(Maximum Likelihood..
2022.04.10 -
1. 등장 배경 기존 BERT(Cross-encoder)는 STS Task를 해결할 때 두 문장 사이 [SEP] 토큰을 추가해 한번에 입력 처리 이 방법은 두 입력 문장의 self-attention을 통해 높은 성능 기록 하지만 두 문장 사이만의 관계를 확인하는 기존 BERT로 Semantic-Search나 Clustering에 활용하는 것은 매우 비효율적(massive computational overhead) 이를 해결하기 위해서 Siamese/Triplet 구조를 활용해 sentence-embedding을 얻을 수 있는 SBERT(bi-encoder)를 제안 SBERT는 BERT에 비해서 낮은 성능을 갖지만 적절한 dense-vector space(sentence-embedding)을 얻기 위해 많..
[논문 리뷰] Augmented SBERT: Data Augmentation Method for Improving Bi-Encoders for Pairwise Sentence Scoring Tasks1. 등장 배경 기존 BERT(Cross-encoder)는 STS Task를 해결할 때 두 문장 사이 [SEP] 토큰을 추가해 한번에 입력 처리 이 방법은 두 입력 문장의 self-attention을 통해 높은 성능 기록 하지만 두 문장 사이만의 관계를 확인하는 기존 BERT로 Semantic-Search나 Clustering에 활용하는 것은 매우 비효율적(massive computational overhead) 이를 해결하기 위해서 Siamese/Triplet 구조를 활용해 sentence-embedding을 얻을 수 있는 SBERT(bi-encoder)를 제안 SBERT는 BERT에 비해서 낮은 성능을 갖지만 적절한 dense-vector space(sentence-embedding)을 얻기 위해 많..
2022.03.24 -
1. 등장 배경 STS Task에서 높은 성능을 얻은 BERT는 문장 사이 유사도를 비교하기 위해서 문장들을 [SEP] 토큰으로 분리해 한번에 입력으로 받아 처리 이 방식의 경우 두 입력 문장 사이 유사도를 높은 정확도로 얻을 수 있지만 한 문장과 가장 유사한 문장을 찾는 것은 매우 비효율적(massive computational overhead) 모든 경우의 수를 모두 차례로 대입해봐야지만 알 수 있음 한 문장과 유사한 다른 문장들을 찾는 것은 semantic-search, clustering 와 같은 분야에서 다양하게 활용되기 때문에 매우 중요. 이를 효율적으로 해결하기 위해선 정확한 sentence-embeddings를 얻는 것이 관건 sentence-embedding를 얻기 위해서 기존 BERT에..
[논문 리뷰] Sentence-BERT : Sentence Embeddings using Siamese BERT-Networks1. 등장 배경 STS Task에서 높은 성능을 얻은 BERT는 문장 사이 유사도를 비교하기 위해서 문장들을 [SEP] 토큰으로 분리해 한번에 입력으로 받아 처리 이 방식의 경우 두 입력 문장 사이 유사도를 높은 정확도로 얻을 수 있지만 한 문장과 가장 유사한 문장을 찾는 것은 매우 비효율적(massive computational overhead) 모든 경우의 수를 모두 차례로 대입해봐야지만 알 수 있음 한 문장과 유사한 다른 문장들을 찾는 것은 semantic-search, clustering 와 같은 분야에서 다양하게 활용되기 때문에 매우 중요. 이를 효율적으로 해결하기 위해선 정확한 sentence-embeddings를 얻는 것이 관건 sentence-embedding를 얻기 위해서 기존 BERT에..
2022.03.18 -
1. 등장 배경 기존 sequence transduction(machine translation)에서 활용된 seq2seq 모델은 순차적으로 입력(sequence position $t$)을 받아 처리 seq2seq는 순차적으로 입력을 받아 간단하게 sequence를 표현할 수 있지만 long-range dependencies, parallelizable 문제가 발생 long-range dependencies를 해결하기 위해서 Attention을 도입했지만 fixed-encoder representation으로 context를 온전히 표현할 수 없는 seq2seq의 근본적인 문제는 해결 불가 2. 제안 입력을 순차적으로 처리하는 RNN을 버리고 Attention만을 사용한 Encoder - Decoder ..
[논문 리뷰] Transformer : Attention Is All You Need1. 등장 배경 기존 sequence transduction(machine translation)에서 활용된 seq2seq 모델은 순차적으로 입력(sequence position $t$)을 받아 처리 seq2seq는 순차적으로 입력을 받아 간단하게 sequence를 표현할 수 있지만 long-range dependencies, parallelizable 문제가 발생 long-range dependencies를 해결하기 위해서 Attention을 도입했지만 fixed-encoder representation으로 context를 온전히 표현할 수 없는 seq2seq의 근본적인 문제는 해결 불가 2. 제안 입력을 순차적으로 처리하는 RNN을 버리고 Attention만을 사용한 Encoder - Decoder ..
2022.03.09