글쓰기
집계 보고서에서 개별 결정으로: DSA 투명성 데이터베이스 추가하기
VLOP 대시보드는 지금까지 EU 디지털 서비스법(DSA)의 집계된 투명성 보고서를 다뤄왔습니다. 플랫폼이 6개월 동안 카테고리별로 얼마나 많은 통지를 받았고 얼마나 많은 콘텐츠에 조치를 취했는지를 보고하는 정기 제출물 말입니다. 이는 DSA의 두 가지 투명성 메커니즘 중 하나입니다. 이번 업데이트는 나머지 하나를 추가하는데, 이것은 성격이 매우 다른 대상입니다. 바로 이유 설명서(Statement of Reasons)로 이루어진 DSA 투명성 데이터베이스입니다.
이유 설명서란 무엇인가
DSA 제17조에 따라, 적용 대상 플랫폼이 콘텐츠를 제한할 때마다—삭제하거나, 접근을 차단하거나, 노출을 낮추거나, 연령 제한을 걸거나, 수익 창출을 중단할 때마다—영향을 받은 사용자에게 그 결정을 설명하는 "이유 설명서"를 제공해야 합니다. 그리고 개인 정보를 제거한 그 설명서의 사본을 유럽 위원회가 운영하는 공개 투명성 데이터베이스에 제출해야 합니다.
집계 보고서는 플랫폼이 보고 기간 동안 무엇을 했다고 말하는지를 알려줍니다. 투명성 데이터베이스는 개별 결정 그 자체입니다. 모더레이션 조치 하나당 한 행씩, 발생하는 대로 제출되며, 카테고리, 법적 근거, 자동으로 탐지되었는지 여부, 결정이 자동화되었는지 여부, 그리고 어떤 제한이 적용되었는지를 담은 구조화된 필드가 함께 있습니다. 이는 EU 전역의 콘텐츠 모더레이션에 대해 실시간에 가까운, 결정 단위의 기록으로서 현존하는 가장 근접한 형태입니다.
그리고 그것은 엄청나게 방대하기도 합니다. 플랫폼들은 한 달에 약 20억 건 규모의 설명서를 제출합니다. 전체 이력 덤프는 약 4테라바이트에 달하며 매일 증가합니다.
4테라바이트를 대시보드에 담을 수는 없습니다
그래서 흥미로운 엔지니어링 문제는, 배후에 분석용 데이터 웨어하우스를 두지 않고도 4테라바이트의 일일 CSV 덤프에서 인터랙티브 쿼리 인터페이스 뒤에 담길 만한 무언가로 어떻게 도달할 것인가였습니다.
답은 결국 위원회 자체의 도구에 있었습니다. 데이터베이스와 함께, DSA 팀은 dsa-tdb라는 오픈소스 파이썬 툴박스를 공개하는데, 이는 일일 덤프를 다운로드하고 검증하며—결정적으로—사전 계산된 월별 집계를 제공합니다. 원시 설명서 대신, 플랫폼·일자·카테고리·결정 근거·자동화·제한 유형의 세분화된 조합마다 카운트가 붙은 한 행씩을 가져올 수 있습니다. 이는 원시 데이터의 홍수 대신 월당 약 7메가바이트의 gzip 압축 CSV입니다.
거기서부터는 재집계 문제입니다. 저는 일별 집계를 월 단위로 말아 올리고, 이를 몇 가지 단일 차원 절단면—전체 설명서, 카테고리별, 결정 근거별, 자동화별, 제한 유형별—으로 축약하며, 물량 기준 상위 60개 플랫폼을 유지하는데, 이들이 전체 설명서의 약 99.97%를 차지합니다. 그 결과는 깔끔한 롱 포맷 테이블입니다. 대략 24,500행, 약 2메가바이트의 JSON으로, 2023년 9월부터 현재까지를 포괄합니다. 이것은 다른 모든 데이터셋과 동일한 읽기 전용 SQLite 데이터베이스로 벤더링되어 평범한 쿼리 가능 테이블이 되며, 사이트의 나머지 부분과 동일한 구조화된 no-SQL 쿼리 인터페이스에서 접근할 수 있습니다.
그 형태가 어떤 모습인가
가장 먼저 눈에 띄는 것은 물량이 얼마나 한쪽으로 치우쳐 있는가입니다. 한 플랫폼—Google Shopping—이 데이터베이스의 전체 설명서 중 압도적 다수를 차지하며, 한 달에 수억 건에 이르는데 거의 전부가 마켓플레이스 대상 범위를 벗어난 것으로 등재 취소된 상품 목록입니다. TikTok, Facebook, Pinterest, Amazon, AliExpress가 나머지 대부분을 구성합니다. 소수의 마켓플레이스와 대형 소셜 플랫폼이 지배하며, 수백 개에 이르는 소규모 제출자들의 롱테일은 반올림 오차 수준입니다.
그 너머로, 결정 단위 필드는 집계 보고서가 깔끔하게 드러내지 못하는 것들을 볼 수 있게 해줍니다. 법률상 불법으로 제한된 콘텐츠와 플랫폼 자체 약관에 부합하지 않는 콘텐츠 사이의 구분(압도적으로 후자), 사람이 개입한 결정 대비 완전 자동으로 내려진 결정의 비율, 그리고 그달의 결정들이 실제로 어떤 DSA 설명서 카테고리를 인용하는지가 그것입니다. /dsa-db 페이지는 월별 총계, 시간에 따른 상위 플랫폼, 카테고리 구성, 그리고 불법 대 약관 근거를 차트로 보여주며, 그 아래에 플랫폼별 테이블을 배치합니다.
동일한 유의사항, 더 날카롭게
제가 집계 보고서의 한계에 관해 쓴 모든 것이 여기에도 여전히 적용되며, 몇 가지 새로운 것들이 나타납니다. 카테고리 정의는 여전히 각 플랫폼 자체의 것이므로, 플랫폼 간 카테고리 비교는 플랫폼이 정의한 구성물들의 비교이지 일관된 하나의 개념에 대한 비교가 아닙니다. 데이터는 여전히 자체 보고되며 감사받지 않습니다.
그리고 집계에는 그 나름의 함정이 있으며, 쿼리 인터페이스는 이에 대해 경고합니다. 단일 차원 절단면들은 각각 동일한 설명서 집합을 분할하므로, 카테고리 분해는 합산하면 그 플랫폼의 총계로 되돌아갑니다. 이는 분해를 총계와 함께 합산하면 이중 계산이 된다는 뜻입니다. 제한 유형 절단면은 다중 선택인데, 하나의 결정이 콘텐츠를 삭제하는 동시에 계정을 차단할 수 있기 때문이며, 따라서 그 행들은 총계로 전혀 합산되지 않습니다. 그리고 소수의 마켓플레이스가 물량을 워낙 크게 지배하기 때문에, 거의 모든 플랫폼 간 합산은 사실상 Google Shopping을 측정하는 것에 불과합니다. 실질적인 규칙은 인터페이스가 유도하는 것과 동일합니다. 무엇이든 집계하기 전에 섹션을, 그리고 대개는 플랫폼을 고정하라는 것입니다.
같은 법률에 대한 두 개의 렌즈
두 데이터셋을 한곳에 두는 것에서 제가 마음에 드는 점은, 이들이 서로 다른 질문에 답한다는 것입니다. 집계 보고서는 한 기간 동안 무엇을 했는지에 대한 플랫폼 자체의 요약으로, 자체 카테고리로 작성되며 발행 전에 법무 및 정책 팀의 검토를 거칩니다. 투명성 데이터베이스는 개별 결정의 원시 스트림으로, 모두에 대해 동일한 방식으로 구조화되며 지속적으로 제출됩니다. 어느 쪽도 다른 쪽의 대체물이 아니며, 둘 사이의 불일치가 종종 흥미로운 부분입니다. 이 둘을 동일한 쿼리 인터페이스 뒤에 나란히 두는 것, 바로 그것이 핵심입니다.