직접 프로젝트 수행을 하면서 경험했던 사항들을 반영하여 “사례 기반의 소프트웨어 아키텍처” 블로그를 두 번에 걸쳐 작성하였습니다. 그런데, 너무 과거 지향적 이야기만 하는 것 같아, 이번 블로그에서는 과거와 현재뿐만 아니라, 트렌드도 반영한 AI Architecture 이야기를 해보겠습니다.
혹시, 지난 블로그를 못 보신 독자분은 아래 블로그를 미리 살펴보시면 이 글의 내용을 이해하는데 도움이 되리라 생각합니다.
본 블로그는 Part I에서 해커톤과 추천 시스템 이야기를 통해 AI가 어떻게 비즈니스에 영향을 주고 있는지를 먼저 설명하고, Part II에서 비즈니스 서비스를 더욱 경쟁력 있게 뒷받침하는 다양한 AI 모델과 그 진화에 대해 이야기하면서 AI Architecture를 살펴보도록 하겠습니다.
Part I – 해커톤과 추천 시스템
AI Hackathon, Agile 팀 구성
2016년 스위스 다보스에서 4차 산업혁명 이야기가 나왔고, AI가 중요한 주제로 올라섰습니다. 이때 마침 삼성병원에서 100명의 해커톤 인원을 공개 모집했었고, 250명이 신청해서 2.5대 1이라는 높은(?) 경쟁률을 뚫고 참여할 수 있었습니다. 모든 사람이 1분 스피치를 통해, 각자 자신을 소개하며, 자율적으로 팀을 구성하였습니다. 그때 Facilitator 및 Architect 역할을 하고자 했던 필자는 적극적으로 조직을 구성하여 MD(Medical Doctor) 두 명, AI 전공 학생 1명, 개발자 2명이 포함된 애자일 팀을 빠르게 만들었고, 녹내장 전문의였던 한명의 MD를 중심으로 녹내장 진단 솔루션 개발을 팀 목표로 설정했습니다.
POC Spike 결과 – 녹내장 80% 진단
아키텍트 관점에서 해커톤은 인공지능 솔루션 관련 POC(Proof of Concept)를 위한 스파이크(Spike) 개발이었기 때문에, 녹내장 진단 솔루션을 만들기 위한 준비는 최대한 간소화 시켰습니다. 녹내장 MD에게는 진단용 화면 스케치를 시켰고, 다른 MD에게는 녹내장 관련 영상(정상 및 녹내장 레이블링이 된) 데이터를 수집시켰고(주로 검강검진 데이터 수집), AI 학생에게는 영상 데이터를 학습시킬 인프라를 준비시켰고(학생의 연구실 서버 원격 활용), 다른 두 개발자는 개발 준비(Visual Studio) 및 이미지 변환(CNN 입력용 이미지)을 시켰습니다. 이 당시 산출물은 화면 스케치, AI모델, 발표자료의 3가지가 전부였습니다. 단발성이기 때문에 파이프라인 구성이나 인프라에 대한 고민은 할 필요도 없었습니다. 그 결과로 진단률이 80%가 넘는 녹내장 진단 솔루션을 만들었고, 이때의 경험을 기반으로 팀은 해커톤 이후에도 1년 동안 지속적인 만남을 가지면서 스타트업 회사 설립 및 서로의 다양한 경험을 공유할 수 있었습니다.
추천 시스템이란?
추천이란 “사용자에게 가치 있는 의사결정 지원”을 말하며, 추천 시스템이란 “사용자에게 가치 있는 의사결정을 지원하는 시스템”을 말합니다. 따라서, 앞에서 살펴본 녹내장 진단 솔루션도, 녹내장 진단에 필요한 의사결정 관련 정보를 의료진에게 제공하는 일종의 추천 시스템이라고 말할 수 있습니다. 진단이라는 의사 고유의 역할을 AI가 완전히 대신하지는 못하지만, 많은 사전 및 지원 작업을 대신하면서 의사결정을 효율화시킬 수 있도록 도와줄 수 있기 때문입니다.
삼성병원 해커톤 이후 9년이 지난 지금, 아직은 일부지만, 몇몇 병원은 영상 데이터 뿐만 아니라, 다양한 환자의 데이터를 포함한 멀티 모달 데이터를 기반으로 진단 지원 시스템을 만들어 활용하고 있습니다. 10년도 안된 사이에 헬스케어 산업에서는 AI에 관한 인식, 조직 규모, 활용의 범위가 매우 크게 확대되고 있습니다.
병원이 아닌, 우리 주위를 살펴보면 이미 다양한 추천 시스템이 존재합니다. 우리가 길을 찾아갈 때, 카페나 음식점을 찾을 때도 스마트 폰의 앱들이 원하는 장소 및 접근 방법을 추천해줍니다. 우리가 검색을 하거나 커뮤니티에 들어가면 나도 모르게 다양한 광고에 노출되어 원하지 않아도 다양한 상품을 추천 받게 됩니다. 쇼핑몰에 접속하면 다양한 팝업이나 배너들을 볼 수 있는데, 이런 많은 광고들도 추천 시스템의 결과라고 볼 수 있습니다. 다만, 추천 시스템을 어떻게 만드는지는 운영진의 선택에 달린 일입니다.
가끔은 너무 많은 추천 상품들로 짜증이 나기도 하지만, 상품과 서비스가 넘쳐나는 시대를 살고 있는 바쁜 현대인에게는 반드시 필요한 서비스라고 볼 수 있습니다.
2024년은 숏폼(Short-Form)의 전성시대인가?
숏폼은 짧은 영상 컨텐츠를 뜻하는 단어로 길어야 10분 이내로, 코로나시대 들어 크게 유행하기 시작했습니다. 숏폼의 리더들은 누구일까요? 요즘에는 궁금하면? 500원?이 아닌 ChatGPT를 많이 찾아갑니다!
추천 시스템에서의 숏폼 활용
그렇다면, 추천 시스템에서도 숏폼이 필요할까요? 궁금하면? GhatGPT에게!
추천 시스템의 핵심 요소들
추천 시스템을 구성하는 다양한 요소들이 있습니다. 일반적인 관점에서 이야기하면,
- 첫째는 사용자 모델입니다. “상품을 소비하는 사용자야 말로 매출을 일으키는 근간”이되기 때문에 중요합니다.
- 둘째는 상품, 즉 아이템 모델입니다. “사용자에게 추천할 대상이 있어야 추천 시스템이 성립”되기 때문입니다.
- 셋째, 추천 엔진입니다. “사용자에게 가치를 주는 추천을 하면 매출로 연결”되겠지만, 사용자의 관심사와 상관없는 상품만 추천한다면, 사용자는 사이트에 짜증을 내는 이탈 고객이 될 수 밖에 없습니다.
- 넷째는 피드백과 학습입니다. 피드백을 통해 사용자를 더욱 잘 알 수 있으며, 사용자 경험이 쌓이면서 관심사의 변화를 관리할 수 있습니다. “학습은 추천 엔진을 개선시킬 수 있는 기반”이기 때문에 중요합니다.
이처럼 추천 시스템의 핵심을 이루는 요소들은 다른 요소들과 밀접한 관련을 갖습니다.
사용자 모델링(User Profiling)
- 사용자의 선호도, 행동 패턴, 인구 통계학적 정보 등을 수집하여 사용자에 대한 프로파일을 구축합니다.
- 예: 사용자의 성별, 나이, 이전에 본 영화 목록, 구매한 제품, 좋아하는 음악 장르 등.
아이템 모델링(Item Profiling)
- 추천할 아이템(상품)의 속성, 특성, 분류 등을 분석하여 아이템에 대한 프로파일을 만듭니다.
- 예: 영화의 장르, 주연 배우, 음악의 아티스트, 제품의 카테고리 등.
추천 엔진(Recommendation Engine)
- 사용자 모델링과 아이템 모델링을 기반으로 사용자가 좋아할 만한 항목을 예측하고 추천하는 알고리즘을 사용합니다.
피드백 및 학습 (Feedback and Learning)
- 사용자가 추천을 어떻게 반응했는지를 추적하고, 이를 바탕으로 시스템을 개선합니다.
- 예: 사용자가 추천된 영화를 시청하거나, 추천된 제품을 구매한 경우 시스템이 이를 학습하여 향후 추천을 개선. 추천 알고리즘
추천 시스템의 유형
추천은 다양한 형태로 이루어집니다. 가장 기본적인 것은 사용자에게 관심사를 직접 물어보고, 관심사 상품을 제공하는 것입니다. 이를 콘텐츠 기반 필터링이라고 합니다. 하지만, 새롭고 혁신적인 상품 등에 대해서는 사용자가 본인의 관심사를 정확하게 알기 어려울 수도 있고, 관심사를 파악하고 관리하는 것이 생각보다 효율적이지 못할 수도 있습니다.
그래서 사용자의 행동을 분석하는 것이 매우 중요한 활동입니다. 어떤 경로로 사이트에 들어오는지, 얼마나 사이트에 머무는지, 어떤 상품을 검색하고 실제 구매까지 연결될 확률은 얼마나 되는지 등. 이런 추천 유형을 협업 필터링이라고 하며, AI 모델이 효율을 보일 수 있는 영역이기도 합니다. 물론, 실제로는 더욱 다양한 유형이 존재하며, 여러 추천 유형을 혼합해서 사용하는 것이 일반적입니다.
콘텐츠 기반 필터링(Content-Based Filtering)
- 아이템의 속성에 기반하여 유사한 아이템을 추천합니다. 사용자가 좋아했던 아이템의 특성을 분석하고, 유사한 특성을 가진 아이템을 추천합니다.
- 예: 사용자가 좋아하는 책의 장르와 유사한 책 추천.
협업 필터링(Collaborative Filtering)
- 여러 사용자의 행동 및 평가 데이터를 바탕으로 유사한 취향을 가진 사용자를 찾아 그들의 선호도를 활용하여 추천합니다.
- 사용자 기반 협업 필터링: 유사한 사용자 그룹을 찾아 그들이 좋아하는 아이템을 추천
- 아이템 기반 협업 필터링: 사용자가 좋아했던 아이템과 유사한 아이템을 추천
- 예: 사용자가 좋아한 영화를 본 다른 사용자들이 좋아한 영화 추천
하이브리드 추천(Hybrid Recommendation)
- 콘텐츠 기반 필터링과 협업 필터링을 결합하여 더 정확하고 다양한 추천을 제공합니다.
- 예: 사용자의 선호도와 유사한 사용자들의 행동을 모두 고려한 영화 추천
연관 규칙 기반 추천(Association Rule-Based Recommendation)
- 아이템 간의 연관성을 분석하여 자주 함께 소비되는 아이템을 추천합니다.
- 예: 쇼핑 카트에 포함된 제품을 분석하여 자주 같이 구매되는 다른 제품 추천.
순차적 추천(Sequential Recommendation)
- 사용자의 행동 시퀀스를 분석하여 다음에 어떤 행동을 할지 예측합니다.
- 예: 사용자가 특정 음악을 들은 후 들을 가능성이 높은 다른 음악 추천.
딥 러닝 기반 추천(Deep Learning-Based Recommendation)
- 딥 러닝 모델을 사용하여 사용자와 아이템 간의 복잡한 관계를 학습하고 예측합니다.
- 예: 딥 러닝을 통해 사용자의 취향을 더 정교하게 모델링하고 개인화된 추천 제공
추천 시스템의 제약
데이터를 기반으로 한 시스템은 데이터 품질에 큰 영향을 받습니다. 또한 추천 시스템을 만드는데 가장 어려움을 겪고, 가장 많은 시간이 필요한 영역이 데이터 수집입니다. 데이터 수집 시 가장 중요한 것은 비즈니스 전문성입니다. 비즈니스 전문성이 부족할 경우 수집할 데이터 선정이나 방법을 정의하기 어렵기 때문에 비효율로 이어질 가능성이 높기 때문입니다.
또한, 개인화 추천 시스템을 만들 경우, 개인 정보는 개인정보보호법의 제약을 받습니다. 뿐만 아니라, 의도적이든 의도적이 아니든 추천 알고리즘의 편향은 불공정으로 이어질 수도 있으며, 이 부분도 컴플라이언스나 법적인 제제가 가해질 수도 있는 영역입니다.
- 데이터 수집 및 품질: 효과적인 추천을 위해서는 고품질의 사용자 데이터 필요
- 프라이버시: 사용자 데이터를 수집하고 사용하는 과정에서 프라이버시 문제 발생 가능
- 편향 문제: 데이터의 편향이나 추천 알고리즘의 편향으로 인해 불공정하거나 부정확한 추천이 발생할 수 있음
성공의 견인차 – 개인화
개인 정보가 제약적 요소이기는 하지만, 차별화를 만들어낼 수 있는 핵심이기도 합니다. 추천 시스템의 경쟁력이 개인화 추천 시스템에 있기 때문입니다. 추천이 난무한 시대를 사는 우리. 추천 시스템을 사용자로서 많은 경험을 했지만, 추천 시스템을 만드는 개발자, 아키텍트, 관리자 관점에서는 어떻게 개인화 시킬 것인지가 중요합니다.
개인화의 가장 기본적인 생각은 “스마트한 사용자는 없을지 몰라도 스마트폰이 없는 사용자는 없을 것”이라는 생각해서부터 출발합니다. 여러분들의 스마트폰에는 어쩌면 반려견과의 10년이 넘는 추억이 있을 수도 있고, 오랜 연애 여정에 대한 애틋함이 있을 수도 있습니다. 남에게는 말할 수 없는 혼자만의 여정이 숨겨져 있을 수도 있고, 떠나간 가족이나 친구에 대한 추억을 간직하고 있을 수도 있습니다. 여러분들의 스마트폰에는 얼마나 많은 음식과 술, 그리고 간식 이미지나 여정이 담겨져 있을까요?
구글과 페이스북은 도대체 나의 사생활을 어디까지 알고 있는 것인지 생각해본 적 있나요? 내가 주로 가는 사이트와 좋아하는 립스틱, 또는 치킨 메뉴. 세세한 것까지도 나보다 더 나를 잘 알고 있는 것은 아닐까요?
데이터를 수집하고, 저장하고, 전처리 및 다양한 처리, 분석, 가시화, 학습과 진화에 이르는 모든 과정은 쉽지는 않겠지만, 성공하는 기업들이 그동안 경쟁력을 확보하고 조직을 성장시켜온 근간은 아닐까요? AI라는 것은 경쟁력에 도움이 될까요? 수많은 질문이 꼬리에 꼬리를 물게 됩니다. 잠시, 개인화 추천 시스템에 성공한 조직들의 사례를 보겠습니다.
개인화 추천 시스템의 성공 사례
- 넷플릭스: 사용자의 시청 이력과 평가 데이터를 기반으로 개인화된 영화 및 TV 쇼 추천. 다양한 데이터 소스를 통합하고 고급 분석 기법을 사용하여 추천의 정확성을 높임.
- 아마존: 구매 이력, 검색 기록, 장바구니 데이터를 활용하여 제품 추천. 실시간 데이터를 활용한 동적인 추천과 사용자 리뷰를 통한 제품 인사이트 제공.
- 스포티파이: 청취 이력, 사용자 플레이리스트, 음원 특성을 분석하여 음악 추천. 실시간 청취 데이터를 사용하여 상황에 맞는 음악 큐레이션.
위에서 성공 사례를 보면, 실시간 추천에 대한 이야기가 나오는데, 실시간 추천이 된다는 것은 개인화 추천을 잘 해주는 추천 시스템이라고 볼 수도 있습니다.
여태까지 기본적인 사항을 살펴보았습니다. 하지만, 현재의 추천 시스템들은 AI 모델 및 관련 서비스를 계속 진화시켜온 결과라고 볼 수도 있습니다. 이후 2부에서는 추천 시스템이 어떻게 진화되어왔는지를 기술 관점에서 살펴보면서 AI 아키텍처 이해에 한걸음 더 다가서도록 하겠습니다.
Part II – 개인화 추천 시스템과 AI 모델의 진화
2부에서는 AI Architecture에 대한 전반적인 이해를 돕기 위해 기술적인 언급을 많이 할 예정입니다. 이 과정 속에서 개인화 추천 시스템에 대해서도 조금 더 구체적으로 살펴보겠습니다.
AI 기반 기술 – 워드 임베딩
AI는 숫자와 친합니다. AI는 텍스트, 이미지, 음성 등 모든 실세상의 데이터를 0과 1로 변환해서 디지털 상의 데이터로 사용합니다. 너무나 당연한 말이죠. AI에서는 좀 더 의미 있는 단위가 필요한데 – 본 블로그에서는 기본적인 개념이나 단계는 건너 뛰고 – 자연어 처리(NLP) 분야에서 큰 혁신을 가져오면서 “AI 성능을 한차원 성장시킨 워드 임베딩(Word Embedding)”에서부터 출발해보겠습니다.
워드 임베딩은 단어를 고정 길이의 실수 벡터로 변환하는 방법인데, 이 벡터는 단어 간의 의미적 유사성을 반영합니다. 워드 임베딩은 텍스트 데이터를 처리하고 분석하는 다양한 자연어 처리(NLP) 작업에서 중요한 역할을 합니다. 이와 관련된 대표적인 예로 Word2Vec, GloVe, FastText 등이 있으며, 이들은 주로 딥러닝 기반으로 훈련시킨 후 활용하는 방법들입니다.
워드 임베딩은 분포 가설(distributional hypothesis)이라는 중요한 개념을 근간으로 합니다. 분포 가설이란 “단어의 의미는 그 단어의 주변에 위치한 단어들에 의해 형성된다”는 것을 말합니다.
위 그림의 제일 왼쪽 “Male-Female”을 보면, man과 king은 Male을 woman과 queen은 Female입니다. 그래서 man과 woman과의 거리가 king과 queen 사이 거리와 유사합니다. 이는 중요한 의미를 갖는데, 단어들간의 거리는 의미적 관계를 나타내기 때문입니다. 중간과 오른쪽 그림에서도 동사형 단어나 명사들간 관계에서도 거리의 개념을 살펴볼 수 있습니다.
이처럼 워드 임베딩은 특히 자연어 처리에서 단어의 의미적 관계를 파악하는 데 중요하게 사용되는 기술이며, 이를 몇 가지 항목으로 정리해보겠습니다.
- 목적: 단어 간의 의미적 유사성을 벡터 공간에서 표현
- 모델: Word2Vec, GloVe, FastText 등
- 적용: 텍스트 데이터의 의미적 분석, 문장 분류, 번역, 문장 유사도 등
- 학습 방식: 대규모 텍스트 코퍼스를 통해 단어의 주변 단어(문맥)를 기반으로 학습
- 결과: 유사한 의미를 가진 단어들이 벡터 공간에서 가까운 위치에 위치
- 예를 들어, “king”과 “queen”의 벡터는 “man”과 “woman”의 차이와 유사하게 배치되며, “king – man + woman” = “queen”과 같은 관계를 추론할 수 있습니다. 흥미롭죠?
Item2Vec 기반의 추천 시스템
Item2Vec는 아이템(제품)을 벡터로 표현하는 기법으로, Word2Vec의 원리를 제품 추천에 적용한 것입니다.
- 목적: 아이템 간의 관계성을 파악하여 추천 시스템에 활용
- 모델: Word2Vec의 아이템 중심 버전으로 볼 수 있으며, 특히 CBOW(Continuous Bag of Words)와 Skip-Gram 모델을 사용함
- CBOW: 주변의 단어들로부터 중심 단어가 나올 확률을 학습
- Skip-Gram: 중심 단어로부터 주변의 단어가 나올 확률을 학습
- 적용: 전자 상거래, 영화 추천, 음악 추천 등 사용자의 이전 행동이나 구매 패턴을 기반으로 아이템 추천
- 학습 방식: 사용자가 아이템을 선택, 구매, 평가한 이력 데이터를 바탕으로 학습
- 결과: 유사한 속성을 가진 아이템들은 벡터 공간에서 가까운 곳에 위치
- 예를 들어, 사용자들이 자주 함께 구매하는 제품들은 벡터 공간에서 가까운 위치에 배치됩니다. 이를 기반으로 사용자가 A라는 제품을 구매했을 때 가까운 곳에 위치한 B라는 제품을 추천할 수 있습니다.
AI 기반 기술 – RNN
사람들은 이야기를 하면서, 이전에 했던 말을 기반으로 추가적인 상황을 언급하는 것이 매우 자연스럽습니다. 이전의 알렉사, 시리 등은 이전의 상황이나 문맥(Context)을 제대로 반영하지 못했습니다. 그런 한계점을 극복하기 위해서는 이전의 상황을 기억하면서 계속 상황에 맞는 전개를 이어갈 수 있어야 합니다.
RNN(Recurrent Neural Network, 순환 신경망)은 시퀀스 데이터(예: 시간 시계열 데이터, 텍스트 등)를 처리하기 위해 설계된 신경망입니다. RNN은 입력 데이터의 순서를 고려하여 각 단계에서 이전 단계의 정보를 기억하고, 이를 다음 단계의 입력으로 사용합니다. 물론, RNN이 가진 단점도 있어, 이후 이를 보완하기 위한 LSTM(Long Short-Term Memory), GRU(Gated Recurrent Unit) 등 다양한 모델들이 계속 나타났지만, 시계열적 특성은 그대로 유지되었습니다.
- 구조: 순환 구조를 가지고 있어 이전 상태의 출력이 다음 상태의 입력으로 사용됩니다.
- 용도: 시계열 데이터, 자연어 처리(NLP), 음성 인식 등에서 사용됩니다.
- 장점: 시퀀스 데이터의 시간적 종속성을 처리하는 데 탁월합니다. 다양한 길이의 시퀀스를 처리할 수 있습니다.
- 단점: 장기 종속성(long-term dependency)을 학습하는 데 어려움이 있습니다(기울기 소실 문제). 학습 시간이 길고, 기울기 소실 또는 폭발 문제(vanishing or exploding gradients)가 발생할 수 있습니다.
- 적용 분야: 텍스트 생성, 언어 모델링, 음성 인식, 시계열 예측 등.
GRU4Rec 기반의 추천 시스템
앞에서 잠시 언급한 GRU는 RNN의 변형으로, 기존 RNN의 기울기 소실 문제를 해결하기 위해 설계된 모델입니다. GRU4Rec은 추천 시스템에 특화된 GRU(Gated Recurrent Unit)를 사용하는 딥러닝 모델입니다. 여기서 “Rec”은 “Recommendation”의 줄임말로 추천을 의미합니다.
- 구조: GRU는 RNN의 한 종류로, 두 개의 게이트(Reset 게이트와 Update 게이트)를 통해 정보를 효율적으로 기억하고 갱신합니다.
- 용도: 시퀀스 데이터를 사용하는 추천 시스템에 최적화되어 있습니다.
- 장점: 장기 종속성을 효과적으로 처리하여 RNN보다 성능이 향상됩니다. RNN에 비해 구조가 간단하고 계산 효율성이 높습니다. 추천 시스템의 클릭스트림 데이터와 같은 시퀀스 데이터를 잘 처리합니다.
- 단점: 여전히 RNN의 기초적인 한계(복잡한 모델 설정, 하이퍼파라미터 튜닝)가 있습니다. 모델이 복잡해질수록 학습 및 추론 속도가 느려질 수 있습니다.
- 적용 분야: 추천 시스템(특히, 클릭스트림 데이터 처리), 사용자 행동 예측 등
AI 기반 기술 – Transformer
AI 진화 중 여러 번의 획기적인 전기가 있었고, 그 중 최근의 가장 큰 발전을 이끌었던 AI 아키텍처로 트랜스포머를 들 수 있습니다. 여러가지 측면에서 이전과 다른 특성들이 있는데, 그중 가장 큰 핵심은 어텐션과 포지셔널 인코딩(Positional Encoding)을 통한 병행 처리 메커니즘이라고 볼 수 있습니다. 이로 인해 매우 빠른 대규모 학습이 가능하게 되었으며, 인코더 중심의 BERT(Bidirectional Encoder Representations from Transformers)나 디코더 중심의 GPT(Generative Pre-trained Transformer)처럼 현실에 충분히 적용할 수 있는 품질의 모델을 만드는 일이 이전에 비해 훨씬 수월해졌습니다.
트랜스포머 모델에는 “Attention is All You Need”이라는 논문이 유명합니다. 어텐션만 제대로 알면 된다는 뜻이죠. 실제 다음에서 보는 트랜스포머 모델에는 시퀀스 내의 각 단어가 다른 모든 단어와의 관계를 동시에 고려할 수 있게 해주는 셀프-어텐션(Self-Attention)과 여러 개의 어텐션 헤드를 병렬로 사용하여 모델이 다양한 관점에서 정보를 처리할 수 있게 해주는 멀티-헤드 어텐션(Multi-Head Attention)이 있습니다. 그래서 어텐션이 뭐냐고요? “AI를 알면 연봉이 확 올라갑니다!”라는 말을 들으면 갑자기 관심이 확 가죠? 그렇게 여러분들의 두뇌 속에는 중요하게 생각하는 정보가 잘 정리되어 있습니다. 그런 것을 어텐션이라고 합니다. AI 아키텍처를 논한다고 했을 때 가장 먼저 중요하게 생각해봐야 할 구조이기도 합니다.
트랜스포머는 자연어 처리와 시퀀스 데이터 처리에서 혁신적인 모델로, 주로 시퀀스의 모든 위치 간의 관계를 동시에 고려할 수 있는 셀프-어텐션 메커니즘을 사용합니다. 이 모델은 주로 텍스트 데이터에서 사용되지만, 이미지나 음성 같은 데이터를 처리하는 데도 매우 유용할 뿐만 아니라, 본 블로그에서 이야기하고 있는 추천 엔진으로서도 매우 좋은 성능을 보여줍니다.
- 구조: 어텐션 메커니즘과 피드포워드 신경망으로 구성된 블록이 여러 층으로 쌓여 있는 구조입니다.
- 셀프-어텐션 메커니즘: 각 단어(또는 토큰)가 시퀀스 내의 모든 다른 단어들과의 관계를 가중치를 두고 학습합니다.
- 장점: 병렬 처리가 가능하여 학습 속도가 빠릅니다. 장거리 종속성을 효과적으로 처리할 수 있습니다. 고도로 유연하고 다양한 시퀀스 길이를 처리할 수 있습니다.
- 단점: 메모리 사용량이 크고, 계산 복잡도가 높습니다. 시퀀스 길이가 길어질수록 처리 비용이 증가합니다.
- 적용 분야: 언어 모델링(예: BERT, GPT), 기계 번역, 텍스트 요약 등 다양한 자연어 처리 작업. 시계열 데이터 처리, 이미지 처리 등.
SASRec 기반의 추천 시스템
SASRec은 추천 시스템에 특화된 트랜스포머 기반 모델로, 사용자 행동 시퀀스를 처리하여 추천을 수행합니다. SASRec은 셀프-어텐션 메커니즘을 사용하여 사용자의 이전 행동을 기반으로 다음 행동을 예측합니다.
그림을 크게 두부분으로 나누어 설명해보면, 왼쪽에는 SASRec를 구성하는 핵심 요소들이 나열되어 있습니다. 새롭게 등장한 단어만 간단히 설명하면, Norm은 정규화를 의미합니다. 참고로, 정규 분포는 평균이 0, 표준편차가 1인 분포를 말합니다. Dropout은 과적합(학습 데이터에만 너무 특화되는 현상)을 방지하기 위해 일부 뉴런을 랜덤하게 제외시키는 기법을 말합니다.
오른쪽은 SASRec의 전체 구조가 나타나 있는데, 하단에 보면 신발과 벨트와 같은 상품 이미지가 입력으로 제공되고 있습니다. 그림 상으로 볼 때 구매자가 다음에 구매할 가능성이 높은 상품은 “양말”로 예측되어, 양말을 추천 아이템으로 제시하고 있는 모습입니다.
이처럼 SASRec은 추천 시스템에 특화된 트랜스포머 기반 모델로, 사용자 행동 시퀀스를 처리하여 추천을 수행합니다. SASRec은 셀프-어텐션 메커니즘을 사용하여 사용자의 이전 행동을 기반으로 다음 행동을 예측합니다.
- 구조: 트랜스포머 구조를 기반으로 하며, 주로 사용자의 시퀀스 데이터를 입력으로 받아 추천하는 데 초점을 맞추고 있습니다.
- 셀프-어텐션 메커니즘: 사용자의 행동 시퀀스 내에서 모든 아이템 간의 관계를 고려하여 중요도를 학습합니다.
- 장점: 사용자의 장기적인 행동 패턴을 효과적으로 학습할 수 있습니다. 셀프-어텐션 메커니즘을 통해 병렬 처리 가능하며, 다양한 시퀀스 길이를 처리할 수 있습니다. 시간 정보나 순서에 관계없이 시퀀스 내의 모든 아이템 간의 관계를 학습합니다.
- 단점: 긴 시퀀스에 대해 메모리 사용량과 계산 비용이 높을 수 있습니다. 추천 시스템에 특화된 하이퍼-파라미터(Hyper-parameter) 튜닝이 필요합니다.
- 적용 분야: 추천 시스템(예: 제품 추천, 콘텐츠 추천), 사용자 행동 예측
AI 기술 – 트랜스포머 기반의 발전
트랜스포머는 뛰어난 특성으로 인해, 트랜스포머가 등장한 이후의 많은 AI 기반 기술이 트랜스포머를 기반으로 더욱 발전하기 시작했습니다. 그중 특히 주목할만한 부분을 보면, 다음 그림처럼 인코더와 디코더의 각 영역을 기반으로 발전하기 시작했다는 점입니다.
트랜스포머 아키텍처 활용이 가속화되면서 인코더 부분을 중심으로 발전한 BERT와 디코더 부분을 중심으로 발전한 GPT를 간단히 비교 설명해보겠습니다. BERT는 입력 텍스트의 일부 단어를 [MASK] 토큰으로 바꾸고, 앞뒤(양방향)를 고려하여 BERT 모델이 MASK 단어를 예측하도록 학습합니다. 이에 반해 GPT는 왼쪽에서 오른쪽으로 순차적으로(단방향) 학습하여 다음 단어를 예측하도록 학습합니다. 이런 학습 방법의 차이로 인해 BERT는 상황 이해에 강점을 갖고, GPT는 예측 및 생성에 강점을 갖는 모델로 만들어집니다. 마치, 진단처럼 정확한 이해와 분석을 필요로 하는 업무에는 BERT가 더 적합하고, 처방처럼 자연스럽고 창의적인 생성을 필요로 하는 업무에는 GPT가 더 적합하다고 볼 수 있습니다.
AI 기반 기술 – BERT
앞에서 간단하게 언급한 것처럼 BERT는 텍스트의 양방향 컨텍스트를 학습하여 문맥 이해를 크게 개선한 모델입니다. 주로 언어 분석 및 이해 작업에 사용됩니다.
- 양방향 컨텍스트 학습: BERT는 텍스트를 양방향으로(좌우 방향 모두) 읽어 들여, 단어의 양쪽 문맥을 모두 사용하여 단어의 의미를 이해합니다. 이는 이전의 단방향 모델들과는 달리, 문장의 전체 문맥을 고려하여 단어를 더 정확하게 표현합니다.
- 트랜스포머 아키텍처: BERT는 트랜스포머의 인코더(Encoder) 부분만을 사용합니다. 여러 층의 셀프-어텐션 메커니즘을 사용하여 입력 텍스트의 각 단어 간의 관계를 학습합니다.
- 사전 학습(pre-training)과 파인 튜닝(fine-tuning): BERT는 두 가지 주요 사전 학습 목표로 사전 학습됩니다: 마스크기반 언어 모델링(Masked Language Modeling, MLM)과 다음 문장 예측(Next Sentence Prediction, NSP) 사전 학습 후, 특정 작업(예: 문장 분류, 질문 응답)으로 파인 튜닝할 수 있습니다.
- 적용 분야: 자연어 이해와 생성 작업에서 뛰어난 성능을 발휘합니다. 예: 질문 응답, 문장 분류, 감정 분석, 번역 등 다양한 NLP 작업
BERT4Rec 기반의 추천 시스템
BERT4Rec은 BERT 모델을 기반으로 한 추천 시스템 모델로, 사용자의 행동 시퀀스를 학습하여 다음에 소비할 아이템을 예측하는 데 사용됩니다. BERT4Rec은 BERT의 구조를 추천 시스템의 요구에 맞게 수정한 것입니다.
- 시퀀스 데이터 학습: BERT4Rec은 사용자의 행동 시퀀스(예: 클릭, 구매)를 입력으로 받아 다음에 소비할 가능성이 높은 아이템을 예측합니다. 텍스트 대신 아이템 시퀀스를 모델링하며, 각 아이템의 순서를 고려하여 사용자 행동을 예측합니다.
- 양방향 컨텍스트 학습: BERT와 마찬가지로, BERT4Rec도 양방향으로 시퀀스를 학습하여 아이템 간의 관계를 파악합니다. 이는 사용자 행동의 앞뒤 문맥을 모두 고려하여 더 정확한 추천을 가능하게 합니다.
- 마스크기반 언어 모델링(Masked Language Modeling) 방식: BERT4Rec은 사용자 시퀀스에서 일부 아이템을 마스킹하고, 이 마스킹된 아이템을 예측하는 방식으로 학습합니다. 이를 통해 모델은 시퀀스의 모든 위치에 대해 균형 잡힌 컨텍스트를 학습합니다.
- 트랜스포머 아키텍처: BERT4Rec도 BERT처럼 트랜스포머의 인코더 아키텍처를 사용하지만, 이는 사용자 행동 시퀀스를 처리하는 데 최적화되어 있습니다. 다층의 셀프-어텐션 메커니즘을 사용하여 사용자 시퀀스의 복잡한 패턴을 학습합니다.
- 적용 분야: 주로 추천 시스템에서 사용되며, 사용자 행동 데이터를 분석하여 다음에 추천할 아이템을 예측합니다. 예: 전자 상거래에서 다음에 구매할 제품, 스트리밍 서비스에서 다음에 볼 영화 등
AI 기반 기술 – 생성형(Generative) AI
GPT는 텍스트 생성 능력이 뛰어난 모델로, 문장을 이어서 생성하는 데 특히 강력한 성능을 발휘합니다. 주로 텍스트 생성 및 자연어 처리 작업에 사용됩니다.
- 단방향 컨텍스트 학습: GPT는 텍스트를 한 방향(좌측에서 우측으로)으로 읽어 들여, 이전 단어들의 문맥을 사용하여 다음 단어를 예측합니다. 이는 주로 문장이나 텍스트의 흐름을 자연스럽게 이어나가는데 유리합니다.
- 트랜스포머 아키텍처: GPT는 트랜스포머의 디코더(Decoder) 부분을 기반으로 합니다. 여러 층의 셀프-어텐션 메커니즘을 사용하여 입력 텍스트의 각 단어 간의 관계를 학습하고, 이를 바탕으로 다음 단어를 생성합니다.
- 사전 학습(pre-training)과 파인 튜닝(fine-tuning): GPT는 대규모 텍스트 말뭉치(또는 코퍼스: Corpus)를 사용하여 사전 학습합니다. 모델이 텍스트의 패턴과 구조를 이해한 후, 특정 작업(예: 대화 생성, 요약 작성)으로 파인 튜닝할 수 있습니다.
- 적용 분야: 텍스트 생성 작업에서 뛰어난 성능을 발휘합니다. 예: 이야기 생성, 대화 모델, 텍스트 요약, 창의적 글쓰기 등 다양한 NLP 작업”
Generative AI 기반의 추천 시스템
BERT 모델도 다양한 실제 모델들이 존재하는 것처럼, 생성형 AI인 GPT 모델도 다양한 실제 모델이 존재합니다. 본 블로그에서는 멀티모달 기능 및 성능이 많이 개선된 GPT-4o를 기준으로 설명을 하겠습니다.
GPT-4o 기반의 추천 시스템은 GPT-4o 모델을 활용하여 사용자의 행동 시퀀스를 학습하고, 다음에 추천할 아이템을 예측하는 모델입니다. 이 시스템은 GPT-4o의 향상된 자연어 처리 및 생성 능력을 추천 시스템에 적용한 것입니다.
- 시퀀스 데이터 학습: GPT-4o 기반 추천 시스템은 사용자의 행동 시퀀스(예: 클릭, 구매)를 입력으로 받아 다음에 소비할 가능성이 높은 아이템을 예측합니다. 각 아이템의 순서를 고려하여 사용자 행동의 패턴을 모델링합니다.
- 고급 컨텍스트 학습: GPT-4o는 향상된 컨텍스트 이해 능력을 바탕으로, 더 깊이 있고 정교한 방식으로 사용자 시퀀스를 학습합니다. 이 모델은 단방향 컨텍스트 학습을 수행하지만, 이전의 모든 데이터를 종합하여 더 정확한 예측을 할 수 있습니다.
- 오토리그레시브(Autoregressive) 방식: GPT-4o 기반 추천 시스템은 오토리그레시브 방식을 사용하여, 시퀀스의 각 위치에서 다음 아이템을 순차적으로 예측합니다. 이를 통해 모델은 시퀀스의 미래 위치를 점진적으로 예측할 수 있습니다.
- 트랜스포머 아키텍처: GPT-4o 기반 추천 시스템은 트랜스포머의 디코더 아키텍처를 사용합니다. 다층의 셀프-어텐션 메커니즘을 사용하여 사용자 시퀀스의 각 아이템 간의 관계를 학습하고, 이를 바탕으로 다음 아이템을 생성합니다. 특히, GPT-4o는 더 많은 파라미터와 층을 통해 더 복잡한 패턴을 학습할 수 있습니다.
- 적용 분야: 주로 추천 시스템에서 사용되며, 사용자 행동 데이터를 분석하여 다음에 추천할 아이템을 예측합니다. 예: 전자 상거래에서 다음에 구매할 제품, 스트리밍 서비스에서 다음에 볼 영화, 음악 추천 등. GPT-4o의 강력한 언어 이해 능력 덕분에, 추천의 정확도와 사용자 만족도가 높아집니다.
다만, GPT-4o가 모든 멀티모달 기능을 완벽하게 제공하는 것은 아닙니다. 예를 들어, 이미지 생성의 경우 GPT-4o가 만들어주는 이미지도 괜찮지만, 이미지 생성은 Dall-E 3 또는 스테이블 디퓨전(Stable Diffusion)과 같은 전문 이미지 생성 솔루션을 사용하는 것이 좋습니다.
또한, Open AI는 아직 GPT-4o 모델에 대해 파인 튜닝을 권고하지는 않습니다. 즉, GPT-4o를 개인적, 또는 조직 전략에 맞게 파인 튜닝해서 개별적으로 사용할 수는 있지만, Open AI의 파인 튜닝 권고 모델은 아직 gpt-3.5-turbo 버전입니다.(2024년 6월 28일 기준) 물론, 파인 튜닝은 API 기반으로 진행할 수 있으며, 이에 대한 가이드도 Open AI에서 찾아볼 수 있습니다.
블로그를 마치며…
“AI를 어디에 활용할 수 있을까?”라는 질문보다, “AI를 적용하지 않을 분야에는 무엇이 있을까?”에 대한 답이 더 간단할지도 모르겠습니다. 이처럼, AI가 다양한 산업 영역에 확산되면서 AI와 관련한 이야기는 정말 많습니다. 예를 들면, “AI 역사와 개념의 발전”에서부터, 조직의 차별적 서비스 개발을 위한 “전통적 RDB, 파일 시스템, Vector DB, Graph DB 등을 활용한 RAG(Retrieval Augmented Generation) 기반 지식 서비스 구축”, AI 관련 법/제도/표준/윤리 등.
이후에는 조금은 색다른 형태로 Agile, AI, Architecture를 주제로 이야기를 써볼까 합니다.