Technical Notes

User Interface

We're still working this out, but check out Hunch for a nice-looking decision system.

Collaborative Filtering

We are currently researching open-source collaborative filtering engines as a first step for Here examples of the types of functionality we'd like:
  1. Given a subset of a voter's preferences on a ballot, find their likely preferences on all other measures.
  2. Given a subset of a voter's preferences on a ballot, find the top X organizations that match that voter's politics.
    • Bonus: allow for matching on a per-issue basis (e.g. "housing") or even per-arbitrary-tag (e.g. "unfunded measures")
  3. Given a subset of a voter's preferences on a ballot, find other voters (who have opted to make their profiles public) that match the voter's politics.
There are two main types of collaborative filtering: user-based and item-based. Wikipedia breaks down how each of these are used. User-based collaborative filtering seems like it would be useful for feature #2, above, while item-based filtering seems ideal for #1. Here's more on item-based filtering from the article on the Slope One algorithm:

When ratings of items are available, such as is the case when people are given the option of ratings resources (between 1 and 5, for example), [item-based] collaborative filtering aims to predict the ratings of one individual based on his past ratings and on a (large) database of ratings contributed by other users.

Note that even simpler algorithms are most suitable for binary rating data. It's still up in the air if we will be recording voting preferences as binary "Yes/No" data or as more-nuanced "ratings" ranging from "strongly agree" to "strongly disagree."

One question we are facing is whether there are complications of our model where nodes are not always peers. Some nodes are privileged (institutions.) We might sidestep this problem by not having any privileged nodes. Perhaps there will simply be a weighting system on top of the collaborative filter.

One advantage is that the number of things we are recommending is relatively small. The number of measures on a ballot is much lower than the number of books in a catalog, for example.


Some resources for research into Collaborative Filtering: