Hash Vowpal Wabbit:到底使用了什么哈希函数?
我很想知道在Vowpal Wabbit中哪个哈希函数用于功能哈希 我知道底层算法是3,但我无法通过查看github上的VW代码了解细节Hash Vowpal Wabbit:到底使用了什么哈希函数?,hash,vowpalwabbit,Hash,Vowpalwabbit,我很想知道在Vowpal Wabbit中哪个哈希函数用于功能哈希 我知道底层算法是3,但我无法通过查看github上的VW代码了解细节 有人知道VW中使用的是哪种哈希函数吗?核心哈希函数是Austin Appleby的32位杂音哈希v3.0 但是,它与原始asuniform_hash的API略有不同,以适应vw中的不同使用场景 您可以查看以下来源: (查找hashstrings和hashall函数) 正如你所看到的,当你深入细节时,事情并不是那么简单。之所以不简单,是因为在某些地方,当特
有人知道VW中使用的是哪种哈希函数吗?核心哈希函数是Austin Appleby的32位杂音哈希v3.0 但是,它与原始as
uniform_hash
的API略有不同,以适应vw
中的不同使用场景
您可以查看以下来源:
- (查找
和hashstrings
函数)hashall
- 散列后,始终会基于当前位值(
,默认值18)进行模运算,以适应权重向量,因此从散列中获得的值可以小于直接/原始散列-b位
- vowpal wabbit支持(SVMlight样式)数字功能名称,您可以直接使用数字“最终”值,而不是散列。默认情况下(
),以数字开头的要素名称最初按原样使用(无散列),但如果它们继续使用某些非数字,则当前计算的值将用作种子,名称的其余部分将按杂音-32散列--散列字符串
- 当名称空间存在时,散列的完整字符串是名称空间^featurename
- 使用名称空间交互选项(
、--redefinite
、-q
等)时,两个哈希结果将与不同的简单哈希组合--cubic
- 在一些简化中,如
,在输入杂音散列时使用特定(非零)种子(请参阅:--search
),因此您可能会得到与预期不同的散列值vowpalwabbit/search.cc
--audit
选项,并且vw
将输出每个示例中每个功能的确切哈希值。格式为(示例):
为大量的编辑道歉
#
# UserJack1^mean_karma:3864409:0.12345:0.919323[@3.8964]
# ^^^^+^^^^ ^^^^^+^^^^ ^^^+^^^ ^^^+^^^ ^^^^+^^^ ^^^+^^^
# | | | | | |
# namespace featurename hashval value weight Sum(gradients)
#