When I first learned about credit card churners, I was really surprised that there was a community of people dedicated to strategically using credit cards to maximize benefits. It seemed like an intriguing lifestyle but when I learned the amount of effort that had to go in managing multiple credit cards, I understood why using credit cards effectively could become a challenge for most people. We decided to create this Alexa skill after thinking that it could be very useful if there could be a credit card recommending audio assistant. It certainly might not let users become credit card wizards right away but we thought getting them used to switching between a few cards that they own depending on cash back rewards could actually be beneficial (especially for low income families that might not have been aware of this possibility or just needed help with learning to use credit cards).
What it does
Our Alexa skill recommends a credit card for an item that the user wants to purchase. For example, if a user wanted to get some BBQ ribs, the Alexa skill will recommend the card with the most cash back reward for dining (Capital One SavorOne Cash Reward Credit Card). If a user wanted to buy Tylenol, the Alexa skill would recommend Chase Freedom unlimited which gives 3% cash back for drug stores.
How we built it
Natural Language Processing side: For the Natural Language Processing side of the application, we essentially had to take in the item the user wants to purchase and return the category the word would belong to. Because the credit cards we looked through mostly had differing reward rates for (1) groceries, (2) dining out, (3) travel, (4) gas, (5) entertainment, (6) apparel, and (7) anything else, we chose those to be our outputs from the function. We initially checked if some of the NLTK functions could be helpful for us. However, the NLTK similarity function was not effective in sorting words to categories as even words technically in the category was not really connected to the specific category. For example, movies and banana had a similar similarity value for groceries. Next, we considered using custom text classification but we couldn't find good datasets and we thought that if we were going to use Google Cloud, the Content Classification tutorial under Natural Language API really had what we were looking for. As a result, we ended up modifying the content classifier method to suite our needs by just adding a simple filter code that took in the list of categories obtained by google and looped through the list of categories to look for specific substrings that almost always accurately returned one of our 7 categories referring to the content categories on google.
Alexa: To create the Alexa skill, we utilized intents and slots, which represent the specific user actions and information which the backend requires. In this case, our primary intent was set up to take the item or location the user would like to shop for/at and and return a json which Amazon could process to tell the user which credit card would work the best.
Challenges we ran into
We think most of the smaller challenges we faced from having experience in absolutely none of the stacks we were using. We never worked with the cloud or Alexa so we regularly faced minor roadblocks when trying to get everything to work. However, none of those challenges really compare to the immense challenge of attempting to integrate NLP lambda function to the Alexa lambda function.
Accomplishments that we're proud of
Though we eventually failed to merge the NLP code to the Alexa skill, we really did our best to understand how to make it work. We tried to go as far as we can until we simply felt like it was just really out of our reach and we are honestly proud of the fact that we actually gave it a try.
What we learned
Use AWS for Alexa or Google cloud with Google home! In the initial phase, we didn't really look into the steps to use google cloud APIs (mostly because we weren't sure if we would use them), so we went with Alexa because we assume they could be connected pretty easily and because we knew people who created Alexa skills before. I guess our biggest take away from this experience was to research more before you starting anything.
Not only that we did learn quite a bit about how Google cloud works and how Alexa works so that was a nice experience.
What's next for Voice Wallet
We understand that the basic feature we provide for Voice Wallet can seem impractical for daily use. On its own, we admit that it might not be the most useful to our users. However, we believe that what we have created is not at all a complete product but a stripped down version of an audio credit card manager that we think could really improve the lives of users. For example, if Voice Wallet could get access to the purchase history of users, it might be able to remind them to use this credit card they haven't used this month to keep a good credit score and even recommend cards that users might want to apply for to save up on spending. We could also integrate separate algorithms for air mileage and sign-up reward cards in addition to simple cash back cards.
However, before we try to integrate more interesting features to our Alexa skill, we do have quite a few immediate challenges we have to resolve. First, we have to link up the Alexa side and NLP side of our product and second, we need to create a credit card database that store information of the many credit cards out there and also store the user's credit cards.