Twitter의 추천 알고리즘은 모든 Twitter 제품 표면(예: For You 타임라인, 검색, 탐색, 알림)에서 트윗 및 기타 콘텐츠의 피드를 제공하는 서비스 및 작업 세트입니다. 알고리즘 작동 방식에 대한 소개는 엔지니어링 블로그를 참조하세요.
Twitter의 제품 표면은 공유된 데이터, 모델 및 소프트웨어 프레임워크 세트를 기반으로 구축됩니다. 이 저장소에 포함된 공유 구성 요소는 다음과 같습니다.
유형 | 요소 | 설명 |
---|---|---|
데이터 | 트위티피 | 트윗 데이터 읽기 및 쓰기를 처리하는 핵심 트윗 서비스입니다. |
통합 사용자 작업 | 트위터에서 사용자 행동의 실시간 스트림. | |
사용자 신호 서비스 | 명시적(예: 좋아요, 답글) 및 암시적(예: 프로필 방문, 트윗 클릭) 사용자 신호를 검색하는 중앙 집중식 플랫폼입니다. | |
모델 | 심클러스터 | 커뮤니티 감지 및 해당 커뮤니티에 대한 희소 임베딩. |
트윈 | 사용자 및 트윗에 대한 밀집된 지식 그래프 임베딩. | |
신뢰와 안전 모델 | NSFW 또는 악성 콘텐츠를 탐지하기 위한 모델. | |
실제 그래프 | 트위터 사용자가 다른 사용자와 상호 작용할 가능성을 예측하는 모델입니다. | |
트위프크레드 | 트위터 사용자 평판을 계산하기 위한 페이지 순위 알고리즘입니다. | |
리코 인젝터 | GraphJet 기반 서비스용 입력 스트림을 구축하기 위한 스트리밍 이벤트 프로세서입니다. | |
그래프 기능 서비스 | 지정된 사용자 쌍에 대한 그래프 기능을 제공합니다(예: 사용자 A가 사용자 B의 좋아하는 트윗 중 몇 개를 좋아하는지). | |
주제-사회적 증거 | 개별 트윗과 관련된 주제를 식별합니다. | |
대표 득점자 | 임베딩 유사성을 사용하여 항목 쌍(사용자, 트윗 등) 간의 점수를 계산합니다. | |
소프트웨어 프레임워크 | 네비 | Rust로 작성된 고성능 머신러닝 모델입니다. |
제품 믹서 | 콘텐츠 피드 구축을 위한 소프트웨어 프레임워크입니다. | |
타임라인-집계-프레임워크 | 일괄 또는 실시간으로 집계 기능을 생성하기 위한 프레임워크입니다. | |
대표-관리자 | 임베딩(예: SimClusers 및 TwHIN)을 검색하는 서비스입니다. | |
twml | TensorFlow v1을 기반으로 구축된 기존 머신러닝 프레임워크입니다. |
현재 이 저장소에 포함된 제품 표면은 For You 타임라인과 권장 알림입니다.
아래 다이어그램은 주요 서비스와 작업이 상호 연결되어 For You 타임라인을 구성하는 방법을 보여줍니다.
이 저장소에 포함된 For You 타임라인의 핵심 구성 요소는 다음과 같습니다.
유형 | 요소 | 설명 |
---|---|---|
후보 소스 | 검색 색인 | 네트워크 내 트윗을 찾아 순위를 매기세요. 트윗의 ~50%가 이 후보 소스에서 나옵니다. |
CR-믹서 | 기본 컴퓨팅 서비스에서 네트워크 외부 트윗 후보를 가져오기 위한 조정 계층입니다. | |
사용자-트윗-엔티티-그래프(UTEG) | 메모리 내 사용자 대 트윗 상호 작용 그래프를 유지하고 이 그래프의 순회를 기반으로 후보를 찾습니다. 이는 GraphJet 프레임워크를 기반으로 구축되었습니다. 몇 가지 다른 GraphJet 기반 기능과 후보 소스가 여기에 있습니다. | |
FRS(후속 추천 서비스) | 사용자에게 팔로우할 계정에 대한 추천과 해당 계정의 트윗을 제공합니다. | |
순위 | 라이트 랭커 | 검색 색인(Earlybird)이 트윗 순위를 매기는 데 사용하는 Light Ranker 모델입니다. |
헤비랭커 | 후보 트윗의 순위를 매기기 위한 신경망. 타임라인 트윗 게시물 후보 소싱을 선택하는 데 사용되는 주요 신호 중 하나입니다. | |
트윗 믹싱 및 필터링 | 가정용 믹서 | 홈 타임라인을 구성하고 서비스하는 데 사용되는 주요 서비스입니다. 제품 믹서를 기반으로 구축되었습니다. |
가시성 필터 | 법적 준수를 지원하고, 제품 품질을 개선하고, 사용자 신뢰를 높이고, 하드 필터링, 눈에 보이는 제품 처리 및 대략적인 순위 하향 조정을 통해 수익을 보호하기 위해 Twitter 콘텐츠를 필터링하는 일을 담당합니다. | |
타임라인랭커 | Earlybird Search Index 및 UTEG 서비스에서 관련성 점수가 매겨진 트윗을 제공하는 레거시 서비스입니다. |
이 저장소에 포함된 권장 알림의 핵심 구성 요소는 다음과 같습니다.
유형 | 요소 | 설명 |
---|---|---|
서비스 | 푸시 서비스 | 알림을 통해 사용자에게 추천을 표시하는 데 사용되는 Twitter의 주요 추천 서비스입니다. |
순위 | pushservice-light-ranker | pushservice에서 트윗 순위를 매기는 데 사용되는 Light Ranker 모델입니다. 초기의 대규모 후보자 풀에서 관련성이 높은 후보자를 사전 선택하여 후보자 생성과 높은 순위를 연결합니다. |
pushservice-heavy-ranker | 대상 사용자가 전송된 알림을 열고 참여할 확률을 예측하는 다중 작업 학습 모델입니다. |
대부분의 구성 요소에 Bazel BUILD 파일이 포함되지만 최상위 BUILD 또는 WORKSPACE 파일은 포함되지 않습니다. 앞으로는 더욱 완벽한 빌드 및 테스트 시스템을 추가할 계획입니다.
추천 알고리즘 개선에 대한 제안을 위해 GitHub 문제를 제출하고 요청을 끌어오도록 커뮤니티를 초대합니다. 우리는 이러한 제안을 관리하고 변경 사항을 내부 저장소에 동기화하는 도구를 개발 중입니다. 모든 보안 문제나 문제는 HackerOne을 통해 공식 버그 바운티 프로그램으로 전달되어야 합니다. 우리는 문제를 식별하고 개선 사항을 제안하는 데 도움이 되는 글로벌 커뮤니티의 집단 지성과 전문 지식을 활용하여 궁극적으로 더 나은 트위터를 만들기를 바랍니다.
여기에서 오픈 소스 이니셔티브에 대한 블로그를 읽어보세요.