Skip to content

boostcampaitech6/level2-3-recsys-finalproject-recsys-02

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

header

크롤노티 웹사이트 로그를 통한 개인화/세션 기반 추천 시스템 개발

1. 프로젝트 개요

프로젝트 소개

image

  • 크롤노티는 쿠팡 전자기기 특가 알림 사이트입니다. (일 로그 건 수 : 평균 10만 건 이상)
  • 크롤노티로부터 제공받은 웹사이트 로그를 통한 개인화/세션 기반 추천 시스템 개발을 주제로 선정했습니다.

프로젝트 Task1 - 키워드 알림 개인화

  • 크롤노티의 키워드 알림 서비스
    • 핫딜 지수 : 가격 추이, 브랜드, 상품 가격 등을 종합해 계산된 크롤노티 자체 지수

AS IS

image

TO BE

  • 키워드 알림 개인화
    • 키워드를 등록한 유저의 조회 이력과 핫딜 후보로 뜬 상품의 유사도/ 좋아할 확률 → 상품에 대한 유저 별 개인 점수
    • 붉은 색 = 상품에 대한 유저 별 개인 점수, 노란 색 = 알림 발송(0.5 이상)

image

프로젝트 Task2 - 세션 기반 Top K 추천

  • 세션 기반 Top K 추천
    • 회원가입 없이 사용 가능한 웹사이트로, 키워드를 등록한 유저가 아닌 이상, 유저 특정 불가
    • user-free, 세션 기반, 유저가 클릭할 때마다 추천 아이템들을 갱신하여 보여줄 수 있는 모델을 구현

image

2. 서비스 아키텍처

아키텍처공유_고화질_라이트

3. 추천 모델 아키텍쳐

키워드 알림 개인화

image

세션 기반 Top K 추천

image

4. 팀소개

네이버 부스트캠프 AI Tech 6기 Level 2 Recsys 2조 R_AI_SE 입니다.

💡 R_AI_SE의 의미

Recsys AI Seeker(추천시스템 인공지능 탐구자)를 줄여서 R_AI_SE입니다~

👋 R_AI_SE의 멤버를 소개합니다 👋

🦹‍팀원소개

팀원 역할 및 담당
김수진 데이터 분석 및 정제, TopicModeling, EASE, TM2LGCN, FastAPI
김창영 데이터 수집 및 정제, Airflow를 활용한 ELT 파이프라인 설계, Serving API 개발
박승아 데이터 정제, 콘텐츠 기반 추천, (TF-IDF, Word2Vec), IBCF(Item2Vec), Looker Studio
전민서 SASRec, EDA, 파이프라인 설계, 클라우드 기반 인프라 구축, 데이터 정제
한대희 데이터 분석 및 정제, 데이터 클리닝, 메모리 기반 협업 필터링(UBCF, IBCF)
한예본 데이터 분석 및 정제, EDA(Looker Studio), Sequential Recommentation(SASRec)

👨‍👧‍👦 Team 협업

📝 Ground Rule

팀 규칙

  • 모더레이터 역할
    • 순서 : 매일 돌아 가면서
    • 역할 : 피어세션 시 소개하고 싶은 곡 선정
  • 데일리 스크럼
    • 오늘 학습 계획 정하기
    • Github PR 올린 것 코드리뷰 진행
  • 피어세션
    • 모더레이터가 가져 온 노래 나올 때 각자 스트레칭 하기
    • Github PR 올린 것 코드리뷰 진행
  • 노션과 깃허브 칸반보드 활용한 일정관리
    • 실험 일지 작성을 통한 원활한 결과 공유 도모

Git Ground Rule

ISSUE, PR, Commit 컨벤션 규칙

태그 종류

Feat : 새로운 기능 추가
Fix : 버그 수정
Docs : 문서 수정
Style : 코드 포맷팅, 세미콜론 누락, 코드 변경이 없는 경우
Refactor : 코드 리펙토링
Test : 테스트 코드, 리펙토링 테스트 코드 추가
Chore : 빌드 업무 수정, 패키지 매니저 수정
Rename : 파일명(or 폴더명) 을 수정한 경우
Remove : 코드(파일) 의 삭제가 있을 때. "Clean", "Eliminate" 를 사용하기도 함
Add : 코드나 테스트, 예제, 문서등의 추가 생성이 있는경우- Improve : 향상이 있는 경우. 호환성, 검증 기능, 접근성 등이 될수 있습니다.
Implement : 코드가 추가된 정도보다 더 주목할만한 구현체를 완성시켰을 때
EDA : 데이터 분석
Data: 데이터 전처리 및 데이터 가공

GitHub ISSUE 컨벤션

[태그] 이슈제목

Git Branch 생성 규칙

태그/이슈번호 브랜치명

GitHub PR 컨벤션

As Is

  • [태그] 발행 이슈 제목 혹은 PR 제목 #이슈번호

To be

  • 태그: 발행 이슈 제목 혹은 PR 제목 #이슈번호

Git Commit 컨벤션

태그 : 제목의 형태이며, :뒤에만 space가 있음에 유의한다.

더 자세한 커밋 메세지 구조는 해당 링크 참고

5. 프로젝트 개발 환경 및 기술 스택

⚙️ 개발 환경

  • OS: Ubuntu20.04
  • GPU: Tesla V100-32GB * 6
  • CPU cores: 8

🔧 기술 스택

6. 프로젝트 디렉토리 구조

level2-3-recsys-finalproject-recsys-02
├─ .github
│  ├─ .keep
│  ├─ ISSUE_TEMPLATE
│  │  ├─ bug_report.md
│  │  └─ feature_request.md
│  └─ PULL_REQUEST_TEMPLATE.md
├─ .gitignore
├─ Dockerfile
├─ MLflow
│  ├─ Dockerfile
│  └─ run.sh
├─ README.md
├─ model
│  ├─ IBCF
│  │  ├─ inference.py
│  │  └─ train.py
│  ├─ README.md
│  ├─ SASRec
│  │  ├─ args.py
│  │  ├─ inference.py
│  │  ├─ main.py
│  │  ├─ model.py
│  │  └─ trainer.py
│  ├─ TFIDF
│  │  ├─ inference.py
│  │  ├─ requirements.txt
│  │  └─ train.py
│  └─ UBCF
│     ├─ inference.py
│     └─ train.py
├─ notebooks
├─ run_for_worker_node.sh
└─ servingAPI
   ├─ Dockerfile
   ├─ api.py
   ├─ main.py
   ├─ requirements.txt
   ├─ schemas.py
   ├─ storage
   │  ├─ README.md
   └─ utils
      ├─ __init__.py
      ├─ dependencies.py
      └─ inference.py

footer

About

level2-3-recsys-finalproject-recsys-02 created by GitHub Classroom

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages