추천 알고리즘 분류

내용 기반 필터링

사용자가 어떤 내용의 아이템을 좋아하는지 나타내는 사용자 프로필과 아이템의 다양한 성질을 나타내는 특징을 추출한 아이템 특징과의 일치도 즉, 유사도를 계산함으로써 좋아할 만한 아이템을 사용자에게 추천하는 알고리즘입니다. 

사용자 프로필  아이템 특징
사용자들이 좋아하는 아이템의 특징을 나열한 리스트 아이템 속성 정보 등의 특징을 나열한 리스트 

 

내용 기반 필터링으로 사용자 1에게 아이템을 추천 할 경우 사용자 1의 프로필에 주목하여 유사도가 높은(비슷한) 아이템 특징을 가진 아이템을 찾습니다. 

사용자1 프로필과 유사한 아이템 특징 찾기

이때 아이템1과 아이템2 중 아이템1의 특징이 사용자1과 더 많이 일치하므로 유사도가 더 높다고 생각할 수 있습니다. 따라서, 아이템1을 추천합니다.

아이템 특징 획득

내용 기반 필터링에서 사용할 아이템 특징을 획득하는 방법은 아이템의 성질에 따라 다양합니다. 예를 들어

  • 책과 같은 상품이라면
    • 제목, 장르, 문자 수, 작가, 출판사 등의 속성 정보
  • 음악 등 음성 데이터일 경우
    • 작곡자, 작곡 연도 
    • 음성 분석을 통해 음의 높이, 음색, 음량 등을 얻어 아이템 특징으로 사용할 수 있습니다.
  • 이미지 데이터의 경우
    • 찍힌 물체, 촬영 장소, 시간
    • 이미지 분석 등의 기술을 통해 색채 정보, 피사체 형태 특징 등의 정보를 추가할 수 있습니다.

 

사용자 프로필 획득

아이템 내용에 대한 사용자의 선호도를 나탄내는 사용자 프로필 획득 방법은 크게 2가지 입니다. 

간접 지정형 직접 지정형
사용자의 구입 이력 중 가장 많이 나타난 특징을 지정 사용자가 직접 아이템 특징을 명시하도록 지정
ex: 설문 조사/ 프로필 기입 등

 

협업 필터링

메모리 기반 알고리즘

사용자1과 선호도가 비슷한 사용자가 선호하는 아이템을 찾아 추천

사용자-사용자 메모리 기반 방법

  • 추천 받을 사용자와 선호도가 비슷한 사용자에 착안하여 추천을 수행
  • 아이템의 구체적인 속성 정보 등을 사용하지 않는 것이 큰 특징

과거 구매 이력이 추천 받을 사용자와 비슷한 사용자를 비슷한 선호도를 가짐으로 간주함

 

아이템-아이템 메모리 기반 방법

  • 추천 받을 사용자가 선호하는 아이템과 비슷한 아이템을 착안하여 추천
  • 빈도수나 아이템 정보를 비교하여 연관 상품을 추천한다.

 

 

'공부 > 추천 시스템' 카테고리의 다른 글

추천 시스템의 UI/UX  (0) 2025.03.14
추천 시스템 프로젝트  (0) 2025.03.14
검색 시스템과 추천 시스템  (0) 2025.03.13
추천 시스템의 종류  (0) 2025.03.13
추천 시스템  (0) 2025.03.13

추천 시스템이 사용자에게 추천 결과를 전달할 때 어떤 화면(UI)에 따라 어떤 체험(UX)을 제공해야 하는지에 주목합니다.

서비스를 사용하는 사용자의 목적에 따른 적합한 UI/UX 사례

적합 아이템 발견 (find good items)

 사용자가 자신의 목적을 달성하는 데 적합한 아이템을 서비스 상에서 최소 1개 이상 발견하는 경우를 나타냅니다. ex) 서울역 근처에서 식사를 하기 위해 식당을 찾는다. 이때, 사용자는 서울역 근처에 위치한 식당 중 자신의 기호에 맞는 곳을 찾습니다. 이러한 목적으로 식당을 찾아주는 서비스를 사용하는 사용자는 목적을 달성할 수 있는 수많은 식당을 모두 열람하고 싶지는 않을 것이며 이는 현실적이지도 않습니다. 

사용자가 목적을 달성하는 데 충분할 정도로 사용자의 기호에 적합한 최소 하나 이상의 아이템을 확실하게 발견하는 것이 적합 아이템 발견의 목표입니다.

  • 사용자의 기호에 맞을 가능성이 높은 아이템부터 차례대로 정렬한 리스트를 사용자에게 제시하는 것이 효과적
  • 사용자는 이 리스트를 위에서부터 순서대로 열람하며 자신의 기호에 맞는 아이템을 빠르게 찾아낼 수 있음

이러한 리스트 형식으로 아이템을 표시할 때

  • 하나의 화면 안에 여러 아이템을 표시하므로 아이템 하나당 표시할 수 있는 정보량이 제한됨
  • 따라서 사용자가 아이템에 흥미를 갖고 상세 정보를 보기 위해 클릭할 수 있도록 충분한 정보를 적절히 표시해야 함
    • '표준', '랭킹', '리뷰 수', '신규 오픈' 등 
    • 여러 알고리즘에 따라 생성된 여러 리스트를 한 화면에 배치

적합 아이템 나열 (find all good items)

사용자가 자신의 목적을 달성하는 데 적합한 아이템을 가능한 모든 서비스에서 발견하는 경우를 말합니다. 

물건 찾기나 여행 계획 등 사용 빈도는 낮지만 비용이 많이 드는 아이템을 다루는 서비스에서 이런 경향이 나타납니다. 또한 이제부터 신청하고자 하는 특허 등 이미 존재하는지 조사하고 싶은 상황을 생각해볼 수 있습니다. 이때 특허 검색 서비스를 사용하는 사용자는 자신이 이제부터 신청하려는 특허와 같거나 유사한 모든 기존 특허를 확인하고자 할 것입니다. 기존의 유사한 특허를 간과한 채 특허를 신청하면 손실이 크므로 누락이 발생해서는 안됩니다. 누락이 발생하는 것보다는 잘못된 항목이 추천 결과에 포함되는 편이 나을 것입니다.

이처럼 사용자의 목적을 달성할 수 있는 아이템을 (가능한 한) 모두 발견하는 것은 적합 아이템 나열이 달성해야 하는 목표입니다. 그 특성상 사용자의 기호를 가급적 확실하게 나타낼 필요가 있는 경우가 많으며 특히 누락 없이 모든 적합 아이템을 발견해야 하는 것은 검색 시스템으로 분류된다고 생각할 수도 있습니다.

사용자가 여러 아이템을 열람할 필요가 있는 적합 아이템 나열에서는 적합 아이템 발견과 마찬가지로 리스트 형식 등 일관성 있는 표지 형식으로 제공한 것이 일반적입니다. 

사용자는 표시된 아이템의 대부분을 열람하는 경우가 많고 예측 평가 순으로 정렬하는 것보다 최신 아이템 순 등 알기 쉬운 규칙으로 나열해 표시함으로써 사용자가 정보를 열람하는 부담을 낮추는 경우가 많습니다.

 아이템 계열 소비

열람, 소비하는 동안 추천된 아이템 계열 전체에서 가치를 누리는 것을 목적으로 하는 경우입니다. ex) 음악 스트리밍 서비스에서 음악을 계속 재생하여 듣는 상황. 이때 사용자는 한 곡 한 곡이 매력적인 것은 물론이고 계속해서 그 순서대로 음악이 재생되는 것 자체에도 의미가 있으며 매력적이라는데 가치를 느낍니다.

아이템 계열 소비의 독특한 특징으로는 같은 아이템을 여러번 추천해도 사용자 만족도가 향상 된다는 점을 들 수 있습니다. 단, 같은 아이템만 추천한다면 새로움이 느껴지지 않아 만족감이 저하되므로 빈도나 시점은 고려해야 합니다.

서비스 내 체류 (Just Browsing)

사용자가 사용하는 서비스 본래의 목적을 달성하는 것이 아니라 그저 아이템을 열람하는 것 자체를 목적으로 서비스 안을 돌아다니는 경우를 말합니다. ex) 지금 여행 계획이 없지만 어떤 관광지가 있는지, 어떤 숙박 시설이 있는지 등을 살펴보는 것을 목적으로 여행 예약 서비스나 호텔 예약 서비스를 사용해야하는 상황을 생각할 수 있습니다.

이때 사용자에게 구입 의사가 별로 없음에도 아이템 구입을 과도하게 강요하는 식으로 추천하면 사용자의 만족도가 떨어져 재방문하지 않게 될 우려가 있습니다. 다소 극단적이기는 하나, 예를 들어 페이지를 이동할 때마다 추천 상품의 팝업이 계속 표시하면 사용자가 사이트를 돌아다니기 불편해 이탈하게 되고 서비스에 대해 나쁜 인상을 가지게 될 수 있습니다. 

그 대신 개요 추천과 같은 서비스 내 인기 아이템이나 특정 카테고리의 신규 아이템 등을 처천함으로써 재미있고 흥미를 가질 수 있는 아이템이 서비스 안에 있다고 느낄 수 있도록 하는 것이 사용자 만족도를 높이는데 효과적입니다.

서비스 제공자의 목적에 맞는 UI/UX 사례

신규/사용 빈도가 낮은 사용자의 정착

서비스를 처음 방문한 신규 사용자나 사용 빈도가 별로 높지 않은 사용자가 다른 서비스로 이동하기 전에 만족도를 높여 서비스에 정착하도록 하는 것은 서비스 제공자에게 매우 중요합니다. 만족도를 높여 정착하도록 하려면 서비스 내에서 사용자에게 좋은 경험을 제공하는 것 뿐만 아니라 나쁜 경험을 하지 않도록 하는 것도 중요합니다.이러한 목적을 달성하는 데에는 소위 개요 추천(broad recommendation)을 사용합니다.

개요 추천이란 서비스 내 데이터 통계 정보나 서비스 지식이 풍부한 편집자의 선택을 기반으로 추천하는 것을 의미합니다.

통계 정보에 기반한 추천이란 '이번 주 시청 순위'와 같이 서비스 전체의 사용 빈도 순위, '만화 매출 순위'와 같이 특정 카테고리 안의 매출 순위 같은 것을 의미합니다.

편집자의 선택에 기반한 추천이란 '영화 평론가들이 선정한 추천 목록'이나 '이번 주 특판 상품 목록'과 같이 서비스 편집자나 전문가가 직접 선택해 작성한 추천 리스트를 나타냅니다.

서비스 신규 사용자나 사용 빈도가 낮은 사용자를 대상으로 할 경우 사용자가 적극적으로 찾지 않아도 열람할 수 있도록 사이트의 첫 페이지 등 눈에 띄기 쉬운 위치에 배치하는 것이 효과적입니다. 그리고 사용자가 흥미를 느끼느 카테고리나 예산 금액 등으로 간단하게 선택할 수 있는 필터링 기능을 함께 제공할 수 있습니다.

가급적 많은 사용자가 서비스에서 이탈하지 않고 계속 사용하도록 하는 것이 목적이므로 특정 사용자에게 깊이 연관된 아이템보다는 여러 사용자가 조금씩 연관되도록 아이템을 추천하는 것이 좋습니다. 그리고 서비스에 별로 애착이 없는 사용자에게는 흥미를 느끼기 쉬운 경험을 제공하는 것도 효과적일 것입니다.

서비스에 대한 신뢰성 향상

전자 상거래 등의 서비스 제공자가 사용자로부터 신뢰를 얻는 것은 중요합니다. 사용자는 서비스에서 제공하는 아이템이나 광고의 경우 서비스 제공자의 이익을 가장 우선한다고 생각하는 경우가 많습니다. 기본적으로 사용자의 이익을 추구하는 것이 서비스 제공자의 이익과도 연결되므로 극단적으로 서비스 제공자의 이익만 우선하여 추천하거나 광고를 노출시키지는 않아야 합니다. 그것을 사용자가 믿고 서비스를 사용하도록 신뢰성을 높여야 합니다. 이러한 목적을 달성하는 데 사용자 평가가 효과적입니다.

사용빈도 향상 및 이탈 사용자의 복귀

서비스 제공자의 입장에서는 사용자가 지속적으로 서비스를 이용하기를 바랍니다. 그러기 위해서는 서비스 사용 중 사용자 경험을 향상시키기 위해 다양한 노력을 기울여야 합니다. 한편 사용 빈도가 낮은 사용자나 이미 이탈해버린 사용자 등 애초에 서비스 안에서 만족도를 향상시키기 어려운 경우도 있습니다. 이럴 때는 알림 서비스가 효과적입니다. 적절한 시간과 내용을 고려하여 불쾌감이 없도록 조율해야합니다.

교차 판매(cross selling)

어떤 상품의 구매를 검토하고 있는 사용자에게 다른 상품을 함께 또는 개별적으로 구입하도록 함으로써 단가를 높이는 방법을 교차 판매라 부릅니다. 교차 판매는 서비스 제공자 입장에서 매출 향상을 도마할 수 있고 사용자 입장에서도 필요한 물건을 함께 구입할 수 있어 만족도가 높은 방법입니다. 

교차 판매를 구현하는 효과적인 수단으로 연관 아이템 추천(product-associated recommentdations)을 들 수 있습니다. 사용자가 현재 주목하고 있는 아이템과 연관된 아이템을 사용자에게 표시하는 것입니다. 예를 들어 '자주 함께 구매하는 상품'으로 사용자가 주목하고 있는 아이템과 함께 많이 구매되는 아이템을 추천함으로써 교차 판매를 향상시킬 수 있습니다. 

교차 판매라는 목적과 다르지만 연관 아이템 추천이라는 관점에서 사용자가 주목하고 있는 아이템과 동등한 유사 아이템을 표시함으로써 상품 비교를 통해 구매하는 것을 도울수도 있습니다. 예를 들어 '비슷한 상품과 비교'한다는 목적으로 현재 열람 중인 상품과 제조사가 다른 비슷한 상품을 보여주면 사용자는 선택하기 쉬워질 것입니다. 

장기적으로 사용자의 충성도 향상

단기적으로 상품을 판매해 매출을 향상시키는 것도 중요하지만 장기적으로 사용자의 충성도(loyalty)를 높여 서비스를 계속 사용하도록 하는 것도모든 서비스에서 중요합니다. 특히 사용자가 지속적으로 이용하는 것이 이익으로 이어지는 구독 모델 상품 등에서는 더욱 더 중요합니다. 

개인화(personalize)는 서비스 내에서 수집한 사용자 정보나 행동 이력을 활용해 그 사람에게 맞는 아이템을 추천하는 즉, 개인화된 추천 결과를 제공하는 형태를 나타냅니다. 개인화에서는 사용자가 서비스를 이용할수록 추천에 활용할 수 있는 정보가 축적되어 각 사용자들에게 보다 적절하게 추천할 수 있게 됩니다. 이에 따라 사용자 만족도가 높아지고 다른 서비스와의 차별화로 이어져 장기적으로 사용자의 충성도를 향상시킬 수 있습니다.

개인화의 경우 추천 결과가 각 사용자에게 맞춰 있으므로 그것을 사용자에게 명시적으로 표시하는 것이 좋은 효과를 나태냅니다. ex) '당신에게 추천하는 콘텐츠입니다'  반대로 과도한 개인화는 사용자 만족도를 손상시킬 수 있어 주의해야 합니다. 사용자가 스스로 인식한 것 이상으로 서비스에 정보를 빼앗기고 있다는 생각에 공포를 느끼고 불신감을 갖거나, 추천 기술을 쉽게 이해할 수 없고 기분 나쁜 것이라고 생각해 불쾌감을 느낄 수 있기 때문입니다.

 

https://www.yes24.com/Product/Goods/118625987

 

추천 시스템 입문 - 예스24

추천 시스템 도입을 고민하고 있다면 제일 먼저 봐야 하는 책! ‘맞춤 동영상’ ‘팔로우 추천’ ‘다른 고객이 함께 본 상품’ 등 추천 기능은 주변의 다양한 서비스에 포함되어 있다. 수많은

www.yes24.com

 

'공부 > 추천 시스템' 카테고리의 다른 글

추천 알고리즘 종류  (0) 2025.03.15
추천 시스템 프로젝트  (0) 2025.03.14
검색 시스템과 추천 시스템  (0) 2025.03.13
추천 시스템의 종류  (0) 2025.03.13
추천 시스템  (0) 2025.03.13

추천 시스템 개발에 필요한 3가지 스킬

  • 비즈니스 문제 해결 능력 : 과제 배경을 이해하고 비즈니스 과제를 정리 및 해결하는 능력
    • 추천 시스템을 도입함으로써 무엇을 기대할 수 있는 지 정의하는 것이 중요
    • 경우에 따라서는 추천 시스템이 필요하지 않거나 인기순 추천만으로도 충분하기 때문
    • 구체적으로는
      • 시스템을 도입함으로써 사용자의 어떤 행동 변화를 기대하는가에 관한
      • Key Goal Indicator (KGI)
      • Key Performance Indicator (KPI) 책정이 매우 중요합니다.
    • 사용자의 어떤 행동을 최대화하고 싶은지에 따라 구현할 추천 시스템이 달라집니다. KPI를 책정할 때는 대상 시스템에 관해 숙지하고 서비스상에서의 사용자 행동에 관해 깊이 이해해야합니다.
    • KPI를 책정할 때는 현재 얻은 데이터에서 생각하지 말고 사용자 행동의 본질을 담은 지표부터 검토한 후 만약 해당 데이터가 없다면 개발자와 협력하면서 로그를 정비해나가야 합니다.

 

  • 데이터 사이언스 능력 : 정보 처리, 인공 지능, 통계학 등의 정보 과학 계열의 지식을 이해하고 사용하는 능력
    • 데이터의 양과 종류, 비즈니스에 필요한 추천 시스템의 구현 복잡도에 따라 다릅니다.
    • 한번에 이상적인 추천 시스템을 만드는 것이 아닌 전통적인 방법을 통해
      • 얼마만큼의 정확도가 나오는지 확인한 후
      • 이상과 현실의 차이가 너무 크지 않은지 검토하여 
      • 적정 비즈니스 관련 부서와 커뮤니케이션하는 것이 중요합니다.
    • 또한 시행 착오 과정에서 데이터의 성질이나 각 추천 알고리즘의 장단점을 파악하는 것이 중요합니다.

 

  • 데이터 엔지니어링 능력 : 데이터 사이언스를 의미 있는 형태로 사용해 구현 및 운용할 수 있는 능력
    • 실제 서비스에 조합할 때는 다양한 비즈니스 요건을 고려해 구현하고 시스템을 안정적으로 가동시켜야 합니다.
    • 계산이 빠르게 완료되도록 처리를 병렬화하거나 데이터베이스 설계, 튜닝 등을 해야합니다. 
    • 매일 추천 시스템에 사용되는 데이터를 가공하고 추천 목록 작성 연산을 수행하며 추천 목록을 데이터베이스에 저장하는 일련의 처리(파이프라인)를 조정해야 합니다.

 

추천 시스템 프로젝트 진행 방법

추천 시스템 진행 방법

과제 정의

자사 사이트에 시스템을 도입하고 싶을 때는 비즈니스상의 목적을 명확히 해야 합니다. 예를 들어,

  • 1개월 매출을 2배로 늘리고 싶은 경우 
    • 그것을 한 층 더 잘게 나누어 사용자 1명당 매출을 2배로 할 것인가
    • 사용자 수를 2배로 할 것인가 등 
  • 비즈니스 지표(KPI)를 결정해나갑니다. 그리고 KPI의 목표와 현재의 차이를 확인한 뒤 현재 자사 사이트의 과제를 정리하고 적절한 조치를 검토합니다. 

분석

정량적 분석 : 데이터를 사용해 분석을 진행

  • 웹 사이트 행동 로그 데이터를 분석함으로써 
    • '애초에 검색한 내용이 적다'
    • '검색하는 사용자는 많지만 최고 검색 결과 페이지에서 이탈하고 만다' 
  • 같이 현재 상태의 과제를 알 수 있습니다. 

한편, '어째서 애초에 검색한 사용자가 적은가', '어째서 최초 검색 결과 페이지에서 이탈하는가'와 같은 이유에 대해서는 데이터로 조사하는 것보다 직접 사용자에게 물어봤을 때 시사점을 알 수 있는 경우가 많습니다.

정성적 방법: 사용자와 인터뷰를 진행하여 분석

  • '어떤 단어로 검색하면 좋을지 몰라 도중에 그만둬버렸다'
  • '검색 결과 화면에서 각 아이템의 타이틀만 표시되어 아이템을 일일이 클릭해 확인하기 어려웠다' 처럼
  • 로그만으로는 알 수 없는 잠재적인 사용자의 심리 상태에 관한 인사이트를 얻을 수 있습니다.

데이터와 사용자 인터뷰를 모두 활용해 현재 상태의 과제 정확도를 높이고 이번 비즈니스 목표를 달성하기 위한 각 과제의 중요도를 결정합니다. 

과제 중요도
어떤 단어로 검색해야 좋을지 모르겠다. 2
검색 결과 화면의 각 아이템 정보가 충분하지 않다. 3
검색 결과 화면에 아이템이 너무 많이 표시되어 원하는 아이템에 도달하기 어렵다. 4
각 아이템의 상세 화면에서 해당 아이템과 비슷한 아이템을 알 수 없다 4

데이터 분석 및 사용자 인터뷰 결과 다음 두 과제가 중요한 것으로 판별되었다고 가정하겠습니다.

  • 너무 많은 아이템이 표시되어 원하는 아이템에 도달하지 못해 이탈률이 높다
  • 각 아이템의 상세 화면에서 해당 아이템과 비슷한 아이템을 알 수 없어 이탈률이 높다

 

가설 수립

다음으로 각 과제를 해결하는 방법과 그것을 실현하기 위한 비용을 검토하고 비용 대비 효과 (Return On Inverstment : ROI)가 높은 이니셔티브부터 실행합니다.

과제 대응책 중요도 비용 우선 순위
어떤 단어로 검색해야 하는지 알 수 없다. 단어 제안 기능을 구현한다 2 보통 낮음
어떤 단어로 검색해야 하는지 알 수 없다. 검색 단어의 예를 몇 가지 표시해둔다. 2 작음 보통
.검색 결과 화면에 아이템의 정보가
충분하지 않다.
검색 결과 화면에 각 아이템의 정보를
충분히 나타낸다.
3 작음 보통
검색 결과 화면에 너무 많은 아이템이 표시돼 원하는 아이템에 도달할 수 없다. 검색 결과를 선호하는 순으로 정렬한다. 4 작음 높음
각 아이템의 상세 화면에서 그 아이템과
비슷한 아이템을 알 수 없다.
각 아이템의 상세 화면에 비슷한 아이템을 추천하는 기능을 붙인다. 5 보통~큼 보통

 

  • 검색 결과에 너무 많은 아이템이 있어 원하는 아이템에 도달할 수 없는 경우
    • 인기순이나 가격순으로 정렬할 수 있는 기능을 추가
    • 사용자가 원하는 아이템을 쉽게 찾을 수 있어 이탈률 감소

이 경우에는 먼저 검색과 관련된 구현 비용을 낮고 중요도가 높은 과제를 해결한 뒤 추천 시스템을 다루는 것이 효과적입니다. 이처럼 추천 시스템을 도입하는 것 보다 비용이 낮은 다른 방법으로 비즈니스 목표를 해결할 수 있다면 먼저 검토하는 것이 좋습니다.

특히 검색 시스템의 기능을 개선하는 것이 비용 대비 효과가 높은 경우가 많으므로 굳이 추천 시스템을 도입하지 않고 검색 기능을 확장하는 가능성도 포함됩니다. 

검색 시스템을 개선한 다음에는 중요한 과제인 각 아이템의 상세 화면에서 비슷한 아이템을 추천하는 기능을 개발합니다.

  • 비용 항목이 '보통~큼'인 이유는 유사도 추천이라고 해도 여러 가지 방법이 있기 때문입니다. 따라서 어떤 유사도 분석을 구현할 것인지는 사용자의 필요에 따라 정리해나갑니다. 
    • ex) 수공예품 판매 사이트
      • 어떤 작품에 대해 같은 제작자의 작품을 유사한 작품으로 배열
      • 작품의 장르가 같은 것들을 나열
    • 음악 스트리밍 사이트
      • 곡조가 비슷한 곡을 추천
      • 해당 곡이 유행한 시기의 다른 곡들을 추천 등등
    • 온라인 쇼핑몰
      • '이 상품을 구매한 사람은 다음과 같은 상품도 함께 구매하였습니다' 라는 추천 등등

유사도라고 해도 아이템에 따라 여러 관점이 있으므로 사용자가 가장 원하는 유사도가 무엇인지 파악한 후 구현하는 것이 좋습니다.

 

데이터 설계/수집/가공

현재 어떤 데이터가 축적되어 있는지 정리합니다. 추천 시스템 개발에 필요한 데이터는 주로 다음과 같습니다.

  • 사용자와 아이템의 콘텐츠 정보
    • 사용자 정보 : 나이, 성별 등 프로필 정보와 어떤 장르의 아이템을 좋아하는가 하는 기호도 정보
    • 아이템 정보: 아이템 설명문, 태그, 카테고리, 등록일 등의 정보
  • 사용자와 아이템의 인터랙션 정보
    • 열람, 북마크, 구입, 시청, 평가 등의 정보

먼저 자사 서비스가 어떤 데이터를 가지고 있는지 정리하고 그 데이터로 추천 시스템을 구축할 수 있는지 검토합니다. 특히 서비스 초기 단계에서는 사용자와 아이템의 인터랙션 데이터가 없는 경우가 많으므로 우선 아이템 정보를 사용한 추천 시스템 구축부터 검토해야 할 때가 많습니다. 

알고리즘 선정

어떤 추천 알고리즘을 사용할지 결정합니다. 알고리즘 계산 시간, 필요한 데이터, 요구되는 예측 정확도 등 다양한 관점에서 비즈니스 목표에 적합한 것을 선택합니다. 일반적인 머신러닝 모델과 마찬가지로 일정한 비용을 투입하면 처음에는 어느 정도 정확도를 얻을 수 있습니다. 하지만 정확도를 95%에서 96%로 올리는 데는 막대한 비용이 들기도 합니다. 서비스 초기에는 먼저 간단한 알고리즘부터 구현하는 것이 좋습니다.

학습/파라미터 튜닝

추천 시스템의 학습과 튜닝을 수행하고 실제 서비스로 출시하기 전에 과거 데이터를 사용하여 온라인으로 추천 시스템의 좋고 나쁨을 검증합니다.

온라인에서 추천 시스템의 정확도를 검증할 때는 Recall, Precision 같은 머신러닝 지표도 중요하지만 구체적으로 이 아이템을 넣으면 어떤 아이템이 나오는지 확인하고 그 결과가 납득되는지 확인해야 합니다. 온라인에서 검증할 때는 데이터 편향(bias)에 주의해야 합니다. 편향은 왜곡된 데이터를 처리하지 않고 모델에 학습하게 만들어 예측 결과 또한 치우친 결과를 만들어 내는 것을 의미합니다. 그러므로, 이 편향들을 제거한 후 추천 시스템을 만들어서 평가해야 합니다.

시스템 구현

온라인에서 좋은 추천 알고리즘을 완성했다면 이제 실제 시스템에 조합해야 합니다. 

  • 추천 알고리즘의 학습이나 예측 변경 빈도,
  • 신규 아이템이나 사용자에 대한 추천을 어떻게 할지,
  • 추천에 연관된 데이터 파이프라인 설계를 어떻게 할지 등을 고려해야 합니다.

배치 추천

배치 추천은 1일 1회 또는 1주 1회 등 정해진 시점에 해당 시점의 정보를 기반으로 추천 목록을 업데이트하여 사용자에게 제공하는 것입니다. 추천 목록은 추천 모델 학습, 추천 모델에 의한 예측 2단계 처리를 통해 작성됩니다.

추천 모델 학습의 경우 매번 새롭게 학습하면 신규 아이템까지 추천할 수 있어 좋지만 학습에 시간이 걸릴 때는 타협해서 1주일에 1번 학습하기도 합니다.

추천 모델에 의한 예측은 사용자가 얼마나 되는지에 따라 계산 구조가 달라집니다. 사용자가 10만명이고 각 사용자마다 추천 리스트를 만드는 경우 한 사람의 추천 목록을 만드는 데 드는 시간이 1초라고 가정한다면 10만 초 = 27.8시간이 소요됩니다. 이를 고속화하기 위해 병렬 처리를 하는 등 한 사람에 대한 추천 리스트 작성 시간을 줄여야 합니다.

실시간 추천

실시간 추천은 사용자의 직전 행동 이력을 즉시 반영해 추천 목록을 만드는 것입니다. 사용자의 행동 이력을 즉시 반영하려면 데이터의 동기나 실시간 연산 등 폭넓은 엔지니어링 기술이 필요합니다.

평가 및 개선

마지막으로 추천 기능을 출시하고 그것이 실제로 효과가 있는지 검증합니다. 가능하면 A/B테스트 같은 구조로 일부 사용자에게만 추천 기능을 제공해 추천 했을 때와 그렇지 않을 때 사용자의 구입 금액이나 체류 시간을 검증합니다. A/B테스트가 어려운 경우 출시 전후를 비교해야 하지만 시계열에 따른 트렌드 등을 고려해 평가해야 합니다.

그리고 추천 시스템을 도입한 후 추천을 통한 매출이 발생해도 그것을 성공이라고 간주하기에는 아직 이릅니다. 추천을 통한 매출이 증가해도 검색을 통한 매출이 줄어 전체적으로 한 사용자당 매출이 감소하기도 합니다. 추천 시스템만 보는 것이 아니라 시스템 전체를 보고 악영향이 없는지 확인하는 것 또한 중요합니다.

 

 

https://www.yes24.com/Product/Goods/118625987

 

추천 시스템 입문 - 예스24

추천 시스템 도입을 고민하고 있다면 제일 먼저 봐야 하는 책! ‘맞춤 동영상’ ‘팔로우 추천’ ‘다른 고객이 함께 본 상품’ 등 추천 기능은 주변의 다양한 서비스에 포함되어 있다. 수많은

www.yes24.com

 

'공부 > 추천 시스템' 카테고리의 다른 글

추천 알고리즘 종류  (0) 2025.03.15
추천 시스템의 UI/UX  (0) 2025.03.14
검색 시스템과 추천 시스템  (0) 2025.03.13
추천 시스템의 종류  (0) 2025.03.13
추천 시스템  (0) 2025.03.13

추천 시스템과 비슷한 것으로 검색 시스템이 있습니다. 많은 웹 서비스에 추천 시스템과 검색 시스템이 모두 포함되어 있으며, 추천 시스템 개발 시 검색 시스템과 역할 차이를 이해하는 것은 매우 중요합니다.

  검색 시스템(Pull 타입) 추천 시스템(Push 타입)
사용자가 미리 마음에 드는 
아이템을 파악하고 있는가
파악하고 있는 경우가 많음 파악하고 있지 않은 경우가 많음
키워드(쿼리)입력 입력 있음 입력 없음
연관 아이템 추천 방법 입력된 검색 키워드로 사용자 의도 추측 사용자의 프로필이나 과거 행동으로 추측
사용자의 자세 능동적 수동적
개인화 개인화하지 않는 경우가 많지만 최근에는
개인화 서비스가 증가하고 있음
개인화하는 경우가 많음

검색과 추천은 모두 '많은 아이템에서 가치 있는 아이템을 선택' 하는 것이지만 사용자는 이 둘을 다른 목적으로 사용하며 'Pull 타입'인지 'Push 타입'인지로 설명되기도 합니다.

검색 

  • 사용자가 원하는 것을 미리 파악
  • 검색 키워드(쿼리)를 이용해 능동적으로 알고자 하는 정보나 상품을 많은 후보 가운데 이끌어냄(Pull)
  • 검색에서는 쿼리의 의도를 읽어 연관도가 높은 아이템을 표시하는 것이 중요
  • 검색 쿼리가 같다면 사용자에 관계없이 같은 결과를 반환하는 것이 전형적

하지만 최근에는 검색 결과를 개인화하는 경우도 증가하고 있습니다.

추천

  • 사용자가 원하는 것을 미리 파악하지 않더라도
  • 키워드 등을 입력하지 않더라도 사용자가 좋아하는 상품을 시스템이 제시(Push)
  • 사용자가 명확한 의도를 갖고 웹 사이트를 방문하지 않더라도 이제까지의 행동 이력을 기반으로 추천
  • 그렇기 때문에 사용자는 몰랐던 아이템을 만나기도 함

그리고 음악이나 패션 아이템을 찾을 때는 해당 아이템의 분위기를 언어로 잘 표현할 수 없는 경우가 있습니다. 그런 경우 텍스트 형식의 검색에서는 사용자가 좋아하는 아이템을 찾기가 상당히 어렵습니다. 추천으로는 언어화하기 어려워도 비슷한 취향의 아이템을 선호하는 사람의 기호는 비슷한 경우가 많으므로 사용자가 과거에 열람했거나 구입한 아이템과 분위기가 비슷한 아이템을 추천할 수 있기 때문에 좋아하는 아이템을 쉽게 만날 수 있습니다. 어느 한 쪽을 선택하는 것이 아닌 적절한 협력이 필요합니다.

 

https://www.yes24.com/Product/Goods/118625987

 

추천 시스템 입문 - 예스24

추천 시스템 도입을 고민하고 있다면 제일 먼저 봐야 하는 책! ‘맞춤 동영상’ ‘팔로우 추천’ ‘다른 고객이 함께 본 상품’ 등 추천 기능은 주변의 다양한 서비스에 포함되어 있다. 수많은

www.yes24.com

 

'공부 > 추천 시스템' 카테고리의 다른 글

추천 알고리즘 종류  (0) 2025.03.15
추천 시스템의 UI/UX  (0) 2025.03.14
추천 시스템 프로젝트  (0) 2025.03.14
추천 시스템의 종류  (0) 2025.03.13
추천 시스템  (0) 2025.03.13

추천 시스템은 입력 (데이터 입력), 프로세스(추천 설계), 출력(결과 제시)의 3요소로 정리할 수 있습니다.

추천 시스템의 3요소

입력(데이터 입력)

추천 시스템에 사용하는 데이터는 주로 콘텐츠(contents)와 인터랙션(interaction) 두 종류가 있습니다.

 

사용자 아이템의 콘텐츠 정보

사용자의 콘텐츠 정보나이, 성별, 주소 등 프로필 정보입니다. 서비스에 따라서는 회원 등록시 선호하는 카테고리나 가격대를 설문으로 수집하는 경우도 있으므로 그 정보도 포함합니다.

아이템의 콘텐츠 정보카테고리, 상품 설명문, 발매일, 가격, 제작자 등입니다. 이 정보들은 기본적으로 사용자나 아이템이 추가되었을 때 서로 연결되는 콘텐츠 정보에 해당합니다. 콘텐츠 정보를 이용하는 추천을 내용 기반 필터링(content-based filtering)이라 부릅니다.

 

사용자와 아이템의 인터랙션 정보

인터랙션 정보는 사용자가 서비스 안에서 행동한 이력 데이터를 말합니다. 열람, 구입, 북마크, 평가 등이 아이템에 대한 인터랙션 데이터 입니다. 이 데이터는 사용자가 서비스 안에서 행동할수록 축적됩니다. 인터랙션 정보를 사용하는 추천을 협업 필터링(collaborative filtering)이라 부릅니다.

  • 콘텐츠 정보보다는 인터랙션 데이터가 실시간으로 업데이트 됩니다.
    • 인터랙션 데이터를 사용한 협조 필터링이 사용자의 기호를 더 반영하여 클릭이나 구입을 유도할 수 있는 추천 방법이 되는 경향이 있습니다.
  • 한편, 신규 사용자나 신규 아이템은 행동 이력 데이터가 없으므로 콘텐츠 정보를 사용한 내용 기반 필터링으로 추천하는 경우가 많습니다.
    • 신규 사용자나 신규 아이템 데이터가 적어 추천이 어려워지는 것을 콜드 스타트 문제(cold start problem)라 부르며 실제로도 많이 직면합니다.

 

프로세스(추천 설계) 

개요 추천(개인화 없음)

개요 추천은 신규 아이템순, 낮은 가격순, 높은 인기순 등 모든 사용자에게 동일한 내용을 제시합니다. 개인화가 적용된 추천에 비해 기술은 매우 간단하지만 업종에 따라서는 개인화를 적용한 것 보다 클릭률이나 구매율이 높은 경우도 있습니다. 

예를 들어

  • 미디어에서는 정보의 신규성이 중요하며 신규 정보순으로 가격이 높습니다.
  • 또한, 모두가 보고 있는 정보를 보고 싶다는 욕구도 높아서 인기순으로 가격이 높습니다.
  • 뉴스 사이트와 같이 아이템이 빠르게 바뀌는 경우에도 효과적입니다.
  • 그러나 아이템이 바뀌지 않는 경우에는
  • 항상 같은 아이템이 인기도나 신규 아이템순으로 나타나기 때문에 별로 효과적이지 않습니다.

연관 아이템 추천

연관 아이템 추천은 아이템 페이지 아래쪽에 표시되는 경우가 많습니다.

  • '이 아이템을 확인한 사람은 이런 아이템도 확인했습니다'
  • '관련된 비슷한 아이템입니다'

 같이 표시됩니다. 사용자가 사이트 안에서 체류하는 시간을 늘리고 원하는 아이템을 쉽게 만나게 합니다. 연관 아이템 설계는 각 아이템 사이의 유사도를 사용합니다.

유사도 설계에는

  • 아이템 설명문이나 카테고리 정보 등 콘텐츠 정보를 기반으로 설계한 내용 기반 필터링 방법
  • 사용자 행동 이력을 기반으로 함께 확인하기 좋은 아이템을 유사한 것으로 설계하는 협업 필터링 방법

이 있습니다. 일반적으로 협업 필터링 방법이 내용 기반 필터링 방법에 비해 카테고리나 키워드로는 표현할 수 없는 아이템의 분위기나 콘셉트를 유사도에 반영하는 경우가 많습니다. 유사도를 판단할 때 다음과 같은 관점을 활용합니다.

  • 비슷한 아이템일 가능성이 높을 때 유사도가 높다고 판단
  • 함께 구입될 만한 아이템일 가능성이 높을 때 유사도가 높다고 판단
  • 그리고 해리포터 문제(Harry Porter Problem)라 불리는 문제가 있습니다.
    • 특정 시기에 많은 사람이 해리포터 서적을 다른 아이템과 함께 구입함에 따라 모든 아이템의 추천 아이템으로 항상 해리포터가 추천되었습니다.
    • 이렇듯 인기있는 아이템의 영향을 제거해야 할 경우도 있습니다.

경우에 따라 해당 아이템과 관련해 표시해야 할 아이템 종류가 다르므로 이를 고려해 연관 아이템 추천 구조를 설계하는 것이 중요합니다.

개인화 추천

개인화 추천은 사용자의 프로필이나 행동 이력을 기반으로 각 사용자에 맞춰 추천하는 것입니다. 개인화 추천은 콘텐츠를 기반으로 하는 방법과 인터랙션 데이터를 활용하는 방법이 있으며 두 가지를 모두 사용하는 방법도 있습니다. 

콘텐츠 기반으로 추천할 때는 나이나 거주지 등의 프로필 정보를 기반으로 그에 맞는 아이템 그룹을 설계합니다. 예를 들어 구인 추천의 경우 사용자가 살고 있는 위치에서 가까운 구인 정보를 필터링해 추천합니다.

사용자와 아이템의 인터랙션 데이터를 기반으로 추천할 때는 협조 필터링 등의 방법을 사용해 사용자의 과거 행동 이력으로부터 추천 아이템을 계산합니다.

사용자 이력을 기반으로 추천하는 방법 중에서도

  • 열람 이력을 그대로 표시하는 추천은 구현 비용이 낮은 것에 비해 효과가 높습니다.
    • 특히, 동영상이나 음악 사이트 등 한 번 열람한 것을 다시 열람한는 경우가 많은 사이트에서 효과적입니다.
    • 전자 상거래 사이트와 같이 아이템을 열람한 뒤 어느 정도 시간이 지난 후에 구입하는 서비스에서도 리마인더 기능으로 효과적입니다.
  • 그 외에도 열람 이력과 연관 아이템 추천 구조를 조합해서 사용하기도 합니다.
    • 사용자가 마지막에 열람한 아이템과 비슷한 아이템 그룹을 연관 아이템 추천
    • 이 방법은 연관 아이템 추천 구조를 하나만 가지고 있어도 되므로 운용하기 쉽고 간단하게 개인화 가능

일반적으로 사용자와 아이템의 인터랙션을 활용한 개인화 추천 시스템은 사용자의 흥미나 기호를 실시간으로 반영하기 때문에 클릭이나 구입 예측 성능이 높습니다. 

 

출력(추천 결과 제시)

마지막으로 사용자에게 추천 아이템을 제시하는 방법에 관해 살펴보겠습니다. 비즈니스에서 제시 방법은 매우 중요하며 좋은 추천 아이템을 설계해도 제시 방법이 나쁘면 사용자의 행동을 이끌어 낼 수 없습니다. 웹 사이트에서 제시하거나 메일을 발송하고 우편으로 추천 아이템 쿠폰을 보내는 등 다양한 방법으로 아이템을 사용자에게 도달하도록 할 수 있습니다. 그리고 추천 이유를 곁들이거나 적절한 시점을 예측하는 등 제시 방법도 다양합니다.

추천 시스템을 도입할 때 반드시 이 틀에서 생각해보기 바랍니다.

  • 현재 어떤 데이터가 있는지,
  • 어떤 알고리즘을 사용하면 비즈니스에 영향을 줄 수 있는지,
  • 어떤 제시 방법을 사용해야 사용자가 행동할지

이를 정리해보면 새로운 시각으로 볼 수 있을 것입니다.

 

https://www.yes24.com/Product/Goods/118625987

 

추천 시스템 입문 - 예스24

추천 시스템 도입을 고민하고 있다면 제일 먼저 봐야 하는 책! ‘맞춤 동영상’ ‘팔로우 추천’ ‘다른 고객이 함께 본 상품’ 등 추천 기능은 주변의 다양한 서비스에 포함되어 있다. 수많은

www.yes24.com

 

'공부 > 추천 시스템' 카테고리의 다른 글

추천 알고리즘 종류  (0) 2025.03.15
추천 시스템의 UI/UX  (0) 2025.03.14
추천 시스템 프로젝트  (0) 2025.03.14
검색 시스템과 추천 시스템  (0) 2025.03.13
추천 시스템  (0) 2025.03.13

https://www.yes24.com/Product/Goods/118625987

 

추천 시스템 입문 - 예스24

추천 시스템 도입을 고민하고 있다면 제일 먼저 봐야 하는 책! ‘맞춤 동영상’ ‘팔로우 추천’ ‘다른 고객이 함께 본 상품’ 등 추천 기능은 주변의 다양한 서비스에 포함되어 있다. 수많은

www.yes24.com

 

추천 시스템은 우리가 다음에 무엇을 하면 좋을지 의사 결정을 지원하는 기술로 주변의 다양한 서비스에 포함되어 있습니다. 유튜브 '맞춤 동영상', 트위터 '팔로우 추천', 스포티파이 '추천 플레이리스트' 같은 서비스를 예로 들 수 있습니다.

추천 시스템 정의에서 '여러 후보 가운데 가치 있는 것을 선정한다'의 의미를 알아보겠습니다. 가치를 정의하는 방법에 따라 다양한 추천 알고리즘이 제안됩니다. 

  • 단순하게 열람 횟수가 많은 상위 10개의 인기 아이템을 선택하는 방법
  • 사용자가 과거에 구입한 것과 유사한 것을 선택하는 방법 등

각 알고리즘은 계산은 빠르지만 예측도가 떨어지거나, 축적된 데이터 양이 충분해야 예측 정확도를 높일 수 있는 등 장단점이 존재합니다. 따라서 비즈니스 목적에 맞춰 알고리즘을 적절하게 선택해서 사용해야합니다.

추천 시스템 정의에서 '의사 결정을 지원한다'는 것은 선택한 아이템을 사용자가 실제로 열람 또는 구입하도록 제시하는 것이 중요하단 의미입니다. 사용자에게 가치 있는 아이템을 추출했다 하더라도 그 결과가 적절하게 제시되지 않으면 사용자는 해당 아이템에 대해 반응하지 않습니다. 

이 시점에서 아이템을 어떤 단계로, 어떻게 사용자에게 도달하도록 할지 설계하는 것이 의사 결정 지원에서 중요합니다. 

웹 사이트에서

  • 추천 아이템을 표시할지
  • 메일로 보낼지
  • 스마트폰 푸시 알림을 보낼지 등등

고려해야 합니다. 그리고 상품을 구입한 시점에 다른 아이템을 추천할지, 상품을 살펴보는 중에 추천할지 등의 시점도 중요합니다. 웹 서비스에서의 사용자 경험을 고려해 의사 결정을 지원할 추천 아이템 제시 방법도 검토해야 합니다.

'공부 > 추천 시스템' 카테고리의 다른 글

추천 알고리즘 종류  (0) 2025.03.15
추천 시스템의 UI/UX  (0) 2025.03.14
추천 시스템 프로젝트  (0) 2025.03.14
검색 시스템과 추천 시스템  (0) 2025.03.13
추천 시스템의 종류  (0) 2025.03.13

각 데이터의 유사도를 측정하는 기법이다. 이를 이용하여 비슷한 여러 제품을 추천하는 서비스로 사용될 수 있다.

TF-IDF : Term Frequency - Inverse Document Frequency

  • 어떤 특정 단어(문장의 구성 요소)가 문서나 말뭉치에서 어떤 중요도를 가지는지를 나타내는 지표
  • 단어를 갯수 그대로 카운트 하지 않고, 많은 문서에 공통적으로 들어있는 단어의 경우 문서 구별 능력이 떨어진다고 보아 가중치를 축소하는 방법

 

유사도 분석을 위해 다음 두 문장을 예제로 든다.

  • A : That is a nice car
  • B: John has that red car
Document That Nice Car Johs Has Red
A 1 0 1 0 0 0
B 1 1 1 1 1 1

다음 두 문장에서 유사도를 보기 위해 두 문장의 단어 출현 횟수를 세어 표처럼 나타낸다. 여기서 불용어 (ex: is, a)등은 미리 삭제한 후 필요한 단어만을 남긴 상태다. 사실 That과 has 같은 경우도 일종의 불용어이므로 삭제된다.

Count Vectorizer

이처럼 나온 단어의 출현 횟수는 각 형태소로 분류하여 열로 작성하고 그 횟수를 기입한다. 이 과정은 수작업으로 진행하지 않아도 Scikit-learn을 활용하면 쉽게 구현된다. 

tip: Vertor(벡터)는 표의 하나하나 행을 나타낸다고 본다. 행벡터와 열벡터로 부르지만 일반적으론 행벡터로 많이 사용한다. 따라서 일종의 순서쌍이라고 생각하자. 하나의 행렬에서 행을 나타내는 것 또는 순서쌍을 벡터라고 부른다.

Count Vectorizer 한계점

문장의 출현 횟수를 반환한 상태에서 문장의 유사도 판별에 들어가면 다음과 같은 한계점이 존재한다.

  • 단어 반복
    • That을 예시로 든다면 전체 행렬에서 해당 문자의 출현 횟수가 굉장히 크다. 행 사이에 유사도 분석시 전체 행에서 막대한 영향이 생길 수 있다. 
    • 이는 의미가 적지만 많이 출현한 단어의 영향으로 별로 유사하지 않아도 유사하다는 결론이 나올 수 있다. 

따라서, 유사도 분석엔 Count-Vectorizer를 사용하진 않는다. 대신, 각 문장마다 유사 출현 횟수를 알고 싶을 경우엔 사용한다.

 

TF-IDF Vectorize

두 문장의 수치마다 TF-IDF값을 계산하여 데이터에 넣어준다. 이 값을 가지고 유사도를 분석할 수 있다. 

계산 흐름을 위해 전제를 하나 한다.

  • 우리가 비교할 문장은 약 1천 개를 가지고 있으며, That은 999개가 Red 단어는 9개만 출현함을 가정한다. 

TF-IDF는 전체 문장 횟수에서 흔하게 출현하는(반복 출현하지만 중요도가 낮은 : That) 횟수를 눌러 비중을 줄여준다. 또한 상대적으로 출현이 적은 단어는 횟수를 올려 존재감을 키운다.

계산 식은 단순하다. tf와 idf의 값을 곱하면 된다. 이때 tf와 idf는 유사도 단어 분석 값이다

문서 d(( document ))와 단어 t에 대해

$ tf-idf(d,t)=tf(d,t)\cdot idf(d,t)$

  • tf ((d,t)): 단어의 빈도수 (Count-Vectorizer를 통해 알아낸 값)
  • idf ((d,t)) : inverse document frequency

$idf(d,t)= log\frac{n_d}{1+df(t)}$

  • $n_d$ : 전체 문서의 수
  • df((t)): 단어 t를 가진 문서의 수

 

tip 로그 계산 법

로그는 밑의 값을 기준으로 위 값의 제곱 값을 꺼내면 된다.

  • 로그 10의 1은 0이다.
  • 로그 10의 10은 1이다.
  • 로그 10의 100은 2다.

로그는 어떤 원본 스케일을 크게 줄여주는 역할을 한다. 따라서 이 열의 자릿수를 비슷하게 맞춰주는 Feature Scaling역할에도 사용된다. 원본 숫자사이의 대소관계는 바뀌지 않는다.

 

빈도수를 체크했다면 다음 유사도를 비교한다.

Cosine similarity: 두 벡터 사이 각도의 코사인 값을 이용하여 측정. 두 벡터의 유사한 정도를 의미

 

  • 계산된 유사도는 -1에서 1까지의 값을 가진다
    • -1: 서로 완전히 반대되는 경우
    • 0: 서로 독립적인 경우
    • 1: 서로 완전히 같은 경우
  • 텍스트 매칭에 적용될 경우, AB의 벡터로는 일반적으로 해당 문서에서의 단어 빈도가 사용된다
  • 벡터간의 각도를 기반으로 유사도를 측정하기 때문에 각각의 스케일 영향을 받지 않는 특징이 있다.

두 벡터 사이: 두 행벡터의 값을 기준으로 XY로 좌표를 찍었을 때 사이 각 (코사인 각== 세타 값)의 각도가 얼마나 근접한가로 판별하는 듯.

 

참고

https://ko.wikipedia.org/wiki/%EC%BD%94%EC%82%AC%EC%9D%B8_%EC%9C%A0%EC%82%AC%EB%8F%84

인사이트(insight) '통찰', '본질을 꿰뚫어봄' 등의 의미를 가지고 있다. 데이터 분석 공부하다가, 관련 영상을 찾아보다가 참 많이 등장하는 단어다. 유용한 인사이트 발견 유용한 인사이트가 뭘까

나는 해당 문제를 본질적으로 이해하고 데이터를 통해 문제를 해결할 방안을 찾는 것이라 생각하고 있다. 그래서 데이터 분석에서 문제 정의가 가장 중요한 이유다. '무엇(what)'을 알아야 다음인 '어떻게(How)'를 계획할 수 있다.

다음은 캐글의 가방 가격 예측 대회의 데이터를 사용한 예시다. 자세한 내용은 프로젝트에 정리해서 올릴 생각이다.

간단히 설명하자면 다양한 속성을 바탕으로 배낭의 가격을 예측한다. 이 데이터로 알 수 있는 인사이트는 무엇일까? 일단 무엇(what)을 고민해봐야한다. 만약 대회의 주제에 맞게 가방 예측을 올리기 위한 정보가 필요하다면 

what

가방 가격 예측을 하고 싶어

how

  • 어떤 모델이 적절할까? 
  • 정확도를 올리기 위해 어떤 데이터가 중요할까?
  • 결측값을 어떻게 채울까?
  • 오버피팅(overfitting)을 어떻게 조절할까?
  • ...

이제 how에서 꼬리 형식으로 구체적인 계획을 작성하면 된다. ML이나 AI 모델링을 공부한 사람들에겐 익숙한 방식이다. 여기서 여러 방법론들이 나올 것이다. 만약, 예측도를 올리는 게 아닌 단순한 매출 상향을 원한다면 어떻게 접근해야 할까? 

 

what

이 데이터로 전략적 마케팅을 펼치고 싶어

how

  • 가격을 기준으로 소비자 추천
  • 특정 기능을 원하는 소비자 맞춤 추천
  • 브랜드를 선호하는 소비자를 위한 추천 등등

마케팅이란 결국 판매를 올리기 위한 연구다. 방법은 매우 많다. 나는 추천에 관심이 많아서 소비자에게 추천을 기준으로 고민하면 다음과 같이 생각할 수 있다. 

  • 가격대 별 (min~max) 별 가방 추천
    • 저렴한 가성비 / 일반적인 가격대 / 프리미엄
  • 특정 기능 별 가방 추천
    • 수납 공간이 많은 가방
    • 특정 컬러를 강조한 가방
    • 직업이나 취미 별 가방 ( 등산 / 운동 / 일상 )
  • 브랜드 추천
    • 해당 브랜드의 특징 파악

등등.. 단순히 예측을 위한 데이터 탐색과 결이 많이 달라진다. 따라서, 내가 어떤 문제를 해결해야하는지 본질적인 의문을 가지고 있는 것이 중요하다.

'공부 > 데이터 분석' 카테고리의 다른 글

데이터 분석을 위한 5단계 절차  (0) 2025.03.10
상관 관계와 인과관계  (0) 2025.03.10

패스트 캠퍼스 교육 수강 중 알려준 유용한 아티클.

https://brunch.co.kr/@data/10

 

데이터 분석을 위한 5단계 절차

Part1. 공공데이터 분석의 개념 | 이번 글에서는 공공분야 데이터 분석 절차를 설명한다. 필자의 경험상, 공공데이터 분석은 통상 5가지 단계에 의하여 이루어진다. 이 단계는 폭포수 모델 처럼

brunch.co.kr

 

공공 데이터 분석은 5단계에 의하여 이루어진다. 

  1. 문제 정의 단계 (가장 중요하지만 가장 어려운 단계)
    분석하고자 하는 분야를 이해하고, 해결해야 할 문제를 객관적이고 구체적으로 정의
    - 문제는 분석의 대상이면서 분석의 목적이기도 하다. 따라서 문제가 제대로 설정되지 않으면 분석 목표가 불분명해진다. 
  2. 데이터 수집 단계
    분석에 필요한 데이터 요건을 정의하고, 데이터를 확보

  3. 데이터 전처리 단계(가장 많은 수고가 필요한 단계)
    수집한 데이터에 존재하는 결측값이나 오류를 수정/보완. 경우에 따라서 데이터 구조나 특성을 변경

  4. 데이터 모델링 단계 (관점별로 나누고 쪼개어 보기)
    하나의 테이블(데이터 셋)이 아닌 다수의 테이블을 이용하여 분석. 이럴경우, 데이터 모델링 필요

  5. 시각화 및 탐색 단계(패턴을 찾고 인사이트를 얻기)
    다양한 도구를 이용하여 데이터를 시각화. 탐색을 통해 문제 해결

'공부 > 데이터 분석' 카테고리의 다른 글

인사이트  (0) 2025.03.10
상관 관계와 인과관계  (0) 2025.03.10

상관관계(Correlation)는 두 변수 간의 연관성을 나타내는 통계적 개념. 이는 두 변수 사이의 관계를 측정하는 방법으로, 한 변수가 변할 때, 다른 변수가 어떻게 변하는지를 나타냄.

인과관계(Caustion)는 한 변수(원인)가 다른 변수(결과)에 직접적인(확실한) 영향을 미치는 관계

상관관계는 결과에 원인이 될 수도 있고 아닐수도 있다. 반면, 인과관계는 필연적으로 결과에 영향을 준다. 확률성을 따지는 데이터 분석에서 자주 언급되는 상관관계는 가능성의 여지를 준다. 이를 통해 여러 가설을 만들고 실험할 수 있다. 어쩌면 말장난일 수 있겠다. '그럴수도 있고, 아닐수도 있음. 하지만 그럴 가능성이 조금 있네?' 쯤으로 생각하지 않을까? 확률이란게 재밌으면서 얄밉다.

'공부 > 데이터 분석' 카테고리의 다른 글

인사이트  (0) 2025.03.10
데이터 분석을 위한 5단계 절차  (0) 2025.03.10

+ Recent posts