Automatically Profiling the Author of an Anonymous Text

by SL

저자들의 설명에 따르면, 작자 미상의 글이 있을 때 그 글의 내용이나 스타일 등을 통해서 저자에 대한 정보를 추측하는 것을 Authorship Profiling이라고 한다. 저자로 추정되는 여러 후보를  중에서 한 명을 콕 집어내는 Authorship Attribution과 달리, Authorship Profiling은 저자의 성별이나 나이 따위의 개인적인 특성을 추측하려는 것이다.

이런 게 왜 필요할까? 가령 어느 익명 게시판에 갔더니 특정 상품에 대해 부정적인 리뷰가 넘쳐난다고 생각해보자. 회사 관계자라면 그 상품을 나쁘게 평가한 소비자들이 주로 남자인지 여자인지, 청소년인지 장년층인지 궁금하지 않을까? 그밖에도 여러 재미난 응용을 찾아낼 수 있을 것 같다.

CACM(Communications of the ACM) 2009년 2월호에 Automatically Profiling the Author of an Anonymous Text라는 제목으로, 이 Authorship Profiling을 구현해서 성능을 실험한 연구 결과가 실렸다.

저자들은 사람들이 쓴 글의 스타일과 내용 상의 특징을 보고 그 저자의 실제 성별과 나이, 모국어 등을 추측하려고 했다. 영어 텍스트에서 스타일(기능어(Function Word)와 각 품사(Part-Of-Speech; POS)의 사용 빈도) 그리고 내용(많이 쓰인 단어) 특징을 뽑아낸 뒤 여기에 기계학습(Machine Learning) 기법을 적용해서 분류모델을 만든다. 이렇게 모델을 만드는 단계를 훈련(Training) 과정이라고 하는데, 훈련이 끝나면 다음 차례는 모델이 얼마나 똑똑한지를 평가하는 것이다. 어떻게? 훈련에 쓰이지 않은 새로운 텍스트를 입력해서 모델이 스스로 저자의 특성을 예측하도록 한 뒤에 실제 저자정보와 비교하면 된다.

실험에 쓰인 텍스트 종류는 다양한데, 우선 약 2만 명의 블로그 글을 가지고 성별과 나이를 추측하는 실험을 했다고 한다. 성별은 맞고 틀림이 명확하지만 나이를 정확히 맞추는 건 너무 어렵다. 그래서 10대(13 ~ 17, 42.7%), 20대(23 ~ 27, 41.9%), 장년층(33 ~ 47, 15.5%) 이렇게 세 집단으로 나누었다. 과연 결과는? 얼마나 정확했을까?

성별은 그냥 눈 감고 찍으면 50%의 확률. 또, 나이는 10대가 42.7%로 가장 많으므로 아무생각없이 무조건 10대라고 찍으면 42.7%의 정확도는 보장할 수 있다. 결과를 보기 전에 먼저 한 번 생각해보자. 어느 정도면 ‘그래 그 정도면 훌륭해’ 라고 인정할 수 있을런지…

실험에서 성별 정확도는 대략 75%가 나왔다. 또 나이대 예측은 67% ~ 77%의 정확도를 보였다. 범위로 표현한 이유는, 예측할 때 스타일만 보느냐, 내용만 보느냐, 둘 다 보느냐에 따라서 성능이 달라지기 때문이다.

이 정도면 잘 한 건가, 아니면 기대 이하인가?

그밖에도 영어학습사이트에 각 나라 사람들이 올린 글의 스타일이나 오류를 보고 저자의 모국어를 추측하는 실험도 있고, 대학생들에게 “의식의 흐름”에 따라 에세이를 쓰도록 한 뒤 이를 보고 신경과민 여부를 맞추려는 재미난 실험도 있었다. 자세한 설명과 결과는 논문에서 찾아보도록 하자.

여러가지로 흥미로운 내용이지만, -저자들도 여러 번 강조했듯이- 실험 세팅(블로그 글은 주제나 스타일에 있어 나름의 특성이 있다)에 따라 정확도나 저자들의 발견 내용이 달라질 수 있음을 염두에 두고 논문 결과를 바라볼 필요도 있어 보인다.