Crowdfunding Gets Personal using PredictionIO and Python
29 Oct 2013

crowdfunding

Crowdfunding is the talk of the town in recent years, especially among entrepreneurial circles. There are hundreds of crowdfunding sites out there, with AngelList and Kickstarter being two leading examples. Beyond equity and donation-based sites there are new twists such as RealCrowd, which focuses on real estate crowdfunding. Some other noteworthy crowdfunding sites include SeedrsCrowdcubeWefunder, FundersClub, Indiegogo, Quirky, Crowdtilt, CircleUp, SeedInvest, GoFundMe and there are many many more!

These crowdfunding sites play the matchmaking role in bringing together relevant investors and startups, or backers and projects. It is important, therefore, for these crowdfunding platforms to find ways to give relevant recommendations to their users. Kickstarter, for instance, suggests projects to backers based on their location and also lists the most popular projects across different categories (Games, Design, Technology, etc).

kickstarter

PredictionIO can make these recommendation platforms more personalized for each user.  Let’s focus on the investors (or backers) as users for our example. PredictionIO can help these users in the following ways:

  1. By suggesting projects to users based on their previous investments or donations (“People who fund this project also fund….”).
  2. By recommending projects to users based on the projects they have browsed (“People who view this project also view….”).
  3. By giving personalized suggestions of, say, the top ten projects, based on each user’s browsing and funding history.

Below is a demonstration of how these features can be easily implemented with PredictionIO.

 

Feature 1: “People who fund this project also fund…”

Step 1: Install PredictionIO Server

Follow the instructions to install PredictionIO.

When the installation is complete, go to the PredictionIO Admin Panel to add a new application for the service you are building. You will then obtain an App Key, which is needed later when you integrate the PredictionIO SDK.

Step 2: Install the SDK in Your Development Language

PredictionIO provides SDK in various languages. Python is used in this example. Execute the following shell command. This will install the SDK package on your machine:

Step 3: Integrate the PredictionIO SDK into Your Application for Importing Data

Now you have finished the SDK integration to record new users, new projects, and user behavior (both “view” and “fund” actions).

Step 4: Create an Item Similarity Engine

Go to the PredictionIO Admin Panel, create an Item Similarity Engine. Specify an engine name which will be used in your code to retrieve prediction results from this engine (e.g. “itemsim-fund”). The default algorithm will be deployed automatically. Alternatively, there are a number of built-in algorithms to choose from.

To suggest similar funded projects, you need to change the algorithm setting so that the algorithm only uses the “fund” (“conversion”) actions instead of using all kinds of actions.
Go to the Algorithms tab of this engine. Undeploy the algorithm and click “View/Edit Algorithm Settings.” In the “User Actions Representation Settings” section, select “Ignore” for all actions except the “conversion” action. Then re-deploy the algorithm.

When the engine status changes to “Running”, it means the prediction results are ready.

Step 5: Query Prediction Results

Now you can recommend similar funded projects to your users.

 

Feature 2: “People who view this project also view…”

Though similar to the previous example, recommendation this time is given based on users’ browsing history and not their funding history.

Create another Item Similarity Engine. Specify an engine name (e.g. “itemsim-view”). Change the settings of the algorithm so that the algorithm ignores all actions except the “view” actions.

Add the following lines of code to retrieve the prediction results from this engine:

Now you can recommend similar projects to your users based on browsing history!

 

Feature 3. Top 10 Personalized Recommendation for each user

In addition to recommending similar projects, you can personalize the recommendation based on both the individual browsing and funding history of users.

You need an Item Recommendation Engine for this personalized recommendation feature. Since you have already integrated the SDK for importing data as described above, all you need to do now is to add a new Item Recommendation Engine, and specify the engine name which will be used in your code to retrieve prediction results. The default algorithm will be deployed automatically, but you can fine-tune it later. Alternatively, there are a number of different built-in algorithms to choose from.

This time, you don’t need to modify the algorithm settings to ignore some actions, because you want to provide personalized recommendation based on both browsing and funding history.

Add the following lines of code to retrieve the prediction results:

 

That’s it! This is how you can provide personalized recommendation to each investor based on their browsing and funding history. To make your own crowdfunding application smarter, try out PredictionIO today!