목록분류 전체보기 (52)
내가 보려고 만든 블로그
DW ,DM을 정말 초창기부터 설계하는일은 경험하기가 쉽지 않은 것 같다 . 보통은 어느정도 자리잡은 회사에 들어가게 되니. 이걸 처음부터 설계한다고하면 어떻게 해야할까? BI ( Data Analyst를 위한 ) 와 DS( Data Scientist를 위한)를 나눠서 생각해보았다. 1. BI RAW 우선 기본적으로 DB에 있는 테이블들을 그대로 가져오는 작업을 하게 될 것이다. 데이터가 유실될 가능성이 있기도 하고 우선 복사해두면 데이터에 대해 추가적으로 변경을 한다고 할 때 다시 DB에 접근할 필요없이 RAW테이블을 통해 작업할 수 있기 떄문이다 . 어떻게 가공할지 여기부터가 진짜 시작이다. DB설계를 할 때 정규화등을 고려하여 테이블을 만들지만 , DW, DM은 좀 다르다. 최대한 반정규화 , 그렇..
Bert를 Recommendation에 적용할 때 기존 BERT와의 차이점이 무엇인지 , 그리고 Bert4Rec의 Architecture에 대해 간단하게 적어봄. 1. Input 기존의 BERT의 경우 3가지 임베딩이 합쳐져 Input으로 들어가게 된다. 1. Token Embedding 2. Positional Embedding 3. Segment Embedding Token Embedding의 경우 말 그대로 해당 Token 을 Embedding으로 표현한 것 . Segment Embedding의 경우 문장을 구별하는 Embedding . 그리고 각 Token의 위치에 대한 Positional Embedding이 존재한다 . 추천에서 BERT를 적용할때 문장을 구별 , 즉 , user의 세션동안 반응..
요새 kafka, flink, spark 등등 자바로 만들어진 어플리케이션들도 python을 워낙 많이 지원하고 있어서 편리하다. Flink도 pyflink 라고 파이썬에서 flink 개발을 할 수 있도록 도와주는 라이브러리가 있어서 이를 간단히 정리하고자 한다. 사실 이 글은 지금 패스트캠퍼스에 있는 강의를 참고해서 올리는데 코드의 세부 로직보다는 이런식으로 사용을 하는구나 정도를 정리함. flink를 사용하는 방법이 여러가지가 있지만 쿼리형태로 source table , sink table 지정해서 사용하는게 제일 편리한 것 같아 이방법으로 정리함. flink에서 가장 많이 사용되는 형태인 Kafka 를 통해 메세지를 받고 이를 가공해서 file이나 db등으로 보내는 것 을 예제로 담음. ( kafk..
웹개발자가 아닌 나지만 하도 많이 들어본게 바로 Async 비동기 처리. 헷갈렸던 것들을 좀 적어보고 몇가지 개념들 정리해둠. Non Blocknig , Async 우선 non blocking 과 Async , 거의 같은 개념처럼 느껴지는데 솔직히 매우 유사하긴 하다. Async는 프로그래밍의 방식이라고 생각하면된다. Synchronous하게 프로그래밍했다면 return값을 기다리는 방식이고 Async라고 하면 return 을 신경쓰지 않고 다음에 처리할수 있는 것을 처리하러 가게 프로그래밍하는 것. blocking은 반대로 방식이라기 보다는 실제로 물리적으로 일어나는 개념이라고 생각하면된다. io가 실제로 일어나냐 마느냐. Coroutine 비동기 처리가 가능한 함수를 파이썬에서 coroutine이라고..
MAB ( Multi Armed Bandit) : 활용되는 곳이 많지만 주로 상품 , 광고추천등에서 어떤 것 을 사용자에게 보여주어야 이득이 최대가 될까? 동시에 특정 상품에 편향되지 않게 다양한 상품이 노출되게 할 수 있을까? 를 해결하는데 사용된다. Epsilon- greedy, UCB등의 방법이 있는데 그 중에서도 많이 사용되는 Tomson Sampling 방법에 대해서 소개하고 Pyro를 이용해서 구현해봄. 베타분포 먼저 베타분포에 대해서 알아야 하는데 베타분포는 성공횟수 a-1 , 실패횟수 B-1 만큼 관측 되었을 때 성공확률에 대한 확률분포이다. 예를 들어 , a=1 , B=1 일 경우 사건이 발생하지 않은 경우이므로 성공확률은 어떤 정보도 없으므로 uniform distribution 형태가..
Bayesian Optimization 을 이용하면 적은 시행만으로도 쉽게 Hyper Parameter 튜닝을 할 수 있다. 는 말을 ML 공부하는 사람이라면 한번 쯤은 들어봤을 듯. 어떻게 Bayesian Optimization이 몇번의 시행만으로 Hyper Parameter를 쉽게 튜닝할 수 있을까?? 에 대해서 간단하게 적어보았다. Gaussian Process (GP) 우선 Gaussian Process (GP)에 대해서 공부해야 한다. Bayesian Optimizaition을 수행함에 있어 GP 방법만이 있는 것은 아니다. 하지만 GP가 가장 많이 사용되는 방법임. Gausisian Process는 다변량 정규분포를 무한 차원으로 확장시킨 개념이다. 사실 "무한" 이라는 특징보다 Bayesia..