630 likes | 1.04k Views
Chapter 9 Classification and Clustering. 2011-04-26 김영호. Chapter 9. Classification and Categorization Naïve Bayes Support Vector Machines Classifier and Feature Selection Spam, Sentiment, and Online Advertising Clustering Hierarchical and K-Means Clustering
E N D
Chapter 9Classification and Clustering 2011-04-26 김영호
Chapter 9 • Classification and Categorization • Naïve Bayes • Support Vector Machines • Classifier and Feature Selection • Spam, Sentiment, and Online Advertising • Clustering • Hierarchical and K-Means Clustering • K Nearest Neighbor Clustering • Evaluation • How to Choose K • Clustering and Search
Classification and Categorization • 어떤 관찰에 대해 label을 붙이는 것은 우리가 무의식적으로 매일 수행하게 되는 일 중 하나이다 • 우리는 야채가게에서 각 과일에 대해 “잘 익음” 혹은 “안 익음”, “비쌈” 혹은 “쌈” 등의특성에 대해 명시적이지는 않더라도 label을 붙이게 된다. • 위 야채가게의 예는 binary label의 예를 나타내고 있다. • 같은 과일에 대해 multi-valued label도 할당이 가능하다 • “Green”, “Yellow”, “Red” • Hierarchical한 분류를 가질 수도 있다. • 이러한 labeling 혹은 categorization scheme을 ontology라고 한다. • 사람은 중요한 feature를 보고 물품을 구분한다. • Healthy한가? → “Healthy” 혹은 “Not healthy” • saturated fat, cholesterol, 설탕 및 소금의 함유량 • 위 feature들을 상품에서 추출한 뒤에, 이 정보들을 특정 decision mechanism에 의해 종합하여 질문에 대한 물품 구분을 수행하게 된다.
Classification and Categorization • 위 feature들은 package의 nutrition information 란에서 추출할 수 있다. • “Healthiness”(denoted H)를 추출하는 방법은 여러 가지가 있을 수 있으나, 가장 간단한 한 방법은 각 feature의 중요성을 weight로 주어 결합하는 방식이 될 것이다. • 어떤 음식에 대해 healthiness score H를 얻고 나면, 우리는 decision mechanism을 설정하여 “healthy” 혹은 “not healthy”와 같은 lable을 붙여야 한다. • 여기서도 간단한 방법 중 하나는 threshold rule을 설정하는 것이다. • “A food is healthy if H(food) ≥ t”, for some threshold value t • 기계의 구분에서도 이와 같은 절차를 따르게 된다.
Naïve Bayes • 우리는 이제 자동으로 분류를 수행하는 방법을 기술하려 한다. • 아직까지 가장 straightforward하며 effective한 방법은 naïve Bayes method이다. • 7장의 retrieval model에서는 두 가지 label에 대해 naïve Bayes분류를 수행하였다. • “Relevant” or “Non-relevant” • 실제로는 classification은 두 가지이상의 label을 가지고 수행될 수 있다.
Naïve Bayes • 이런 경우를 나타내는 Bayes’ rule은 다음과 같다. • C와 D는 random variable이다. • Random variable은 출현 가능한 outcome들의 집합으로, 각각의 outcome은 확률 분포에 연관되어 나타난다. • 동전의 경우 head, tail의 경우가 각각 동일하게 P(X=h)=P(X=t)=0.5 • 다른 예로 Y=10+2X 일 때, • X가 -1, 0, 1로 주어지며 각각의 확률이 0.1, 0.25, 0.65 라고 한다면, • Y는 8, 10, 12 로 결정되고, 각각의 확률은 P(Y=8) = 0.1, P(Y=10) = 0.25, P(Y=12) = 0.65 가 된다. • 이러한 random variable은보통 대문자로 표기(C,D 등) 되며, outcome은 소문자(c,d등)로 표기된다. 그리고 조건부 확률을 표기할 때는 P(X=x|Y=y)를 간단하게 줄여, P(x|y)로 표시하게 된다.
Naïve Bayes • Bayes’ rule이 중요한 이유는 조건부 확률을 역으로 표시할 수 있기 때문이다. • 어떤 경우에 조건부 확률의 계산은 한 방향으로 쉬우나 반대 방향으로는 어려운 경우가 있다. • 스팸 분류를 예로 들면, • 문서의 text를 D라고 하고 class label을 C라고 하면 • 문서의 텍스트를 보고 스팸 문서를 바로 분류하는 logic은 명확하지 않다→P(C|D) • 그러나, 주어진 training data에서 스팸이 아닌 문서들을 찾는 것은 비교적 쉽다→P(D|C) • Bayes’ rule은 쉽게 대답하기 힘든 문제에 대해(→P(C|D)) 우리가 쉽게 얻을 수 있는 지식(→P(D|C))을 바탕으로 추정할 수 있도록 해 준다.
Naïve Bayes • 스팸 분류에 대해 Bayes rule을 알기 쉽게 적용할 수 있다. • C를 class에 대한 random variable로 하고, D를 document를 observing하는 대 대한 random variable로 정한다. • 주어진 문서 document d (random variable D의 outcome)에 대해set of class C=c1, c2,…,cN(random variable C의 outcome)라면,documentd가 관찰되었을 때 label ci로 분류될 likelihood는P(c1|d), P(c2|d),…, P(cN|d) 로 각각 나타낼 수 있다. • 이 중 문서 d는 가장 높은 likelihood를 보이는 class ci로 분류될 수 있다.따라서, naïve Bayes classifier는 문서 d를 다음과 같이 분류한다.
Naïve Bayes • 위 식에서 사전 확률인 P(c)는 straightforward하게 나타난다. • P(c) = Nc/N (label c가 매겨진 문서수/전체 문서수) • P(d|c)는 prior처럼 단순히 계산할 수 없다. • 계산을 단순화하는 독립 가정을 사용하여 계산한다. • d=w1, w2, …, wn에서 w는 다른 w와 독립적으로 나타난다 • 이 independent assumption이 naïve라고 불리게 되는 원인이다. • 단순화 가정을 사용하여, 각각의 단어 w가 class c에서 나타날 확률을 구한다. • 무한한 수를 가진 document d와 class c의 관계를, 유한한 종류의 수를 가진 vocabulary v와 class c의 관계로 단순화시킨다.
Naïve Bayes • 위의 관계를 이용하여 P(c|d)를 구하면 다음과 같다. • 문서의 자동 분류에서 마지막으로 남은 것은 P(w|c)를 구하는 것이다. • P(w|c)의 의미는, “단어 w가 class c와 연관되어 나타날 확률”이다. • 이 확률은 event space에 따라 다르게 나타날 수 있으므로, event space에 따라 문서 분류의 결과도 다르게 나타날 것이다. • Multiple-Bernoulli model과 multinomial model은 대표적인 event space이다.
Naïve Bayes • Multiple-Bernoulli model • 이 model에서는, class c에 대하여 binary random variable wi를 정의한다. • Binary event의 outcome은 1 혹은 0이 된다. • P(wi=1 | c)는 “class c에 의해 단어 wi가 나타날 확률” 로 풀이한다. • 각 class c에 대해 wi가 나타날 확률을 estimate한다. • 스팸 분류기의 예에서는 P(cheap=1|spam)은 높은 확률을 가질 것이고, P(dinner=1|spam)은 낮은 확률을 가지게 될 것이다.
Naïve Bayes • 위의 예는 10개의 문서와 2개의 class를 포함하고 있다. • 예에서 priorP(spam)=3/10, P(not spam)=7/10이다. • 우리는 위 예에서 P(w|c)를 MLE에 따라 단순하게 다음과 같이 추정한다. • MLE: Maximum Likelihood Estimate • dfw,c:training document with class label c in which term w occurs • Nc: total number of training document with class label c • P(the|spam)=1, P(the|not spam)=1, P(dinner|spam)=0, P(dinner|not spam)=0.7
Naïve Bayes • 따라서, multiple-Bernoulli model에서 문서의 likelihood P(d|c)는 다음과 같이 나타낼 수 있다. • δ(w,D)=1 if and only if term w occurs in document d • 그러나 실제 MLE는 잘 사용되지 않는다. • Zero probability problem • 이전 예제에서 계산된 P(dinner|spam)=0 이므로, dinner가 나온 문서는 모두 spam일 확률이 0이 된다. • 좀 더 일반적으로, 특정 단어가 포함된 문서는 특정 class에서 완전히 배제되는 결과를 초래하게 된다. 이것은 작은 training set을 일반화하는 과정에서 나타나는 문제가 되며, 다른 명칭으로 data sparseness problem이라고도 불린다. • 작은 training set에서 문제가 되나, 아주 큰 set에서도 경우에 따라 나타난다. • Smoothing technique을 사용하여 문제를 극복한다.
Naïve Bayes • Multiple-Bernoulli model에서 smoothing 항을 추가하면 다음과 같다. • αw와 βw는 w에 의존적인 파라미터이다. • 널리 쓰이는 단순한 parameter는 모든 w에 대해 α=1, β=0 이다. • 이 event space에서는 한 class에서 어떤 term이 나타났는지혹은 아닌지 만을 고려하며, 다른 중요한 정보인 term이 “얼마나 많이” 나타났는지 고려하지 않는다. • 이 정보는 multinomial model에서 다루게 된다.
Naïve Bayes • Multinomial model • Multiple-Bernoulli model의 binary event space는 너무 단순화된 면이 있다. • Term frequency는 중요한 feature로, 특히 문서가 길 때 더 중요한 정보가 된다. • 문서가 짧을 때는 단어가 하나 이상 나타나는 일이 적으므로 binary event space도 정확한 결과를 내게 된다. • Multinomial event space는 outcome이 binary가 아니라는 것 외에는 multiple-Bernoulli event space와 유사하다.
Naïve Bayes • 위의 예제에서 maximum likelihood estimate(MLE)를 계산하는 방법은 다음과 같다. • tfw,c : number of times that term w occurs in class c • |c| : total number of terms that occur in training documents wit class label c • P(the|spam)=4/20, P(the|not spam)=9/15 • P(dinner|span)=0, P(dinner|not spam)=1/15
Naïve Bayes • Term들은 문서 내에서 multinomial distribution에 의해 나타나게 되므로, document d가 class c에 속할 확률은 다음과 같이 계산된다. • Zero probability problem을 방지하기 위한 smoothing을 하면 다음과 같다. • 모든 w에 대해 α=1로 하면 (Laplacian method) • Multinomial model은 multiple-Bernoulli model에 비해 전체적으로 성능이 좋은 것으로 나타났다. • 두 모델은 모두 직관적으로 분류 문제에 적용 가능하며, 따라서 Naïve Bayes는 분류 문제에서 매력적인 알고리즘으로 널리 사용되었다.
Support Vector Machine • Naïve Bayes가 확률에 기반을 두었다면, 여기에 소개하는 support vector machine(SVM)은 기하학에 기반을 두었다. • SVM은 문서들을 geometric space의 한 점으로 다룬다. • SVM의 목적은 문서를 “positive” 혹은 “negative”로 분리하는 경계인 hyperplane을 찾는 것이다. • Naïve Bayes에서는 문서를 binary vector 혹은 term frequency의 vector로 다뤘다면, SVM에서는 문서를 더 자유롭게 정의할 수 있다. • 문서를 입력으로 받는 feature function f1(·), …, fN(·) 을정의하고, feature value를 생성하도록 하여 N-차원의 위치를 갖도록 한다. • 분류에서 자주 쓰이는 feature function은 fw(d)=δ(w,d)와 fw(d)=tfw,d이다. • 이 feature function들은 w에 대해 정의되므로, 이 function의 수는 |v|개가 된다. • 따라서 문서는 |v|-차원에서 분류가 이루어지게 된다.
Support Vector Machine + + – – • Linearly separable • Hyperplane은 training data에 의해 정해지며, 각 point에 대해 class-positive와 class-negative를 정하게 된다. • 그러나 모든 경우에 완벽히 positive와 negative로 분리되는 것은 아니다. • 완벽히 분리되는 경우를 linearly separable하다고 하며, 이 단원에서는 linearly separable case와 non-linearly separable case로 나누어 설명한다. + + + + – – + + – – + – – – + + + + – – – + + – – – – + + + + + – – – –
Support Vector Machine • Case I: Linearly Separable Case • Positive case와 negative case를 가장 잘 나누는 hyperplane을 구하는 것이 목적이다. • 가장 잘 나눈다: Unseen data에 적용해도 좋은 결과를 내는 classifier를 훈련하려면, positive 와 negative case의 margin를 크게 하는 것이 가장 optimal한 방법이 된다. • Hyperplane에 가장 가까운 positive training point를 x+, negative trainingpoint를 x-라 하면, margin은hyperplane과 x+ 사이의 거리와hyperplane과 x- 사이의 거리를 합한 것이 된다. • Margin을 구하는 방법은 다음과 같다. • ||w|| = √(w2)
Support Vector Machine • Margin을 최소화하기 위해서는 margin을 최대로 하는 vector w를 구해야 한다. • 위 식에서 계산을 단순화하기 위해 | w · x- | =-1, | w · x+ | =1 로 가정한다. 이 가정에 기반하여, optimal한 w를 구하는 단순화된 방법을 다음과 같이 정의하였다. • Quadratic programming 방법으로 위 조건에 맞는 w를 구한다. w가 구해진 후, 각 point를 분류하는 방법은 다음과 같다.
Support Vector Machine • Case II: Non-linearly Separable Case • 실 세계의 데이터는 실제로 linearly separable한 case는 거의 없다. • 그러므로, SVM은 이 점을 반영하여 수정되었다. • 예를 들어, x가 실제 positiveclass에 속하는데도 feature space에서 w·x=-0.5가 나왔을 경우가 있다. 이 때는 제약조건인 w·x+≥1을 위반하게 된다. 이런 경우 hyperplane반대쪽에 위치하게 된다. • 이러한 경우 penalty를 더하여 제약조건을 맞추도록 한다. 위의 경우1-(-0.5)=1.5 가 penalty가 된다. • 반대의 경우, w·x=1.25 라면 제약조건 w·x+≥1 를 만족하여 penalty는 0이 된다. • 이러한 형식으로 penalty를 계산하는 것을 hinge loss function L이라 한다.
Support Vector Machine • 위 loss function을 적용한 SVM 최적화는 다음과 같이 계산된다. • 여기서 ξi는slack variable이라고도 하며, target value의 위반을 허용한다. 이 slack variable은 hinge loss function을 강제하기 위한 변수이다. • 모든 자료에서 제약 조건이 만족된다면 slack variable은 0이 되며, linearly separable과 동일한 조건이 된다. • C는 조절 가능한 parameter로 penalty의 정도를 조절한다.(보통 1로 한다)
Support Vector Machine • The Kernel Trick • Linearly separable하지 않은 경우, 더 고차원의 feature space로 자료들을 mapping하거나 transform하는 과정을 거칠 수 있다. • 이런 방법은 분류의 정확도를 높이는 경향이 있긴 하나 모든 경우에 효과적이지는 않은 것으로 알려져 있다. • N-차원의 vector를 고차원으로 mapping시키는 경우, 한 예로 vector [f1(d), f2(d), …, fN(d)]를2N-차원의 vector [f1(d), f2(d), …, fN(d), f1(d)2, f2(d)2, …, fN(d)2] 로 만들 수 있다. • 고차원 mapping의 경우 알고리즘의 효율성이 떨어지며, 계산에서 속도 면의 불이익과 계산 영역(memory)의 불이익을 모두 볼 수 있다.
Support Vector Machine • 이런 변환에 있어 주의해야 할 점은, 변형에 따른 연산이 dot product라는 것이다. 차원이 높을수록 계산에 따르는 비용이 높아지게 된다. 또한, 고차원의 vector를 저장하는 일은 공간상에서도 비용이 높다. • 변형에 따른 연산을 줄여고차원의 vector를 생성하는 일 없이 간단한 연산으로 vector를 mapping시킬 수 있다면, 고차원의 vector를 생성하고 저장하는 데 따른 연산 및 공간 비용을 줄일 수 있다. • 이 때 사용되는 것이 kernel function이다. • 2차원 vector를 예를 들어 설명하면, w=[w1w2], x=[x1x2] 라는 vector가 있다고 가정한다. 여기서 우리는 Φ(·) 를 다음과 같이 정의한다. • Φ(·)는 2차원의 vector를 3차원으로 mapping시킨다. 2차원에서 non-linearly separable한 자료가 3차원에서는 separable할 수 있어, 이 방법은 유용할 수 있다.
Support Vector Machine • SVM에서 w·x를 구하는 일은 고차원 mapping에서 Φ(w)· Φ(x)로 구할 수 있다. 이것은 먼저 Φ(w)와 Φ(x)를 구하고 결과물의 dot product를 구하는 순서로 이루어질 것이다. • 그러나, 위의 식에서 • 이므로, w·x는 원래의 2차원에서 계산하기만 하면 된다. 각각을 3차원으로 바꾼 후 dot product를 계산하는 대신, 원래의 차원에서 dot product를 계산 후 제곱하는 형식으로 계산된다. • 이와 같은 방법을 “kernel trick”이라고 하고, 특정 고차원 mapping을 저차원에서 효율적으로 계산할 수 있는 방법을 제공한다. • 예제의 경우 1차원을 올렸으므로 성능 향상은 trivial할 수 있다. 훨씬 고차원의 kernel function을 사용하였을 때는 성능 향상이 분명하게 나타난다.
Support Vector Machine • 자주 쓰이는 kernel은 이 표에 정리되어 있다. • 특정 kernel function은 무한 차원에서 trick을 쓰는 것을 허용하기도 한다. • 예제에서 사용한 kernel function은 polynomial kernel(p=2)라고 한다. • Gaussian kernel은 종종 radial basis kernel(RBF) kernel이라고도 한다. • SVM package들은 kernel function을 대부분 내장하고 있어, 간단하게 command prompt에서 옵션을 명시하는 것만으로 성능을 이끌어낼 수 있다. 실험에서 매우 유용하게 쓰일 수 있을 것이다.
Support Vector Machine • Non-binary classification • 지금까지의 설명은 SVM을 한 가지 기준에서 +/-case로 나누는 방식을 설명하였다. SVM은 multi-class 분류에서도 역시 사용될 수 있다. • 한 가지 방법은 one versus all(OVA) 라고 한다. OVA에서는 K개의 class에 대해 각각의 classifier를 training한다. 따라서 클래스 마다 w가 정해지며, “class c versus not class c”의 방식으로 분류된다. 이것을 formal하게 정리하면 다음과 같다. • 다른 방법은 one versus one(OVO) 라고 한다. OVO에서는 모든 class의 pair마다 classifier가 training된다. 예를 들면, 3개의 분류(excellent, fair, bad)로 나누는 경우 (excellent vs. fair), (excellent vs. bad) (fair vs. bad)로 분류를 시도해 보는 것이다. • OVO의 경우 K(K-1)/2 개의 classifier가 필요하며, K의 값이 높을수록 계산에 소요되는 비용이 많아진다. Classifier마다 inputx에 대해 class c가 정해지며, class c에 대한 vote가 합산된다. Vote의 결과로 가장 많은 vote를 받은 class c로 input x의 분류가 정해진다.
Classifier and Feature Selection • Classifier and Feature selection • Classifier는 세 가지 분류로 나눌 수 있다. • Generative • Discriminative • Non-parametric • Generative model의 대표적인 예는 Naïve Bayes classifier이다. 이 model은 generative process를 따른다. Class 1 Class 2 Class 3 Generate class according to P(c) Class 2 Generate document according to P(d|c)
Classifier and Feature Selection • Generative model의 성능은 실제 generation process를 얼마나 잘 capture하는가에 달려 있다. • Model이 실제 generative process를 잘 반영한다면, 몇몇 소수의 training sample로도 좋은 성능을 보일 것이다. • 그러나 training sample의 수가 늘어날수록, generative model의 장점은 상쇄된다. 이것은 단순화된 distributional assumption 때문인데, Naïve Bayes classifier의 independence assumption 같은 가정이 여기에 해당된다. • 이런 경우 Discriminative model이 더 잘 동작하게 된다.
Classifier and Feature Selection • Discriminate의좋은 예는 support vector machine이다. • SVM의 formulation 중에는 document generation process에 대한 가정이 없다. • 분포 확률에 기반하여 model을 만드는 대신, SVM은 데이터 영역 사이를 분할하는 hyperplane을 바로 train한다. • Non-parametric classifier는 training example이 아주 많을 때 사용 가능한 방법이다. • “Non-parametric classifierlet the data speak for itself” • 데이터가 무한대에 가깝도록 많을 경우 optimal한 선택이 된다. • Non-parametric classifier의 좋은 예는 nearest neighbor classifier이다. • Unseen data가 출현한 경우 NN-classifier는 가장 가까운 training sample와 같이 분류하기 된다.
+ – – + Classifier and Feature Selection – – – – – – + – + • Non-parametric classifier에 의한 irregular, highly non-linear decision boundary에 주목할 필요가 있다. • Generative 혹은 discriminative model 모두 이 정도의 불규칙한 데이터에 대해 fitting하는 데는 어려움을 겪을 것이다. • 그러나 small dataset에 대한 variance가 높아 선택에 제한이 따른다. + + – – + + – + – – + + + – – + – – + – + + + + – – + + + – – + – + + – – – + + – + – – + + + – – + – + –
Classifier and Feature Selection • Feature Selection • SVM은 input 데이터를 feature space 상에 위치시킨다. • Feature space는 feature function의 set으로 이루어진다. • Text 분류 등에 사용될 때, feature function은 vocabulary에 등장하는 모든 단어로 정의되는 경우가 많다. 이런 |v|-차원의 경우 feature space는 아주아주 넓은 공간을 가지게 된다. • 이런 넓은 공간을 사용하는 경우 효율성 및 효과성 양면에서 classifier에 영향을 미치게 되므로, feature space를 pruning(가지치기)하기 위한 방법이 등장하였다. • Feature selection의 목적은 원래의 feature set을 대신하는 작은 subset을 만들어 원래의 feature set을 대체하여 효율성을 대폭 개선하는 것이다. 이 과정에서 효과성에 손실이 가지 않도록 하는 것을 고려한다. • 실제로 효과성이 손실되기 보다 향상된 경우가 많다. 이 경우 noisy하거나 inaccurate한 feature가 탈락되어, 결과적으로 좋은 성능을 보인 것이다. • Information gain은 textclassification에서 자주 사용되는 feature selection criteria이다.
Classifier and Feature Selection • Information Gain • Information gain은 information theory principle에 기반을 두었다. • 어떤 feature를 관찰하였을 때 얻어지는 information의 양을 계산하는 방법이다. • 스팸 분류기의 예시에서, 문서 중 “cheap” word feature에 대한 목격은 “spam”일 가능성이 높음을 추측하게 한다. • 정보 이론에서 entropy는 특정 분포(예: 휘어진 동전 던지기의 분포)에서 어떤 결과가 나오는지 예측할 수 있는 정보량을 측정할 수 있는 척도를 제공한다. • 이를 이용하여, Information Gain은 어떤 feature f가 개입함에 따라 분포 P(c)가 달라지는 정도를 측정할 수 있도록 해 준다. • Multiple-Bernoulli event space라고 하면, 다음과 같이 계산된다.
Classifier and Feature Selection • Entropy • H(x)의 예제 • Fair coin – H(1/2, 1/2) • 앞면이 50%의 확률로 나오는 동전 • -1/2log2(1/2) – 1/2log2(1/2) → 1 • Unfair coin – H(99/100, 1/100) • 앞면이 99%의 확률로 나온다는 것을 알고 있는 동전 • -99/100log2(99/100) – 1/100log2(1/100) → 0.08 • Entropy가 낮음 – 정보의 유용성이 큼 • 결정된 사실 – H(100/100, 0/100) • Entropy는 0 • Information gain • 불확실함의 상태(높은 entropy)에서 정보를 얻음으로 인해 확실해진 상태(낮아진 entropy)와의 차이를 종합한 값
Classifier and Feature Selection • 다음은 “cheap” word feature에서 IG를 계산하는 과정이다. • 다른 word feature의 경우, “buy”, “banking”, “dinner”, “the”의 경우 각각 0.0008, 0.0434, 0.3612, 0.0 이었다. • 그러므로 “dinner”는 “not span”을 구분하는 데 있어 가장 정보량이 많은 단어이고, “the”는 가장 정보가 없는 단어임을 알 수 있다.
Classifier and Feature Selection • 예제에서는 Multiple-Bernoulli event space에 IG를 적용한 예를 보였으나, multinomial event space에도 적용이 가능하다. • 여러 방법으로 feature selection이 가능하지만, feature selection에서 결국 가장 중요한 것은 가장 information gain이 높은 K개의 feature를 선택하여 classifier를 training하는 것이다. • K개의 feature 수를 정하는대신 “original set의 몇%” 라는 식으로 subset을 구성하는 방법도 고려할 수 있다.
Spam detection • Classifier는 spam message를 구분하기 위해 활용될 수 있다. • Spammer는 다양한 방법을 사용하여 스팸을 발송하므로, 일반적으로 모든 스팸을 걸러내는 분류기는 존재하지 않는다. 대신 domain-specific한 정보를 활용하는 특별한 분류기는 좋은 성능을 보인다. • Spam-assassin 이라는 프로그램이 현재 널리 쓰이고 있다. • 내부적으로 word feature에 기반한 Bayes classifier를 사용하여 spamscoring의 한 요소로 사용한다. • Spam-assassin의 예제(mail header 부분)
Spam detection • 그러나 스패머들은 기법을 향상시켜 스팸을 분류하기 어렵도록 한다. • Term spam • Dumping • 내용과 관련 있는 인기 있는 검색어들을 위치시켜 전체적으로 의미 있는 문서처럼 보이게 한다. 이 과정에서 BM25와 language model과 같은 방법들이 검색어 dumping에 사용되기도 한다. • Phrase stitching • 문장과 단어들을 여러 source에서 가져와서 붙여 놓고, spam message들을 그 안에 위치시킨다. • Weaving • 여러 source에서 관련 있는 내용을 가져와서 spam message와 연관된 문맥을 형성하도록 한다. • Contextual analysis, n-gram method등을 사용하여 term spam 유형을 걸러내는 연구가 진행되었다. • Link spam • Term 대신 여러 곳에서 link를 수집하여 스팸 안에 나열하는 방식으로 classifier를 혼란시킨다. • Bayes classifier 외 PageRank등의 기법을 변형하여 SpamRank로 link spam유형의 스팸을 걸러내는 연구가 진행되었다.
Spam detection • Spam message의 예제
Sentiment Classification • 블로그 등에서 product에 대한 opinion이나 review등을 추출하여 제품의 개선에 이용하거나, 상품 구매에 대한 정보로 활용하기도 한다. 이와 관련된 연구 분야를 opinion mining이라고 한다. • Sentiment(감정, 의견) classification을 통해 특정 주제에 대한 opinion을 자동으로 분류해낼 수 있다. • “Negative”, “Positive” • 이런 경우 종종 opinion의 강도 또한 중요한 정보가 될 수 있다. • “Two stars” vs. “four stars” • Weakly negative vs. Strongly negative • Sentiment classification에서는 word-base feature를 사용하는 일이 많다. • “great”, “nice”, “amazing” – positive words • “awful”, “terrible”, “bad” – negative words • Number of each type of words
Sentiment Classification • Word-base feature는 종종 language ambiguity로 인해 잘못 분류되는 원인이 되기도 한다. • “the digital camera lacks the amazing picture quality promised” • 2 positive words( “amazing”, “quality” ), 1 negative word ( “lacks” ) • Unigram word 외 n-gram 및 part-of-speech도 feature로 고려하여 위와 같은 ambiguity로 인한 분류 오류를 줄이기도 한다. • SVM을 통한 분류법을 Human generated word list를 사용한 방법을 baseline으로 하여 비교한 결과, accuracy가 60%→80%으로 향상되는 효과를 보였다. • Sentiment classification에서 multiple-Bernoulli model은 multinomial model에 비해 지속적으로 좋은 성능을 보이는 점도 관찰되었다.
Clustering • Clustering은 데이터 분류에 대한 다른 접근법이다. • 데이터 분류에 쓰이는 알고리즘과 달리, clustering에 쓰이는 방법들은 unsupervised learning이며, 따라서 training data를 요구하지 않는다. • 기계의 clustering 수행 과정을 더 잘 이해하기 위해, 기계 분류 때와 마찬가지로 사람의 분류 과정을 관찰할 필요가 있다. • 야채 가계에서 신선한 과일을 cluster하기 위해 어떤 과정을 거치는가? • 과정 수행 전에 clustering에 필요한 기준을 먼저 세울 필요가 있다. • 색으로 구분, 모양으로 구분 • Vitamin C의 함유량으로 구분 • Clustering에 대한 기준(criteria)가 세워지면, 사람들은 해당 기준에 대해 item들을 분류한다. • Red cluster (red grapes, red apples), Yellow cluster (banana, butternut squash) • 하지만 orange는 어떤 cluster로 분류해야 하는가? • 새로운 orange cluster를 만드는 방법vs. yellow cluster로 구분하는 방법 • 위 clustering의 문제는 “어떻게 item들을 구분하는가?”에 더해, “몇 개의 cluster로 item들을 구분할 것인가?” 라는 질문도 중요하다는 것을 시사한다.
Clustering • 어떻게 item들을 구분하는가? • Monothetic – 하나 또는 그 이상의 분명한 기준으로 item들을 구분하는 방법 • 예) red cluster • Polythetic – 어떤 분명한 기준이 없이, item들이 공유하는 유사성을 바탕으로 구분하는 방법 • similarity measure (S~0의 범위) → distance measure (1-S의 범위) • 예) dice’s coefficient • “어떻게 item들을 구분하는가?” + “몇 개의 cluster로 구분할 것인가?” • 이 chapter에서는 대표적인 세 가지의 clustering algorithm을 설명한다. • Hierarchical clustering • K-means clustering (Flat clustering) • K-nearest neighbor clustering
Hierarchical and K-means • Hierarchical clustering • 이 chapter에서는먼저 initial clustering algorithm을 데이터에 먼저 적용해 본 뒤, objective function을 개선하여 성능을 높여가는 과정을 소개한다. • 서로 다른 objective function은 서로 다른 형태의 cluster를 생성하며, 따라서 “best” algorithm의 선택은 task와 data에 따라 달라질 수 있다. • Chapter 9장 전체에서, 우리는 N instance(N feature vectors)를 K개의 cluster로 나누는 것을 목표로 한다. 여기서 K는 선험적으로 결정하는 상수가 된다. • Hierarchical clustering의 종류 • Divisive clustering (top-down clustering) • 처음에 모든 instance를 포함한 하나의 cluster로 시작하며, 존재하는 cluster를 기준에 따라 둘로 나누는 과정을 반복하는 방법이다. • K개의 cluster로 나누어 졌을 때반복을 멈춘다. • Agglomerative clustering (bottom-up clustering) • 처음에 N개의 cluster로 시작하며, 두 개 혹은 그 이상의 cluster를 합쳐 가는 과정을 반복하는 방법이다. • K개의 cluster로 합쳐졌을 때 반복을 멈춘다. • Hierarchical clustering은 dendrogram으로 시각화하기 용이하다.
Hierarchical and K-means M • Dendrogram • Hierarchical clustering에서 cluster들의 형상들은 cluster의 결합 혹은 분리 방법에 따라 다르게 나타난다. L K J I H A B C D E F G
Hierarchical and K-means • Divisive clustering과 agglomerative clustering의 예 • 동일한 데이터에 대해 같은 objective function을 적용 • 두 경우 모두 4개의 cluster를 형성한다(K=4) Divisive Agglomerative
Hierarchical and K-means • Hierarchical agglomerative clustering의 구현 • 여기서는 4가지의 대표적인 cost function(=objective function)을 소개한다.
Hierarchical and K-means • Single linkage • dist() – 일반적으로 Xi와 Xj사이의 Euclidean distance로 한다. • 클러스터 사이에서 가장 가까운 거리를 cost의 척도로 한다. • 다른 원소들이 얼마나 떨어져 있는지는 고려하지 않는다. • 때문에, 한쪽 방향으로 길거나 넓게 산개된 cluster를 만들 가능성이 있다. • Complete linkage • 클러스터 사이에서 가장 먼 원소들 사이의 거리를 cost의 척도로 한다. • 따라서 single linkage보다는 더 compact한cluster가 생성된다.
Hierarchical and K-means • Average linkage • |Ci|, |Cj|는 각각 cluster Ci, Cj의 원소의 개수이다. • Single link와 complete link 사이의 절충으로 인해 만들어진 방법이다. • 각 cluster의 모든 원소들의 pair 사이의 거리를 모두 합산 후 평균값을 구한다. • 생성되는 Cluster는 각 cluster의 structure에 의해 결정된다. • Average group linkage • 각 cluster의 centroid(μCi, μCj) 간 거리를 cost로 한다. • Average linkage와 유사한 결과를 낸다.