한 번도 눈 뜬 적 없이, 눈 뜬 세상 설명하기
피드 추천 알고리즘 공개는 일론 머스크가 트위터를 인수하며 내건 공약 중 하나입니다. 이 사람은 정말 이름을 잊어버릴 틈이 없이 여기 저기서 화제를 몰고 다니네요. 여하튼 2023년 3월 31일부로 모든 사람들이 트위터의 피드 추천 알고리즘을 볼 수 있게 되었습니다. For You 피드에 국한된 공개지만, 알고리즘과 함께 추천 프로세스와 각 기능의 역할이 함께 공개되었기에 개발자뿐만 아니라 서비스 기획자에게도 좋은 레퍼런스가 생겼습니다. 트위터처럼 거대한 SNS의 추천 알고리즘 일부를 관찰할 수 있는 좋은 기회니까요.
트위터의 피드 추천 알고리즘은 아래와 같이 요약됩니다.
트위터는 이러한 복잡한 알고리즘으로 구성된 여러 기능을 절차적으로 구성하여, 피드를 선정한다고 합니다. 대략적인 내용을 요약하자면 아래와 같습니다. (의역이 다소 포함되어있습니다.)
1. 기본 재료
1-1 : 유저분류 : 인기도, 관심사 등
1-2 : 유저활동 : 활동량, 관계망 등
1-3 : 추천 대상 유저상태 : 콘텐츠 열람 여부, 차단 여부, 연결 여부 등
2. 필터링
생성되는 트윗에 대한 자체 검열
3. 후보 선정
3-1. 50:50 으로 In-Network(팔로워), Out-of-Network(팔로우하지 않는 사용자)
3-2. In-Network는관계성 높은 사용자의 트윗을 우선순위로 출력 (Real Grpah)
3-3. Out-of-Network의 15% 정도는, 관심사(like기반) 바탕의 추천(GraphJet)
3-4. Out-of-Network의 나머지는 커뮤니티 (유저 유사성, 관계) 기반의 추천(Sim Cluster)
3.5. 약 1,500개의 후보 트윗을 선정하고 스코어링 (Like,리트윗, 댓글 등을 바탕으로)
3.6. 7가지 조건에 의해 최종 필터링
4. Mix & Serving
광고 등을 포함한 비트윗 콘텐츠와 함께 트윗 출력
좀 더 요약하자면, 유저의 활동과 트윗의 상태를 원료로, 트위터가 설계한 몇 가지 필터에 의해 For you 피드가 완성됩니다. 핵심만 정리해보니 매우 간단합니다. “원료를 어떻게 정의할 것이며, 필터를 어떻게 설계할 것인지, 그리고 그 순서를 어떻게 배치할 것인지”를 정하는게 매우 어려운 일이겠지만요.
정말 어려운 일입니다. 그리고 이 것이 오늘 이야기의 주제이기도 합니다. “한 번도 눈 뜬적 없이, 눈 뜬 세상 설명하기.” 예를 들면 이런겁니다. 눈먼 장님의 코끼리 우화인데요. 조금 추가해보겠습니다. 한 번도 코끼리를 본 적없는 세 명의 장님은 각기 다른 형태로 코끼리를 표현합니다. 하지만 시간이 조금 더 지나면, 세명의 장님은 모두 유사한 형태로 코끼리를 표현할 것입니다. 코끼리의 모든 부분을 만져봤을 테니까요. 한 번도 눈을 뜬 적 없는 사람이, 눈 든 세상을 설명하는 것은 이러한 방식입니다.
초보 기획자 시절에 SNS를 기획한 적이 있습니다. 처음으로 맡은 큰 프로젝트였습니다. 당시는 SNS가 넘쳐나던 시대라 참고할 서비스는 많았습니다만, 그럼에도 불구하고 SNS는 만들기가 정말 어려웠습니다. “상태에 대한 이해”가 부족했기 때문입니다. 당시에는 기획의 재료를 원자단위로 분해하고 관계를 그려나가는 방법이 익숙하지 않았기에, 유저와 콘텐츠의 관계를 설명하는데 애를 먹고 있었습니다. (연결과 차단과 신고와 상호관계로 등으로 얼룩진 유저와 콘텐츠의 관계는 지금도 쉽게 설명할 수 있는 주제는 아닙니다.) 어찌어찌 적당한 구조를 만들고보니, 이번에는 추천이 문제였습니다. 최초로 가입한 유저에게 어떤 콘텐츠를 보여줄 것이며, 어떤 유저와 관계를 맺도록 추천을 할지 여러가지 미션이 주어졌지요.
생전 처음 보는 서비스가 아니라, 오히려 너무나 고도화된 서비스를 기획하려다보니, 그 구조를 예측하고 설계하는 게 매우 어려웠습니다. 인스타그램이나 페이스북 또한 이들의 추천 프로세스(이미 어느정도 코끼리의 형태를 가지고 있었겠지요.)를 정확히 공개하고 있지 않았기에, 저는 몇 없는 자료를 분석하고, 서비스를 직접 사용하면서 코끼리 다리 정도를 그려나가고 있었는지 모릅니다.
마침내 서비스는 런칭했고, 당연하게도 멸망했습니다. 월급이 몇 달 밀렸지만, 저는 뿌듯했습니다. SNS의 거대한 벽을 느꼈고, 이 벽을 조금이나마 부숴볼 수 있었던 경험이었으니까요. 만약 이러한 경험을 해보지 못했다면, 저는 영원히 코끼리의 무릎 위는 만져보지도 못했을 것입니다. 하지만 처음부터 끝까지 서비스를 만들어봤기에 무엇이 어떻게 필요한지 알게 되었습니다. (다리가 네 개다 정도는 알았겠지요.)
최근 공개된 트위터의 추천 알고리즘을 보면서 눈 감고, SNS를 기획하던 그 때가 떠올랐습니다. 트위터도 처음에는 눈을 감고 있었을 겁니다. 시간을 들여 구체적인 모델을 그려나가며 지금과 같은 상태가 되지 않았을까요?
눈 뜨지 않고 세상을 설명하는 것은 매우 어렵지만, 우리는 그런 일을 하고 있습니다. 비단 서비스 기획자 뿐만 아니라, 모든 인류에 대한 이야기입니다. 천체물리학자가 우주의 더 먼 곳을 상상하고 그려내고, 요리사가 전혀 경험해보지 못한 퓨전 레시피를 만들어 내듯이 서비스 기획자는 경험해보지 못한 새로운 서비스를 만들기 위해 더듬더듬 그만의 세상을 그려나갑니다.
beyes 님의 브런치에 게재한 글을 편집한 뒤 모비인사이드에서 한 번 더 소개합니다.