jubatus_core  0.1.2
Jubatus: Online machine learning framework for distributed environment
Public Member Functions | Static Public Member Functions | Protected Attributes | Static Protected Attributes | List of all members
jubatus::core::recommender::recommender_base Class Referenceabstract

#include <recommender_base.hpp>

Inheritance diagram for jubatus::core::recommender::recommender_base:
Inheritance graph
Collaboration diagram for jubatus::core::recommender::recommender_base:
Collaboration graph

Public Member Functions

virtual void clear ()=0
 
virtual void clear_row (const std::string &id)=0
 
void complete_row (const std::string &id, common::sfv_t &ret) const
 
void complete_row (const common::sfv_t &query, common::sfv_t &ret) const
 
void decode_row (const std::string &id, common::sfv_t &ret) const
 
virtual void get_all_row_ids (std::vector< std::string > &ids) const =0
 
virtual const core::storage::recommender_storage_baseget_const_storage () const
 
virtual jubatus::util::lang::shared_ptr< const storage::column_tableget_const_table () const
 
virtual framework::mixableget_mixable () const =0
 
virtual jubatus::util::lang::shared_ptr< storage::column_tableget_table ()
 
virtual jubatus::util::lang::shared_ptr< unlearner::unlearner_baseget_unlearner ()
 
virtual void neighbor_row (const common::sfv_t &query, std::vector< std::pair< std::string, float > > &ids, size_t ret_num) const =0
 
virtual void neighbor_row (const std::string &id, std::vector< std::pair< std::string, float > > &ids, size_t ret_num) const
 
 recommender_base ()
 
virtual void similar_row (const common::sfv_t &query, std::vector< std::pair< std::string, float > > &ids, size_t ret_num) const =0
 
virtual void similar_row (const std::string &id, std::vector< std::pair< std::string, float > > &ids, size_t ret_num) const
 
virtual std::string type () const =0
 
virtual void update_row (const std::string &id, const sfv_diff_t &diff)=0
 
virtual ~recommender_base ()
 
- Public Member Functions inherited from jubatus::core::framework::model
virtual void pack (framework::packer &packer) const =0
 
virtual void unpack (msgpack::object o)=0
 
virtual ~model ()
 

Static Public Member Functions

static float calc_l2norm (const common::sfv_t &query)
 
static float calc_similality (common::sfv_t &q1, common::sfv_t &q2)
 

Protected Attributes

core::storage::sparse_matrix_storage orig_
 

Static Protected Attributes

static const uint64_t complete_row_similar_num_ = 128
 

Detailed Description

Definition at line 40 of file recommender_base.hpp.

Constructor & Destructor Documentation

jubatus::core::recommender::recommender_base::recommender_base ( )

Definition at line 37 of file recommender_base.cpp.

37  {
38 }
jubatus::core::recommender::recommender_base::~recommender_base ( )
virtual

Definition at line 40 of file recommender_base.cpp.

40  {
41 }

Member Function Documentation

float jubatus::core::recommender::recommender_base::calc_l2norm ( const common::sfv_t query)
static

Definition at line 137 of file recommender_base.cpp.

Referenced by jubatus::core::driver::recommender::calc_l2norm(), and calc_similality().

137  {
138  float ret = 0.f;
139  for (size_t i = 0; i < query.size(); ++i) {
140  ret += query[i].second * query[i].second;
141  }
142  return std::sqrt(ret);
143 }

Here is the caller graph for this function:

float jubatus::core::recommender::recommender_base::calc_similality ( common::sfv_t q1,
common::sfv_t q2 
)
static

Definition at line 108 of file recommender_base.cpp.

References calc_l2norm().

Referenced by jubatus::core::driver::recommender::calc_similality().

108  {
109  float q1_norm = calc_l2norm(q1);
110  float q2_norm = calc_l2norm(q2);
111  if (q1_norm == 0.f || q2_norm == 0.f) {
112  return 0.f;
113  }
114  sort(q1.begin(), q1.end());
115  sort(q2.begin(), q2.end());
116 
117  size_t i1 = 0;
118  size_t i2 = 0;
119  float ret = 0.f;
120  while (i1 < q1.size() && i2 < q2.size()) {
121  const string& ind1 = q1[i1].first;
122  const string& ind2 = q2[i2].first;
123  if (ind1 < ind2) {
124  ++i1;
125  } else if (ind1 > ind2) {
126  ++i2;
127  } else {
128  ret += q1[i1].second * q2[i2].second;
129  ++i1;
130  ++i2;
131  }
132  }
133 
134  return ret / q1_norm / q2_norm;
135 }
static float calc_l2norm(const common::sfv_t &query)

Here is the call graph for this function:

Here is the caller graph for this function:

virtual void jubatus::core::recommender::recommender_base::clear ( )
pure virtual
virtual void jubatus::core::recommender::recommender_base::clear_row ( const std::string &  id)
pure virtual
void jubatus::core::recommender::recommender_base::complete_row ( const std::string &  id,
common::sfv_t ret 
) const

Definition at line 68 of file recommender_base.cpp.

References jubatus::core::storage::sparse_matrix_storage::get_row(), and orig_.

69  {
70  ret.clear();
71  common::sfv_t sfv;
72  orig_.get_row(id, sfv);
73  complete_row(sfv, ret);
74 }
void get_row(const std::string &row, std::vector< std::pair< std::string, float > > &columns) const
void complete_row(const std::string &id, common::sfv_t &ret) const
core::storage::sparse_matrix_storage orig_
std::vector< std::pair< std::string, float > > sfv_t
Definition: type.hpp:29

Here is the call graph for this function:

void jubatus::core::recommender::recommender_base::complete_row ( const common::sfv_t query,
common::sfv_t ret 
) const

Definition at line 76 of file recommender_base.cpp.

References complete_row_similar_num_, jubatus::core::storage::sparse_matrix_storage::get_row(), orig_, similar_row(), and jubatus::core::common::sort_and_merge().

77  {
78  ret.clear();
79  vector<pair<string, float> > ids;
81  if (ids.size() == 0) {
82  return;
83  }
84 
85  size_t exist_row_num = 0;
86  for (size_t i = 0; i < ids.size(); ++i) {
87  common::sfv_t row;
88  orig_.get_row(ids[i].first, row);
89  if (row.size() == 0) {
90  continue;
91  } else {
92  ++exist_row_num;
93  }
94  for (size_t j = 0; j < row.size(); ++j) {
95  ret.push_back(make_pair(row[j].first, row[j].second));
96  }
97  }
98 
99  if (exist_row_num == 0) {
100  return;
101  }
103  for (size_t i = 0; i < ret.size(); ++i) {
104  ret[i].second /= exist_row_num;
105  }
106 }
void get_row(const std::string &row, std::vector< std::pair< std::string, float > > &columns) const
virtual void similar_row(const common::sfv_t &query, std::vector< std::pair< std::string, float > > &ids, size_t ret_num) const =0
core::storage::sparse_matrix_storage orig_
void sort_and_merge(sfv_t &sfv)
Definition: vector_util.cpp:28
std::vector< std::pair< std::string, float > > sfv_t
Definition: type.hpp:29

Here is the call graph for this function:

void jubatus::core::recommender::recommender_base::decode_row ( const std::string &  id,
common::sfv_t ret 
) const

Definition at line 62 of file recommender_base.cpp.

References jubatus::core::storage::sparse_matrix_storage::get_row(), and orig_.

Referenced by jubatus::core::recommender::recommender_mock::clear_row().

63  {
64  ret.clear();
65  orig_.get_row(id, ret);
66 }
void get_row(const std::string &row, std::vector< std::pair< std::string, float > > &columns) const
core::storage::sparse_matrix_storage orig_

Here is the call graph for this function:

Here is the caller graph for this function:

virtual void jubatus::core::recommender::recommender_base::get_all_row_ids ( std::vector< std::string > &  ids) const
pure virtual
virtual const core::storage::recommender_storage_base* jubatus::core::recommender::recommender_base::get_const_storage ( ) const
inlinevirtual

Definition at line 64 of file recommender_base.hpp.

65  {
66  return NULL;
67  }
virtual jubatus::util::lang::shared_ptr<const storage::column_table> jubatus::core::recommender::recommender_base::get_const_table ( ) const
inlinevirtual

Reimplemented in jubatus::core::recommender::nearest_neighbor_recommender.

Definition at line 73 of file recommender_base.hpp.

73  {
74  return jubatus::util::lang::shared_ptr<const storage::column_table>();
75  }
virtual framework::mixable* jubatus::core::recommender::recommender_base::get_mixable ( ) const
pure virtual
virtual jubatus::util::lang::shared_ptr<storage::column_table> jubatus::core::recommender::recommender_base::get_table ( )
inlinevirtual

Reimplemented in jubatus::core::recommender::nearest_neighbor_recommender.

Definition at line 69 of file recommender_base.hpp.

69  {
70  return jubatus::util::lang::shared_ptr<storage::column_table>();
71  }
virtual jubatus::util::lang::shared_ptr<unlearner::unlearner_base> jubatus::core::recommender::recommender_base::get_unlearner ( )
inlinevirtual

Reimplemented in jubatus::core::recommender::nearest_neighbor_recommender.

Definition at line 78 of file recommender_base.hpp.

78  {
79  return jubatus::util::lang::shared_ptr<unlearner::unlearner_base>();
80  }
virtual void jubatus::core::recommender::recommender_base::neighbor_row ( const common::sfv_t query,
std::vector< std::pair< std::string, float > > &  ids,
size_t  ret_num 
) const
pure virtual
virtual void jubatus::core::recommender::recommender_base::neighbor_row ( const std::string &  id,
std::vector< std::pair< std::string, float > > &  ids,
size_t  ret_num 
) const
virtual
virtual void jubatus::core::recommender::recommender_base::similar_row ( const common::sfv_t query,
std::vector< std::pair< std::string, float > > &  ids,
size_t  ret_num 
) const
pure virtual
void jubatus::core::recommender::recommender_base::similar_row ( const std::string &  id,
std::vector< std::pair< std::string, float > > &  ids,
size_t  ret_num 
) const
virtual

Reimplemented in jubatus::core::recommender::euclid_lsh.

Definition at line 43 of file recommender_base.cpp.

References jubatus::core::storage::sparse_matrix_storage::get_row(), orig_, and similar_row().

45  {
46  ids.clear();
47  common::sfv_t sfv;
48  orig_.get_row(id, sfv);
49  similar_row(sfv, ids, ret_num);
50 }
void get_row(const std::string &row, std::vector< std::pair< std::string, float > > &columns) const
virtual void similar_row(const common::sfv_t &query, std::vector< std::pair< std::string, float > > &ids, size_t ret_num) const =0
core::storage::sparse_matrix_storage orig_
std::vector< std::pair< std::string, float > > sfv_t
Definition: type.hpp:29

Here is the call graph for this function:

virtual std::string jubatus::core::recommender::recommender_base::type ( ) const
pure virtual
virtual void jubatus::core::recommender::recommender_base::update_row ( const std::string &  id,
const sfv_diff_t diff 
)
pure virtual

Member Data Documentation

const uint64_t jubatus::core::recommender::recommender_base::complete_row_similar_num_ = 128
staticprotected

Definition at line 100 of file recommender_base.hpp.

Referenced by complete_row().

core::storage::sparse_matrix_storage jubatus::core::recommender::recommender_base::orig_
protected

Definition at line 103 of file recommender_base.hpp.

Referenced by jubatus::core::recommender::inverted_index::clear(), jubatus::core::recommender::nearest_neighbor_recommender::clear(), jubatus::core::recommender::recommender_mock::clear(), jubatus::core::recommender::minhash::clear(), jubatus::core::recommender::lsh::clear(), jubatus::core::recommender::euclid_lsh::clear(), jubatus::core::recommender::inverted_index::clear_row(), jubatus::core::recommender::nearest_neighbor_recommender::clear_row(), jubatus::core::recommender::recommender_mock::clear_row(), jubatus::core::recommender::minhash::clear_row(), jubatus::core::recommender::lsh::clear_row(), jubatus::core::recommender::euclid_lsh::clear_row(), complete_row(), decode_row(), jubatus::core::recommender::recommender_mock::get_all_row_ids(), jubatus::core::recommender::inverted_index::pack(), jubatus::core::recommender::recommender_mock::pack(), jubatus::core::recommender::nearest_neighbor_recommender::pack(), jubatus::core::recommender::minhash::pack(), jubatus::core::recommender::lsh::pack(), jubatus::core::recommender::euclid_lsh::pack(), similar_row(), jubatus::core::recommender::nearest_neighbor_recommender::unlearn_row(), jubatus::core::recommender::inverted_index::unpack(), jubatus::core::recommender::recommender_mock::unpack(), jubatus::core::recommender::nearest_neighbor_recommender::unpack(), jubatus::core::recommender::minhash::unpack(), jubatus::core::recommender::lsh::unpack(), jubatus::core::recommender::euclid_lsh::unpack(), jubatus::core::recommender::inverted_index::update_row(), jubatus::core::recommender::nearest_neighbor_recommender::update_row(), jubatus::core::recommender::recommender_mock::update_row(), jubatus::core::recommender::minhash::update_row(), jubatus::core::recommender::lsh::update_row(), and jubatus::core::recommender::euclid_lsh::update_row().


The documentation for this class was generated from the following files: