김동현 | 심재정 | 이수연 | 임지원 | 진상우 |
---|---|---|---|---|
-
김동현
RecVAE model • Backend -
심재정
Frontend -
이수연
Web crawling • GCP connection -
임지원
Data preprocessing • lightFM model -
진상우
Frontend • Backend
예술품의 홍수 속에 NFT 예술품 구매에 어려움을 겪는 유저에게 Chrome Extension을 활용해서 도움을 주는 추천시스템
-
Why NFT?
- 예술품 거래, 실물 자산에서 디지털 자산으로!
-
Why Nifty Gateway?
- 작품을 등록하기 위한 까다로운 심사 절차 ⇒ 유명 아티스트 작품들 유치!
-
Why Chrome Extension?
- Nifty Gateway 홈페이지에서 구매와 추천을 한번에!
- user가 Chrome Extension을 통하여 user ID 입력
- user ID를 입력받은 Fast API 내 서버는 model의 input으로 user ID를 투입함
- user ID를 input으로 받은 model은 output으로 추천 아이템 리스트를 받아옴
- MySQL에 추천할 아이템 리스트 전달
- MySQL은 아이템들에 대한 메타데이터를 서버로 전달
- 추천 아이템들의 메타정보가 Chrome Extension을 통해 유저에게 보여짐
- Front End
- Vanila Javascript로 Chrome Extension 구현
- Back End
- Fast API & MySQL
- 서버는 Google Cloud Platform 활용
- Nifty Gateway API 활용하여 거래 데이터 크롤링
- 2020.9.1~2022.3.31에 진행된 거래에 대해 user정보와 item 정보를 데이터 프레임으로 만듦
- user: seller ID, purchaser ID
- item: NFT name, user who made NFT
- string 타입의 feature들에 대해서 공백을 제거하고, image url이 잘못된 데이터를 제거하는 등 작업
- 고유한 user와 item을 뽑아냄
- user: 크롤링한 데이터에서 고유한 식별번호가 존재
- item: 식별번호가 따로 존재하지 않아, image url 기준으로 직접 고유 id를 생성
- 데이터의 sparsity를 줄이기 위해 최소 30건 이상의 거래가 이루어진 user들과 해당 user들이 구매한 모든 item들을 활용
- 모델 학습을 위해 현재 수집된 raw data를 interaction matrix로 변환
-
사용한 모델: RecVAE
- 기존 multi-VAE 모델의 구조를 변형하여 성능을 향상시킨 모델
- 최종 recall@10: 0.1422
하나의 item에 여러 개의 에디션을 보유하는 경우가 존재
⇒ 모든 에디션을 한눈에 비교할 수 있는 marketplace url 제공
- 이미지 유사성 활용한 Content-based Filtering model 추가 ⇒ 더 다양한 아이템 추천
- 클릭 기반 아이템 추천 추가⇒더 많은 사용자들에게 서비스 제공 가능
- Load Balancing을 통해 분산처리 구축 ⇒ 대규모 트래픽 대응 가능