24 #include "../common/exception.hpp"
25 #include "../common/hash.hpp"
27 #include "../storage/bit_index_storage.hpp"
36 namespace recommender {
41 : hash_num(DEFAULT_HASH_NUM) {
46 if (!(1 <= hash_num)) {
54 : hash_num_(config.hash_num) {
65 : hash_num_(DEFAULT_HASH_NUM) {
74 vector<pair<string, float> >& ids,
75 size_t ret_num)
const {
88 vector<pair<string, float> >& ids,
89 size_t ret_num)
const {
91 for (
size_t i = 0; i < ids.size(); ++i) {
92 ids[i].second = 1 - ids[i].second;
98 jubatus::util::data::unordered_map<std::string, std::vector<float> >()
111 vector<float> lsh_vals;
117 for (
size_t i = 0; i < sfv.size(); ++i) {
145 return string(
"lsh");
160 packer.pack_array(2);
166 if (o.type != msgpack::type::ARRAY || o.via.array.size != 2) {
167 throw msgpack::type_error();
void similar_row(const common::sfv_t &query, std::vector< std::pair< std::string, float > > &ids, size_t ret_num) const
void get_row(const std::string &row, std::vector< std::pair< std::string, float > > &columns) const
void pack(framework::packer &packer) const
void unpack(msgpack::object o)
void get_all_row_ids(std::vector< std::string > &ids) const
void set_bit_vector(const std::vector< float > &vec, bit_vector &bit_vec)
void update_row(const std::string &id, const sfv_diff_t &diff)
void unpack(msgpack::object o)
void neighbor_row(const common::sfv_t &query, std::vector< std::pair< std::string, float > > &ids, size_t ret_num) const
jubatus::util::lang::shared_ptr< Model > model_ptr
core::common::sfv_t sfv_diff_t
void generate_column_bases(const common::sfv_t &v)
#define JUBATUS_EXCEPTION(e)
void pack(framework::packer &packer) const
framework::mixable * get_mixable() const
void clear_row(const std::string &id)
void generate_column_base(const std::string &column)
void swap(weighted_point &p1, weighted_point &p2)
msgpack::packer< jubatus_packer > packer
bit_vector_base< uint64_t > bit_vector
void prod_invert_and_vector(const unordered_map< string, vector< float > > &matrix, const common::sfv_t &vec, size_t dim, vector< float > &ret)
jubatus::util::data::unordered_map< std::string, std::vector< float > > column2baseval_
static const uint64_t DEFAULT_HASH_NUM
void calc_lsh_values(const common::sfv_t &sfv, storage::bit_vector &bv) const
void remove_row(const std::string &row)
core::storage::sparse_matrix_storage orig_
std::vector< std::pair< std::string, float > > sfv_t
jubatus::util::lang::shared_ptr< storage::mixable_bit_index_storage > mixable_storage_
void generate_random_vector(size_t dim, uint32_t seed, vector< float > &ret)
void set_row(const std::string &row, const std::vector< std::pair< std::string, float > > &columns)
static uint64_t calc_string_hash(const std::string &s)
storage::mixable_lsh_index_storage::model_ptr model_ptr