임베딩이란 무엇인가요?
IBM watsonx.ai 살펴보기
컴퓨터 신경망 개념

게시일: 2023년 12월 12일
기고자: Joel Barnard

임베딩이란 무엇인가요?

임베딩은 텍스트, 이미지 및 오디오와 같은 객체를 연속 벡터 공간의 점으로 표현하는 수단입니다. 공간에서 이러한 점의 위치는 머신러닝(ML) 알고리즘에 의미론적인 의미가 있습니다.

임베딩은 텍스트 및 이미지 검색 엔진, 추천 시스템, 챗봇, 사기 탐지 시스템 및 기타 여러 애플리케이션을 구축하는 ML 엔지니어에게 매우 중요한 툴입니다. 기본적으로 임베딩을 사용하면 머신러닝 모델이 유사한 객체를 찾을 수 있습니다.

다른 ML 기술과 달리 임베딩은 정의하기 위해 인간의 전문 지식이 명시적으로 필요하지 않으며 신경망과 같은 다양한 알고리즘을 사용하여 데이터에서 학습합니다. 이를 통해 모델은 인간이 식별할 수 없는 데이터의 복잡한 패턴과 관계를 학습할 수 있습니다.

예를 들어 ChatGPT는 OpenAI의 임베딩 구현을 통해 각 단어를 개별적으로 분석하는 대신 서로 다른 단어와 범주 간의 관계를 쉽게 이해할 수 있습니다. 임베딩을 사용하면 OpenAI의 GPT 모델은 사용자 프롬프트와 질문에 보다 일관되고 맥락에 맞는 응답을 생성할 수 있습니다.

IBM watsonx.ai 둘러보기

AI 빌더가 AI 모델을 학습, 검증, 조정 및 배포할 수 있는 차세대 엔터프라이즈 스튜디오입니다.

관련 내용

IBM 뉴스레터 구독하기

임베딩 작동 방식

대부분의 머신러닝 알고리즘은 저차원의 숫자 데이터만 입력으로 받을 수 있습니다. 따라서 데이터를 숫자 형식으로 변환해야 합니다. 여기에는 텍스트 데이터에 대한 '단어 가방' 표현을 만들거나 이미지를 픽셀 값으로 변환하거나 그래프 데이터를 숫자 행렬로 변환하는 등의 작업이 포함될 수 있습니다.

임베딩 모델에 들어오는 객체는 벡터로 표현되는 임베딩으로 출력됩니다. 벡터는 숫자의 배열이며(예 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) 또는 이 두 가지를 결합한 하이브리드 모델을 사용하여 생성되는 경우가 많습니다. 이러한 임베딩은 오디오 데이터의 관련 특징과 특성을 캡처하여 효과적인 분석, 처리 및 유사성 메트릭을 가능하게 합니다. 오디오 임베딩은 특히 음성 인식, 오디오 분류, 음악 분석과 같은 애플리케이션에 유용합니다.

그래프

그래프 임베딩은 복잡한 네트워크에서 노드 분류, 링크 예측 및 커뮤니티 감지를 포함한 다양한 작업에 필수적입니다. 이러한 임베딩은 소셜 네트워크 분석, 추천 시스템, 생물학적 네트워크 분석, 사기 탐지 및 데이터를 그래프로 표현할 수 있는 다양한 도메인에서 활용되고 있습니다.

임베딩 생성 방법

임베딩은 '임베딩 학습'이라는 프로세스를 통해 생성됩니다. 사용되는 특정 방법은 임베딩되는 데이터 유형에 따라 다르지만 임베딩은 다음과 같은 일반적인 단계에 따라 생성됩니다.

  1. 임베딩 모델 선택 또는 학습: 데이터와 작업에 적합한 기존 임베딩 모델을 선택하거나 필요한 경우 새 모델을 학습시킵니다. 텍스트의 경우 Word2Vec, GloVe 또는 BERT를 선택할 수 있습니다. 이미지의 경우 VGG 또는 ResNet과 같은 사전 학습된 CNN을 사용할 수 있습니다.

  2. 데이터 준비: 선택한 임베딩 모델과 호환되는 방식으로 데이터의 형식을 지정합니다. 텍스트의 경우 토큰화 및 전처리가 필요할 수 있습니다. 이미지의 경우 이미지의 크기를 조정하고 정규화해야 할 수 있습니다.

  3. 임베딩 모델 로드 또는 학습: 사전 학습된 모델을 사용하는 경우 가중치와 아키텍처를 로드합니다. 새 모델을 학습시키는 경우 준비된 학습 데이터를 알고리즘에 제공합니다.

  4. 임베딩 생성: 각 데이터 포인트에 대해 학습되었거나 또는 로드된 모델을 사용하여 임베딩을 생성합니다. 예를 들어 단어 임베딩 모델을 사용하는 경우 단어를 입력하여 해당 벡터를 가져옵니다.

  5. 애플리케이션에 임베딩 통합: 생성된 임베딩을 머신러닝 모델의 기능으로 사용하거나 특정 작업에 따라 유사성 검색, 추천, 클러스터링 등에 사용할 수 있습니다.

모든 임베딩 사례의 목표는 의미 있는 관계가 보존되는 연속 벡터 공간에서 데이터를 표현하는 것입니다. 학습 프로세스에는 선택한 목적 함수를 기반으로 예측 값과 실제 값 간의 차이를 최소화하기 위해 모델의 매개변수를 조정하는 작업이 포함됩니다. 학습이 완료되면 임베딩을 다양한 다운스트림 작업에 사용할 수 있습니다.

임베딩의 실제 사례

임베딩은 다양한 도메인의 수많은 실제 애플리케이션에서 광범위하게 사용됩니다. 예를 들면 다음과 같습니다.

자연어 처리(NLP)

 

  • 감성 분석의 단어 임베딩: Word2Vec 또는 GloVe와 같은 단어 임베딩은 연속 벡터 공간에서 단어를 표현하는 데 사용됩니다. 감정 분석 모델은 이러한 임베딩을 활용하여 텍스트의 감성을 이해하고 분류할 수 있습니다.

  • 질문 답변용 BERT: BERT 임베딩은 질문 답변 시스템에 사용됩니다. 모델은 질문과 문서의 맥락을 이해하여 관련 정보를 추출할 수 있습니다.

  • Doc2Vec과 텍스트 유사성: Doc2Vec 임베딩은 유사한 문서 찾기와 같은 작업에 적용됩니다. 문서 임베딩은 문서 간의 의미적 유사성을 측정하기 위해 비교됩니다.

 

컴퓨팅 비전

 

  • CNN을 사용한 이미지 분류: 이미지 분류 작업에는 VGG 또는 ResNet과 같은 CNN이 사용됩니다. 최종 레이어 또는 중간 레이어의 특징은 이미지 임베딩 역할을 할 수 있습니다.

  • CLIP을 사용한 이미지 검색: CLIP 모델은 이미지와 텍스트에 대한 공동 임베딩을 학습합니다. 이를 통해 자연어 쿼리를 기반으로 한 이미지 검색과 같은 애플리케이션을 사용할 수 있습니다.

  • FaceNet을 사용한 얼굴 인식: FaceNet은 얼굴 인식에 사용할 수 있는 얼굴 임베딩을 생성합니다. 이러한 임베딩은 종종 서로 다른 얼굴 간의 유사성을 측정하는 데 사용됩니다.

 

추천 시스템

 

  • 임베딩을 사용한 협업 필터링: 임베딩은 협업 필터링 모델에서 사용자와 항목을 표현하는 데 사용됩니다. 행렬 인수분해 방법은 이러한 임베딩을 활용하여 개인화된 추천을 제공합니다.

  • 단어 임베딩을 통한 제품 추천: 이커머스에서는 단어 임베딩을 사용하여 제품 설명이나 리뷰를 임베딩할 수 있습니다. 임베딩의 의미론적 유사성을 기반으로 유사한 제품을 추천할 수 있습니다.

 

교차 모달 애플리케이션

 

  • MUSE를 사용한 멀티 모달 번역: MUSE(다국어 범용 문장 인코더)는 교차 언어 및 교차 모달 이해를 가능하게 합니다. 언어 간 텍스트 번역이나 이미지를 해당 설명과 연결하는 등의 작업에 사용할 수 있습니다.

  • 공동 임베딩을 사용한 교차 모달 검색: 공동 임베딩은 이미지와 텍스트 등 다양한 양식에 대해 학습합니다. 이를 통해 한 양식의 쿼리가 다른 양식의 결과를 검색하는 교차 모달 검색이 가능합니다.

 

이상 활동 감지

 

  • 그래프 임베딩을 통한 네트워크 이상 징후 탐지: 네트워크 노드의 임베딩을 사용하여 이상 징후를 탐지할 수 있습니다. 임베딩 공간의 변경은 비정상적인 동작을 나타낼 수 있습니다.

  • 트랜잭션 임베딩을 통한 사기 탐지: 트랜잭션 데이터 임베딩은 사기 활동과 관련된 패턴을 식별하는 데 도움이 될 수 있습니다. 비정상적인 임베딩은 잠재적인 사기 트랜잭션을 나타낼 수 있습니다.

 

이러한 사례를 통해 다양한 애플리케이션에 걸친 임베딩의 활용성을 알 수 있으며 다양한 유형의 데이터에서 의미 있는 표현과 관계를 포착하는 임베딩의 능력을 볼 수 있습니다.

 

관련 솔루션
IBM Natural Language Understanding

IBM® Watson Natural Language Understanding은 딥러닝을 사용하여 비정형 텍스트 데이터에서 의미와 메타데이터를 추출합니다. 텍스트 분석을 사용하여 카테고리, 분류, 엔티티, 키워드, 정서, 감정, 관계 및 구문을 추출하고 데이터를 파악합니다.

NLU 살펴보기

IBM watsonx

IBM의 차세대 AI 및 데이터 플랫폼으로 AI의 역량을 강화하세요. IBM watsonx는 비즈니스용 툴, 애플리케이션 및 솔루션 포트폴리오입니다. AI 도입에 따른 비용과 장애물을 줄이면서 결과를 최적화하고 AI의 책임 있는 사용을 최적화하도록 설계되었습니다.

watsonx 살펴보기

IBM AI 솔루션

비즈니스 전반에 AI를 구현하여 신속하고 윤리적인 이점을 제공합니다. IBM의 광범위한 비즈니스 등급 AI 제품 및 분석 솔루션 포트폴리오는 AI 도입 장벽을 낮추고 적절한 데이터 기반을 구축하는 동시에 결과와 윤리적인 사용을 최적화하도록 설계되었습니다.

AI 솔루션 살펴보기
리소스 머신 러닝이란 무엇인가요?

ML이 데이터와 알고리즘을 활용하는 방법, 사용 사례 및 관련 우려 사항에 대한 인사이트를 확보하여 책임감 있고 혁신적인 기술 사용을 강화할 수 있습니다.

오픈 소스 대규모 언어 모델: 이점, 위험 및 유형

다양한 유형의 대규모 언어 모델(LLM)과 생성형 AI를 위한 오픈 소스 LLM의 이점, 위험 및 비즈니스 사용 사례에 대해 자세히 알아보세요.

Python 초보자 가이드

Python은 임베딩에 일반적으로 사용되는 프로그래밍 언어입니다. Python은 복잡하지 않은 프로그래밍 언어로 이 가이드에서는 Python을 시작하기 위해 알아야 할 몇 가지 기본 개념을 소개합니다.

다음 단계 안내

watsonx.ai를 통해 생성형 AI 도입을 가속화하세요. watsonx.ai는 AI 빌더가 AI 모델을 학습, 검증, 조정 및 배포할 수 있는 차세대 엔터프라이즈 스튜디오입니다.

watsonx.ai 데모