Bert4Rec

추천시스템에서 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 역시 거대한 말뭉치를 가지고 자연어를 처리하기 위해 학습된 모델이다. 그런데 이 모델을 추천시스템에 적용하기 위해서 나온 논문이..
bat_huni
'Bert4Rec' 태그의 글 목록