brunch

You can make anything
by writing

C.S.Lewis

by Kay Feb 16. 2024

정성의견 분류&감성분석 시스템 개발 사례③

숲과 같은 텍스트 데이터를 한눈에 살펴볼 수는 없을까

라벨링과 모델링 과정의 좌충우돌은 있었으나 10년 이상의 업무 경력을 뛰어넘는 4개의 분류 모델 생성을 무사히 마쳤다(다시보기). 프로젝트팀 내부적으로는 모델 성능에 만족하는 상황이 되었으니 ‘그럼 이제 시스템 개발 쪽에 결과물을 넘겨주고 끝나면 되는 건가’ 하는 생각이 들었지만 어찌 보면 이 프로젝트에서 가장 중요한 작업은 모델 생성이 완료된 순간 새롭게 시작되었던 것 같다. 



감성 스코어, 사람들은 말보다 숫자에 익숙하다.


정성의견 분류 모델과 감성분석의 결합을 통해 교육 프로그램이 끝난 후 참가자들이 남긴 의견을 항목 별 감성스코어 형태로 확인하는 것이 가능해졌다. 이 방식을 활용해 시스템 개발 전, 프로젝트 작업 중간보고 성격으로 기존에 리커트 스코어 중심의 보고 스타일을 벗어나 정성 의견을 정량화 한 분석의 결과를 보고를 했다. 

“이 프로젝트의 분석 방식을 통해 교육 만족도가 비슷한 차수 간에도 프로그램 참가자들의 항목 별 반응은 다르다는 것을 확인할 수 있었습니다.”


분류 모델과 감성분석을 활용해 진행한 분석 리포트


사실 애정을 듬뿍 담아 진행한 프로젝트인 데다가 기존과는 다른 관점의 보고였기에 내심 좋은 반응을 기대했던 것이 솔직한 마음이었다. 하지만 해당 보고에 대한 리더의 첫 코멘트는 일단 수고는 했는데, 왜 지난 차수보다 감성스코어 평균이 더 낮은지에 대한 질문이었다. 따지자면 감성스코어라는 개념 없이 리커트 중심으로 보고를 했을 때와 크게 다르지 않은 반응이었던 것이다.


프로젝트의 결과로 정성의견의 분류가 가능하고, 각 항목의 긍정 정도를 한눈에 살펴보는 것이 가능해졌다는 내용을 구두로 보고하기는 했으나 아무튼 시각화된 자료의 구성을 감성스코어 간의 차이를 중심으로 했으니 리더 입장에서는 당연히 숫자에 꽂히는 것이 어쩌면 당연한 일이었을 것이다. 중간보고를 통해 확실하게 생각한 부분은 이 프로젝트의 히스토리나 데이터 분석 프로세스 등에 친숙하지 않은 일반적인 사용자 관점에서 지금의 방식으로 모델을 활용한다 가정했을 때, ‘어쩌면 감성스코어라는 것이 교육 프로그램을 평가하는 또 하나의 지표로서 그들을 힘들게 할 수 있겠다’ 하는 것이었다.



감성 스코어, 또 다른 지표가 되지 않으려면


돌이켜 생각해 보면 쉬웠다고 말하긴 좀 그렇지만 그럼에도 이전 단계의 데이터 라벨링이나 모델 생성, 파인튜닝 작업은 남들이 이미 했던 방식이 있는 그래서 몸과 머리가 조금 더 고생하면 되는 작업 단계였던 것 같다. 하지만 프로젝트의 선한 의도를 그대로 전달하기 위한 방법에 대한 고민은 일종의 개념 설계가 필요한 창작의 영역이었기에 이때부터 프로젝트 멤버 간에 가장 많은 의견 교환이 있었던 것 같다.

중간보고 전 생각은 ‘어쨌거나 모델이 사람보다 낫다. 그러니 믿고 따라야 한다. 그리고 결과에 개입하기보다 투명하게 보여줘야 한다'는 쪽에 가까웠다. 하지만 보고 이후 내부적으로 수립한 방향은 ‘모두가 이 프로젝트를 수행했던 것은 아니며, 모델 작동 원리에는 관심이 없다'는 것이었다. 따라서 프로젝트팀 내에서 보다 중요하게 생각한 부분은 다음의 두 가지였다.


프로젝트의 결과물이 결코 또 다른 지표가 되지 않아야 한다.

사용자들은 모델의 잘한 결과보다는 실수에 더 민감하게 반응할 것이다.


우선 또 다른 지표화 되지 않기 위해 가장 쉬운 방식은 리커트를 통한 교육만족도 결과와 화면을 분류함으로써 차수 간 비교를 지원하지 않는 것이었다. 또한 단순히 스코어라는 개념은 아니었으면 좋겠다 하는 생각을 했었다. 그리고 사용자들은 프런트엔드를 통해 드러나는 결과를 중심으로 모델 성능을 판단하기 때문에 라벨 분류나 특정 문장에 대한 감성스코어가 본인의 생각과 다른 것에 더 민감하리라 하는 예상을 하게 되었고 모델이 실수를 한다는 생각을 하고 나면 모델을 신뢰하지 않을 것 같다는 생각에 모델의 분석 결과를 지원 기능대비 보수적으로 디스플레이하는 것이 낫겠다 하는 쪽으로 의견을 모았다.


이런 생각으로 감성스코어를 표현할 새로운 개념을 구상하던 중 당근마켓의 ‘매너온도’라는 개념을 떠올리고 들여다보게 되었다. 

당근마켓의 설명에 따르면 매너온도는 당근 사용자로부터 받은 칭찬, 후기, 비매너 평가, 운영자 제재 등을 종합해서 만든 매너 지표이다. 한 사람의 사용자로서 매너온도를 대하는 내 모습을 돌이켜 보자면 거래에 앞서 대화를 나누는 상대방을 매너온도를 기준으로 어떤 사람일지 짐작은 해보지만 그렇다고 그 사람이 그래서 44.5도인지 45.6도인지는 따지거나 거래 여부에 크게 영향을 미치지 않고 있었다. 이처럼 감성스코어도 사람들에게 느낌 정도로 다가설 수 있으면 좋을 것 같았다.


또한 좀 더 보수적인 디스플레이를 위해서는 문장 각각에 대한 스코어까지를 보여주는 것은 결코 좋은 생각이 아닐 것 같다는 생각을 했다. 따지고 보면 개별 문장에 대한 감성스코어라는 것은 해당 문장이 긍정 또는 부정일 확률값인데 그것을 스코어라고 말하는 것이 어색하기도 하다. 따라서 긍부정 분류 모델의 결과로 긍부정 결과는 보여주되 이면의 감성 스코어는 말하지 않기로 했다.



긍정 온도, 문장 분류 & 감성분석의 새로운 이름


이상의 고민과 논의를 통해 “긍정 온도"라는 새로운 개념으로 프로젝트의 결과를 정리해 보았다.


교육 만족도 설문 시스템 내 감성분석 결과 확인 화면 예시


감성스코어에 대한 스케일링을 통해 라벨 별 감성스코어를 0~50도 사이 온도계 안에 디스플레이하였다.
각 라벨 내의 긍부정 각각의 문장 수는 드러내지만 문장 별 스코어는 드러내지 않았다. 
지표화 하지 않기 위한 목적으로 이 모든 사항을 리커트 결과 확인 창인 “설문통계”와 분리된 별도의 탭에서 확인할 수 있게 함으로써 차수 간 비교가 아닌 특정 차수 내에서 참가자들의 반응을 살펴볼 수 있게 하였다.
각 라벨의 긍정 온도를 클릭해 특정 라벨에 대한 참가자 의견만을 확인할 수 있으며, 그 안에서 필터 기능을 통해 해당 라벨에 대한 긍부정 의견을 모아서 확인할 수 있도록 하였다.


라벨 별 긍부정 문장 필터링 예시


파이썬 모델 생성 이후, 고민해야 할 일


데이터 분석을 공부하고, 수업 중 과제 형태로 머신러닝까지도 학습을 해봤지만 막상 파이썬 안에서 모델을 만들었고, 심지어 그게 성능이 꽤나 좋다고 하는데 그걸 어떻게 활용할 수 있는지에 대한 부분은 크게 와닿지가 않았다. 학습 당시의 미지의 영역이 이 프로젝트를 시스템으로 구현하면서 비로소 해소될 수 있었다. 물론 LMS 상에 반영을 위해 말 그대로 시스템 개발자의 손을 빌리기는 해야 했으나 개발자의 역할은 개념을 재설계하는 것은 아니었다. 물론 돈을 더 많이 들였다면 그런 부분까지도 외주 가능했을지는 모르겠으나 적어도 이 프로젝트에서는 파이썬으로 직접 생성한 모델을 어떤 식으로 디스플레이할 것인지, 또 어떤 기능을 구현할 것인가에 대한 그림은 프로젝트팀에서 그려냈어야  했다. 그리고 도메인 전문가로서 그 부분을 직접 그려냄으로써 보다 사용자 친화적인 설계를 할 수 있었고, 비용적으로도 많은 부분을 세이브할 수 있었다고 생각한다. 물론 시스템적으로 유휴 서버를 확보한다거나 이 모델을 어느 시점에 어느 빈도로 리프레시할 것인지, 언제 모든 작업을 클로즈할 것인지에 대한 의사결정도 필요는 했으나 그건 어디까지나 시스템 개발 영역이었으니 도메인 전문가로서 무엇보다 중요했던 것은 사용 장면에 대한 구상과 의사결정이었다고 생각한다.



고객(사용자)의 마음으로, 세상에 완벽한 시스템은 없다


데이터 분석부터 시작해 모델 개발, 그리고 시스템에 탑재하기까지의 모든 과정을 마치고 나서 처음 구상했던 아이디어가 실제 업무에 구현된 것을 보면서 무척이나 뿌듯한 마음이 들었다. 그리고 내심 칭찬 섞인 반응을 기대하며 주변 동료들의 사용 후기를 들어봤다. 그런데 조금은 갸웃한 반응들이 있었다. 가령 분류 모델을 통해 나뉜 특정 피드백이 관심유발이나 내용구성이 아닌 것 같다는 의견이었다. 사실 세상에 100점짜리 모델은 없고, 있다면 오히려 그게 더 이상한 것이니 라벨링 원칙이나 분류 기준을 직접 수립한 입장에서는 간혹 있는 모델의 실수에 대해서 조금 더 너그러울 수 있지만 아무래도 사용자 입장에서는 기대와는 다른 부분을 더 집중해서 볼 수 있겠다 하는 생각이 들었다. 그래서 구성원들의 이해와 활용에 도움을 주기 위한 목적으로 FAQ를 작성해 배포하였으며, 분류 모델과 감성분석 결과는 절대적인 것이 아니며 5점 만점으로 파악하던 교육만족도 결과를 다양한 관점에서 바라볼 수 있는 보조지표로서 활용하기 위한 목적이라고 설명하였다.



HR Analytics, 숫자 그 너머의 의미를 발견하기를 바라며


전사원을 대상으로 진행한 특정 프로그램이나 웨비나의 실시간 참가자 수가 약 3,000명 정도였고, 행사를 마친 후에 오늘 프로그램이 어땠는지에 대한  참석자들의 반응을 30초 내에 파악해서 C-level에게 즉시 보고해야만 하는 상황을 가정해 보자. 


“오늘 3,000명 정도가 참석했고, 프로그램 만족도는 4.76입니다.” 
“오늘 3,000명 정도가 참석했고, 프로그램 만족도는 4.76입니다. 특히 준비 과정에서 저희가 집중했던 유용성에 측면에서 긍정적인 반응이 많았습니다. 반면 관심 유발에 대한 보완이 조금 필요할 것 같아 내용을 추가로 확인해 보겠습니다.”


30초 남짓한 시간 동안 파악한 정보를 토대로 두 가지 방식 중 어떤 보고를 하는 쪽이 리더의 궁금증 해소와 다음 활동을 위한 의사결정에 도움을 줄 수 있을까. 데이터 기반의 HR, 거스를 수 없는 업무 방식이 될 것이다.

작가의 이전글 정성의견 분류&감성분석 시스템 개발 사례②

작품 선택

키워드 선택 0 / 3 0

댓글여부

afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari