jubatus_core  0.1.2
Jubatus: Online machine learning framework for distributed environment
Classes | Public Member Functions | Private Member Functions | Private Attributes | List of all members
jubatus::core::recommender::nearest_neighbor_recommender Class Reference

#include <nearest_neighbor_recommender.hpp>

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

Classes

class  unlearning_callback
 

Public Member Functions

void clear ()
 
void clear_row (const std::string &id)
 
void get_all_row_ids (std::vector< std::string > &ids) const
 
framework::mixableget_mixable () const
 
 nearest_neighbor_recommender (jubatus::util::lang::shared_ptr< nearest_neighbor::nearest_neighbor_base > nearest_neighbor_engine)
 
 nearest_neighbor_recommender (jubatus::util::lang::shared_ptr< nearest_neighbor::nearest_neighbor_base > nearest_neighbor_engine, jubatus::util::lang::shared_ptr< unlearner::unlearner_base > unlearner)
 
void neighbor_row (const common::sfv_t &query, std::vector< std::pair< std::string, float > > &ids, size_t ret_num) const
 
void pack (framework::packer &packer) const
 
void similar_row (const common::sfv_t &query, std::vector< std::pair< std::string, float > > &ids, size_t ret_num) const
 
std::string type () const
 
void unpack (msgpack::object o)
 
void update_row (const std::string &id, const sfv_diff_t &diff)
 
- Public Member Functions inherited from jubatus::core::recommender::recommender_base
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 const core::storage::recommender_storage_baseget_const_storage () const
 
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 std::string &id, std::vector< std::pair< std::string, float > > &ids, size_t ret_num) const
 
virtual ~recommender_base ()
 
- Public Member Functions inherited from jubatus::core::framework::model
virtual ~model ()
 

Private Member Functions

jubatus::util::lang::shared_ptr< const storage::column_tableget_const_table () const
 
jubatus::util::lang::shared_ptr< storage::column_tableget_table ()
 
jubatus::util::lang::shared_ptr< unlearner::unlearner_baseget_unlearner ()
 
void unlearn_row (const std::string &id)
 

Private Attributes

jubatus::util::lang::shared_ptr< nearest_neighbor::nearest_neighbor_basenearest_neighbor_engine_
 
jubatus::util::lang::shared_ptr< unlearner::unlearner_baseunlearner_
 

Additional Inherited Members

- Static Public Member Functions inherited from jubatus::core::recommender::recommender_base
static float calc_l2norm (const common::sfv_t &query)
 
static float calc_similality (common::sfv_t &q1, common::sfv_t &q2)
 
- Protected Attributes inherited from jubatus::core::recommender::recommender_base
core::storage::sparse_matrix_storage orig_
 
- Static Protected Attributes inherited from jubatus::core::recommender::recommender_base
static const uint64_t complete_row_similar_num_ = 128
 

Detailed Description

Definition at line 40 of file nearest_neighbor_recommender.hpp.

Constructor & Destructor Documentation

jubatus::core::recommender::nearest_neighbor_recommender::nearest_neighbor_recommender ( jubatus::util::lang::shared_ptr< nearest_neighbor::nearest_neighbor_base nearest_neighbor_engine)
explicit

Definition at line 48 of file nearest_neighbor_recommender.cpp.

51  : nearest_neighbor_engine_(nearest_neighbor_engine) {
52 }
jubatus::util::lang::shared_ptr< nearest_neighbor::nearest_neighbor_base > nearest_neighbor_engine_
jubatus::core::recommender::nearest_neighbor_recommender::nearest_neighbor_recommender ( jubatus::util::lang::shared_ptr< nearest_neighbor::nearest_neighbor_base nearest_neighbor_engine,
jubatus::util::lang::shared_ptr< unlearner::unlearner_base unlearner 
)

Definition at line 54 of file nearest_neighbor_recommender.cpp.

References unlearner_.

58  : nearest_neighbor_engine_(nearest_neighbor_engine),
60  unlearner_->set_callback(unlearning_callback(this));
61 }
jubatus::util::lang::shared_ptr< unlearner::unlearner_base > unlearner_
jubatus::util::data::optional< std::string > unlearner
jubatus::util::lang::function< void(std::string)> unlearning_callback
jubatus::util::lang::shared_ptr< nearest_neighbor::nearest_neighbor_base > nearest_neighbor_engine_

Member Function Documentation

void jubatus::core::recommender::nearest_neighbor_recommender::clear ( )
virtual

Implements jubatus::core::recommender::recommender_base.

Definition at line 77 of file nearest_neighbor_recommender.cpp.

References jubatus::core::storage::sparse_matrix_storage::clear(), nearest_neighbor_engine_, jubatus::core::recommender::recommender_base::orig_, and unlearner_.

77  {
78  orig_.clear();
79  nearest_neighbor_engine_->clear();
80  if (unlearner_) {
81  unlearner_->clear();
82  }
83 }
jubatus::util::lang::shared_ptr< unlearner::unlearner_base > unlearner_
core::storage::sparse_matrix_storage orig_
jubatus::util::lang::shared_ptr< nearest_neighbor::nearest_neighbor_base > nearest_neighbor_engine_

Here is the call graph for this function:

void jubatus::core::recommender::nearest_neighbor_recommender::clear_row ( const std::string &  id)
virtual

Implements jubatus::core::recommender::recommender_base.

Definition at line 85 of file nearest_neighbor_recommender.cpp.

References get_table(), jubatus::core::recommender::recommender_base::orig_, jubatus::core::storage::sparse_matrix_storage::remove_row(), and unlearner_.

85  {
86  orig_.remove_row(id);
87  get_table()->delete_row(id);
88  if (unlearner_) {
89  unlearner_->remove(id);
90  }
91 }
jubatus::util::lang::shared_ptr< storage::column_table > get_table()
jubatus::util::lang::shared_ptr< unlearner::unlearner_base > unlearner_
core::storage::sparse_matrix_storage orig_

Here is the call graph for this function:

void jubatus::core::recommender::nearest_neighbor_recommender::get_all_row_ids ( std::vector< std::string > &  ids) const
virtual

Implements jubatus::core::recommender::recommender_base.

Definition at line 116 of file nearest_neighbor_recommender.cpp.

References nearest_neighbor_engine_.

117  {
118  nearest_neighbor_engine_->get_all_row_ids(ids);
119 }
jubatus::util::lang::shared_ptr< nearest_neighbor::nearest_neighbor_base > nearest_neighbor_engine_
jubatus::util::lang::shared_ptr< const storage::column_table > jubatus::core::recommender::nearest_neighbor_recommender::get_const_table ( ) const
privatevirtual

Reimplemented from jubatus::core::recommender::recommender_base.

Definition at line 149 of file nearest_neighbor_recommender.cpp.

References nearest_neighbor_engine_.

149  {
150  return nearest_neighbor_engine_->get_const_table();
151 }
jubatus::util::lang::shared_ptr< nearest_neighbor::nearest_neighbor_base > nearest_neighbor_engine_
framework::mixable * jubatus::core::recommender::nearest_neighbor_recommender::get_mixable ( ) const
virtual

Implements jubatus::core::recommender::recommender_base.

Definition at line 125 of file nearest_neighbor_recommender.cpp.

References nearest_neighbor_engine_.

125  {
126  return nearest_neighbor_engine_->get_mixable();
127 }
jubatus::util::lang::shared_ptr< nearest_neighbor::nearest_neighbor_base > nearest_neighbor_engine_
jubatus::util::lang::shared_ptr< storage::column_table > jubatus::core::recommender::nearest_neighbor_recommender::get_table ( )
privatevirtual

Reimplemented from jubatus::core::recommender::recommender_base.

Definition at line 144 of file nearest_neighbor_recommender.cpp.

References nearest_neighbor_engine_.

Referenced by clear_row(), and unlearn_row().

144  {
145  return nearest_neighbor_engine_->get_table();
146 }
jubatus::util::lang::shared_ptr< nearest_neighbor::nearest_neighbor_base > nearest_neighbor_engine_

Here is the caller graph for this function:

jubatus::util::lang::shared_ptr< unlearner::unlearner_base > jubatus::core::recommender::nearest_neighbor_recommender::get_unlearner ( )
privatevirtual

Reimplemented from jubatus::core::recommender::recommender_base.

Definition at line 154 of file nearest_neighbor_recommender.cpp.

References unlearner_.

154  {
155  return unlearner_;
156 }
jubatus::util::lang::shared_ptr< unlearner::unlearner_base > unlearner_
void jubatus::core::recommender::nearest_neighbor_recommender::neighbor_row ( const common::sfv_t query,
std::vector< std::pair< std::string, float > > &  ids,
size_t  ret_num 
) const
virtual

Implements jubatus::core::recommender::recommender_base.

Definition at line 70 of file nearest_neighbor_recommender.cpp.

References nearest_neighbor_engine_.

73  {
74  nearest_neighbor_engine_->neighbor_row(query, ids, ret_num);
75 }
jubatus::util::lang::shared_ptr< nearest_neighbor::nearest_neighbor_base > nearest_neighbor_engine_
void jubatus::core::recommender::nearest_neighbor_recommender::pack ( framework::packer packer) const
virtual

Implements jubatus::core::framework::model.

Definition at line 129 of file nearest_neighbor_recommender.cpp.

References nearest_neighbor_engine_, jubatus::core::recommender::recommender_base::orig_, and jubatus::core::storage::sparse_matrix_storage::pack().

129  {
130  packer.pack_array(2);
131  orig_.pack(packer);
133 }
void pack(framework::packer &packer) const
msgpack::packer< jubatus_packer > packer
Definition: bandit_base.hpp:31
core::storage::sparse_matrix_storage orig_
jubatus::util::lang::shared_ptr< nearest_neighbor::nearest_neighbor_base > nearest_neighbor_engine_

Here is the call graph for this function:

void jubatus::core::recommender::nearest_neighbor_recommender::similar_row ( const common::sfv_t query,
std::vector< std::pair< std::string, float > > &  ids,
size_t  ret_num 
) const
virtual

Implements jubatus::core::recommender::recommender_base.

Definition at line 63 of file nearest_neighbor_recommender.cpp.

References nearest_neighbor_engine_.

66  {
67  nearest_neighbor_engine_->similar_row(query, ids, ret_num);
68 }
jubatus::util::lang::shared_ptr< nearest_neighbor::nearest_neighbor_base > nearest_neighbor_engine_
std::string jubatus::core::recommender::nearest_neighbor_recommender::type ( ) const
virtual

Implements jubatus::core::recommender::recommender_base.

Definition at line 121 of file nearest_neighbor_recommender.cpp.

References nearest_neighbor_engine_.

121  {
122  return "nearest_neighbor_recommender:" + nearest_neighbor_engine_->type();
123 }
jubatus::util::lang::shared_ptr< nearest_neighbor::nearest_neighbor_base > nearest_neighbor_engine_
void jubatus::core::recommender::nearest_neighbor_recommender::unlearn_row ( const std::string &  id)
private

Callback from unlearner

Definition at line 96 of file nearest_neighbor_recommender.cpp.

References get_table(), jubatus::core::recommender::recommender_base::orig_, and jubatus::core::storage::sparse_matrix_storage::remove_row().

Referenced by jubatus::core::recommender::nearest_neighbor_recommender::unlearning_callback::operator()().

96  {
97  orig_.remove_row(id);
98  get_table()->delete_row(id);
99 }
jubatus::util::lang::shared_ptr< storage::column_table > get_table()
core::storage::sparse_matrix_storage orig_

Here is the call graph for this function:

Here is the caller graph for this function:

void jubatus::core::recommender::nearest_neighbor_recommender::unpack ( msgpack::object  o)
virtual

Implements jubatus::core::framework::model.

Definition at line 135 of file nearest_neighbor_recommender.cpp.

References nearest_neighbor_engine_, jubatus::core::recommender::recommender_base::orig_, and jubatus::core::storage::sparse_matrix_storage::unpack().

135  {
136  if (o.type != msgpack::type::ARRAY || o.via.array.size != 2) {
137  throw msgpack::type_error();
138  }
139  orig_.unpack(o.via.array.ptr[0]);
140  nearest_neighbor_engine_->unpack(o.via.array.ptr[1]);
141 }
core::storage::sparse_matrix_storage orig_
jubatus::util::lang::shared_ptr< nearest_neighbor::nearest_neighbor_base > nearest_neighbor_engine_

Here is the call graph for this function:

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

Implements jubatus::core::recommender::recommender_base.

Definition at line 101 of file nearest_neighbor_recommender.cpp.

References jubatus::core::storage::sparse_matrix_storage::get_row(), JUBATUS_EXCEPTION, nearest_neighbor_engine_, jubatus::core::recommender::recommender_base::orig_, jubatus::core::storage::sparse_matrix_storage::set_row(), and unlearner_.

103  {
104  if (unlearner_) {
105  if (!unlearner_->touch(id)) {
106  throw JUBATUS_EXCEPTION(common::exception::runtime_error(
107  "no more space available to add new ID: " + id));
108  }
109  }
110  orig_.set_row(id, diff);
111  common::sfv_t row;
112  orig_.get_row(id, row);
113  nearest_neighbor_engine_->set_row(id, row);
114 }
void get_row(const std::string &row, std::vector< std::pair< std::string, float > > &columns) const
jubatus::util::lang::shared_ptr< unlearner::unlearner_base > unlearner_
#define JUBATUS_EXCEPTION(e)
Definition: exception.hpp:79
core::storage::sparse_matrix_storage orig_
std::vector< std::pair< std::string, float > > sfv_t
Definition: type.hpp:29
void set_row(const std::string &row, const std::vector< std::pair< std::string, float > > &columns)
jubatus::util::lang::shared_ptr< nearest_neighbor::nearest_neighbor_base > nearest_neighbor_engine_

Here is the call graph for this function:

Member Data Documentation

jubatus::util::lang::shared_ptr<nearest_neighbor::nearest_neighbor_base> jubatus::core::recommender::nearest_neighbor_recommender::nearest_neighbor_engine_
private
jubatus::util::lang::shared_ptr<unlearner::unlearner_base> jubatus::core::recommender::nearest_neighbor_recommender::unlearner_
private

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