Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Reference] Naver Glace: BERT 기반 추천 시스템으로 서비스 향상 #7

Open
YeonwooSung opened this issue Jul 10, 2023 · 2 comments

Comments

@YeonwooSung
Copy link
Contributor

비슷한 음식점 취향 유저 추천 모델 개발기

요약:

  1. Youtube 추천모델(candidate layer 모델)과 BERT 두가지 모델을 비교해서 성능 평가 진행. BERT가 accuracy 측면에서 압도

  2. BERT는 tokenizer를 통해 인풋 sequence를 token_id로 토크나이징해야 하기 때문에 Continual Learning 적용이 어려움 (네이버에서도 이러한 이슈로 인해 적용 포기)

  3. 추천시스템은 일정 시간마다 지속적으로 학습을 새로 진행해줘야 하기 때문에 학습 시간이 비교적 적은 BERT-tiny와 BERT-mini_small 등 작은 모델들을 대상군으로 선정

  4. AMP(Automatic Mixed Precision), "Switchable Transformer" + "Progressive Layer Drop" 등의 학습 방법을 비교 실험

  5. max_length가 너무 길면 모델 학습이 어려워지고, 너무 짧으면 long term 관점에서 추천을 할 수 없는 문제가 있기 때문에 80, 100, 120 등의 적정 길이들에 대해서 비교 실험 진행. 결론적으로 max_length=100을 선정

  6. 학습이 완료된 후 BERT 추천 모델에서 학습에 사용된 유저들의 embedding을 추출 후, FAISS를 사용해서 가장 유사한 유저를 search

@YeonwooSung
Copy link
Contributor Author

  • 학습이 완료된 후 BERT 추천 모델에서 학습에 사용된 유저들의 embedding을 추출
  • 추출한 전체 유저의 embedding 값을 FAISS를 이용하여 indexing
  • FAISS는 10억개의 feature들을 index했을때도 nearest neighbor search에 성능저하가 없는 facebook에서 발표한 라이브러리
  • 추천을 받을 유저의 최근 100개의 취향 place id, place dongcode, place second category 정보를 BERT 추천 모델에 inference.
  • 나온 BERT token embedding들을 average해서 256 dim의 user embedding을 추출
  • 추출된 user embedding으로 만들어놓은 FAISS index에 가장 유사한 유저를 search

faiss_search

@YeonwooSung
Copy link
Contributor Author

AMP 적용 실험 결과, 성능이 떨어지더라도 약간만 떨어졌으며, 일부 경우에는 성능이 향상된 경우도 존재했음

amp

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant