EventDilly

Let's Get Out There

Learn More

About EventDilly

EventDilly is an aggregation and recommendation application for local events. Mobile capable, it provides people with a fun and convenient way to browse local weekend events and activities. The interface quickly learns a user's likes and dislikes to present relevant events, while including a measure of randomness to expose the user to new ideas and activities.

Multiple Event Sources

Data is aggregated from leading event and social news sources including EventBrite, Yelp, Meetup and the Washington Post covering the Washington DC Metro area (initial release)

Sophisticated Recommendations

Using natural language processing to determine event similarity, EventDilly learns users likes and dislikes to present them with events based on their interests

Modern User Interface

A clean, simple user interface works on browsers and mobile devices and a intuitive like / dislike process quickly gives users a set of events they can attend

Facts

EventDilly statistics

4

Sources

5,191

Events Per Month

5,352,282

Event Similarity Comparisons

The Problem

Declining levels of civic engagement and social capital were highlighted in the 2000 book, “Bowling Alone: The Collapse and Revival of American Community”. While the original studies have been criticized, current events seem to demonstrate ever increasing polarization & silo’ed nature of our social groups. Encouraging more diverse local social interaction would seem to be a productive way to combat isolationist behavior. While sites exist to assist us in choosing venues and services, there is a lack of similar resources to help us find local social activities and events. Finding fun things to do shouldn’t be hard work. No one has the time to scour newspapers and the Internet for weekend events and going to the same club every weekend is boring. Similarly posting your event everywhere is time consuming and expensive. Wouldn't it be nice if there was an easy to use site that aggregated event listings so that everyone can find the events they'd like to attend?

Approach

Gather event data from multiple sources, normalize, build recommender model and present events to users for preference indication

Connect to Sources

Event source website APIs are leveraged to collect events in the Washington, DC Metro area within a current, multi-week window

Collect Events

Each event source is coded as an independent AWS Lambda function that runs daily to get up-to-date information without requiring an always-on server

Normalize Data

Event JSON structures are parsed and consistent, structured data fields are extracted into PostgreSQL database table columns, including event source URLs

Events as Documents

Create document corpus based on event descriptions and titles

Build Document Model

Using Word2Vec and Doc2Vec create embeddings for event descriptions to find other similar events

Cluster and personalize

Cluster events and tracks user actions to learn about their preferences and provide personalized recommendations

Mobile Capable Website

Using Django and Bootstrap, deploy a mobile-capable website using AWS Elastic Beanstalk for application hosting at EventDilly.com

Present Events for Feedback

Present users with information on a random event, including event imagery and description for like / dislike feedback

Update Event Preferences

Update user preferences within session and use feedback to display similar events with occasional randomness to avoid local minimum

Results

EventDilly efficiently gathers events from various sources, creates uniform clusters of events based on their similarity and presents users with candidate events to like or dislike. The application presents events that it thinks the user will like, with an occasional random event for consideration.

Serverless Data Loading

Individual functions are used to load data from each source. The functions are triggered by a daily event alarm and are only active during the data load. Using AWS Lambda functions, costs are incurred only when the load is running. Data loading effectively occurs for free.

Natural Language Event Clustering

Event titles and descriptions are parsed using Doc2Vec to create event vectors. Recommendation engine creates uniform clusters using vector similarity and silhouette method. Event similarities are pre-computed for display performance.

Exploitation / Exploration

User interface uses a continuosly refined exploit-explore algorithm to display events similar to user likes while exploring other event clusters to gather more like / dislike data.

Next Steps

Currently, EventDilly is limited to events from 4 event sources and filtered by a 25 mile radius from the center of Washington, DC. To provide better event coverage and to provide opportunities for under-advertised events, additional data sources will be added. Continuous geographic coverage, while interesting, will probably take a back seat to adding additional metropolitan areas. These will likely be in the continental United States, Canada and potentially Great Britain.

The recommendation engine thoroughly compares every event to each other for similarity, which will have scaling challenges as we add sources and locations. We will likely modify this algorithm to limit event-to-event comparisons to those that are in the same geographic region.

An interesting issue is that some event organizers promiscuously post their events, even to the same source sites, using slightly different descriptions. Large numbers of these kind of events skew event clusters, with the result that users are often presented with what appears to be the same event over and over again. Determining when we see these duplicative events, and selecting which ones to keep and which ones to ignore will be an area of future investigation.

After user testing, one critical feedback we got was the need for a space to review events the user has previously liked. Our initial assumption was that users would follow the link at the bottom of the page to the original posting on whichever site on which it was originally published, and could then select from the tabs they had opened, but this seems not to be the case. This will be considered MVP work for the next release.

Our Team

Dominic Delmolino

Data Acquisition

Sam Liu

Recommendation Engine

Chris Miller

Full Stack Development
Bootstrap Templates by BootstrapMade