The Duine Recommender Framework is only at the beginning of a very interesting field. To give you an idea of our view on the future of the framework, we have created a list of interesting functionality that we would like to add. If you don’t find your idea on the list, then please don’t hesitate to send us an e-mail (firstname.lastname@example.org ) with your idea(s).
We need to improve and extend our set of prediction techniques. Our collaborative prediction technique does not scale well currently, we need to add clustering (and probably more) and get in track with current research. We’d like to have more techniques, for instance a matrix factorization prediction technique.
A big chunk will be Metadata Enrichment, together with some Metadata Storage component. Better metadata will give better recommendations, at least when you use the item-based prediction techniques. The trouble with metadata is that it there is in most cases not enough of it. Adding metadata manually is tedious and expensive. It would be very helpful if this process can be automated. The Metadata Enrichment component is intended to support automatic metadata creation. Obviously we are not going to reinvent the wheel, so implementation of the component implies a careful market investigation to see what is around and available in the open source. One of the current ideas is to use the Apache UIMA framework (http://incubator.apache.org/uima/) . The Metadata Storage component is intended as a generic store for metadata. The storage component must also manage the lifecycle of the metadata and keep track of the origin of each piece of metadata. First ideas are to support a number of media standards, such as Dublin Core (http://dublincore.org/) and TV-Anytime (http://www.tv-anytime.org/) .
User tagging is fashionable these days, and indeed an important source of metadata. The Tagging component should support the annotation of content with tags, in particular tag suggestion, for example similar to what Delicious is doing. The Metadata Storage will take care of the storage of tags. We expect that current item-based techniques can be extended to use the tags as well for the prediction. Alternatively, tag-specific predictions techniques can be tested.
A nice feature would be to separate the deployment of the Duine recommender framework from the web application, as opposed to the current monolithic deployment scenario. With the addition of a REST API to Duine, it is possible to host the Duine recommender on a different machine. Of course there will be more issues to solve, such as transferring the metadata to the Duine host as well.
Many users are member of a social network. Wouldn’t it be nice if the recommender framework can make use of the profile information of a user from his favorite social network? Privacy matters need to be investigated. Closely related are group recommendations, combining profiles of multiple users. Again, privacy matters need to be investigated.
We all know that recommendations are very useful, but when recommendation comes from a knowledgeable friend we really start paying attention. The difference is the addition of a trust relation. Recommendations from people that you trust are potentially perceived of higher quality than without using the trust relation. What is needed is the buildup of a trust network between people. This is a new research field, with still a lot of work to do. There is a relation with the social networks.
When a recommender has the ability to learn about the actual environment of a user, recommendation can be made context-dependent. Investigation is needed to look for smart ways to do this, and how the prediction techniques can be make use of this information. A potential solution is to implement a context model that recognizes the context of a user and that downplays or augments certain profile attributes of a user, depending on his context of that very moment.
In a life situation one wants to know the performance of the recommendation. Is the quality as expected, should the system be retuned? What is needed is a kind of dashboard to operate the recommender and the collections of predictors in an easy way. Closely related to this is a configuration manager for configuring the predictors and their parameters. A visual editor would be much preferred over an XML editor, at least by the non-expert developer.
We would like to add additional features that are useful in the context of recommendation.
An example: Some applications require a list of recommended items, but that list is constrained in certain ways. The best known example is a music playlist: Consecutive songs should not differ too much from each other in genre, favorite songs should not be replayed too often and to prevent dullness, the recommender must take care of some form of serendipity. We have in the past implemented a playlist generator using a tabu-search constraint solver algorithm. In the months ahead we will publish the solver as an additional module.