- 트위터 알고리즘 분석
- 스포티파이 API 분석
- 스포티파이 API 연결
- 스포티파이 API 기반 추천 시스템(알고리즘) 제작
- 트위터 알고리즘 : https://github.com/twitter/the-algorithm
- 스포티파이 API : https://developer.spotify.com/documentation/web-api
언어 : scala 자바와 js, python을 섞은 느낌인 언어
점수제로 선택과 정렬
트윗에서 설정된 태그 중에서 유해 혹은 불건전한 것들은 점수 감점 리트윗&답글&좋아요는 개수가 많을수록 점수 추가 링크들도 검수해서 감점 특정 단어들은 노출 제한 -> 전부 사용하지는 않음. 일부는 데이터 통계용
관심사나 특정 태그별로 묶어놓은 그룹(일명 '커뮤니티')가 있음
-
유저가 팔로잉한 계정과 팔로잉 안한 계정의 트윗들을 가져옴
- 팔로잉 안한 계정은 유저와 유사한 다른 유저나 팔로잉한 계정이랑 관련이 있으면 가져온다.
-
트위터가 만든 딥러닝에 넣어서 결과값을 추출함
- 트위터가 만든 딥러닝에서 위의 점수를 매기는 과정이 있다.
-
필터링을 함. (ex.차단한 계정, 유해&불건전한 트윗 등)
-
유저에게 데이터를 보냄 (모든 과정이 몇 초 밖에 안됨)
하이브리드 필터링을 사용하는 것 같다. 사용한 필터링들은 콘텐츠 기반, 협업 필터링의 기억 기반을 사용하는 것 같다.
콘텐츠 자체의 특성과 사용자의 이전 행동 기록을 기반으로 사용자에게 추천함 예를 들어, 사용자가 영화 '캡틴 마블'을 재밌게 보았다면 '캡틴 마블'에 대한 분석을 바탕으로 성격이 유사한 영화 '블랙 위도우'를 추천함
어떤 아이템에 대해서 비슷한 취향을 가진 사람들이 다른 아이템에 대해서도 비슷한 취향을 가지고 있을 것이라고 가정하고 추천을 하는 알고리즘 추천의 대상이 되는 사람과 취향이 비슷한 사람들, 즉 neighbor을 찾아 이 사람들이 공통적으로 좋아하는 제품 또는 서비스를 추천 대상인에게 추천하는 것
기억 기반
- 사용자 기반 협업 필터링 : 나와 성향이 비슷한 사람들이 사용한 아이템을 나에게 추천해주는 방식
- 아이템 기반 협업 필터링 : 내가 구매하려는 물품과 함께 많이 구매된 아이템을 나에게 추천해주는 방식
위의 있는 필터링에서 2개 이상을 같이 사용하는 추천 시스템 서로의 장단점을 보완하기 위해서 만들어진 시스템
사용할 API
- main : player, playlists, search, users
- sub : albums, artists, categories
※ markets은 default가 KO(Korea) -> 나라별로 지원해주는 API 정도가 다름
노래 재생 관련 기능들
사용자의 라이브러리들
간단한 정보들(앨범, 아티스트, 카테고리 등)을 찾는 기능 자세한 정보는 albums, artists, categories API들로 따로 구분이 되어있다.
사용자의 정보들
콘첸트 + 협업
처음에는 데이터가 없으니까 인기있는 여러 종류를 추천 처음이 아닐 때는 여러 데이터로 추천할 것들을 협업 필터링을 거친 후 다시 한 번 더 콘텐츠 필터링 필터링은 점수제로 운영

