임베딩에서 “가깝다”는 벡터 공간에서 코사인 유사도를 말하는 건가요? 아니면 다른 distance metrics 를 정의해서 사용하나요?
임베딩에서요..그 어떤 두단어가 비슷하면은 가깝다고 했었잖아요. 그 가깝다는 거는 그...벡터공간에서 코사인 시뮬레리터로 하나요? 아니면 어떤 디스턴트 매트릭을 따로 정해가지고 그걸 계산을 하나요?
(조경현 교수님 답변입니다)
아..그거는 사실..아..예를 들어서 여기 예를 한번 봐보죠.
그...예를 들어서 이런 컨티뉴어스 백어브웍 뭐 클래시파이어를 트레이닝을 했다고 해보죠.
사실 이게 이제 그..월투백할때 이 네트웍 그대로 쓰는거거든요. 아웃풋만 살짝 이제 클래스가 뭔지만 잘 지정을 해서 하는게 월투백 뭐 찾아서 하면은 벡터들이 나오는건데, 이 벡터들간에 관계가 이 토큰들이 비슷하면..이 문제를 푸는데 있어서 비슷하면은 벡터들이 비슷할거구요. 그리고 이제 토큰들이 문제를 푸는데 있어서 다르다하면은 다른데 과연 그게 어떤 메트릭이냐 어떤..그 스페이스에서 디스턴스를 하려..디스턴스를 계산하려면 메트릭을 정해야되잖아요. 뭐 유클리디안 메트릭일수도 있고, 뭐 아니면 마할로비스로 해가지고 굉장히 복잡한 이런 메트릭을 줄수도 있고, 아니면은 사실 알비트리하게 줄수 있는거죠.
뭔가 리메니언 메트릭..아 메니폴드를 디파인해서 할수 있고 뭐 여러가지가 있는데 어떤게 맞는지는 사실 이 뒤에 월드벡터가 나온후에 어떤 네트웍이 쓰여져서 트레이닝이 되는지가 가장 중요합니다.
만약 여기서 아무것도 안하고 에버러징..그냥 에버러징이 아니라 각 벡터들을 노멀..이제 그 랭스를 다 똑같이 노멀라이즈를 한다음에 에버러지를 했다 그러면 사실은 코사인 디스턴스가 메트릭 많은 메트릭 이겠죠. 왜냐하면 이제 그 매그니투드는 무시해야되니까요. 무시하고 이 앵글만 보니까 근데 사실 보통 그렇게 안하거든요. 그래서 이게 어떤 매트릭이 쓰이는지는 정확하게는 알수가 없는데 그래서 대부분 사람들이 해봤더니 Cosine Similarity가 괜찮더라 라고 Tomáš Mikolov가 2012년에 얘기를 했죠. 그랬더니 다들 Tomáš가 얘기를 했으니까 그렇지 하면서 쓰고, 그 뒤에도 이제 코사인 디스턴스도 있고 다양한 메트릭을 써봤는데 어떤게 최적이냐는 어떻게 트레이닝됐냐랑 어떤 다운스트림 타스크 그러니까 뭐 뭐 예를 들어서 클러스팅을 하는지 리튜리블하는지에 따라서 다르다는게 현재까지는 유일하게 얘기할 수 있는거 같습니다. 그래서 디스턴스 메트릭 자체도 하이퍼 프라미터가 되고 어떤걸 쓰냐에 따라서 하이퍼세지셋이 달라지고 거기서 이제 모델 셀렉션을 할수가 있겠죠.
comment