RecommendMii: AI for Smarter Spending
Team Members: Caleb Caldwell, Frank Dong, Colin Yip, Adrian Yung
Business Use Case
RecommendMii is a mobile application built on Swift, Firebase, Python (NumPy/Pandas), and DialogFlow that combines AI with traditional personal finance methodologies. The aim of this platform is to provide additional insight on saving and spending for consumers while allowing users enough leeway to enjoy their hobbies. This product also has commercial potential as many Canadian households struggle to manage their spending, market incumbents aim to sell debt products to already over-leveraged consumers, and alternative solutions lack the same degree of integration with day to day life.
Features
In order to make budgeting and financial management more accessible, RecommendMii’s onboarding process is executed via chatbot, which guides users through providing key information such as their preferences and financial goals. This further reinforces our goal towards integrated financial management while simultaneously improving customer acquisition.
Our product offers a number of ways with which consumers can better track spending. First, location-based notifications alert users of nearby amenities tied to their budget’s line items as well as the remaining balance for goods or services of that type. This allows users to understand their spending behaviour in relation to their initial decision making on a granular level that requires no proactive action to access the application on their behalf. Tapping into routine goes one step further with RecommendMii’s daily activity itineraries. These sets of activities are built based upon the user’s past preferences, similar users’ preferences, and the user’s remaining budget. This moves the idea of fiscal responsibility away from traditional penny-pinching to that of responsible spending, thereby improving consumer buy-in. Additionally, unspent budget dollars are recommended to be invested in institutional investment vehicles, such as ETFs, that would also serve to improve users’ financial stability.
Technical Information
Firebase
From a technical standpoint, the centre of RecommendMii’s functionality is a Firebase database, storing vendor information, user information, and, tied to that, transaction data. We selected Firebase due to its seamless and extensive integration with DialogFlow, its flexibility in working with a mobile application, and its ease of use given the time constraint. This being said, we ran into difficulties in transferring Firebase’s JSON format to Python dataframes for machine learning analysis. These difficulties required extensive reading of documentation and ultimately trial and error to determine effective conversions.
DialogFlow Chatbot
The chatbot’s primary function is to onboard and allow the user to set up and view their name, age, budget, job status, and preferred time of day in the RememberMii app. The development of the RememberMii chatbot with Dialogflow was a very unique process. Not only does the bot converse freely with the user, it “learns” and can alter its responses based on the data it collects from the inputs of various users. Intents for the welcome screen, setting, and viewing the various settings of the user were created as well as different entities for the menu, age, time, and employment. Contexts were treated as parameters, and allowed the bot to monitor when the user has entered their budget and age, both conditions being necessary to proceed. Two exit conditions were created, dependent on whether the user has satisfied the aforementioned conditions. Challenges faced included the logic structure, training the bot to respond to various scenarios, and transferring the data to the database. As responses are mainly context and user response driven, multiple situations had to be considered and tracked in order for the bot to respond accurately. However, through careful planning of the logical flow and various training phrases, the bot was finally able to obtain user information in a natural fashion. This information was then stored in Firebase through the use of Dialogflow’s inline editor. Check the chatbot out at https://bot.dialogflow.com/remembermii.
Python Recommendation System
A collaborative recommendation system was prototyped using Python and the NumPy and Pandas libraries in order to suggest outings based on the purchasing history of the user and that of similar users. The similarity metric was measured using Pearson’s r, a measurement of correlation, and a top-n similar users were used to assign weights to possible suggestions. A dot product is then calculated between the the user similarities and their purchase incidence at given locations.
We experienced difficulty cleaning the data from our database and preparing it into a dataframe format, and also recognize that as the system scales it will prove difficult to continually train models for our users. For this reason we have already implemented tweakable hyperparameters that will allow for more rapid results at the cost of accuracy. We also plan to implement more features going forward relating to time and location sensitivity, similarity calculation using demographics, as well as more intelligently assigning price to outings levering greater data.

Log in or sign up for Devpost to join the conversation.