Recommender Systems - Matrix Factorization & Conclusion

In this last post of the Recommendation Systems series, we will discuss the Matrix Factorization Collaborative Filtering approach in recommenders, which is probably the most used approach in the industry in our days. This method can be used with either explicit or implicit feedback from users, because as we have seen in both cases the user-item interactions are stored as a sparse matrix.

Read More

Recommender Systems - Knowledge & Content based

This is the second post of the Recommendation Systems series. Here, we will discuss the knowledge-based and the content-based approaches of recommenders using both the explicit-type and the implicit-type of user’s feedback as an input for our examples wherever it is possible. Also, we are going to discuss the “Cold start problem” in the methods that suffer from it and how we can deal with it.

Read More

Recommender Systems - Introduction

This is the first step in a series of posts that will deal with the topic of “Recommendation Systems”. We will start from scratch, giving the definition of such systems along with examples and we will continue with the description, the pros and the cons of all the known algorithm categories used by recommenders in our days.

Read More

Joining two relationships with Scala and Spark

In this post we are going to analyze how we can read two relationships (R and S) from a csv file and then how we can compute the following relational operator in the most efficient way in Scala and Spark: R(a,b) ⋈ S(a,c). This is no more than a join operation on two tables. We are going to experiment with the built-in join methods of the Spark data structures (RDDs, DataSets and DataFrames) and we will also implement two manual ways: a simple one and one that groups and repartitions the records before the actual join. For each method we are going to count the miliseconds that the program needed to run and we will try to explain these results.

Read More

Hello, world!

Hello, world! Is there really any other possible title for a first blog post of a programmer? But, before we continue with the useful stuff let me first introduce myself.

Read More