
Item Similarity Tree (d=1) Tree (d=3) Projection
MSE 1.135 1.246 1.420 1.129
Table 3: MSE for old users only
We can see that in this case, bipartite projection gives the best results, followed very close by
item similarity algorithm. However, the item similarity algorithm is very computationally
expensive, while the bipartite projection gives result within fraction of seconds.
4.3 Conclusion
Recommendation systems help users discover items they might not have found by them-
selves and promote sales to potential customers, which provide an effective form of targeted
marketing by creating a personalized shopping experience for each customer. Lots of com-
panies have such kind of systems, especially for e-commerce companies like Amazon.com,
an effective product recommendation system is very essential to their businesses. In this
paper, based on the research on some existing models and algorithms, we design three new
recommendation systems, Item Similarity, Bipartite Projection and Spanning Tree. They
can be used to predict the rating for a product that a customer has never reviewed, based
on the data of all other users and their ratings in the system. To examine and compare their
effectiveness, we implement these three algorithms and test them on some existing datasets.
In our experiments, we found that, in terms of effectiveness measured with mean squared er-
ror (MSE), for all users, Item Similarity has the best result, then followed by Spinning Tree,
and Bipartite Projection is the worst. For new users, Spinning Tree has the best result, then
followed by Item Similarity, and Bipartite Projection cannot even generate result because of
lack of data. For old users, Bipartite Projection has the best result, then followed by Item
Similarity, and Spinning Tree is the worst. In terms of computational performance, Bipartite
Projection is the fastest algorithm that gives result within fraction of seconds, while Item
Similarity can be very computationally expensive.
In the future, we plan to improve the effectiveness and performance by exploring a hy-
brid system which will apply different algorithms on different user segments. One concrete
thought is to use Spinning Tree on new users and use Bipartite Projection on old users. And
we also need to experiment on different criteria to decide whether a user is a new user or an
old user, and then choose the criterion that has the best result.
We also would like to study how we could control or tweak the outputs of recommendation
systems based on application-specific requirements. For example, the company might want
to avoid recommending some very popular items to distribute the traffic to other products,
or the company would like to promote some newly listed products. In general, it is an
promising direction to build recommendation systems that can adapt to more granular and
8