감성 분석(Sentiment Analysis)

감성 분석은 서면 후기, 소셜 미디어 게시글과 같은 텍스트 데이터에서 감정(보통 긍정적, 부정적 또는 중립적)을 자동으로 해석 및 분류하는 것입니다.

 

감성 분석이란?

감성 분석은 자연어 처리(NLP)의 하위 집합으로, 머신 러닝을 사용하여 텍스트 데이터의 감정적 어조를 분석하고 분류합니다. 기본 모델은 주로 긍정적, 부정적 및 중립적 분류에 초점을 맞추지만, 화자의 기저 감정(즐거움, 분노, 적개심)은 물론 구매 의사를 설명할 수도 있습니다.

맥락은 감성 분석에 복잡성을 더합니다. 예를 들어, “없어요!”이라고 외치는 것은 화자가 제품에 대해 마음에 드는 점을 말하고 있는지 아니면 마음에 안 드는 점을 말하고 있는지에 따라 상당히 다른 의미를 가질 수 있습니다. 머신이 "전 그게 좋아요"라는 표현을 이해하기 위해서는 문맥을 분석하여 "그게"가 무엇을 의미하는지를 이해할 수 있어야 합니다. 반어법과 비꼼도 어려울 수 있습니다. 화자가 뭔가 긍정적으로 말하지만 그 반대를 의미할 수 있기 때문입니다.

감성 분석에는 몇 가지 유형이 있습니다. 속성 기반 감성 분석은 한 단계 더 깊이 들어가 어떤 구체적인 특징 또는 속성이 긍정적, 중립적 또는 부정적 감정을 생성하는지를 밝혀냅니다. 기업은 이런 인사이트를 활용하여 제품의 단점을 파악하거나, 반대로 뜻밖의 열광적 인기를 끄는 주제들의 특징을 알아낼 수 있습니다. 감정 분석(Emotion Analysis)은 변형으로, 어떤 주제에 대해 화자가 갖는 감정의 강도를 알아내려고 시도합니다. 의도 분석은 행동으로 옮길 가능성을 밝혀냅니다.

감성 분석을 사용하는 이유는?

기업은 감성 분석이 제공하는 인사이트를 활용하여 제품을 향상하고, 마케팅 메시지를 파인 튜닝하고, 오해를 바로잡고, 긍정적인 인플루언서를 파악할 수 있습니다.

소셜 미디어는 사람들이 제품과 서비스에 관해 결정을 내리는 방식을 완전히 바꿔놓았습니다. 여행업, 접객업, 가전 산업 등의 시장에서 고객 이용 후기는 이제 전문 리뷰어의 평가만큼 또는 그보다 더 중요한 것으로 간주됩니다. Amazon 평점과 TripAdvisor, Google, Yelp 등에 나온 이용 후기는 말 그대로 제품의 성패를 가를 수 있습니다. 블로그, Twitter, Facebook, Instagram과 같이 덜 구조화된 매체에서도 고객의 칭찬이나 비난의 원인이 되는 제품 특징 및 서비스에 대한 피드백과 더불어 고객 감성에 대한 유용한 인사이트를 얻을 수 있습니다.

고객 또는 잠재 고객들이 만들어내는 이런 대량의 텍스트를 수동으로 분석하는 데는 많은 시간이 소요됩니다. 소셜 미디어, 이메일, 지원 요청, 채팅, 제품 이용 후기, 추천 등에 대한 감성 분석은 거의 모든 업종에서 사용하는 귀중한 리소스가 되었습니다. 감성 분석은 기업이 인사이트를 획득하고, 고객을 이해하고, 고객 경험을 예측 및 향상하고, 마케팅 캠페인을 맞춤화하고, 의사결정을 지원하는 데 매우 유용합니다.

감성 분석의 사용 사례

감성 분석의 사용 사례 중 몇 가지 예를 들면 다음과 같습니다.

  • 제품 디자이너는 감성 분석을 사용하여 어떤 기능이 고객들의 마음을 끌고 더 많은 투자와 관심을 받아야 하는지를 결정할 수 있습니다. 반대로, 제품이나 기능이 실패할 때도 이를 알아채고 조정하여 재고를 할인가로 내놔야 하는 상황을 방지할 수 있습니다.
  • 마케팅 조직은 메시지를 파인 튜닝하고, 온라인 인플루언서를 찾아내고, 긍정적인 입소문을 만들어내기 위해 감성 분석에 크게 의존합니다.
  • 소매 조직은 감성 정보를 캐내어 어떤 제품들이 잘 팔릴 가능성이 있는지 파악하고 이에 따라 재고와 프로모션을 조정합니다.
  • 투자자는 온라인 대화에서 부상 중인 새로운 트렌드를 식별할 수 있습니다. 이 정보는 시장 기회를 예고하는 전조입니다.
  • 정치인은 중요한 사안에 대한 유권자 의견을 샘플링하는 데 이를 사용합니다.

감성 분석의 작동 원리는?

머신 러닝 특징 공학

특징 공학은 원시 데이터를 머신 러닝 알고리즘을 위한 입력으로 변환하는 프로세스입니다. 특징을 머신 러닝 알고리즘에 사용하기 위해서는 특징 벡터로 변환해야 합니다. 특징 벡터는 각 특징에 대한 값을 나타내는 숫자 벡터입니다. 감성 분석에서는 텍스트 데이터를 단어 벡터로 변환해야 하는데, 단어 벡터는 각 단어에 대한 값을 나타내는 숫자 벡터입니다. 입력 텍스트는 BoW(Bag of Words), bag-of-ngrams, TF-IDF(Term Frequency/Inverse Document Frequency) 등과 같은 계수 기법을 사용하여 단어 벡터로 인코딩될 수 있습니다.

지도 머신 러닝을 사용한 감성 분류

입력 텍스트가 단어 벡터로 변환되면, 분류 머신 러닝 알고리즘을 사용하여 감성을 분류할 수 있습니다. 분류는 지도 머신 러닝 알고리즘의 집합으로, 레이블이 지정된 데이터(예: 긍정적 또는 부정적으로 레이블이 지정된 텍스트)를 기반으로 항목이 어떤 범주에 속하는지(예: 텍스트가 부정적인지 또는 긍정적인지) 파악합니다.

Data labeling.

감성 분석에 사용할 수 있는 분류 머신 러닝 알고리즘에는 다음과 같은 것이 있습니다.

  • 나이브 베이즈(Naïve Bayes)는 입력 데이터의 클래스에 대한 조건부 확률을 알아내는 확률적 알고리즘의 집합입니다.
  • 서포트 벡터 머신은 N차원 공간(N은 특징의 개수)에서 데이터 포인트를 명확히 분류하는 초평면을 찾습니다.
  • 로지스틱 회귀는 로지스틱 함수를 사용하여 특정 클래스에 속할 확률을 모델링합니다.

Probability of a certain class using logistic regression.

딥 러닝을 사용한 감성 분석

딥 러닝(DL)은 머신 러닝(ML)의 하위 집합으로, 다층 인공 신경망을 사용하여 NLP 등의 작업에서 최고 수준의 정확도를 제공합니다. Word2Vec과 같은 DL 단어 임베딩 기법은 단어 연관성, 의미, 의미론, 통사론 등을 학습하여 단어를 의미 있는 방식으로 인코딩합니다. DL 알고리즘은 또한 NLP 모델의 엔드투엔드 훈련을 지원하므로 원시 입력 데이터에서 특징을 추출하는 데 사람이 일일이 개입하지 않아도 됩니다.

Sentiment analysis using deep learning.

딥 러닝 알고리즘에는 다양한 변형이 있습니다. 순환 신경망은 언어 패턴과 시퀀스 데이터를 파싱하는 수학 엔진입니다. Amazon Alexa에 듣고 말할 수 있는 능력을 제공하는 자연어 처리의 두뇌로, 언어 번역, 주가 예측, 알고리즘 트레이딩에 사용됩니다. Bert(Bidirectional Encoder Representations from Transformers)와 같은 트랜스포머 딥 러닝 모델은 순환 신경망의 대안으로, 어텐션 기법을 적용합니다. 즉, 앞뒤의 가장 관련성 높은 단어에 주의를 집중하여 문장을 파싱합니다. Bert는 의도 인식, 감성 분석 등을 위한 벤치마크에서 인간 기준선에 필적하는 정확도를 제공함으로써 NLP를 혁신적으로 발전시켰습니다. 양방향성이 강하며, 다른 텍스트 인코딩 메커니즘보다 문맥을 더 잘 이해하고 유지할 수 있습니다. 언어 모델을 훈련시키는 데 있어 중요한 문제는 레이블이 지정된 데이터가 부족하다는 것입니다. Bert는 비지도 작업으로 훈련되며, 일반적으로 서적 코퍼스, 영문 위키백과 등의 비정형 데이터 세트를 사용합니다.

Pre-training and fine-tuning loss.

GPU: NLP 및 감성 분석 가속화

NLP 성장의 원동력은 자연어 처리와 관련하여 발생한 최근의 지속적인 발전과 혁신이었습니다. 그중에서도 점점 더 방대하고 복잡해지는 언어 모델을 처리하기 위해 GPU를 배포한 것이 가장 유효했습니다.

GPU는 수백 개의 코어로 구성되어 있어 수천 개의 스레드를 병렬로 처리할 수 있습니다. GPU는 CPU만 사용하는 플랫폼에 비해 10배 더 높은 성능을 제공할 수 있기 때문에 ML 및 DL 모델을 훈련시키고 추론을 실행하는 플랫폼으로 선호되고 있습니다.

The difference between a CPU and GPU.

최첨단 딥 러닝 신경망의 경우 역전파를 통해 조정해야 하는 매개변수가 수백만 개에서 10억 개 이상에 이를 수 있습니다. 또한 높은 정확도를 얻기 위해 많은 양의 학습 데이터가 필요합니다. 즉, 수십만에서 수백만 개에 이르는 입력 샘플을 순방향 패스 및 역방향 패스 양쪽으로 실행해야 합니다. 신경망은 수많은 동일 뉴런에서 생성되기 때문에 본질적으로 병렬성이 매우 높습니다. 이러한 병렬성은 당연히 GPU 에 안성맞춤입니다. GPU는 CPU만 사용하는 훈련에 비해 월등히 높은 연산 속도를 제공합니다. 이러한 이유로 GPU는 복잡한 대규모 신경망 기반의 시스템을 훈련시키기 위한 플랫폼으로 선택되어 왔으며, 병렬성이 특징인 추론 작업 또한 GPU에서 실행하기에 매우 적합합니다. 뿐만 아니라 Bert와 같은 트랜스포머 기반의 딥 러닝 모델은 순차 데이터를 순서대로 처리할 필요가 없으므로 RNN보다 훨씬 더 고도화된 병렬화를 허용하고 GPU에서 훈련 시간을 크게 단축합니다. 

NVIDIA GPU 가속 AI 라이브러리

NVIDIA GPU와 CUDA-X AI™ 라이브러리를 사용하면 최첨단 거대 언어 모델을 빠르게 훈련시키고 최적화하여 단 몇 밀리초(1,000분의 1초) 만에 추론을 실행할 수 있습니다. 이는 빠른 AI 모델과 크고 복잡한 AI 모델 간의 상충 관계를 종결할 수 있는 중요한 진전입니다. NVIDIA GPU의 병렬 처리 기능과 텐서 코어 아키텍처는 복잡한 언어 모델로 작업할 때 더 높은 처리량과 확장성을 제공하므로 Bert의 훈련 및 추론에서 모두 기록적인 성능을 구현할 수 있습니다.

NVIDIA GPU 가속 엔드투엔드 데이터 사이언스

CUDA-X AI를 기반으로 구축된 소프트웨어 라이브러리인 NVIDIA RAPIDS™ 제품군은 엔드투엔드 데이터 사이언스 및 분석 파이프라인을 전적으로 GPU에서 실행할 수 있게 해줍니다. 이 제품군은 저수준 컴퓨팅 최적화를 위해 NVIDIA® CUDA® 프리미티브에 의존하지만, 사용자 친화적인 파이썬 인터페이스를 통해 GPU의 병렬성 및 고대역폭 메모리 속도를 활용할 수 있도록 지원합니다.

End-to-end data science and analytics pipelines entirely on GPUs

NVIDIA GPU 가속 딥 러닝 프레임워크

GPU 가속 DL 프레임워크를 사용하면 유연하게 맞춤형 심층 신경망을 설계하고 훈련시킬 수 있으며 파이썬, C/C++과 같이 일반적으로 사용되는 프로그래밍 언어에 대한 인터페이스를 제공할 수 있습니다. MXNet, 파이토치, 텐서플로 등과 같이 널리 사용되는 딥 러닝 프레임워크는 고성능 멀티 GPU 가속 훈련을 제공하기 위해 NVIDIA GPU 가속 라이브러리를 사용합니다.

Popular data science frameworks.

더 알아보기:

  • NVIDIA는 딥 러닝 워크플로의 학습 및 추론 단계를 가속화하는 최적화된 소프트웨어 스택을 제공합니다. NVIDIA 딥 러닝 홈 페이지에서 자세히 알아보세요.
  • 개발자, 연구자와 데이터 사이언티스트는 NVIDIA GPU를 위한 성능 조정 및 테스트를 거친 딥 러닝 예제가 포함된 NVIDIA 최적화 딥 러닝 프레임워크 컨테이너에 쉽게 액세스할 수 있습니다. 따라서 패키지와 종속 항목을 관리하거나 소스에서 딥 러닝 프레임워크를 구축할 필요가 없습니다. NVIDIA NGC에서 더 자세히 확인하고 바로 시작해 보세요.
  • NVIDIA Volta™ 및 Turing™ GPU를 기반으로 하는 Tensor 코어는 특별히 딥 러닝을 위해 설계되어 훈련 및 추론 성능이 월등히 더 뛰어납니다. 참조 구현에 액세스하는 방법을 더 자세히 알아보세요.
  • NVIDIA Deep Learning Institute(DLI)에서는 AI 및 가속 컴퓨팅 분야의 개발자, 데이터 사이언티스트, 연구자를 위한 실습 교육을 제공합니다.
  • 개발자 뉴스와 리소스는 NVIDIA 개발자 사이트를 확인하세요.

더 알아보기: