Imagine getting recommendations, for example, for music or TV shows, based on similar people you pass by on the street. No server backend needed, all via device-to-device communication. We designed and implemented such a system. You can find our full article published in IEEE Access here (PDF) and the code on GitHub. We build the multi-platform app (iOS/Android) with Ionic.
Recommender systems recommend new movies, music, restaurants, etc. Typically, service providers organize such systems in a centralized way, holding all the data. Biases in the recommender systems are not transparent to the user and lock-in effects might make it inconvenient for the user to switch providers. We present the concept, design, and implementation of MobRec, a mobile platform that decentralizes the data collection, data storage, and recommendation process. MobRec’s architecture does not need any backend and solely consists of the users’ smartphones, which already contain the users’ preferences and ratings. Being in proximity in public places or public transportation, data is exchanged in a device-to-device manner, building local databases that can recommend new items. One of biggest challenges of such a system is the implementation of unobtrusive device-to-device data exchange on off-the-shelf Android devices and iPhones. MobRec facilitates such data exchange, building on Google Nearby Messages with Bluetooth Low Energy. We achieve the successful exchange of data within 3 to 4 minutes, making it suitable for the described scenario. We demonstrate the feasibility of decentralized recommender systems and provide blueprints for the development of seamless multi-platform device-to-device communication.
The general architecture of MobRec looks like this:
The general idea behind the device-to-device data exchange is the following. Alice connects one of her cloud storage providers (like Google Drive or Dropbox) to the MobRec app. MobRec uploads Alice’s (implicitly or explicitly) rated items to her cloud storage provider and broadcasts the public URL via Bluetooth. Another MobRec user, Bob, listens to these Bluetooth broadcasts, and receives Alice’s URL.
Here is a more detailed view. Each broadcast message actually contains similarity data and the public URL from the cloud storage provider. Only if the similarity threshold is met, is the data downloaded. The idea behind this is that similar users tend to have similar tastes, making the recommendations better.
Here is a screenshot of the MobRec app prototype: