감성 분석은 서면 후기, 소셜 미디어 게시글과 같은 텍스트 데이터에서 감정(보통 긍정적, 부정적 또는 중립적)을 자동으로 해석 및 분류하는 것입니다.
감성 분석은 서면 후기, 소셜 미디어 게시글과 같은 텍스트 데이터에서 감정(보통 긍정적, 부정적 또는 중립적)을 자동으로 해석 및 분류하는 것입니다.
감성 분석은 자연어 처리(NLP)의 하위 집합으로, 머신 러닝을 사용하여 텍스트 데이터의 감정적 어조를 분석하고 분류합니다. 기본 모델은 주로 긍정적, 부정적 및 중립적 분류에 초점을 맞추지만, 화자의 기저 감정(즐거움, 분노, 적개심)은 물론 구매 의사를 설명할 수도 있습니다.
맥락은 감성 분석에 복잡성을 더합니다. 예를 들어, “없어요!”이라고 외치는 것은 화자가 제품에 대해 마음에 드는 점을 말하고 있는지 아니면 마음에 안 드는 점을 말하고 있는지에 따라 상당히 다른 의미를 가질 수 있습니다. 머신이 "전 그게 좋아요"라는 표현을 이해하기 위해서는 문맥을 분석하여 "그게"가 무엇을 의미하는지를 이해할 수 있어야 합니다. 반어법과 비꼼도 어려울 수 있습니다. 화자가 뭔가 긍정적으로 말하지만 그 반대를 의미할 수 있기 때문입니다.
감성 분석에는 몇 가지 유형이 있습니다. 속성 기반 감성 분석은 한 단계 더 깊이 들어가 어떤 구체적인 특징 또는 속성이 긍정적, 중립적 또는 부정적 감정을 생성하는지를 밝혀냅니다. 기업은 이런 인사이트를 활용하여 제품의 단점을 파악하거나, 반대로 뜻밖의 열광적 인기를 끄는 주제들의 특징을 알아낼 수 있습니다. 감정 분석(Emotion Analysis)은 변형으로, 어떤 주제에 대해 화자가 갖는 감정의 강도를 알아내려고 시도합니다. 의도 분석은 행동으로 옮길 가능성을 밝혀냅니다.
기업은 감성 분석이 제공하는 인사이트를 활용하여 제품을 향상하고, 마케팅 메시지를 파인 튜닝하고, 오해를 바로잡고, 긍정적인 인플루언서를 파악할 수 있습니다.
소셜 미디어는 사람들이 제품과 서비스에 관해 결정을 내리는 방식을 완전히 바꿔놓았습니다. 여행업, 접객업, 가전 산업 등의 시장에서 고객 이용 후기는 이제 전문 리뷰어의 평가만큼 또는 그보다 더 중요한 것으로 간주됩니다. Amazon 평점과 TripAdvisor, Google, Yelp 등에 나온 이용 후기는 말 그대로 제품의 성패를 가를 수 있습니다. 블로그, Twitter, Facebook, Instagram과 같이 덜 구조화된 매체에서도 고객의 칭찬이나 비난의 원인이 되는 제품 특징 및 서비스에 대한 피드백과 더불어 고객 감성에 대한 유용한 인사이트를 얻을 수 있습니다.
고객 또는 잠재 고객들이 만들어내는 이런 대량의 텍스트를 수동으로 분석하는 데는 많은 시간이 소요됩니다. 소셜 미디어, 이메일, 지원 요청, 채팅, 제품 이용 후기, 추천 등에 대한 감성 분석은 거의 모든 업종에서 사용하는 귀중한 리소스가 되었습니다. 감성 분석은 기업이 인사이트를 획득하고, 고객을 이해하고, 고객 경험을 예측 및 향상하고, 마케팅 캠페인을 맞춤화하고, 의사결정을 지원하는 데 매우 유용합니다.
감성 분석의 사용 사례 중 몇 가지 예를 들면 다음과 같습니다.
특징 공학은 원시 데이터를 머신 러닝 알고리즘을 위한 입력으로 변환하는 프로세스입니다. 특징을 머신 러닝 알고리즘에 사용하기 위해서는 특징 벡터로 변환해야 합니다. 특징 벡터는 각 특징에 대한 값을 나타내는 숫자 벡터입니다. 감성 분석에서는 텍스트 데이터를 단어 벡터로 변환해야 하는데, 단어 벡터는 각 단어에 대한 값을 나타내는 숫자 벡터입니다. 입력 텍스트는 BoW(Bag of Words), bag-of-ngrams, TF-IDF(Term Frequency/Inverse Document Frequency) 등과 같은 계수 기법을 사용하여 단어 벡터로 인코딩될 수 있습니다.
입력 텍스트가 단어 벡터로 변환되면, 분류 머신 러닝 알고리즘을 사용하여 감성을 분류할 수 있습니다. 분류는 지도 머신 러닝 알고리즘의 집합으로, 레이블이 지정된 데이터(예: 긍정적 또는 부정적으로 레이블이 지정된 텍스트)를 기반으로 항목이 어떤 범주에 속하는지(예: 텍스트가 부정적인지 또는 긍정적인지) 파악합니다.
감성 분석에 사용할 수 있는 분류 머신 러닝 알고리즘에는 다음과 같은 것이 있습니다.
딥 러닝(DL)은 머신 러닝(ML)의 하위 집합으로, 다층 인공 신경망을 사용하여 NLP 등의 작업에서 최고 수준의 정확도를 제공합니다. Word2Vec과 같은 DL 단어 임베딩 기법은 단어 연관성, 의미, 의미론, 통사론 등을 학습하여 단어를 의미 있는 방식으로 인코딩합니다. DL 알고리즘은 또한 NLP 모델의 엔드투엔드 훈련을 지원하므로 원시 입력 데이터에서 특징을 추출하는 데 사람이 일일이 개입하지 않아도 됩니다.
딥 러닝 알고리즘에는 다양한 변형이 있습니다. 순환 신경망은 언어 패턴과 시퀀스 데이터를 파싱하는 수학 엔진입니다. Amazon Alexa에 듣고 말할 수 있는 능력을 제공하는 자연어 처리의 두뇌로, 언어 번역, 주가 예측, 알고리즘 트레이딩에 사용됩니다. Bert(Bidirectional Encoder Representations from Transformers)와 같은 트랜스포머 딥 러닝 모델은 순환 신경망의 대안으로, 어텐션 기법을 적용합니다. 즉, 앞뒤의 가장 관련성 높은 단어에 주의를 집중하여 문장을 파싱합니다. Bert는 의도 인식, 감성 분석 등을 위한 벤치마크에서 인간 기준선에 필적하는 정확도를 제공함으로써 NLP를 혁신적으로 발전시켰습니다. 양방향성이 강하며, 다른 텍스트 인코딩 메커니즘보다 문맥을 더 잘 이해하고 유지할 수 있습니다. 언어 모델을 훈련시키는 데 있어 중요한 문제는 레이블이 지정된 데이터가 부족하다는 것입니다. Bert는 비지도 작업으로 훈련되며, 일반적으로 서적 코퍼스, 영문 위키백과 등의 비정형 데이터 세트를 사용합니다.
NLP 성장의 원동력은 자연어 처리와 관련하여 발생한 최근의 지속적인 발전과 혁신이었습니다. 그중에서도 점점 더 방대하고 복잡해지는 언어 모델을 처리하기 위해 GPU를 배포한 것이 가장 유효했습니다.
GPU는 수백 개의 코어로 구성되어 있어 수천 개의 스레드를 병렬로 처리할 수 있습니다. GPU는 CPU만 사용하는 플랫폼에 비해 10배 더 높은 성능을 제공할 수 있기 때문에 ML 및 DL 모델을 훈련시키고 추론을 실행하는 플랫폼으로 선호되고 있습니다.
최첨단 딥 러닝 신경망의 경우 역전파를 통해 조정해야 하는 매개변수가 수백만 개에서 10억 개 이상에 이를 수 있습니다. 또한 높은 정확도를 얻기 위해 많은 양의 학습 데이터가 필요합니다. 즉, 수십만에서 수백만 개에 이르는 입력 샘플을 순방향 패스 및 역방향 패스 양쪽으로 실행해야 합니다. 신경망은 수많은 동일 뉴런에서 생성되기 때문에 본질적으로 병렬성이 매우 높습니다. 이러한 병렬성은 당연히 GPU 에 안성맞춤입니다. GPU는 CPU만 사용하는 훈련에 비해 월등히 높은 연산 속도를 제공합니다. 이러한 이유로 GPU는 복잡한 대규모 신경망 기반의 시스템을 훈련시키기 위한 플랫폼으로 선택되어 왔으며, 병렬성이 특징인 추론 작업 또한 GPU에서 실행하기에 매우 적합합니다. 뿐만 아니라 Bert와 같은 트랜스포머 기반의 딥 러닝 모델은 순차 데이터를 순서대로 처리할 필요가 없으므로 RNN보다 훨씬 더 고도화된 병렬화를 허용하고 GPU에서 훈련 시간을 크게 단축합니다.
NVIDIA GPU와 CUDA-X AI™ 라이브러리를 사용하면 최첨단 거대 언어 모델을 빠르게 훈련시키고 최적화하여 단 몇 밀리초(1,000분의 1초) 만에 추론을 실행할 수 있습니다. 이는 빠른 AI 모델과 크고 복잡한 AI 모델 간의 상충 관계를 종결할 수 있는 중요한 진전입니다. NVIDIA GPU의 병렬 처리 기능과 텐서 코어 아키텍처는 복잡한 언어 모델로 작업할 때 더 높은 처리량과 확장성을 제공하므로 Bert의 훈련 및 추론에서 모두 기록적인 성능을 구현할 수 있습니다.
CUDA-X AI를 기반으로 구축된 소프트웨어 라이브러리인 NVIDIA RAPIDS™ 제품군은 엔드투엔드 데이터 사이언스 및 분석 파이프라인을 전적으로 GPU에서 실행할 수 있게 해줍니다. 이 제품군은 저수준 컴퓨팅 최적화를 위해 NVIDIA® CUDA® 프리미티브에 의존하지만, 사용자 친화적인 파이썬 인터페이스를 통해 GPU의 병렬성 및 고대역폭 메모리 속도를 활용할 수 있도록 지원합니다.
GPU 가속 DL 프레임워크를 사용하면 유연하게 맞춤형 심층 신경망을 설계하고 훈련시킬 수 있으며 파이썬, C/C++과 같이 일반적으로 사용되는 프로그래밍 언어에 대한 인터페이스를 제공할 수 있습니다. MXNet, 파이토치, 텐서플로 등과 같이 널리 사용되는 딥 러닝 프레임워크는 고성능 멀티 GPU 가속 훈련을 제공하기 위해 NVIDIA GPU 가속 라이브러리를 사용합니다.
더 알아보기: