24 #ifndef __IMPLICIT_ALS_MODEL_H__
25 #define __IMPLICIT_ALS_MODEL_H__
27 #include "algorithms/model.h"
28 #include "data_management/data/homogen_numeric_table.h"
43 namespace implicit_als
58 struct DAAL_EXPORT Parameter :
public daal::algorithms::Parameter
68 Parameter(
size_t nFactors = 10,
size_t maxIterations = 5,
double alpha = 40.0,
double lambda = 0.01,
69 double preferenceThreshold = 0.0) :
70 nFactors(nFactors), maxIterations(maxIterations), alpha(alpha), lambda(lambda),
71 preferenceThreshold(preferenceThreshold)
78 double preferenceThreshold;
80 services::Status check() const DAAL_C11_OVERRIDE;
92 class DAAL_EXPORT Model : public daal::algorithms::Model
96 DECLARE_MODEL(Model, daal::algorithms::Model);
106 template<
typename modelFPType>
107 DAAL_EXPORT Model(
size_t nUsers,
size_t nItems,
const Parameter ¶meter, modelFPType dummy);
122 template<
typename modelFPType>
123 DAAL_EXPORT
static services::SharedPtr<Model> create(
size_t nUsers,
size_t nItems,
124 const Parameter ¶meter,
125 services::Status *stat = NULL);
134 data_management::NumericTablePtr getUsersFactors()
const {
return _usersFactors; }
141 data_management::NumericTablePtr getItemsFactors()
const {
return _itemsFactors; }
144 data_management::NumericTablePtr _usersFactors;
145 data_management::NumericTablePtr _itemsFactors;
149 template<
typename Archive,
bool onDeserialize>
150 services::Status serialImpl(Archive *arch)
152 daal::algorithms::Model::serialImpl<Archive, onDeserialize>(arch);
154 arch->setSharedPtrObj(_usersFactors);
155 arch->setSharedPtrObj(_itemsFactors);
157 return services::Status();
160 template<
typename modelFPType>
161 DAAL_EXPORT Model(
size_t nUsers,
size_t nItems,
const Parameter ¶meter,
162 modelFPType dummy, services::Status &st);
165 typedef services::SharedPtr<Model> ModelPtr;
175 class DAAL_EXPORT PartialModel :
public daal::algorithms::Model
178 DECLARE_SERIALIZABLE_CAST(PartialModel);
187 template<
typename modelFPType>
188 DAAL_EXPORT PartialModel(
const Parameter ¶meter,
size_t size, modelFPType dummy);
198 template<
typename modelFPType>
199 DAAL_EXPORT PartialModel(
const Parameter ¶meter,
size_t offset,
200 data_management::NumericTablePtr indices, modelFPType dummy);
208 PartialModel(data_management::NumericTablePtr factors,
209 data_management::NumericTablePtr indices);
224 template<
typename modelFPType>
225 DAAL_EXPORT
static services::SharedPtr<PartialModel> create(
const Parameter ¶meter,
size_t size,
226 services::Status *stat = NULL);
235 template<
typename modelFPType>
236 DAAL_EXPORT
static services::SharedPtr<PartialModel> create(
const Parameter ¶meter,
size_t offset,
237 const data_management::NumericTablePtr &indices,
238 services::Status *stat = NULL);
246 static services::SharedPtr<PartialModel> create(
const data_management::NumericTablePtr &factors,
247 const data_management::NumericTablePtr &indices,
248 services::Status *stat = NULL);
250 virtual ~PartialModel() { }
256 data_management::NumericTablePtr getFactors()
const {
return _factors; }
262 data_management::NumericTablePtr getIndices()
const {
return _indices; }
265 data_management::NumericTablePtr _factors;
266 data_management::NumericTablePtr _indices;
268 template<
typename Archive,
bool onDeserialize>
269 services::Status serialImpl(Archive *arch)
271 daal::algorithms::Model::serialImpl<Archive, onDeserialize>(arch);
273 arch->setSharedPtrObj(_factors);
274 arch->setSharedPtrObj(_indices);
276 return services::Status();
279 template<
typename modelFPType>
280 DAAL_EXPORT PartialModel(
const Parameter ¶meter,
size_t size, modelFPType dummy, services::Status &st);
282 template<
typename modelFPType>
283 DAAL_EXPORT PartialModel(
const Parameter ¶meter,
size_t offset,
284 const data_management::NumericTablePtr &indices,
285 modelFPType dummy, services::Status &st);
287 PartialModel(
const data_management::NumericTablePtr &factors,
288 const data_management::NumericTablePtr &indices,
289 services::Status &st);
292 template<
typename modelFPType>
293 DAAL_EXPORT services::Status initialize(
const Parameter ¶meter,
size_t size);
295 template<
typename modelFPType>
296 DAAL_EXPORT services::Status initialize(
const Parameter ¶meter,
size_t offset,
297 const data_management::NumericTablePtr &indices);
300 typedef services::SharedPtr<PartialModel> PartialModelPtr;
302 using interface1::Parameter;
303 using interface1::ModelPtr;
304 using interface1::Model;
305 using interface1::PartialModelPtr;
306 using interface1::PartialModel;
daal::algorithms::implicit_als::interface1::PartialModel::getIndices
data_management::NumericTablePtr getIndices() const
Definition: implicit_als_model.h:262
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:68
daal::algorithms::implicit_als::interface1::Parameter::lambda
double lambda
Definition: implicit_als_model.h:77
daal::algorithms::implicit_als::interface1::Parameter::maxIterations
size_t maxIterations
Definition: implicit_als_model.h:75
daal::algorithms::implicit_als::interface1::Parameter::alpha
double alpha
Definition: implicit_als_model.h:76
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:175
daal::algorithms::implicit_als::interface1::Model::getUsersFactors
data_management::NumericTablePtr getUsersFactors() const
Definition: implicit_als_model.h:134
daal::algorithms::implicit_als::interface1::Parameter::preferenceThreshold
double preferenceThreshold
Definition: implicit_als_model.h:78
daal::algorithms::implicit_als::interface1::PartialModel::getFactors
data_management::NumericTablePtr getFactors() const
Definition: implicit_als_model.h:256
daal::algorithms::implicit_als::interface1::Model
Model trained by the implicit ALS algorithm in the batch processing mode.
Definition: implicit_als_model.h:92
daal::algorithms::implicit_als::interface1::Model::getItemsFactors
data_management::NumericTablePtr getItemsFactors() const
Definition: implicit_als_model.h:141
daal::algorithms::implicit_als::interface1::Parameter
Parameters for the compute() method of the implicit ALS algorithm.
Definition: implicit_als_model.h:58
daal::algorithms::implicit_als::interface1::Parameter::nFactors
size_t nFactors
Definition: implicit_als_model.h:74