SlideShare a Scribd company logo
1 of 40
Google’s FLoC
Solution
장준수
Contents
• 지난 이야기
• What is FLoC?
• About Cohort Algorithms
• About Federated Learning
• FLoC TMI
• 예상질문 자문자답
지난 이야기
구글(크롬)은 쿠키 id를 통해 수집한 개인정보를 이용하여 정밀한 관심사 기반 타겟팅 광고를 가능케 했다.
그러나 부상하는 개인정보보호 흐름에 따라 구글과 쿠키 id의 이별은 예견된 미래였는데…
지난 이야기
2019년, 구글이 Privacy Sandbox 프로젝트의
시작을 발표하다.
• “Building a more private, open web”
• 해당 프로젝트에서 진행하는 여러 웹 상에서 유저의
개인정보인 쿠키(third-party)를 수집하지 않고 광고 타겟팅
하는 솔루션을 만들겠다고 선언했다.
2021년 1월, 구글이 Privacy Sandbox
프로젝트의 흥미로운 결과를 공개하다.
• FLoC 기반의 새로운 솔루션을 기존 쿠키 기반 솔루션과 비교
테스트 한 결과, 약 95% 이상의 ROI(conversions per dollar
spent)를 기대할 수 있다는 결과를 발표했다.
• 위 결과를 바탕으로 3월 3일, 구글은 2021년 2분기부터
구글애즈에서 FLoC 기반 솔루션을 제공하겠다고 밝혔다.
What is FLoC?
FEDERATED LEARNING COHORT ALGORITHMS
Federated Learning of Cohorts
What is FLoC?
“개인을 군중(Cohort) 안에 숨기자”
Cookie id -> Cohort id
Users (N=6) -> Cohorts (M=2)
Brief Explanation)
What is FLoC?
FLoC 솔루션의 5가지 원칙(in 백서)
• Cohort id는 개인의 사이트 이동 기록에 대한 추적을 막아야 한다.
• 각 Cohort는 비슷한 브라우저 행동을 가진 유저들로만 구성된다.
• 각 유저는 자신들만의 고유한 최적화 함수를 지니기 때문에, Cohort assignment 알고리즘은 반드시
비지도 학습 알고리즘이여야 한다. (with 5 -> Cohort id는 무조건 각 device에서 계산되어야 한다.)
• Cohort assignment 알고리즘은 명확하고 쉽게 설명될 수 있도록 magic number을 사용하지 않는다.
• 개인의 Cohort를 계산하는 알고리즘은 저수준 장비의 브라우저에서 실행될 수 있도록 단순해야만 한다.
What is FLoC?
실제 동작 방식)
What is FLoC?
실제 동작 방식)
Apple과 Bezos와 함께 FLoC 여정을 출발해보자
Hi, I’m Apple 저는 베조스입니다
What is FLoC?
실제 동작 방식)
1. FLoC service
• 수많은 Cohorts로 구성된 모델을 생성한다.
• 각 Cohorts에는 유사한 브라우징 기록을 가진 웹 브
라우저(유저)들이 포함된다.
2. Brower (User)
• 유저의 디바이스에서 FLoC 알고리즘으로 유저의 브
라우징 기록을 계산하여 해당 유저가 어느 Cohort에
속해야 하는지 도출한다.
• 여기서 유저의 브라우저는 FLoC 서비스와 어떤 정
보도 공유하지 않는다.
What is FLoC?
실제 동작 방식)
I’m in Cohort 1354
어라 나도 Cohort
1354에 속하네
둘은 다른 브라우징 기록을 가졌지만, 같은 Cohort에 포함될 정도로
충분히 비슷해서 모두 Cohort 1354에 속하게 되었습니다.
What is FLoC?
실제 동작 방식)
3. Advertiser
• 홈페이지에 방문한 브라우저의 행동패턴을 관찰한
다.
• 이후 관찰결과를 브라우저의 Cohort ID와 함께
adtech 플랫폼에 공유한다.
4. Publisher
• 홈페이지에 방문한 브라우저의 Cohort ID를 알아낸
다.
• 이후 adtech 플랫폼에 브라우저의 Cohort ID를 전달
하고, 어떤 광고를 내보내야 할지 요청한다.
What is FLoC?
실제 동작 방식)
5. Adtech
• Publisher로부터 요청 온 Cohort ID가 관심가질만한
적절한 광고를 Publisher에 전달한다.
6. Publisher
• Adtech로부터 온 응답의 특정 광고를 해당 Cohort
ID의 브라우저에 보여준다.
What is FLoC?
실제 동작 방식)
Shoestore에서 신발이나
한번 봐야겠다!
(접속)
고객님~ Cohort ID가
무엇인가요?
1354요 ㅇㅋ
음 등산용 신발 괜찮네.
하나 사야겠다!
네 고객님, 결제 도와드리
겠습니다^^
Advertiser
Advertiser
정보) Cohort 1354
는 등산용 신발에
흥미가 있다.
Adtech
오호 메모...
Cohort들의 행동을 지속적으로 Adtech 플랫폼에 전달하고,
Adtech 플랫폼은 이를 수집한다.
What is FLoC?
실제 동작 방식)
오늘의 기사를 한번 볼까?
(접속)
Publisher
안녕하세요, Cohort ID?
1354
ok
Cohort 1354가
관심가질만한 광고
알려줘
Adtech
Cohort 1354면 등
산용 신발 관심 있
을거야
등산용 신발 광고
그동안 수집된 Cohort의 행동을 통해 Adtech 플랫폼은 특정 Cohort ID에 대응하는 맞춤 광고
정보를 전달하고, Publisher는 이를 해당 Cohort ID 브라우저에 광고로 내보낸다.
What is FLoC?
실제 동작 방식)
여기까지 FLoC의 전체적인 동작 방식을 간단히 살펴봤습니다.
What is FLoC?
결국 중요한건 비슷한 패턴을 가진 유저를 Cohort로 묶어내는 과정
-> Cohort (Clustering) Algorithms
About Cohort Algorithms
Cohort 알고리즘은 아직 정해지지 않았고, 현재 진행중인 Origin Trial 동안 여러 후보 알고리즘을 서빙하며
테스트하고 피드백을 통해 결정될 예정이다.
후보 알고리즘 테스트 결과에 대해서는 1차적으로 백서에 정리되어있다.
About Cohort Algorithms
후보 Cohort 알고리즘 3가지
• SimHash, SortingLSH, Affinity hierarchical clustering with centroid
알고리즘 평가 항목 3가지
• Privacy : Cohort 들에 포함된 유저는 어느정도인가?
-> 각 Cohort는 무조건 k-anonymous 성질을 만족해야 한다. K를 통해 Privacy 평가한다.
• Utility : 동일 Cohort에 포함된 유저들의 유사성은 어느정도인가?
-> 동일 cohort에 속한 유저 사이의 cosine similarity 등을 이용하여 평가한다.
• Centralization : 유저 개인정보들로부터 Cohort id를 계산하는 과정에서 데이터가 Centralized server로
전송되어야 하는가?
-> Cohort id를 계산하는 과정은 반드시 device에서 진행되고 완료되어야 한다.
광고주, 구글에서는 오로지 유저의 계산결과인 Cohort id에만 접근 가능해야만 한다.
Privacy-Utility Trade-off
About Cohort Algorithms
• Input : 유저의 최근 7일간 브라우징 기록에서 방문 사이트의 domain 추출 ->
(TF-IDF를 비롯한 NLP Vectorization) -> d-dimension vector
• Output : Cohort Space
About Cohort Algorithms
1) SimHash
Def) input이 d-dimensional vector x이고, output이 x에 대응하는 해시값인 p-bit vector Hp(x)라고 하자.
이 때 해시 벡터의 i-th coordinate 값은 아래를 통해 계산된다.
(where, w1, ..., wp are random unit-norm vectors)
SimHash 결과 값(해시 벡터, Hp(x))이 같으면
동일 Cohort로 분류하도록 한다.
About Cohort Algorithms
1) SimHash
Q) SimHash 값이 유사성을 대변할 수 있는가?
Let x1, x2 are input vectors. 이 둘이 동일한 해시 값(cohort id)을 가질 확률을 위 정의를 통해 계산하면 아래와
같다. where, θ(x1, x2) corresponds to the angle between vectors x1, x2
두 벡터가 이루는 각이 작을수록 같은 해시값이 나올 확률이 커지는데, 그 값이 exponential하게 적용되기에
해시 벡터의 사이즈가 크고, 정말 이루는 각이 작을수록(similar할수록) 같은 해시 값을 가짐을 알 수 있다.
About Cohort Algorithms
1) SimHash
Pros
• 한 유저의 Cohort 값을 다른 유저들의 정보 없이 온전히 계산할 수 있다. (Centralization O)
Cons
• Minimum cluster size를 지정할 수 없다. (Privacy ?)
-> 생성된 Cohorts들의 크기를 Central server에서 모두 확인하며 만약 k-anonymous 성질
을 만족하지 못하는 Cohort라면 해당 Cohort id를 반환하지 않음으로써 해결 가능
• 이후 결과에서 나오겠지만 Utility 측면에서 성능이 좋지 않다. (Utility Bad)
About Cohort Algorithms
1) SimHash
Issue) Cohort 사이즈 불균등 (Heterogeneous)
SimHash로 생성된 Cohort space를 보니, Cohort의
사이즈가 불균등하게 나타남.
-> Cohort별로 Utility가 천차만별..
How to solve?
• Cohort를 쪼개볼까?
-> 더 쪼개진 Cohort가 k-anonymity를 깰 수 있음.
• Cohort를 합쳐볼까?
-> SortingLSH
Heterogeneous K-anonimity 위배
About Cohort Algorithms
2) SortingLSH (Upgrade Ver. of SimHash)
Def) SimHash 알고리즘으로 나온 Cohorts를 다시한번 클러스터링함으로써 k-anonymity를 보
장하면서도 SimHash의 사이즈 불균등 문제를 해결한 알고리즘이다.
SimHash 결과 해시값(Cohort)을 유사한 것끼리 모으고 합쳐 크기를 비슷하게 만들어주자.
About Cohort Algorithms
2) SortingLSH (Upgrade Ver. of SimHash)
K-anonymity SortingLSH, k=3
Let h1 = Hp(x1), . . . , hn = Hp(xn), h는 n명의 유저에 대해 SimHash를 통해 생성된 p-bit 해시값이다.
기존의 SimHash 알고리즘이였다면 h값이 동일한 유저들을 기준으로 cohort를 생성했겠지만, SortingLSH
는 아래 두 과정을 통해 Cohort들을 생성한다.
(1) SimHash 결과 해시값인 h1, ..., hn을 사전순으로 정렬하여 h(1) ≤ . . . ≤ h(n)의 해시리스트를 얻어낸다.
(2) 위 정렬된 해시리스트에서 인접한 해시값들을 최소 k개 이상씩 묶어서 코호트로 묶는다.
About Cohort Algorithms
2) SortingLSH (Upgrade Ver. of SimHash)
Pros
• SimHash의 Cohort 사이즈 불균형 이슈 해결했기에 Utility 안정화. (Utility O)
Cons
• SimHash 결과 해시값들을 Central Server에 모으고 다시 클러스터링하여 Cohort ID를 계산
하기에 Centralization 측면에서 완벽하진 않지만, 유저들의 raw 브라우징 기록을 전달하는
것이 아니기에 큰 문제는 없다. (Centralization O but, not perfect)
About Cohort Algorithms
3) Affinity hierarchical clustering with centroid
Reference의 NIPS 2017 논문 전문으로 구체적 설명을 대체하고 아이디어만 설명하면,
Hierarchical clustering(계층적 군집화)
가장 유사도가 높은 군집 두개끼리 합치며 군집 개수를 줄여가는 방법!
(근데 이제 Centroid를 곁들인..)
About Cohort Algorithms
3) Affinity hierarchical clustering with centroid
Affinity Clustering 변형을 통한 Cohort ID 계산 과정
1) Graph construction
user-to-user similarity weighted 그래프를 만든다. (User는 노드에, User간 유사도는 edges에 대응된다.
또한 User간의 유사도는 cosine similarity-weighted edge로 나타낸다)
About Cohort Algorithms
3) Affinity hierarchical clustering with centroid
Affinity Clustering 변형을 통한 Cohort ID 계산 과정
2) Graph clustering
• 모든 노드는 그 자체로 하나의 클러스터이다.
• 클러스터들은 각 클러스터가 설정한 최소 클러스터 사이즈에 도달할 때까지 병합한다.
• 이후 각 클러스터에 대해 클러스터에 포함된 유저 정보들의 평균을 냄으로써 centroid(데이터 중심)을
계산한다.
About Cohort Algorithms
3) Affinity hierarchical clustering with centroid
Affinity Clustering 변형을 통한 Cohort ID 계산 과정
3) User to cluster assignment
마지막 단계는 각 사용자를 클러스터에 연결하는 과정이다. 각 유저를 가장 가까운 centroid가 있는 Cohort에
할당함으로써 이루어진다.
X에서 가장 가까운 Centroid는 C3이므로
X는 Cohort 3에 속하게 됨
About Cohort Algorithms
3) Affinity hierarchical clustering with centroid
Pros
• Utility 성능이 좋다. (Utility O)
Cons
• SimHash, SortingLSH와 달리 해당 알고리즘은 첫번째 단계(Graph Construction)에서 유저
들의 raw 브라우징 기록에 접근하게 된다. -> Centralization 측면을 아예 무시하게 됨
잠깐, Centralization 아예 무시하면 FLoC의 목적인 ‘유저 개인정보 수집을 중단하자’에 위배되기에
아무리 성능이 좋아도 필요 없는거 아닌가요? 이게 왜 후보 Cohort 알고리즘에 있는건가요!
-> Federated Learning(연합 학습)을 통해 기술적으로 해결 가능합니다.
About Federated Learning
• Train a centralized model on decentralized data
• 2017년 구글이 발표한 탈중앙화 머신러닝 방법론으로, 데이터
프라이버시 문제를 해결할 수 있는 미래 유력 AI 패러다임
• 연합학습에서는 각 유저의 데이터가 애초에 Central DB, 서버로
옮겨지지 않고, 각 로컬(유저) 단에서 모델을 각자의 데이터로 train,
test하고 그 결과 정보만을 Central 단과 주고받으며 전체적인
모델을 구현한다.
About Federated Learning
• FLoC에서는 로컬 단(스마트폰)이 휴대폰을 충전중이거나, 잠드
는 시간대에 Federated Learning을 진행한다.
• Federated Learning 관련 추가 내용은 Reference에 정리해두겠
다.
About Cohort Algorithms
Utility 평가
일반적으로,
Affinity centroid > Sorting LSH > SimHash
Raw 상태의 데이터를 사용한 Affinity centroid
가 성능이 더 좋은데에 반해, Sorting LSH가 높
은 anonymity에 대해 강함을 알 수 있음.
추가 테스트 결과는 Reference의 백서 or 컨플
참고 바람.
FLoC TMI
• FLoC는 크롬에서 완전한 버전은 아니지만 Origin Trial로 이미 시작됐습니다.
• FLoC JavaScript API로 제공중이고, 관심있으신 분들은 Reference의 API 문서를 확인하면 좋을 것 같습니다.
• 웹사이트는 FLoC Origin Trial에 Opt-in or Opt-out을 API를 통해 설정할 수 있습니다.
• 유저(브라우저)는 본인의 브라우저가 어느 Cohort ID에 속해있고, 어떤 Cohort 알고리즘으로 적용되
고 있는지 확인할 수 있습니다.
…
• 현재 SortingLSH와 비슷한 PrefixLSH 가 메인 클러스터링 알고리즘으로 사용되고 있습니다. 결과를 간단히
요약하면
• Cohorts 총 33,872개 생성됨. (필터링 X)
• Cohort 정의하는 LSH bit의 개수는 13~20개
• 최소 2000-anonymity 만족
• 시크릿모드로 접속하면 브라우저에서 FLoC가 동작하지 않습니다.
• FLoC는 여러분의 디바이스가 충전기와 연결 되어있는 시간에 작동하여 Cohort ID 계산 및 업데이트합니
다.
FLoC TMI
• 사실 SimHash, SortingLSH, PrefixLSH를 Cohort 알고리즘으로 사용한다면 Federated Learning을 사용
하지 않으므로 이름이 애매하긴 합니다.
• 시간 제약으로 ppt에는 정리하지 않았지만, Cohort 알고리즘 만큼이나 NLP Vectorize 방법도 FLoC 정
확도에 큰 영향을 끼칩니다. 이에 대한 정리 및 테스트 결과는 컨플 페이지 or 백서를 참고해주세요.
• 민감한(sensitive)한 내용으로 만들어진 Cohort를 막기 위해, FLoC는 이를 필터링하는 과정도 진행합니
다.
• SortingLSH의 동작원리 상 완벽한 개인정보보호를 이루지 못하기 때문에 FLoC에 대한 비판이 꽤 존재
하는 편입니다.
• 이제와서 밝히지만 Cohort 알고리즘보다 Federated Learning 분야가 한창 핫하고 더 흥미롭습니다. 다
음엔 정말 기회가 된다면 꼭 정리하겠습니다.
예상질문 자문자답
• Q1) 각 Cohort의 사이즈는 어느정도일까요?
아마 수천개의 브라우저가 하나의 코호트에 속할 것이라고 밝혔습니다. (Origin
Trial 때 발표한 최소 Cohort 사이즈가 2000이였습니다.)
• Q2) 웹사이트들이 FLoC에 꼭 참여해야만 하나요?
아닙니다. 그들이 원하는대로 Opt-in / Opt-out 할 수 있습니다. API에 나와있듯 헤
더에 interest-cohort=() 추가함으로써 FLoC 나갈 수 있습니다.
• Q3) 유저는 FLoC에 꼭 참여해야만 하나요?
아닙니다. 크롬 설정에 맞춤광고 설정 해제를 통해서 FLoC로부터 나갈 수 있습니다.
예상질문 자문자답
• Q4) Cohort ID를 계산할 때 어느 기간의 브라우징 기록이 사용되나요?
최근 7일입니다.
• Q5) 한번 정해진 Cohort ID는 안바뀌나요?
아닙니다. 7일마다 Cohort ID를 다시 계산해서 업데이트합니다.
• Q6) Cohort ID 계산할 때 쓰이는 브라우징 기록은 구체적으로 무엇을 의미하나요?
해당 브라우저가 방문했던 사이트의 도메인입니다. Shoes, Notebook, Trip 등일 것으
로 예상됩니다.
Reference
• Affinity Clustering: Hierarchical Clustering at Scale (NIPS 2017)
https://papers.nips.cc/paper/2017/hash/2e1b24a664f5e9c18f407b2f9c73e821-Abstract.html
• Privacy Sandbox 프로젝트 페이지 https://www.privacysandbox.com
• FLoC 프로젝트 페이지 https://www.privacysandbox.com/proposals/floc
• FLoC API & docs https://wicg.github.io/floc/
• FLoC Whitepaper https://github.com/google/ads-privacy/blob/master/proposals/FLoC/FLOC-
Whitepaper-Google.pdf
• FLoC GitHub https://github.com/WICG/floc
• https://netlabe.com/federated-learning-of-cohorts-googles-cookie-killer-7f63b2395173

More Related Content

What's hot

Custom Activities in UiPath (Activity Builder)
Custom Activities in UiPath (Activity Builder)Custom Activities in UiPath (Activity Builder)
Custom Activities in UiPath (Activity Builder)Cristina Vidu
 
Identity and Access Management Introduction
Identity and Access Management IntroductionIdentity and Access Management Introduction
Identity and Access Management IntroductionAidy Tificate
 
Michael Enescu - Cloud + IoT at IEEE
Michael Enescu - Cloud + IoT at IEEEMichael Enescu - Cloud + IoT at IEEE
Michael Enescu - Cloud + IoT at IEEEMichael Enescu
 
H2O 3 REST API Overview
H2O 3 REST API OverviewH2O 3 REST API Overview
H2O 3 REST API OverviewSri Ambati
 
Session 2546 - Solving Performance Problems in CICS using CICS Performance A...
Session 2546 -  Solving Performance Problems in CICS using CICS Performance A...Session 2546 -  Solving Performance Problems in CICS using CICS Performance A...
Session 2546 - Solving Performance Problems in CICS using CICS Performance A...nick_garrod
 
Enabling Edge Processing & Surgical Suite Integration with AWS Snowball Edge ...
Enabling Edge Processing & Surgical Suite Integration with AWS Snowball Edge ...Enabling Edge Processing & Surgical Suite Integration with AWS Snowball Edge ...
Enabling Edge Processing & Surgical Suite Integration with AWS Snowball Edge ...Amazon Web Services
 
Privileged Access Management (PAM)
Privileged Access Management (PAM)Privileged Access Management (PAM)
Privileged Access Management (PAM)danb02
 
Labelling in Microsoft 365 - Retention & Sensitivity
Labelling in Microsoft 365 - Retention & SensitivityLabelling in Microsoft 365 - Retention & Sensitivity
Labelling in Microsoft 365 - Retention & SensitivityDrew Madelung
 
Azure Information Protection
Azure Information ProtectionAzure Information Protection
Azure Information ProtectionRobert Crane
 
Taking conditional access to the next level
Taking conditional access to the next levelTaking conditional access to the next level
Taking conditional access to the next levelRonny de Jong
 
AD Audit Plus a Detailed Walkthrough
AD Audit Plus a Detailed WalkthroughAD Audit Plus a Detailed Walkthrough
AD Audit Plus a Detailed WalkthroughADAuditPlus
 
Dell EMC OpenManage Enterprise Ovierview 3.3
Dell EMC OpenManage Enterprise Ovierview 3.3Dell EMC OpenManage Enterprise Ovierview 3.3
Dell EMC OpenManage Enterprise Ovierview 3.3Mark Maclean
 
Presentation sso design_security
Presentation sso design_securityPresentation sso design_security
Presentation sso design_securityMarco Morana
 
DB2 for z/OS Real Storage Monitoring, Control and Planning
DB2 for z/OS Real Storage Monitoring, Control and PlanningDB2 for z/OS Real Storage Monitoring, Control and Planning
DB2 for z/OS Real Storage Monitoring, Control and PlanningJohn Campbell
 
Alphorm.com Formation Microsoft 365 (MS-900) : Les Fondamentaux
Alphorm.com Formation Microsoft 365 (MS-900) : Les FondamentauxAlphorm.com Formation Microsoft 365 (MS-900) : Les Fondamentaux
Alphorm.com Formation Microsoft 365 (MS-900) : Les FondamentauxAlphorm
 

What's hot (20)

Chapter 2
Chapter 2Chapter 2
Chapter 2
 
Custom Activities in UiPath (Activity Builder)
Custom Activities in UiPath (Activity Builder)Custom Activities in UiPath (Activity Builder)
Custom Activities in UiPath (Activity Builder)
 
Blockchain Demystified
Blockchain DemystifiedBlockchain Demystified
Blockchain Demystified
 
Identity and Access Management Introduction
Identity and Access Management IntroductionIdentity and Access Management Introduction
Identity and Access Management Introduction
 
Michael Enescu - Cloud + IoT at IEEE
Michael Enescu - Cloud + IoT at IEEEMichael Enescu - Cloud + IoT at IEEE
Michael Enescu - Cloud + IoT at IEEE
 
H2O 3 REST API Overview
H2O 3 REST API OverviewH2O 3 REST API Overview
H2O 3 REST API Overview
 
Session 2546 - Solving Performance Problems in CICS using CICS Performance A...
Session 2546 -  Solving Performance Problems in CICS using CICS Performance A...Session 2546 -  Solving Performance Problems in CICS using CICS Performance A...
Session 2546 - Solving Performance Problems in CICS using CICS Performance A...
 
Enabling Edge Processing & Surgical Suite Integration with AWS Snowball Edge ...
Enabling Edge Processing & Surgical Suite Integration with AWS Snowball Edge ...Enabling Edge Processing & Surgical Suite Integration with AWS Snowball Edge ...
Enabling Edge Processing & Surgical Suite Integration with AWS Snowball Edge ...
 
Privileged Access Management (PAM)
Privileged Access Management (PAM)Privileged Access Management (PAM)
Privileged Access Management (PAM)
 
Cloud security
Cloud securityCloud security
Cloud security
 
Labelling in Microsoft 365 - Retention & Sensitivity
Labelling in Microsoft 365 - Retention & SensitivityLabelling in Microsoft 365 - Retention & Sensitivity
Labelling in Microsoft 365 - Retention & Sensitivity
 
Cspro training material
Cspro training materialCspro training material
Cspro training material
 
Azure Information Protection
Azure Information ProtectionAzure Information Protection
Azure Information Protection
 
Taking conditional access to the next level
Taking conditional access to the next levelTaking conditional access to the next level
Taking conditional access to the next level
 
AD Audit Plus a Detailed Walkthrough
AD Audit Plus a Detailed WalkthroughAD Audit Plus a Detailed Walkthrough
AD Audit Plus a Detailed Walkthrough
 
Dell EMC OpenManage Enterprise Ovierview 3.3
Dell EMC OpenManage Enterprise Ovierview 3.3Dell EMC OpenManage Enterprise Ovierview 3.3
Dell EMC OpenManage Enterprise Ovierview 3.3
 
CyberArk
CyberArkCyberArk
CyberArk
 
Presentation sso design_security
Presentation sso design_securityPresentation sso design_security
Presentation sso design_security
 
DB2 for z/OS Real Storage Monitoring, Control and Planning
DB2 for z/OS Real Storage Monitoring, Control and PlanningDB2 for z/OS Real Storage Monitoring, Control and Planning
DB2 for z/OS Real Storage Monitoring, Control and Planning
 
Alphorm.com Formation Microsoft 365 (MS-900) : Les Fondamentaux
Alphorm.com Formation Microsoft 365 (MS-900) : Les FondamentauxAlphorm.com Formation Microsoft 365 (MS-900) : Les Fondamentaux
Alphorm.com Formation Microsoft 365 (MS-900) : Les Fondamentaux
 

Similar to 구글의 새로운 타겟팅 솔루션, FLoC란?

Open source engineering
Open source engineeringOpen source engineering
Open source engineeringYoungSu Son
 
Open source engineering - 0.1
Open source engineering - 0.1Open source engineering - 0.1
Open source engineering - 0.1YoungSu Son
 
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [COLLABO-AZ] : 고객 세그멘테이션 기반 개인 맞춤형 추천시스템 for 루빗
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [COLLABO-AZ] : 고객 세그멘테이션 기반 개인 맞춤형 추천시스템 for 루빗제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [COLLABO-AZ] : 고객 세그멘테이션 기반 개인 맞춤형 추천시스템 for 루빗
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [COLLABO-AZ] : 고객 세그멘테이션 기반 개인 맞춤형 추천시스템 for 루빗BOAZ Bigdata
 
golang과 websocket을 활용한 서버프로그래밍 - 장애없는 서버 런칭 도전기
golang과 websocket을 활용한 서버프로그래밍 - 장애없는 서버 런칭 도전기golang과 websocket을 활용한 서버프로그래밍 - 장애없는 서버 런칭 도전기
golang과 websocket을 활용한 서버프로그래밍 - 장애없는 서버 런칭 도전기Sangik Bae
 
제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [유쾌한 반란] : Howmuch : 꽃집 관리 서비스
제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [유쾌한 반란] : Howmuch : 꽃집 관리 서비스제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [유쾌한 반란] : Howmuch : 꽃집 관리 서비스
제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [유쾌한 반란] : Howmuch : 꽃집 관리 서비스BOAZ Bigdata
 
하이퍼레저 프로젝트 개요
하이퍼레저 프로젝트 개요하이퍼레저 프로젝트 개요
하이퍼레저 프로젝트 개요TIMEGATE
 
하이퍼레저 프로젝트 개요
하이퍼레저 프로젝트 개요하이퍼레저 프로젝트 개요
하이퍼레저 프로젝트 개요Seung-Woo Kang
 
[Ankus Open Source Conference 2013] Introduction to Ankus / data mining
[Ankus Open Source Conference 2013] Introduction to Ankus / data mining [Ankus Open Source Conference 2013] Introduction to Ankus / data mining
[Ankus Open Source Conference 2013] Introduction to Ankus / data mining SuHyun Jeon
 
[BLT] 벤처기업을 위한 특허의 이해 v1.0 (엄정한 변리사)
[BLT] 벤처기업을 위한 특허의 이해 v1.0 (엄정한 변리사)[BLT] 벤처기업을 위한 특허의 이해 v1.0 (엄정한 변리사)
[BLT] 벤처기업을 위한 특허의 이해 v1.0 (엄정한 변리사)JEONG HAN Eom
 
Python과 Tensorflow를 활용한 AI Chatbot 개발 및 실무 적용
Python과 Tensorflow를 활용한  AI Chatbot 개발 및 실무 적용Python과 Tensorflow를 활용한  AI Chatbot 개발 및 실무 적용
Python과 Tensorflow를 활용한 AI Chatbot 개발 및 실무 적용Susang Kim
 
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...hoondong kim
 
데이터분석의 길 5: “고수는 큰자료를 두려워하지 않는다” (클릭확률예측 상편)
데이터분석의 길 5:  “고수는 큰자료를 두려워하지 않는다” (클릭확률예측 상편)데이터분석의 길 5:  “고수는 큰자료를 두려워하지 않는다” (클릭확률예측 상편)
데이터분석의 길 5: “고수는 큰자료를 두려워하지 않는다” (클릭확률예측 상편)Jaimie Kwon (권재명)
 
E-commerce BigData Scale AI Journey
E-commerce BigData Scale AI JourneyE-commerce BigData Scale AI Journey
E-commerce BigData Scale AI Journeyhoondong kim
 
GDB와 strace로 Hang 걸린 Python Process 원격 디버깅
GDB와 strace로 Hang 걸린 Python Process 원격 디버깅GDB와 strace로 Hang 걸린 Python Process 원격 디버깅
GDB와 strace로 Hang 걸린 Python Process 원격 디버깅Youngmin Koo
 
IBM Watson Assistant 기반 챗봇 제작 기초 강좌 (2019.11.18)
IBM Watson Assistant 기반 챗봇 제작 기초 강좌 (2019.11.18)IBM Watson Assistant 기반 챗봇 제작 기초 강좌 (2019.11.18)
IBM Watson Assistant 기반 챗봇 제작 기초 강좌 (2019.11.18)KYOYOON JUNG
 
초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드 초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드 YoungSu Son
 
Neural stream
Neural streamNeural stream
Neural streamMk Kim
 
안드로이드 오픈소스 어플리케이션 블록
안드로이드 오픈소스 어플리케이션 블록안드로이드 오픈소스 어플리케이션 블록
안드로이드 오픈소스 어플리케이션 블록YoungSu Son
 
MongoDB 도입을 위한 제언
MongoDB 도입을 위한 제언MongoDB 도입을 위한 제언
MongoDB 도입을 위한 제언DongHan Kim
 

Similar to 구글의 새로운 타겟팅 솔루션, FLoC란? (20)

Open source engineering
Open source engineeringOpen source engineering
Open source engineering
 
Open source engineering - 0.1
Open source engineering - 0.1Open source engineering - 0.1
Open source engineering - 0.1
 
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [COLLABO-AZ] : 고객 세그멘테이션 기반 개인 맞춤형 추천시스템 for 루빗
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [COLLABO-AZ] : 고객 세그멘테이션 기반 개인 맞춤형 추천시스템 for 루빗제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [COLLABO-AZ] : 고객 세그멘테이션 기반 개인 맞춤형 추천시스템 for 루빗
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [COLLABO-AZ] : 고객 세그멘테이션 기반 개인 맞춤형 추천시스템 for 루빗
 
golang과 websocket을 활용한 서버프로그래밍 - 장애없는 서버 런칭 도전기
golang과 websocket을 활용한 서버프로그래밍 - 장애없는 서버 런칭 도전기golang과 websocket을 활용한 서버프로그래밍 - 장애없는 서버 런칭 도전기
golang과 websocket을 활용한 서버프로그래밍 - 장애없는 서버 런칭 도전기
 
제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [유쾌한 반란] : Howmuch : 꽃집 관리 서비스
제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [유쾌한 반란] : Howmuch : 꽃집 관리 서비스제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [유쾌한 반란] : Howmuch : 꽃집 관리 서비스
제 18회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [유쾌한 반란] : Howmuch : 꽃집 관리 서비스
 
Open Jig Ware
Open Jig WareOpen Jig Ware
Open Jig Ware
 
하이퍼레저 프로젝트 개요
하이퍼레저 프로젝트 개요하이퍼레저 프로젝트 개요
하이퍼레저 프로젝트 개요
 
하이퍼레저 프로젝트 개요
하이퍼레저 프로젝트 개요하이퍼레저 프로젝트 개요
하이퍼레저 프로젝트 개요
 
[Ankus Open Source Conference 2013] Introduction to Ankus / data mining
[Ankus Open Source Conference 2013] Introduction to Ankus / data mining [Ankus Open Source Conference 2013] Introduction to Ankus / data mining
[Ankus Open Source Conference 2013] Introduction to Ankus / data mining
 
[BLT] 벤처기업을 위한 특허의 이해 v1.0 (엄정한 변리사)
[BLT] 벤처기업을 위한 특허의 이해 v1.0 (엄정한 변리사)[BLT] 벤처기업을 위한 특허의 이해 v1.0 (엄정한 변리사)
[BLT] 벤처기업을 위한 특허의 이해 v1.0 (엄정한 변리사)
 
Python과 Tensorflow를 활용한 AI Chatbot 개발 및 실무 적용
Python과 Tensorflow를 활용한  AI Chatbot 개발 및 실무 적용Python과 Tensorflow를 활용한  AI Chatbot 개발 및 실무 적용
Python과 Tensorflow를 활용한 AI Chatbot 개발 및 실무 적용
 
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
 
데이터분석의 길 5: “고수는 큰자료를 두려워하지 않는다” (클릭확률예측 상편)
데이터분석의 길 5:  “고수는 큰자료를 두려워하지 않는다” (클릭확률예측 상편)데이터분석의 길 5:  “고수는 큰자료를 두려워하지 않는다” (클릭확률예측 상편)
데이터분석의 길 5: “고수는 큰자료를 두려워하지 않는다” (클릭확률예측 상편)
 
E-commerce BigData Scale AI Journey
E-commerce BigData Scale AI JourneyE-commerce BigData Scale AI Journey
E-commerce BigData Scale AI Journey
 
GDB와 strace로 Hang 걸린 Python Process 원격 디버깅
GDB와 strace로 Hang 걸린 Python Process 원격 디버깅GDB와 strace로 Hang 걸린 Python Process 원격 디버깅
GDB와 strace로 Hang 걸린 Python Process 원격 디버깅
 
IBM Watson Assistant 기반 챗봇 제작 기초 강좌 (2019.11.18)
IBM Watson Assistant 기반 챗봇 제작 기초 강좌 (2019.11.18)IBM Watson Assistant 기반 챗봇 제작 기초 강좌 (2019.11.18)
IBM Watson Assistant 기반 챗봇 제작 기초 강좌 (2019.11.18)
 
초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드 초보 개발자/학생들을 위한 오픈소스 트랜드
초보 개발자/학생들을 위한 오픈소스 트랜드
 
Neural stream
Neural streamNeural stream
Neural stream
 
안드로이드 오픈소스 어플리케이션 블록
안드로이드 오픈소스 어플리케이션 블록안드로이드 오픈소스 어플리케이션 블록
안드로이드 오픈소스 어플리케이션 블록
 
MongoDB 도입을 위한 제언
MongoDB 도입을 위한 제언MongoDB 도입을 위한 제언
MongoDB 도입을 위한 제언
 

구글의 새로운 타겟팅 솔루션, FLoC란?

  • 2. Contents • 지난 이야기 • What is FLoC? • About Cohort Algorithms • About Federated Learning • FLoC TMI • 예상질문 자문자답
  • 3. 지난 이야기 구글(크롬)은 쿠키 id를 통해 수집한 개인정보를 이용하여 정밀한 관심사 기반 타겟팅 광고를 가능케 했다. 그러나 부상하는 개인정보보호 흐름에 따라 구글과 쿠키 id의 이별은 예견된 미래였는데…
  • 4. 지난 이야기 2019년, 구글이 Privacy Sandbox 프로젝트의 시작을 발표하다. • “Building a more private, open web” • 해당 프로젝트에서 진행하는 여러 웹 상에서 유저의 개인정보인 쿠키(third-party)를 수집하지 않고 광고 타겟팅 하는 솔루션을 만들겠다고 선언했다. 2021년 1월, 구글이 Privacy Sandbox 프로젝트의 흥미로운 결과를 공개하다. • FLoC 기반의 새로운 솔루션을 기존 쿠키 기반 솔루션과 비교 테스트 한 결과, 약 95% 이상의 ROI(conversions per dollar spent)를 기대할 수 있다는 결과를 발표했다. • 위 결과를 바탕으로 3월 3일, 구글은 2021년 2분기부터 구글애즈에서 FLoC 기반 솔루션을 제공하겠다고 밝혔다.
  • 5. What is FLoC? FEDERATED LEARNING COHORT ALGORITHMS Federated Learning of Cohorts
  • 6. What is FLoC? “개인을 군중(Cohort) 안에 숨기자” Cookie id -> Cohort id Users (N=6) -> Cohorts (M=2) Brief Explanation)
  • 7. What is FLoC? FLoC 솔루션의 5가지 원칙(in 백서) • Cohort id는 개인의 사이트 이동 기록에 대한 추적을 막아야 한다. • 각 Cohort는 비슷한 브라우저 행동을 가진 유저들로만 구성된다. • 각 유저는 자신들만의 고유한 최적화 함수를 지니기 때문에, Cohort assignment 알고리즘은 반드시 비지도 학습 알고리즘이여야 한다. (with 5 -> Cohort id는 무조건 각 device에서 계산되어야 한다.) • Cohort assignment 알고리즘은 명확하고 쉽게 설명될 수 있도록 magic number을 사용하지 않는다. • 개인의 Cohort를 계산하는 알고리즘은 저수준 장비의 브라우저에서 실행될 수 있도록 단순해야만 한다.
  • 8. What is FLoC? 실제 동작 방식)
  • 9. What is FLoC? 실제 동작 방식) Apple과 Bezos와 함께 FLoC 여정을 출발해보자 Hi, I’m Apple 저는 베조스입니다
  • 10. What is FLoC? 실제 동작 방식) 1. FLoC service • 수많은 Cohorts로 구성된 모델을 생성한다. • 각 Cohorts에는 유사한 브라우징 기록을 가진 웹 브 라우저(유저)들이 포함된다. 2. Brower (User) • 유저의 디바이스에서 FLoC 알고리즘으로 유저의 브 라우징 기록을 계산하여 해당 유저가 어느 Cohort에 속해야 하는지 도출한다. • 여기서 유저의 브라우저는 FLoC 서비스와 어떤 정 보도 공유하지 않는다.
  • 11. What is FLoC? 실제 동작 방식) I’m in Cohort 1354 어라 나도 Cohort 1354에 속하네 둘은 다른 브라우징 기록을 가졌지만, 같은 Cohort에 포함될 정도로 충분히 비슷해서 모두 Cohort 1354에 속하게 되었습니다.
  • 12. What is FLoC? 실제 동작 방식) 3. Advertiser • 홈페이지에 방문한 브라우저의 행동패턴을 관찰한 다. • 이후 관찰결과를 브라우저의 Cohort ID와 함께 adtech 플랫폼에 공유한다. 4. Publisher • 홈페이지에 방문한 브라우저의 Cohort ID를 알아낸 다. • 이후 adtech 플랫폼에 브라우저의 Cohort ID를 전달 하고, 어떤 광고를 내보내야 할지 요청한다.
  • 13. What is FLoC? 실제 동작 방식) 5. Adtech • Publisher로부터 요청 온 Cohort ID가 관심가질만한 적절한 광고를 Publisher에 전달한다. 6. Publisher • Adtech로부터 온 응답의 특정 광고를 해당 Cohort ID의 브라우저에 보여준다.
  • 14. What is FLoC? 실제 동작 방식) Shoestore에서 신발이나 한번 봐야겠다! (접속) 고객님~ Cohort ID가 무엇인가요? 1354요 ㅇㅋ 음 등산용 신발 괜찮네. 하나 사야겠다! 네 고객님, 결제 도와드리 겠습니다^^ Advertiser Advertiser 정보) Cohort 1354 는 등산용 신발에 흥미가 있다. Adtech 오호 메모... Cohort들의 행동을 지속적으로 Adtech 플랫폼에 전달하고, Adtech 플랫폼은 이를 수집한다.
  • 15. What is FLoC? 실제 동작 방식) 오늘의 기사를 한번 볼까? (접속) Publisher 안녕하세요, Cohort ID? 1354 ok Cohort 1354가 관심가질만한 광고 알려줘 Adtech Cohort 1354면 등 산용 신발 관심 있 을거야 등산용 신발 광고 그동안 수집된 Cohort의 행동을 통해 Adtech 플랫폼은 특정 Cohort ID에 대응하는 맞춤 광고 정보를 전달하고, Publisher는 이를 해당 Cohort ID 브라우저에 광고로 내보낸다.
  • 16. What is FLoC? 실제 동작 방식) 여기까지 FLoC의 전체적인 동작 방식을 간단히 살펴봤습니다.
  • 17. What is FLoC? 결국 중요한건 비슷한 패턴을 가진 유저를 Cohort로 묶어내는 과정 -> Cohort (Clustering) Algorithms
  • 18. About Cohort Algorithms Cohort 알고리즘은 아직 정해지지 않았고, 현재 진행중인 Origin Trial 동안 여러 후보 알고리즘을 서빙하며 테스트하고 피드백을 통해 결정될 예정이다. 후보 알고리즘 테스트 결과에 대해서는 1차적으로 백서에 정리되어있다.
  • 19. About Cohort Algorithms 후보 Cohort 알고리즘 3가지 • SimHash, SortingLSH, Affinity hierarchical clustering with centroid 알고리즘 평가 항목 3가지 • Privacy : Cohort 들에 포함된 유저는 어느정도인가? -> 각 Cohort는 무조건 k-anonymous 성질을 만족해야 한다. K를 통해 Privacy 평가한다. • Utility : 동일 Cohort에 포함된 유저들의 유사성은 어느정도인가? -> 동일 cohort에 속한 유저 사이의 cosine similarity 등을 이용하여 평가한다. • Centralization : 유저 개인정보들로부터 Cohort id를 계산하는 과정에서 데이터가 Centralized server로 전송되어야 하는가? -> Cohort id를 계산하는 과정은 반드시 device에서 진행되고 완료되어야 한다. 광고주, 구글에서는 오로지 유저의 계산결과인 Cohort id에만 접근 가능해야만 한다. Privacy-Utility Trade-off
  • 20. About Cohort Algorithms • Input : 유저의 최근 7일간 브라우징 기록에서 방문 사이트의 domain 추출 -> (TF-IDF를 비롯한 NLP Vectorization) -> d-dimension vector • Output : Cohort Space
  • 21. About Cohort Algorithms 1) SimHash Def) input이 d-dimensional vector x이고, output이 x에 대응하는 해시값인 p-bit vector Hp(x)라고 하자. 이 때 해시 벡터의 i-th coordinate 값은 아래를 통해 계산된다. (where, w1, ..., wp are random unit-norm vectors) SimHash 결과 값(해시 벡터, Hp(x))이 같으면 동일 Cohort로 분류하도록 한다.
  • 22. About Cohort Algorithms 1) SimHash Q) SimHash 값이 유사성을 대변할 수 있는가? Let x1, x2 are input vectors. 이 둘이 동일한 해시 값(cohort id)을 가질 확률을 위 정의를 통해 계산하면 아래와 같다. where, θ(x1, x2) corresponds to the angle between vectors x1, x2 두 벡터가 이루는 각이 작을수록 같은 해시값이 나올 확률이 커지는데, 그 값이 exponential하게 적용되기에 해시 벡터의 사이즈가 크고, 정말 이루는 각이 작을수록(similar할수록) 같은 해시 값을 가짐을 알 수 있다.
  • 23. About Cohort Algorithms 1) SimHash Pros • 한 유저의 Cohort 값을 다른 유저들의 정보 없이 온전히 계산할 수 있다. (Centralization O) Cons • Minimum cluster size를 지정할 수 없다. (Privacy ?) -> 생성된 Cohorts들의 크기를 Central server에서 모두 확인하며 만약 k-anonymous 성질 을 만족하지 못하는 Cohort라면 해당 Cohort id를 반환하지 않음으로써 해결 가능 • 이후 결과에서 나오겠지만 Utility 측면에서 성능이 좋지 않다. (Utility Bad)
  • 24. About Cohort Algorithms 1) SimHash Issue) Cohort 사이즈 불균등 (Heterogeneous) SimHash로 생성된 Cohort space를 보니, Cohort의 사이즈가 불균등하게 나타남. -> Cohort별로 Utility가 천차만별.. How to solve? • Cohort를 쪼개볼까? -> 더 쪼개진 Cohort가 k-anonymity를 깰 수 있음. • Cohort를 합쳐볼까? -> SortingLSH Heterogeneous K-anonimity 위배
  • 25. About Cohort Algorithms 2) SortingLSH (Upgrade Ver. of SimHash) Def) SimHash 알고리즘으로 나온 Cohorts를 다시한번 클러스터링함으로써 k-anonymity를 보 장하면서도 SimHash의 사이즈 불균등 문제를 해결한 알고리즘이다. SimHash 결과 해시값(Cohort)을 유사한 것끼리 모으고 합쳐 크기를 비슷하게 만들어주자.
  • 26. About Cohort Algorithms 2) SortingLSH (Upgrade Ver. of SimHash) K-anonymity SortingLSH, k=3 Let h1 = Hp(x1), . . . , hn = Hp(xn), h는 n명의 유저에 대해 SimHash를 통해 생성된 p-bit 해시값이다. 기존의 SimHash 알고리즘이였다면 h값이 동일한 유저들을 기준으로 cohort를 생성했겠지만, SortingLSH 는 아래 두 과정을 통해 Cohort들을 생성한다. (1) SimHash 결과 해시값인 h1, ..., hn을 사전순으로 정렬하여 h(1) ≤ . . . ≤ h(n)의 해시리스트를 얻어낸다. (2) 위 정렬된 해시리스트에서 인접한 해시값들을 최소 k개 이상씩 묶어서 코호트로 묶는다.
  • 27. About Cohort Algorithms 2) SortingLSH (Upgrade Ver. of SimHash) Pros • SimHash의 Cohort 사이즈 불균형 이슈 해결했기에 Utility 안정화. (Utility O) Cons • SimHash 결과 해시값들을 Central Server에 모으고 다시 클러스터링하여 Cohort ID를 계산 하기에 Centralization 측면에서 완벽하진 않지만, 유저들의 raw 브라우징 기록을 전달하는 것이 아니기에 큰 문제는 없다. (Centralization O but, not perfect)
  • 28. About Cohort Algorithms 3) Affinity hierarchical clustering with centroid Reference의 NIPS 2017 논문 전문으로 구체적 설명을 대체하고 아이디어만 설명하면, Hierarchical clustering(계층적 군집화) 가장 유사도가 높은 군집 두개끼리 합치며 군집 개수를 줄여가는 방법! (근데 이제 Centroid를 곁들인..)
  • 29. About Cohort Algorithms 3) Affinity hierarchical clustering with centroid Affinity Clustering 변형을 통한 Cohort ID 계산 과정 1) Graph construction user-to-user similarity weighted 그래프를 만든다. (User는 노드에, User간 유사도는 edges에 대응된다. 또한 User간의 유사도는 cosine similarity-weighted edge로 나타낸다)
  • 30. About Cohort Algorithms 3) Affinity hierarchical clustering with centroid Affinity Clustering 변형을 통한 Cohort ID 계산 과정 2) Graph clustering • 모든 노드는 그 자체로 하나의 클러스터이다. • 클러스터들은 각 클러스터가 설정한 최소 클러스터 사이즈에 도달할 때까지 병합한다. • 이후 각 클러스터에 대해 클러스터에 포함된 유저 정보들의 평균을 냄으로써 centroid(데이터 중심)을 계산한다.
  • 31. About Cohort Algorithms 3) Affinity hierarchical clustering with centroid Affinity Clustering 변형을 통한 Cohort ID 계산 과정 3) User to cluster assignment 마지막 단계는 각 사용자를 클러스터에 연결하는 과정이다. 각 유저를 가장 가까운 centroid가 있는 Cohort에 할당함으로써 이루어진다. X에서 가장 가까운 Centroid는 C3이므로 X는 Cohort 3에 속하게 됨
  • 32. About Cohort Algorithms 3) Affinity hierarchical clustering with centroid Pros • Utility 성능이 좋다. (Utility O) Cons • SimHash, SortingLSH와 달리 해당 알고리즘은 첫번째 단계(Graph Construction)에서 유저 들의 raw 브라우징 기록에 접근하게 된다. -> Centralization 측면을 아예 무시하게 됨 잠깐, Centralization 아예 무시하면 FLoC의 목적인 ‘유저 개인정보 수집을 중단하자’에 위배되기에 아무리 성능이 좋아도 필요 없는거 아닌가요? 이게 왜 후보 Cohort 알고리즘에 있는건가요! -> Federated Learning(연합 학습)을 통해 기술적으로 해결 가능합니다.
  • 33. About Federated Learning • Train a centralized model on decentralized data • 2017년 구글이 발표한 탈중앙화 머신러닝 방법론으로, 데이터 프라이버시 문제를 해결할 수 있는 미래 유력 AI 패러다임 • 연합학습에서는 각 유저의 데이터가 애초에 Central DB, 서버로 옮겨지지 않고, 각 로컬(유저) 단에서 모델을 각자의 데이터로 train, test하고 그 결과 정보만을 Central 단과 주고받으며 전체적인 모델을 구현한다.
  • 34. About Federated Learning • FLoC에서는 로컬 단(스마트폰)이 휴대폰을 충전중이거나, 잠드 는 시간대에 Federated Learning을 진행한다. • Federated Learning 관련 추가 내용은 Reference에 정리해두겠 다.
  • 35. About Cohort Algorithms Utility 평가 일반적으로, Affinity centroid > Sorting LSH > SimHash Raw 상태의 데이터를 사용한 Affinity centroid 가 성능이 더 좋은데에 반해, Sorting LSH가 높 은 anonymity에 대해 강함을 알 수 있음. 추가 테스트 결과는 Reference의 백서 or 컨플 참고 바람.
  • 36. FLoC TMI • FLoC는 크롬에서 완전한 버전은 아니지만 Origin Trial로 이미 시작됐습니다. • FLoC JavaScript API로 제공중이고, 관심있으신 분들은 Reference의 API 문서를 확인하면 좋을 것 같습니다. • 웹사이트는 FLoC Origin Trial에 Opt-in or Opt-out을 API를 통해 설정할 수 있습니다. • 유저(브라우저)는 본인의 브라우저가 어느 Cohort ID에 속해있고, 어떤 Cohort 알고리즘으로 적용되 고 있는지 확인할 수 있습니다. … • 현재 SortingLSH와 비슷한 PrefixLSH 가 메인 클러스터링 알고리즘으로 사용되고 있습니다. 결과를 간단히 요약하면 • Cohorts 총 33,872개 생성됨. (필터링 X) • Cohort 정의하는 LSH bit의 개수는 13~20개 • 최소 2000-anonymity 만족 • 시크릿모드로 접속하면 브라우저에서 FLoC가 동작하지 않습니다. • FLoC는 여러분의 디바이스가 충전기와 연결 되어있는 시간에 작동하여 Cohort ID 계산 및 업데이트합니 다.
  • 37. FLoC TMI • 사실 SimHash, SortingLSH, PrefixLSH를 Cohort 알고리즘으로 사용한다면 Federated Learning을 사용 하지 않으므로 이름이 애매하긴 합니다. • 시간 제약으로 ppt에는 정리하지 않았지만, Cohort 알고리즘 만큼이나 NLP Vectorize 방법도 FLoC 정 확도에 큰 영향을 끼칩니다. 이에 대한 정리 및 테스트 결과는 컨플 페이지 or 백서를 참고해주세요. • 민감한(sensitive)한 내용으로 만들어진 Cohort를 막기 위해, FLoC는 이를 필터링하는 과정도 진행합니 다. • SortingLSH의 동작원리 상 완벽한 개인정보보호를 이루지 못하기 때문에 FLoC에 대한 비판이 꽤 존재 하는 편입니다. • 이제와서 밝히지만 Cohort 알고리즘보다 Federated Learning 분야가 한창 핫하고 더 흥미롭습니다. 다 음엔 정말 기회가 된다면 꼭 정리하겠습니다.
  • 38. 예상질문 자문자답 • Q1) 각 Cohort의 사이즈는 어느정도일까요? 아마 수천개의 브라우저가 하나의 코호트에 속할 것이라고 밝혔습니다. (Origin Trial 때 발표한 최소 Cohort 사이즈가 2000이였습니다.) • Q2) 웹사이트들이 FLoC에 꼭 참여해야만 하나요? 아닙니다. 그들이 원하는대로 Opt-in / Opt-out 할 수 있습니다. API에 나와있듯 헤 더에 interest-cohort=() 추가함으로써 FLoC 나갈 수 있습니다. • Q3) 유저는 FLoC에 꼭 참여해야만 하나요? 아닙니다. 크롬 설정에 맞춤광고 설정 해제를 통해서 FLoC로부터 나갈 수 있습니다.
  • 39. 예상질문 자문자답 • Q4) Cohort ID를 계산할 때 어느 기간의 브라우징 기록이 사용되나요? 최근 7일입니다. • Q5) 한번 정해진 Cohort ID는 안바뀌나요? 아닙니다. 7일마다 Cohort ID를 다시 계산해서 업데이트합니다. • Q6) Cohort ID 계산할 때 쓰이는 브라우징 기록은 구체적으로 무엇을 의미하나요? 해당 브라우저가 방문했던 사이트의 도메인입니다. Shoes, Notebook, Trip 등일 것으 로 예상됩니다.
  • 40. Reference • Affinity Clustering: Hierarchical Clustering at Scale (NIPS 2017) https://papers.nips.cc/paper/2017/hash/2e1b24a664f5e9c18f407b2f9c73e821-Abstract.html • Privacy Sandbox 프로젝트 페이지 https://www.privacysandbox.com • FLoC 프로젝트 페이지 https://www.privacysandbox.com/proposals/floc • FLoC API & docs https://wicg.github.io/floc/ • FLoC Whitepaper https://github.com/google/ads-privacy/blob/master/proposals/FLoC/FLOC- Whitepaper-Google.pdf • FLoC GitHub https://github.com/WICG/floc • https://netlabe.com/federated-learning-of-cohorts-googles-cookie-killer-7f63b2395173