欲速不達

일을 급히 하고자 서두르면 도리어 이루지 못한다.

Fantastic AI, Fantastic World

BoostCamp Ai Tech 4/하루정리

[Week 6 - 4] BoostCamp AI Tech

_껀이_ 2022. 10. 27. 20:17
728x90
반응형

1. 오늘 한 일

- context aware model (FM, FFM) 정리

- DL model (NCF, WDN, DCN), AutoRec 정리

 

 

2. 과제 및 정리

- context aware model (FM, FFM) 정리

https://kkuneeee.tistory.com/68

 

[RecSys] 한 눈에 보기 정리 - 6 : Context-Aware Recommender System

Context Aware : 유저와 아이템 간 상호작용 정보 뿐만 아니라, 유저 feature와 아이템의 feature 간의 맥락(context) 정보를 반영하는 것 CTR : Click-Through Rate Prediction CTR 예측 : 유저가 주어진 아이템..

kkuneeee.tistory.com

- DL model (NCF, WDN, DCN), AutoRec 정리

https://kkuneeee.tistory.com/69

 

[RecSys] 한 눈에 보기 정리 - 7 : Deep Learning

추천시스템에 Deep Learning을 활용하는 이유 Nonlinear Recommender System 한계점 : MF 모델은 선형조합에 기반한 표현만 가능 -->> MLP 사용하여 비선형성 표현 Representation Learning DL은 사람이 직접 feature design

kkuneeee.tistory.com

 

 

3. 회고

추천시스템에서 context-aware, DL 모델 개념들을 다시 정리했다.

정리하면서 다시 보니 어디가 부실한지 새삼 더 잘 알겠다. 당연히 이번 한번으로 이해하고 기억하지는 못할 것이기 때문에 계속 반복해서 또 정리하고 정리해야겠다.

 

그래도 이번 정리를 통해 개념적으로는 잘 이해했다고 생각했는데, 

팀원 한 분이 피어세션때 FM, FFM 코드가 이해가지 않는다고 하셔서 코드를 다시 보니 개념적인 것과는 또 달랐다.

 

강의 자료에 있는 수식이나 변수명 같은 경우는 논문에서 그대로 사용한 의미인데, 논문을 보지 않고 이해하려고 하니깐 변수명에서 혼란이 오기도 했다. 또, FFM 코드에서는 batch size를 고려하기 때문에 수식에서의 이해한 것과 구현된 코드가 맞지 않는 부분이 있었다는 걸 발견하면서 동시에 nn.Embedding()의 의미를 잘못 알고 있었다.

 

지금까지는 nn.Embedding()에서 Embedding matrix의 크기를 정하고 정해진 matrix 공간에 값을 투영한다고 생각하고 있었는데, 이게 완전히 잘못된 개념이었다.

nn.Embedding()은 Embedding matrix로 학습해야할 전체 파라미터를 담은 공간이다. 그러므로 모든 field에서 나올 수 있는 경우의 수, 예를 들면 A, B, C라는 field가 있고 A에는 10 종류의 값, B에는 5 종류의 값, C에는 3 종류의 값이 있다면 nn.Embedding()으로 만들어 둔 파라미터의 공간은 18개의 row를 가진다. 이때 embed_dim을 지정해야하는데 이는 각각의 row를 n차원으로 표현하기 위한 값이다. 즉, embed_dim = 8이라면 nn.Embedding()으로 만들어진 공간의 크기는 (18,8)이 된다.

 

이렇게 만들어진 Embedding 공간에 있는 파라미터와 input x를 사용해서 Embedding matrix를 만든다. 이때 Embedding matrix의 shape은 (field_num, embed_dim)이 된다. mini-batch가 있다면, (batch_size, field_num, embed_dim)의 shape을 가진다.

 

Embedding은 여기 뿐만 아니라 여러 모델에서도 사용하는 것이므로 이번 기회에 개념을 잘 잡을 수 있어서 다행이었다. 이번 피어세션 아니었다면 Embedding에 대해 잘못 알고 그대로 넘어갈 뻔 했다.

 

공부하면서 드는 그 '뭔가 성장했다, 뭔가 배운 것 같다'는 기분에 휩싸이지 말자.

어느 분야든 그런 기분에 휩싸이면 결국 휘둘리게 된다.

주의하자.

 

다 안다고 생각하지 말자
많이 알 수는 있어도 다 알고 있진 않을 거다
728x90
반응형

'BoostCamp Ai Tech 4 > 하루정리' 카테고리의 다른 글

[Week 16 - 2] BoostCamp AI Tech  (0) 2023.01.03
[Week 6 - 3] BoostCamp AI Tech  (0) 2022.10.26
[Week 5 - 5] BoostCamp AI Tech  (0) 2022.10.21
[Week 5 - 4] BoostCamp AI Tech  (0) 2022.10.20
[Week 5 - 2] BoostCamp AI Tech  (0) 2022.10.18