"расстояния", например, евклидово или блок-сити,
а для сравнения текстов/эмбеддингов - косинусная/контекстная/симантическая близость.
почему так?
то есть почему не сравнивать эмбеддинги теми же расстояниями?
для чего перешли именно на косинусную близость?
Есть два вектора, если их углы близки, значит, вектора похожи. Это хорошая мера близости.
Скорее, угол между ними стремиться к нулю, и для которого косинус равен единице. Что есть хорошо.
это я понимаю ) вопрос был в том, почему при сравнении текста/эмбеддинга применяется контекстная близость, а при сравнении просто объектов и координат - евклидово расстояние? в чем разница по логике? если сравнить эмбеддинги, близкие по контекстной близости, через евклидово расстояние - разве они не будут "также" близки?
Косинусное расстояние не подвержено проклятию размерности. Оно учитывает только углы, и это хорошо, потому что одно предложение может содержать 5 слов, а другое 50 и они будут далеко по евклидову расстоянию, но близко по косиносному
Собственно этого хватает чтобы использовать именно его. Но если подумать можно наверное ещё придумать почему евклидово при сравнении текстов неоч
На что учили, то и считают. Как-то повелось, что обычно в конце моделей обычно линейный слой, который по факту считает dot product скрытого состояния и выходных векторов. Поэтому косинусное расстояние более естественно для таких моделей. Или в случае сиамских сетей вообще напрямую косинусное расстояние оптимизируют. Кроме того, для нормированных векторов квадрат евклидова расстояния линейно зависит от косинусного расстояния (d^2 = 2 - 2cos), так что в этом случае нет вообще никакой разницы.
увидел, спасибо )
увидел, спасибо )
Обсуждают сегодня