48 #ifndef __IMPLICIT_ALS_MODEL_H__ 49 #define __IMPLICIT_ALS_MODEL_H__ 51 #include "algorithms/model.h" 52 #include "data_management/data/homogen_numeric_table.h" 67 namespace implicit_als
82 struct DAAL_EXPORT Parameter :
public daal::algorithms::Parameter
92 Parameter(
size_t nFactors = 10,
size_t maxIterations = 5,
double alpha = 40.0,
double lambda = 0.01,
93 double preferenceThreshold = 0.0) :
94 nFactors(nFactors), maxIterations(maxIterations), alpha(alpha), lambda(lambda),
95 preferenceThreshold(preferenceThreshold)
102 double preferenceThreshold;
104 services::Status check() const DAAL_C11_OVERRIDE;
116 class DAAL_EXPORT Model : public daal::algorithms::Model
120 DECLARE_MODEL(Model, daal::algorithms::Model);
130 template<
typename modelFPType>
131 DAAL_EXPORT Model(
size_t nUsers,
size_t nItems,
const Parameter ¶meter, modelFPType dummy);
146 template<
typename modelFPType>
147 DAAL_EXPORT
static services::SharedPtr<Model> create(
size_t nUsers,
size_t nItems,
148 const Parameter ¶meter,
149 services::Status *stat = NULL);
158 data_management::NumericTablePtr getUsersFactors()
const {
return _usersFactors; }
165 data_management::NumericTablePtr getItemsFactors()
const {
return _itemsFactors; }
168 data_management::NumericTablePtr _usersFactors;
169 data_management::NumericTablePtr _itemsFactors;
173 template<
typename Archive,
bool onDeserialize>
174 services::Status serialImpl(Archive *arch)
176 daal::algorithms::Model::serialImpl<Archive, onDeserialize>(arch);
178 arch->setSharedPtrObj(_usersFactors);
179 arch->setSharedPtrObj(_itemsFactors);
181 return services::Status();
184 template<
typename modelFPType>
185 DAAL_EXPORT Model(
size_t nUsers,
size_t nItems,
const Parameter ¶meter,
186 modelFPType dummy, services::Status &st);
189 typedef services::SharedPtr<Model> ModelPtr;
199 class DAAL_EXPORT PartialModel :
public daal::algorithms::Model
202 DECLARE_SERIALIZABLE_CAST(PartialModel);
211 template<
typename modelFPType>
212 DAAL_EXPORT PartialModel(
const Parameter ¶meter,
size_t size, modelFPType dummy);
222 template<
typename modelFPType>
223 DAAL_EXPORT PartialModel(
const Parameter ¶meter,
size_t offset,
224 data_management::NumericTablePtr indices, modelFPType dummy);
232 PartialModel(data_management::NumericTablePtr factors,
233 data_management::NumericTablePtr indices);
248 template<
typename modelFPType>
249 DAAL_EXPORT
static services::SharedPtr<PartialModel> create(
const Parameter ¶meter,
size_t size,
250 services::Status *stat = NULL);
259 template<
typename modelFPType>
260 DAAL_EXPORT
static services::SharedPtr<PartialModel> create(
const Parameter ¶meter,
size_t offset,
261 const data_management::NumericTablePtr &indices,
262 services::Status *stat = NULL);
270 static services::SharedPtr<PartialModel> create(
const data_management::NumericTablePtr &factors,
271 const data_management::NumericTablePtr &indices,
272 services::Status *stat = NULL);
274 virtual ~PartialModel() { }
280 data_management::NumericTablePtr getFactors()
const {
return _factors; }
286 data_management::NumericTablePtr getIndices()
const {
return _indices; }
289 data_management::NumericTablePtr _factors;
290 data_management::NumericTablePtr _indices;
292 template<
typename Archive,
bool onDeserialize>
293 services::Status serialImpl(Archive *arch)
295 daal::algorithms::Model::serialImpl<Archive, onDeserialize>(arch);
297 arch->setSharedPtrObj(_factors);
298 arch->setSharedPtrObj(_indices);
300 return services::Status();
303 template<
typename modelFPType>
304 DAAL_EXPORT PartialModel(
const Parameter ¶meter,
size_t size, modelFPType dummy, services::Status &st);
306 template<
typename modelFPType>
307 DAAL_EXPORT PartialModel(
const Parameter ¶meter,
size_t offset,
308 const data_management::NumericTablePtr &indices,
309 modelFPType dummy, services::Status &st);
311 PartialModel(
const data_management::NumericTablePtr &factors,
312 const data_management::NumericTablePtr &indices,
313 services::Status &st);
316 template<
typename modelFPType>
317 DAAL_EXPORT services::Status initialize(
const Parameter ¶meter,
size_t size);
319 template<
typename modelFPType>
320 DAAL_EXPORT services::Status initialize(
const Parameter ¶meter,
size_t offset,
321 const data_management::NumericTablePtr &indices);
324 typedef services::SharedPtr<PartialModel> PartialModelPtr;
326 using interface1::Parameter;
327 using interface1::ModelPtr;
328 using interface1::Model;
329 using interface1::PartialModelPtr;
330 using interface1::PartialModel;
daal::algorithms::implicit_als::interface1::Parameter::lambda
double lambda
Definition: implicit_als_model.h:101
daal::services::interface1::Status
Class that holds the results of API calls. In case of API routine failure it contains the list of err...
Definition: error_handling.h:491
daal
Definition: algorithm_base_common.h:57
daal::algorithms::implicit_als::interface1::Parameter::Parameter
Parameter(size_t nFactors=10, size_t maxIterations=5, double alpha=40.0, double lambda=0.01, double preferenceThreshold=0.0)
Definition: implicit_als_model.h:92
daal::algorithms::implicit_als::interface1::Model::getItemsFactors
data_management::NumericTablePtr getItemsFactors() const
Definition: implicit_als_model.h:165
daal::algorithms::implicit_als::interface1::Parameter
Parameters for the compute() method of the implicit ALS algorithm.
Definition: implicit_als_model.h:82
daal::algorithms::implicit_als::interface1::PartialModel::getIndices
data_management::NumericTablePtr getIndices() const
Definition: implicit_als_model.h:286
daal::algorithms::implicit_als::interface1::PartialModel::getFactors
data_management::NumericTablePtr getFactors() const
Definition: implicit_als_model.h:280
daal::algorithms::interface1::Parameter
Base class to represent computation parameters. Algorithm-specific parameters are represented as deri...
Definition: algorithm_types.h:86
daal::services::interface1::SharedPtr
Shared pointer that retains shared ownership of an object through a pointer. Several SharedPtr object...
Definition: daal_shared_ptr.h:187
daal::algorithms::implicit_als::interface1::Model::getUsersFactors
data_management::NumericTablePtr getUsersFactors() const
Definition: implicit_als_model.h:158
daal::algorithms::implicit_als::interface1::PartialModel
Partial model trained by the implicit ALS training algorithm in the distributed processing mode...
Definition: implicit_als_model.h:199
daal::algorithms::implicit_als::interface1::Parameter::nFactors
size_t nFactors
Definition: implicit_als_model.h:98
daal::algorithms::implicit_als::interface1::Parameter::maxIterations
size_t maxIterations
Definition: implicit_als_model.h:99
daal::algorithms::implicit_als::interface1::Model
Model trained by the implicit ALS algorithm in the batch processing mode.
Definition: implicit_als_model.h:116
daal::algorithms::implicit_als::interface1::Parameter::preferenceThreshold
double preferenceThreshold
Definition: implicit_als_model.h:102
daal::algorithms::interface1::Model
The base class for the classes that represent the models, such as linear_regression::Model or svm::Mo...
Definition: model.h:78
daal::algorithms::implicit_als::interface1::Parameter::alpha
double alpha
Definition: implicit_als_model.h:100