안녕하세요! 초코쌤입니다
‘실생활에서 찾는 정보 개념 시리즈’입니다.
8월 호(실생활에서 찾아보는 데이터 압축)에 이어서
이번 9월 호에서는 요즘 우리가 매일 경험하는 ‘추천’ 시스템의 비밀에 대해서 파헤쳐보려고 합니다.
스마트폰에서 아래 앱만 키면 이런 말을 하는 것 같지 않으세요?
•
유튜브: “
넌 이 영상을 좋아하지?”
•
쿠팡: “
이런 상품 어때?”
•
인스타그램: “
이 릴스 재밌겠지?”
신기합니다 ㅎㅎ “이걸 어떻게 알았지” 싶을 정도로 딱 맞는 걸 추천해주는데요. 이건 우연이 아니라
⇒ 알고리즘이 여러분의 취향을 ‘학습’했기 때문입니다.
추천 알고리즘은 왜 필요할까요?
오늘날 정보는 넘쳐납니다. 예를 들어,
•
유튜브에는 1분마다 500시간 분량의 영상이 올라옵니다.
•
쿠팡에는 수백만 개의 상품이 있습니다.
•
인스타에는 릴스, 스토리 등 콘텐츠의 바다죠.
⇒ 이런 바다 속에서 사용자가 빠르게 원하는 것을 고르도록 도와주는 것이 추천 알고리즘의 핵심 목표입니다.
추천 알고리즘이 사용하는 정보들
수집 정보 | 예시 |
검색 기록 | “손풍기 추천” |
클릭/구매 기록 | 어떤 영상/상품을 클릭했는지 |
위치 정보 | 자주 가는 장소, 현재 위치 |
사용 시간/빈도 | 앱을 자주 쓰는 시간 대, 사용 시간 |
친구 관계 | 친구들이 좋아하는 콘텐츠 |
대표적인 추천 알고리즘 2개를 알아봅시다.
① 콘텐츠 기반 필터링 (Content-based Filtering)
⇒ 너가 좋아하는 것과 비슷한 것을 또 보여줄게
핵심 개념:
사용자가 좋아한 콘텐츠의 ‘속성(Attribute)’을 벡터로 분석하고, 유사한 속성을 가진 콘텐츠를 코사인 유사도(Cosine Similarity) 등 수학적 거리 계산을 통해 추천합니다.
예를들면, 내가 재난 영화를 자주 본다면, ‘재난 영화 종류’를 추천해주는 것입니다.
작동 과정
1.
사용자가 ‘좋아한 콘텐츠’ 수집
•
초코쌤이 영화 <소방관>을 재밌게 봤다고 합시다. 초코쌤은 끝까지 시청했고, 좋아요도 클릭했습니다. 이러면 시스템은 이 영화가 초코쌤이 선호한 콘텐츠로 인식합니다.
2.
콘텐츠의 속성 분석 및 벡터화
•
시스템은 <소방관>의 콘텐츠 속성을 자동으로 분석합니다.
•
장르: 재난, 드라마, 액션
•
분위기: 긴박함, 감동적, 현실적
•
주제: 구조, 시민 보호, 희생
•
등장인물 유형: 소방관, 가족
•
감정 코드: 눈물, 영웅심, 가족애
⇒ 위 정보들이 수치화된 벡터로 바뀌어
[재난=1, 코미디=0, 가족애=1, 긴박함=1, 감동=1, 공포=0, 사회비판=0.2] 과 같은 수치화된 벡터가 나옵니다.
3.
사용자 프로필 생성
•
시스템은 초코쌤이 좋아한 영화들의 속성벡터들을 평균 또는 가중합하여 ‘나만의 취향 벡터’를 생성합니다.
4.
다른 영화들과의 유사도 계산
•
시스템은 수천 편의 영화에서 각 영화의 벡터를 꺼내와, 나의 취향 벡터와 얼마나 비슷한지를 수학적으로 계산합니다.
⇒ 코사인 유사도 공식: cos(θ) = A · B / (||A|| * ||B||)
⇒ 1에 가까울수록 비슷합니다.
5.
콘텐츠 추천
•
이제 유사도 순으로 정렬하여, 초코쌤에 보여주게 됩니다.
1.
감기 (유사도 0.91)
2.
신과 함께 (유사도 0.76)
➤ 학생 활동 예시1: 저녁메뉴추천표 등의 이미지를 활용해서 친구에게 특징을 듣고 음식을 추천해보는 활동을 해보는 것은 어떨까요?
② 협업 필터링 (Collaborative Filtering)
⇒ 너랑 비슷한 친구들은 이런 걸 좋아했대
핵심 개념:
비슷한 취향의 사람들끼리 데이터를 공유해 추천을 수행합니다. 콘텐츠의 ‘속성’을 몰라도 추천이 가능하며, 다음 두 가지 방식으로 나뉩니다.
사용자 기반 협업 필터링 (User-based)
•
나와 비슷한 평가/선호 패턴을 가진 사용자를 찾고 그 사용자가 좋아한 항목 중 내가 안 본 것을 추천
예를 들면, [학생 A, B의 영화 별점이 90% 일치] → B가 본 ‘인셉션’을 A에게 추천하는 것입니다.
아이템 기반 협업 필터링 (Item-based)
•
내가 좋아한 아이템과 유사한 평가 패턴을 가진 아이템을 추천
예를 들면, ‘기생충’과 ‘스파이더맨’을 모두 좋아한 사람이 많다면 → ‘기생충’을 본 사람에게 ‘스파이더맨’를 추천하는 것입니다.
작동 과정
1.
사용자-아이템 평가 데이터 수집
: 추천 시스템은 다음과 같은 평가 테이블을 수집합니다. 보통 평점, 클릭 기록, 좋아요 등이 해당합니다.
사용자 ↓ / 영화 → | 기생충 | 밀수 | 괴물 | 신과 함께 |
학생 A | 5 | 4 | ? | 2 |
학생 B | 4 | 5 | 4 | 1 |
학생 C | 5 | 4 | 5 | 2 |
학생 D | 1 | 1 | 2 | 5 |
⇒ 학생 A는 아직 괴물을 보지 않았습니다. → 시스템이 이 점수를 예측해서 추천 여부를 판단합니다.
2.
유사도 계산을 통해 나와 비슷한 사용자들 찾기
: 마찬가지로 수학적 계산이 활용됩니다.
3.
비슷한 사용자의 행동 기반 예측하여 추천
: 비슷한 사용자가 ‘나보다 한 발 압서 본 콘텐츠’를 추천하는 단계입니다. 비슷한 사용자의 예상 점수를 통해 정렬하여 추천합니다.
➤ 학생 활동 예시2: 반에서 비슷한 음악을 듣는 친구들끼리 모여 클러스터 만드는 활동을 해보는 것은 어떨까요?
➤ 학생 활동 예시3: 자, 그렇다면 유튜브, 쿠팡, 인스타그램, 넷플릭스 등은 어떤 방식으로 추천하는 것일까요? 학생들과 토의해보는 활동을 해봐도 좋을 것 같습니다 ㅎㅎ
추천 알고리즘은 사용자의 행동 정보를 바탕으로 적절한 콘텐츠, 상품, 정보를 자동으로 골라주는 기술입니다.
그 뒤에는 콘텐츠 기반 필터링, 협업 필터링이라는 알고리즘이 작동하고 있죠. 우리가 매일 접하는 기술 뒤에는 이러한 정보 기술들이 있다는 것에 흥미롭지만, 이 과정에서 개인정보가 어떻게 수집되고 분석되는지, 이 기술들이 얼마나 편리함을 주면서도 동시에 위험 요소가 될 수 있는지를 비판적으로 바라보는 시각을 길러주는 것은 어떨까요?
