Graphlet-AI / graphlet

PyPi module for Graphlet AI Knowledge Graph Factory
https://graphlet.ai
Apache License 2.0
28 stars 1 forks source link

Create `graphlet.nlp.entity_linking` module that uses BLINK on your KG / dataset #12

Open rjurney opened 2 years ago

rjurney commented 2 years ago

Use of graphlet.nlp.ie

The entities and their relations that form the input to this module will be extracted using graphlet.nlp.ie - see #11 and #1.

Integration with BLINK

BLINK by Facebook Research which you implements the ELQ architecture uses a joint embedding

In a nutshell, BLINK uses a two stages approach for entity linking, based on fine-tuned BERT architectures. In the first stage, BLINK performs retrieval in a dense space defined by a bi-encoder that independently embeds the mention context and the entity descriptions. Each candidate is then examined more carefully with a cross-encoder, that concatenates the mention and entity text. BLINK achieves state-of-the-art results on multiple datasets.

BLINK can be used interactively, which is neat. Adapting BLINK to any given ontology is not a simple task.

BLINK can use FAISS vector search engine or the more scalable distributed-faiss, which we have used in the past for blocking for entity resolution.

Using BLINK with an arbitrary KG and dataset

The work in building this ticket would be using BLINK with the knowledge graph defined using the graphlet.etl NodeSchema / EdgeSchema sub-classes and your own corpus of documents.