We were inspired for this idea by a set of AI research papers in the AI parity field, which look into how to ensure that AI algorithms making important decisions (loan applications, etc.) can be balanced to remove ethnic and racial bias. Our idea came through the combination of this, and the realization of how biased existing crowdfunding platforms, such as GoFundMe, were. Decisions on who to donate to on these platforms are often not based on need, but on which photo is more moving or appealing(subject to race/ethnic bias), or which GoFundMe has a more convincing description or sob story. This, in combination with the PwC challenge inspired us to create a firm solution to this problem. Some of the members of our team are familiar with financial struggles associated with expensive medical costs, so this project has a personal note.
What it does
The premise of the app is simple. Users can choose from a list of predetermined "causes" such as cancer, heart disease, and Alzheimer's, and they can donate to a pool using blockchain-secured transactions. Our AI algorithm then goes on to choose where to donate from the pool to a list of eligible applicants associated with a cause, based on some answers to a series of questions. This ensures fair, unbiased decision-making, and enables a significant number of people to receive the aid they desperately need, based on need.
How we built it
Our app was built with the cross-application development platform Flutter, which means that our app works on both iOS and Android devices. For our blockchain, we integrated the Stellar blockchain into our project, which enables fully secure and transparent funding. The blockchain provides transparency in how our money is handled while ensuring a degree of personal privacy for users. The blockchain allows no room for corruption, with all users being able to see exactly where their money is going (without seeing user's personal data of course). Our AI, perhaps the most pivotal part of our solution, went through a series of trial and error. Our dataset, since there's practically no individual-level data on the internet, was created by sampling on intentionally skewed gaussians, meant to mimic the probability distribution of the variables we took into account. We started off testing genetic algorithms using queue data structure representations, with an objective of learning the decision-making process. This was to address the high variability and non-differentiability of our objective function. We later learned that this technique was a bit overkill, and was not as predictable as we were expecting. Learning this we opted instead to use keras, and a regressor function to model the situation (99.6% validation accuracy), then building some dynamic algorithms to make decision based on a generated cost. We used GCP App Engine to host and deploy our AI model on flask, which we communicated to the app with HTTP. We used GCP Firebase to store app data.
Challenges we ran into
One challenge was creating the dataset using statistical techniques. We had to do thorough research on national aid statistics, and it took a lot of spatial/ mathematical thinking. Another challenge was effectively setting up the blockchain, which [insert something].
Accomplishments that We're proud of
We are proud of being able to successfully build such a complete AI pipeline, and finish the solution within 24 hours. We are proud of building a solution that we know there is currently highly unique. We are also super happy that we were able to pick up a blockchain platform that was completely new to us. What makes our project most impressive is not the technical bravado, it's the innovative, unique, and creative nature of our idea that is our favorite part. Our UI is something that we put a lot of work into as well, so we must say we're pretty proud of that too.
What We learned
We learned a lot about genetic algorithms, data synthesis, and we learned how to deploy models on flask. We also learned a great deal about the field and the data itself. We learned the basic setup of the Stellar blockchain network and how to integrate the blockchain with a mobile app. Of course our knowledge of Flutter, and respect for the framework, has definitely gone up.
What's next for Fairity
Our app is a working proof of concept, not a final solution. We need to take steps to making our solution deployment-ready, scam-proofing our algorithms, setting up identity verification, and possibly using our concept to apply to fields outside of medical finance. Algorithm robustness and further work with blockchain will also be key. We look towards deployment on app stores and expansion to more use-cases.