추천시스템

핵심 세 줄 요약 1. 개별 아이템 이력이 아닌 복수의 아이템의 이력을 다음 아이템 예측에 이용한다 2. 꼭 다음이 아이템이 아닌 몇 개의 time step 이후의 아이템을 예측할 수 있다. 3. 1차원의 시퀀스를 가지는 데이터를 2차원 이미지로 해석했다. 무슨 문제를 풀 수 있는가? 유저의 행동은 시간의 순서대로 이전의 구매 영향을 받으면서 수행된다 -> Markov Chain (a) point level : 이전에 구매했던 개별 아이템이 $S_{t}$에 영향을 준다. e.g. CPU - 그래픽 카드는 각각 메인보드 구매에 영향을 미친다. (b) union-level, no skip : 이전에 구매했던 아이템 집합이 $S_{t}$에 영향을 준다. e.g. [CPU, 그래픽 카드] 조합은 메인보드 구매에..
한창 attetion layer의 가중치 초기화를 어떻게 하면 효과적으로 할 수 있을까 고민하던 중 읽었던 논문을 리뷰한다 서론과 선행연구는 스킵하도록하고 핵심만 적겠다 뭐하는 논문인가 Pretrained model의 self-attention weight를 [모방]해보겠다는 것이다 이것이 무슨 의미냐면, 학습된 모델을 직접적으로 쓰지않고, 흉내내는 것만으로 성능을 높일 수 있다는 말이다. 어떻게 하는가 이것은 이미지처리 분야에서 ViT를 통해 학습된 attention layer의 가중치들이다. a와 b의 Query, Key, Value, Projection의 가중치들이 보이는데 왜 저렇게 둘 씩 곱한 것을 보이냐고하면, self attention 계산식에서 알 수 있다. $ Attn = Softmax(..
리사이클 혁명 시대다. 사출기에 쓰레기를 넣으면 예쁜 작품이 나오지만, 데이터는 그렇지 않다. 쓰레기같은 데이터를 넣으면 쓰레기같은 결과가 나오게된다. 그만큼 데이터의 질은 데이터 분석 업무에서 중요한 요소가 된다. 때문에 어떤 데이터를 수집하는지, 전처리는 어떤식으로 수행하는지 신중해야한다. [데이터 정의] 수집데이터는 당일 날짜에 게재되어있는 70,000건 이상의 채용공고 데이터이다. 워크넷은 사람인과 잡코리아 등 여러 플랫폼에서 올라오는 채용공고도 랜딩할 수 있도록 연결해주는데, 이번 분석의 경우 워크넷 API를 활용하기 때문에 민간업체의 공고는 수집되지 않은 채로 진행하였다. 워크넷 채용공고는 민간 업체의 것과 특성이 다르다. 보통 대기업, 중견기업의 공고보다 군소업체에서 구하는 직무가 더 많은 ..
추천시스템에서 side information을 활용하는 것은 성능 향상에 의미있는 결과를 보여준다. 하지만 해당 정보를 Neural Net에 어떤 방식으로 입력하는지에 따라 성능이 다르다. 트랜스포머에 기반하여 SI를 임베딩 시키는 방법엔 기존 상품의 ID 값에 SI를 Summation하거나, Concatenation하는 방법으로 입력해왔다. 해당 연구는 SI를 기존과 같은 방식으로 입력했을 때 모델의 추천 성능은 비슷하거나, 오히려 떨어지는 결과를 문제점으로 삼았다. 저자는 문제의 원인을 Invasive한 입력방식이라고 언급했고, 위 입력이 self-attention을 수행할 때 Query, Key, Value값에 일괄적으로 입력되어선 안된다고 주장한다. 때문에 SI를 새롭게 self-attention..
Overall Performance Comparision BERT4Rec 모델과 Baseline들을 모두 비교한 결과표를 보면, 인기순으로 정렬한 단순한 베이스라인인 POP는 모든 데이터셋에서 가장 안좋은 결과를 보였다. Sequential Model인 GRU, FPMC(MF+Markov Chain)은 matrix연산 기반의 BPR-MF와 NCF의 결과를 상회했다. 해당 결과는 행렬 기반의 풀이보다 유저의 행동 흐름을 고려한 모델이 더 효과적임을 보여준다. Sequential Model 중에서도 Caser가 FPMC보다 훨씬 좋은 성능을 보여줬는데, 두 모델 모두 Markov Chain을 사용했지만, Caser는 직전 시점을 포괄하는 더 이전 시점의 아이템들을 동시에 고려한 high-order Marko..
전반부에 이어서 적는 BERT4Rec 리뷰 Embedding Layer BERT 모델의 Embedding은 Input값과 Positional Encoding이 합쳐진 형태로 구성된다. 이들은 첫번째 Hidden state로 구성이되는데, $h_{i}^{0} = v_{i} + p_{i}$ 로 두 개의 인풋이 summation된 형태이다. Transformer는 RNN과 다르게 병렬적으로 학습하기 때문에 단어의 시퀀스를 인지할 수 없다. 때문에 각 포지션을 인지할 수 있게 Positional Encoding 작업이 추가되어야한다. (Positional Encoding 참고링크) 여러가지 방법으로 포지션을 할당할 수 있지만 해당 논문에서는 고정된 sinusoid 벡터가 아닌 '학습 가능한' 포지션을 부여하길 ..
오늘은 2019년에 나온 BERT4Rec 논문 리뷰다 BERT는 2018년 구글이 만들어낸 양방향 트랜스포머이며 Bidirectional Encoder Representations from Transformers라는 풀네임을 가지고있다. 이름에서 볼 수 있듯이 Transformer가 기존에 갖고있던 인코더-디코더 구조가 아닌 인코더만 존재하는 것을 알 수 있다.Transformer와 BERT의 가장 큰 차이점은 학습 방식에 있다 Transformer는 다음 단어를 예측하기위한 학습을 하는 반면,BERT는 마치 빈칸 넣기 문제처럼 MASK된 단어를 학습한다 GPT와 같이 BERT 역시 거대한 말뭉치를 가지고 자연어를 처리하기 위해 학습된 모델이다. 그런데 이 모델을 추천시스템에 적용하기 위해서 나온 논문이..
CF의 알고리즘을 소개하겠다. CF의 간단한 소개는 아래 링크를 참고하자! https://zzz0101.tistory.com/33 Collaborative Filtering - 사용자 기반 필터링과 아이템 기반 필터링 CF(Collaborative Filtering)은 Peer(동료, 타 유저)와의 유사도를 계산하여 유저 u의 기록되지 않은 평점을 희소행렬을 통해 예측하는 기법이다. 예를 들어 유저 c의 3번 아이템에 대한 평점을 예측하고 zzz0101.tistory.com 우리의 목표는 유저 3의 아이템 1과 아이템 6에 대한 정확한 예측을 하는 것이다. 사용자 기반의 예측 방법은 다음과 같다 1. 3번 사용자와 가장 유사도가 높은 peer 그룹을 정의한다 2. 유사도를 기반으로 예측값을 계산한다 이 ..
bat_huni
'추천시스템' 태그의 글 목록