AI 챗봇 이란? - 정의, 원리, GPT, 구축 과정 [AI 챗봇의 시작부터 성공 노하우까지 완벽 정리]
챗봇 이란?
AI 챗봇의 정의
챗봇(Chatbot)은 인간과 자연스럽게 대화할 수 있는 소프트웨어 애플리케이션을 의미합니다. AI 챗봇은 음성 명령이나 텍스트 채팅 또는 두 가지 모두를 통해 인간의 대화를 시뮬레이션하는 컴퓨터 프로그램입니다. AI 챗봇은 Chatterbot의 줄임말로, ‘Talkbot’ ‘interactive agent’ 또는 ‘Artificial conversation entity’ 등 다양한 동의어를 가지고 있습니다.
AI 챗봇은 사람처럼 고객과 상호 작용하는 자동화된 프로그램이기 때문에, 활동 자체에는 비용이 거의 들지 않는다고 볼 수 있습니다. AI 챗봇은 하루종일 고객을 응대하며 시간이나 물리적 위치에 제한을 받지 않습니다. 24시간 내내 직원이 일할 수 없거나, 그럴 재정 자원이 충분하지 않은 기업에게 매력적인 기술이죠. 직원의 시간을 더 효율적으로 사용할 수 있을 뿐만 아니라, 비용 절감 효과도 누릴 수 있습니다.
AI 챗봇 활용 분야
AI 챗봇은 인공지능을 통해 일상적인 작업을 효율적으로 수행하는 대화형 도구입니다. 특히 B2C (Business to Consumer) 및 B2B(Business to business) 환경에서 간단한 작업을 처리하기 위해 챗봇을 사용합니다.
AI 챗봇은 자연어 처리를 사용하여 사용자의 텍스트나 그래픽, 음성을 통해 웹 서비스나 앱과 상호작용합니다. 또한 예측 인텔리전스 및 분석을 통해 사용자의 선호도를 학습하고, 이 지식을 이용하여 고객에게 권장사항을 제공하거나 고객의 요구사항을 예측할 수도 있죠.
GPT (Generative Pre-trained Transformers)와 같은 AI 챗봇은 자연스러운 인간 언어를 이해하고 인간과의 대화를 에뮬레이션 하며, 사용자가 요구한 작업을 실행할 수 있습니다. 일반적으로 특정 응답에 대응하도록 사전 프로그래밍된 챗봇과 달리, GPT는 머신러닝과 자연어 처리 알고리즘을 사용하여 대화의 맥락과 어조에 따라 응답을 생성하는 특징이 있습니다. ChatGPT, Bard, PaLM과 같은 언어 모델은 사용자의 질문에 대답할 뿐만 아니라 기사, 소셜미디어 게시물, 에세이, 코드 및 이메일 등 다양한 서면 콘텐츠를 작성할 수 있는 것이죠.
NLP vs. NLU
AI 챗봇에 관해 검색이나 자료를 읽다 보면, NLP와 NLU라는 단어가 자주 나오는 것을 확인하실 수 있습니다. NLP는 AI가 자연어를 처리할 수 있도록 만드는 것과 관련된 모든 것을 포함하는 포괄적인 용어입니다. 자연어 이해(NLU, Natural Language Understanding)는 다양한 머신러닝 알고리즘을 사용하여 감정을 식별하고 NER(Named Entity Recognition)을 수행하며 의미론을 처리하는 NLP의 하위 주제입니다.
“Please crack the windows, the car is getting hot.”
여기서 NLP는 문장 그대로의 의미로 텍스트를 처리하는 데에 중점을 둡니다. 반대로 NLU는 문맥과 의도, 즉 의미를 추출하는 데에 중점을 둘 것입니다. 따라서 위 문장을 보았을 때 NLP는 문자 그대로 창을 깨부수려고 할 것입니다. 하지만 NLU는 발화자가 창을 내리려고 했다는 것을 추론할 수 있습니다.
NLP는 문법이나 구조, 관점을 중점적으로 텍스트를 처리합니다. 반면 NLU는 언어나 텍스트 이면에 숨겨진 의도를 추론하는 데에 특화되어 있다고 볼 수 있습니다. 과거의 챗봇은 개발자가 설정한 형식에서 벗어나는 순간 대화를 다시 리셋하거나, 질문을 이해할 때까지 다시 질문했었습니다. 하지만 NLP와 NLU를 결합하면서 챗봇은 대화의 맥락을 이해하고, 맥락을 기반으로 의미를 추출할 수 있게 되었죠.
AI와 자체 알고리즘으로 NER 작업 효율화 과정
데이터헌트가 NER에 강점을 가지는 비결
안녕하세요, 오늘은 텍스트 데이터 라벨링 작업에서 자주 언급되는 NER (Named Entity Recognition, 개체명인식) 모델을 위한 BERT 의 한계를 데이터헌트에서는 어떻게 AI와 자체 알고리즘을 활용해 작업을 어떻게 효율화했는지 소개드리겠습니다.
NER이란 무엇인가
NER (Named Entity Recognition, 개체명인식) 이란 ‘미리 정의해 둔 사람, 회사, 장소, 시간, 단위 등에 해당하는 단어(개체명)를 문서에서 인식하여 추출 분류하는 기법’입니다. 여기서 추출된 개체명이란 인명(person), 지명(location), 기관명(organization), 시간(time) 등으로, 이 개체명을 반드시 따라야 하는 것은 아니고 작업에 따라서 그 분류 체계를 달리할 수도 있습니다. 이렇게 추출된 개체명은 정보 추출을 목적으로 시작되어 자연어 처리, 정보 검색 등에 사용됩니다.
예를 들면
라는 문장에서 데이터헌트는 기관명, 2022년은 시간, 강남역과 선정릉은 지명으로 분류할 수 있습니다. 물론 정확한 의미 전달이 되지는 않지만 추출된 개체명만으로도 대충 어떤 내용의 문장인지 감이 오지 않나요? 이처럼 개체명 분류를 정확히 할 수 있다면 핵심적인 정보 추출에 매우 큰 도움이 됩니다.
NER 모델
NER 데이터셋 가공은 작업된 데이터로 NER 모델을 학습하고, 학습된 모델을 NER 데이터셋 가공에 활용하는 것이 일반적입니다. 하지만 이 방법은 몇가지 문제가 존재하는데요, 여기서는 대표적인 NER 모델을 살펴보고 어떤 문제가 있는지, 그래서 데이터헌트에서는 어떤 방법으로 NER 데이터셋 가공 작업을 효율화했는지 살펴보겠습니다.
기존 모델 및 문제
NER (Named Entity Recognition, 개체명인식) 모델 중 가장 유명한 것은 BERT(Bidirectional Encoder Representations from Transformers)를 활용한 모델입니다.
NER에 가장 대중적인 BERT 모델
요즘은 GPT로 세상이 떠들썩하지만 BERT 또한 자연어에서 빼놓을 수 없는 모델로써 아래의 특징들을 갖고 있습니다.
Transformer Architecture: Self-attention 기반의 구조가 많은 단어 사이의 관계를 폭넓게 이해하도록 학습합니다
Bidirectional Training: BERT는 양방향으로 입력 문장을 학습합니다. 이를 통해 문장 내의 단어들이 앞뒤 문맥을 모두 고려하여 의미를 파악합니다
Pre-training / Fine-tuning: BERT는 대규모의 언어 코퍼스를 통해 사전 학습을 수행합니다. 사전 학습 과정에서는 두 가지 작업을 수행이를 통해 BERT는 일반적인 언어 이해를 습득하게 됩니다.
마스킹된 언어 모델링(Masked Language Modeling)
다음 문장 예측(Next Sentence Prediction)
Transfer Learning: BERT의 가장 큰 장점 중 하나는 Transfer Learning이 가능하다는 것으로, 사전 학습된 BERT 모델을 사용하면 적은 데이터와 컴퓨팅 자원으로도 좋은 성능을 달성
이러한 BERT 모델에 각 토큰에 대한 개체명 분류를 위한 레이어를 붙여 NER 모델을 완성합니다.
하지만 BERT 또한 완벽한 모델은 아닙니다. 그 이유는 텍스트 전처리 Tokenizer를 포함하여 다양한데요,
Tokenizer가 텍스트를 품사 단위로 쪼개지만 완벽하지 않고
텍스트를 잘 쪼개고도 모델의 개체명 분류 정확도가 완벽할 수는 없으며
같은 단어라도 문맥에 따라 다른 개체명이 될 수 있습니다
많은 데이터로 BERT 모델을 학습한다면 위의 문제를 조금씩 개선할 수는 있겠지만 아무래도 매번 학습이 필요하고 모든 결과를 BERT 모델에 의존해야 하는 문제가 있습니다. 따라서 작업이 진행됨에 따라 지속적으로 모델을 재학습하는 방법 외에도 많은 고민을 하게 되었습니다.
DB 기반 신뢰도 평가 알고리즘
그래서 데이터헌트에서는 작업된 개체명 DB를 쌓아 얻게 되는 통계를 기반으로 새로운 Pre-labeling 알고리즘을 만들었습니다. 이 과정은 매우 직관적으로 Interactive하며, 별도의 학습 과정이 없이 빠르게 적용될 수 있는 것이 장점입니다. BERT 기반의 NER 모델 활용을 포함한 전체적인 프로세스는 아래와 같습니다.
BERT 기반 NER 모델을 통해 작업자에게 Pre-label을 전달
작업자는 해당 Pre-label을 받아 작업을 수행. 이 과정에서 NER 태그의 생성/수정/삭제 등이 일어남
작업된 개체명을 DB에 쌓아가며(단어 사전 생성) 설계한 알고리즘을 바탕으로 각 개체명의 신뢰도 결정
신뢰도가 정해진 기준을 넘긴 개체명에 대해 차후 작업에 Pre-labeling
NER 작업 개선 Overview
독자적으로 개발한 신뢰도 평가 알고리즘은 다음과 같은 장점을 갖습니다.
모델 학습 과정 없이 실시간 동작
로직에 직접적으로 개입할 수가 있으며, 오동작의 원인을 분석할 수 있음
텍스트를 쪼개는 Tokenizer의 영향을 받지 않음
이러한 과정을 통해 가능한 더 많은 Pre-label을 작업자에게 전달했습니다. 물론 신뢰도 평가 알고리즘에 따라 Pre-label의 수량 – 정확도의 trade-off가 존재하기 때문에 프로젝트에 따라 유동적으로 변경할 수 있도록 했습니다.
평가 알고리즘을 통한 개선 결과
개발된 신뢰도 평가 알고리즘을 통해 개선된 결과 예시는 아래와 같습니다.
신뢰도 평가 알고리즘을 통한 Pre-labeling 결과 개선 – 전(좌), 후(우)
NER 모델만으로는 검출할 수 없던 개체명을 잘 보완한 사례로써, 기존 작업되었던 텍스트 중에 해당 개체(단어)가 포함되어 있었기 때문에 작업 효율을 개선할 수 있었습니다. 마치 딥러닝 모델과 같이 많은 데이터가 쌓이면 쌓일수록 더욱 정확한 결과를 내어줄 수 있는 간단하면서도 실효성 있는 방법인 것 같습니다. 하지만 같은 단어는 무조건 하나의 개체명으로 태깅한다는 문제는 개선이 필요하며, 모델 학습과 마찬가지로 유효한 신뢰도 평가를 하기 위해서 데이터가 일정 수준 이상 쌓여야 하는 점을 고려해야 했습니다.
자체 알고리즘 실제 도입 사례
2022년 데이터헌트에서는 Boston Consulting Group(BCG)과 함께 NER 모델 개발을 위한 데이터셋 구축 프로젝트를 수행했습니다. 개체명 태깅 수가 수십만개에 달하며 문맥에 따라 다른 개체명으로 분류되어야 하는 단어가 다수 존재하는 어려운 프로젝트였습니다. 데이터의 수가 상당한 만큼 과제 수행 기간도 짧지 않았기 때문에 NER 모델 학습이나 신뢰도 알고리즘이 고도화되기에 충분한 시간이 있었습니다. 덕분에 Pre-labeling이 점진적으로 고도화될 수 있었고, 이는 작업자의 작업 효율 향상에 큰 도움이 되었습니다.
이와 같이 데이터헌트에서는 Human-in-the-loop AI를 통해 NER을 포함한 다양한 분야에서 데이터 라벨링, 수집, 가공을 효율화하고 정확도 높은 데이터셋을 구축하고 있습니다.
유튜브 알고리즘이 나의 취향을 맞추는 방법
수상할 정도로 나를 잘 아는 알고리즘
유튜브 알고리즘은 사용자의 취향과 기호를 분석해 끊임없이 새로운 영상을 추천합니다. 사용자가 플랫폼에 더 오래 머무르게 하기 위함이죠. 2016년부터 사용하기 시작한 이 알고리즘은 유튜브의 성장과 인기에 지대한 영향을 미쳤습니다.
유튜브 알고리즘이 사용자들의 마음을 사로잡을 수 있었던 근거는 무엇일까요? 간단히 말하자면, 유튜브를 구동하는 시스템의 아키텍처에 있습니다. 머신러닝은 알고리즘의 효율성을 크게 향상시켰고, 시청자가 유튜브의 추천 동영상을 따를 확률을 크게 향상했습니다. 한 설문조사 기관에 따르면, 유튜브 사용자의 80% 이상이 유튜브에서 추천하는 동영상을 시청한다고 하죠.
유튜브의 알고리즘 작동 원리를 알면, 다른 추천 모델을 성공적으로 사용하는 방법에 대해서도 인사이트를 얻을 수 있습니다.
유튜브 알고리즘 실패와 최적화의 역사
유튜브는 2005년에 창립한 이후, 수십억 명의 사용자가 매월 수십억 시간의 동영상을 시청하는 플랫폼으로 성장했습니다. 유튜브에서 사용하는 알고리즘과 데이터는 수년에 걸쳐 업데이트를 거듭했습니다.
2005년부터 2011년까지, 클릭 유도에 집중
당시 유튜브는 조회수를 기준으로 사용자에게 추천할 동영상을 리스트업했습니다. 즉, 많은 사람들이 본 영상을 더 자주 추천하는 시스템이었죠.
하지만 매력적인 비디오가 반드시 플랫폼 체류 시간을 늘려주는 것은 아니었습니다. 오히려 클릭을 유도하는 ‘베이트성 비디오’가 속출하면서 사용자들의 불만을 야기했죠. 이런 영상들은 높은 조회수를 기록하지만, 사용자 참여도가 낮았습니다.
유튜브가 사용자에게 비디오를 추천하는 알고리즘
2012년부터 2016년까지, 참여에 집중
유튜브는 사용자들이 플랫폼에 머무르는 시간을 더 늘리고 싶었습니다. 그래서 사용자들이 더 오래 시청한 동영상을 추천하기 시작했습니다.
더 오래 볼 가능성이 높은 동영상을 추천하면, 플랫폼 체류 시간은 자연스럽게 개선됩니다. 이는 사용자가 유튜브 안에서 회전하는 광고를 볼 가능성도 더 높아집니다. 시청자가 오래 볼 동영상에 메리트가 생기는 만큼, 악성 베이트 비디오 문제는 차츰 나아지고 있었습니다.
이후 2015년부터 약 2년간 만족을 위한 최적화 작업에 나섰습니다. 적극적인 사용자 설문조사를 통해 시청 만족도를 직접 조사하기 시작했죠. 직접 응답 측정 항목에는 여러 가지가 있었지만, 그중에서도 내부적인 우선순위를 책정하여 점수를 매겼습니다.
2015년은 우리가 잘 아는 ‘알고리즘의 선택’의 전신을 다듬는 해였습니다. 사용자 설문조사를 통해 특정 시청자가 보고 싶어하는 동영상을 찾는 시도를 거듭했죠. 이를 통해 알고리즘의 개인화에 성공했으며, 사용자들은 유튜브에 머무르는 시간의 70%를 추천 동영상 시청에 쓰기 시작했습니다.
2016년부터 현재까지, 안전에 집중
유튜브의 조상 격을 찾아 올라가면, 국내에는 ‘판도라TV’라는 커뮤니티가 있었습니다. 2004년 국내 최초의 동영상 사이트로 출범하여 2007년에는 ‘글로벌 100대 기업’에 선정되는 영광을 안기도 했죠. 그러나 당시 저작권 개념이 희박했던 시대를 잘 만났던 것이라는 평가도 있습니다. 결국 2022년에는 저작권 침해 및 위험한 영상으로부터 사용자를 보호하기 위해 일반 이용자의 업로드를 제한하기도 했습니다.
유튜브가 여전히 누구나 동영상을 올릴 수 있는 오픈 커뮤니티라는 점과 비교하면 아쉬운 결정입니다. 물론, 판도라 TV와 다르게 유튜브는 유해한 정보의 확산을 막고 다양한 의견을 지지하기 위해 부단한 노력을 해왔습니다. 크리에이터들에게 가이드라인을 배포하고, 유해하거나 오해의 소지가 있는 콘텐츠를 소비하지 못하도록 적극적으로 대응하고 있습니다.
유튜브는 사용자의 시청 이력과 선호도, 동영상의 성공 여부, 전체 고객 또는 시장의 선호도를 파악하여 추천 동영상을 큐레이팅합니다.
유튜브 알고리즘 원리
유튜브 알고리즘은 몇 가지 근거에 기반하여 사용자의 취향을 탐색하고, 그에 따른 추천 동영상을 유튜브 홈에서 보여줍니다.
가장 먼저 시청자의 시청 이력과 선호도를 기반으로 개인화 데이터를 수집합니다. 예를 들어 함께 자주 보는 동영상이나 주제 관련 동영상, 사용자가 과거에 본 동영상 등을 추천 동영상으로 큐레이팅합니다. 나와 비슷한 시청자들이 관심 있을 법한 소재의 동영상을 찾아내는데, 이것이 소위 말하는 ‘알고리즘의 선택’이죠.
다음은 동영상의 성공 여부에 따른 추천입니다. 사용자들의 시청 시간이 오래 되었거나, 꾸준히 좋은 조회수 지표를 기록한 동영상을 추천합니다. 개인의 취향과 더불어 사용자들이 전반적으로 만족했던 동영상이 함께 제공된다면, 알고리즘에 대한 신뢰나 만족도가 훨씬 더 높아지게 되죠.
그 외에도 전체 고객 또는 시장의 선호도에 따른 추천 양상도 있습니다. 외부 요인에 의한 것이라고 할 수 있겠죠. 많은 사람들이 관심 있을 법한 세계적인 뉴스들이 여기에 포함되기도 합니다.
유튜브 알고리즘 구조
위에서 유튜브 알고리즘의 추천 동영상의 까다로운 조건에 대해서 알아보았습니다. 그렇다면 알고리즘은 어떤 과정을 거쳐 우리의 유튜브 홈을 채우는 걸까요? 그 심사숙고의 과정에 대해 분석해 보겠습니다.
첫 번째 단계는 플랫폼에서 사용자의 활동에 대한 데이터를 수집하는 것입니다. 여기에는 시청하는 동영상, 시청 시간, 동영상과 상호 작용하는 방식이 포함됩니다. 예를 들면 좋아요나 댓글, 공유나 구독 등의 행위가 있습니다. 다음 단계는 사용자의 활동 데이터에서 관련 특징을 추출하는 것입니다. 제목, 설명, 태그와 같은 비디오에 대한 메타 데이터와 위치 및 장치 유형과 같은 사용자에 대한 정보가 포함됩니다.
추출된 특징은 임베딩이라는 프로세스를 사용하여 벡터 표현으로 변환됩니다. 의미론적 의미를 보존하는 방식으로 각 기능을 고차원 벡터에 매핑하는 작업이 포함되죠.
벡터 표현은 신경망에 입력되어 사용자가 주어진 비디오에 참여할 확률(예: 시청, 좋아요 등)을 예측하는 방법을 학습합니다. 신경망은 네트워크의 가중치를 조정하여 예측 오류를 최소화하는 역전 파란 기술을 사용하여 사용자 활동 데이터의 대규모 데이터 세트에서 훈련됩니다.
훈련이 끝난 신경망은 각 비디오와 사용자 선호도, 평균 조회율 간의 유사성 점수를 매기는 데에 사용할 수 있습니다. 요컨대, 동영상의 임베딩이 사용자의 임베딩과 얼마나 밀접하게 일치하는지 검토하는 것이죠. 뿐만 아니라 동영상의 인기도 및 최신성과 같은 기타 요인을 기반으로 하기도 합니다. 아무리 사용자 선호도가 맞다고 해도 십여 년 전의 영상을 추천 동영상으로 올리기에는 부적합할 수도 있기 때문이죠.
마지막으로 알고리즘은 유사도 점수가 가장 높은 동영상에 순위를 매겨 사용자에게 추천하면서 모든 과정을 갈무리합니다. 순위는 사용자의 시청 기록이나 추천 동영상의 다양성, 사용자의 관심사 등 동영상의 전반적인 관련성과 같은 추가 요소를 고려해 지정되기도 합니다. 유튜브 피드에서 같은 동영상이 몇 번이나 뜨는 현상을 보신 적 있다면, 아마 그 영상은 알고리즘이 보증하는 ‘당신의 취향’ 일 가능성이 높습니다.
유튜브 알고리즘 로직
유튜브 알고리즘 머신러닝을 위한 임베딩
알고리즘의 로직 중에서 눈여겨봐야 할 것은 두 가지가 있습니다. 그중 첫 번째는 임베딩입니다. 임베딩은 의미론적 의미를 보존하는 방식으로, 데이터를 표현하기 위해 머신러닝에 사용하는 기술입니다. 유튜브 알고리즘의 맥락에서 임베딩은 비디오에 대한 메타데이터와 사용자에 대한 정보를 신경망에서 처리할 수 있도록 고차원의 벡터로 변환하는 데에 사용하고 있습니다.
임베딩의 목표는 입력 데이터의 각 기능을 연속 벡터 공간에 매핑하여, 의미론적으로 유사한 기능이 공간의 가까운 지점에 매핑되도록 하는 것입니다. 예를 들어 비슷한 콘텐츠의 동영상이나 선호도가 비슷한 사용자끼리는 유사한 임베딩을 가질 확률이 높습니다.
임베딩을 생성하는 방법에는 여러 가지가 있습니다. 가장 일반적인 접근 방식은 신경망을 사용하는 것입니다. 이때 신경망은 비디오 메타데이터 및 사용자 활동 데이터의 대규모 데이터 세트를 통해 훈련됩니다. 학습하는 동안 네트워크는 입력 기능을 저 차원 임베딩 공간에 매핑하여, 데이터의 일부 측면을 예측하는 방식으로 학습합니다.
임베딩 벡터는 일반적으로 크기가 고정되어 있고, 많은 차원 수를 가지고 있습니다. 신경망 훈련이 끝나면 임베딩 벡터를 유튜브 알고리즘의 추천 엔진과 같은 다른 머신러닝 알고리즘에 대한 입력으로도 사용할 수 있죠.
그 외에도 유튜브 알고리즘에서 임베딩을 사용하면 두 가지 이점이 있습니다. 먼저 임베딩은 복잡한 데이터를 머신러닝 알고리즘을 통해 간결하게 구조화된 형식으로 나타낼 수 있습니다. 또한 임베딩을 통해 알고리즘은 서로 다른 비디오나 사용자 간의 유사성과 같은 복잡한 관계를 캡처할 수 있습니다. 기존의 기능 엔지니어링 방법으로는 데이터의 서로 다른 기능 간의 구조 분석이 까다로웠으나, 임베딩으로는 보다 쉽게 처리할 수 있게 된 것이죠.
신경망의 가중치는 사용자 활동 데이터 배치에서 여러 번 업데이트하는 것을 원칙으로 합니다.
유튜브 알고리즘의 딥러닝 신경망
유튜브 추천 알고리즘에서 신경망은 ‘역전파’라는 기술을 사용하여 훈련하고 있습니다. 역전 파는 신경망의 가중치에 대한 손실 함수의 기울기를 계산하는 프로세스입니다. 그래디언트는 네트워크의 가중치를 업데이트하는 데에 사용하기 때문에, 네트워크는 각 비디오에 대한 사용자 참여 가능성을 훨씬 더 정확하게 예측할 수 있습니다.
유튜브 알고리즘에 사용하는 신경망 아키텍처는 일반적으로 심층 피드포워드 신경망입니다. 네트워크는 임베딩 벡터를 입력으로 사용하고, 후보 비디오 집합에 대한 확률 분포를 출력으로 생성합니다. 또한 신경망 훈련에 사용하는 손실 함수는 교차 엔트로피 손실입니다. 예측된 확률 분포와 각 비디오에 대한 실제 사용자 참여 분포 간의 차이를 최소화하기 위함이죠. 또한 확률적 경사 하강법(SGD) 또는 그와 유사한 최적화 알고리즘을 사용합니다.
최종적으로 레이어 수나 레이어당 뉴런 수, 학습 속도 및 정규화 강도와 같은 신경망의 하이퍼파라미터는 별도의 사용자 활동 데이터 검증 세트를 사용해 튜닝합니다. 또한 과적합을 방지하기 위해 학습 중에 드롭아웃 또는 L2 정규화와 같은 정규화 기술을 네트워크에 적용할 수도 있죠.
신경망의 가중치는 사용자 활동 데이터 배치에서 여러 번 업데이트하는 것을 원칙으로 합니다. 훈련된 신경망을 사용하여 활동 기록 및 선호도를 기반으로 사용자에게 개인화된 동영상을 추천할 수 있게 되죠. 추천 알고리즘의 핵심은 신경망의 학습에 달려있습니다.
비즈니스 모델로서의 유튜브 알고리즘 : 당신의 취향은 돈이 된다
처음 유튜브가 ‘추천 동영상’ 피드를 운영한 것은 플랫폼에 머무르는 시간을 늘리기 위함이었습니다. 덜 클릭하고 더 많이 보게 하기 위함이었죠.
이후 유튜브는 클릭베이트 문제를 해결하면서 알고리즘을 비즈니스 모델로 사용하기 위해 여러 방법을 고안했습니다. 유튜브에서 수익을 창출하는 주요 방법 중 하나는 역시 광고입니다. 하지만 유튜브는 알고리즘을 이용하여 Target 맞춤 광고를 할 수 있게 되었습니다. 사용자의 관심사와 선호도에 따라 사용자와 관련된 광고를 제공하는 것이죠.
하지만 이와 반대로 Youtube Premium이라는 프리미엄 구독 서비스도 제공하고 있습니다. 이 서비스를 통해 독점 콘텐츠와 기능은 물론, 동영상에 광고 없이 접근할 수 있죠. 물론 여기에도 추천 알고리즘의 눈부신 활약이 있습니다. 프리미엄 가입자가 유료 구독을 지속할 수 있도록, 콘텐츠 추천을 개인화하는 데에 사용되고 있죠.
유튜브를 포함해 많은 기업들이 추천 알고리즘을 사용해 사용자 최적화에 나서고 있습니다. 서비스업은 물론 금융업, 소매업 등에서 추천 모델을 통해 ‘개인의 취향’을 파악하기 위해 안달이 나있죠. 잘 만들어진 추천 알고리즘은 소비자의 환심을 살 수 있습니다. 하지만 거기에는 모델을 다루는 전문성과 서비스에 대한 높은 이해를 기반으로 해야 하죠. 당신의 비즈니스에 유튜브와 같은 눈치 빠른 인공지능 모델이 필요하신가요? 수준 높은 AI 기업과 함께해야 할 때입니다.
YOLO를 통한 Object Detection과 속성부여
효율성을 개선한 알고리즘 이야기
Object Detection 이란?
Detection과 Classification의 차이
객체검출은 이미지 내 객체의 위치를 특정(Localization)하고 그 속성(Classification)을 부여하는 작업을 말합니다. 데이터헌트에서 진행되는 다양한 프로젝트는 객체의 일반적인 속성을 분류하는 것뿐만 아니라 이미지 내의 위치까지 제공할 필요가 있고, 상황에 따라서 그 속성이 ‘동물의 종류’와 같은 한 개의 속성이 아니라, ‘동물의 종류’, ‘색상’, ‘자세’ 등 다양한 속성을 부여해야 하는 경우도 있습니다.
하나의 객체에 다양한 속성을 부여하기도 합니다. 예를 들어 사진에 부여되는 객체의 속성은 ‘강아지’인 것뿐만 아니라 동물의 위치가 ‘중앙’, 동물의 자세는 ‘앉은 자세’, 색상은 ‘흰색’처럼 다양한 속성을 부여하고 비교합니다.
구체적인 데이터 라벨링으로 위의 사진처럼 앉은 자세의 강아지 인형과의 공통적인 속성을 캐치하고 부여합니다. 다양한 객체 검출 레이블링 작업은 요즘 큰 관심을 받는 자율주행뿐 아니라, 패션, 건설업, 의료 등 다양한 분야에서 인공지능을 도입하기 위해 필요한 과정입니다.
YOLO를 주제로 선정한 이유
데이터헌트가 가지는 가장 큰 장점 중 하나는 데이터 가공 작업이 진행될 때 작업자들의 작업 능률 향상을 위해 AI 모델을 활용하고 있다는 것입니다.
그렇기 때문에 작업자들의 능률향상을 지원하는 AI 모델에 대해 많은 고민이 필요한데, 빠르게 레이블을 전달하더라도 정확하지 않으면 차후에 추가적인 수정이 필요해지고, 최대한 정확한 레이블이더라도 전달에 너무 오랜 시간이 걸린다면 작업 효율에 큰 도움이 되지 못합니다.
따라서 많은 객체 검출 모델 중에서 속도와 정확도의 균형이 잘 잡힌 모델을 고민해야 했고, 그 결과 YOLO를 눈여겨보게 되었습니다.
YOLO의 퍼포먼스
YOLO가 다른 모델에 비해 속도와 정확도 모두 좋은 결과를 냈을까요? 현재 YOLO는 v1부터 v5 모델까지 많은 개선이 이루어졌고, 현재도 개선 중입니다. 이번에는 그 시작이 되는 YOLO v1에서부터 이후의 시리즈까지 관통하는 핵심 개념을 다른 모델과의 차이점, 장단점과 함께 리뷰하겠습니다.
One-stage Detector
Two-stage Detector로 분류되는 R-CNN 계열의 모든 모델은 이미지의 많은 영역에 걸쳐 후보 영역군을 만들고 각 영역에 대해 Objectness와 객체 영역, 그리고 클래스를 예측하는 작업을 수행하게 됩니다.
장점은 후보 영역군을 만드는 일부터 이후 과정이 많은 연산양을 필요로 하고 직렬적으로 수행되기 때문에 보다 정확합니다. 하지만, 그만큼 느리게 동작하는 단점도 있습니다.
YOLO에서는 위의 속도의 문제를 개선하기 위해 One-stage Detector의 구조를 제안했습니다. Backbone을 통해 나온 feature map이 곧 원본 이미지를 격자(grid)로 잘라 놓은 역할을 하기 때문에, 후보 영역군을 생성할 필요도 없이 각 격자에서 물체가 유무를 포함한 나머지 일들을 수행할 수 있습니다.
YOLO의 One-stage Detection 구조
이것은 네트워크 전체에 걸친 Convolution 연산이 Spatial-invariant 하기 때문에 가능한 일이라고 생각할 수 있습니다.
다시 말해, 연산을 해도 이미지 내 픽셀의 상대적 위치가 변하지 않는다는 특징으로 인해 내 양 옆자리에 지수, 재윤이라면 사무실을 옮기고 몇 번의 이사를 가도 양옆에 지수와 재윤이가 앉아 있는 것은 변하지 않습니다.
Predict at Once
위의 그림에서 알 수 있듯, YOLO에서는 마지막 layer를 통해 한 번에 모든 정보를 추론하게 되는데 그 내용물은 아래의 그림과 같습니다.
YOLO의 정보 추론 로직
각 격자에서 서로 다른 크기와 비율을 가진 영역을 사전에 정의 (이것을 Anchor라고 명칭), 그 Anchor의 개수만큼 영역의 위치와 크기(x, y, w, h) 그리고 objectness를 추론합니다.
그리고 그와 별개로 해당 Anchor가 포함하는 영역의 객체의 클래스를 분류할 수 있게 설계합니다. 이러한 구조를 통해 YOLO는 원하는 정보(영역 위치, Objectness, 클래스)를 한 번에 얻어내도록 구성되었습니다.
Two-stage 구조에서는 각 영역 후보마다 이 과정을 각자 따로 계산하는 반면, YOLO에서는 추론해야 할 결과의 수가 영역의 수에서 격자의 수로 변하게 됩니다. 그리고 보통 영역의 수는 1k 단위로 설계되는 반면 격자의 수는 10, 100개의 단위로 만들어지기 때문에 연산 속도를 크게 줄일 수 있습니다.
YOLO 모델의 장단점
여기까지 YOLO 모델을 간단히 살펴봤습니다. 언급했듯 위의 내용은 앞으로의 시리즈에서도 큰 변화 없이 공통되는 내용이므로 앞서 정리한 YOLO 모델의 특징, 장단점을 짚어봐야 할 필요가 있습니다.
장점
Two-stage에 비해 빠르다.
배경에 대한 positive error가 낮다.
단점
작은 물체에 대한 검출 성능이 낮다.
겹쳐있는 물체에 대한 성능은 다소 떨어집니다.
YOLO는 결론적으로 정확도를 조금 낮추는 대신 빠른 추론을 얻어낸 모델입니다. 하지만 소폭의 정확도 감소를 충분히 상쇄하고도 남을 빠른 속도를 얻어냅니다. 이미 다양한 실서비스에서 활용되고 있으며 이후 YOLO 시리즈에서는 위의 단점을 개선하기 위한 여러 구조를 제안하여 발표되었으니, 이후 포스트에서 더 다뤄보겠습니다.
AI 챗봇은 어떻게 만들까?
최근 많은 기업에서 AI 챗봇을 도입하고 있습니다. AI 챗봇 구축을 위한 빌더도 많이 늘어났죠. 본격적으로 챗봇을 구축하기 전에 알아야 할 것이 무엇인지 살펴보겠습니다.
개발 구조와 챗봇 아키텍처
챗봇은 무궁무진한 사용 방향만큼, 제작을 위한 기본 뼈대에도 여러 선택지가 있습니다. 그중 대표적인 3가지를 비교해 보겠습니다.
생성 AI 모델
대규모 데이터 세트에서 AI 챗봇을 교육한 모델
기존 방식보다 더 자연어를 잘 이해함
대규모 언어 모델로 개발된 ChatGPT, Bard 등 생성 AI 챗봇이 대표적인 사례
최근 Google은 이러한 생성 모델을 검색 엔진으로까지 확대하여 범용화를 시도하고 있음
패턴 기반 휴리스틱
패턴이 있는 일련의 규칙을 적용하는 모델
휴리스틱이란, 시간이나 정보가 부족하여 합리적인 판단을 할 수 없거나 체계적인 판단이 굳이 필요하지 않은 상황에서 모델이 빠른 의사결정을 할 수 있도록 고안된 컴퓨터 알고리즘
따라서 규칙과 패턴에 기반하여 휴리스틱을 발동하는 방식
주로 엔터테인먼트 챗봇에 사용
Intent Classification to Classify User Inputs into Predefined Intents
의도 분류 알고리즘
의도 분류 (Intent Classification) 이란, 챗봇 대화에서 사용자 쿼리 이면의 의도를 식별하는 프로세스
공통된 키워드가 들어가더라도 사용자의 요청은 다양하게 분류할 수 있음
챗봇 의도 교육을 선행하여 비즈니스 및 고객 요구 사항의 종류에 따라 분류
같은 키워드가 들어가도 요청사항의 맥락이 제각각인 케이스에 대응하기 위한 방식
한국어 공개 데이터
한국어 데이터는 그간 영어에 비해 미진한 성과를 거두었습니다. 원래도 복잡하고 까다로운 자연어 처리 과정에, 한국어 데이터는 훨씬 더 어려운 구조를 가지고 있기 때문입니다. 특히 한국어는 조사가 없는 영어에 비해 어절 단위로 토큰화를 하는 것이 까다롭습니다. 또한 어순이 바뀌거나 띄어쓰기가 되지 않아도 의미가 통하는 경우가 많고, 인공지능은 문장부호 없이 텍스트만 보고는 의미 구분을 하지 못하기 때문입니다.
구글이 선보인 인공지능 챗봇 Bard는 한국어 문장을 자연스럽게 구사할 수 있습니다. 구글은 그간 기술적인 어려움을 겪고 있던 한국어 데이터 시장을 먼저 선점하겠다는 의도를 보였죠. 구글 최고 경영자는 “한국어를 통해 우리에게 무엇이 더 필요한지 확인하겠다”라고 설명했습니다. 이에 따라 국내 기업도 더 많은 양질의 한국어 데이터를 가지고 있음을 내세워, ‘한국어 대규모 언어 모델’ 구축에 박차를 가하겠다는 의지를 보여주고 있습니다.
지난해 1월 인공지능 챗봇 심심이의 한국어 대화형 AI 기술을 돕는 데이터셋 구축이 완료되었다는 소식이 보도되었습니다. 여기에 포함된 데이터는 ‘공감형 대화’ 데이터와 ‘지식 검색 대화’ 데이터, 그리고 ‘일상형 대화’ 데이터가 포함되어 있습니다. 이는 사실 기반의 대화와 페르소나 유지, 공감 능력까지 갖춘 대형 언어 모델 제작의 기반이 만들어진 셈입니다.
AI HUB는 AI 기술 및 제품, 서비스 개발에 필요한 AI 인프라를 누구나 활용하고 참여할 수 있도록 지원하는 AI 통합 플랫폼입니다. 사용자는 AI 허브에서 지원하는 AI 데이터, AI SW API, 컴퓨팅 자원 등의 인프라 서비스를 자유롭게 활용할 수 있습니다. AI 허브에서 데이터바우처 사업 등을 통해 수집한 공공 데이터나 R&D 데이터, 민간 데이터 등을 가지고 AI 추론 학습용 데이터를 제작하고, 이를 각종 산업체나 연구 개발에 사용할 수 있도록 공유하는 것이죠.
구축이 어려운 한국어 데이터 역시 AI HUB에서 찾을 수 있습니다. [분류 분석], [유사도 판별], [자연어 질의응답], [번역] 등 많은 데이터가 준비되어 있죠. 특히 대화모델 학습용 데이터가 많이 포진되어 있습니다.
실제 적용까지의 과제
챗봇은 일상적이고 반복적인 프로세스를 자동화하는 데에 특화되어 있습니다. 여기에 인공지능을 더해 더욱 효과적인 업무 처리가 가능해졌죠. 그러나 챗봇이 역량 이상을 요구받거나, 챗봇이 수행해야 하는 작업이 모델 성능에 비해 복잡하면 제 기능을 하지 못할 가능성이 높습니다.
또한 인공지능 챗봇은 다양한 소스로부터 액세스 된 데이터를 사용합니다. 그런데 데이터 품질이 나쁘다면 오히려 데이터가 챗봇의 기능을 제한하게 됩니다. 즉 챗봇의 품질은 엔지니어가 챗봇에 사용한 AI 모델과 데이터 품질에 따라 결정된다고 볼 수 있습니다.
그렇다면 챗봇 구축을 위해서는 보다 구체적인 설계가 필요하다는 것을 알 수 있습니다. 특히 잘못 설계된 챗봇은 사용자 신뢰도를 저하하고 브랜드에 대한 나쁜 인상을 줄 수 있습니다. AI 챗봇의 개발 및 구축 단계에서 고려해야 하는 것들의 예시를 들자면 아래와 같습니다.
1. AI 챗봇의 주요 목적과 Target
2. 어디에 챗봇을 구현할 것인가?
일반적으로 비즈니스 웹사이트에 구현하지만, 모바일 애플리케이션 등 다른 플랫폼에 구축할 수도 있습니다.
3. 구체적인 챗봇의 기능 정의
GPT를 활용할 수도 있으며, CTA와 같은 링크로 연결되도록 유도할 수 있습니다.
더 빠른 온라인 커뮤니케이션을 위해 음성 인식 기능을 구축할 수도 있습니다.
4. 모니터링 및 유지 관리 계획
AI 챗봇의 제반 설계부터 철저히 해야 하는 이유는 최근 사용자가 AI 챗봇을 통해 기대하는 것들이 더 많아졌기 때문입니다. 자세한 내용은 아래 섹션에서 정리하겠습니다.
AI 챗봇의 인터랙션
대화형 사용자 경험 (Conversational UX)
대화형 사용자 경험(CUX, Conversational UX)란 자연어를 기반으로 한 상호작용 방식을 의미합니다. 인간은 서로 상호작용할 때 아이디어나 개념, 데이터 및 감정 정보를 전달하기 위해 대화를 사용합니다.
CUX의 개념이 등장하기 전까지 사용자는 시스템을 사용하기 위해 기꺼이 복잡한 가이드를 배우고 적응해야 했습니다. 하지만 시스템이 자연어 처리 기술을 통해 비로소 인간과 소통할 수 있게 되자, 사용자는 많은 학습 없이도 인터페이스를 이해하고 사용할 수 있게 되었습니다. 뿐만 아니라 시스템과 연속적이고 맥락 있는 대화를 이어나갈 때에 사용자 경험이 더욱 연속적이며 확장되는 것을 확인할 수 있었습니다. 이를 Microsoft는 ‘사용자가 시스템을 배우는 것이 아니라, 시스템이 배우는 것이다’라고 설명했죠.
Conversation Design is the Future of UX
챗봇을 설계하는 경우, 훌륭한 대화식 사용자 경험을 보장하는 것이 최우선 과제가 되어야 합니다. 잘 만들어진 대화형 챗봇은 사용자가 너무 많이 입력하거나, 너무 많이 말하거나, 여러 번 반복하거나, 봇에게 설명할 필요 없이 문제를 해결할 수 있어야 합니다.
그러나 AI 챗봇 업계는 챗GPT 이전까지 CUX를 제대로 수립했다고 보기는 어려웠습니다. 사용자의 기대만큼 시스템의 대화 시나리오는 매우 한정적이었으며, 기능의 확장성도 매우 제한적이었죠. 또한 대화에 국한된 인터랙션 방식 탓에 맥락을 이해하지 못한 채 단답식이 많았고, 소통 과정이 부자연스러워 사용자에게 많은 불편을 주었습니다.
따라서 이런 한계를 보완하기 위해, 챗봇을 구축하기 전에 인터랙션 유형을 명확하게 이해하고 적절히 혼용해 구현할 필요가 있습니다.
시스템 중심 유형
에이전트는 하나의 클래스에 해당하는 사용자의 명령만 인식하고 응답합니다. 일반적으로 웹 검색이나 음성 제어에 사용되는 유형으로, 사용자가 응답에 이어 추가적인 대화를 이어가고자 할 경우 시스템이 이를 더 이상 인식하지 못하는 단점이 있습니다. 따라서 사용자가 연속적으로 여러 명령을 요청하더라도, 이전의 대화 내용이나 맥락을 기억하지 않고 새로운 대화로 인식합니다.
콘텐츠 중심 유형
콘텐츠 중심 유형은 시스템 중심 유형과 유사한 패턴을 가지고 있어 2 턴 이하의 시퀀스로 제한되어 있습니다. 그러나 텍스트 기반의 길고 자세한 설명을 제공하는 방식이라는 점이 다소 다릅니다. 이 유형의 에이전트는 사용자의 질문에 대해 세부사항과 예시를 가지고 자세한 응답을 제시하려고 합니다. 요컨대, 챗GPT가 대표적인 콘텐츠 중심 유형의 에이전트죠.
시각 중심 유형
웹 및 모바일 인터페이스를 보조하는 형태의 시각 중심 유형은 자연어와 텍스트 중심의 인터랙션을 제공합니다. 자연어 응답과 함께 버튼이나 목록과 같은 그래픽 기반의 인터랙션을 보신 적이 있을 것입니다. 이 유형은 예측 가능한 사용자 패턴을 정형화한 카테고리를 기반으로 버튼이나 목록을 제시하여 직관적인 인터페이스를 구축했으며, 사용자는 보다 빠르게 원하는 응답을 찾을 수 있습니다. 만약 사용자가 원하는 명령이 없을 경우 직접 텍스트를 타이핑해 작업을 요청할 수도 있습니다.
대화 중심 유형
대화 중심의 인터랙션은 챗봇이 사용자와 자연스럽고 매력적인 대화를 나누도록 설계되어 있습니다. 대화 중심 챗봇은 대화 스타일이 보다 인간과 유사하도록 프로그래밍되었습니다. 따라서 자연어를 사용하면서 대화 단서를 따라갈 수 있고, 사용자의 어조와 스타일에 따라 응답을 조정할 수 있다는 특징이 있습니다. 또한 유머나 스토리텔링 등을 사용하여 사용자가 대화에 지속적인 관심을 가질 수 있도록 유도합니다.
대화 중심 유형 중 일부는 사용자와 친밀감을 쌓고 유대감을 형성하려고 노력합니다. 즉, 사용자의 필요에 따라 여러 턴에 걸쳐 대화하면서 주제를 확장할 수 있죠. 또한 목록이나 문서를 제공하는 것 대신 구체적이고 요약된 답변을 사용자에게 제공하기도 합니다. 일반적으로 짧은 단위의 대화로 구성되어 있기 때문에, 모바일뿐만 아니라 스피커에서도 구현되기도 합니다.
AI 챗봇 성공 조건
사용자 경험 설계에 따른 인터랙션 활용
최근 많은 기업이 대화 우선 전략을 도입한 사용자 친화적인 AI 챗봇에 도전하고 있습니다. 그러나 상황에 따라 대화가 오히려 다른 인터페이스보다 비효율적이거나 사용자를 불편하게 할 수도 있습니다. 따라서 사용자의 목적이나 방식에 맞게 여러 유형을 혼용하는 것이 기본적인 과제입니다.
Microsoft 365 Copilot Incoming – Next Generation AI
Microsoft 365의 co-pilot은 대화형 인터페이스와 문서 작업을 연동하여 사용자가 요청한 결과물을 즉시 시각적으로 확인할 수 있도록 구축했습니다. 작업의 대상이 되는 플랫폼, 챗봇과의 대화, 버튼 인터랙션을 잘 엮어 연속적인 사용자 경험 선상에서 AI를 가장 효과적으로 사용하는 구조를 이뤄낸 셈이죠. 만약 코파일럿이 대화 중심 유형으로, 요청한 작업 해결보다도 사용자와의 유대감 형성에 목적을 뒀다면 성공적이라고 보기는 어려웠겠죠.
AI 챗봇의 학습 데이터 설계부터 중요
정리하자면 성공적인 챗봇 구축을 위해서는 4가지 인터랙션 패턴을 적절히 섞어서 구성하면서, 대화의 목적에 맞는 시나리오를 구성해야 합니다. 특히 여기서 대화 시나리오를 구성하는 데에는 산업별로 구체적인 상황에 대응할 수 있는 데이터가 필요합니다.
도메인 지식이란, 모델링하려는 문제 또는 도메인과 관련된 특정 정보 및 전문 지식을 의미합니다. 챗봇이 사용자와 유의미하고 유익한 대화를 나누기 위해서는 특정 주제에 대해 알아야 할 것들이 있습니다. 예를 들자면 아래와 같습니다.
도메인의 어휘와 문법
도메인 내의 개념 및 관계
도메인에 대한 사용자의 일반적인 질문과 요청
사용자가 자신의 필요와 욕구를 표현하는 다양한 방법
도메인 지식은 챗봇이 대화의 맥락을 이해하고 적절한 응답을 생성하도록 하는 중요한 열쇠입니다. 예를 들어 챗봇이 고객 지원 서비스를 수행하도록 설계된 경우, 회사의 제품 및 서비스에 대한 제반 지식이 필요할 것입니다. 또한 다양한 유형의 고객 문의사항을 이해할 수 있어야 합니다. 이런 구체적인 지식이 포함된 데이터를 가지고 학습해야만 챗봇이 제 성능을 발휘할 수 있습니다. 따라서 챗봇 구축을 위해서는 데이터 수집 및 가공 능력과 더불어 산업에 대한 이해와 지식이 중요한 것입니다.
데이터헌트 AI 챗봇 구축 사례
세분화된 감정 분석을 통한 대화 시나리오 분석
심리 상담을 위한 멀티모달 감정 분석 모델은 감정을 감지하고 상담자의 목소리 톤과 피치를 분석하여 상담 세션의 효과를 분석하는 기능을 포함하고 있습니다. 데이터헌트는 이 프로젝트를 진행하기 전에 텍스트 데이터와 연관된 시청각 자료를 제공받고, 이를 토대로 대화의 앞뒤 문맥과 발화자의 감정을 파악하고자 했죠.
NLP 데이터라벨링 - 대화문의 영상과 스크립트를 비교하여 감정을 태깅한 자료
작업자들은 먼저 텍스트 대화문에 해당하는 영상을 시청하고 대화문의 영상과 스크립트를 비교합니다. 각 스크립트에는 Text/video Intent와 주제, 소주제, 감정을 표시할 수 있습니다. 또한 하나의 대사에 복합적인 감정이 포함되어 있어 단일 감정으로 분류하기 어려운 경우, 감정 2 칼럼에 캐깅하는 방식으로 유연하게 대응할 수 있도록 설계했죠.
이를 통해 데이터헌트는 약 79,346개 문장에 대한 멀티모달 음성전사 작업을 마쳤습니다. 정확도는 무려 99.995%를 달성했습니다. 일반적으로 2-3개 정도의 감정값만을 태깅하는 기존 방식과 달리, 무려 8개의 속성값을 태깅함으로써 정교한 데이터를 구축한 결과였습니다.
선생님의 대화 방식 데이터를 토대로 만든 AI튜터
고객사에서 구축하고자 한 SaaS 플랫폼은 Text recognition, Translate 과정과 번역 과정 검수가 Step별로 이루어지는 구조였습니다. 라벨러가 데이터를 입력하면 기초과학/인문 등에 대한 텍스트 데이터 구성 및 단어에 대한 개체 인식이 이루어지고, 이후 텍스트에 대한 외국어 번역이 이루어집니다. 마지막으로 작업 결과를 검수하는 과정을 더해 정확도를 끌어올렸죠.
👉 함께 볼 포스트: NER로 AI튜터와 스마트러닝 플랫폼 구축
결론: AI 챗봇 구축을 위해서는 사전 지식과 정확한 데이터 설계가 필요
향후 AI 챗봇은 기존 제품이나 플랫폼과 결합하여 더욱 개인화된 에이전트 경험을 제공할 것으로 기대됩니다. 그러나 인공지능 챗봇은 본질적으로 사용자가 접하는 정보 자체에 대한 신뢰도가 낮다는 문제점을 꾸준히 지적받고 있습니다. 특히 생명이나 금융 등과 연관된 분야에 대응할 때, 웹 정보를 기반으로 하는 GPT는 치명적인 문제를 유발할 수 있습니다. AI 챗봇에 막연한 관심을 가지고 GPT를 토대로 챗봇을 제작했을 때, 실제 적용 시 기대한 성능을 뽑지 못하는 이유도 여기에 있습니다.
따라서 정확한 정보 전달이 필요한 분야일수록 신뢰할 수 있는 도메인 지식을 쌓아두는 데이터 베이스를 형성하고, 해당 지식을 기반으로 추론 및 응답이 이루어질 수 있도록 제반 작업을 설계하는 것이 중요합니다. 언어 학습 그 이상의 데이터를 정의하면서 복합적인 학습 데이터를 구축하는 프로젝트를 통해 연결성 있고 신뢰할 수 있는 사용자 경험을 보장할 수 있습니다.
궁극적으로 성공적인 대화형 AI 챗봇 구축을 위해서는 비즈니스와 AI 생태계에 대해 깊이 이해하고 있는 전문적인 파트너가 필요합니다. 데이터헌트 역시 ChatGPT의 비전을 이어가기 위해 꾸준한 연구와 개발을 이어가고 있습니다.
NLP, 자연어 처리 - 정의와 분석, 사용 사례 [인간과 컴퓨터 사이의 이해 격차를 줄이기 위한 기술]
NLP, 자연어 처리 란 무엇인가?
Natural Language Processing을 의미하는 NLP(자연어 처리)는 자연어 텍스트 혹은 음성으로 데이터를 상호 연결하는 것으로, 언어 입력(language in)이라고 말하기도 합니다.
즉, NLP는 인간의 언어를 해석 및 조작하고 이해하는 능력을 컴퓨터에 부여하는 머신러닝 기술입니다. 0과 1로만 이루어진 인공지능의 세계에 ‘자연어’라는 개념을 학습시키는 셈이죠. NLP는 컴퓨터 과학, 인공지능, 언어학 영역의 교집합입니다.
간단하게 말하자면 컴퓨터와 사람의 언어 사이의 상호작용에 관해 연구하는 분야입니다. 컴퓨터가 이용자와의 대화 속에서 의도를 찾아내고 다양한 형태의 데이터로부터 정확한 정보를 제공하는 것을 목적으로 합니다. 이를 통해 특히 ChatGPT와 같은 챗봇이 눈부신 성과를 거둘 수 있었습니다.
NLP, 자연어 처리 의 원리
NLP 알고리즘은 컴퓨터가 인간의 언어를 입력받아 이해 및 분석하고, 최적의 결과를 찾아내는 과정을 반복합니다. 예를 들어 비정형 데이터 형식으로 들어오는 음성이나 텍스트 데이터의 입력값을 처리하는 챗봇의 기본적인 방식을 표현하면 아래와 같습니다.
쉽게 말하자면 비정형 데이터 형식으로 들어온 음성이나 텍스트 데이터의 입력값을 분석하고, 이를 토대로 결과를 출력하는 것입니다. 여기서 NLP 알고리즘이 해당 대화를 분석하는 과정을 ‘자연어 이해’라고 합니다. 다음으로 분석 과정을 거친 후 결과를 도출하는 것은 ‘자연어 생성(NLG)’이라고 설명할 수 있습니다.
NLP의 텍스트 전처리 과정
컴퓨터가 비정형 텍스트를 인식하기 위해서는 몇 가지 전처리 과정이 필요합니다. 이는 NLP 알고리즘의 정확도 향상을 위해 매우 중요한 일입니다.
출처: Machine Learning in Natural Language Processing (2012)
1. 토큰화(Tokenization)
문장 혹은 말뭉치(Corpus)에서 최소 의미 단위인 토큰으로 분할
컴퓨터가 인식하도록 하는 방법
영문은 일반적으로 띄어쓰기 기준으로, 한글은 주로 단어 안의 형태소를 기준으로 나눔
2. 품사 태깅(POS Tagging, Part of speech tagging)
형태소의 품사를 태깅
3. 표제어 추출 (Lemmatization)
단어들로부터 표제어(사 전어)를 찾는 기법
4. 어간 추출 (Stemming)
단어에서 접두사 및 접미사를 제거하여 어간을 획득
5. 불용어(Stop Word) 처리
조사, 접미사 등 실제 의미 분석에 거의 기여하지 않는 단어를 처리
NLP, Natural Language Processing와 딥 러닝
NLP는 언어학과 인공지능을 모두 활용하는 분야로, 1950년대 디지털 컴퓨터가 발명된 직후부터 NLP에 대한 연구가 시작되었습니다. NLP 연구에 뛰어난 진척을 보인 것은 머신러닝이 발전한 직후부터였습니다.
딥 러닝 기술을 활용하여 자연어 처리를 하는 순환 신경망(Convolutional Neural Network) 구조도
순환 신경망(RNN), 컨볼루션 신경망(CNN) 등의 모델은 딥 러닝 기술을 활용하여 인간의 언어를 처리하고 이해합니다. 딥 러닝을 통해 NLP 모델은 텍스트 데이터의 복잡한 패턴이나 계층 구조, 표현을 학습합니다. 이를 이용해 언어 이해, 생성, 번역 및 감정 분석과 같은 작업을 수행할 수 있는 것이죠.
NLP 모델은 복잡한 언어 구조와 의미론적 관계를 캡처할 수 있는 딥 러닝 아키텍처의 확장성과 표현력을 활용하고 있습니다. 딥 러닝과 NLP 기술을 결합함으로써 자연어 처리는 상당한 발전을 이룰 수 있었습니다. 이를 토대로 아래에서 후술 할 다양한 응용 프로그램의 가능성을 열었죠.
NLP Use Cases & 한국형 챗봇 사례
일상 속의 자연어 처리
일상생활 속에서도 NLP 기술이 사용되고 있습니다.
이메일 필터에 적용된 자연어 처리
이메일 필터
스팸 메시지임을 암시하는 특정 단어나 구절을 찾아내는 스팸 필터
Gmail은 이메일의 콘텐츠에 따라 세 가지 분류 (기본, 소셜, 프로모션)
스마트 어시스턴트
Apple의 Siri, Amazon의 Alexa, Samsung의 빅스비
질문을 알아듣고, 상황과 관련된 응답을 생성
사용자에 관해 더 많은 것을 알게 되면 더욱 개개인에 맞춘 상호작용이 가능해짐
검색 엔진 최적화
사용자의 의도를 기반으로 검색 결과를 도출
정확한 검색어보다는 사용자의 검색 의도를 인식
NLP를 통해 모호한 질의를 분석하여 관련성 있는 개체와 연결
텍스트 자동 완성
사용자의 의도를 예측하여 단어를 완성하거나 관련 단어를 제시
사용할수록 사용자의 특이한 언어 습관에 맞춰지는 특징
번역
NLP를 사용한 온라인 번역기는 언어를 더 정확하게 번역하고, 문법 오류를 최소화
다른 언어에서 모국어로 번역할 때, 번역기에 입력한 텍스트를 어떤 언어인지 인식할 수 있음
SaaS와 NLP
AI와 머신러닝을 활용하면 SaaS 설루션의 성능과 기능, 보안을 강화할 수 있습니다. SaaS는 클라우드 기반 설루션을 위한 인프라와 모델을 제공하고, AI는 데이터 분석, 예측 및 작업 자동화 기능을 제공합니다. 특히 챗봇은 SaaS 고객 서비스에 많은 이점을 제공하는 비즈니스 모델입니다. 인바운드 쿼리에 대한 빠르고 일관된 응답을 제공할 수 있다는 특징이 있죠.
가장 널리 사용되는 NLP 툴은 NLTK, Gensim, Stanford NLP, SpaCy, OpenNLP 등이 있습니다. 이런 모델을 활용하면 SaaS 플랫폼 안에 NLP 기능을 통합할 수 있습니다. 예를 들어, SpaCy는 사전 훈련을 받아 텍스트 데이터 분석에 사용할 수 있는 모델입니다. SpaCy가 텍스트를 토큰화하여 개체를 생성하면, 처리 파이프라인 안에서 여러 단계를 거쳐 처리됩니다. 데이터 분석 과정을 거쳐, Visual Builder 구성 요소를 사용하면 NLP 분석 결과를 표시하는 SaaS 플랫폼을 구축할 수 있습니다.
도입, 적용 사례
그 외에도 NLP는 광범위한 비즈니스 프로세스 중에서도 이메일이나 설문조사 등 대량의 비정형 텍스트를 포함하는 프로세스를 단순화하고 자동화하는 역할을 합니다. 기업은 NLP를 통해 대규모의 데이터를 잘 분석하고 활용하여 올바른 결정을 내릴 수 있습니다.
대용량 문서 처리, 분석 및 보관
고객 피드백 또는 콜센터 녹음 분석 (Speech recognition)
자동화된 고객 서비스를 위한 챗봇 실행
누가, 무엇을, 언제, 어디서 - 정형화된 질문에 응답
텍스트 분류 및 추출 (Text classification)
버라이존의 BSA(Business Service Assurance) 그룹은 자연어 처리와 딥 러닝을 사용하여 고객 요청 댓글을 자동화하고 있습니다. 이들은 매월 10만 건 이상의 요청을 받는데, 자동화 툴을 개발하기 전까지는 개별적으로 모든 요청을 읽고 조치를 취해야만 했습니다. 하지만 버라이존의 IT 그룹인 GTS가 AIEDWSA(AI-Enabled Digital Worker for Service Assurance)는 수리 티켓을 읽고 판독할 수 있을 뿐만 아니라, 기존 티켓 상태에 대한 보고나 진행 상황 추적 등의 기능도 구축했습니다.
회의 영상을 토대로 자연어 처리 과정을 통해 참여 지표를 생성
Spiky는 영업 통화, 교육 및 코칭 세션을 개선하기 위해 인공지능 기반 분석 도구를 개발하는 미국의 스타트업입니다. Spiky의 자동화된 코칭 플랫폼은 회의 비디오 녹화를 사용해서 참여 지표를 생성합니다. 비디오 콘텐츠 속에서 콘텍스트 및 행동 기반 분석을 생성하고, 음성 및 비언어적 소스에서 다양한 커뮤니케이션 및 콘텐츠 관련 메트릭을 제공하죠. 이러한 방식으로 플랫폼은 영업 팀의 성과 고객 참여 기술을 향상하는 것을 목표로 합니다. 이런 종류의 감정 분석 모델은 NLP 모델이 사람의 ‘의도’를 잘 읽어낼 수 있을 때, 지금보다 더 고도의 성능을 발휘할 수 있을 것입니다.
한편, 의료는 인류의 건강과 직결되는 문제이므로 정확성과 효율성이 중시되는 분야입니다. 기존에 환자는 전자 건강 기록(EHR)을 통해 의사에게 자신의 상태를 전했습니다. 그런데 이 과정에서 누락되거나 증상의 정도가 제대로 전달되지 않는 문제가 있었습니다. 이에 펜실베이니아의 Well Span Health는 환자와 의사 사이의 상호작용을 지시하는 음성 기반 도구를 구축했습니다. 환자는 모국어로 상호 작용할 수 있는 의료 포털을 얻을 수 있는 것이죠. 이를 통해 의사는 환자의 정확한 상태를 전달받아 인적 오류의 가능성을 줄일 수 있으며, 환자는 자신의 건강 상태를 이해하기 쉬워졌죠.
거대 언어 모델, LLM과 NLP
거대 언어 모델(LLM)이란, 파라미터의 수가 Billion 단위인 자연어 처리가 가능한 generative ai 모델을 의미합니다. GPT-3.5 아키텍처를 기반으로 하는 ChatGPT와 같은 챗봇은 NLP 기술 발전의 산물입니다. ChatGPT는 일관되고 문맥적으로 관련 있는 텍스트를 생성하여 인상적이고 창의적인 스토리텔링과 개인화된 응답을 제공합니다.
방대한 양의 데이터에 대한 광범위한 학습을 선행한 결과입니다. 이를 통해 언어의 복잡한 패턴, 구문 구조 및 의미 관계를 캡처해 왔죠. NLP 기술이 발전함에 따라, 광범위한 학습 데이터에 대해서도 ‘의도’를 찾아낼 수 있다는 점이 눈에 띕니다. 이는 아래에서 서술할 한국형 챗봇 성공에도 중요한 체크포인트가 되었습니다.
한국형 챗봇
네이버 하이퍼크로버 생성 파이프라인
2021년 네이버가 공개한 초거대 AI 하이퍼크로버는 2,040억 개의 매개 변수를 가지고 있습니다. 이 모델은 GPT-3보다 한국어 데이터를 6,500배 이상 학습했다고 하죠. 게다가 한국어 비중이 97%인 데이터를 학습하여 세계에서 가장 큰 한국어 거대 언어 모델을 구축했습니다.
또한 카카오가 제작한 KoGPT API는 이용자가 입력한 한국어를 사전적, 문맥적으로 이해하고 이용자 의도에 적합한 문장을 생성합니다. 맥락과 의도에 따라 문장을 만드는 기능 덕분에, 상품 소개글이나 감정 분석 등으로 활용할 수 있습니다.
하지만 한국어 NLP 사례가 모두 성공적이었던 것은 아닙니다. ‘나의 첫 AI 친구’라는 콘셉트로 시작한 이루다는 결국 2021년 1월, 논란 끝에 서비스 중단을 선포한 뒤 말뭉치 데이터베이스는 폐기되었죠. 이루다는 말뭉치 데이터에서 대화의 키워드와 관련성이 있는 문장을 골라 채팅창에 올리는 방식이었습니다. 따라서 앞뒤 맥락에 맞지 않는 대화가 상당히 많아, 의도 파악의 능력을 갖춘 NLP 챗봇이라 보기에는 어려웠습니다.
게다가 사용자의 악의적인 어뷰징에 대응할 준비가 거의 되어있지 않은 상황이었습니다. 이루다는 1억 개의 말뭉치 데이터를 통해 학습했지만, 그 안에서 개인정보나 민감한 대화 내용까지 미처 다 가공하지 못했던 것이죠.
자연어 처리, NLP 한계와 극복 방법
한계
이루다가 실패했을 때, 모델 성능의 문제는 차치하더라도 학습한 말뭉치 데이터를 정제하는 과정이 미흡했다는 지적이 많습니다.
왜 한국어 말뭉치 데이터 정제 과정이 까다로울까요? NLP 알고리즘을 수행하기 위해서는 반드시 텍스트 전처리 과정이 필요합니다. 이 중 토큰화는 문장 및 말뭉치에서 최소 의미 단위인 토큰으로 분할하는 과정입니다. 한글은 주로 단어 안의 형태소를 기준으로 나눕니다. 이 과정에서 타 언어 대비 Token이 많이 소비됩니다. 따라서 비용 및 리소스에서 영어보다 다소 불리한 위치에 있습니다.
Token은 오랫동안 한국형 거대 언어 모델 개발의 장벽이 되어왔습니다. 수많은 이루다들이 도전했지만 이를 극복하지 못했었죠. 그럼에도 불구하고, 구글에서 서비스 출시한 Bard는 한국어를 1차로 서비스하면서 상황이 달라지고 있습니다.
한계를 극복하는 방법
데이터헌트에서도 한국어 NLP 사업에 참여한 적이 있습니다. O2O 가사 서비스앱 대리주부는 서비스 공급 품질의 평준화를 위해 사용자 의도가 표현된 자연어 데이터를 활용하는 방법을 추진했죠.
데이터헌트의 챗봇 데이터 NER 가공
데이터헌트는 먼저 고객 리뷰 데이터와 예약 요청 사항, 상담톡 내역, 가사도우미의 소개말이나 인사말 등의 텍스트 데이터를 정제하는 작업을 시작했습니다. 다만 방대한 양의 자연어 데이터 특성상, 의도 파악에 불필요한 내용이나 오타가 다수 포함될 가능성이 있었습니다.
따라서 맞춤법 API 전처리 및 데이터 가공 과정을 거쳐, 사용자의 요청에 대한 레이블을 수정하는 작업을 진행했습니다. 레이블 분석을 통해 유저 성향을 도출하는 것으로 공급자와 사용자의 핏을 맞출 수 있었죠. 방대한 자연어 데이터 속에서 사용자의 의도를 찾아내는 작업을 선행한 것이 성공의 중요한 발판이었습니다.
NLP의 완성도는 학습한 데이터의 품질에 따라 달라집니다. 고객 서비스를 위한 챗봇이 주요 비즈니스로 주목받는 시점에서, 잘 만들어진 한국형 챗봇은 시장에서 단숨에 우위를 점할 수 있는 돌파구가 될지도 모릅니다.
데이터헌트의 노하우
“한국말은 끝까지 들어야 한다”는 속담이 있습니다. 이는 일반적으로, 한국어의 진짜 의도는 말 끝에 존재하기 때문입니다. 이러한 맥락을 잘 활용하고 이해하기 위해서는 Text 데이터 가공 시 NER, Text analysis의 정확도가 중요합니다. 대리주부의 챗봇과 매칭 성능을 향상하기 위해 데이터헌트가 NER(Named Entity Recognition:개체명 인식)을 수행한 이유도 이와 같습니다.
즉, 데이터헌트는 NLP의 핵심을 의도와 맥락 분석에 있다고 생각합니다. 따라서 모든 작업을 AI로 완결하는 것이 아니라 사람의 손을 한 번 더 거치는 멀티모달 형식을 취합니다. AI를 통해 데이터 세트나 말뭉치 속에 의도와 맥락을 파악한 뒤, 전문 인력의 Tagging 작업을 통해 완결성을 갖추고 정확도를 향상합니다. 데이터헌트가 이렇게 HITL(Human In the loop) 방식을 고집하는 이유는 오직 정확도 향상에 초점을 두고 있기 때문입니다.
데이터헌트는 NLP 모델의 성능 향상 면에서 다양한 경험을 보유하고 있습니다. 또한 실무 인력들의 Case study를 토대로 끊임없이 연구를 진행하고 있죠. 데이터헌트의 올바른 신념과 고집은 정확도가 생명인 데이터 가공 작업에서 가장 빛을 발합니다.
요약
NLP 란, 컴퓨터와 사람의 언어 사이의 상호작용에 관해 연구하는 분야입니다.
컴퓨터가 비정형 텍스트를 인식하기 위해서는 토큰화, 품사 태깅, 표제어 추출, 어간 추출, 불용어 처리 등의 과정을 거칩니다. 다만, 한국어는 타 언어 대비 Token이 많이 소모되어 불리한 위치에 있습니다.
NLP 모델이 자연어를 더 잘 이해하고 정확한 응답을 생성하기 위해서는 학습한 데이터의 품질이 중요합니다. 이를 위해 텍스트 데이터 가공 시 NER, Text analysis 등의 기술을 활용할 수 있습니다.
AI 챗봇은 인간과 자연스럽게 대화할 수 있는 소프트웨어 애플리케이션입니다. 챗봇을 도입함으로써 조직의 시간을 더욱 효율적으로 사용할 수 있으며, 실시간 에이전트를 사용할 수 없는 시간 동안 조직이 서비스를 제공할 수 있습니다.
챗봇은 자연어 처리를 사용하여 사용자의 텍스트나 그래픽, 음성을 통해 웹 서비스 혹은 앱과 상호작용하도록 설계되어 있습니다. 챗봇은 상호작용 유형에 따라 아키텍처와 어트랙션을 선택할 수 있습니다. 최근 가장 많은 관심을 받고 있는 어트랙션은 대화 중심 구조이나, 구축하고자 하는 인공지능 챗봇의 의도나 목적에 따라 적절한 유형을 선택해야 합니다.
인공지능 챗봇이 성공하기 위해서는 사용자 의도와 맥락을 파악하는 대화 시나리오를 개발하고 이를 학습 데이터에 반영해야 합니다. 모든 AI 챗봇이 GPT를 기반으로 한다 해서 기대 성능을 내기는 어렵습니다. 따라서 언어 학습 데이터 구축 시 도메인 지식을 기반으로 한 복합적인 프로젝트 설계가 필요합니다.
'say와 AI 챗봇친구 만들기 보고서' 카테고리의 다른 글
구글 '제미니'호의 비밀 (0) | 2023.07.24 |
---|---|
스켈터랩스 ‘AIQ.TALK 챗봇’, 챗GPT 업고 대화형 AI 기술력 고도화 (0) | 2023.07.22 |
ChatGPT(챗GPT) 사용법 살펴보기, 챗GPT 어떻게 활용합니까? (0) | 2023.07.20 |
'AI 구독서비스' 시대 열렸다...MS, GPT-4 탑재한 코파일럿 월 30달러에 제공 (0) | 2023.07.19 |
[G-ChatBot] ChatGPT를 이용한 영어 문장/문단 자동 수정 서비스 (1) | 2023.07.18 |