Vowpal Wabbit
|
Classes | |
struct | memory_tree |
struct | node |
Functions | |
template<typename T > | |
void | remove_at_index (v_array< T > &array, uint32_t index) |
void | copy_example_data (example *dst, example *src, bool oas=false) |
void | free_example (example *ec) |
void | diag_kronecker_prod_fs_test (features &f1, features &f2, features &prod_f, float &total_sum_feat_sq, float norm_sq1, float norm_sq2) |
int | cmpfunc (const void *a, const void *b) |
void | diag_kronecker_product_test (example &ec1, example &ec2, example &ec, bool oas=false) |
float | linear_kernel (const flat_example *fec1, const flat_example *fec2) |
float | normalized_linear_prod (memory_tree &b, example *ec1, example *ec2) |
void | init_tree (memory_tree &b) |
uint64_t | insert_descent (node &n, const float prediction) |
int | random_sample_example_pop (memory_tree &b, uint64_t &cn) |
float | train_node (memory_tree &b, single_learner &base, example &ec, const uint64_t cn) |
void | split_leaf (memory_tree &b, single_learner &base, const uint64_t cn) |
int | compare_label (const void *a, const void *b) |
uint32_t | over_lap (v_array< uint32_t > &array_1, v_array< uint32_t > &array_2) |
uint32_t | hamming_loss (v_array< uint32_t > &array_1, v_array< uint32_t > &array_2) |
void | collect_labels_from_leaf (memory_tree &b, const uint64_t cn, v_array< uint32_t > &leaf_labs) |
void | train_one_against_some_at_leaf (memory_tree &b, single_learner &base, const uint64_t cn, example &ec) |
uint32_t | compute_hamming_loss_via_oas (memory_tree &b, single_learner &base, const uint64_t cn, example &ec, v_array< uint32_t > &selected_labs) |
int64_t | pick_nearest (memory_tree &b, single_learner &base, const uint64_t cn, example &ec) |
float | get_overlap_from_two_examples (example &ec1, example &ec2) |
float | F1_score_for_two_examples (example &ec1, example &ec2) |
void | predict (memory_tree &b, single_learner &base, example &ec) |
float | return_reward_from_node (memory_tree &b, single_learner &base, uint64_t cn, example &ec, float weight=1.f) |
void | learn_at_leaf_random (memory_tree &b, single_learner &base, const uint64_t &leaf_id, example &ec, const float &weight) |
void | route_to_leaf (memory_tree &b, single_learner &base, const uint32_t &ec_array_index, uint64_t cn, v_array< uint64_t > &path, bool insertion) |
void | single_query_and_learn (memory_tree &b, single_learner &base, const uint32_t &ec_array_index, example &ec) |
void | update_rew (memory_tree &b, single_learner &base, const uint32_t &ec_array_index, example &ec) |
void | insert_example (memory_tree &b, single_learner &base, const uint32_t &ec_array_index, bool fake_insert=false) |
void | experience_replay (memory_tree &b, single_learner &base) |
void | learn (memory_tree &b, single_learner &base, example &ec) |
void | end_pass (memory_tree &b) |
void | save_load_example (example *ec, io_buf &model_file, bool &read, bool &text, std::stringstream &msg, bool &oas) |
void | save_load_node (node &cn, io_buf &model_file, bool &read, bool &text, std::stringstream &msg) |
void | save_load_memory_tree (memory_tree &b, io_buf &model_file, bool read, bool text) |
int memory_tree_ns::cmpfunc | ( | const void * | a, |
const void * | b | ||
) |
void memory_tree_ns::collect_labels_from_leaf | ( | memory_tree & | b, |
const uint64_t | cn, | ||
v_array< uint32_t > & | leaf_labs | ||
) |
Definition at line 553 of file memory_tree.cc.
References v_array< T >::clear(), memory_tree_ns::memory_tree::examples, memory_tree_ns::memory_tree::nodes, v_array< T >::push_back(), v_array< T >::size(), and v_array_contains().
Referenced by compute_hamming_loss_via_oas(), and train_one_against_some_at_leaf().
int memory_tree_ns::compare_label | ( | const void * | a, |
const void * | b | ||
) |
|
inline |
Definition at line 588 of file memory_tree.cc.
References collect_labels_from_leaf(), v_array< T >::delete_v(), hamming_loss(), example::l, MULTILABEL::labels::label_v, memory_tree_ns::memory_tree::max_routers, prediction_type::multilabels, polylabel::multilabels, polyprediction::multilabels, example::pred, LEARNER::learner< T, E >::predict(), v_array< T >::push_back(), polyprediction::scalar, polylabel::simple, and v_array< T >::size().
Referenced by predict().
Definition at line 43 of file memory_tree.cc.
References copy_array(), VW::copy_example_data(), v_array< T >::delete_v(), example::l, MULTICLASS::label_t::label, MULTILABEL::labels::label_v, polylabel::multi, and polylabel::multilabels.
Referenced by diag_kronecker_product_test(), and learn().
void memory_tree_ns::diag_kronecker_prod_fs_test | ( | features & | f1, |
features & | f2, | ||
features & | prod_f, | ||
float & | total_sum_feat_sq, | ||
float | norm_sq1, | ||
float | norm_sq2 | ||
) |
Definition at line 67 of file memory_tree.cc.
References features::delete_v(), f, features::indicies, features::push_back(), v_array< T >::size(), features::size(), and features::values.
Referenced by diag_kronecker_product_test().
void memory_tree_ns::diag_kronecker_product_test | ( | example & | ec1, |
example & | ec2, | ||
example & | ec, | ||
bool | oas = false |
||
) |
Definition at line 99 of file memory_tree.cc.
References v_array< T >::begin(), cmpfunc(), copy_example_data(), VW::dealloc_example(), diag_kronecker_prod_fs_test(), example_predict::feature_space, example_predict::indices, v_array< T >::size(), and example::total_sum_feat_sq.
Referenced by learn_at_leaf_random(), pick_nearest(), and return_reward_from_node().
void memory_tree_ns::end_pass | ( | memory_tree & | b | ) |
Definition at line 1074 of file memory_tree.cc.
References memory_tree_ns::memory_tree::current_pass, memory_tree_ns::memory_tree::examples, and v_array< T >::size().
void memory_tree_ns::experience_replay | ( | memory_tree & | b, |
single_learner & | base | ||
) |
Definition at line 994 of file memory_tree.cc.
References memory_tree_ns::memory_tree::current_pass, v_array< T >::delete_v(), memory_tree_ns::memory_tree::dream_at_update, insert_example(), random_sample_example_pop(), and route_to_leaf().
Referenced by learn().
Definition at line 654 of file memory_tree.cc.
References f, get_overlap_from_two_examples(), example::l, MULTILABEL::labels::label_v, polylabel::multilabels, and v_array< T >::size().
Referenced by predict(), and return_reward_from_node().
|
inline |
Definition at line 58 of file memory_tree.cc.
References VW::dealloc_example().
Referenced by memory_tree_ns::memory_tree::~memory_tree().
Definition at line 648 of file memory_tree.cc.
References example::l, MULTILABEL::labels::label_v, polylabel::multilabels, and over_lap().
Referenced by F1_score_for_two_examples().
|
inline |
Definition at line 547 of file memory_tree.cc.
References over_lap(), and v_array< T >::size().
Referenced by compute_hamming_loss_via_oas().
void memory_tree_ns::init_tree | ( | memory_tree & | b | ) |
Definition at line 281 of file memory_tree.cc.
References memory_tree_ns::memory_tree::construct_time, memory_tree_ns::memory_tree::current_pass, memory_tree_ns::memory_tree::dream_repeats, memory_tree_ns::memory_tree::F1_score, memory_tree_ns::memory_tree::hamming_loss, memory_tree_ns::memory_tree::iter, memory_tree_ns::memory_tree::kprod_ec, memory_tree_ns::memory_tree::learn_at_leaf, memory_tree_ns::memory_tree::max_depth, memory_tree_ns::memory_tree::max_ex_in_leaf, memory_tree_ns::memory_tree::max_nodes, memory_tree_ns::memory_tree::max_num_labels, memory_tree_ns::memory_tree::max_routers, memory_tree_ns::memory_tree::nodes, memory_tree_ns::memory_tree::num_mistakes, memory_tree_ns::memory_tree::oas, v_array< T >::push_back(), memory_tree_ns::memory_tree::routers_used, v_array< T >::size(), memory_tree_ns::memory_tree::test_mode, memory_tree_ns::memory_tree::test_time, memory_tree_ns::memory_tree::top_K, and memory_tree_ns::memory_tree::total_num_queries.
|
inline |
Definition at line 316 of file memory_tree.cc.
References memory_tree_ns::node::left, memory_tree_ns::node::nl, memory_tree_ns::node::nr, and memory_tree_ns::node::right.
Referenced by insert_example(), route_to_leaf(), and split_leaf().
void memory_tree_ns::insert_example | ( | memory_tree & | b, |
single_learner & | base, | ||
const uint32_t & | ec_array_index, | ||
bool | fake_insert = false |
||
) |
Definition at line 961 of file memory_tree.cc.
References memory_tree_ns::memory_tree::examples, insert_descent(), memory_tree_ns::memory_tree::max_ex_in_leaf, memory_tree_ns::memory_tree::max_leaf_examples, memory_tree_ns::memory_tree::max_nodes, memory_tree_ns::memory_tree::nodes, memory_tree_ns::memory_tree::oas, v_array< T >::push_back(), v_array< T >::size(), split_leaf(), train_node(), and train_one_against_some_at_leaf().
Referenced by experience_replay(), and learn().
void memory_tree_ns::learn | ( | memory_tree & | b, |
single_learner & | base, | ||
example & | ec | ||
) |
Definition at line 1020 of file memory_tree.cc.
References memory_tree_ns::memory_tree::construct_time, copy_example_data(), memory_tree_ns::memory_tree::current_pass, memory_tree_ns::memory_tree::dream_repeats, memory_tree_ns::memory_tree::examples, experience_replay(), memory_tree_ns::memory_tree::hamming_loss, insert_example(), memory_tree_ns::memory_tree::iter, memory_tree_ns::memory_tree::max_depth, memory_tree_ns::memory_tree::max_ex_in_leaf, memory_tree_ns::memory_tree::num_mistakes, memory_tree_ns::memory_tree::oas, memory_tree_ns::memory_tree::online, predict(), v_array< T >::push_back(), v_array< T >::size(), memory_tree_ns::memory_tree::test_mode, memory_tree_ns::memory_tree::test_time, memory_tree_ns::memory_tree::top_K, memory_tree_ns::memory_tree::total_num_queries, and update_rew().
Referenced by memory_tree_setup().
void memory_tree_ns::learn_at_leaf_random | ( | memory_tree & | b, |
single_learner & | base, | ||
const uint64_t & | leaf_id, | ||
example & | ec, | ||
const float & | weight | ||
) |
Definition at line 800 of file memory_tree.cc.
References memory_tree_ns::memory_tree::_random_state, diag_kronecker_product_test(), memory_tree_ns::memory_tree::examples, memory_tree_ns::memory_tree::kprod_ec, example::l, MULTICLASS::label_t::label, LEARNER::learner< T, E >::learn(), memory_tree_ns::memory_tree::max_routers, polylabel::multi, memory_tree_ns::memory_tree::nodes, normalized_linear_prod(), memory_tree_ns::memory_tree::oas, polylabel::simple, v_array< T >::size(), memory_tree_ns::memory_tree::total_num_queries, and example::weight.
Referenced by single_query_and_learn().
float memory_tree_ns::linear_kernel | ( | const flat_example * | fec1, |
const flat_example * | fec2 | ||
) |
Definition at line 241 of file memory_tree.cc.
References f, flat_example::fs, features::indicies, features::size(), and features::values.
float memory_tree_ns::normalized_linear_prod | ( | memory_tree & | b, |
example * | ec1, | ||
example * | ec2 | ||
) |
Definition at line 268 of file memory_tree.cc.
References memory_tree_ns::memory_tree::all, flatten_sort_example(), free_flatten_example(), linear_kernel(), and flat_example::total_sum_feat_sq.
Referenced by learn_at_leaf_random(), pick_nearest(), and return_reward_from_node().
|
inline |
Definition at line 519 of file memory_tree.cc.
References v_array< T >::begin(), compare_label(), and v_array< T >::size().
Referenced by get_overlap_from_two_examples(), and hamming_loss().
int64_t memory_tree_ns::pick_nearest | ( | memory_tree & | b, |
single_learner & | base, | ||
const uint64_t | cn, | ||
example & | ec | ||
) |
Definition at line 611 of file memory_tree.cc.
References memory_tree_ns::memory_tree::current_pass, diag_kronecker_product_test(), memory_tree_ns::memory_tree::examples, memory_tree_ns::memory_tree::kprod_ec, example::l, memory_tree_ns::memory_tree::learn_at_leaf, memory_tree_ns::memory_tree::max_routers, memory_tree_ns::memory_tree::nodes, normalized_linear_prod(), memory_tree_ns::memory_tree::oas, example::partial_prediction, LEARNER::learner< T, E >::predict(), polylabel::simple, and v_array< T >::size().
Referenced by predict(), and return_reward_from_node().
void memory_tree_ns::predict | ( | memory_tree & | b, |
single_learner & | base, | ||
example & | ec | ||
) |
Definition at line 666 of file memory_tree.cc.
References compute_hamming_loss_via_oas(), memory_tree_ns::memory_tree::examples, memory_tree_ns::memory_tree::F1_score, F1_score_for_two_examples(), memory_tree_ns::memory_tree::hamming_loss, example::l, MULTICLASS::label_t::label, example::loss, label_type::mc, polylabel::multi, polyprediction::multiclass, prediction_type::multilabels, polylabel::multilabels, polyprediction::multilabels, memory_tree_ns::memory_tree::nodes, memory_tree_ns::memory_tree::num_mistakes, memory_tree_ns::memory_tree::oas, pick_nearest(), example::pred, LEARNER::learner< T, E >::predict(), polyprediction::scalar, polylabel::simple, and example::weight.
Referenced by learn(), and memory_tree_setup().
|
inline |
Definition at line 332 of file memory_tree.cc.
References memory_tree_ns::memory_tree::_random_state, memory_tree_ns::memory_tree::nodes, remove_at_index(), and v_array< T >::size().
Referenced by experience_replay().
void memory_tree_ns::remove_at_index | ( | v_array< T > & | array, |
uint32_t | index | ||
) |
Definition at line 23 of file memory_tree.cc.
References v_array< T >::pop(), and v_array< T >::size().
Referenced by random_sample_example_pop().
float memory_tree_ns::return_reward_from_node | ( | memory_tree & | b, |
single_learner & | base, | ||
uint64_t | cn, | ||
example & | ec, | ||
float | weight = 1.f |
||
) |
learn the inference procedure anyway
Definition at line 733 of file memory_tree.cc.
References diag_kronecker_product_test(), memory_tree_ns::memory_tree::examples, F1_score_for_two_examples(), memory_tree_ns::memory_tree::kprod_ec, example::l, MULTICLASS::label_t::label, LEARNER::learner< T, E >::learn(), memory_tree_ns::memory_tree::learn_at_leaf, memory_tree_ns::memory_tree::max_routers, label_type::mc, polylabel::multi, polyprediction::multiclass, prediction_type::multilabels, polylabel::multilabels, polyprediction::multilabels, memory_tree_ns::memory_tree::nodes, normalized_linear_prod(), memory_tree_ns::memory_tree::oas, pick_nearest(), example::pred, LEARNER::learner< T, E >::predict(), polyprediction::scalar, polylabel::simple, memory_tree_ns::memory_tree::total_num_queries, train_one_against_some_at_leaf(), and example::weight.
Referenced by single_query_and_learn().
void memory_tree_ns::route_to_leaf | ( | memory_tree & | b, |
single_learner & | base, | ||
const uint32_t & | ec_array_index, | ||
uint64_t | cn, | ||
v_array< uint64_t > & | path, | ||
bool | insertion | ||
) |
Definition at line 824 of file memory_tree.cc.
References v_array< T >::clear(), memory_tree_ns::memory_tree::examples, insert_descent(), example::l, memory_tree_ns::memory_tree::max_leaf_examples, memory_tree_ns::memory_tree::max_nodes, label_type::mc, polylabel::multi, polyprediction::multiclass, prediction_type::multilabels, polylabel::multilabels, polyprediction::multilabels, memory_tree_ns::memory_tree::nodes, memory_tree_ns::memory_tree::oas, example::pred, LEARNER::learner< T, E >::predict(), v_array< T >::push_back(), polyprediction::scalar, polylabel::simple, v_array< T >::size(), and split_leaf().
Referenced by experience_replay(), and single_query_and_learn().
void memory_tree_ns::save_load_example | ( | example * | ec, |
io_buf & | model_file, | ||
bool & | read, | ||
bool & | text, | ||
std::stringstream & | msg, | ||
bool & | oas | ||
) |
Definition at line 1084 of file memory_tree.cc.
References v_array< T >::clear(), features::clear(), v_array< T >::delete_v(), example_predict::feature_space, example_predict::ft_offset, example_predict::indices, features::indicies, example::l, MULTICLASS::label_t::label, MULTILABEL::labels::label_v, example::loss, polylabel::multi, polylabel::multilabels, example::num_features, v_array< T >::push_back(), features::push_back(), v_array< T >::size(), features::size(), example::tag, example::total_sum_feat_sq, features::values, MULTICLASS::label_t::weight, example::weight, writeit, and writeitvar.
Referenced by save_load_memory_tree().
void memory_tree_ns::save_load_memory_tree | ( | memory_tree & | b, |
io_buf & | model_file, | ||
bool | read, | ||
bool | text | ||
) |
Definition at line 1167 of file memory_tree.cc.
References memory_tree_ns::memory_tree::all, v_array< T >::clear(), memory_tree_ns::memory_tree::examples, io_buf::files, memory_tree_ns::memory_tree::learn_at_leaf, memory_tree_ns::memory_tree::max_nodes, memory_tree_ns::memory_tree::max_num_labels, memory_tree_ns::memory_tree::nodes, memory_tree_ns::memory_tree::oas, v_array< T >::push_back(), save_load_example(), save_load_node(), v_array< T >::size(), parameters::stride_shift(), memory_tree_ns::memory_tree::test_mode, vw::weights, writeit, and writeitvar.
Referenced by memory_tree_setup().
void memory_tree_ns::save_load_node | ( | node & | cn, |
io_buf & | model_file, | ||
bool & | read, | ||
bool & | text, | ||
std::stringstream & | msg | ||
) |
Definition at line 1148 of file memory_tree.cc.
References memory_tree_ns::node::base_router, v_array< T >::clear(), memory_tree_ns::node::depth, memory_tree_ns::node::examples_index, memory_tree_ns::node::internal, memory_tree_ns::node::left, memory_tree_ns::node::nl, memory_tree_ns::node::nr, memory_tree_ns::node::parent, v_array< T >::push_back(), memory_tree_ns::node::right, v_array< T >::size(), writeit, and writeitvar.
Referenced by save_load_memory_tree().
void memory_tree_ns::single_query_and_learn | ( | memory_tree & | b, |
single_learner & | base, | ||
const uint32_t & | ec_array_index, | ||
example & | ec | ||
) |
Definition at line 879 of file memory_tree.cc.
References memory_tree_ns::memory_tree::_random_state, memory_tree_ns::memory_tree::alpha, v_array< T >::delete_v(), f, example::l, LEARNER::learner< T, E >::learn(), memory_tree_ns::memory_tree::learn_at_leaf, learn_at_leaf_random(), label_type::mc, polylabel::multi, prediction_type::multilabels, polylabel::multilabels, polyprediction::multilabels, memory_tree_ns::memory_tree::nodes, memory_tree_ns::memory_tree::oas, example::pred, return_reward_from_node(), route_to_leaf(), polylabel::simple, v_array< T >::size(), train_one_against_some_at_leaf(), and example::weight.
Referenced by update_rew().
void memory_tree_ns::split_leaf | ( | memory_tree & | b, |
single_learner & | base, | ||
const uint64_t | cn | ||
) |
Definition at line 431 of file memory_tree.cc.
References v_array< T >::delete_v(), memory_tree_ns::memory_tree::examples, insert_descent(), memory_tree_ns::memory_tree::max_depth, memory_tree_ns::memory_tree::max_ex_in_leaf, label_type::mc, prediction_type::multilabels, memory_tree_ns::memory_tree::nodes, memory_tree_ns::memory_tree::oas, LEARNER::learner< T, E >::predict(), v_array< T >::push_back(), memory_tree_ns::memory_tree::routers_used, prediction_type::scalar, v_array< T >::size(), and train_node().
Referenced by insert_example(), and route_to_leaf().
float memory_tree_ns::train_node | ( | memory_tree & | b, |
single_learner & | base, | ||
example & | ec, | ||
const uint64_t | cn | ||
) |
Definition at line 377 of file memory_tree.cc.
References memory_tree_ns::memory_tree::alpha, example::l, LEARNER::learner< T, E >::learn(), label_type::mc, polylabel::multi, polyprediction::multiclass, prediction_type::multilabels, polylabel::multilabels, polyprediction::multilabels, memory_tree_ns::memory_tree::nodes, memory_tree_ns::memory_tree::oas, example::pred, LEARNER::learner< T, E >::predict(), polyprediction::scalar, polylabel::simple, and example::weight.
|
inline |
Definition at line 570 of file memory_tree.cc.
References collect_labels_from_leaf(), example::l, label_data::label, MULTILABEL::labels::label_v, LEARNER::learner< T, E >::learn(), memory_tree_ns::memory_tree::max_routers, prediction_type::multilabels, polylabel::multilabels, polyprediction::multilabels, example::pred, polylabel::simple, v_array< T >::size(), and v_array_contains().
Referenced by insert_example(), return_reward_from_node(), and single_query_and_learn().
void memory_tree_ns::update_rew | ( | memory_tree & | b, |
single_learner & | base, | ||
const uint32_t & | ec_array_index, | ||
example & | ec | ||
) |
Definition at line 954 of file memory_tree.cc.
References single_query_and_learn().
Referenced by learn().