Meta / database-design

2 개의 포스트

meta

Friend Bubbles: Enhancing Social Discovery on Facebook Reels (새 탭에서 열림)

페이스북 릴스(Reels)의 '친구 버블(Friend Bubbles)'은 친구가 좋아하거나 반응한 콘텐츠를 사용자에게 추천하여 새로운 발견과 사회적 연결을 돕는 기능입니다. 이 시스템은 머신러닝을 활용해 사용자 간의 친밀도를 측정하고 소셜 그래프 신호를 비디오 랭킹 로직에 결합함으로써, 단순한 콘텐츠 소비를 넘어 친구와의 대화로 이어지는 의미 있는 상호작용을 창출합니다. 결과적으로 친구 버블은 개인의 관심사와 소셜 신호를 동시에 충족시켜 플랫폼의 체류 시간과 사회적 가치를 모두 높이는 역할을 합니다. **사용자 간 친밀도 모델을 통한 핵심 관계 식별** 친구 버블 시스템은 사용자가 누구의 상호작용에 더 민감하게 반응할지 판단하기 위해 두 가지 상호 보완적인 머신러닝 모델을 사용합니다. * **설문 기반 친밀도 모델:** 실제 사용자들을 대상으로 한 설문 데이터와 소셜 그래프(함께 아는 친구, 위치 정보, 상호작용 패턴 등)를 결합하여 학습합니다. 매주 수조 개의 친구 관계를 대상으로 추론(Inference)을 실행하여 오프라인에서의 실제 친밀도를 예측합니다. * **플랫폼 내 활동 기반 모델:** 친구 버블이 표시되었을 때 발생하는 좋아요, 댓글, 공유 등의 실시간 반응을 학습합니다. 이를 통해 사용자가 특정 소셜 맥락에서 누구의 추천을 더 가치 있게 여기는지 동적으로 파악합니다. * **관계의 질 중심:** 단순히 친구가 많다고 해서 더 많은 버블을 보여주는 것이 아니라, 사용자가 진정으로 의미 있다고 느낄 만한 관계를 소수 정예로 선별하여 추천의 품질을 높입니다. **소셜 신호를 반영한 비디오 랭킹 최적화** 좋은 친구 콘텐츠가 일반적인 인기 콘텐츠에 밀려나지 않도록 랭킹 시스템 전반에 소셜 컨텍스트를 주입합니다. * **검색(Retrieval) 단계 확장:** 친밀도 모델이 식별한 가까운 친구들이 상호작용한 영상을 명시적으로 검색 결과에 포함시켜, 순위 모델(Ranking)에 충분한 후보군이 전달되도록 퍼널 상단을 확장합니다. * **MTML(Multi-Task Multi-Label) 모델 적용:** 기존 랭킹 모델에 '친구 친밀도'와 '버블 노출 시 참여도'를 새로운 특징(Feature)과 과업(Task)으로 추가합니다. 이를 통해 모델은 영상 자체의 품질뿐만 아니라 관계의 힘이 주는 고유한 가치를 학습합니다. * **연속적 피드백 루프:** `P(비디오 참여 | 버블 노출)`라는 조건부 확률을 활용해 사용자가 버블을 보고 실제로 반응할 가능성을 예측하며, 소셜 연결성과 콘텐츠 몰입도 사이의 균형을 맞추기 위해 가중치를 미세하게 조정합니다. **성능 저하 없는 실시간 인프라 구축** 릴스는 성능에 매우 민감한 서비스이므로, 추가적인 데이터 처리가 사용자 경험을 해치지 않도록 설계되었습니다. * **프리페치(Prefetch) 활용:** 비디오가 화면에 나타나기 전 메타데이터와 썸네일을 미리 불러오는 기존 윈도우에 친구 버블 데이터를 통합하여 로드 지연을 방지했습니다. * **최적화된 자원 관리:** 부드러운 스크롤을 유지하고 CPU 오버헤드를 최소화하기 위해 캐싱된 결과를 재사용하고 데이터 호출 구조를 단순화했습니다. 친구 버블의 성공 사례는 추천 시스템이 단순히 사용자의 과거 이력만을 쫓는 것이 아니라, 사용자 주변의 사회적 맥락을 깊이 있게 이해할 때 더 큰 가치를 만들 수 있음을 보여줍니다. 기술적으로는 모델에 관계 중심의 특징(Feature)을 직접 주입하고, 인프라 측면에서는 데이터 로딩의 우선순위를 정교하게 관리하는 것이 핵심입니다. 단순히 '인기 있는' 콘텐츠를 보여주는 것을 넘어 '내 지인에게 의미 있는' 콘텐츠를 상위에 노출하고 싶다면, 이와 같은 하이브리드 소셜 랭킹 접근법이 효과적인 전략이 될 것입니다.

meta

How Advanced Browsing Protection Works in Messenger (새 탭에서 열림)

메신저의 고급 브라우징 보호(ABP) 기술은 종단간 암호화(E2EE) 환경에서 사용자의 프라이버시를 침해하지 않으면서도 악성 링크로부터 사용자를 안전하게 보호하기 위해 설계되었습니다. 이 시스템은 '프라이빗 정보 검색(PIR)' 기술과 정교한 인프라를 활용하여, 서버가 사용자가 어떤 링크를 클릭했는지 알 수 없게 하면서도 수백만 개의 악성 사이트 목록을 실시간으로 대조합니다. 결과적으로 사용자는 보안 위협으로부터 보호받는 동시에 대화 내용의 기밀성을 완벽하게 유지할 수 있습니다. ### 프라이빗 정보 검색(PIR)과 ABP의 설계 원칙 * PIR은 클라이언트가 서버의 데이터베이스를 조회할 때, 서버가 클라이언트의 쿼리 내용을 전혀 알 수 없도록 설계된 암호화 프로토콜입니다. * 가장 단순한 방법은 서버의 전체 데이터베이스를 클라이언트에 전송하는 것이지만, ABP의 데이터베이스는 크기가 너무 크고 업데이트가 빈번하여 이 방식은 불가능합니다. * 대안으로 OPRF(망각 의사 난수 함수)를 사용하고 데이터베이스를 여러 개의 '버킷(Bucket)'으로 나누어 샤딩(Sharding)하는 방식을 도입했습니다. 이를 통해 선형 탐색의 범위를 획기적으로 줄여 효율성을 높였습니다. ### URL 접두사 매칭의 복잡성과 프라이버시 문제 * 악성 URL은 단순한 문자열 일치가 아니라 접두사(Prefix) 매칭이 필요합니다. 예를 들어 `example.com`이 차단 목록에 있다면 `example.com/a/b/index.html` 같은 하위 경로도 차단되어야 합니다. * URL의 모든 가능한 접두사를 개별적으로 쿼리하는 방식은 서버에 누출되는 정보량을 증가시켜, 이론적으로 서버가 사용자의 원래 URL을 유추할 수 있게 만듭니다. * 도메인을 기준으로 버킷을 구성하면 프라이버시는 향상되지만, 단축 URL 서비스처럼 특정 도메인에 수많은 링크가 집중될 경우 버킷 크기가 비정상적으로 커져 데이터 전송 효율이 급격히 떨어지는 문제가 발생합니다. ### 규칙 세트(Ruleset)를 통한 데이터 균형 최적화 * 서버는 버킷 크기의 불균형을 해결하기 위해 클라이언트와 사전에 공유하는 '규칙 세트(Ruleset)'를 생성합니다. * 규칙 세트는 특정 해시 접두사에 대해 URL 경로 세그먼트를 몇 개 더 추가하여 다시 해싱할지를 지시하는 매핑 테이블입니다. * 클라이언트는 이 규칙에 따라 반복적으로 해싱 작업을 수행하여 최종적인 버킷 식별자를 도출합니다. 이 과정을 통해 서버는 사용자가 어떤 도메인을 조회하는지 알 수 없으면서도 균등하게 분배된 데이터 묶음을 응답할 수 있습니다. * 서버는 가장 큰 버킷을 반복적으로 쪼개는 반복 연산 과정을 통해 이 규칙 세트를 생성하며, 이를 통해 전체 시스템의 응답 속도와 대역폭 사용을 최적화합니다. ABP 기술은 암호학적 프리미티브와 대규모 인프라 공학을 결합하여 보안과 프라이버시라는 상충하는 가치를 동시에 실현한 사례입니다. 사용자 입장에서는 추가적인 조작 없이도 고도화된 보안 설정을 유지할 수 있으며, 서비스 제공자는 사용자 데이터를 열람하지 않고도 안전한 플랫폼 환경을 구축할 수 있습니다.