Associating Challenges and Forums

by Adrian Godong on August 14, 2009 in Development | Comments (15) | TrackBack (0)

The challenges system has always been about encouraging photography but we also wanted it to be a means of supporting and enhancing the challenges that already take place within specific forums. With this in mind, we’ve introduced Forum-associated challenges. Yesterday, we deployed this feature to DPReview for hosts to play with.

Placements

In recent weeks we have seen challenges established with themes that are relevant to specific forums – these have include brand-specific themes such as ‘Olympus DSLR Only’ or technique-specific themes like ‘Strobist’ or ‘Worthless Made Priceless’. Naturally these would have been particularly welcomed in the Olympus SLR Talk, Lighting Technique, and Retouching Forum, respectively.

To allow Challenge Hosts to make stronger links with those forums, they now have the option to specify which forums their challenge is particularly relevant to. Associating a challenge with a forum causes two things to happen to the recently introduced challenge widget that appears at the top of the forum pages.  Firstly, an associated challenge will appear more frequently in the widget so that users of that forum get to see the most relevant challenges but also, an associated challenge will start to appear when it first opens, rather than when it has finished. This way, users of the relevant forum will be much more aware that there’s a challenge aimed at them that they may wish to enter.

Winners of all challenges will continue to appear across the site but with the creation of associated challenges, there’s a way of promoting challenges for the communities that have built up within individual forums.

The Challenge of Counting Cameras

by Adrian Godong on August 12, 2009 in Development | Comments (12) | TrackBack (0)

As announced before, we have recently formalized the camera selection process when uploading an entry to the challenges. This enables us to deliver an interesting new feature, statistics of cameras used in challenges.


You can access the statistics page directly from the URL (http://www.dpreview.com/challenges/stats) or through the menu on the left, under Challenges.


ChallengesStatsMenu


We used several terminologies on the statistics which may need description:

  • Rank is determined by the number of entries submitted to any challenge using a particular camera during the week that ends on previous Sunday. For instance, if you access the page on Wednesday, 12 August, the statistics displayed is based on entries that was submitted from Satuday, 1 August through Saturday, 8 August.
  • Users is determined by the number of unique user submitting at least one entry with a particular camera. A user can submit entries with two different camera and will be counted once on each camera. 
The chart on the main page displays the historical data of "entries share" (entries using this camera divided by all entries in percentage) from the previous 16 weeks.

Making ranking fun: rating trumps voting

by Jaysen Marais on January 21, 2009 in Development | Comments (18) | TrackBack (0)

Now that the 2 initial batches of challenges have completed (10 challenges in all) we can start to take stock of how the challenge arbitration process is working. I don't think there's any disagreement that 'better' images are bubbling to the top, however there's been keen interest (in the forums and via feedback emails) regarding our method for determining 2nd from 3rd, 18th from 19th etc.

Is this thing better than that thing?
Early in the planning phase of the challenges project we scoured our own forums and the wider web to gain a feel for different flavours of online content competitions. When it comes to democratic judging models there are 'star rating' systems (i.e. amazon), +/- systems (i.e. digg), +1 systems (i.e. electoral), point packets (e.g. pentax forum with 5,3,1), point-spreads (n points between <=n images, e.g. sony talk forum) and more. These models fall into two broad groups: rating models (inherent merit independent of competitors) and voting models (merit relative to the merit of ALL competitors). We knew we had to support many judging models eventually (and our system is extensible such that we can) however we had to pick a model to start with. We went with a rating model (stars) and here's why.

Challenges have to be fun
Meaningless constraints, menial tasks and feelings of obligation are all decidedly un-fun, so we had to steer clear of them as much as possible. Consider also that aesthetic sensibility varies from user to user, as does enthusiasm, attention span, available time and a host of other factors. With these in mind lets consider voting models versus rating models.

29th placed entry 'cube' ('geometry' challenge)
'cube' in geometry challenge

In a voting model: unplaced

Our rating model: 29th (top 10%)
overall rating: 3.208 overal rating: 3.208 stars low vote distribution for 'cube' entry in geometry challenge high

Pure voting systems: everyone votes, most opinions ignored
Consider a hypothetical voting system in which a user is required to vote for their favourite 3 images (and rank them). Our hypothetical user starts with the first image they see, comparing it to more images (one at a time), keeping their favourite until they've seen them all at which point the selected image is 'the best'. The process of picking places 2 and 3 then becomes an exercise of searching through the gallery to find 'those other good ones'. To have any hope of a fair decision, several passes are required by each voter (i.e. a menial task) which is both boring and impractical for people taking a coffee break. Furthermore, this model also only yields rankings for the cream of the crop leaving the aspiring photographers (i.e. most entrants) with no feedback on their work (again, not fun). In algorithm parlance this voting method turns voters into bubble sorting machines (when determining 1st place, some optimizations for subsequent places). Sound fun?

Even less enjoyable is the realisation that in all voting systems (especially electoral systems) votes for quirky images will have essentially no impact on the outcome. This saps people's will to express their opinions if their own tastes are a little left-field. Not cool!

Our rating system: no-one's opinion wasted
Instead consider a hypothetical rating system in which users rate an image not compared to ALL other images in the challenge but according to its own merits (factoring in a voter's taste and their interpretation of the rules). If enough users rate an arbitrary number of images each, considering each image in isolation, an amazing thing happens: consensus. True, we may never know whether randomUser99 liked the 29th placed entry in the geometry challenge if they didn't rate it, but we can say that generally people generally thought it was one of the better images in the challenge (in the context of the challenge theme). The image owner (and anyone else) also has access to 40 people's opinions of their image, 7 of whom thought it worthy of 5 stars versus only 1 person deeming it 0.5 stars. Every entrant also has an overall crowd-sourced rating (3.208 in the case above) to improve upon in subsequent challenges, making the results interesting for everyone, not just a handful of winners.

Voting results are interesting for winners, rating results are interesting for all participants

Is it really that simple?
So rating systems are great. Well, it turns out they have a few vulnerabilities, a few pitfalls for the unwary developer. Firstly, you need sufficient numbers of voter input on each entry, distributing the number (not necessarily the magnitude) of ratings as evenly as possible. Secondly, you need a robust technique to derive an overall rating from many user ratings in such a way that overall ratings are comparable (to facilitate ranking). Each of these topics is a blog post in itself (this post's already a bit lengthy) but suffice to say that we feel we've come up with a neat solution to both.

If it's rating, why call it voting?
Even though we (I) feel that rating systems are preferable to voting, given the current system configuration (a few large concurrent challenges run by dpreview staff), we plan to allow user-created challenges within the next few months and our citizen challenge hosts are likely to have their own ideas. That's why we've planned for a variety of judging models (including various voting models) for them to choose from. Even though we plan to support both rating and voting judging models at some point, we had to pick a label for UI gee-gaws (buttons, titles etc.) and stick with it. Why 'vote'? Well, given the two terms 'rate' and 'vote', our 30-second co-worker survey revealed that 'vote' is a more compelling call to action. So there you have it.

Stay tuned
By this point in the post, the anxiety of needing to know the exact algorithm for calculating overall image ratings may be causing some readers to gnaw their own fingers of. Well, luckily humans have plenty of fingers because this isn't that post. Fear not, the draft of 'the algorithm post' is gestating nicely and should emerge soon enough. Until then, keep voting (rating) and curb that gnawing.

With votes pouring in, the weighting game begins

by Jaysen Marais on January 07, 2009 in Development | Comments (13) | TrackBack (0)

Most of you will know that as part of dpreview's 10th anniversary celebrations we recently launched the new Challenges feature. The reception has been fantastic and the 5 initial challenges launched (with many more to come) saw incredible participation (most filling reaching the 500 entry initial limit inside 48 hours). Old news you say? Well now that voting is underway I thought I'd talk a little about how that's progressing. In a word ... fantastic.

The really juicy numbers are locked away in our private (for now) stats pages (manna from heaven for visualization and stats geeks) but even our publicly available numbers are interesting.

  • The least popular challenge already has 3969 votes with the most popular receiving several times that (with several days voting to go).
  • The challenges feature is seeing about 5% of overall site traffic
  • A vote is placed every 6 seconds (average)
  • 32687 votes total (as of writing)
  • 4674 entries across all challenges (~10% disqualified)

Even taking into account the traffic profile for new features (launch spike, trough, slow build) these are impressive numbers (we're certainly happy). We're really excited to see what happens when we throw open the doors and enable user-created challenges. 

It's written in the stars
We've currently implemented only a single voting scheme: stars (½ to 5 stars in ½ star increments) but have plans to introduce others eventualy. The success of the challenges system hinges on votes reflecting image quality, but with the subjective nature of image evaluation and the diversity of voters we weren't quite sure what the distribution of votes would be. Some staffers expected a normal distribution (most votes clustering around the mean). Others expected more of a 'hot or not' style distribution (i.e. mostly 'extreme' votes). Of course the reality ended up being more complicated.

Indoor portrait ... Backyard Safari Shadows Wrapped Up Compact/Abstract
Average: 2.77 Average: 2.63 Average: 2.62 Average: 2.04 Average: 2.41
 
 
 
 
 

There's a lot to be gleaned from the above. Not least:

  • Significant variation between challenge averages (2.04 on the low end, 2.77 on the other).
  • Distribution resembles classic normal distribution, but not in all cases (see Wrapped Up).
  • Voters are generally less likely to award ½ star ratings than full star ratings.

Just to satisfy the curious, here's the overall distribution of votes (across all 5 open challenges) as of writing.

 

Leave it to Bayes
There's been a little concern in the forums that determining winners will be impossible due to our use of a star-rating system combined with the effects of outliers and variable votes per image. Fret not, our algorithm does takes into account both score and 'confidence' using some fairly established Bayesian techniques. There will be winners announced in a few days and the voting/ranking combo is definitely sorting the wheat from the chaff (it's fun to watch winners emerge). If there's enough interest I might explore this issue in a further post. Rest assured that we're on top of it.

Vote early and often
Whilst you can only vote for a single entry once, nothing prevents (or obliges) you voting for every image (in fact someone's already tried). Voting makes the whole thing work so make your vote(s) count now.

You've got to be in it to win it
Several challenges have begun since the initial wave with new challenges opening virtually every day. Make sure to get your photos in the mix and good luck.

Visualizing a forum thread

by Jaysen Marais on November 28, 2008 in Development | Comments (52) | TrackBack (0)

In my last post I mentioned the possibility of learning more about the structure(s) and behaviour(s) within the dpreview forums through the process of developing a model to describe it. Well, developing models is hard-going, so I deciding to tackle it from a more interesting angle and spent some time attempting to represent forum activity graphically.

Digging a hole for one's self
How and where to start? Well, there are myriad metaphors for the concept of 'conversations', but I like to frame them as Darwinian competitions between ideas in which the 'fittest' ideas 'breed' more 'successful' responses thus carrying on the line (of conversation ;). Hence, my first attempt to create a graphical representation of forum activity involves representing a single conversation in a quasi-organic sense, to see whether it is reasonable to label such entities as 'growing' or 'evolving' (warning: metaphors may be mixed during the course of this post).

After initially experimenting with the processing visualization environment I abandoned it in favour of 'good old' Flash (lens widget induced trauma now mostly repressed). Next up, choosing the basic metaphor (plane, terrain, tree, radar)? Hmm, let's try a variation on the hyperbolic tree (naturally, you say). What to represent? ... ah, let's go with pedigree, generation and mutation (replies which have different subject line to their precursor). A few hours later and presto! Coloured graphs everywhere.

A thread is born
Let's try out this visualization widget by using it to represent a popular recent thread (To the team of DPreview: Do a more serious test of 50d!!! - Canon EOS 50D - 10D forum) in its early phases (6 hours after OP).

50d_6hours_3
Visualization of the To the team of DPreview: Do a more serious test of 50d!!! thread (6 hours).
Colour represents time. Connections represent lineage. Distance from OP (black dot) represents 'generation'. Dots outlined in black represent changes of subject.

So what are we seeing here? It all begins with the black dot representing the original post (OP). Sprawling out from the OP are several dead-end responses and one dominant response (A) which has sparked some conversation. Interestingly this 'successful' response was the first in the thread to change the subject line (to "DPreview has done retesting 50D... Look").

So, can we predict anything about the ongoing development of the thread by looking at the above image? Well it's a fair bet that conversation is going to follow on from A or one of its descendants, though it's also worth keeping an eye on the more recent responses to the OP too (B & C, also sporting altered titles). Let's take a look at how things have progressed 35 hours on.

50d_41hours_3  
Visualization of the To the team of DPreview: Do a more serious test of 50d!!! thread (41 hours).
Colour represents time. Connections represent lineage. Distance from OP (black dot) represents 'generation'. Dots outlined in black represent changes of subject.  

Forty-one hours in we can see that the An branch (descending from A) did in fact continue a little while longer but has now run cold, instead branches Bn (descending from B) and Cn (descending from C) dominate the landscape. Note also that several variations to the OP have occurred since B & C, with some small success, suggesting that the OP's potential hasn't been fully exploited. This becomes more apparent as the thread progresses.

50d_59hours_2
Visualization of the To the team of DPreview: Do a more serious test of 50d!!! thread (59 hours).
Colour represents time. Connections represent lineage. Distance from OP (black dot) represents 'generation'. Dots outlined in black represent changes of subject.

Forty-five hours into the thread a response (D) to the OP appeared (with the altered subject line: "Future reviews from dpreview will loose value"). The offshoots of D immediately starving previously dominant branches (Bn, Cn) and remained dominant until the 150 post limit was reached.

Time well spent?
Besides learning more about the flash 9 drawing API (note to self, read up on flash 10 drawing API) this mini-project has given me a better understanding of some of the nuances of how dpreview forum threads typically unfold. Of course these colourful diagrams don't tell the whole story or even a noteworthy fraction of it, but they do depict some latent trends which can be investigated via other means. For example I'm keen to investigate further the idea that responses to 'cold' threads garner more interest if they sport new subject lines versus the standard 'Re: ' prefix (another post perhaps).

More
I've included a few more diagrams of other threads below (click thumbnails for larger versions). I'd be interested to hear your thoughts about any more patterns you think might be worth investigating. Also, if you've got an idea for a visualization approach which may highlight other aspects of the forum (and yield some more eye-candy to boot) let me know.

Visualization of the 'Hi, Is business so bad in US?' thread (click for larger version)
Hi, Is business so bad in US?
(larger version)
Visualization of the '4/3 has no focal length advantage-correct him if he is wrong' thread (click for larger version)
4/3 has no focal length advantage-correct him if he is wrong
(larger version)
Visualization of the 'LX3 vs. DSLR: You make the call!' thread (click for larger version)
LX3 vs. DSLR: You make the call!
(larger version)
Visualization of the 'G10 is AWFUL, but....' thread (click for larger version)
G10 is AWFUL, but....
(larger version)

dpreview's nascent forum model

by Jaysen Marais on November 17, 2008 in Development | Comments (39) | TrackBack (0)

By far the largest content group within dpreview is our discussion forums, with around 24 million posts over a period of almost 10 years from around 320,000 posters (dpreview forum stats). One thing I've noticed in the past year is that everyone (admin & forumite alike) has a different take on the forum's nature and likewise everyone struggles to articulate their mental model of it. This will be an issue for the dev team when forum development resumes, because everyone has a feature request (or five) at the ready but no shared vocabulary or model exists to help concisely explain issues or solutions. My goal then is to produce (over a series of blog posts) such a 'forum model' to facilitate productive discussion, analysis and visualisation.

The knee bone's connected to the ... ?
So what exactly am I looking for? At the very least a comprehensive (interlinked) glossary of dpreview forum-related concepts. Even better would be a suite of diagrams really capturing the low-level actions (posting, replying etc.) and higher-level phenomena (cliques, debates etc.). Geek heaven would be a set of techniques to measure, describe & visualize user activity (individual and aggregate) and overall 'forum health' (based on metrics yet to be defined). So roll up the sleeves, it's time to talk social network theory.

The who and the what
Before we tackle the juicy stuff (factions, reputation, mood) we need to cover the basics. First, let's look at the various players and some of the simple (observable) behaviours actions they can perform within the system:

  • anonymous
    • view list of forums
    • view list of threads within forum by date updated
    • read posts / threads
  • members
    • all of the above
    • start thread
    • post reply to thread/post
    • quote user
    • edit own post (within allowed time frame)
    • reference images in their post(s)
    • link to any URL in their post(s)
    • view list of threads they've participated in recently
    • complain about any post (including their own)
  • admins
    • all of the above
    • all user actions
    • delete post (and all follow-up posts)
    • delete thread
    • lock thread
    • move thread
    • issue forum-specific ban to user (temporary or permanent)
    • issue all-forums ban to user (temporary or permanent)
    • view complaint list
  • bots/spiders
  • advertisers
  • developers

Constraints
So now we know who's playing this game, so what about the rules? Our forum rules come in two flavours: 'hard' rules, imposed by the unyielding machine, and 'soft' rules whose enforcement depends largely on whether the moderator (a dpreview writer procrastinating mid-review) lost their last foosball game.

  • Hard rules
    • 3 posts in 15 minutes per user
    • Posts can be edited up to 15 minutes after initial posting
    • Maximum of 150 messages per thread
    • Message length limited to 8kb in length
    • Messages will be blocked if they contain censored words or coupons
    • Messages will be blocked if they contain blacklisted URLs
    • Html tags are be removed from submitted posts (plain text only)
  • Soft Rules
    • No schilling or classifieds: It detracts from the conversation.
    • No coupons: It puts us & advertisers in a precarious legal position
    • Relevant images only: Technique-related only. Happy-snaps go in samples & galleries.
    • No cross-posting: No posting identical message to multiple forums, it leads to problems
    • No multi-posting: Repeatedly posting the same message frustrates others.
    • Nothing risqué: What is tasteful to some may be pornographic to others
    • No inappropriate child images: Illegal, wrong.
    • No voyeur images: We don't want our community to go in that direction
    • Be civil: (most infringed rule) Insults beget insults, nobody wins.
    • No Off-Topic: It distracts. We move it if can, otherwise it has to go.
    • No bashing: Broken-record, unsupported criticism of brands/individuals wears thin.
    • No bumping: Pushing your pet thread to the top distracts from bona fide popular threads
    • No off-board harassment either: Just because it happens off-board doesn't make it OK
    • No piracy: It's illegal. Enough said

Individual behaviour, group behaviour and user archetypes
Ok, so we've covered the main players and most of the rules they're (theoretically) playing by. Now to the meat of the issue: behaviour. Many existing features and most feature requests (including ports of other forum's features) represent attempts to shape, curb or encourage various individual and group behaviours. Here's a list of a few such behaviours (desirable and undesirable) off the top of my head:

  • Conversation: the obvious one. But can conversations exist above and/or below the level of threads (probably)
  • Cliques: People who interact with each other to the degree that they can be considered a group. What is the participation threshold which implies clique membership? Can cliques overlap or do they merge?
  • Fan-boys: What degree of content analysis is required to detect this behaviour programmatically?
  • Bumping: I'm pretty sure we could detect this programmatically
  • 'hit-and-run' posting
  • Cross-posting
  • Flaming
  • 'Me too' posting
  • Bashing
  • Ad nauseam debates

Here's where you come in
The lists above are incomplete, I'm sure of it. There's a huge community of dpreview forum members and readers with a deep understanding of our forums (and other forums) so I'm trying to tap into that here. If you can think of any other individual behaviour patterns, group  patterns, user archetypes, metrics or resources on the subject I'd love to hear from you (no 'I was banned', 'jimbo99 calls me names' type comments please).

Aside: What do I mean by 'visualization' anyway?

The expression 'visualizing the forums' may sound like a buzz-phrase, but it refers to a growing field of research around producing graphical representations of complex structures using statistical analysis and computer generated imagery. Feel free to suggest visualisations we could derive from the dpreview forums dataset. Below are a few social networking visualization examples (courtesy visualcomplexity.com).

Social Circles Twitter Social Network Analysis The structure of adolescent romantic and sexual networks Flickr Graph PieSpy
Backchannel Data visualisation of a social network Mapping the Digg Community Email Map Mapping WoW Arena Teams

What's going on?

by Jaysen Marais on November 05, 2008 in Development | Comments (29) | TrackBack (0)

The past year has seen a dramatic increase in staff at dpreview, but less new 'features' than many expected. Why? What have we been doing? I thought I'd inaugurate the dpreview dev blog by shedding a little light on the dev situation here at dpreview over the past year and in the immediate future.

Oct '07 to Jan '08 - Lens Reviews

Lens Review Widget Aside from the addition of Andy, Lars & Richard to the editorial team, October 1st 2007 saw the addition of myself (Jaysen) as dpreview's first ever full-time developer (Phil retains his role as hacker-in-chief). By November 2007 we'd handled the transition and knuckled down to begin the lens review project in earnest. Reviewing lenses is a complicated business and we're pretty proud of the proprietary charts, analysis pipeline and interactive UI we've developed for the job. Andy, Phil, Simon and I put some long hours of R&D into that project, which came to fruition when the first lens reviews debuted on 28th Jan 2008. The majority of the subsequent lens review feedback can be described as polite congratulation, with the remainder divided between demands for more reviews (praise of a kind) and confused folk looking for the pre-2008 lens reviews (there are none!).

Feb to Jun '08 - Infrastructure & Search

search.dpreview.com When we sat down to plan our followup to lens reviews, it became clear that the majority of our future plans required some serious renovation of the site's foundations. So, with a tear in our eye, we shelved our beloved feature ideas and marched into the salt-mines of infrastructure development. The following 5 months saw dpreview transition to a new hosting provider with more bandwidth, hardware and redundancy. The associated hardware/software upgrades also necessitated an overhaul of our search system with some expanded features to boot (any problems with search? let me know) but went largely unnoticed (aside from the occasional yawn).

Jul to Oct '08 - 'Camera Database' overhaul

Adminui With the hardware and hosting infrastructure sorted, we turned our attention to a collection of components loosely referred to as 'the camera database'. In an ironic twist for a public-facing web development team (now a bona fide 'team' with the addition of Jan in September) we've spent the past few months developing a new suite of internal tools for data entry, analysis and reporting. Besides dramatically improving the 'quality' of the specs data, the overhaul saw the addition of the 'live view' and 'USB' query parameters to the feature search.

To the lab!

This week we've begun development work for a new, exciting and very public feature of dpreview. I can't say what the new project is yet, but it will be of interest to all dpreview visitors, especially our forum community. What I can say is that we're planning to change the way in which we launch new features onto the site. While past updates have been rolled out silently (or with a quick forum post), future feature releases will be available (initially) in a new 'labs' area of the site (on an 'opt-in' basis). Corresponding announcements and discussion of labs roll-outs and site tweaks will be coordinated through the dpreview dev blog.

We hope to throw this mysterious new project into labs early Q1 '09 for feedback (but as ever, we're operating on a 'when it's ready' basis). In the meantime, in the spirit of the new blog, I'd like to encourage feedback through the feedback channel and the appropriate dev blog comment threads. (discussing bugs/features in the forums is fine, but may not find the right ear). If you're interested in the progress of the site I'd also encourage you to subscribe to the dev blog feed.

Copyright 1998-2008 Digital Photography Review, dpreview.com Ltd.