Simple keyword queries wouldn't have worked with the complex data Facebook holds
Facebook's Graph Search is still limited to a few users, and for good reason. It's a big change to the way Facebook works and it needs a lot of testing before it's ready.However, Facebook has big plans, and it has put a lot of engineering muscle behind the project.
Now it's detailing some of the tech behind the natural language processing in Graph Search, the ability to understand actual questions posed by users rather than just keywords.
Facebook also explained why natural language was the obvious choice for Graph Search. Data on Facebook is highly interconnected and the relationship between two data points, or nodes, can vary.
"People, pages, places, photos and posts are all nodes in the graph, each with structured information of its own nature. For example, users have gender information, places have addresses, and photos have posting dates," Facebook's Xiao Li explained.
"Moreover, the nodes are connected to each other in various ways. Someone can like a page, study at a school, live in a city, be in a relationship with another user, check in at a place, and comment on a photo," he added.
The relationship itself is as important as the data at the nodes. This is why a simple keyword search wouldn't have been able to cope.
"In mid-2011, the team converged onto the idea of building a natural language interface for Graph Search, which we believe to be the most natural and efficient way of querying the data in Facebook’s graph. You can find 'tv shows liked by people who study linguistics' by issuing this query verbatim," Li added.
By the time the feature was ready to roll out, the natural language processing was quite complex and capable. It can understand natural language, but also grammatically incorrect queries and even keyword queries.
Graph Search also provides suggestions for queries and, because it spells out your question, you'll know whether it was understood or not.
Facebook goes into technical details describing Graph Search and natural language queries, interesting to developers but not so much to regular users. Still, if you're curious you can read more here.