Могут ли две функции в двух разных пространствах столкнуться при хешировании в ваубальных ваббитах? - PullRequest
1 голос
/ 16 октября 2019

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

1 Ответ

2 голосов
/ 17 октября 2019

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

Так что ответ на 1-й вопрос Да , есть только один,общее хеш-пространство, и возможны коллизии.

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

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

hash_func (строка)

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

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

...