Могут ли две функции в двух разных пространствах имен столкнуться при хешировании в vowpal wabbit?

Имеют ли все пространства имен одно и то же хеш-пространство или каждое пространство имен имеет независимое хеш-пространство? Кроме того, если у них есть независимые хэш-пространства, создают ли они новые хэш-пространства для функций взаимодействия?


person sameershah141    schedule 16.10.2019    source источник


Ответы (1)


vw использует только одно глобальное хеш-пространство. Размер этого пространства равен 2^b, где b — количество хеш-битов. По умолчанию b равно 18, и его можно изменить, передав аргумент -b <bits> в vw.

Итак, ответ на первый вопрос: Да, есть только одно общее хеш-пространство, и могут быть коллизии.

Пространства имен изменяют только начальную точку при вычислении хэша, функции в двух отдельных пространствах имен могут конфликтовать.

Хеш-функция в основном:

hash_func(строка)

где строка, которая передается в hash_func, равна "<namespace>^<feature_name>"

Легко проверить, слишком ли мал ваш аргумент -b <bits>: если, увеличив -b ..., вы получите значительно меньшие потери, то, вероятно, у вас было (много) коллизий при настройке более низкого значения.

person arielf - Reinstate Monica    schedule 17.10.2019
comment
Спасибо за ваш быстрый ответ. - person sameershah141; 17.10.2019