Skip to content

Latest commit

 

History

16 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

나만의 스포티파이 알고리즘 제작

과정

  • 트위터 알고리즘 분석
  • 스포티파이 API 분석
  • 스포티파이 API 연결
  • 스포티파이 API 기반 추천 시스템(알고리즘) 제작

참고 및 출처



1. 트위터 알고리즘 분석 내용

언어 : scala 자바와 js, python을 섞은 느낌인 언어

아래의 순서대로 동작함



트위터 알고리즘 코드 특징 - 11/19

점수제로 선택과 정렬

트윗에서 설정된 태그 중에서 유해 혹은 불건전한 것들은 점수 감점 리트윗&답글&좋아요는 개수가 많을수록 점수 추가 링크들도 검수해서 감점 특정 단어들은 노출 제한 -> 전부 사용하지는 않음. 일부는 데이터 통계용

관심사나 특정 태그별로 묶어놓은 그룹(일명 '커뮤니티')가 있음



트위터 알고리즘 파이프라인 - 11/25

  1. 유저가 팔로잉한 계정과 팔로잉 안한 계정의 트윗들을 가져옴

    • 팔로잉 안한 계정은 유저와 유사한 다른 유저나 팔로잉한 계정이랑 관련이 있으면 가져온다.
  2. 트위터가 만든 딥러닝에 넣어서 결과값을 추출함

    • 트위터가 만든 딥러닝에서 위의 점수를 매기는 과정이 있다.
  3. 필터링을 함. (ex.차단한 계정, 유해&불건전한 트윗 등)

  4. 유저에게 데이터를 보냄 (모든 과정이 몇 초 밖에 안됨)



트위터 알고르즘에서 사용하는 추천 시스템 - 11/26

하이브리드 필터링을 사용하는 것 같다. 사용한 필터링들은 콘텐츠 기반, 협업 필터링의 기억 기반을 사용하는 것 같다.

콘첸트 기반 필터링

콘텐츠 자체의 특성과 사용자의 이전 행동 기록을 기반으로 사용자에게 추천함 예를 들어, 사용자가 영화 '캡틴 마블'을 재밌게 보았다면 '캡틴 마블'에 대한 분석을 바탕으로 성격이 유사한 영화 '블랙 위도우'를 추천함

협업 필터링

어떤 아이템에 대해서 비슷한 취향을 가진 사람들이 다른 아이템에 대해서도 비슷한 취향을 가지고 있을 것이라고 가정하고 추천을 하는 알고리즘 추천의 대상이 되는 사람과 취향이 비슷한 사람들, 즉 neighbor을 찾아 이 사람들이 공통적으로 좋아하는 제품 또는 서비스를 추천 대상인에게 추천하는 것

기억 기반

  • 사용자 기반 협업 필터링 : 나와 성향이 비슷한 사람들이 사용한 아이템을 나에게 추천해주는 방식
  • 아이템 기반 협업 필터링 : 내가 구매하려는 물품과 함께 많이 구매된 아이템을 나에게 추천해주는 방식

하이브리드

위의 있는 필터링에서 2개 이상을 같이 사용하는 추천 시스템 서로의 장단점을 보완하기 위해서 만들어진 시스템



2. 스포티파이 API 분석 - 11/26

사용할 API

  • main : player, playlists, search, users
  • sub : albums, artists, categories

※ markets은 default가 KO(Korea) -> 나라별로 지원해주는 API 정도가 다름

1. player

노래 재생 관련 기능들

2. playlists

사용자의 라이브러리들

3. search

간단한 정보들(앨범, 아티스트, 카테고리 등)을 찾는 기능 자세한 정보는 albums, artists, categories API들로 따로 구분이 되어있다.

4. users

사용자의 정보들

3. 만들 알고리즘 로직 - 12/03

콘첸트 + 협업

처음에는 데이터가 없으니까 인기있는 여러 종류를 추천 처음이 아닐 때는 여러 데이터로 추천할 것들을 협업 필터링을 거친 후 다시 한 번 더 콘텐츠 필터링 필터링은 점수제로 운영

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages