Skip to content

DOCS. 맞춤 상품 추천

negu63 edited this page Aug 27, 2021 · 7 revisions

맞춤 상품 추천 방식

사용자의 상품 열람 기록을 저장하고 해당 기록을 바탕으로 상품을 추천해줍니다.

어떻게?

한국어 AI 언어 모델인 KoBERT를 이용한 문장 유사도 측정을 통해 이루어집니다.
실시간으로 연산해서 추천하면 좋겠지만 아이템의 개수가 적고 시간이 제한적이라 상품들 간의 코사인 유사도를 미리 연산해서 DB에 저장해놓고
프론트에서 사용자의 열람기록과 함께 추천 상품 요청 시 백엔드에서 불러와서 비교한 다음 추천하는 방식으로 맞춤 추천이 이루어집니다

왜?

배민문방구에는 특수한 상품과 중복되는 상품들을 제외하고 나면 약 170개 정도의 상품이 있는데
초기에는 이 데이터들만 가지고는 학습이 불가능할 것 같다고 판단하여
TF-IDF 기반으로 코사인 유사도를 측정해서 추천을 하려했습니다.
하지만 상품 갯수가 적고 특수한 단어(을지로, ㅋㅋ, 요모포켓 등)가 많고
카테고리도 측정에 이용할 수 없어 0점인 관계가 많이 나와서
제대로 된 추천을 하지 못할 것이라 생각했습니다
그래서 학습없이도 준수한 성능을 낼 수 있는 사전학습된 범용 언어 모델인 KoBERT를 사용했고
TF-IDF 보다 좀 더 개선된 결과를 얻을 수 있었습니다.

TF-IDF 기반 코사인 유사도

image

KoBERT 코사인 유사도

아쉬운 점

  • 상품의 수(데이터 수)가 적어서 아쉬웠다.
  • 상품의 상세 정보가 텍스트가 아닌 이미지로 되어 있어서 상품 이름으로만 유사도를 구할 수 있어서 아쉬웠다.
  • 사용자의 상품 열람기록 뿐만 아니라 주문기록, 좋아요 등을 이용해 추천을 개선할 수 있었을 것 같았다.

참고

Clone this wiki locally