필자가 보기에 제품 기획자는 고객 의견을 모을 때 흔히 설문을 쓴다. 설문 문항은 기획자가 미리 정한 속성으로 만든다. 그래서 고객이 실제로 신경 쓰는 속성이 문항에 없으면 그 의견은 결과에 나오지 않는다. 이 문단의 설문 이야기는 필자의 일반론이며, 아래에서 다룰 논문의 내용은 아니다. 한편 고객은 블로그, 트위터, 페이스북, 레딧(Reddit) 같은 소셜미디어에 제품 이야기를 남기고, 그런 글은 빠르게 쌓인다.
그렇다면 소셜미디어 게시글만으로 고객이 실제로 언급하는 제품 속성을 뽑아내고, 그 가운데 어느 속성을 먼저 개선할지 순서까지 정할 수 있을까?
이 질문에 답한 논문을 한 편 읽어 본다.
- 제목: Social media mining for product planning: A product opportunity mining approach based on topic modeling and sentiment analysis
- 학술지: International Journal of Information Management
- 연도: 2019
- DOI: 10.1016/j.ijinfomgt.2017.09.009
논문은 이 방법을 기회 마이닝 접근(opportunity mining approach)이라 부른다. 이 방법은 소셜미디어 글에서 고객이 이야기하는 제품의 주제를 찾는다. 그다음 주제마다 얼마나 자주 언급되는지(중요도)와 얼마나 좋게 말하는지(만족도)를 숫자로 구한다. 마지막으로 두 숫자를 합쳐 개선 기회가 큰 주제부터 순서를 매긴다.
이 글에서 쓰는 핵심 용어는 다음과 같다.
- 제품 토픽(product topic): 고객이 소셜미디어에서 논의하는 제품의 주제다. 이 글에서 말하는 “고객이 보는 제품 속성”과 같은 뜻이다.
- 토픽 모델링(topic modeling): 문서 묶음에 숨어 있는 주제를 추론하는 기법이다. 문서 하나는 여러 주제가 섞인 것으로, 주제 하나는 여러 단어가 섞인 것으로 본다.
- 잠재 디리클레 할당(Latent Dirichlet Allocation, LDA): 이 논문이 쓴 토픽 모델링 알고리즘이다.
- 감성 분석(sentiment analysis): 글쓴이가 긍정 의견을 냈는지 부정 의견을 냈는지 판별하는 작업이다.
- 기회 알고리즘(opportunity algorithm): 중요도와 만족도 두 값으로 기회를 계산해, 충족되지 않은 요구의 우선순위를 정하는 방법이다.
동기: 쌓여 가는 고객 의견을 개선 순서로 바꿀 방법이 부족했다
왜 제품 기회를 일찍 찾는 일이 중요한가
논문이 드는 이유는 다음과 같다.
- 고객 분석에서 새 제품 기회를 일찍 찾는 일은 제품 개발과 개선 과정의 첫 요건으로 꼽힌다.
- 기회를 일찍 찾은 기업은 경쟁사가 쉽게 따라 하지 못하는 고객 관계를 만들고, 가치사슬에서 경쟁 위치를 확보한다.
- 제품 수명주기가 짧아지고 사업 환경이 세계화되면서 고객 요구가 전보다 빠르게 바뀌고 복잡해졌다.
- 소셜미디어는 고객 의견을 실시간으로 많이 담은 자료원이다. 논문이 인용한 조사에서 미국 성인의 86%, 유럽 성인의 79%가 소셜미디어를 쓴다.
기존 연구가 다루지 않은 부분
감성 분석은 이미 제품 기획에 쓰여 왔다. 온라인 리뷰에서 제품 약점을 찾은 연구, 모바일 서비스의 고객 만족을 측정한 연구가 있다. 사용자 글에서 서비스 품질을 파악하거나 소셜미디어에서 브랜드 이미지를 정의한 연구도 있다.
논문이 짚은 빈틈은 다음과 같다.
- 단어 단위 분석에 머물러, 고객이 말하는 잠재 제품 속성을 찾기 어려웠다.
- 찾아낸 속성이 개선 기회로서 얼마나 가치가 있는지 분석하지 않았다.
- 긍정과 부정을 판별하는 데 집중하고, 잠재 기회는 다루지 않았다.
- 대부분 제품 개발 방향에 관한 지침을 주지 않았다.
방법: 토픽으로 속성을 찾고 감성으로 만족도를 매긴 뒤 기회 점수를 낸다
논문은 방법을 4단계로 설명한다. 1단계에서는 대상 제품에 관한 소셜미디어 글을 모으고 키워드를 뽑아 정리한다. 2단계에서는 LDA로 제품 토픽을 찾고 토픽마다 중요도를 계산한다. 3단계에서는 키워드 감성 점수로 토픽마다 만족도를 계산하고, 4단계에서는 기회 알고리즘으로 기회 점수를 구해 개선 방향을 정한다.
사례와 자료
사례 제품은 삼성 갤럭시 노트 5(Samsung Galaxy Note 5, SGN5)다. 이 스마트폰은 통화, 무선 인터넷, 사진 촬영 같은 일반 기능을 갖추었다. S펜, 무선 충전, 삼성 결제 같은 이 기기만의 기능도 있다. 연구진은 기능이 많고 사용자 규모가 커서 분석 과정을 설명하기에 알맞다고 보았다.
자료원은 레딧이다. 트위터나 페이스북 자료는 분석가가 정한 키워드나 해시태그로만 모을 수 있다. 반면 서브레딧(관심 분야별 게시판)에는 제품 키워드가 들어 있지 않은 간접 의견까지 쌓인다.
연구진은 SGN5 서브레딧에서 문서 23,614건을 모았다. 게시글이 2255건, 댓글이 21,359건이다. 작성 기간은 2014년 11월 7일부터 2016년 1월 31일까지다. 출시일(2015년 8월 21일) 전에는 하루 평균 4.41건이 올라왔다. 출시일 이후에는 하루 평균 136.25건으로, 출시 전의 31배다.
1단계: 자료 수집과 전처리
- 입력: 대상 제품에 관한 고객의 소셜미디어 글
- 처리: 키워드 추출, 무의미한 키워드와 문서 제거
- 산출: 문서마다 키워드와 출현 빈도를 적은 배열
- 대상 제품을 다룬 고객 글을 모은다. 웹 크롤링이나 소셜미디어가 제공하는 공개 응용 프로그램 인터페이스(Application Programming Interface, API)를 쓴다.
- 글마다 키워드나 핵심 구를 뽑는다.
- 이모티콘, 의성어, 분석에 무관하거나 너무 일반적인 단어를 뺀다.
- 글 하나를 키워드와 그 빈도의 배열로 정리한다.
논문은 이렇게 정리한 자료로 문서-키워드 빈도 행렬을 만들고, 이 행렬을 LDA의 입력으로 쓴다.
사례에서 연구진은 빠른 자동 키워드 추출 알고리즘(Rapid Automatic Keyword Extraction, RAKE)을 썼다. RAKE는 학습 자료가 필요 없고, 분야와 언어에 상관없이 쓸 수 있으며, 복합어도 뽑아낸다. 처음에는 키워드 32,637개를 얻었지만, 웹페이지 주소나 ‘WoW’ 같은 구어가 섞여 있었다.
연구진은 문서 안 출현 빈도와 문서 빈도(Document Frequency, DF) 기준으로 키워드를 거르고, 남은 키워드 가운데 SGN5와 무관한 것은 사람이 직접 지웠다. 그 결과 키워드 3539개가 남았다. 이 키워드가 하나도 없는 문서 12,491건은 광고 같은 잡음 문서로 보고 제외했다. 최종 분석 대상은 문서 11,123건이다(23,614 − 12,491 = 11,123).
2단계: 제품 토픽과 중요도 찾기
- 입력: 문서-키워드 빈도 행렬, 키워드 목록, 토픽 수
- 처리: LDA 실행, 토픽 이름 부여, 토픽별 기여도 합산과 정규화
- 산출: 제품 토픽 목록과 토픽마다 0~10 사이의 중요도
- 문서를 행, 키워드를 열로 두고, 각 원소에 키워드 출현 빈도를 적은 행렬을 만든다.
- 토픽 수를 정한다. 토픽 수를 바꿔 가며 모든 토픽 쌍의 평균 코사인 유사도를 구한다. 그리고 그 값이 가장 낮아지는 지점을 택한다.
- LDA를 실행한다. LDA는 입력 행렬을 문서-토픽 행렬과 토픽-키워드 행렬로 나눈다.
- 기여도가 큰 키워드와 문서를 읽고 토픽마다 사람이 이름을 붙인다.
- 토픽마다 모든 문서에 대한 기여 확률을 더해 중요도를 구하고, 0~10으로 정규화한다.
토픽 수를 이렇게 정하는 이유는 토픽끼리 가장 잘 구분되는 수가 알맞은 수라고 보기 때문이다. 코사인 유사도는 두 벡터 사이 각도의 코사인 값이다. 두 벡터가 같으면 1이 된다. 따라서 토픽 쌍의 평균 유사도가 낮을수록 토픽이 서로 덜 겹친다.
중요도의 출발점은 기여 스톡(contribution stock)이다. 문서-토픽 행렬에서 한 토픽의 열을 모든 문서에 대해 더한 값으로, 그 토픽이 사용자에게 얼마나 많이 언급되었는지를 나타낸다. 정규화식은 “10 × (해당 토픽의 기여 스톡 − 최솟값) ÷ (최댓값 − 최솟값)“이다. 가장 많이 언급된 토픽은 10점, 가장 적게 언급된 토픽은 0점을 받는다.
사례의 숫자로 계산해 본다. 기여 스톡의 최댓값은 Samsung Pay의 202.2198, 최솟값은 Accessory의 165.9974다. Fast charge의 기여 스톡은 191.5701이다. 중요도는 10 × (191.5701 − 165.9974) ÷ (202.2198 − 165.9974) = 10 × 25.5727 ÷ 36.2224 = 7.0599이고, 논문 표 6의 값과 같다. 논문 본문에는 최댓값·최솟값과 일부 토픽(Samsung Pay, Fast charge, Software update)의 기여 스톡만 나오고, 정규화한 중요도 전체는 표 6에 있다.
사례에서 평균 코사인 유사도의 변곡점은 토픽 수 65에서 나타났다. 이때 평균 유사도는 0.04554였다. 연구진은 LDA를 Netminer로 실행했다. 예를 들어 Topic-10은 주요 키워드가 SD(0.130), SD-card(0.094), removable battery(0.049), MicroSD(0.036), IR blaster(0.016)여서 ‘Expandability(확장성)‘라는 이름을 받았다.
3단계: 제품 토픽의 만족도 계산
- 입력: 키워드가 등장한 문장, 2단계의 토픽-키워드 행렬
- 처리: 키워드 감성 점수 평균, 감성 가중 행렬 작성, 토픽별 합산과 정규화
- 산출: 토픽마다 0~10 사이의 만족도와 감성 가중 토픽-키워드 행렬
- 키워드가 등장할 때마다 감성 점수를 구하고, 키워드별로 평균을 내 키워드 감성 벡터를 만든다.
- 토픽-키워드 행렬의 각 행에 키워드 감성 벡터를 곱해 감성 가중 토픽-키워드 행렬을 만든다.
- 행마다 값을 모두 더해 토픽의 감성 스톡(sentiment stock)을 구한다.
- 감성 스톡을 중요도와 같은 방식으로 0~10에 맞춘다.
감성 분석 방식은 사전 기반, 텍스트 분류 기반, 딥러닝 기반으로 나뉜다. 논문은 딥러닝 기반을 택했다. 트위터 글처럼 짧은 텍스트의 감성 분석에서 성과가 좋았기 때문이다. 실제 분석에는 IBM 왓슨 플랫폼의 AlchemyAPI를 썼다. 분류기를 직접 구현하고 시험하는 시간을 줄이고, 큰 자료로 학습한 분류기의 정확도를 활용하려는 목적이었다.
같은 키워드라도 문장마다 감성이 다르다. ‘battery’는 앱이 배터리를 소모한다고 탓하는 문장에서 −0.9013을 받았다. 반대로 배터리가 괜찮다는 문장에서는 0.8790을 받았다. 그래서 연구진은 키워드별 평균값을 감성 가중치로 썼다.
키워드별 감성 가중치는 양의 값과 음의 값으로 나뉘었다. 화면 소재인 AMOLED는 0.5689로 양의 값을 받았고, 지문 스캐너(finger print scanner)는 −0.5141로 음의 값을 받았다. battery와 SD card도 음의 값이었다. 전체 키워드의 가중치 일부는 논문 표 5에 실려 있다.
사례에서 키워드 3539개는 문서 11,123건에서 모두 105,483번 등장했다. 감성 스톡이 가장 높은 토픽은 Touch wiz(0.1093), 가장 낮은 토픽은 Detect pen1(−0.2918)이다. 평균은 −0.0999, 표준편차는 0.0791이었다. 65개 토픽 가운데 36개가 평균보다 높았다. 정규화 뒤 Touch wiz의 만족도는 10.0000, Detect pen1은 0.0000이다.
4단계: 기회 알고리즘으로 제품 기회 찾기
- 입력: 토픽별 중요도와 만족도, 감성 가중 토픽-키워드 행렬
- 처리: 기회 점수 계산, 기회 지형 맵 작성, 상위 토픽의 감성 키워드 해석
- 산출: 토픽별 기회 점수와 개선 방향
- 토픽마다 기회 점수를 계산한다.
- 중요도와 만족도를 두 축으로 하는 기회 지형 맵(opportunity landscape map)을 그린다. 이 맵은 적정 충족(served-right), 과잉 충족(over-served), 미충족(under-served) 세 영역으로 나뉜다.
- 기회 점수가 높은 토픽에서 감성 가중값이 큰 키워드를 찾아, 만족을 키우거나 불만을 줄이는 방향으로 개선 방향을 정한다.
기회 알고리즘은 울윅(Ulwick)이 성과 중심 혁신(Outcome-Driven Innovation, ODI)과 함께 제안했다. ODI는 요구가 중요한데 충분히 충족되지 않을 때 혁신 기회가 있다고 본다. 식은 “기회 = 중요도 + Max(중요도 − 만족도, 0)“이다. 중요도가 만족도보다 높으면 그 차이를 중요도에 한 번 더 더한다. 만족도가 더 높거나 같으면 중요도만 남는다.
사례의 값으로 세 경우를 계산해 본다.
- Fast charge: 중요도 7.0599, 만족도 5.4720이다. 7.0599 + (7.0599 − 5.4720) = 7.0599 + 1.5879 = 8.6478.
- Software update: 중요도 4.6186, 만족도 4.9924다. 차이가 음수라 0이 되고, 기회 점수는 중요도와 같은 4.6186이다.
- Detect pen1: 중요도 2.2850, 만족도 0.0000이다. 2.2850 + (2.2850 − 0) = 4.5700.
미충족 영역의 요구는 중요도에 비해 덜 충족된 요구이고, 기회 알고리즘은 이를 혁신 기회로 본다.
결과: 삼성 페이, 고속 충전, S펜과 배터리 토픽이 개선 기회 상위를 차지했다
고객이 꺼낸 65개 토픽의 구성
65개 토픽 가운데 6개가 배터리와 충전을 다룬다. Battery life, Battery usage, Battery drain, Fast charge, Charger, Wireless charge다. 이전 모델인 갤럭시 노트 4와 비교해 새로 생기거나 바뀐 기능도 6개 토픽으로 잡혔다. Samsung Pay, Pen out, Expandability, Wireless charge, Screen off memo, Samsung Pay on ATM이다.
소프트웨어 관련 토픽은 13개로 가장 많았다. Software update, Music App, Multi-window, Touch wiz 등이 여기에 속한다. 연구진은 이 결과를 근거로 스마트폰 시장에서 소프트웨어가 하드웨어만큼 중요하다고 해석했다.
중요도와 만족도의 분포
기여 스톡의 평균은 171.1228, 표준편차는 6.58이었다. 65개 토픽 가운데 평균보다 높은 토픽은 20개뿐이다. 연구진은 Samsung Pay(202.2198), Fast charge(191.5701), Software update(182.7272)를 평균에서 크게 벗어난 값으로 꼽았다.
정규화 뒤 전체 토픽의 평균 중요도는 1.4150, 평균 만족도는 4.7854였다.
기회 점수 상위 토픽
기회 지형 맵에서 미충족 영역에 있으면서 기회 점수가 높은 토픽은 7개다. Samsung Pay, Fast charge, Battery life, Expandability, Pen out, Detect pen1, Detect pen2다. 이 토픽들은 모두 만족도가 중요도보다 낮다. 전체 토픽의 평균 기회 점수는 1.7098이다. 토픽별 값 전체는 원 논문의 표 6(중요도와 만족도)과 표 7(기회 점수)에 있다. 여기서는 대표 사례 두 가지만 본다.
Samsung Pay는 중요도 10.0000, 만족도 7.8185, 기회 점수 12.1816으로 기회 점수 1위다. 만족도는 평균 4.7854보다 높지만 중요도 10.0000보다는 낮다. 만족도가 중요도보다 낮아 미충족 영역으로 분류된다. 연구진은 SGN5에서 처음 나온 기능이라 언급과 기대가 많았다고 해석했다.
Detect pen2는 중요도 4.3805로 Pen out의 4.6130보다 낮다. 그러나 만족도가 0.1384로 Pen out의 0.6877보다 낮다. 그래서 Detect pen2의 기회 점수 8.6225가 Pen out의 8.5384를 앞섰다. 논문은 S펜이 다른 스마트폰에는 없는 갤럭시 노트 시리즈의 핵심 기능이라고 설명한다.
Fast charge와 Battery life는 결국 사용 시간과 관련된다. Expandability의 주요 키워드인 교체형 배터리도 사용 시간과 이어진다. 고전압 충전, 무선 충전, 새 소재 같은 해결책이 나왔는데도 고객의 요구는 남아 있었다.
감성 키워드에서 읽은 개선 방향
연구진은 기회 점수가 높은 6개 토픽에서 주요 긍정·부정 키워드를 읽어 개선 방향을 정리했다.
- Samsung Pay: 부정 키워드는 근거리 무선 통신(Near Field Communication, NFC)과 ‘Apple pay’, ‘Android pay’ 같은 경쟁 서비스에 몰렸다. 긍정 경험과 프로모션 반응은 좋았다. 연구진은 NFC 지원과 인식률 개선이 필요하다고 보았다.
- 고속 무선 충전: 충전 전력을 5.0V 2.0A(10Wh)에서 9.0V 1.67A(15Wh)로 1.5배 높인 기능이다. 고객은 충전 속도에는 만족했지만 충전이 끊기는 문제에는 불만이었다. 이후 출시된 충전기(EP-NG930)는 코일을 하나 더 넣어 인식 영역을 넓혔다.
- Detect pen2: 푸시 투 이젝트(push-to-eject) 방식에서 S펜을 거꾸로 꽂으면 기기가 고장 나는 결함이 부정 키워드로 드러났다. ‘S-Pen sensor’, ‘S-Pen Backwards’, ‘spring mechanism’이 그 키워드다. 이 결함은 이후 개정판에서 해결되었다.
- Battery life: ‘Package Disable’, ‘background service’, ‘unnecessary process’처럼 사용 시간을 늘리려는 소프트웨어 요령이 잡혔다. 연구진은 하드웨어와 소프트웨어 모두 개선해야 한다고 보았다.
- Expandability: 마이크로SD 슬롯 제거에 반대하는 고객이 많았다. 그러나 고객은 클라우드 저장소와 ‘battery-pack’, ‘portable power banks’ 같은 대안을 찾았다.
- Software update: ‘optimization’은 긍정 키워드로, 전체 문서에서 9번 나왔다. 반면 ‘factory reset’과 업데이트 뒤 발열·배터리 소모는 불만으로 드러났다.
의의와 한계
무엇이 달라지는가
- 단어 단위가 아니라 토픽 단위로 분석해, 고객이 말하는 잠재 제품 속성을 정의한다.
- 감성 판별에서 멈추지 않고 토픽마다 기회 점수를 계산해 개선 우선순위를 매긴다.
- 감성 가중 토픽-키워드 행렬로 토픽마다 개선 방향의 지침을 준다.
- 텍스트 자료에만 의존하므로 제품 외에 서비스와 제품-서비스 시스템에도 쓸 수 있다.
실무자에게 주는 쓸모
제품 기획자는 미리 정한 문항 없이 고객 글에서 속성 목록과 개선 순서를 함께 얻는다. 기회 점수 상위 토픽의 부정 키워드는 그대로 개선 과제 후보가 된다. Samsung Pay의 NFC, 무선 충전기의 끊김이 그런 예다.
연구진은 이 절차를 소프트웨어 시스템으로 구현할 수 있다고 보았고, 실시간 고객 모니터링 도구로 쓰이기를 기대했다. 리뷰의 작성 시점을 함께 분석하면 고객 요구의 추세도 추적할 수 있다.
연구자에게 주는 쓸모
이 논문은 토픽 모델링, 감성 분석, 기회 알고리즘을 하나의 절차로 엮었다. 논문은 감성 분석에 사전 기반, 텍스트 분류 기반, 딥러닝 기반 등 여러 기법을 쓸 수 있다고 밝혔다. 여기서부터는 필자의 의견이다. 단계마다 다른 기법을 바꿔 넣고 결과를 비교하는 연구 설계도 시도해 볼 만하다.
논문이 밝힌 한계
논문이 스스로 밝힌 한계는 세 가지다.
- 중요도와 만족도를 최댓값과 최솟값으로 정규화한 상대값으로 썼다. 0~10 척도에 맞는 절대값을 정하기 어렵기 때문이고, 표준 기준을 정하는 일은 후속 과제로 남았다.
- 과잉 충족 영역의 요구를 더 살펴야 한다. 이 영역은 파괴적 혁신의 단서가 될 수 있다.
- 제품 하나에만 적용했다. 서비스와 제품-서비스 시스템 같은 다른 분야에 적용하는 연구가 필요하다.
필자가 보는 적용 조건
아래는 논문에 적힌 내용이 아니라 필자가 실무 적용을 염두에 두고 덧붙이는 조건이다.
- 기여 스톡의 차이가 작을 때 정규화가 그 차이를 크게 늘린다. 사례에서 기여 스톡의 최댓값과 최솟값 차이는 202.2198 − 165.9974 = 36.2224인데, 이 범위가 0~10 전체로 펼쳐진다. 따라서 중위권 토픽의 순서는 신중히 읽어야 한다.
- 토픽 수나 키워드 목록이 바뀌면 최댓값과 최솟값이 바뀌어 모든 점수가 함께 바뀐다. 기간별로 비교하려면 같은 키워드 목록과 토픽 수를 유지해야 한다.
- 커뮤니티 이용자는 전체 고객과 다를 수 있다. 소셜미디어 결과는 다른 고객 자료와 함께 읽는 편이 안전하다.
- 토픽 이름은 사람이 붙인다. 두 사람 이상이 따로 이름을 붙여 맞추어 보면 해석의 일관성을 확인할 수 있다.
바로 해 볼 일
- 자사 제품을 다루는 커뮤니티 글을 모으고 키워드를 뽑는다. 이모티콘, 의성어, 무관한 단어를 지운 뒤, 남은 키워드가 하나도 없는 문서를 빼고 문서 수와 키워드 수를 확인한다.
- 토픽 수를 여러 값으로 바꿔 LDA를 돌린다. 토픽 쌍의 평균 코사인 유사도가 가장 낮아지는 수를 택한 뒤, 기여도 상위 키워드와 문서를 읽고 토픽마다 이름을 붙인다.
- 토픽별 중요도와 만족도를 0~10으로 맞춘 표를 만든다. “중요도 + Max(중요도 − 만족도, 0)“으로 기회 점수를 계산하고, 상위 토픽 몇 개의 부정 키워드를 읽어 개선 과제 목록을 만든다.