개발자식

[Coursera] Recommendation Systems with TensorFlow on GCP_1주차_TIL 본문

AI/Recommendation System

[Coursera] Recommendation Systems with TensorFlow on GCP_1주차_TIL

밍츠 2022. 8. 9. 20:56

Recommendation System Overview

 

1. Introduction

"Recommendation engines" 

- 머신러닝의 가장 성공적이고 널리 퍼진 비즈니스 사례이고 즐겨 사용하는 애플리케이션에서 많이 지원한다.

- ex) Youtube, Google Play

 

"what exactly are recommendation engines?" 

"What do they do and how do they work?"

- 기본적으로 사용자가 과거에 상호작용 했던 제품을 기반으로 확인하지만 유튜브의 경우 사용자의 로그가 기록된다. 사용자가 직접 검색에 도달하지 못할 항목들도 추천해준다. 

-> 그래도 사용자와 관련됨

- Recoomendation engines provide a way of surfacing new content that a user might like but didn't know to search for

- 좋아요 또는 싫어요와 같은 상호작용을 기록하여 사용자에게 고유한 선호도를 배울 수도 있다.

- 또한 함께 어울리는 콘텐츠를 찾는데 도움을 준다.

- 다른 사람들이 검색한 내용을 기반으로 유사한 결과가 추천된다.

-> 우리의 참여를 유지하는 방법을 제공한다.

 

목적

- 사용자를 행복하게 하고 관심을 갖게 하고 제품에 계속 참여하게 한다.

 

장점 _ 사용자 측면

- 내용을 이해하는 데 도움을 준다.

- 새로운 항목을 탐색하는 데 도움을 준다.

- 의사 결정을 향상시킨다.

 

장점 _ 추천 제공자 측면

- 사용자 만족도와 참여도를 높여 더 깊은 사용자의 신뢰로 이어진다.

- 사용자 상호 작용을 조사하여 항목에 대한 수요를 유도할 수 있다.

 

Recommendation systems provide a way to model people's perferences

 

 

 

2.Types of Recommendation Systems

사용자 속성 데이터 및 사용자의 과거 임대 정보, 다양한 속성 디테일, 사용자별 등급 데이터가 있을 때 이를 행렬로 나타낼 수 있다. 이를 사용자-항목 상호작용 메트릭스라고 한다.

 

사용자에게 어떻게 임대 숙소를 추천해줄 수 있을까?

- 사용자의 속성을 사용? 어떤 기능을 사용?

- 집의 속성을 사용? 주택을 분류하기 위해 어떤 기능을 사용?

- 사용자가 좋아할 유사한 속성은? 사용자가 비슷하든 것은?

- 유사도를 어떻게 측정?

- 모델링을 위해 어떤 레이블 사용?

- 사용자의 평가 점수를 예측할지, 예약할 집을 예측할지?

와 같이 다양한 방법으로 질문들을 접근한다.

 

 

 

3. Content-Based or Collaborative

Content-Based filtering

: uses item features to recommend new items similar to what the user has liked in the past

- 항목의 속성을 사용하여 사용자에게 새 항목을 추천한다. (다른 사용자의 행동이나 평가는 고려하지 않는다)

- 보이지 않는 항목의 순위를 매기는 방법을 외삽하는 것은 불가능하다.

 

Collaborative filtering

: uses similarites between users and items simultaneously to determine recommendations

- 전체 사용자 항목 상호 작용 매트릭스와 함께 작동한다. (모든 사용자, 모든 항목, 모든 사용자 항목 평가 등을 사용)

- 유사한 사용자가 유사한 항목을 좋아할 것이라는 생각으로 작업한다.

-> 사용자 간의 유사성을 사용

- Hand engineering(수동적 조절)에 의존할 필요가 없다.

- 이전에 구성된 기능에 의존하지 않는다.

 

Knowledge-based

: recommender systems use explicit knowledge about the users, items, and recommendation criteria

- 사용자의 선호도에 대한 명시적 지식, 항목, 추천 기준과 같은 대체 접근 방식이 있을 때 유용하다.

- Content-Based , Collaborative 방법을 적용할 수 없다.

- 품목을 자주 구매하지 않는 상황에서 발생한다. (정보 불충분)

 

Content-Based filtering & Collaborative filtering & Knowledge-based

1. 서로 다른 유형을 결합하여 추천 모델을 단일 하이브리드 접근 방식으로 통합한다.

2. 이러한 모델 중 하나 이상의 결과를 결합한다.

 

Deep neural networks

: can be trained to predict ratings based on user and item attributes

- 유연하고 다양한 결과를 갖도록 훈련될 수 있다. 

- ex) 등급 예측, 상호 작용, 다음 항목

 

 

 

4. Recommendation System pitfalls

- 위 사진의 user item interaction matrix (사용자 항목 상호작용 매트릭스)는 사용자 공간과 제품 공간이 희박하고 편향되어 있다. (sparse and skewed)

 

sparse

- 전체 사용자 항목 공간 내에서 잠재적으로 거의 상호 작용이 없다.

- 행렬의 대부분의 항목은 0으로 희소 행렬은 문제가 된다.

-> 많은 메모리를 사용하고 계산 수행 속도가 느리다.

 

skewed

- 대부분의 제품의 사용 기간이 길고, 평가 비율이 낮은 것, 일부 속성이 인기가 많은 것 또한 메트릭스가 왜곡된다.

 

 

 

그래서 모든 유저에 대한 모든 평가를 취한다면, 특정 사용자나 제품을 강조할 위험이 있다.

또한 제품과 사용자 모두에게 콜드 스타트가 발생할 수 있다.

콜드 스타트 : 상품 추천을 위한 데이터 정보가 충분하지 않아서 해당 유저들에게 상품을 추천하지 못하는 문제를 말한다.

 

 

카탈로그에 새 항목이 추가될 때

- 협업 필터링의 경우 사용자 항목 상호 작용에 의존하기 때문에 정보가 없으면 사용자를 위한 신뢰할 수 있는 권장 사항이 생성되지 않아 이러한 경우에는 콘텐츠 기반 접근 방식이 더 좋다.

 

등급 형태의 명시적인 조치 대처

- 암시적 조치를 사용해야 한다.

- ex) Youtube의 경우 조회수 중 찬성 또는 반대가 훨씬 적어 동영상 클릭수, 재생 횟수, 사이트 탐색, 페이지에서 보낸 시간과 같은 사용자 상호 작용에 대한 기타 정보를 사용

- 명시적 피드백 데이터가 충분하면 초기 모델을 훈련할 수 있다.

- 암시적 피드백을 입력 레이어로 명시적 피드백을 레이블로 사용하여 초기 모델을 훈련한다. 명시적 피드백을 추천 시스템 입력에 사용한다.

 

 

 

5. Discussion

추천 시스템을 설계할 때 생각해볼 점

- 어떤 데이터가 필요한지, 목표가 무엇인지

- 콘텐츠 기반 필터, 협업 필터를 어떻게 만들 것인지

- 사용자 피드백에 대한 명시적인 평가가 있는지, 아니면 암묵적인 피드백을 허용해야 하는지

- 인과관계 문제를 어떻게 해결할 것인지

- 하이브리드 접근 방식의 이점을 누릴 수 있을지

 

추천 엔진을 구축하고 사용해야 하는 좋은 이유는?

- 사용자의 경험을 개인화하고 추천자가 수백만 개의 항목 내에서 관련 콘텐츠를 표시하는 방법을 제공하는 것

 

Comments