홈
topics
임베딩
게시일: 2023년 12월 12일
기고자: Joel Barnard
임베딩은 텍스트, 이미지 및 오디오와 같은 객체를 연속 벡터 공간의 점으로 표현하는 수단입니다. 공간에서 이러한 점의 위치는 머신러닝(ML) 알고리즘에 의미론적인 의미가 있습니다.
임베딩은 텍스트 및 이미지 검색 엔진, 추천 시스템, 챗봇, 사기 탐지 시스템 및 기타 여러 애플리케이션을 구축하는 ML 엔지니어에게 매우 중요한 툴입니다. 기본적으로 임베딩을 사용하면 머신러닝 모델이 유사한 객체를 찾을 수 있습니다.
다른 ML 기술과 달리 임베딩은 정의하기 위해 인간의 전문 지식이 명시적으로 필요하지 않으며 신경망과 같은 다양한 알고리즘을 사용하여 데이터에서 학습합니다. 이를 통해 모델은 인간이 식별할 수 없는 데이터의 복잡한 패턴과 관계를 학습할 수 있습니다.
예를 들어 ChatGPT는 OpenAI의 임베딩 구현을 통해 각 단어를 개별적으로 분석하는 대신 서로 다른 단어와 범주 간의 관계를 쉽게 이해할 수 있습니다. 임베딩을 사용하면 OpenAI의 GPT 모델은 사용자 프롬프트와 질문에 보다 일관되고 맥락에 맞는 응답을 생성할 수 있습니다.
AI 빌더가 AI 모델을 학습, 검증, 조정 및 배포할 수 있는 차세대 엔터프라이즈 스튜디오입니다.
대부분의 머신러닝 알고리즘은 저차원의 숫자 데이터만 입력으로 받을 수 있습니다. 따라서 데이터를 숫자 형식으로 변환해야 합니다. 여기에는 텍스트 데이터에 대한 '단어 가방' 표현을 만들거나 이미지를 픽셀 값으로 변환하거나 그래프 데이터를 숫자 행렬로 변환하는 등의 작업이 포함될 수 있습니다.
임베딩 모델에 들어오는 객체는 벡터로 표현되는 임베딩으로 출력됩니다. 벡터는 숫자의 배열이며(예 1489, 22... 3, 777) 여기서 각 숫자는 차원을 따라 객체가 있는 위치를 나타냅니다. 입력 데이터의 복잡성에 따라 차원 수는 수천 개 이상에 달할 수 있습니다. 임베딩이 해당 n차원 공간의 다른 임베딩에 가까울수록 더 유사합니다. 분포 유사성은 한 물체에서 다른 물체까지의 벡터 점의 길이에 의해 결정됩니다(유클리드, 코사인 또는 기타로 측정).
2013년에 Google에서 개발한 Word2Vec(워드 투 벡터) 모델은 2계층 신경망을 사용하여 단어 임베딩을 효율적으로 생성하는 방법입니다. 단어를 입력으로 받아 n차원 좌표(임베딩 벡터)를 내보냅니다. 따라서 이러한 단어 벡터를 3차원 공간에 플롯하면 동의어가 클러스터됩니다.
다음은 '아빠'와 '엄마'라는 두 단어가 벡터로 표현되는 방식입니다.
'아빠' = [0.1548, 0.4848, ..., 1.864]
'엄마' = [0.8785, 0.8974, ..., 2.794]
두 단어 사이에는 약간의 유사성이 있지만 벡터 공간에서 '아버지'가 '아빠'에 훨씬 더 가깝게 위치하여 점곱(두 벡터의 상대적 방향과 백터가 가리키는 방향에 얼마나 가깝게 정렬되는지를 측정하는 값)이 더 클 것으로 예상할 수 있습니다.
좀 더 복잡한 예로 사용자와 항목(예: 영화, 제품, 기사)을 연속 벡터 공간에서 고차원 벡터로 표현하여 작동하는 추천 임베딩이 있습니다. 이러한 임베딩은 사용자의 선호도와 항목 특성을 반영하는 잠재 기능을 포착합니다. 임베딩의 점곱이 해당 항목에 대한 사용자의 선호도와 연관되는 방식으로 각 사용자 및 항목에 대한 표현을 학습하는 것이 아이디어의 핵심입니다.
각 사용자 및 항목은 임베딩 벡터와 연결됩니다. 이러한 벡터는 일반적으로 학습 과정에서 추천 모델을 통해 학습됩니다. 사용자 임베딩과 항목 임베딩은 행렬로 구성됩니다. 사용자 행렬의 행은 사용자를 나타내고 항목 행렬의 행은 항목을 나타냅니다.
사용자-항목 쌍에 대한 추천 점수는 사용자의 임베딩 벡터와 아이템의 임베딩 벡터의 점곱을 구하여 계산할 수 있습니다. 점곱이 높을수록 사용자가 해당 항목에 관심을 가질 가능성이 높아집니다.
추천 점수 = 사용자 임베딩 ⋅ 항목 임베딩
임베딩 행렬은 사용자-항목의 과거 상호작용을 사용한 학습 과정을 통해 학습됩니다. 모델은 예측 점수와 실제 사용자 선호도(예: 평가, 클릭, 구매) 간의 차이를 최소화하는 것을 목표로 합니다.
모델이 학습되면 사용자를 위한 상위 N개의 추천을 생성하는 데 사용할 수 있습니다. 사용자에 대한 예측 점수가 가장 높은 항목을 사용하는 것이 좋습니다.
임베딩은 고차원 및 범주형 데이터를 연속 벡터 표현으로 변환하고 의미 있는 패턴, 관계 및 의미론을 포착하는 기능으로 인해 다양한 도메인 및 애플리케이션에서 사용됩니다. 다음은 데이터 과학에서 임베딩이 사용되는 몇 가지 이유입니다.
임베딩은 객체(단어, 이미지, 그래프의 노드 등)를 연속 공간의 벡터에 매핑함으로써 의미적 관계와 유사성을 포착하여 모델이 더 잘 이해하고 일반화할 수 있게 해줍니다.
텍스트, 이미지, 그래프와 같은 고차원 데이터를 저차원 표현으로 변환할 수 있어 계산 효율성이 높고 작업하기가 더 쉽습니다.
데이터에서 의미 있는 표현을 학습함으로써 모델은 보이지 않는 예시도 일반화할 수 있습니다. 따라서 임베딩은 제한된 레이블이 있는 데이터를 사용하는 작업에 중요합니다.
t-SNE와 같은 기술을 적용하면 고차원 임베딩을 2차원 또는 3차원으로 시각화하여 데이터의 관계와 클러스터에 대한 인사이트를 제공할 수 있습니다.
임베딩 레이어는 일반적으로 신경망 아키텍처에서 범주형 입력을 연속 벡터에 매핑하여 역전파 및 최적화를 촉진하는 데 사용됩니다.
임베딩은 다양한 데이터 유형에 적용할 수 있는 다용도 표현입니다. 다음은 임베딩할 수 있는 가장 일반적인 객체 중 일부입니다.
단어
단어 임베딩은 주어진 언어 말뭉치에서 단어의 사용 패턴을 기반으로 단어의 의미 관계와 문맥적 의미를 포착합니다. 각 단어는 고정된 크기의 실수로 구성된 밀집 벡터로 표시됩니다. 이는 0 항목이 많은 원핫 인코딩과 같은 희소 벡터와 반대되는 개념입니다.
단어 임베딩의 사용은 보다 의미 있고 효율적인 단어 표현을 제공함으로써 자연어 처리 (NLP) 모델의 성능을 크게 개선했습니다. 이러한 임베딩을 통해 기계는 의미론적 뉘앙스와 맥락 관계를 포착하는 방식으로 언어를 이해하고 처리할 수 있으므로 감정 분석, 기계 번역 및 정보 검색을 비롯한 다양한 애플리케이션에 유용하게 사용할 수 있습니다.
널리 사용되는 단어 임베딩 모델로는 Word2Vec, GloVe(단어 표현을 위한 글로벌 벡터), FastText 및 BERT(트랜스포머의 양방향 인코더 표현) 및 GPT(생성형 사전 학습 트랜스포머)와 같은 트랜스포머 기반 모델에서 파생된 임베딩이 있습니다.
텍스트
텍스트 임베딩은 단어 임베딩을 확장하여 전체 문장, 단락 또는 문서를 연속 벡터 공간으로 나타냅니다. 텍스트 임베딩은 감정 분석, 텍스트 분류, 기계 번역, 질문 답변 및 정보 검색과 같은 다양한 NLP 애플리케이션에서 중요한 역할을 합니다.
Doc2Vec, USE(범용 문장 인코더), BERT, ELMO(언어 모델의 임베딩) 등의 모델은 Wikipedia, Google 뉴스 등 사전에 학습된 방대한 양의 임베딩 말뭉치를 기반으로 학습되었습니다.
이미지
이미지 임베딩은 이미지 콘텐츠에 대한 시각적 특징과 의미 정보를 캡처하도록 설계되었습니다. 이미지 임베딩은 다양한 컴퓨팅 비전 작업에 특히 유용하며 이미지 유사성 모델링, 이미지 분류, 객체 감지 및 기타 시각 인식 작업을 가능하게 합니다.
이미지 임베딩에 널리 사용되는 컨볼루션 신경망(CNN)에는 VGG(Visual Geometry Group), ResNet(잔차 네트워크), Inception(GoogLeNet), EfficientNet과 같은 모델이 있습니다. 이러한 모델은 대규모 이미지 데이터 세트로 사전 학습되었으며 강력한 특징 추출기로 사용할 수 있습니다.
오디오
이미지 및 텍스트 임베딩과 마찬가지로 오디오 임베딩도 딥러닝 아키텍처, 특히 순환 신경망(RNN), 컨볼루션 신경망(CNN) 또는 이 두 가지를 결합한 하이브리드 모델을 사용하여 생성되는 경우가 많습니다. 이러한 임베딩은 오디오 데이터의 관련 특징과 특성을 캡처하여 효과적인 분석, 처리 및 유사성 메트릭을 가능하게 합니다. 오디오 임베딩은 특히 음성 인식, 오디오 분류, 음악 분석과 같은 애플리케이션에 유용합니다.
그래프
그래프 임베딩은 복잡한 네트워크에서 노드 분류, 링크 예측 및 커뮤니티 감지를 포함한 다양한 작업에 필수적입니다. 이러한 임베딩은 소셜 네트워크 분석, 추천 시스템, 생물학적 네트워크 분석, 사기 탐지 및 데이터를 그래프로 표현할 수 있는 다양한 도메인에서 활용되고 있습니다.
임베딩은 '임베딩 학습'이라는 프로세스를 통해 생성됩니다. 사용되는 특정 방법은 임베딩되는 데이터 유형에 따라 다르지만 임베딩은 다음과 같은 일반적인 단계에 따라 생성됩니다.
모든 임베딩 사례의 목표는 의미 있는 관계가 보존되는 연속 벡터 공간에서 데이터를 표현하는 것입니다. 학습 프로세스에는 선택한 목적 함수를 기반으로 예측 값과 실제 값 간의 차이를 최소화하기 위해 모델의 매개변수를 조정하는 작업이 포함됩니다. 학습이 완료되면 임베딩을 다양한 다운스트림 작업에 사용할 수 있습니다.
임베딩은 다양한 도메인의 수많은 실제 애플리케이션에서 광범위하게 사용됩니다. 예를 들면 다음과 같습니다.
이러한 사례를 통해 다양한 애플리케이션에 걸친 임베딩의 활용성을 알 수 있으며 다양한 유형의 데이터에서 의미 있는 표현과 관계를 포착하는 임베딩의 능력을 볼 수 있습니다.
IBM® Watson Natural Language Understanding은 딥러닝을 사용하여 비정형 텍스트 데이터에서 의미와 메타데이터를 추출합니다. 텍스트 분석을 사용하여 카테고리, 분류, 엔티티, 키워드, 정서, 감정, 관계 및 구문을 추출하고 데이터를 파악합니다.
IBM의 차세대 AI 및 데이터 플랫폼으로 AI의 역량을 강화하세요. IBM watsonx는 비즈니스용 툴, 애플리케이션 및 솔루션 포트폴리오입니다. AI 도입에 따른 비용과 장애물을 줄이면서 결과를 최적화하고 AI의 책임 있는 사용을 최적화하도록 설계되었습니다.
비즈니스 전반에 AI를 구현하여 신속하고 윤리적인 이점을 제공합니다. IBM의 광범위한 비즈니스 등급 AI 제품 및 분석 솔루션 포트폴리오는 AI 도입 장벽을 낮추고 적절한 데이터 기반을 구축하는 동시에 결과와 윤리적인 사용을 최적화하도록 설계되었습니다.
ML이 데이터와 알고리즘을 활용하는 방법, 사용 사례 및 관련 우려 사항에 대한 인사이트를 확보하여 책임감 있고 혁신적인 기술 사용을 강화할 수 있습니다.
다양한 유형의 대규모 언어 모델(LLM)과 생성형 AI를 위한 오픈 소스 LLM의 이점, 위험 및 비즈니스 사용 사례에 대해 자세히 알아보세요.
Python은 임베딩에 일반적으로 사용되는 프로그래밍 언어입니다. Python은 복잡하지 않은 프로그래밍 언어로 이 가이드에서는 Python을 시작하기 위해 알아야 할 몇 가지 기본 개념을 소개합니다.