public class ALS$ extends Object
Modifier and Type | Field and Description |
---|---|
static ALS$ |
MODULE$
Static reference to the singleton instance of this Scala object.
|
Constructor and Description |
---|
ALS$() |
Modifier and Type | Method and Description |
---|---|
ALS |
apply() |
scala.Tuple2<DataSet<scala.Tuple2<Object,ALS.InBlockInformation>>,DataSet<scala.Tuple2<Object,ALS.OutBlockInformation>>> |
createBlockInformation(int userBlocks,
int itemBlocks,
DataSet<scala.Tuple2<Object,ALS.Rating>> ratings,
ALS.BlockIDPartitioner blockIDPartitioner)
Creates the meta information needed to route the item and user vectors to the respective user
and item blocks.
|
DataSet<scala.Tuple2<Object,ALS.InBlockInformation>> |
createInBlockInformation(DataSet<scala.Tuple2<Object,ALS.Rating>> ratings,
DataSet<scala.Tuple2<Object,int[]>> usersPerBlock,
ALS.BlockIDGenerator blockIDGenerator)
Creates the incoming block information
|
DataSet<scala.Tuple2<Object,ALS.OutBlockInformation>> |
createOutBlockInformation(DataSet<scala.Tuple2<Object,ALS.Rating>> ratings,
DataSet<scala.Tuple2<Object,int[]>> usersPerBlock,
int itemBlocks,
ALS.BlockIDGenerator blockIDGenerator)
Creates the outgoing block information
|
DataSet<scala.Tuple2<Object,int[]>> |
createUsersPerBlock(DataSet<scala.Tuple2<Object,ALS.Rating>> ratings)
Calculates the userIDs in ascending order of each user block
|
Object |
fitALS()
Calculates the matrix factorization for the given ratings.
|
void |
generateFullMatrix(double[] triangularMatrix,
double[] fullMatrix,
int factors) |
DataSet<ALS.Factors> |
generateRandomMatrix(DataSet<Object> users,
int factors,
long seed) |
String |
ITEM_FACTORS_FILE() |
void |
outerProduct(double[] vector,
double[] matrix,
int factors) |
Object |
predictRating()
Predict operation which calculates the matrix entry for the given indices
|
double[] |
randomFactors(int factors,
scala.util.Random random) |
DataSet<ALS.Factors> |
unblock(DataSet<scala.Tuple2<Object,double[][]>> users,
DataSet<scala.Tuple2<Object,ALS.OutBlockInformation>> outInfo,
ALS.BlockIDPartitioner blockIDPartitioner)
Unblocks the blocked user and item matrix representation so that it is at DataSet of
column vectors.
|
DataSet<scala.Tuple2<Object,double[][]>> |
updateFactors(int numUserBlocks,
DataSet<scala.Tuple2<Object,double[][]>> items,
DataSet<scala.Tuple2<Object,ALS.OutBlockInformation>> itemOut,
DataSet<scala.Tuple2<Object,ALS.InBlockInformation>> userIn,
int factors,
double lambda,
Partitioner<Object> blockIDPartitioner)
Calculates a single half step of the ALS optimization.
|
String |
USER_FACTORS_FILE() |
public static final ALS$ MODULE$
public String USER_FACTORS_FILE()
public String ITEM_FACTORS_FILE()
public ALS apply()
public Object predictRating()
public Object fitALS()
public DataSet<scala.Tuple2<Object,double[][]>> updateFactors(int numUserBlocks, DataSet<scala.Tuple2<Object,double[][]>> items, DataSet<scala.Tuple2<Object,ALS.OutBlockInformation>> itemOut, DataSet<scala.Tuple2<Object,ALS.InBlockInformation>> userIn, int factors, double lambda, Partitioner<Object> blockIDPartitioner)
numUserBlocks
- Number of blocks in the respective dimensionitems
- Fixed matrix value for the half stepitemOut
- Out information to know where to send the vectorsuserIn
- In information for the cogroup stepfactors
- Number of latent factorslambda
- Regularization constantblockIDPartitioner
- Custom Flink partitionerpublic scala.Tuple2<DataSet<scala.Tuple2<Object,ALS.InBlockInformation>>,DataSet<scala.Tuple2<Object,ALS.OutBlockInformation>>> createBlockInformation(int userBlocks, int itemBlocks, DataSet<scala.Tuple2<Object,ALS.Rating>> ratings, ALS.BlockIDPartitioner blockIDPartitioner)
itemBlocks
- ratings
- blockIDPartitioner
- public DataSet<scala.Tuple2<Object,int[]>> createUsersPerBlock(DataSet<scala.Tuple2<Object,ALS.Rating>> ratings)
ratings
- public DataSet<scala.Tuple2<Object,ALS.OutBlockInformation>> createOutBlockInformation(DataSet<scala.Tuple2<Object,ALS.Rating>> ratings, DataSet<scala.Tuple2<Object,int[]>> usersPerBlock, int itemBlocks, ALS.BlockIDGenerator blockIDGenerator)
Creates for every user block the outgoing block information. The out block information
contains for every item block a BitSet
which indicates which
user vector has to be sent to this block. If a vector v has to be sent to a block b, then
bitsets(b)'s bit v is set to 1, otherwise 0. Additionally the user IDataSet are replaced by
the user vector's index value.
ratings
- usersPerBlock
- itemBlocks
- blockIDGenerator
- public DataSet<scala.Tuple2<Object,ALS.InBlockInformation>> createInBlockInformation(DataSet<scala.Tuple2<Object,ALS.Rating>> ratings, DataSet<scala.Tuple2<Object,int[]>> usersPerBlock, ALS.BlockIDGenerator blockIDGenerator)
Creates for every user block the incoming block information. The incoming block information contains the userIDs of the users in the respective block and for every item block a BlockRating instance. The BlockRating instance describes for every incoming set of item vectors of an item block, which user rated these items and what the rating was. For that purpose it contains for every incoming item vector a tuple of an id array us and a rating array rs. The array us contains the indices of the users having rated the respective item vector with the ratings in rs.
ratings
- usersPerBlock
- blockIDGenerator
- public DataSet<ALS.Factors> unblock(DataSet<scala.Tuple2<Object,double[][]>> users, DataSet<scala.Tuple2<Object,ALS.OutBlockInformation>> outInfo, ALS.BlockIDPartitioner blockIDPartitioner)
users
- outInfo
- blockIDPartitioner
- public void outerProduct(double[] vector, double[] matrix, int factors)
public void generateFullMatrix(double[] triangularMatrix, double[] fullMatrix, int factors)
public DataSet<ALS.Factors> generateRandomMatrix(DataSet<Object> users, int factors, long seed)
public double[] randomFactors(int factors, scala.util.Random random)
Copyright © 2014–2017 The Apache Software Foundation. All rights reserved.