/final-project-level3-recsys-10

http://hobbang.shop/ 에서 서비스 중인 인프라 기반 원룸 / 오피스텔 추천 서비스

Primary LanguagePython

🏠 인프라 기반 부동산 매물 추천

윤곽선2

1. 프로젝트 소개

  • 개요

    → 주변 시설 7가지에 대한 선호도를 바탕으로 한 원룸/오피스텔 매물 추천

    • 주변 시설 7가지 : 지하철, 편의점, 대형마트, 카페, 약국, 영화관, 헬스장
  • 기존 서비스와 비교

    • 차별점 : 가격과 인프라 정보를 반영하여 원룸과 오피스텔 중심으로 매물 추천

스크린샷 2023-02-07 오후 4 25 58

  • 사이트맵

    스크린샷 2023-02-09 오전 1 50 07

2. 프로젝트 구조

  • Architecture Diagram

recsys10-architecture2

  • Activity Diagram

recsys10-UML_2

- 신규 회원이나 ‘좋아요’ 한 매물이 하나도 없는 사용자
    - 인프라 점수가 높은 순으로 순위를 매겨 추천
- ‘좋아요’ 한 매물이 다섯 개 미만 사용자
    - Content-based filtering 으로 ‘좋아요’한 매물과 유사한 매물을 함께 추천
- ‘좋아요’ 한 매물이 다섯 개 이상인 사용자
    - `AI 추천 받기` 버튼을 눌렸을 때 LightGCN 모델을 활용하여 매물 추천
  • Database Architecture

    database

3. 프로젝트 진행 방법

  • 프로젝트 일정

스크린샷 2023-02-08 오후 3 16 15

  • 협업 방법
    • GitFlow

      recsys10-gitflow

      • main, feature, dev, release 4종류 branch 사용
      • branch를 Task별로 세분화하여 코드 이슈 및 conflict에 유연한 대처
    • Notion

      • 프로젝트 업무현황
        • TODO, In Progress, Paused/Blocked, Done 4가지로 분류하여 개인 업무 공유 및 관리
      • 프로젝트 타임라인
        • 프로젝트 일정을 타임라인으로 가시화
        • 일자 별 진행 현황 파악 용이
    • GIt Issue

      • Issue별 Commit관리
      • 작업 내용 파악 용이
    • 개발 Tool

      스크린샷 2023-02-07 오후 4 28 54

4. 모델

User Scenario

  1. Cold Start 문제를 해결하기 위해 Rule-based 와 Content-based 를 함께 사용
  2. 유저가 선호하는 매물이 특정 지역(구)에서 일정 개수 이상이 되었을 때 LightGCN 모델 활용

Rule-based Model

  • 적정 거리 내 인프라 별 최단 거리 및 개수를 정규화
  • 사용자가 선택한 인프라를 기반으로 스코어링하여 랭킹

Content-based Filtering

  • 유저가 선호 매물로 선택한 아이템을 기반으로 벡터화 → 유사도 높은 매물을 추천

ML Model : LightGCN

  • Interaction 데이터를 기반으로 그래프를 연결하여 관계성을 표시
  • 직접적으로 연결된 아이템이 아니더라도 노드를 통해 접근 가능하기 때문에 직접적인 Interaction이 불필요함

→ 유저의 찜 목록을 매물과의 Interaction으로 사용

→ 해당 유저가 선택한 인프라에 대한 거리 점수를 아이템 행렬의 추가 정보로 사용

7. 팀 소개

  • 팀 이름: 추천해조(Recommend-Seaweed)
  • 팀 구성 및 역할
구혜인 권은채 박건영 장현우 정현호 허유진
* Backend 총괄
* Backend API 설계 및 map API 구현
* Inference API 구현
* DataBase 설계
* 로그인/회원가입 API 구현
* 데이터 크롤링 및 EDA
* 데이터 검증
* 모델 비교분석 및 모델링
* Inference 코드 구현
* 찜목록 API 구현
* ML 모델 API 구현
* 캐릭터 아이콘 디자인
* Stremalit 구현
* 사용자 Session 유지 처리 구현
* 데이터 검증
* 프로젝트 기획
* 데이터 정제 및 EDA
* 스코어링 알고리즘
* Content-based Filtering 적용
* Streamlit 구현
* React 구현
* Airflow 적용
* Docekr적용
* FastAPI ORM 구현