자연어 처리에서 동시 발생 행렬(Word Co-occurrence Matrix)은 "단어의 의미는 주변 단어에 의해 결정된다"는 분포 가설(Distributional Hypothesis)을 기반으로 합니다. 영국의 언어학자 J.R. Firth(1957)의 유명한 격언인 "You shall know a word by the company it keeps (단어는 그 어울려 쓰이는 단어를 보면 안다)"를 정량적 수학 행렬로 구체화한 것입니다.
🎯 개념 (Concept) : 문맥 윈도우 (Context Window)
특정 단어(중심 단어, Target Word)의 주변 일정 범위(문맥 윈도우, Context Window) 내에 다른 단어(Context Word)가 몇 번이나 함께 등장했는지 계수(Count)하여 행렬로 만든 것입니다.
예를 들어 윈도우 크기가 1이면 중심 단어의 바로 앞 1단어와 바로 뒤 1단어를 문맥으로 간주하며, 전체 말뭉치(Corpus)를 슬라이딩하면서 공기 빈도를 누적합니다.
📐 구조 (Structure) : 어휘 사전과 (i, j) 칸
행(Row)과 열(Column)이 각각 전체 말뭉치의 어휘(Vocabulary) 속 고유한 단어들로 구성됩니다.
행렬의 (i, j) 칸에는 단어 i와 단어 j가 정해진 문맥 윈도우 범위 내에 동시에 나타난 횟수(Co-occurrence Count)가 기록됩니다. 단어 순서를 구분하지 않는 경우 행렬은 주대각선을 기준으로 대칭(Symmetric) 행렬이 됩니다.
🚀 목적 (Objective) : 단어 벡터화 & 의미 유사도
단어를 벡터(Vector)로 표현하기 위한 통계적 기초 자료로 사용됩니다. 행렬의 각 행(또는 열) 벡터 자체가 해당 단어의 '문맥 프로필 벡터'가 됩니다.
자주 같이 등장하는 단어들은 비슷한 문맥을 공유하므로 비슷한 의미를 가질 것이라는 가정하에, 두 단어 벡터 간의 코사인 유사도(Cosine Similarity)를 계산하여 단어 간의 의미적 유사도와 유의어 관계를 파악합니다.
⚠️ 한계점 (Limitations) : 고차원 희소성과 불용어 편향
1) 차원의 저주 & 희소성(Sparsity) : 단어장 크기(|V|)가 커질수록 행렬의 차원이 |V| × |V|로 기하급수적으로 커지고, 대부분의 원소가 0으로 채워져 메모리와 연산 효율이 극심하게 저하됩니다.
2) 불용어(Stopwords) 편향 : "the", "is", "a" 같은 고빈도 기능어들이 거의 모든 단어와 높은 빈도로 함께 등장하여 실질적인 단어 간 의미적 연관성을 왜곡합니다.
[ 실제 말뭉치 구축 예시 ]
말뭉치 예문 :
"You say goodbye and I say hello." (어휘 집합 : ["you", "say", "goodbye", "and", "i", "hello"], 윈도우 크기 = 1)
| 단어 |
you |
say |
goodbye |
and |
i |
hello |
| 0 |
1 |
0 |
0 |
0 |
0 |
| 1 |
0 |
1 |
0 |
1 |
1 |
| 0 |
1 |
0 |
1 |
0 |
0 |
| 0 |
0 |
1 |
0 |
1 |
0 |
| 0 |
1 |
0 |
1 |
0 |
0 |
| 0 |
1 |
0 |
0 |
0 |
0 |
* 'say' 단어의 행 벡터는 [1, 0, 1, 0, 1, 1]로 나타나며, 주변에 'you', 'goodbye', 'i', 'hello'가 각각 1회씩 동시 출현했음을 명확히 보여줍니다.
💡 한계점 극복을 위한 필수 보완 기법 : PPMI & 차원 축소 (SVD / PCA)
1. PPMI (Positive Pointwise Mutual Information, 양의 점별 상호정보량)
단순 빈도 대신, 두 단어가 '독립적으로 발생할 확률' 대비 '함께 발생할 확률'의 비를 계산하여 우연한 등장을 걸러냅니다.
2. 차원 축소 기법 (SVD / PCA & GloVe)
수만 차원의 거대하고 희소한 PPMI 행렬을 특이값 분해(SVD: Singular Value Decomposition)나 주성분 분석(PCA)을 통해 100~300차원의 저차원 밀집 벡터(Dense Vector)로 압축합니다.
이미지 처리 및 컴퓨터 비전에서는 주로 GLCM(Gray-Level Co-occurrence Matrix, 회선 동시 발생 행렬 / 회색조 동시 발생 행렬)이라는 정밀한 공간 통계 행렬로 사용됩니다. 1973년 Robert M. Haralick 교수가 제안한 이 기법은 이미지 내 픽셀 밝기 간의 2차원 공간적 배치 관계를 수치화합니다.
🔍 개념 (Concept) : 특정 밝기 쌍의 거리와 방향 (Offset)
이미지 내에서 특정 밝기(Gray-level)를 가진 픽셀이 다른 특정 밝기의 픽셀과 특정 거리(d)와 방향(각도 θ, Offset)에 얼마나 자주 위치하는지를 나타내는 2차원 빈도 행렬입니다.
오프셋(Offset)은 기준 픽셀로부터의 공간적 변위로 정의되며, 일반적으로 4가지 주요 각도(θ = 0°, 45°, 90°, 135°)와 특정 픽셀 거리(d = 1, 2, ...)를 조합하여 행렬을 계산합니다.
🔬 목적 (Objective) : 이미지 텍스처(Texture, 질감) 분석
이미지의 텍스처(질감, Texture)를 분석하고 수치화하기 위해 사용합니다. (예: 거친 표면, 매끄러운 표면, 규칙적 직물 패턴, 생체 조직의 불균일성 등을 정밀 구분).
주요 응용 : 의료 영상(CT/MRI 종양 악성도 분류 및 병변 검출), 위성 원격 탐사(산림, 수자원, 도시 지형 분류), 산업용 표면 결함 검사(철판 스크래치, 섬유 직조 불량 판독).
[ GLCM의 공간적 계산 원리 (4×4 이미지 & 거리 d=1, 각도 0° 기준) ]
원본 4×4 영상 (밝기 레벨: 0, 1, 2, 3)
0
0
1
1
0
0
1
1
2
2
2
2
2
2
3
3
오른쪽 이웃 픽셀 쌍 탐색 (d=1, θ=0°)
생성된 4×4 GLCM 행렬 (가로 픽셀 쌍 출현 횟수)
| 밝기(i \ j) |
0 |
1 |
2 |
3 |
| 2 |
2 |
0 |
0 |
| 0 |
2 |
0 |
0 |
| 0 |
0 |
5 |
1 |
| 0 |
0 |
0 |
1 |
* 해석 : (0, 0) 쌍은 2번, (0, 1) 쌍은 2번, (2, 2) 쌍은 5번 출현했습니다. 주대각선 부근의 값(2, 2, 5, 1)이 높다는 것은 인접한 픽셀끼리 동일하거나 유사한 밝기를 갖는 부드럽고 균일한 텍스처임을 정량적으로 증명합니다.
📊 GLCM에서 추출하는 4대 대표 하랄릭 텍스처 통계량 (Haralick Features)
GLCM 행렬의 원소들을 정규화 확률 p(i, j)로 변환한 후, 이미지 전체의 질감 특성을 하나의 스칼라 특징치로 압축 요약합니다.
1. 대비 (Contrast)
Σi,j |i - j|2 · p(i, j)
인접 픽셀 간 밝기 차이의 제곱 가중치. 국소적 밝기 변동이 심하고 거친(Rough) 표면일수록 값이 급격히 커집니다.
2. 에너지 (Energy / ASM)
Σi,j [p(i, j)]2
각이차모멘트(Angular Second Moment). 특정 픽셀 쌍의 빈도가 집중될수록 높아지며, 균일하고 반복적인 패턴에서 최대 1을 갖습니다.
3. 균일성 (Homogeneity)
Σi,j [p(i, j) / (1 + |i - j|2)]
주대각선에 가까울수록(밝기 차이가 없을수록) 큰 가중치. 매끄럽고 부드러운 표면(Smooth)일수록 높은 수치를 나타냅니다.
4. 상관관계 (Correlation)
Σi,j [(i - μi)(j - μj)·p] / (σiσj)
픽셀 간의 선형적 공간 의존도 측정. 특정 각도로 줄무늬나 결(Grain)이 형성되어 있을 때 매우 높은 상관성을 보입니다.
두 분야 모두 "주변 이웃과의 공기 빈도"를 통계 행렬로 구축한다는 공통된 수학적 철학을 공유하지만, 대상 데이터와 공간의 특성에 따라 뚜렷한 차이를 보입니다.
| 비교 항목 |
자연어 처리 (NLP Word Co-occurrence) |
컴퓨터 비전 (Vision GLCM) |
| 대상 데이터 |
비정형 1차원 순차 텍스트 말뭉치 (Corpus) |
2차원 그레이스케일 격자 이미지 (Pixel Grid) |
| 행(Row) & 열(Col) |
어휘 사전(Vocabulary) 속 고유 단어들 (|V| × |V|) |
양자화된 밝기 레벨(Gray-levels, 통상 0~255 또는 0~15) (L × L) |
| (i, j) 칸의 의미 |
단어 i와 단어 j가 문맥 윈도우 내에 동시에 출현한 횟수 |
밝기 i를 갖는 픽셀과 밝기 j를 갖는 픽셀이 특정 거리(d)와 각도(θ)에 이웃한 횟수 |
| 공간/이웃의 정의 |
중심 단어 전후 k개 단어 (1D Context Window) |
거리(d)와 방향(θ: 0°, 45°, 90°, 135°)의 2차원 공간적 오프셋 |
| 핵심 구축 목적 |
단어의 의미 벡터화(Word Embedding), 의미적 유사도 분석 |
이미지 질감(Texture) 수치화, 표면 거칠기/균일성 분류 |
| 대표적 한계점 |
단어장 증가에 따른 극심한 차원의 저주, 고빈도 불용어("the", "is") 왜곡 |
회전/스케일 변화 및 조명 변화에 민감, 밝기 양자화에 따른 정보 손실 |
| 보완 및 후속 기법 |
PPMI 변환, SVD/PCA 차원 축소, GloVe, Word2Vec, 트랜스포머 |
하랄릭 텍스처 특징치(Contrast, Energy, Homogeneity 등), CNN, ViT |
동시 발생 행렬은 단순한 고전 통계 도구에 머무르지 않고, 오늘날 최첨단 거대언어모델(LLM)과 컴퓨터 비전 딥러닝 모델의 핵심 이론적 모태가 되었습니다.
🗣️ NLP의 진화 : 카운트 행렬에서 Self-Attention Matrix로
1) 카운트 기반 (Count-based) : 원시 동시 발생 행렬 → PPMI → SVD 잠재 의미 분석(LSA). 코퍼스 전체의 전역 통계를 완벽히 반영하지만 새로운 단어 추가 시 전체 행렬을 재계산해야 하는 약점이 존재했습니다.
2) 예측 기반 (Prediction-based) & 하이브리드 : 단어를 직접 예측하는 Word2Vec(Skip-gram)의 등장 이후, 스탠포드의 GloVe는 "전역 동시 발생 통계 행렬을 효율적인 목적함수로 학습"함으로써 카운트 모델과 신경망의 완전한 결합을 이루었습니다.
3) 현대 트랜스포머 (Transformer & LLM) : ChatGPT 등 현대 LLM의 핵심인 Self-Attention 행렬은 고정된 윈도우 대신 문장 내 모든 토큰 쌍 간의 상관관계를 동적으로 계산하는 '고도화된 콘텍스트 적응형 동시 발생 가중치 행렬'로 볼 수 있습니다.
👁️ Vision의 진화 : GLCM에서 CNN & Vision Transformer로
1) 수작업 특징 (Hand-crafted Features) : 과거에는 전문가가 GLCM 오프셋(거리, 각도)을 수동 설정하고 하랄릭 통계량을 계산하여 머신러닝(SVM, Random Forest) 모델의 입력으로 활용했습니다.
2) 합성곱 신경망 (CNN) : CNN의 컨볼루션 필터(Convolution Kernel)는 국소 픽셀 간의 공간적 패턴과 밝기 상관관계를 사람이 설계한 오프셋 없이 데이터로부터 직접 종단간(End-to-End) 학습합니다.
3) 비전 트랜스포머 (ViT) : 이미지를 패치(Patch) 단위로 분할한 뒤 패치 간의 전역적인 공간적 연관성과 텍스처 의존성을 Self-Attention으로 포착하여 GLCM이 목표로 했던 전역/국소 질감 인식을 현대 딥러닝 체계로 완성했습니다.
1) 개념 및 연관규칙 (Association Rules)
동시발생 매트릭스는 거래(사건) 속에 포함된 품목(항목) 간의 연관관계를 발견하고자 할 때 사용하는 데이터 마이닝 기법입니다. 분석의 대상이 되는 데이터는 두 개의 변수, 즉 거래(Transaction)와 품목(Item)으로 구성되며, 각각의 거래에 대해 한 개 이상의 품목들이 존재합니다.
일반적으로 하나의 거래는 한 고객에 의한 구매를 의미하며, 품목은 그 구매를 통해 구입된 물건(장바구니)입니다. 동시발생 매트릭스는 확률을 이용하여 연관규칙을 제공하는데 먼저 하나의 품목에 대해, 다음으로 두 품목 간의 연관규칙을 생성하며 계속해서 세 품목 간, 네 품목 간 등으로 이어집니다.
연관규칙은 "(품목 A) ⇒ (품목 B)"의 형태로 표현되며, "품목 A를 포함한 거래는 품목 B도 포함한다"라고 해석합니다.
규칙 수의 기하급수적 증가와 여과 기준의 필요성 :
한 상점에서 유통되는 품목의 수가 30가지라고만 하더라도 거래들에 의해 만들어지는 모든 가능한 연관규칙의 수는 (230 - 1) = 1,073,741,823개에 달하며, 품목의 수가 늘어날수록 규칙의 수는 기하급수적으로 폭증합니다. 따라서 이들을 여과하여 유의미한 규칙들만을 뽑아내는 정량적 평가 기준이 필수적인데, 이것이 바로 근거확률(Support), 신뢰확률(Confidence), 그리고 리프트(Lift)입니다.
2) 연관규칙의 3대 핵심 평가 기준
① 근거확률 (Support)
연관규칙 'A ⇒ B'의 근거확률은 두 품목이 전체 거래 중에서 함께 구매되는 확률 Pr(A ∩ B)입니다.
(품목 A와 B를 포함하는 거래 수) / (전체 거래 수)
* 상호 대칭적: 규칙 'A ⇒ B'와 'B ⇒ A'의 근거확률은 동일합니다. 두 품목의 동시 구매 빈도를 나타냅니다.
② 신뢰확률 (Confidence)
품목 A를 구매한 거래 중 품목 B도 포함되어 있을 조건부 확률 Pr(B | A) = Pr(A ∩ B) / Pr(A)입니다.
(품목 A와 B를 포함하는 거래 수) / (품목 A를 포함하는 거래 수)
* 비대칭적: 'A ⇒ B'와 'B ⇒ A'가 다릅니다. A 구매 시 B를 함께 살 가능성의 강도를 측정합니다.
③ 리프트 (Lift / 향상도)
신뢰확률을 품목 B의 기본 기대확률로 나눈 값 Pr(B | A) / Pr(B)으로 정의합니다.
신뢰확률 Pr(B | A) / 품목 B의 구매확률 Pr(B)
* A 구매가 B 구매 가능성을 몇 배 향상시키는가를 나타내는 상관관계 지표입니다.
[ 리프트(Lift) 값의 의미 및 대표 예시 ]
| 리프트(Lift) 값 |
품목 간의 관계 의미 |
대표 사례 |
| 품목 상호 독립적인 관계 (상관관계 거의 없음) |
과자와 후추 |
| > 1 (1보다 큼) |
품목 상호 양의 상관관계 (동시 구매 유의성 높음) |
식빵과 버터 |
| < 1 (1보다 작음) |
품목 상호 음의 상관관계 (대체재 또는 상극 관계) |
변비약과 지사제 |
* 동시발생 매트릭스로 연관규칙을 도출할 때는 근거확률, 신뢰확률, 그리고 리프트의 최소기준치(Lower bound, min_support / min_confidence / min_lift)를 미리 설정하여 기준을 만족하는 유효한 규칙만을 선별합니다.
3) 동시발생 매트릭스 기법의 장점과 단점
(1) 장점 (Strengths)
- 이해의 용이성 : 결과가 직관적인 "If-then" 형식으로 제공되기 때문에 비전문가나 현업 담당자도 해석이 쉽습니다.
- 손쉬운 모형 구축 : 연관관계 모형 구축에 고도의 복잡한 수학적 전문지식이 필요 없어 초보자도 손쉽게 사용할 수 있습니다.
- 명확한 규칙 비교 : 근거확률(교집합)과 신뢰확률(조건부확률)이 표준화된 확률 척도로 지원되므로 도출된 규칙 간 상호 비교·평가가 용이합니다.
(2) 단점 (Limitations)
- 연산 시간의 기하급수적 증가 : 규칙 도출 소요 시간이 품목 수에 비례하여 기하급수적으로 폭증하므로 품목을 축소해야 하나, 이는 예상치 못한 숨은 규칙을 찾는 데이터 마이닝의 본래 취지와 상충될 수 있습니다.
- 희소 규칙 선별의 난제 : 품목 수에 비해 거래(레코드) 수가 충분하지 못하면 신뢰확률이 낮은 엄청난 수의 무의미한 연관규칙이 쏟아져 나와 선별이 어렵습니다.