NewsJelly / semantle-ko

https://semantle-ko.newsjel.ly/
Other
195 stars 39 forks source link

단어 유사도 정확성이 정말 기분나빠요 #5

Closed ggasogeum closed 1 year ago

ggasogeum commented 1 year ago

정답이 “깨소금”인데 유사도 2위가 “생강즙”이고 “소금”이 저 밑에 유사도 360위인게 개발자님에게는 납득이 가시는지.. 제 견문이 얕은탓일까봐 인터넷에 생강즙 레시피도 쳐봤어요 깨소금은 한스푼도 들어가질 않더군요 글자 수만 같으면 유사도 랭킹이 올라가나요? 기준이 좀 이상한 것 같아요 단어라는게 받아들이는 사람마다 그 의미가 달라진다지만 생강즙을 보고 깨소금을 떠올리는 사람은 전세계에 단한명도 없을거에요

spirit-B commented 1 year ago

개공감이요.... 유사도가 제대로 학습된건지 전혀 모르겠어요 유사도에 대한 설명 보고 정답 단어의 유사 단어들 보면 '이게 맞나' 싶어요 ㅋㅋㅋㅋ

heewonlee-nj commented 1 year ago

안녕하세요.

먼저 꼬맨틀에 관심을 가져주셔서 감사합니다. 문의하신 내용에 대해 답변드리겠습니다.

꼬맨틀에서 사용하는 '유사도'라는 개념은 단어의 뜻을 기반으로 추정되는 값이 아니라는 점을 먼저 말씀드려야 할 것 같습니다.

현재 꼬맨틀에서는 단어 간의 유사도를 추정하기 위해 FastText라는 모델을 사용하고 있습니다. 이 '유사도'라는 개념을 더 엄밀하게 설명하자면, FastText로 벡터화한 두 단어의 코사인 유사도(cosine similarity)를 -100부터 100 사잇값으로 변환한 값입니다.

이러한 추정 방법으로 인해, 두 단어의 유사도가 높다는 것은 두 단어가 의미상으로 가깝다기 보다는 같은 문맥에서 많이 사용된다는 것을 의미합니다. 그렇기 때문에 '사랑'과 '증오'는 의미적으로는 정반대이지만 동일한 문장이나 맥락에서 자주 등장하기 때문에 서로 유사도가 높을 것입니다.

일반적으로 주로 오해할 수 있는 상황에 대한 예시는 다음과 같습니다.

문의해주신 내용처럼 '깨소금'이라는 단어는 의미적이나 철자로는 '소금'과 '깨'에 더 가깝습니다. 그러나 저희가 사용하는 FastText 모델을 훈련한 데이터에서는 '생강즙'이 '깨소금'과 같은 문맥에서 더 많이 등장했기 때문에 더 높은 유사도를 얻었을 것으로 추정됩니다. (예를 들어, '마지막으로 깨소금을 넣어서 요리를 완성합니다.', '마지막으로 생강즙을 넣어서 요리를 완성합니다.')

FastText는 Meta(구 Facebook)에서 연구하여 공개한 모델로 주로 Wikipedia나 웹 사이트들에서 수집한 문장을 바탕으로 훈련되었으며, 뉴스젤리에서 직접 훈련한 모델이 아니기 때문에 확실한 답변을 드리기는 어렵다는 점을 이해해 주시기를 바랍니다.

감사합니다.