Concealed within online communities like Facebook, Twitter, and LinkedIn are webs of overlapping tastes and preferences, as well as unrealized communities of individuals who’d like to connect with others who share these same likes. Identifying such hidden webs of potential connections is no easy thing though, especially when dealing with sites that range from tens-of-thousands to hundreds-of-millions of users.
Not only are the scaling issues that go with human networks at these levels daunting for app developers to tackle, but the data about users’ interests is often ambiguous. Members commonly share information about events they’ve attended or services they’ve used, rather than explicitly declaring their preferences for the exact types of music or books or the kinds of people they want to meet.
Even when they do express specific "likes" using embedded formats, the interpretation of that data can be ambiguous. If a social network user chooses to share her love of album X with her friends, how likely is it that she’d enjoy album Y within the same genre? Just because she likes jazz does not means she likes all jazz.
1950s bebop is not the same as 1960s avant-garde. Not by a long shot.
If your application recommends or promotes album Y and the user hates it, your app loses credibility with her. Pretty soon she’s doing whatever she can to click off the application so that it stops clogging up her feed or profile page with annoying updates or advertisements.
So,you have millions of potential customers with broad explicit tastes from which your application must correctly infer more specific, implicit interests and shared preferences. These well-defined likes will then allow your app to identify products and human connections that a customer will find valuable. But how does a small app developer tackle this kind of brute-scale analytical problem?
Answer: By using one of the coolest free tools that someone else has spent years and buckets of money developing — Microsoft Research’s Infer.Net.
Why call a library of algorithms that can be patched into your application “cool?” In part because of the how-cool-is-that factor.
Microsoft Research’s Infer.Net library allows a developer to graft in the ability for an application to quickly perform internet-scale inference functions with a minimum of effort. Rather than needing to carryout millions of statistical analysis runs while looking at social network problems, Infer.Net works it out in a single shot.
It does so by using an inference engine to analyze probability distributions for the system being modeled. This allows Infer.Net to infer relationships with 20 to 30 lines of code rather than the thousands that are the norm.
Thousands of lines of code that would otherwise take months for a small developer to write.
Infer.Net’s ability to infer relations also allows your app to make conditional judgments. This can translate into machine leaning functions for applications that adapt to customer behavior, make use of example-based learning, or work with incomplete information.
The other cool part of Infer.Net is the previously mentioned ability for developers to graft in its algorithms with a minimum of tweaking. Infer.Net’s algorithms readily plug into commonly used .Net programming languages with few required optimizations. Aside from the significant time savings, this also allows for easy changes or updates during the life of the software.
Put differently, Infer.Net is modular. It lets a developer alter the functions of active applications like a jazz musician improvising on the fly by dropping new rifts or chords into an established song.
“The cool” — if you’ve ever listened to jazz from the age of bebop — was an attitude that was all about creating musical elegance by having chaotic elements fall into complimentary relationships. Something that’s easy in theory, but difficult to accomplish in execution.
If Infer.Net is so chill, why is it still free three years after its first release? Mostly because Microsoft and other large corporations on both the hardware and software side of the industry are anxious to assist applications developers in creating apps that will run on their new mobile platforms and OSs. Infer.Net is a developer enabler for this process. A means of encouraging developers to create sophisticated applications for tablets and smart phones. That’s why it’s free, and that’s part of what makes it cool.blog comments powered by Disqus