전체 글 101

[SQL 케이스 스터디] 유저 인게이지먼트 하락 원인 찾기 - Drop in Engagement

가상 비즈니스 시나리오📌 Yammer 회사는 소셜 네트워크 (SNS) 를 주축으로 하는 회사로, 문서 공유, 채팅, 글 포스팅 등을 주고 받는 커뮤니티 기반 회사이다. 해당 회사의 Analyst로서 당면한 비즈니스 문제를 해결하는 것이 우리의 임무 !!Mission. WAU 하락 원인을 찾아오시오!문제 상황문제 : 7월 28일 (1442) → 8월 4일 WAU (1266)로 직전주 대비 12.21% 하락한 상황*WAU : the number of users who logged at least one engagement event during the week starting on that date. 즉, 1주일 내 한번이라도 플랫폼에 로그인한 유저 수SELECT DATE_TRUNC('week', e.oc..

[SQL 케이스 스터디] #1. Danny's Diner

SQL을 사용해 케이스 분석을 해보고 싶으신 분들이 많을 것 같습니다. 저도 SQL을 처음 배울 당시 정말 많은 사이트를 돌아다녔는데요, 그 중 가장 도움을 많이 주었던  https://8weeksqlchallenge.com 을 소개드립니다. 해당 사이트에는 총 8가지 비즈니스 시나리오가 기재되어있고, 각 비즈니스 상황에 맞는 지표(ex. 방문자수, 매출, 이탈율, 리텐션)를 뽑아보실 수 있습니다. 또한 사이트 내에 바로 SQL문을 짤 수 있는 툴이 제공되어 있어 별도로 환경을 설치하지 않으셔도 됩니다 ㅎㅎ  한 2년 전에 케이스1~3을 완료했었는데, 오랜만에 생각이 나 케이스8까지 차근차근 기록해보고자 합니다. Case Study #1 - Danny's Diner 🍜IntroductionDanny s..

[논문 읽기] BERT: Pre-training of Deep Bidirectional Transformers forLanguage Understanding (NAACL 2019)

BERT ( Bidirectional Encoder Representations from Transformers) 2018년에 구글이 공개한 트랜스포머 기반의 사전 훈련된 모델 위키피디아(25억 단어)와 BooksCorpus(8억 단어)와 같은 레이블이 없는 텍스트 데이터로 사전 훈련 주로 fine-tuning을 거쳐 여러 task에 이용 → 사전 훈련된 BERT 모델 + 추가적 훈련 + 하이퍼 파라미터 재조정 BERT는 사전 학습을 위해 두 가지 방법 (Masked Language Model(MLM)과 Next Sentence Prediction(NSP))를 사용함으로써 BERT가 양방향으로 학습되어 문맥을 더 잘 파악할 수 있게 한다. # Intro 전이학습 모델 구글의 Devlin(2018)이 제안..

BoW(Bag of Words), DTM

단어의 표현 방법 단어의 표현 방법에 대한 큰 체계를 한 번 정리해보자면, 지금까지 원핫인코딩, n-gram까지는 짚어봤다. 이들은 단어들끼리의 관계를 봐주진 않았고, 해당 단어 자체만 보고 특정값을 매핑하는 방법이었다. 되새겨보자면, 원핫인코딩의 경우에는 해당하는 자리에는 1을 쓰고 그 이외에는 0으로 벡터를 다 채워줬었다. 그리고 n-gram에서는 해당 단어구가 전체 훈련문장들 사이에서 몇 번 등장하냐 카운트해줬었다. 그리고 이들을 국소표현이라고 한다. 반대로 단어들 간에 중심단어를 두고 주변단어를 둬서 둘 사이의 관계로 표현하는 방법은 분산표현이라고 한다. Bag of words Bag of words란 단어들의 순서는 전혀 고려하지 않고, 단어들의 출현 빈도수에만 집중해서 텍스트를 수치화하는 표현..

[논문 읽기] GPT-1 : Improving Language Understanding by Generative Pre-Training (OpenAI)

GPT1 Abstract 1. Natural language understanding comprises a wide range of diverse tasks such as textual entailment, question answering, semantic similarity assessment, and document classification. 2. large unlabeled text corpora are abundant, labeled data for learning these specific tasks is scarce 3.We demonstrate that large gains on these tasks can be realized by generative pre-training of a l..

[Pytorch] 파이토치 Dataset, Dataloader

torch에는 데이터를 처리하기 위해 torch.utils.data.DataLoder와 torch.utils.data.Dataset의 두가지 요소를 제공 dataset : 미리 준비된 데이터셋을 불러 올 수 있으며, 가지고 있는 데이터와 라벨을 저장 dataloader : dataset을 데이터에 쉽게 접근할 수 있도록 batch를 설정해 iterable(반복가능객체)로 만듦. Dataset 관련 모듈 torch.utils.data: 데이터셋의 표준을 정의하고 데이터셋을 불러오고 자르고 섞는데 쓰는 도구들이 들어있는 모듈입니다. torchvision.dataset torchtext.dataset torchvision.transforms torchvision.tils Dataset의 기본 구성 요소 fro..

[Pytorch] 파이토치 nn.Module, nn.funcional (parameter, forward, backward연산)

torch.nn.Module & nn.funcional 두 패키지가 제공하는 기능은 비슷하지만 사용하는 방법에 차이가 있다. nn패키지 : 가중치(weight), 편향(bias) 값들이 내부에서 자동 생성되는 layer nn.functional : weight나 bias를 직접 선언 nn이 제공하는 기능 Parameters Containers Conv Layers Pooling Layers Padding Layers Non-linear Activation Normalization Layers Recuurent Layers Linear Layers Dropout Layers Sparse Layers Distance Functions Loss ... nn.functional이 제공하는 기능 Conv func..

[Pytorch] 파이토치 텐서(tensor) 기초함수, 연산

Tensor PyTorch 딥러닝 프레임워크는 현재 활발히 사용되는 프레임워크 중 하나입니다. PyTorch 의 tensor는 numpy의 ndarry와 비슷한 구조를 가지고 실제로 numpy와 tensor간의 변환이 가능하다. Tensor 생성 1차원 텐서 tensor = torch.FloatTensor([0., 1., 2., 3.]) 2차원 텐서 data = [[1, 2],[3, 4]] x_data = torch.tensor(data) numpy nd-array를 tensor로 변경 n_array = np.arange(10).reshape(2,5) # nd array를 PyTorch tensor로 변환합니다. t_array = torch.FloatTensor(n_array) print("ndim :"..

[논문 읽기] Attention IS All You Need (Transformer)

Transformer 0) Architecture 배경 seq2seq은 sequence가 길어지는 경우 앞부분의 gradient를 잘 반영못한 context vector를 이용하게 돼 기울기 소실 문제 발생 문맥 벡터 하나로는 모든 정보를 담기 힘듦. ⇒ attention mechanism을 이용하자 encoder에서 모든 hidden state를 보존 ⇒ 내적값을 구해서 alignment score 구하는 방식 채택 1) Input into Encoder input embedding 문장의 토큰을 원-핫인베딩으로 인코딩 후 가중치행렬 w와 내적(=인덱싱)함 이때 토큰은 sequential(x) parallel(한꺼번에) 입력되는 형태이므로 순서정보가 보존되지 않아, positional encoding ..