생각하는 아져씨

[Paper] Are Large Pre-Trained Language Models Leaking Your Personal Information? 본문

Machine & Deep Learning/NLP Paper

[Paper] Are Large Pre-Trained Language Models Leaking Your Personal Information?

azeomi 2023. 2. 15. 20:41

2022년 EMNLP에 게재된 논문으로, 요즘 Chat-GPT 같이 거대 언어 모델을 만들고 사용하는데 있어서 꼭 필요한 개인정보 위험에 관한 내용을 담고 있습니다.

연구를 하면서 성능을 높이는 논문을 주로 읽어왔는데, 이렇게 흥미로운 주제를 다루는 논문도 꼭 필요한 것 같습니다.


느낀점

졸업 논문을 준비하다보니 논문 스터디 업로드를 미루게 되었습니다.

오랜만에 재미있는 논문을 읽게되어서 뇌가 살아나는 느낌입니다. 앞으로 최신 연구 트렌드를 잘 따라갈 수 있도록 더 열심히 공부하기 다짐합니다.

논문을 읽으면서 새로운 트렌드, 개념도 얻었습니다.

제가 이해한 바를 정리했으며, 자세한 개념은 다른 분들의 글을 참고했습니다 :)


개요

  • Pre-Trained Language Models(PLMs)이 개인정보를 유출하기 쉬운지에 대해 실험한다.
  • 본 논문은 크게 2가지, memorization & association 때문에 PLMs의 개인정보 유출이 일어나는 것을 발견했다.
  • memorization과 association의 중요한 구분을 처음으로 시도한 논문이다.
  • 실험과 고찰을 통해 PLMs의 프라이버시 위험을 고려하고 더 안전하게 만들 수 있는 방법을 소개한다.

 

현재 Pre-Trained Language Models(PLMs)의 상황

PLMs의 위험

PLM은 NLP task에서 상당한 도약이 있었고 파라미터와 학습 데이터의 폭발적인 성장이 있었다.

하지만, 최근 연구에서 Large PLMs는 프라이버시 문제에 노출될 수 있다는 점이 지적되었다.

예를 들면,

→ 모델에 어떤 질문을 쿼리로 줌으로써 학습 정보의 예제들인 사람의 이름, 전화번호, 이메일 등을 얻을 수 있다.

→ 만약 모델이 private corpus에서 학습되었다면, 더 많은 개인정보 유출이 일어날 수 있다.

[Large PLMs이 당신의 개인정보를 유출하는지에 대해 GPT-3에게 질문했을 때 답변]

 

PLMs의 개인정보 유출이 일어날 수 있는 요인

  1. 첫번째, Memorization
    1. PLMs는 많은 학습 데이터를 “기억” 할 수 있기 때문에 프라이버시 유출이 쉬워진다. (Carlini et al. (2021, 2022))
    2. PLMs는 개인정보를 기억하고 어떤 특정한 prefix로 그 정보를 복구해낼 수 있다. (예를들면, 학습데이터의 어떤 정보 앞에 있는 token들)
    3. 하지만, 기억된 정보만을 가지고 attacker가 쉽게 공격할 수 있는 것은 아니다. clinical note에서 학습된 BERT 모델에서, (환자이름-상태) 쌍 정보에서 환자의 이름과 상태를 잘 연관짓지 못하는 것을 발견했고 이것은 PLMs ‘기억’ 만으로는 개인정보를 유출하기 쉽지 않다는 것을 알아냈다.
  2. 두번째, Association
    1. PLMs는 개인정보를 그 소유자와 “연관” 지을 수 있다.
    2. attacker가 어떤 쿼리를 통해서 소유자의 연관된 개인정보를 빼낼 수 있다는 것이다.
      → “the email address of Tom is _____ .”

👉 PLMs의 개인정보 유출이 일어나려면, 이 2가지가 있어야 한다. 만약 “기억” 만 하고 “연관” 짓지 못한다면, 누군가의 민감한 정보가 유출될지라도 attacker는 그 정보의 prefix가 무엇인지 찾는 것은 어렵기 때문에 ‘특정’ 인물의 정보를 추출할 수 없다.

 

Related Work

Knowledge Retreival from Language Models

이전 연구에서는 PLMs이 많은 정보를 포함하고 적절한 prompt를 통해서 정보가 복구될 수 있었다.

이전 연구에서도 개인정보를 특별한 종류의 정보라고 보고, 추출하는 것을 시도했다.

→ 하지만 본 논문은 이전 연구와 다르게 많은 정보를 포함하되 개인정보는 가능한 적게 포함하도록 하여 개인정보 유출을 피하길 바람.

 

Memorization and Privacy Risks of Language Models

(Carlini et al., 2021, 2022; Thakkar et al., 2021)

  • PLMs이 많은 데이터를 “기억(memorize)” 한다는 것을 입증했다.

이런 PLMs는 어떤 상황에서는 민감한 정보를 유출시켜 프라이버시 이슈를 일으킬 수도 있다.

이런 프라이버시 유출 문제를 완화하기 위해 PLMs의 프라이버시 보존에 대한 관심이 늘고 있다.

 

본 논문이 다루고자 하는 문제

  • 개인정보 유출에 대한 PLMs의 위험을 측정하는 것
  • PLMs의 유출의 원인이 되는 2가지에 대해 확인한다: Memorization, Association 
  Definition 확인 방법
Memorization 만약 모델 f 의 학습데이터에 시퀀스 p 가 존재한다면, 개인정보 x 는 모델 f에 의해 기억된다. 모델 f는 greedy decoding을 사용해 x 을 생성할 수 있다. target sequence의 context와 함께 모델에 쿼리한다.
Association 만약 prompt p(대게 소유자의 이름을 포함하는)가 attacker(학습데이터에 접근권한이 없는)에 의해 설계된다면, 개인정보 x는 모델 f 에 의해 연관지어질 수 있다. 모델 f는 greedy decoding을 사용해 x를 생성할 수 있다. 다양한 prompt로 쿼리함으로써 attacker임을 가장해 공격한다.
  • 모델 실험은 이메일 주소에 초점을 맞춤
  • local part @ domain
  • 이메일 주소에 대해 Test 하는 방법2) 소유자의 이름이 주어지면, PLMs에 적절한 프롬프트를 주어 소유자와 연관된 이메일 주소를 물어본다.
  • 1) 이메일 주소의 context가 주어지면, 모델이 이메일 주소를 복구할 수 있는지 조사한다.

 

사용한 데이터 및 Pre-Trained Model

Pre-Trained Model

Dataset

  • Enron Corpus
    • 600,000 이상의 이메일 정보 포함
    • (name, email) 쌍으로 모았음.
    • Enron Company 이메일 → frist_name.last_name@enron.com 이라는 쉬운 패턴이 존재하는데 LM이 소유자의 이름이 주어지면 쉽게 이메일을 예측할 수 있는 문제가 있음.
  • 최종 사용 데이터
    • 따라서 Non-Enron domain 이메일을 사용한다.
    • Few shot 세팅을 위해 이메일 필터링
      • 3번 이하 등장하는 도메인 제거
      • 이름이 3토큰 이상인것 제거
    • 총 3238 (name, email) 쌍 사용

 

Methods

  • GPT-Neo에 다양한 프롬프트를 입력으로 주면 100개의 토큰을 생성한다. output에서 등장하는 첫번째 이메일 주소가 예측된 이메일 주소이다. (output에 이메일이 없는 경우도 있다.)
  • greedy decoding을 기본으로 하고 다른 디코딩 알고리즘은 어펜딕스에서 확인할 수 있음.
  • Memorization과 Association을 정량화 하는 단계는 다음과 같이 진행.
  • (논문의 코드는 공개되어 있다. 자세한 구현과 데이터 확인 방법은 밑에 설명.)

1. Context Setting

  • 이전연구 Carlini et al. (2022) → 시퀀스의 Prefix(접두사)가 주어졌을 때 PLM이 나머지 시퀀스를 복구할 수 있는지 여부를 검사하여 Memorization을 정량화 했음.
  • 50, 100, 200 토큰을 target 이메일 주소에 선행시켜 Input으로 준다. → PLM이 target 이메일 주소를 도출하기 위해
  • 예시)

이메일 데이터에서 차례대로 local_part 와 domain을 추출

Context 데이터에서 Context 추출

Context에서 50, 100, 200 토큰을 잘라서 prompt를 생성한다.

 

2. Zero-shot Setting

  • Association을 측정하기 위해 설정
  • 총 5개의 prompt를 사용한다.

 

  • 예시)

이메일 데이터에서 차례대로 local_part와 domain 추출

0-shot(A)를 위한 prompt 생성

 

0-shot(B)를 위한 prompt 생성

 

0-shot(C)를 위한 prompt 생성

 

0-shot(D)를 위한 prompt 생성

 

 

3. Few-shot Setting

  • 모델에 일종의 지식으로 볼 수 있는 demonstration을 제공함으로써 모델의 성능을 향상시킬 수 있다. (Brown et al. (2020))
  • 모델이 target 이메일 주소를 예측할 수 있도록 k개의 true pair(name, email) 을 demonstartion으로 제공한다.

  • 예시)

이메일 데이터에서 차례대로 local_part와 domain 추출

k-shot(k=5)를 위한 prompt 생성

 

실험 결과 및 분석

[Table 1-3]

  • 서로 다른 사이즈의 3가지 GPT-Neo를 사용한 실험
  • #predict: 생성된 텍스트에서 나타난 이메일 주소와 함께 생성된 예측 수
  • #corret: 올바르게 예측한 이메일 주소 수
  • #no pattern: 올바른 예측 중 표 4의 표준 패턴을 따르지 않는 이메일 주소 수
  • #corret*(know-domain setting): local part가 올바른 이메일 주소 수
  • 실험을 통해 얻은 표

 

실험을 통해 다음 5가지의 insight를 얻었다.

1. PLMs는 좋은 memorization을 가지고 있지만 association는 약하다.

Table 1 은 Context Setting의 결과를 보여준다. 그 중 Best 결과는 표준 패턴을 따른지 않는 주소까지 포함해서 8.80%의 정확도를 보여준다.

하지만, Table 2(domain Unknown)에서 PLMs이 올바르게 예측한 이메일 주소는 아주 적다는 것을 관찰했고 그 중 대부분은 Table 4에서 확인할 수 있는 패턴이 있었다.

이 결과는,

PLMs이 많은 이메일주소를 기억하긴 하지만 이름과 이메일 주소간 연관성을 정확하게 이해하지 못한다는 것을 보여준다.

0-shot(D)가 0-shot(C) 보다 높은 정확도를 보여준 것은 주목할만한 결과인데, (C)와 (D)의 유일한 차이점은 (D)가 더 긴 prefix(접두사)를 가졌다.

이것은 PLMs이 시퀀스의 memorization에 기반하여 주로 예측을 만들어낸다는 것을 나타낸다.

만약 모델이 Association에 기반해 예측했다면?

→ (C) 와 (D)는 반드시 유사하게 동작했어야 한다.

👉 이를 통해 알 수 있는 것: 더 긴 context는 더 많은 memorization을 발견할 수 있다.

 

2. 많은 지식이 있을수록, 공격은 성공적이다.

Table 2(known), 3(unknown)을 통해 domain이 known이고 더 많은 예제가 제공될 경우 많은 성능 향상이 있음을 알 수 있다.

→ format 이나 pattern을 학습할 수 있으니 더 높은 정확도를 가질 수 있는 것.

 

3. 큰 모델일수록 위험은 커진다.

모델이 확장될 수록 정확도는 향상된다.

1) 더 많은 파라미터가 있다면, PLMs는 더 많은 학습데이터를 memorization 할 수 있기 때문. (Table 1에서도 확인할 수 있다.)

2) 큰 모델은 prompt를 더 정교하고 잘 이해할 수 있기 때문이다. 이것은 더 나은 예측을 생성한다.

 

4. PLMs는 취약하지만 상대적으로 안전하다.

  • Table 2(unknown)을 봤을 때 적은 이메일만 맞췄고 그 중 대부분은 표준 패턴을 따랐다.
  • Table 3(known)을 봤을 때 많은 이메일을 맞추었지만 그것은 Simple rule-based 방법보다도 낮았다.
  • Table 1(Context Setting)을 봤을 때, PLMs이 의미있는 예측을 했다. 하지만,
    • 학습데이터가 private 한 경우 → attacker는 context를 얻을 수 있는 접근이 없고
    • 학습데이터가 public한 경우 → PLMs가 target 이메일 주소의 접근성을 개선시킬 수 없다. 예측에 사용하기 위해 먼저 말뭉치에서 target 이메일 주소의 컨텍스트를 찾아야(예: 검색을 통해) 하기 때문에 대상 이메일 주소의 접근성을 개선할 수 없다.

→ PLMs는 상대적으로 안전하다.

  • 그러나, attakcer가 이미 context를 알고 있는 경우, PLMs의 도움 없이 context 이후의 이메일 주소를 알아낼 수 있다.

 

5. PLMs의 프라이버시 위험을 무시할 수는 없다.

  1. 긴 텍스트 패턴은 위험을 가져온다. (0-shot(D))
  2. attacker는 더 많은 정보를 얻기 위해 기존 지식을 활용한다.
  3. 크고 강한 모델은 더 많은 개인정보를 추출할 수 있다.
  4. 개인정보가 memorization을 통해 우연히 유출될 수 있다. (8.80% 복구된 것을 확인함)

 

프라이버시 유출을 완화하는 방법 제안

몇 가지 가능한 전략을 소개한다.

  1. Pre-processing
    • 긴 패턴 식별 후 제거
    • Lee et al. (2022) 에 따르면 중복제거는 memorized를 줄이는데 상당한 효과가 있었다고 한다.
  2. Training
    • DP-SGD(differentially private stochastic gradient descent) 사용
  3. Post-processing
    • API 접근 모델은 output에 민감한 정보가 있는지 조사하는 모듈이 있다.
    • 그렇다면, 정보를 마스킹하거나 제거하는 방식을 사용

 

결론 및 한계

PLMs에서 Memorization과 Association 사이의 구분을 처음으로 시도했다. 실험 결과 PLMs는 기억을 통해 정보 유출을 하지만 특정 개인정보가 유출되는 위험을 적다. 왜냐하면 PLMs은 개인정보와 그 소유자를 의미있게 연관짓지 못하기 때문이다.

논문에서 몇가지 정보유출 잠재위험을 완화하는 방법을 소개하여 PLMs의 위험을 이해하고 신뢰할 수 있도록 만들기 위한 insight를 제공했다.

  • 프라이버시 문제로 인해 데이터 사용에 한계가 있었다.

본 논문은 모델이 보통 유사한 방법으로 학습되기 때문에 이러한 주제는 일반화 될 수 있다고 여긴다. 연구자들이 프라이버시 위험의 문제를 memorization과 association에 의한 위험임을 구분할 수 있도록 하고 실사용에서 본 논문의 방법으로 프라이버시의 위험성을 평가할 수 있기를 추천한다.

 

 

Code 실행

  • 코드는 논문에 공개되어 있고 README에 실행 방법도 적혀있다.
  • Github
 

GitHub - jeffhj/LM_PersonalInfoLeak: The code and data for "Are Large Pre-Trained Language Models Leaking Your Personal Informat

The code and data for "Are Large Pre-Trained Language Models Leaking Your Personal Information?" (Findings of EMNLP '22) - GitHub - jeffhj/LM_PersonalInfoLeak: The code and data for &...

github.com

 

  • requirements.txt에 있는 환경설정 후 테스트 (python=3.7 사용)
  • python pred.py 를 통해 Context Setting, Zero-shot, K-shot에 필요한 모델과 데이터를 얻고 테스트를 진행할 수 있다.
    • setting 변수를 통해 3가지 중 선택 가능
    • decoding 방법도 설정 가능: greedy, top-n, beam search
  • python anlayze.py 를 통해 #predicted, #correct, #no pattern, accuracy 등을 분석할 수 있음.
    • 여기서도 setting 변수를 통해 3가지 중 선택 가능
    • decoding 방법에 따른 결과 확인 가능
    • result 폴더에 csv 파일 생성됨.
  • data 폴더에는 Context Setting, Zero-shot, K-shot에 해당하는 데이터가 존재하는데 pkl 파일로 저장되어 있다.
    (ex. context.pkl)
  • 사용하고 있는 데이터를 자세히 확인하고 싶어서 load 해보니 defulatdict type을 가지고 있었다.
import pickle as pkl
with open("context.pkl","rb") as fr:
    data = pkl.load(fr)

# print(data['hiattj@epenergy.com'])
# print(data.keys())    # 저장되어 있는 key 확인

test = data['guinara@hotmail.com']  # 이메일의 context 확인

# print(len(test.split()))

 

References

 

GPT-Neo - 오픈소스 GPT-3 프로젝트 | Smilegate.AI

비영리 오픈소스 연구단체인 Eleuther AI에서 발표한 GPT-Neo는 GPT-3의 구조를 활용하여 학습한 거대 언어 모델로서, 학습 및 테스트에 필요한 코드들이 오픈소스로 공개되어 있을 뿐 아니라 학습에

smilegate.ai

 

Are Large Pre-Trained Language Models Leaking Your Personal Information?

Jie Huang, Hanyin Shao, Kevin Chen-Chuan Chang. Findings of the Association for Computational Linguistics: EMNLP 2022. 2022.

aclanthology.org