흔히 자연어 처리를 처음 배우면, 통계적 언어 모델(SLM)이나 n-gram을 마주치게 되는데

그 때, 다음과 같은 쉼표를 사용한 notation을 접하게 됨.



7cf3c028e2f206a26d81f6e44f877d6451



이는 위 위키독스(딥러닝을 이용한 자연어 처리 입문) 뿐만 아니라 딥러닝 꽃밭 책 역시 찾아봤는데 이런 식으로 표현하더라. 그 밖에도 이런 표기를 쓰는 책이나 페이퍼가 수도 없이 많음


그런데 이는 별로 좋은 notation이 아닌 것 같음. 왜냐하면 쉼표라는 notation이 일반적으로 joint probability P(A, B) = P(A \cap B)를 의미하는데 단어 sequence에서 교환법칙에 관한 다음과 같은 오해를 불러일으킬 수 있음.



"""

아, 만약 단어 시퀀스 W를 W = good bye라고 한다면 P(W) = P(w1, w2) = P(good bye) = P(good, bye)라고 나타낼 수 있구나...

어? 그런데 P(good, bye)는 결합확률이므로 P(good, bye) = P(bye, good)인데 P(bye, good) = P(bye good)이잖아?

그러면 P(good bye) = P(bye good)이란 건데....

실생활에서 엄청 자주 보는 문장(good bye)이랑 거의 볼수 없는 터무니없는 문장(bye good)의 확률이 같다는 건가?? 어떻게 그럴 수 있지???

"""



심지어 다음과 같은 설명 때문에 혼란이 더욱 가중됨



7ff3c028e2f206a26d81f6e44e88736b4b



"""

음... P(good bye) = P(good) * P(bye|good)이란 거네...

그러면 조건부 확률의 정의 P(A|B) = P(A, B)/P(B)에 의해 P(bye|good) = P(bye, good)/P(good)이란 거잖아...

잉? 그런데 P(bye, good)=P(bye \cap good)에서 P(bye \cap good)이란게 뭐지???

P(good)은 good이라는 단어가 등장할 확률인데 P(bye \cap good)은 bye라는 단어가 등장할 확률과 good이라는 단어가 등장할 확률의 곱확률???

곱확률이면 동시에 등장한다는 건가?? 텍스트를 읽다가 두 단어가 동시에 등장할 확률을 말하는건가?? 근데 그런게 존재하나???

"""



<나의 생각>


왜 이런 혼란이 발생하냐면 notation이 sequence 정보를 명시하지 않았기 때문임.


우리가 일반적으로 마주하는 문장들은 모두 sequence 정보를 자연스럽게 내제하고 있음.


P(w1, w2)라는 확률은 'w1 w2'로 된 문장을 마주칠 확률이지 w1이라는 단어와 w2라는 단어가 동시에 등장할 확률을 의미하는 것이 아니라는 거임


그래서 위 그림의 An adorable little boy is spreading smiles라는 문장을 분석할 때도 수식에 쉼표를 삽입하지 않음.


따라서 다음의 표기법을 각각 다음과 같이 해석해야함


P(good bye) : 데이터셋(표본 공간, 일상 회화 등)에서 'good bye'가 등장할 확률

P(good) : 데이터셋에서 'good'이 등장할 확률

P(bye|good) : 데이터셋에서 good이 등장한 경우에서 대하여, 그 다음 바로 bye가 등장할 확률 (조건부 확률은 표본공간의 축소라는 개념을 잘 생각할 것)

P(bye, good) : 데이터셋에서 'good'이 등장하는 사건데이터셋에서 'bye'가 어떤 단어 w 뒤에 등장하는 사건의 교집합의 확률


특히 마지막에 대하여 사건 bye와 사건 good의 결합확률이라고 이해하면 조금 애매함.

왜냐하면 사건 bye는 마치 "bye가 등장하는 사건"을 의미하는 것처럼 보이는데 "bye가 등장하는 사건"과 "어떤 단어 w 뒤에 bye가 등장하는 사건"은 전혀 다른 것이기 때문임.

그리고 이러한 감춰진 의미는 대부분의 컨텐츠에서 노테이션에 반영되지 않았기 때문에 읽는데 주의해야 함




의견 환영