How Automated Entity Resolution Works

The automated entity resolution problem splits into three major phases: feature selection, model creation, and entity labeling.

During the feature selection phase, we determine which features of our items we wish to use for in our model, and extract them from our items. Let us assume we wish to identify pictures of three employees, Bill, Bob, and Pete, all of whole work for Accounting. We might be able to tell things like hair color, hair length, presence of glasses, gender, age, and department from their photos. While we could use all of these features in our model, some may not contribute to figuring out who is who. Since Bob, Bill, and Pete are male, gender is not going to be particularly useful in determining which of them is which. And since they all work for Accounting, that doesn’t help us, either.

Once we have a selected a feature set (say, hair color, presence of glasses, and age), we use samples photos of our three accountants a model for identifying each of them using these features. In this example, we start with information about the features of Bob, Bill, and Pete we selected earlier, and use this to create a model. The model could be as simple as saying “If the person has brown hair, it’s Bob”, though model complexity tends to be related to the number of features in use, as increasing the feature count increases the total number of possible combinations of features.

Once we have derived our model, which is effectively a set of rules relating features to entities, we can start asking questions. We might, for example, ask “Who is in this photo?” or “Is this Bob?” Because we are attaching names to objects, we call this questioning ‘labeling’.

As our potentially set of entities changes, we need to update our feature sets and models. For example, if Accounting hires Jill, gender can now be used to help determine whose picture we are looking at. Likewise, we can now add the rule “If the person is female, it is Jill.” Likewise, changes to the questions we are asking could force us to reconsider our data. We might want to ask questions like “does this person work for Accounting”, at which point we could either use a model which says “If the person is Bill, Bob, Jill, or Pete, they work for Accounting, otherwise they don’t”, or we could add in the department feature to find the result more directly. Clearly, the questions we ask of our system are every bit as important as the feature data we give it.