DevCourse TIL Final Project #7

김태준·2023년 8월 24일
1

Data Enginnering DevCourse

목록 보기
89/93
post-thumbnail

✅ Recommend Model

추천 모델을 구현하는 여러 방법이 있는데, 이를 살펴보고자 한다.

    1. Popular Based
    1. Content Based
    1. Collaborative Filtering
    1. Hybrid (2 + 3)

전체 데이터에서의 인기 기반 추천 모델 구현.
방법은 다음과 같다.
-> ID 기준 테이블 생성 후 사용자들이 작성한 평점, 리뷰 등을 기반으로 세부적으로 weight를 부여해 인기 항목들을 리스트화

🎈 2. Content Based

아이템을 기반으로 코사인 유사도를 계산하여 추천해주는 알고리즘.
사용자가 원하는 음식레시피에 대해 벡터화를 하여 벡터화된 데이터만을 활용해 유사도를 계산해주는 방식이다. 콘텐츠 기반 필터링은 아이템의 특성과 사용자의 선호도를 비교하여 추천해주는 방식이다.

  • 장단점은 다음과 같다.

장점)
1. 타 유저의 데이터 필요 X
2. 추천할 수 있는 아이템 범위가 넓어 신상품, 비 인기 품목에 대해서도 추천 가능
3. 추천 이유 제시 명확

단점)
1. 적절한 특징 찾기 X
2. 새로운 유저를 위한 추천 어려움
3. 선호 특성 가진 항목 반복 추천하는 경향 有

해당 contents 기반 추천 시스템은 굉장히 일차원적인 아이디어이다. 예시로, 유저 A가 A913음식을 먹고 높은 평점을 주었는데, 해당 음식의 재료가 고추장, 된장인 경우 해당 재료들을 사용한 타 음식들을 추천해주는 것. (유저 기반 학습, 관계가 중요한 상황에서는 사용 X)

🎈 3. Collaborative filtering

협업 필터링 방법론에는 사용자기반(User based), 아이템 기반(Item based) 2가지 방법이 존재한다.
특정 그룹 내 발생하는 유사 행동을 파악하여 비슷한 성향을 가진 사람에게 아이템을 추천하는 방법.

  • User-Based : 성향 비슷한 유저들이 사용한 아이템 추천
  • Item-Based : 구매하려는 물품과 연관지어 많이 구매한 아이템 추천

아무래도 그룹 내 유사 패턴 분석을 위해 nearest neighbor 알고리즘이 사용된다.
주어진 음식수와 재료수 기반으로 (음식수 X 재료수) 테이블이 만들어진 유사도 기반 추천 알고리즘이다.

✅ CBF

아이템을 기반으로 코사인 유사도를 계산하여 추천해주는 알고리즘. 유사도 종류로는 다음과 같다.

  1. Jaccard similarity : 실제 값이 아닌 값이 동시에 존재하는 정도로 유사도를 판단하는 방법. (실제 값이 아니므로 직관적 결과 해석 X) 두 집합 내 합집합 대비 교집합의 비율
  1. Cosine similarity
    : 두 벡터 간 각도의 코사인 값을 이용해 측정된 벡터간의 유사정도를 의미 (물리적 방향에 기반)
    피처들이 label값인 경우 성능이 좋고 이때 nominal 변수일수록 성능이 더 좋다.
  1. Euclidean similarity

물리적인 거리에 기반해 유사도를 계산하지만, scale에 민감하므로 전처리가 필요하다.

profile
To be a DataScientist

0개의 댓글