논문링크
https://www.cs.cmu.edu/~apparikh/nips2014ml-nlp/camera-ready/forgues_etal_mlnlp2014.pdf
Forgues et al., NeurIPS Workshop 2014
Introduction
Dialog System에서 두 가지 필수 구성 요소
- Automatic Speech Recognition(ASR)
- understand the text’s indent
논문이 쓰일 시점을 기준으로 음성인식은 매우 높은 정확도이지만, 언어 이해는 상대적으로 어려운 문제로 남아있다.
이 논문에서는 single utterance와 같은 짧은 텍스트의 의도를 식별하는 것을 목표로 하는 Classification Task 목표로 한다.
대규모 데이터를 이용해 학습한 모델은 높은 Accuracy를 달성할 수 있지만, 데이터의 품질에 따라 달라지며 오래 걸리고 비용이 비쌈. 그래서 논문에서는 매우 적은 학습 데이터를 기반으로 높은 Accuracy를 달성할 수 있는 Task를 고려한다.
Word embeddings
논문이 나온 시점을 기준으로 단어 임베딩을 학습하기 위한 여러 알고리즘이 제안됐다.
- CBOW
- Skip-gram
이러한 임베딩은 단어를 벡터로 인코딩하여 유사한 의미를 가진 단어들은 유사한 벡터를 가지도록 한다.
효과적인 표현을 학습하기 위해서는 대량의 데이터가 필요하지만, 해당 데이터가 반드시 도메인 특화되거나 레이블이 지정될 필요는 없기 때문에, 단어 벡터는 텍스트 분류를 Bootstrapping 하는 데 적합한 추가 기능으로 사용될 수 있다.
Sentence-level vectors using extrema
논문에서는 대규모의 레이블이 없는 텍스트에 대해 Pre-trained Vector에 대해 접근할 수 있다고 가정한다. 그런 다음, 가변적인 수의 벡터를 가진 문장을 고정된 길이의 특징 벡터로 인코딩해야 한다.
표준 접근법
- Sum
- Avg
개선 접근법
- Weighted Sum
→ 더 복잡한 접근 개선법이 있지만, 일반적으로 많은 데이터와 레이블을 필요로 한다.
단어 임베딩을 유도하는 알고리즘은 다양하며 기본적인 목표는 다음과 같다.
- 유사한 Context → Vector Similarity Maximize
- 유사하지 않은 Context → Vector Similarity Minimize
벡터는 음수와 양수 값을 모두 가질 수 있으며 특징은 다음과 같다.
- 자주 쓰이는 일반적인 단어는 전체 어휘와 다르지 않도록 0 벡터로 끌어당기는 효과
- Context 특화된 단어들은 0에서 멀어지며, 음의 방향이든 양의 방향이든 상관없이 발생
Context 특화 단어들은 의도를 강하게 포함하고 있으므로 문장의 벡터에서 각 차원 $d_i \in D$ 에 대해 최댓값(또는 최솟값)을 취함으로써 이러한 단어들을 강조할 수 있다.
최솟값과 최댓값 중 하나만 선택할 이유가 없으므로 0에서 먼 값을 선택하며 이것을 Vector extrema라고 부르기로 한다.
$$ \text{extrema}(d_i) = \begin {cases} \max d_i & \text{if } \max d_i \geq |\min d_i| \\ \min d_i & \text{otherwise} \end{cases} $$
Combining word counts with embeddings
동의어 검출 및 단어 쌍 간의 의미 유사도 작업에서는 context word counts가 distributed word representation보다 압도적인 성능을 나타다. 여기서는 word embedding을 직접 feature로 사용할 수 있도록 고려했다.
학습데이터가 적을 때, 임베딩 평균이 유용할 것이라고 생각할 수 있다. 그 이유는 학습 중에 본 단어와 보지 못한 테스트 단어를 연관 짓는 근거를 제공한다.
학습데이터가 많을 때, 단어 임베딩 평균화보다 단어 빈도가 유리할 수 있다. 그 이유는 다음과 같다.
- 단어 빈도 기반 접근법은 각 단어의 출현을 정확하게 반영할 수 있다.
- 임베딩의 평균화는 각 단어의 존재를 희미하게 만들 수 있으며, 평균화된 벡터는 문장 내 개별 단어의 구체적인 기여를 잘 반영하지 못할 수 있기 때문입니다.
논문에서는 문장 내 단어 $w_1, ...,w_k$를 단어 빈도의 집합과 단어 벡터 $v_1, ..., v_k$에서 얻은 실수 값 특징의 조합으로 표현하여 이 두 특징 세트가 서로 보완될 수 있는지 평가한다.
총 5가지로 비교한다.
$$ \begin{align*} \text{BoW} & : \langle \text{bag of word counts} \rangle \\ \text{Vec(Avg)} & : \left\langle \frac{1}{k} \sum_{i=1}^{k} v_i \right\rangle \\ \text{BoW + Vec(Avg)} & : \left\langle \text{bag of word counts}, \frac{1}{k} \sum_{i=1}^{k} v_i \right\rangle \\ \text{BoW + Vec(W.Avg)} & : \left\langle \text{bag of word counts}, \frac{\sum_{i=1}^{k} idf(w_i) v_i}{\sum_{k=1}^{k} idf(w_i)} \right\rangle \\ \text{BoW + Vec(Ext)} & : \langle \text{bag of word counts}, \text{extrema}(d_i) \forall d_i \in D \rangle \end{align*} $$
Experiments
Datasets
- 은행 대화 데이터셋 : 2961개 utterance + 172개의 intent label
- 여행 대화 데이터셋 : 2494개 utterance + 62개의 intent label
Classifier
Linear SVM
Sampling & Training
각 label에 대해 k개의 샘플을 선택하여 훈련시키며, 선택되지 않은 샘플들을 테스트를 진행하였고, 각 k에 대해 200번 진행하였고 각 클래스에서 합리적으로 기대할 수 있는 최소 샘플 수인 k<10에 주목한다.
Pre-Trained Vector
word2vec
Results
평균 벡터가 처음에는 우세하지만, 이후에 갈수록 바뀌는 현상이 발생하며, 두 가지를 적절히 사용할 때 더 나은 성능을 보여준다.
→ BoW 또는 Vector(Avg) 하나만 사용하는 것보다 두 가지를 사용하는 것이 우수하므로 이후에는 특징을 결합한 결과에 대해서만 소개한다.
Vector Extrema 관련하여 2개의 데이터셋에서 소폭 차이로 높은 Acc를 달성하였다. 그리고 sample의 수가 많아질수록 더 높은 Acc를 달성하였다.
여기서 Vector Extrema의 효과를 알기 위해 극단적인 값을 갖는 벡터에 대해 분석했다.
특정한 맥락에서 발생하는 단어 (e.g., napalm)는 큰 극 값을 가지며, 불용어(e.g., the)는 적은 극 값을 갖는다.
→ Vector Extrema는 단어들에 대해 특정한 맥락에 나타내는 단어들이 더 높은 가중치를 가지게 되며 빈도를 기반으로 하는 가중 평균과는 대조된다.
Conclusion
데이터셋이 많지 않을 때 Extrema를 이용해 모델이 출력한 값과 원래 label과의 semantic cos-sim을 구할 때 이점이 있는 metric으로 생각한다.
데이터셋이 많거나 문장의 길이가 많다면, 벡터의 Extrema가 줄어들기 때문에 좋은 효과를 나타내지 못할 것으로 보인다.
'Paper > Metric' 카테고리의 다른 글
[Metric Review] Distinct-n Review (0) | 2024.08.22 |
---|---|
[Metric Review] ROUGE Metric 분석 (0) | 2024.07.18 |
[Metric Review] CIDEr Metric 분석 (0) | 2024.04.01 |
[Metric Review] BLEU Metric 분석 (0) | 2024.03.31 |
[Metric review] METEOR Metric 분석 (0) | 2024.03.29 |