- The Silicon Valley Engineer
- Posts
- My Apple Patent
My Apple Patent
Apple Chronicle's. New weekly segment about my life as a Software Engineer @Apple from 2014 to 2020 - I'll share with you bits and pieces of my ~6 years tenure.
This week, we are going to talk about my Apple patent. It was the year 2018, and I led the engineering effort to improve Siri’s ability to make better decisions for ambiguous requests.
Some stats about Apple Patents
Apple has a total of 95500 patents globally. These patents belong to 34137 unique patent families. Out of 95500 patents, 78104 patents are active.
If you are curious about additional stats, check out insights.greyb.com/apple-patents/
Everything in this article comes from my personal experience at Apple. Depending on the team and period, these facts might be different.
Accessing multiple domains across multiple devices for candidate responses
Patents are written with tons of boilerplate. You want to try to be as generic as possible to cover many use cases and applications, but still provide enough details to have a valid patent that passes review and approval.
If you are curious and want to read it all, you can do so at patents.google.com/patent/US20190370413A1. I thought it would be interesting to talk about the overall patent meaning, which one can infer from the patent itself, so I am not disclosing anything private or sensitive.
What we invented we called internally Global ReRanker (GRR) and the idea was to change the fundamental Siri design choice of executing a single domain (say the Phone Call domain) for an input query. While that was fine in 2010 it clearly failed handling ambiguity in 2020.
Example
U: Play Angry Birds
The intent for the above user request is very ambiguous. The user might want to play the game, the movie, or the soundtrack.
Historically, Siri would run the NLP (Natural Language Processing) phase and execute the top domain only.
With our new architecture (GRR), Siri propagates ambiguity closer to the user device/data, better understands the context, and makes better decisions. The presence of the game or movie, in the Angry Birds example above, would be a signal taken into account to decide which intent to execute. This is the probing phase.
The GRR would use signals fetched during the probing phase to then rerank the different domains/intents. Finally, during the execution phase, the top domain (which might or might not be the same as originally ranked) would be executed on the user device.
It makes sense right?
While it seems like a logical thing to do and might appear simple, more than 50 engineers across multiple orgs (domain, knowledge, client, infra) worked on this effort.