Derek Bridge

B.Sc. and M.Sc. Projects

Overview for 2017-2018

DGB1 (Undergrad). Recommending with Confidence

This project is no longer available. It has been assigned to Jordan Smith.

Recommender Systems recommend items (e.g. products, TV shows, movies, music) to their users and are familiar from sites such as Amazon, Netflix and Spotify. Many of these systems collect user opinions (ratings) in a user profile. The user profile gives information that enables the systems to predict how much the user will like each of a set of candidate un-rated items. The system can then recommend the ones it predicts the user will like.

However, there has been little work that considers how to measure the recommender's confidence in its recommendations, nor how to convey that to the user.

In this project, we will take inspiration from a paper in which confidence is measured by predicting the user's opinion of items in the user profile, i.e. items whose ratings the system already knows [Cleger-Tamayo et al. 2013]. If the predictions agree with the known ratings, then the system has some confidence in its predictions for items whose ratings are unknown.

In this project, we will build one or more similar systems to the one just described and evaluate it with some experiments. We will seek to extend it in one or more ways. For example, (a) how can we make more use of the candidate item when calculating confidence, so that the confidence value is less about how confident the system is when it makes recommendations to this user, and more about how confident the system is in recommending this item to this user; (b) how can we help the user to visualise the confidence; (c) how does confidence relate to other qualities, such as how surprising the recommendation is.

Background reading

  • S. Cleger-Tamayo, J. M. Fernandez-Luna, J. F. Huete and N. Tintarev: Being Confident about the Quality of the Predictions in Recommender Systems, in Procs of 35th European Conference on IR Research, pp.411--422, 2013

Skills required

This project is suitable for a good student on the B.Sc. in Computer Science. It has a fairly steep learning curve, requires good programming skills and the ability to cope with a little bit of mathematical notation.

DGB2 (Undergrad). Visualizing Recommendations

This project is no longer available. It has been assigned to Stephen Hannon.

Recommender Systems recommend items (e.g. products, TV shows, movies, music) to their users and are familiar from sites such as Amazon, Netflix and Spotify. There are many algorithms for computing a set of recommendations using the purchase, viewing, listening or rating habits of the users. But there has been little work that considers how best to present a set of recommended items: in most systems, they are simply listed.

In this project, we will build a fairly simple recommender system, probably for movies. But we will then design, implement and evaluate a variety of methods for presenting the recommendations to the users. Some idea for different visualizations are in this ComputerWorld article.

One concrete idea is to take inspiration from tree maps. But, instead of taking a slavishly hierarchical approach to the tree map, we might treat the layout as a multi-criteria optimisation problem where we try satisfy a range of conflicting objectives such as: making the size of the item on the screen reflect the strength of recommendation; making neighbouring items on the screen similar in their genres and other content; using colour to convey item diversity or serendipity or recommendation certainty; and so on.

Skills required

This project will suit an excellent programmer, preferably one with some imagination. A liking for data structures, algorithms and APIs for graphics would be a strong sign of suitability.

DGB3 (Undergrad). Photo Tagging using a Game-With-A-Purpose

This project is no longer available. It has been assigned to Paul Laureano.

Suppose you have an online photo collection. Visitors to your site view the photos but they may also tag them. In other words, they may enter words and phrases to describe what's in the photos. For example, on viewing the Crasher Squirrel, they might enter words such as "mountains", "lake", "people", "couple", "squirrel" and even (incorrectly) "gopher", "rat".

Tags are useful for people who want to search the collection and also for machine learning. But, how do we motivate people to enter lots of useful and correct tags? One answer is: use a Game-With-A-Purpose.

What's a Game-With-A-Purpose? It's a game. And it has a purpose. (Duh.) In other words, people play the game and hopefully enjoy playing the game, but the game has an ulterior motive — in this case, to collect high quality tags.

In this project, we will design, build and evaluate a Game-With-A-Purpose for this scenario. Randomly-chosen players will be paired-up and will compete in a simple task (tagging an image) and will be rewarded, usually when they agree (i.e. when they assign the same tag to the image). As far as games go, this is not exactly Call of Duty. Lovers of first-player shooters need not apply. But the challenge is to devise ways of making the game more fun, but also ways of pushing the players into working harder and selecting correct but less obvious tags.

Background reading

Skills required

This project will suit an excellent programmer, preferably one with some imagination.

I would expect the game to be implemented over a network. So the underlying infrastructure will require either socket programming or use of node.js, for example.

DGB4 (Undergrad). Preference Elicitation using a Game-With-A-Purpose

This project is no longer available. It has been assigned to Conor Twomey.

See DGB3 above to learn what we mean by 'Game-With-A-Purpose'.

In this project, we will build a game-with-a-purpose to elicit people's preferences: we will show one player descriptions of two movie and ask her which of the two movies she thinks her opponent will prefer. If her opponent agrees, then the player gets rewarded.

We can imagine lots of interesting variations of this. E.g. to help the player we might reveal certain information about her opponent: demographic information (e.g. his age), his preferred movie genres, his preferences on other movies.

Interesting too is the case where the 'opponents' are friends, and you're trying to agree on a movie to go see.

Background reading

Skills required

See DGB3

DGB5 (Undergrad). Better Programming using a Game-With-A-Purpose

This project is no longer available. It has been assigned to Ciaran Dorney.

See DGB3 above to learn what we mean by 'Game-With-A-Purpose'.

In this project, we will build a game-with-a-purpose to help people learn to program. I have some ideas but would be interested in your own. E.g. one player could be rewarded for finding test data that crashes their opponent's program. It would be interesting to consider how to scale this up to a classroom scenario where, e.g., after submitting solutions to an assignment, there is extra credit for finding problems (not just bugs, but stylistic problems) with other students' code. (There are some issues about avoiding collusion, which are also interesting.)

Background reading

Skills required

See DGB3

DGB6 (Undergrad). Actionable Recommendation Explanations

This project is no longer available. It has been assigned to Ciaran Broderick.

Consider an item-based nearest-neighbour recommender system for music. It recommends new music to you that is similar to music in your profile, where, in this kind of system, similarity is not determined by genres and the like, but rather by consumption patterns. The recommendations can be explained by showing which music in your profile led to the recommendation.

In this project, we make the explanations actionable: in other words, the user can interact with them to obtain different recommendations. For example, you might ask: what if I didn't like this piece of music, how would the recommendations change?

We'll design, build and evaluate a number of systems that work in this and similar ways.

Background reading

Skills required

What I have described above is straightforward for a good programmer. But, to get higher marks, the student will need to go beyond what is described, and this will lead to more complicated algorithms and to research papers that are algorithmically and mathematically more challenging.

DGB7 (M.Sc.). App Recommender

In this project, the student will work with the Frappe Dataset. This dataset contains over 96,000 records that describe the contexts in which 957 users use 4082 Android apps.

The student is invited to propose his/her own ideas for applying data analytics to this dataset.

If the student prefers to be given an initial 'steer', then I suggest that s/he investigate how to build a context-aware recommender system using the data.

Background reading

  • Gediminas Adomavicius and Alexander Tuzhilin: Context-Aware Recommender Systems in F. Ricci, L. Rokach and B. Shapira, Recommender Systems Handbook, pp.217-253, Springer, 2011
  • Y. Shi, A. Karatzoglou, L. Baltrunas, M. A. Larson, and A. Hanjalic: CARS2: Learning Context-aware Representations for Context-aware Recommendations, n Proc. CIKM, pp.291-300, 2014.
  • L. Baltrunas, K. Church, A. Karatzoglou, N. Oliver: Frappe: Understanding the Usage and Perception of Mobile App Recommendations In-The-Wild. arXiv:1505.03014, 2015

Skills required

This project will suit an excellent programmer (since the datasets are large), with high maths skills (since the academic papers are mathematical) and with some imagination.

I would not be willing to supervise someone who intends taking up employment during the project period.

DGB8 (M.Sc.). Instacart Market Basket Analysis

In this project, we will produce one or more solutions for the Instacart Market Basket Analysis competition on Kaggle. (The competition itself is over, but the data is still available.) In a sentence, the task is to predict which previously-purchased products will be in a user’s next order.

Background reading

Skills required

This project will suit an excellent programmer (since the dataset is large), with high maths skills (since the academic papers are mathematical) and with some imagination.

I would not be willing to supervise someone who intends taking up employment during the project period.

DGB9 (M.Sc.). Coupon Purchase Prediction

In this project, we will produce one or more solutions for the Coupon Purchase Prediction competition on Kaggle. (The competition itself is over, but the data is still available.) In a sentence, the task is to predict which coupons a customer will buy in a given period of time.

Background reading

Skills required

This project will suit an excellent programmer (since the dataset is large), with high maths skills (since the academic papers are mathematical) and with some imagination.

I would not be willing to supervise someone who intends taking up employment during the project period.

DGB10 (M.Sc.). Outbrain Click Prediction

In this project, we will produce one or more solutions for the Outbrain Click Prediction competition on Kaggle. (The competition itself is over, but the data is still available.) In a sentence, the task is to predict which documents a user will read based on ahistory of page views and clicks.

Background reading

Skills required

This project will suit an excellent programmer (since the dataset is large), with high maths skills (since the academic papers are mathematical) and with some imagination.

I would not be willing to supervise someone who intends taking up employment during the project period.