DE102021000950A1 - Vereinheitlichtes Framework zur multimodalen Ähnlichkeitssuche - Google Patents

Vereinheitlichtes Framework zur multimodalen Ähnlichkeitssuche Download PDF

Info

Publication number
DE102021000950A1
DE102021000950A1 DE102021000950.9A DE102021000950A DE102021000950A1 DE 102021000950 A1 DE102021000950 A1 DE 102021000950A1 DE 102021000950 A DE102021000950 A DE 102021000950A DE 102021000950 A1 DE102021000950 A1 DE 102021000950A1
Authority
DE
Germany
Prior art keywords
modality
embedding
query
objects
tag
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102021000950.9A
Other languages
English (en)
Inventor
Pranav Vineet Aggarwal
Ali Aminian
Ajinkya Gorakhnath Kale
Aashish Kumar Misraa
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Adobe Inc
Original Assignee
Adobe Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Adobe Inc filed Critical Adobe Inc
Publication of DE102021000950A1 publication Critical patent/DE102021000950A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • G06F16/2448Query languages for particular applications; for extensibility, e.g. user defined types
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2457Query processing with adaptation to user needs
    • G06F16/24578Query processing with adaptation to user needs using ranking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • G06F16/2438Embedded query languages
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90344Query processing by using string matching techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/90335Query processing
    • G06F16/90348Query processing by searching ordered data, e.g. alpha-numerically ordered data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/907Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/908Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2413Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
    • G06F18/24147Distances to closest patterns, e.g. nearest neighbour classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/042Knowledge-based neural networks; Logical representations of neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/42Global feature extraction by analysis of the whole pattern, e.g. using frequency domain transformations or autocorrelation
    • G06V10/422Global feature extraction by analysis of the whole pattern, e.g. using frequency domain transformations or autocorrelation for representing the structure of the pattern or shape of an object therefor
    • G06V10/426Graphical representations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • G06N5/022Knowledge engineering; Knowledge acquisition

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Multimedia (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Molecular Biology (AREA)
  • Library & Information Science (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Image Analysis (AREA)

Abstract

Offenbart wird eine Technologie zur verbesserten Ähnlichkeitssuche. Bei einer Implementierung beinhaltet eine Suchumgebung eine oder mehrere Rechenhardware-, Software- und/oder Firmware-Komponenten zur Unterstützung der verbesserten Ähnlichkeitssuche. Die eine oder die mehreren Komponenten identifizieren eine Modalität für eine Ähnlichkeitssuche in Bezug auf ein Anfrageobjekt. Die Komponenten generieren eine Einbettung für das Anfrageobjekt auf Grundlage der Modalität und auf Grundlage von Verbindungen zwischen dem Anfrageobjekt und benachbarten Knoten in einem Graph. Die Einbettung für das Anfrageobjekt stellt die Basis für die Suche nach ähnlichen Objekten bereit.

Description

  • Technisches Gebiet
  • Aspekte der Offenbarung betreffen das Gebiet der Rechenhardware, Software und Dienste und insbesondere die Technologie der Ähnlichkeitssuche.
  • Hintergrund
  • Eine Ähnlichkeitssuche erfolgt im Allgemeinen durch Vergleichen der Ähnlichkeit zwischen Paaren von Objekten. Es kann beispielsweise ein Datensatz nach den top-k Objekten, die zu einem Anfrageobjekt am ähnlichsten sind, auf Grundlage eines Vergleiches eines jeden Objektes in dem Satz mit dem Anfrageobjekt durchsucht werden. Die eindeutigen Paare von Objekten, die das Anfrageobjekt und jedes Objekt in dem Satz umfassen, können sodann auf Grundlage der Ähnlichkeit des Zielobjektes in einem gegebenen Paar zu dem Anfrageobjekt bewertet werden. Die Ähnlichkeit des einen Objektes zu einem anderen kann auf Grundlage einer visuellen Ähnlichkeit, einer konzeptuellen Ähnlichkeit oder einer beliebigen anderen Modalität bewertet werden, wobei die Suchpipeline für eine beliebige gewünschte Modalität optimiert werden kann.
  • Die Suchpipeline beinhaltet allgemein eine Merkmalsextraktionsstufe - oder Einbettung -, auf die eine Bewertungsstufe folgt. Die Merkmale eines Anfrageobjektes werden in der ersten Stufe extrahiert und als Eingabe in die Bewertungsstufe eingespeist. In der Bewertungsstufe werden die Merkmale des Anfrageobjektes mit denjenigen der Zielobjekte verglichen, um die ähnlichsten Objekte ausfindig zu machen. Eine Merkmalsextraktion kann in Abhängigkeit von der gewählten Optimierung genauso wie die Merkmalsbewertung hin zu der einen oder anderen Dimension gewichtet werden. Eine Suche nach den visuell ähnlichsten Objekten zu einem Anfrageobjekt kann beispielsweise für die visuellen Merkmale der Objekte optimiert werden, wohingegen eine Suche nach konzeptuell ähnlichen Objekten für konzeptuelle (oder textartige) Merkmale optimiert werden kann.
  • Ein Nachteil der bestehenden Optimierungstechniken besteht darin, dass eine Ähnlichkeitssuche, die auf eine Modalität oder Dimension fokussiert ist, Objekte, die gegebenenfalls in anderen Modalitäten ähnlich sind, tendenziell übersieht. Ein weiterer Nachteil - wenigstens bei Suchlösungen, die maschinell lernende Modelle einsetzen - besteht darin, dass separate Modelle für jeden Typ der Optimierung benötigt werden. Dies bedeutet, dass zwei Modelle, die für verschiedene Modalitäten optimiert werden, jeweils an verschiedenen Datensätzen trainiert werden, um die gewünschten Optimierungen zu erzeugen. Bei derzeit vorhandenen Optimierungen fehlt daher eine feinkörnige Steuerung bzw. Regelung der Ähnlichkeitsaspekte und zudem die Erweiterbarkeit mit Blick auf das Hinzufügen neuer Modalitäten. Derartige Randbedingungen machen Suchoptimierungen insbesondere mit Blick auf solche, die maschinell lernende Modelle einsetzen, zu einem aufwändigen Vorgang.
  • Maschinell lernende Modelle können im Kontext einer Ähnlichkeitssuche in der Merkmalsextraktionsstufe oder in der Bewertungsstufe oder in beiden eingesetzt werden. Während der Merkmalsextraktion kann ein Anfrageobjekt in ein Modell, das eine Einbettung für das Objekt erzeugt, eingegeben werden. Die Einbettung kann sodann an ein Suchwerkzeug beliebigen Typs weitergeleitet werden, und zwar unabhängig davon, ob sich dieses eines maschinell lernenden Modells oder einer herkömmlichen regelbasierten Methode bedient. Das Suchwerkzeug vergleicht die Einbettung für das Anfrageobjekt mit der Einbettung für die Objekte in dem Zieldatensatz, um diejenigen Objekte, die als die top-k ähnlichsten Objekte in dem Satz betrachtet werden, zu identifizieren und auszugeben.
  • Einige Lösungen erzeugen die Einbettung für ein Anfrageobjekt unter Nutzung eines Modells, das an einem Graph von bestehenden Objekten (beispielsweise GraphSAGE) trainiert worden ist. Der Graph, der Knoten und Kanten beinhaltet, die die Objekte und ihre wechselseitigen Verbindungen darstellen, nimmt das Anfrageobjekt als Eingabe und erzeugt eine Einbettung für das Objekt als Ausgabe. Die Einbettung kann sodann an ein Suchwerkzeug weitergeleitet werden, um dessen k nächste Nachbarn in dem Satz von bestehenden Objekten ausfindig zu machen. Das Modell kann für die eine oder andere Modalität optimiert werden, indem Trainingsdaten, die die eine oder andere Modalität hervorheben, ausgewählt werden. Nachteiligerweise erfordert diese Technik ein anderes Modell für jede Optimierung, wie vorstehend erläutert worden ist, und ist weder ohne Weiteres erklärbar noch erweiterbar.
  • Bei einem kurzen Beispiel kann ein Satz von bestehenden Bildern angefragt werden, um Bilder, die zu einem Anfragebild ähnlich sind, ausfindig zu machen. Um die bestehenden Bilder zu suchen, wird ein Graph eingesetzt, um ein maschinell lernendes Modell an Knoteneinbettungen zu trainieren. Der Graph beinhaltet Knoten, die die Bilder und Kanten, die deren Verbindungen darstellen, darstellen. Die Bilder können in dem Satz beispielsweise mit anderen Bildern, die zu einem gegebenen Bild ähnlich sind, verbunden werden. Bilder von Katzen werden mit anderen Bildern von Katzen verbunden; Bilder von Hunden werden mit anderen Bildern von Hunden verbunden; Bilder von Katzen und Hunden werden mit Bildern von Katzen und Bildern von Hunden verbunden, und dergleichen mehr.
  • Die Knoten beinhalten Einbettungen - oder Merkmalsvektoren -, die Information über jedes Bild codieren. Das maschinell lernende Modell wird an dem Graph trainiert, um Einbettungen für neue Eingabebilder zu generieren: das trainierte Modell nimmt Anfragebilder als Eingabe und erzeugt Einbettungen für die Bilder als Ausgabe. Die Einbettung für ein gegebenes Anfragebild kann sodann bei einer Ähnlichkeitssuche des Datensatzes benutzt werden, um diejenigen Bilder, die ähnlich zu dem Anfragebild sind, ausfindig zu machen. Sobald ein Modell trainiert worden ist, kann dessen Modalität jedoch nachteiligerweise nicht mehr geändert werden, und das Modell generiert stets Einbettungen entsprechend der einzigen Modalität, auf die es trainiert worden ist.
  • Kurze Zusammenfassung
  • Offenbart wird ein vereinheitlichtes Framework zur Ähnlichkeitssuche, das ermöglicht, dass mehrere Modalitäten gemeinsam derart modelliert werden, dass die Dimension, die bei einer Suche hervorgehoben werden soll, auf pro-Suche-Basis gewählt werden kann. Ein derartiges Framework kann auf eine beliebige Anzahl von Dimensionen erweitert werden, und es kann die Steuerung bzw. Regelung der Modalitätsauswahl explizit, implizit oder anders sein. Die Modalität, die für eine gegebene Suche ausgewählt wird, beeinflusst eines oder beide von dem Umstand, welche Kanten eines Anfrageobjektes in ein Modell, das eine Einbettung für das Objekt erzeugt, eingegeben werden sollen; und einer Gewichtung, die bei der Einbettung angewendet werden soll. Die sich ergebende Einbettung belastet die Ähnlichkeitssuche zweckmäßigerweise hin zu der gewünschten Modalität vor.
  • Bei verschiedenen Implementierungen beinhaltet eine Suchumgebung eine oder mehrere Rechenhardware-, Software- und/oder Firmware-Komponenten zur Unterstützung der verbesserten Ähnlichkeitssuche. Im Betrieb identifizieren die eine oder die mehreren Komponenten eine Modalität für eine Ähnlichkeitssuche in Bezug auf ein Anfrageobjekt. Die Komponenten generieren eine Einbettung für das Anfrageobjekt auf Grundlage der Modalität und auf Grundlage von Verbindungen zwischen dem Anfrageobjekt und benachbarten Knoten in einem Graph. Die Einbettung für das Anfrageobjekt stellt die Basis für die Suche nach ähnlichen Objekten bereit.
  • Bei einigen Implementierungen wird der Graph benutzt, um ein maschinell lernendes Modell, das die Einbettung für das Anfrageobjekt erzeugt, zu trainieren. Die Einbettung, die von dem Modell erzeugt wird, kann durch die Eingabe, die in es eingespeist wird, vorbelastet sein. In einigen Fällen identifizieren die eine oder die mehreren Komponenten selektiv, welche Kanten mit dem Anfrageobjekt in die Eingabe für das Modell einbezogen werden sollen, um die sich ergebende Einbettung hin zu einer von mehreren möglichen Modalitäten vorzubelasten. Die Einbettung, die von dem Modell ausgegeben wird, kann für eine Suchkomponente bereitgestellt werden, um die ähnlichen Objekte ausfindig zu machen.
  • Bei derselben oder anderen Implementierungen kann die Ausgabe, die von dem maschinell lernenden Modell bezogen wird, als Anfangseinbettung für das Anfrageobjekt betrachtet werden. Die Anfangseinbettung kann mit einem Tag kombiniert werden, der in eine kombinierte Einbettung, die in die Ähnlichkeitssuche eingegeben wird, eingebettet ist. Die Anfangseinbettung und die Tag-Einbettung können auf Grundlage einer Gewichtung kombiniert werden, die durch die Modalität derart spezifiziert ist, dass die kombinierte Einbettung hin zu der ausgewählten Modalität vorbelastet ist, wodurch die Endergebnisse der Suche beeinflusst werden.
  • Die vorliegende kurze Zusammenfassung wird bereitgestellt, um in vereinfachter Form eine Auswahl von Konzepten einzuführen, die nachstehend in der Detailbeschreibung weiter beschrieben werden. Es sollte einsichtig sein, dass die vorliegende Übersicht Schlüsselmerkmale oder wesentliche Merkmale des beanspruchten Erfindungsgegenstandes werden identifizieren, noch dazu benutzt werden soll, den Umfang des beanspruchten Erfindungsgegenstandes zu beschränken.
  • Figurenliste
  • Viele Aspekte der Offenbarung erschließen sich besser anhand der begleitenden Zeichnung. Die Elemente in der Zeichnung sind nicht notwendigerweise maßstabsgetreu. Betont ist vielmehr die klare Darstellung der Prinzipien der vorliegenden Offenbarung. Darüber hinaus bezeichnen in der Zeichnung gleiche Bezugszeichen entsprechende Teile in den mehreren Ansichten. Obwohl einige Ausführungsformen anhand der vorliegenden Zeichnung beschrieben werden, ist die Offenbarung nicht auf die hier offenbarten Ausführungsformen beschränkt. Vielmehr ist beabsichtigt, dass sämtliche Alternativen, Abwandlungen und Äquivalente abgedeckt sind.
    • 1 zeigt eine Suchumgebung bei einer Implementierung.
    • 2 zeigt einen Suchprozess bei einer Implementierung.
    • 3 zeigt einen Einbettungsprozess bei einer Implementierung.
    • 4A und 4B zeigen jeweils eine Suchumgebung und zwei Betriebsszenarien bei einer Implementierung.
    • 5 zeigt einen Einbettungsprozess bei einer Implementierung.
    • 6A und 6B zeigen jeweils eine Suchumgebung und zwei Betriebsszenarien bei einer Implementierung.
    • 7A bis 7D zeigen eine exemplarische Ähnlichkeitssuche, die über zwei verschiedene Modalitäten durchgeführt wird, bei einer Implementierung.
    • 8 zeigt ein Rechensystem mit Eignung zum Implementieren der verschiedenen Betriebsumgebungen, Module, Architekturen, Prozesse, Szenarien und Sequenzen, die nachstehend anhand der Figuren erläutert werden.
  • Detailbeschreibung
  • Das Optimieren einer Ähnlichkeitssuche auf eine gewünschte Modalität ist ein bekanntermaßen schwierig zu lösendes Problem beim Lernen von Darstellungen, und zwar insbesondere mit Blick auf eine visuelle Suche. Das bloße Optimieren auf visuelle Ähnlichkeit erzeugt Ergebnisse, denen die Diversität in Bezug auf die konzeptuelle Ähnlichkeit fehlt; genau so erzeugt das Optimieren auf konzeptuelle Ähnlichkeit Ergebnisse, denen die visuelle Ähnlichkeit fehlt. Zusätzlich beschränkt oder beseitigt das Optimieren einer Ähnlichkeitssuche auf eine Modalität gegenüber einer anderen den Erklärwert und die Aussagekraft der Ergebnisse in Gänze. Zudem ist es sehr schwierig, zu vorhandenen Frameworks der Ähnlichkeitssuche neue Dimensionen hinzuzufügen.
  • Das hier offenbarte vereinheitlichte Framework schlägt das Lernen von Darstellungen an einem multimodalen Graph vor, der Objekte und deren Metadaten (Tags) gemeinsam beinhaltet. Der Graph kann in wenigstens zwei Modalitäten (beispielsweise visuell und konzeptuell) gemeinsam modelliert sein, sodass das sich ergebende Modell Einbettungen entsprechend mehreren Modalitäten erzeugen kann. Zusätzlich stellt eine Schlussfolgerungskantenverbindung einen Erklärwert und eine Steuerung bzw. Regelung dahingehend bereit, welche Dimension für eine Ähnlichkeitssuche, also beispielsweise visuell oder konzeptuell, gewählt werden soll. Die Steuerung bzw. Regelung kann auf Grundlage der Nutzerabsicht, also beispielsweise auf Grundlage der Suchanfragen, implizit oder auf Grundlage einer Nutzerschnittstelle zur Annahme einer Modalitätsauswahl explizit sein. Das selektive Identifizieren von Verbindungen in dem Graph bietet die Möglichkeit, den Modus einer Suche zu steuern bzw. zu regeln.
  • Die Dimensionen müssen nicht auf „visuell“ oder „konzeptuell“ beschränkt sein, sondern sind auf beliebige Dimensionen erweiterbar, die von verfügbaren Metadaten oder maschinell lernenden Schlussfolgerungen in der Graphenstruktur unterstützt werden. Zusätzlich ist das vereinheitlichte Framework auf eine Vielzahl von Daten anwendbar, darunter Bilder, Dokumente, Videos, biologische Strukturen, chemische Strukturen und dergleichen.
  • Bei verschiedenen hier offenbarten Implementierungen wird ein Graph vorgeschlagen, der eine Kombination von Knoten von verschiedenen Modalitäten und zwischen diesen gegebenen Kanten umfasst, um eine Zuordnung herzustellen. Beispiele beinhalten Objekte, Objekt-Tags und Verbindungen, die auf Grundlage der Ähnlichkeit bestimmt werden. Der Graph verbindet jedes Objekt mit dessen entsprechenden Tags und den k nächsten Nachbarn eines gegebenen Objektes. Die Tags können Teil eines Objektes (beispielsweise Text, der in einem Bild eingebettet ist) sein, oder sie können kurze Wortsequenzen, die die Inhalte eines Objektes beschreiben, umfassen.
  • Die k nächsten Nachbarn für ein Objekt werden auf Grundlage eines Ähnlichkeitskennwertes für eine erste Dimension (zunächst mit der Rangbewertung „nächster“) von allen Objekten in dem Korpus zu einem Anfrageobjekt bestimmt. Eine exemplarische Dimension ist die „visuelle“ Ähnlichkeit von Bildern, die durch ein unabhängiges neuronales Deep-Netzwerk bestimmt wird, das auf das Lernen von Darstellungen von Bildern in einem hochdimensionalen Raum trainiert und optimiert ist, in dem die Ähnlichkeit mittels einer Abstandsmetrik erfasst wird (bei der ein kleinerer Abstand eine größere Ähnlichkeit darstellt). Eine visuelle Ähnlichkeitsmetrik für Nachbarkanten in dem Graph ist lediglich ein Beispiel dafür, wie das Framework auf eine beliebige Ähnlichkeitsmetrik zwischen Knoten desselben Typs oder zwischen verschiedenen Knotentypen verallgemeinerbar ist.
  • Sobald der multimodale Graph erstellt worden ist, wird ein Modell an dem Graph zu dem Zweck trainiert, jeden Knoten in Einbettungen (Merkmalsvektoren) umzuwandeln, die Information einer Dimension (beispielsweise visuell) und Information wenigstens einer zweiten Dimension (beispielsweise konzeptuell), die durch die Verbindungen im Graphen extrahiert werden, enthält. Bei einigen Implementierungen werden die Objektknoten in dem Graph mit ResNet-18-Merkmalen, die die Größe 512 aufweisen, initialisiert. Die Tag-Knoten werden zufällig mit Tag-Einbettungen der Größe 512 initialisiert. Das Training strebt danach, den Abstand zwischen den Knoteneinbettungen, die direkt verbunden sind, zu verringern und den Abstand zwischen denjenigen, die mehr als nur einen Sprung beabstandet sind, zu erhöhen. Das trainierte Modell kann sodann zur Unterstützung des gemeinsamen Lernens von Darstellungen eingesetzt werden. Dies bedeutet, dass das Modell für Ähnlichkeitssuchen einer beliebigen der mehreren Modalitäten, für die es trainiert worden ist, benutzt werden kann.
  • Das Modell kann für wenigstens zwei verschiedene Zwecke eingesetzt werden. Bei einem kann das Modell zur Vorhersage von Tags für Anfrageobjekte benutzt werden. Werden bei einem Beispiel Bilder benutzt, so wird ein gegebenes Anfragebild mit dessen top-k Bildern in dem Graph auf Grundlage der kürzesten Abstände verbunden. Das Anfragebild und dessen Verbindungen werden sodann in das Modell eingegeben, um eine Einbettung für den Anfrageknoten zu generieren. Die top-k Tags können sodann auf Grundlage des kürzesten Abstandes zwischen der Anfrageknoteneinbettung und den Tag-Einbettungen für die Tags in dem Graph ausfindig gemacht werden.
  • Das Modell kann zudem bei der Objektsuche und dem Objektabruf eingesetzt werden. Eine erste methodische Vorgehensweise nutzt Objekt-Objekt-Verbindungen, wenn keine Tags für die Anfrageobjekte verfügbar sind. In derartigen Fällen wird das Anfrageobjekt mit dessen top-k nächsten Objekten in dem Graph verbunden, um eine neue Anfrageeinbettung zu generieren. Ähnliche Objekte können sodann auf Grundlage eines kürzester-Abstand-Vergleiches der Anfrageobjekteinbettung mit den Objekteinbettungen in dem Graph ausfindig gemacht werden.
  • Bei einer Abwandlung können Objekt-Tag-Knoten zusätzlich zu Objekt-Objekt-Knoten eingesetzt werden. Es wird erneut ein Anfrageobjekt mit dessen top-k Objekten in dem Graph, jedoch auch mit dessen entsprechenden Tag-Knoten in dem Graph verbunden. Eine neue Anfrageeinbettung wird auf Grundlage des Anfrageobjektes, dessen Objekt-Objekt-Verbindungen und dessen Objekt-Tag-Verbindungen erzeugt. Die sich ergebende Anfrageeinbettung kann benutzt werden, um die top-k ähnlichen Objekte in dem Graph ausfindig zu machen. Bei einer Alternative können die Objekt-Tag-Knoten ausschließlich dafür benutzt werden, die neue Anfrageeinbettung zu generieren.
  • 1 zeigt eine Suchumgebung 100 bei einer Implementierung eines vereinheitlichten Frameworks zur multimodalen Ähnlichkeitssuche. Die Suchumgebung 100 beinhaltet eine Modelltrainingskomponente 101, eine Einbettungskomponente 111 und eine Bewertungskomponente 121. Die Modelltrainingskomponente 101, die Einbettungskomponente 111 und die Bewertungskomponente 121 arbeiten zusammen, um verbesserte Möglichkeiten für die Ähnlichkeitssuche bereitzustellen. Die Suchumgebung 100 kann in Hardware, Software und/oder Firmware sowie im Kontext eines oder mehrerer Rechensysteme, von denen ein Rechensystem 801 in 8 dargestellt ist, implementiert sein.
  • Allgemein nimmt die Suchumgebung 100 Anfrageobjekte, von denen ein Anfrageobjekt 113 repräsentativ ist, als Eingabe und identifiziert die Anzahl von Objekten, die zu dem Anfrageobjekt 113 ähnlich sind und für die die Suchergebnisse 125 repräsentativ sind,. Die Suchumgebung 110 erledigt diese Aufgabe durch Einsetzen eines gemeinsamen Modells, das durch das Modell 110 dargestellt und an einem Graph 107 trainiert ist, um Einbettungen für Anfrageobjekte, die durch die Anfrageeinbettung 115 dargestellt werden, zu erzeugen.
  • Insbesondere trainiert die Modelltrainingskomponente 101 das Modell 110 gemeinsam an dem Graph 107, der Knoten und Kanten entsprechend einem Datensatz 105 von bestehenden Objekten, Tags und deren Verbindungen beinhaltet. Beispiele für bestehende Objekte beinhalten unter anderem Bilder, Dokumente, Videos, Audios, Moleküle und Proteine. Die Tags umfassen textartige Beschreibungen oder Etiketten für wenigstens einige der Objekte. In einem Satz von Bildern können die Tags beispielsweise die Szenen oder den Inhalt in den einzelnen Bildern etikettieren, wohingegen die Tags in einem Satz von Dokumenten den Typ der Dokumente in dem Satz beschreiben können.
  • Die Knoten in dem Graph 107 entsprechen den Objekten und Tags, während die Kanten in dem Graph 107 deren Verbindungen entsprechen. Objektpaare, die ausreichend ähnlich zueinander sind, sind durch eine Kante verbunden, wohingegen Objekte, die etikettiert worden sind, durch eine Kante mit einem Tag-Knoten verbunden sein können. Obwohl einige Objekte mit einem oder mehreren Tags verbunden sein können, muss ein gegebenes Objekt nicht mit einem der Tags verbunden sein, auch wenn jedes Objekt mit wenigstens einem anderen Objekt durch eine Kante verbunden ist. Ob zwei Objekte ausreichend ähnlich sind, um verbunden sein zu können, ist eine Frage der Ausgestaltung auf Grundlage eines empirischen Nachweises und kann außerhalb des Umfangs der vorliegenden Offenbarung untersucht werden. In einigen Fällen ist der Graph 107 bereits gegeben, sodass dessen Erstellung kein Problem darstellt. Zusätzlich zu den Knoten und Kanten beinhaltet der Graph 107 zudem Einbettungen (Merkmalsvektoren), die Information für jedes Objekt und jeden Tag beinhalten. Die bestehenden Einbettungen können auch a priori nachgewiesen werden und umfassen zusammen mit den Knoten und Kanten die Trainingsdaten zum Trainieren des Modells 110.
  • Die Modelltrainingskomponente 101 trainiert das Modell 110 gemeinsam an dem Graph 107 und dessen Einbettungen, die dem Datensatz 105 zugeordnet sind. Das Modell 110 ist in der Modelltrainingskomponente 101 in seinem nichttrainierten Zustand (Darstellung ohne Füllfarbe) und in der Einbettungskomponente 111 in seinem trainierten Zustand (Darstellung mit schwarzer Füllung) gezeigt. Das Modell 110 kann ein oder mehrere künstliche neuronale Netzwerke umfassen, die aus Schichten von Neuronen zusammengesetzt sind. Die Schichten sind miteinander auf verschiedene Weisen verbunden, wobei die Neuronen in Reaktion auf verschiedene Eingaben reagieren. Die Eingaben in die erste Schicht sind die Daten, die analysiert werden (beispielsweise Graph 107). Die Ausgaben der letzten Schicht stellen das dar, was das neuronale Netzwerk gelernt oder erkannt hat (beispielsweise Einbettungen). Dazwischen sind Zwischenschichten oder „verborgene“ Schichten, die eine zusätzliche Verarbeitung durchführen.
  • Jedes Neuron verfügt über eine Regel, die das Neuron anweist, auf Grundlage einer Eingabe zu reagieren (oder eben nicht zu reagieren). Die Eingaben sind gewichtet, wobei die Gewichtungen auf Grundlage eines Rückkopplungsprozesses geändert werden können. Für den Fall von Graphdaten sind die Eingaben in die erste Schicht des künstlichen neuronalen Netzwerkes / der künstlichen neuronalen Netzwerke Vektoren, die mit nummerischen oder symbolischen Beschreibungen der Knoten und Kanten in dem Graph zur Darstellung der Objekte, Tags und Verbindungen in dem bestehenden Datensatz bevölkert sind. Die Eingaben in die verborgenen Schichten sind die Ausgaben der Neuronen in der ersten Schicht. Innerhalb der verborgenen Schichten sind die Ausgaben der einen Schicht die Eingaben in die nachfolgende Schicht. Die letzte Schicht des künstlichen neuronalen Netzwerkes nimmt die Ausgabe der letzten verborgenen Schicht als Eingabe und gibt selbst Werte, die das Erlernte identifizieren, als Signale aus, die durch die verschiedenen Schichten der Neuronen geleitet worden sind.
  • Während der Trainingsphase eines neuronalen Netzwerkes werden die Gewichtungen, die den Neuronen zugeordnet sind, auf Grundlage der Differenz zwischen dem Ergebnis, das von dem neuronalen Netzwerk erzeugt wird, und der korrekten Einbettung für die Eingabe in das neuronale Netzwerk geändert. Mit der Zeit liegen die Gewichtungen nach vielen Rückkopplungszyklen derart vor, dass das neuronale Netzwerk Einbettungen für neue Objekte akkurat erzeugen kann. Die endgültige Ausgestaltung der Gewichtungen und Neuronen wird als Modell des zu untersuchenden Gegenstandes, beispielsweise mit Blick auf Objekte und deren Einbettungen, betrachtet.
  • Die Einbettungskomponente 111 benutzt das Modell 110 in dessen trainiertem Zustand, um Einbettungen für Anfrageobjekte, so beispielsweise das Anfrageobjekt 113, zu generieren. Die Einbettungskomponente 111 beinhaltet einen Modalitätsauswähler 112, der eine Teilkomponente umfasst, die die Modalität für eine Suche bestimmen kann, woraus sich ergibt, wie die Einbettungskomponente 111 die Einbettungen erzeugt. Der Modalitätsauswähler 112 kann die Modalität explizit (beispielsweise aus einer Nutzereingabe oder anderen derartigen Anweisungen), implizit oder auf andere Weise bestimmen. Die sich ergebende Anfrageeinbettung 115 umfasst eine nummerische und/oder symbolische Information, in der Eigenschaften des Anfrageobjektes 113 codiert sind.
  • Die Einbettungskomponente 111 leitet die Anfrageeinbettung 115 an die Bewertungskomponente 121 weiter, um als Eingabe für ein Suchwerkzeug 123 zu dienen. Das Suchwerkzeug 123 durchsucht einen Datensatz nach Objekten, die zu dem Anfrageobjekt 113 ähnlich sind, indem die Anfrageeinbettung 115 mit Einbettungen für die Objekte in dem Datensatz verglichen werden. Um die ähnlichen Objekte ausfindig zu machen, kann das Suchwerkzeug 123 eine maschinell lernende Methode, eine regelbasierte Methode, eine Kombination aus beidem oder einen beliebigen anderen Typ von Technologie, die zur Nutzung der Anfrageeinbettung 115 geeignet ist, einsetzen. Der Zieldatensatz kann der Datensatz 105 und dessen Einbettungen sein, obwohl auch möglich ist, Datensätze, die nicht der Datensatz 105 sind, zu durchsuchen. Die Ausgabe der Bewertungskomponente 121 umfasst ein oder mehrere Objekte, die von ähnlichen Objekten 125 dargestellt werden, die, wie erwähnt worden ist, aus dem Datensatz 105 gezogen werden können.
  • Um die vorerläuterte verbesserte Ähnlichkeitssuche zu verwirklichen, führen das eine oder die mehreren Rechensysteme, die die Suchumgebung 100 bereitstellen, einen Suchprozess 200 im Kontext der Komponenten der Suchumgebung 100 aus. Der Suchprozess 200, der in 2 dargestellt ist, kann in Programmanweisungen im Kontext eines beliebigen von Hardware, Softwareanwendungen, Modulen oder anderen derartigen Programmierelementen, die die Modelltrainingskomponente 101, die Einbettungskomponente 111 und die Bewertungskomponente 121 aufweisen, implementiert sein. Die Programmanweisungen leiten ihr Hostrechensystem / ihre Hostrechensysteme an, so zu arbeiten, wie für den Suchprozess 200 mit gelegentlichem Verweis auf die Schritte in 2 beschrieben ist.
  • Im Betrieb bezieht der Suchprozess 200 einen Graph der bestehenden Objekte in einem Datensatz (Schritt 201). Der Graph beinhaltet Knoten und Kanten, die den Objekten und Tags in dem Datensatz wie auch deren Verbindungen untereinander entsprechen. Der Suchprozess 200 geht sodann dazu über, ein maschinell lernendes Modell an dem Graph und Einbettungen für die Objekte in dem Graph zu trainieren (Schritt 203). Die Einbettungen können in dem Graph beinhaltet sein, können jedoch auch separat bereitgestellt werden.
  • Als Nächstes identifiziert der Suchprozess 200 eine Modalität für eine Ähnlichkeitssuche der Objekte in dem Graph in Bezug auf ein Anfrageobjekt (Schritt 205). Beispiele für das Anfrageobjekt beinhalten Bilder, Dokumente, Proteine und andere derartige Objekte, für die Einbettungen erzeugt werden können. Als solches beinhalten Beispiele für den zu durchsuchenden Datensatz Bildsammlungen, Dokumentsammlungen, Proteinsammlungen und dergleichen. Ausgewählt werden kann die Modalität aus einem Bereich von möglichen Modalitäten, die mit Blick darauf voneinander verschieden sind, wie sie die Einbettung, die für ein gegebenes Anfrageobjekt generiert wird, beeinflussen. Insbesondere codiert wenigstens eine der möglichen Modalitäten die Verbindungen der Anfrageobjekte zu Tags in deren sich ergebenden Einbettungen in stärkerem Ausmaß als andere Modalitäten, von denen einige die Objekt-Tag-Verbindungen auch gänzlich vernachlässigen können.
  • Mit Blick auf Bilddaten kann die Modalität beispielsweise wenigstens unter einer visuellen Modalität und einer konzeptuellen Modalität ausgewählt werden. Die visuelle Modalität nimmt eine Vorbelastung der Einbettung hin zu visuellen Eigenschaften oder Attributen des Anfrageobjektes vor, wohingegen die konzeptuelle Modalität eine Vorbelastung der Einbettung hin zu konzeptuellen Eigenschaften oder Attributen des Anfrageobjektes vornimmt. Beispiele für visuelle Eigenschaften beinhalten unter anderem das spektrale Mittel, das spektrale Minimum, das spektrale Maximum und dergleichen. Beispiele für konzeptuelle Attribute betreffen die Verbindung / Verbindungen zwischen dem Anfragebild und einem oder mehreren Tags in dem Datensatz, da die Tags den Inhalt der Bilder, mit denen sie verbunden sind, beschreiben.
  • Ein ähnliches Konzept gilt für Dokumente, Proteine und andere durchsuchbare Objekte. Dokumente können beispielsweise auch über eine visuelle Modalität durchsucht werden, die visuelle Attribute eines Anfragedokumentes mehr als dann, wenn eine konzeptorientierte Modalität benutzt wird, hervorhebt. Wird die konzeptuelle Modalität benutzt, so sind bei Einbettungen, die für Anfragedokumente erzeugt werden, die Dokument-Tag-Verbindungen stärker als dann codiert, wenn sie durch andere Modalitäten - und zwar insbesondere solche, die Dokument-Tag-Verbindungen gänzlich vernachlässigen - verwirklicht sind.
  • Es sollte einsichtig sein, das visuelle Modalitäten lediglich ein Beispiel für eine Vielzahl von möglichen Modalitäten sind. Andere Beispiele beinhalten inhaltsbasierte Modalitäten, die Attribute des Inhalts (Wörter, Sätze und dergleichen), die in einem Dokument oder einem anderen derartigen Objekt enthalten sind, oder Attribute der chemischen Zusammensetzung von Molekülen oder Materialien von Objekten, die durchsucht werden, betrachten. In jedem Fall ist die Signaturdifferenz zwischen zwei beliebigen Modalitäten diejenige, die die Objekt-Tag-Verbindungen eines Anfrageobjektes in stärkerem Ausmaß als andere codieren kann.
  • Die identifizierte Modalität muss keine Entweder-Oder-Wahl sein. Vielmehr kann die identifizierte Modalität überall im Spektrum der Modalitäten befindlich sein. Die Modalität kann durch eine Nutzereingabe bestimmt werden, die eine Auswahl einer Modalität aus einem Satz von möglichen Modalitäten in einer Nutzerschnittstelle umfasst. Alternativ kann die Nutzereingabe eine Position auf einer Gleitschieberskala zwischen zwei Modalitäten (beispielsweise bei einem „Gleitschieber“, der irgendwo zwischen zwei verschiedenen Modalitäten positioniert sein kann) sein.
  • Ist die Modalität identifiziert, so geht der Suchprozess 200 zum Generieren einer Einbettung für das Anfrageobjekt auf Grundlage der identifizierten Modalität und der Verbindungen des Anfrageobjektes zu dem Graph über (Schritt 207). Die Verbindungen zu dem Graph können Objekt-Objekt-Verbindungen, Objekt-Tag-Verbindungen oder beides beinhalten. Die Verbindungen können optional Verbindungen zwischen dem Anfrageobjekt und anderen Typen von Knoten beinhalten, die in dem Graph zusätzlich zu den Objektknoten und den Tag-Knoten beinhaltet sein können.
  • Die sich ergebenden Einbettungen können hin zu einer ausgewählten Modalität auf eine Anzahl von Weisen vorbelastet werden. Bei einigen Implementierungen wird die Vorbelastung erreicht, indem bestimmte der Verbindungen des Anfrageobjektes zu dem Graphen gegenüber anderen ausgewählt werden. Eine visuelle Suche wählt beispielsweise Objekt-Objekt-Verbindungen aus und vernachlässigt oder verringert Objekt-Tag-Verbindungen. Im Gegensatz hierzu beinhaltet eine konzeptuelle Suche mehr Objekt-Tag-Verbindungen als die visuelle Suche. Bei dem Beispiel mit der Gleitschieberskala beinhaltet die sich ergebende Modalität Objekt-Tag-Verbindungen in größerem Ausmaß, je näher die Nutzereingabe einen Gleitschieber an einer rein konzeptuellen Suche positioniert, und in geringerem Ausmaß (wenn überhaupt), je weiter entfernt der Gleitschieber von der konzeptuellen Suche positioniert wird.
  • Bei anderen Implementierungen können die Einbettungen auf andere Weise vorbelastet sein, wobei eine Anfangseinbettung für ein Anfrageobjekt generiert und sodann mit einer Einbettung, die für einen zugeordneten Tag generiert worden ist, kombiniert wird. Die Kombination der Anfangseinbettung mit der Tag-Einbettung führt zu einer Einbettung für das Anfrageobjekt, wobei der Schritt des Kombinierens auf Grundlage der bestimmten Modalität gewichtet werden kann. Die Gewichtung kann beispielsweise die Tag-Einbettung für konzeptuelle Modalitäten hervorheben, während sie die Hervorhebung der Tag-Einbettung für weniger konzeptuelle Modalitäten (beispielsweise für visuelle Modalitäten) beseitigt. Das Konzept mit der Gleitschieberskala kann auch bei derartigen Ausführungsformen eingesetzt werden. Bei einer Implementierung mit Gleitschieberskala gewichtet die Gewichtung die Tag-Einbettung in größerem Ausmaß, je näher die Nutzereingabe den Gleitschieber an dem einen Ende, das die konzeptuelle Modalität darstellt, positioniert. Je weiter entfernt der Gleitschieber von der konzeptuellen Modalität positioniert wird, desto weniger Gewichtung wird der Tag-Einbettung im Vergleich zugemessen.
  • Der Suchprozess 200 nimmt die sich ergebende Einbettung für das Anfrageobjekt und speist sie als Eingabe in eine Ähnlichkeitssuchfunktion ein (Schritt 209). Die Ähnlichkeitssuchfunktion kann beispielsweise eine k-Nächste-Nachbarn-Suche sein, die die Anfrageeinbettung mit Einbettungen für die Objekte in dem Zieldatensatz vergleicht. Die Ähnlichkeitssuchfunktion kann eine maschinell lernende Methode, eine regelbasierte Methode oder eine beliebige Kombination oder Abwandlung hiervon einsetzen, um nach Objekten, die ähnlich zu dem Anfrageobjekt sind, auf Grundlage ihrer Einbettungen zu suchen (Schritt 211). Die Ergebnisse der Suche können an eine beliebige Anwendung, einen beliebigen Dienst oder eine beliebige Komponente, von der bzw. dem die Suche ursprünglich angefordert worden ist, ausgegeben werden.
  • Bei der Anwendung des Suchprozesses 200 auf die Elemente der Suchumgebung 100 verhalten sich die Komponenten der Suchumgebung 100 folgendermaßen. Es sollte einsichtig sein, dass ungeachtet dessen, dass die Schritte des Suchprozesses 200 spezifischen Komponenten in der Suchumgebung 100 zugeschrieben werden können, diese auch von einer oder mehreren der in 1 dargestellten Komponenten wie auch von anderen, nicht gezeigten Komponenten oder solchen, die außerhalb des Suchumgebung 100 befindlich sind, durchgeführt werden können.
  • Im Betrieb bezieht die Modelltrainingskomponente 110 den Graph 107 der bestehenden Objekte in dem Datensatz 105. Der Graph 107 beinhaltet Knoten und Kanten entsprechend den Objekten und Tags in dem Datensatz wie auch deren Verbindungen untereinander. Die Modelltrainingskomponente 101 geht sodann zu dem Trainingsmodell 110 an dem Graph über, und es werden Einbettungen für die Objekte in dem Graph und das Modell 110 in dessen trainiertem Zustand für die Einbettungskomponente 111 bereitgestellt.
  • Sodann wird eine Ähnlichkeitssuche in Bezug auf das Anfrageobjekt 113 eingeleitet. Der Modalitätsauswähler 112 bestimmt die Modalität für die Suche, die darüber informiert, wie die Einbettungskomponente 111 die Einbettungen für das Anfrageobjekt 113 generiert. Die Modalität kann explizit, implizit oder auf andere Weise sowie aus einem Satz von möglichen Modalitäten, einem Bereich oder auf andere Weise bestimmt werden.
  • Die Einbettungskomponente 111 geht dazu über, die Einbettungen für das Anfrageobjekt durch einen möglichen Pfad oder eine Kombination von solchen zu generieren. Bei einigen Szenarien identifiziert die Einbettungskomponente 111 selektiv Verbindungen zwischen dem Anfrageobjekt und anderen Objekten in dem Graph auf Grundlage der bestimmten Modalität. Das Anfrageobjekt und dessen Verbindungen werden sodann in das Modell 110 eingegeben, um eine Ausgabe, die die Anfrageeinbettung 115 umfasst, zu erzeugen. Bei einem kurzen Beispiel kann die Einbettungskomponente 111 entsprechend einigen Modalitäten Objekt-Objekt-Verbindungen und Objekt-Tag-Verbindungen beinhalten und dabei bei anderen Modalitäten Objekt-Tag-Verbindungen ausschließen oder beschränken.
  • Bei anderen Szenarien kann die Einbettungskomponente 111 eine Anfangseinbettung für das Anfrageobjekt entsprechend einer beliebigen Modalität generieren. Bei dem eben erläuterten Szenario speist die Einbettungskomponente 111 das Anfrageobjekt und wenigstens einige von dessen Verbindungen in das Modell 110 ein, um die Anfangseinbettung zu erzeugen. Die Anfangseinbettung wird sodann mit einer Tag-Einbettung, die für einen dem Anfrageobjekt zugeordneten Tag generiert worden ist, kombiniert. Die Anfrageeinbettung 115 ist bei diesem Szenario das Ergebnis einer Kombination der Anfangseinbettung mit der Tag-Einbettung. Die Tag-Einbettung kann a priori bekannt sein oder kann von dem Modell 110 generiert werden.
  • In jedem Fall wird die Anfrageeinbettung 115 an die Bewertungskomponente 121 übergeben. Die Bewertungskomponente 121 stellt die Anfrageeinbettung 115 als Eingabe für eine Suchfunktion 123 bereit, die eine Anfrageeinbettung mit den Einbettungen, die dem Datensatz 105 zugeordnet sind, unter Nutzung einer maschinell lernenden Methode, einer regelbasierten Methode oder eines beliebigen anderen Typs von Suche vergleichen kann. Die Ergebnisse, die von der Suchfunktion 123 ausgegeben werden, sind top-k Objekte, bei denen man davon ausgeht, dass sie zu dem Anfrageobjekt 113 mit Blick auf die Modalität der Suche am ähnlichsten sind. Die Ergebnisse können beispielsweise Bilder, die zu einem Anfragebild ähnlich sind, Dokumente, die zu einem Anfragedokument ähnlich sind, oder Proteine, die zu einem Anfrageprotein ähnlich sind, sein.
  • 3 zeigt einen Einbettungsprozess 300 bei einer Implementierung einer verbesserten Ähnlichkeitssuche. Der Einbettungsprozess 300 kann bei einigen Implementierungen im Kontext des Suchprozesses 200 eingesetzt werden. Implementiert sein kann der Einbettungsprozess 300 zusätzlich in Programmanweisungen im Kontext eines beliebigen von Hardware, Softwareanwendungen, Modulen oder anderen derartigen Programmierelementen, die eine Suchumgebung, so beispielsweise die Suchumgebung 100, umfassen. Die Programmanweisungen leiten ihr Hostrechensystem / ihre Hostrechensysteme an, so zu arbeiten, wie für den Einbettungsprozess 300 mit gelegentlichem Verweis auf 3 beschrieben ist.
  • Im Betrieb nimmt der Einbettungsprozess 300 ein Beziehen, Empfangen oder auf andere Weise erfolgendes Identifizieren eines Anfrageobjektes, so beispielsweise eines Bildes, eines Dokumentes, eines Proteins und dergleichen, vor. Das Anfrageobjekt umfasst den Gegenstand einer Ähnlichkeitssuche eines Datensatzes, der weitere Objekte beinhaltet. Zu Zwecken der Erläuterung wird davon ausgegangen, dass ein Graph der bestehenden Objekte in dem Datensatz vorhanden ist und dass der Graph Kanten und Knoten zur Darstellung der Objekte und von deren Verbindungen beinhaltet. Der Datensatz beinhaltet zudem Einbettungen für die Objekte. Man geht des Weiteren davon aus, dass der Graph und die Einbettungen dafür benutzt worden sind, ein Modell zu trainieren, das neue Einbettungen für Anfrageobjekte generieren kann.
  • Der Einbettungsprozess 300 geht dazu über, die top-k zu dem Anfrageobjekt nächsten Nachbarn in dem Graph zu identifizieren (Schritt 301). Umfassen kann die Nächster-Nachbar-Suche bei einigen Ausführungsformen eine Suche nach visueller Ähnlichkeit bei Objekten in dem Datensatz auf Grundlage eines neuronalen Netzwerkes, das von dem Modell, das für das Einbetten trainiert worden ist, verschieden ist, wobei das neuronale Netzwerk auf die Darstellung des Lernens in einem hochdimensionalen Raum trainiert und optimiert ist. Die Ähnlichkeit kann daher mittels einer Abstandsmetrik erfasst werden, die bewertet werden kann, um die nächsten Nachbarn ausfindig zu machen. Obwohl hier eine visuelle Ähnlichkeit erläutert wird, kann anstatt dessen auch ein beliebiger Typ von Ähnlichkeit zwischen zwei Knoten - sei es zwischen Knoten desselben Typs oder zwischen Knoten verschiedener Typen - bewertet werden.
  • Der Einbettungsprozess 300 identifiziert zudem den einen oder die mehreren Tags, die dem Objekt zugeordnet sind (Schritt 303). Beispiele für Tags beinhalten ein oder mehrere Wörter, die Teil eines Objektes sein können, so beispielsweise Wörter, die in einem Bild eingebettet oder in einem Dokument beinhaltet sind, Wörter in Metadaten, die einem Bild oder Dokument zugeordnet sind, oder ein beliebiger anderer Typ von Beschreibung oder von identifizierenden Wörtern über ein Objekt. Der Einbettungsprozess 300 (oder ein zugeordneter Prozess) kann den Tag / die Tags zudem identifizieren, indem er einen Texterkennungsalgorithmus oder andere geeignete Werkzeuge bei dem Objekt einsetzt. Alternativ kann das Objekt vorverarbeitet oder vorab etikettiert worden sein, sodass dessen Tags dem Einbettungsprozess 300 bereits bekannt sind.
  • Als Nächstes wählt der Einbettungsprozess 300 Verbindungen zu dem Graph zwischen dem Anfrageobjekt und den Knoten in dem Graph auf Grundlage der Modalität, die für die Ähnlichkeitssuche identifiziert worden ist, aus (Schritt 305). Der Einbettungsprozess 300 beginnt mit allen Objekt-Objekt-Verbindungen zwischen dem Anfrageobjekt und dessen top-k nächsten Nachbarn in dem Graph wie auch mit den Objekt-Tag-Verbindungen zwischen den Anfrageobjekt-Tags in dem Graph, die ähnlich zur Beschreibung des Anfrageobjektes sind. In Abhängigkeit von der Modalität, die für die Suche gewählt ist, können sodann einige der Objekt-Tag-Verbindungen von den Verbindungen ausgeschlossen werden. Bei einer rein visuellen Suche können beispielsweise alle Objekt-Tag-Verbindungen ausgeschlossen werden, während bei einer hochgradig konzeptuellen Suche alle Objekt-Tag-Verbindungen einbezogen werden können.
  • Der Einbettungsprozess 300 übergibt das Anfrageobjekt und dessen ausgewählte Verbindungen an das Modell, um eine Einbettung für das Anfrageobjekt zu beziehen (Schritt 307). Umfassen kann die Übergabe des Anfrageobjektes an das Modell ein Bereitstellen des Anfrageobjektes selbst für eine Schnittstelle zu dem Modell, die das Anfrageobjekt sodann in eine für das Modell geeignete Vektordarstellung umwandeln kann. Auf ähnliche Weise können die ausgewählten Verbindungen auch derart über eine Schnittstelle übergeben werden, dass das Modell und/oder dessen Umgebung die Verbindungen in eine Vektordarstellung umwandeln kann. Alternativ können der Einbettungsprozess 300 oder ein Unterprozess das Anfrageobjekt und die ausgewählten Verbindungen in eine für die Eingabe in das Modell geeignete Vektordarstellung umwandeln.
  • Das Modell nimmt das Anfrageobjekt und ausgewählte Verbindungen als Eingabe und erzeugt eine Ausgabe, die eine Einbettung (Merkmalsvektoren) für das Anfrageobjekt umfasst. Da das Modell gemeinsam sowohl an visuellen Daten wie auch konzeptuellen Daten (Tags) trainiert worden ist, kann die sich ergebende Einbettung sowohl darin codierte visuelle wie auch konzeptuelle Information aufweisen, wobei der Grad hiervon von der für die Suche gewählten Modalität abhängt. Eine mehr visuelle Suche misst der konzeptuellen Information weniger Gewichtung bei, wohingegen eine mehr konzeptuelle Suche der konzeptuellen Information mehr Gewichtung beimisst. Dies wird bei dem vorbeschriebenen Schritt 307 vollzogen, bei dem die Objekt-Tag-Verbindungen in einem Ausmaß, das durch die Modalität bestimmt ist, entweder einbezogen oder ausgeschlossen werden.
  • Der Einbettungsprozess 300 übergibt die generierte Einbettung an eine Ähnlichkeitssuchkomponente, um Ergebnisse zu beziehen, die Objekte in dem Datensatz, die zu dem Anfrageobjekt ähnlich sind, umfassen (Schritt 309). Die Ergebnisse werden ausgegeben und können ein oder mehrere Objekte beinhalten, von denen man herausgefunden hat, dass sie auf visueller Basis, auf konzeptueller Basis oder auf Grundlage einer Kombination hieraus zu dem Anfrageobjekt ähnlich sind.
  • 4A und 4B zeigen zwei verschiedene Anwendungen des Einbettungsprozesses 300 auf Elemente der Suchumgebung 100. Man beachte, dass ungeachtet dessen, dass die Schritte des Einbettungsprozesses 300 spezifischen Komponenten in der Suchumgebung 100 zugeschrieben werden können, diese auch von einer oder mehreren der in 4 dargestellten Komponenten wie auch von anderen, nicht gezeigten Komponenten oder solchen, die in der Suchumgebung 100 nicht beinhaltet sind, durchgeführt werden können.
  • 4A zeigt ein exemplarisches Suchszenario, bei dem die gewählte Modalität eine visuelle Modalität und keine konzeptuelle Modalität, die in der nachstehend erläuterten 4B dargestellt ist, umfasst. In 4A bezieht die Modelltrainingskomponente 110 den Graph 107 der bestehenden Objekte in dem Datensatz 105. Wie erwähnt worden ist, beinhaltet der Graph 107 Knoten und Kanten entsprechend den Objekten und Tags in dem Datensatz wie auch deren wechselseitige Verbindungen. Bei diesem Beispiel sind die Tag-Knoten in dem Graph 107 durch diejenigen mit einer dunkleren Füllung als die anderen Knoten dargestellt, während die Objektknoten durch diejenigen mit einer im Vergleich helleren Füllfarbe dargestellt sind. Die Modelltrainingskomponente 101 trainiert das Modell 110 an dem Graph und Einbettungen für die Objekte in dem Graph derart, dass das Modell 110 in seinem trainierten Zustand für die Einbettungskomponente 111 bereitgestellt werden kann.
  • Sodann wird eine Ähnlichkeitssuche in Bezug auf das Anfrageobjekt 113 eingeleitet. Der Modalitätsauswähler 112 bestimmt die Modalität für die Suche, die darüber informiert, wie die Einbettungskomponente 111 die Einbettungen für das Anfrageobjekt 113 generiert. Die Modalität kann explizit, implizit oder auf andere Weise sowie aus einem Satz von möglichen Modalitäten, einem Bereich oder auf andere Weise bestimmt werden. Zu Zwecken der Erläuterung wird davon ausgegangen, dass das Anfrageobjekt 113 ein Bild und die bestimmte Modalität eine visuelle Modalität ist.
  • Die Einbettungskomponente 111 geht dazu über, die Einbettungen für das Anfrageobjekt zu generieren, und beginnt dabei mit dem Identifizieren der top-k nächsten Nachbarn in dem Graph des Anfrageobjektes. Umfassen kann die Nächster-Nachbar-Suche eine Suche nach visueller Ähnlichkeit bei den Objekten in dem Datensatz auf Grundlage eines neuronalen Netzwerkes, obwohl auch andere methodische Vorgehensweisen beim Suchen eingesetzt werden können. Obwohl hier die visuelle Ähnlichkeit erläutert wird, kann anstatt dessen ein beliebiger Typ von Ähnlichkeit zwischen zwei Knoten - sei es zwischen Knoten desselben Typs oder zwischen Knoten verschiedener Typen - bewertet werden. Die top-k Knoten in dem Graph 107 sind durch die Knoten einschließende Rechtecke, die zwei Objektknoten beinhalten, hervorgehoben. Die Einbettungskomponente 111 identifiziert zudem einen oder mehrere dem Objekt zugeordnete Tags, die bei diesem Beispiel durch den Tag-Knoten 135 dargestellt sind und die ebenfalls durch ein Rechteck eingeschlossen sind.
  • Beispiele für Tags beinhalten ein oder mehrere Wörter, die Teil eines Objektes sein können, so beispielsweise Wörter, die in einem Bild eingebettet oder in einem Dokument beinhaltet sind, Wörter in Metadaten, die einem Bild oder Dokument zugeordnet sind, oder ein beliebiger anderer Typ von Beschreibung oder von identifizierenden Wörtern über ein Objekt. Der Einbettungsprozess 300 (oder ein zugeordneter Prozess) kann den Tag / die Tags identifizieren, indem er einen Texterkennungsalgorithmus oder andere geeignete Werkzeuge bei dem Objekt anwendet. Alternativ kann das Objekt vorverarbeitet oder vorab etikettiert worden sein, sodass dessen Tags der Einbettungskomponente 111 bereits bekannt sind.
  • Als Nächstes identifiziert die Einbettungskomponente 111 selektiv Verbindungen zwischen dem Anfrageobjekt und anderen Objekten in dem Graph auf Grundlage der bestimmten Modalität. Die Einbettungskomponente 111 bestimmt, das Anfrageobjekt 111 mit seinen nächsten Nachbarn in dem Graph 107 zu verbinden, und zwar unter Ausschluss von Tag-Knoten entsprechend der visuellen Modalität. Mit anderen Worten, die visuelle Modalität misst bei diesem Beispiel Tag-Knoten eine geringere Hervorhebung als die konzeptuelle Modalität bei, wie es durch den Ausdruck tagsmv < tagsmc ausgedrückt wird. Der Knoten 113, der das Anfrageobjekt 111 in dem Graph darstellt, ist daher mit zwei Objektknoten in dem Graph durch Kanten 137 verbunden, wohingegen der Tag-Knoten 135 aus der Gruppe von Verbindungen ausgeschlossen ist.
  • Das Anfrageobjekt und dessen Verbindungen, denen insbesondere beliebige Objekt-Tag-Verbindungen fehlen, werden sodann in das Modell 110 eingegeben, um eine Ausgabe, die die Anfrageeinbettung 115 umfasst, zu erzeugen. Innerhalb des Modells 110 kann, da das Modell gemeinsam an Objekt-Objekt-Knoten und Objekt-Tag-Knoten gleichermaßen trainiert worden ist, die sich ergebende Einbettung darin codierte Objekt-Tag-Information aufweisen. Es ist jedoch wahrscheinlich, dass die sich ergebende Einbettung weniger darin codierte derartige Information aufweist, als wenn die Eingabe eine oder mehrere Objekt-Tag-Verbindungen beinhaltet hätte.
  • Anders gesagt, der Einfluss der Objekt-Tag-Verbindungen zwischen dem Anfrageobjekt 113 und den Tag-Knoten in dem Graph 107 ist schwächer, wenn keine Objekt-Tag-Verbindungen in der Eingabe beinhaltet sind, als wenn eine oder mehrere derartige Verbindungen beinhaltet sind. Diese Aussage bedeutet notwendigerweise, dass die Objekt-Objekt-Verbindungen mehr Einfluss auf die sich ergebende Einbettung haben, wenn überhaupt keine Objekt-Tag-Verbindungen beinhaltet sind, und einen vergleichsweise geringeren Einfluss haben, wenn Objekt-Tag-Verbindungen in der Eingabe beinhaltet sind. Wichtig ist, dass das Modell 110 auf beide Extreme - wenn überhaupt keine Objekt-Tag-Verbindungen beinhaltet sind und wenn viele Objekt-Tag-Verbindungen beinhaltet sind, reagieren kann, da es gemeinsam an dem Graph 107 trainiert worden ist. Das Modell 110 kann zudem auf zwischenliegende Fälle reagieren, in denen eine oder mehrere Objekt-Tag-Verbindungen in den Eingabedaten beinhaltet sind. Die technische Wirkung dieser Flexibilität ist die Fähigkeit eines beliebigen Nutzers, einer Upstream-Anwendung, einer Komponente oder eines Dienstes, auf pro-Suche-Basis zu bestimmen, welche Modalität genutzt werden soll, ohne Modelle zu ändern, auszutauschen oder neu zu trainieren und ohne mehrere Modelle vorzuhalten.
  • Sobald die Anfrageeinbettung 115 erzeugt ist, wird sie an die Bewertungskomponente 121 übergeben. Die Bewertungskomponente 121 stellt die Anfrageeinbettung 115 als Eingabe für eine Suchfunktion 123 bereit, die die Anfrageeinbettung mit den Einbettungen, die dem Datensatz 105 zugeordnet sind, unter Nutzung einer maschinell lernenden Methode, einer regelbasierten Methode oder eines beliebigen anderen Typs von Suche vergleichen kann. Die Ergebnisse, die von der Suchfunktion 123 ausgegeben werden, sind die top-k Objekte, bei denen man davon ausgeht, dass sie zu dem Anfrageobjekt 113 mit Blick auf die Modalität der Suche am ähnlichsten sind. Die Ergebnisse 127 können beispielsweise Bilder, die zu einem Anfragebild ähnlich sind, Dokumente, die zu einem Anfragedokument ähnlich sind, Videoclips, die zu einem Anfragevideo ähnlich sind, oder Proteine, die zu einem Anfrageprotein ähnlich sind, sein.
  • In 4B bezieht die Modelltrainingskomponente 110 erneut den Graph 107 der bestehenden Objekte in dem Datensatz 105. Die Tag-Knoten in dem Graph 107 sind durch solche mit einer dunkleren Füllung als die anderen Knoten dargestellt, während die Objektknoten durch solche mit einer im Vergleich helleren Füllfarbe dargestellt sind. Die Modelltrainingskomponente 101 trainiert das Modell 110 an dem Graph und Einbettungen für die Objekte in dem Graph derart, dass das Modell 110 in seinem trainierten Zustand für die Einbettungskomponente 111 bereitgestellt werden kann.
  • Sodann wird eine Ähnlichkeitssuche in Bezug auf das Anfrageobjekt 113 eingeleitet. Der Modalitätsauswähler 112 bestimmt die Modalität für die Suche, die darüber informiert, wie die Einbettungskomponente 111 die Einbettungen für das Anfrageobjekt 113 generiert. Die Modalität kann explizit, implizit oder auf andere Weise sowie aus einem Satz von möglichen Modalitäten, einem Bereich oder auf andere Weise bestimmt werden. Zu Zwecken der Erläuterung werde davon ausgegangen, dass das Anfrageobjekt 113 ein Bild ist und die bestimmte Modalität eine konzeptuelle Modalität und nicht die in 4A dargestellte visuelle Modalität ist.
  • Die Einbettungskomponente 111 geht dazu über, die Einbettungen für das Anfrageobjekt zu generieren, und beginnt dabei mit dem Identifizieren der top-k zu dem Anfrageobjekt nächsten Nachbarn in dem Graph. Umfassen kann die Nächster-Nachbar-Suche eine Suche nach visueller Ähnlichkeit bei den Objekten in dem Datensatz auf Grundlage eines neuronalen Netzwerkes, obwohl auch andere Vorgehensweisen beim Suchen eingesetzt werden können. Obwohl hier die visuelle Ähnlichkeit erläutert wird, kann anstatt dessen ein beliebiger Typ von Ähnlichkeit zwischen zwei Knoten - sei es zwischen Knoten desselben Typs oder zwischen Knoten verschiedener Typen - bewertet werden. Die top-k Knoten in dem Graph 107 sind durch die Knoten einschließende Rechtecke, die zwei Objektknoten beinhalten, identifiziert. Die Einbettungskomponente 111 identifiziert zudem einen oder mehrere dem Objekt zugeordnete Tags, die bei diesem Beispiel durch den Tag-Knoten 135 dargestellt sind und die ebenfalls durch ein Rechteck eingeschlossen sind.
  • Beispiele für Tags beinhalten ein oder mehrere Wörter, die Teil eines Objektes / von Objekten sein können, so beispielsweise Wörter, die in einem Bild eingebettet oder in einem Dokument beinhaltet sind, Wörter in Metadaten, die einem Bild oder Dokument zugeordnet sind, oder ein beliebiger anderer Typ von Beschreibung oder von identifizierenden Wörtern über ein Objekt. Der Einbettungsprozess 300 (oder ein zugeordneter Prozess) kann den Tag / die Tags identifizieren, indem er einen Texterkennungsalgorithmus oder andere geeignete Werkzeuge bei dem Objekt anwendet. Alternativ kann das Objekt vorverarbeitet oder vorab etikettiert worden sein, sodass dessen Tags der Einbettungskomponente 111 bereits bekannt sind.
  • Als Nächstes identifiziert die Einbettungskomponente 111 selektiv Verbindungen zwischen dem Anfrageobjekt und anderen Objekten in dem Graph auf Grundlage der bestimmten Modalität. Die Einbettungskomponente 111 bestimmt, das Anfrageobjekt 111 mit seinen nächsten Nachbarn in dem Graph 107 wie auch mit einem oder mehreren Tag-Knoten entsprechend der konzeptuellen Modalität zu verbinden. Mit anderen Worten, die konzeptuelle Modalität misst bei diesem Beispiel Tag-Knoten eine stärkere Hervorhebung als die visuelle Modalität bei, wie in dem Ausdruck tagsmc > tagsmv ausgedrückt ist. Der Knoten 113, der das Anfrageobjekt 111 in dem Graph darstellt, ist daher mit zwei Objektknoten in dem Graph und einem Tag-Knoten durch die Kanten 139 verbunden.
  • Das Anfrageobjekt und dessen Verbindungen, die insbesondere eine Objekt-Tag-Verbindung beinhalten, werden sodann in das Modell 110 eingegeben, um eine Ausgabe, die die Anfrageeinbettung 116 umfasst, zu erzeugen. Innerhalb des Modells 110 kann, da das Modell gemeinsam an Objekt-Objekt-Knoten und Objekt-Tag-Knoten gleichermaßen trainiert worden ist, die sich ergebende Einbettung einige darin codierte Objekt-Tag-Informationen aufweisen und weist wahrscheinlich mehr darin codierte derartige Information auf, als wenn die Eingabe alle Objekt-Tag-Verbindungen ausgeschlossen hätte.
  • Anders gesagt, der Einfluss der Objekt-Tag-Verbindungen zwischen dem Anfrageobjekt 113 und den Tag-Knoten in dem Graph 107 ist, wenn wenigstens eine Objekt-Tag-Verbindung in der Eingabe beinhaltet ist, größer als wenn keine derartigen Verbindungen beinhaltet sind. Diese Aussage bedeutet notwendigerweise, dass die Objekt-Tag-Verbindungen mehr Einfluss auf die sich ergebende Einbettung haben, wenn eine oder mehrere Objekt-Tag-Verbindungen beinhaltet sind, und im Vergleich weniger Einfluss haben, wenn weniger Objekt-Tag-Verbindungen (oder überhaupt keine) in der Eingabe beinhaltet sind. Wie erwähnt worden ist, kann das Modell 110 auf jedwedes Extrem wie auch auf zwischenliegende' Fälle reagieren, da es gemeinsam an dem Graph 107 trainiert worden ist. Wie ebenfalls erwähnt worden ist, ist die technische Wirkung dieser Flexibilität die Fähigkeit eines Nutzers, einer Upstream-Anwendung, einer Komponente oder eines Dienstes, auf pro-Suche-Basis zu bestimmen, welche Modalität benutzt werden soll, ohne Modelle zu ändern, auszutauschen oder neu zu trainieren und ohne mehrere Modelle vorzuhalten.
  • Sobald die Anfrageeinbettung 116 generiert worden ist, wird sie an die Bewertungskomponente 121 übergeben. Die Bewertungskomponente 121 stellt die Anfrageeinbettung 115 als Eingabe für eine Suchfunktion 123 bereit, die die Anfrageeinbettung mit den Einbettungen, die dem Datensatz 105 zugeordnet sind, unter Nutzung einer maschinell lernenden Methode, einer regelbasierten Methode oder eines beliebigen anderen Typs von Suche vergleichen kann. Die Ergebnisse, die von der Suchfunktion 123 ausgegeben werden, sind die top-k Objekte, bei denen man davon ausgeht, dass sie zu dem Anfrageobjekt 113 mit Blick auf die Modalität der Suche am ähnlichsten sind. Die Ergebnisse 128 können beispielsweise Bilder, die zu einem Anfragebild ähnlich sind, Dokumente, die zu einem Anfragedokument ähnlich sind, Videoclips, die zu einem Anfragevideo ähnlich sind, oder Proteine, die zu einem Anfrageprotein ähnlich sind, sein.
  • 5 zeigt einen Einbettungsprozess 500 bei einer weiteren Implementierung der verbesserten Ähnlichkeitssuche. Der Einbettungsprozess 500 kann bei einigen Implementierungen im Kontext des Suchprozesses 200 eingesetzt werden. Implementiert sein kann der Einbettungsprozess 500 zusätzlich in Programmanweisungen im Kontext eines beliebigen von Hardware, Softwareanwendungen, Modulen oder anderen derartigen Programmierelementen, die eine Suchumgebung, so beispielsweise die Suchumgebung 100, umfassen. Die Programmanweisungen leiten ihr Hostrechensystem / ihre Hostrechensysteme an, so zu arbeiten, wie es für den Einbettungsprozess 500 mit gelegentlichem Verweis auf 5 beschrieben worden ist.
  • Im Betrieb nimmt der Einbettungsprozess 500 ein Beziehen, Empfangen oder auf andere Weise erfolgendes Identifizieren eines Anfrageobjektes, so beispielsweise eines Bildes, eines Dokumentes, eines Proteins und dergleichen, vor. Das Anfrageobjekt umfasst den Gegenstand einer Ähnlichkeitssuche eines Datensatzes, der weitere Objekte beinhaltet. Zum Zwecke der Erläuterung gehe man davon aus, dass ein Graph der bestehenden Objekte in dem Datensatz vorhanden ist und dass der Graph Kanten und Knoten zur Darstellung der Objekte und von deren Verbindungen beinhaltet. Der Datensatz beinhaltet zudem Einbettungen für die Objekte. Man gehe des Weiteren davon aus, dass der Graph und die Einbettungen dafür benutzt worden sind, ein Modell zu trainieren, das neue Einbettungen für Anfrageobjekte generieren kann.
  • Der Einbettungsprozess 500 geht dazu über, die top-k zu dem Anfrageobjekt nächsten Nachbarn in dem Graph zu identifizieren (Schritt 501). Umfassen kann die Nächster-Nachbar-Suche bei einigen Ausführungsformen eine Suche nach visueller Ähnlichkeit bei den Objekten in dem Datensatz auf Grundlage eines neuronalen Netzwerkes, das von dem auf das Einbetten trainierte Modell verschieden ist, wobei das neuronale Netzwerk auf die Darstellung des Lernens in einem hochdimensionalen Raum trainiert und optimiert worden ist. Die Ähnlichkeit kann daher mittels einer Abstandsmetrik erfasst werden, die bewertet werden kann, um die nächsten Nachbarn ausfindig zu machen. Obwohl hier die visuelle Ähnlichkeit erläutert wird, kann anstatt dessen ein beliebiger Typ von Ähnlichkeit zwischen zwei Knoten - sei es zwischen Knoten desselben Typs oder zwischen Knoten verschiedener Typen - bewertet werden.
  • Der Einbettungsprozess 500 kann zudem einen oder mehrere Tags, die dem Objekt zugeordnet sind, identifizieren. Beispiele für Tags beinhalten ein oder mehrere Wörter, die Teil eines Objektes / von Objekten sein können, so beispielsweise Wörter, die in einem Bild eingebettet oder in einem Dokument beinhaltet sind, Wörter in Metadaten, die einem Bild oder Dokument zugeordnet sind, oder ein beliebiger anderer Typ von Beschreibung oder von identifizierenden Wörtern über ein Objekt. Der Einbettungsprozess 500 (oder ein zugeordneter Prozess) können den Tag / die Tags identifizieren, indem sie einen Texterkennungsalgorithmus oder andere geeignete Werkzeuge bei dem Objekt anwenden. Alternativ kann das Objekt vorverarbeitet oder vorab etikettiert worden sein, sodass dessen Tags dem Einbettungsprozess 500 bereits bekannt sind.
  • Als Nächstes übergibt der Einbettungsprozess 500 das Anfrageobjekt und dessen ausgewählte Verbindungen an das Modell, um eine Einbettung für das Anfrageobjekt zu beziehen (Schritt 503). Umfassen kann die Übergabe des Anfrageobjektes an das Modell ein Bereitstellen des Anfrageobjektes selbst für eine Schnittstelle zu dem Modell, die das Anfrageobjekt sodann in eine für das Modell geeignete Vektordarstellung umwandeln kann. Auf ähnliche Weise können die ausgewählten Verbindungen auch über eine Schnittstelle übergeben werden, sodass das Modell und/oder seine Umgebung die Verbindungen in eine Vektordarstellung umwandeln können. Alternativ kann der Einbettungsprozess 500 oder der Teilprozess das Anfrageobjekt und die ausgewählten Verbindungen in eine zur Eingabe in das Modell geeignete Vektordarstellung umwandeln.
  • Man beachte, dass die Verbindungen nur Objekt-Objekt-Verbindungen oder eine Mischung aus Objekt-Objekt-Verbindungen und Objekt-Tag-Verbindungen beinhalten können. Man beachte zudem, dass der Einbettungsprozess 500 optional die Schritte des Auswählens der Verbindungen auf Grundlage der bestimmten Modalität für die Ähnlichkeitssuche, wie vorstehend anhand 3 beschrieben worden ist, beinhalten kann. Bei einer rein visuellen Suche können beispielsweise alle Objekt-Tag-Verbindungen ausgeschlossen sein, während bei einer konzeptuellen Suche eine oder mehrere Objekt-Tag-Verbindungen einbezogen sein können.
  • Das Modell nimmt das Anfrageobjekt und ausgewählte Verbindungen als Eingabe und erzeugt eine Ausgabe, die eine Anfangseinbettung (Merkmalsvektoren) für das Anfrageobjekt umfasst. Da das Modell gemeinsam sowohl an visuellen Daten wie auch konzeptuellen Daten (Tags) trainiert worden ist, kann die Anfangseinbettung sowohl darin codierte visuelle wie auch konzeptuelle Information aufweisen, wobei das Ausmaß davon abhängt, ob Objekt-Tag-Verbindungen in der Eingabe beinhaltet sind.
  • Der Einbettungsprozess 500 bezieht zudem eine Tag-Einbettung für den Tag, der dem Objekt zugeordnet ist (Schritt 505). Die Tag-Einbettung kann vorab bekannt sein, oder es kann der Einbettungsprozess 500 die Tag-Einbettung während des Betriebes generieren. Der Einbettungsprozess 500 kombiniert die Anfangseinbettung sodann mit der Tag-Einbettung auf Grundlage einer Gewichtung, die durch die bestimmte Modalität für die Suche spezifiziert worden ist (Schritt 507). Die sich ergebende Anfrageeinbettung ist daher eine gewichtete Kombination aus der Anfangseinbettung und der Tag-Einbettung. Die Gewichtung kann die Kombination dahingehend beeinflussen, beispielsweise bei konzeptuellen Modalitäten mehr von der Tag-Einbettung als bei visuellen Modalitäten in der Anfrageeinbettung zu codieren.
  • Als Letztes übergibt der Einbettungsprozess 500 die Anfrageeinbettung an eine Ähnlichkeitssuchkomponente, um Ergebnisse zu beziehen, die Objekte in dem Datensatz, die zu dem Anfrageobjekt ähnlich sind, umfassen (Schritt 509). Die Ergebnisse werden ausgegeben und können ein oder mehrere Objekte beinhalten, bei denen man herausgefunden hat, dass sie zu dem Anfrageobjekt auf visueller Basis, konzeptueller Basis oder auf Grundlage einer Kombination hieraus ähnlich sind.
  • 6A zeigt eine Anwendung des Einbettungsprozesses 300 bei einem exemplarischen Suchszenario, bei dem die gewählte Modalität eine visuelle Modalität und nicht die in 6B dargestellte und nachstehend noch erläuterte konzeptuelle Modalität umfasst. Gemäß 6A bezieht die Modelltrainingskomponente 110 den Graph 107 der bestehenden Objekte in dem Datensatz 105. Der Graph 107 beinhaltet erneut Knoten und Kanten entsprechend den Objekten und Tags in dem Datensatz wie auch deren Verbindungen untereinander. Die Modelltrainingskomponente 101 trainiert das Modell 110 an dem Graph und Einbettungen für die Objekte in dem Graph derart, dass das Modell 110 in seinem trainierten Zustand für die Einbettungskomponente 111 bereitgestellt werden kann.
  • Sodann wird eine Ähnlichkeitssuche in Bezug auf das Anfrageobjekt 113 eingeleitet. Die Einbettungskomponente 111 geht dazu über, die Einbettungen für das Anfrageobjekt zu generieren, und beginnt dabei mit dem Identifizieren der top-k zu dem Anfrageobjekt nächsten Nachbarn in dem Graph. Umfassen kann die Nächster-Nachbar-Suche eine Suche nach visueller Ähnlichkeit bei den Objekten in dem Datensatz auf Grundlage eines neuronalen Netzwerks, obwohl auch andere methodische Vorgehensweisen beim Suchen eingesetzt werden können. Obwohl hier die visuelle Ähnlichkeit erläutert wird, kann anstatt dessen ein beliebiger Typ von Ähnlichkeit zwischen zwei Knoten - sei es zwischen Knoten desselben Typs oder zwischen Knoten verschiedener Typen - bewertet werden. Die Einbettungskomponente 111 identifiziert zudem einen oder mehrere Tags, die dem Objekt zugeordnet sind. Beispiele für Tags beinhalten ein oder mehrere Wörter, die Teil eines Objektes / von Objekten sein können, so beispielsweise Wörter, die in einem Bild eingebettet oder in einem Dokument beinhaltet sind, Wörter in Metadaten, die einem Bild oder Dokument zugeordnet sind, oder einen beliebigen anderen Typ von Beschreibung oder von identifizierenden Wörtern über ein Objekt.
  • Die Einbettungskomponente 111 identifiziert Verbindungen zwischen dem Anfrageobjekt und anderen Objekten in dem Graph. Bei einigen Implementierungen identifiziert die Einbettungskomponente 111 die Verbindungen auf derselben Grundlage unabhängig von der bestimmten Modalität beispielsweise durch Auswählen aller Verbindungen zu allen top-k ähnlichen Objekten. Bei anderen Implementierungen kann die Einbettungskomponente 111 selektiv Verbindungen auf Grundlage der bestimmten Modalität auswählen, wie anhand 3 erläutert worden ist.
  • Das Anfrageobjekt und dessen Verbindungen werden sodann in das Modell 110 eingegeben, um eine Ausgabe, die eine Anfangseinbettung 141 umfasst, zu erzeugen. Die Einbettungskomponente 111 kombiniert die Anfangseinbettung 141 mit einer Tag-Einbettung 143 auf Grundlage einer Gewichtung, die für die Modalität, die für die Suche von dem Modalitätsauswähler 112 bestimmt worden ist, spezifisch ist. Für den Fall einer visuellen Suche misst die Modalität der Anfangseinbettung 141, die von dem Modell 110 erzeugt wird, eine größere Gewichtung bei, als es andernfalls im Kontext einer konzeptuellen Suche der Fall wäre, wie in dem Ausdruck w(t)v < w(t)c dargestellt ist. Im gegenteiligen Fall misst eine konzeptuelle Suche der Tag-Einbettung eine größere Gewichtung als eine visuelle Suche bei. Die sich ergebende kombinierte Einbettung 145 weist daher ein gewisses Ausmaß an darin codierter konzeptueller Information auf, die davon abhängt, wie stark die Tag-Einbettung in der Kombination gewichtet ist. Der Einfluss des Tags, der dem Anfrageobjekt zugeordnet ist, ist hierbei bei konzeptuellen Suchen größer als bei visuellen Suchen. Reagieren kann die Einbettungskomponente 111 auf beide Extreme - wenn der Tag-Einbettung überhaupt keine Gewichtung beigemessen wird und wenn der Tag-Einbettung die maximale Gewichtung beigemessen wird - wie auch auf einen zwischenliegenden Fall, in dem der Tag-Einbettung eine gemäßigte Gewichtung beigemessen wird. Die technische Wirkung dieser Flexibilität ist erneut die Fähigkeit eines Nutzers, einer Upstream-Anwendung, einer Komponente oder eines Dienstes, auf pro-Suche-Basis zu bestimmen, welche Modalität benutzt werden soll, ohne Modelle zu ändern, auszutauschen oder neu zu trainieren und ohne mehrere Modelle vorzuhalten.
  • Sobald die kombinierte Einbettung 145 generiert worden ist, wird sie an die Bewertungskomponente 121 übergeben. Die Bewertungskomponente 121 stellt die kombinierte Einbettung 145 als Eingabe für eine Suchfunktion 123 bereit, die die kombinierte Einbettung mit den Einbettungen, die dem Datensatz 105 zugeordnet sind, unter Nutzung einer maschinell lernenden Methode, einer regelbasierten Methode oder eines beliebigen anderen Typs von Suche vergleichen kann. Die Ergebnisse, die von der Suchfunktion 123 ausgegeben werden, sind die top-k Objekte, bei denen davon ausgegangen wird, dass sie zu dem Anfrageobjekt 113 mit Blick auf die Modalität der Suche am ähnlichsten sind. Die Ergebnisse 147 können beispielsweise Bilder, die zu einem Anfragebild ähnlich sind, Dokumente, die zu einem Anfragedokument ähnlich sind, Videoclips, die zu einem Anfragevideo ähnlich sind, oder Proteine, die zu einem Anfrageprotein ähnlich sind, sein.
  • 6B zeigt ein exemplarisches Suchszenario, bei dem die gewählte Modalität eine konzeptuelle Modalität im Gegensatz zu einer visuellen Modalität umfasst. In 6B bezieht die Modelltrainingskomponente 110 den Graph 107 der bestehenden Objekte in dem Datensatz 105. Der Graph 107 beinhaltet erneut Knoten und Kanten entsprechend den Objekten und Tags in dem Datensatz wie auch deren Verbindungen untereinander. Die Modelltrainingskomponente 101 trainiert das Modell 110 an dem Graph und Einbettungen für die Objekte in dem Graph, sodass das Modell 110 in seinem trainierten Zustand für die Einbettungskomponente 111 bereitgestellt werden kann.
  • Sodann wird eine Ähnlichkeitssuche in Bezug auf das Anfrageobjekt 113 eingeleitet. Die Einbettungskomponente 111 geht dazu über, die Einbettungen für das Objekt zu generieren, und beginnt dabei mit dem Identifizieren der top-k zu dem Objekt nächsten Nachbarn in dem Graph. Umfassen kann die Nächster-Nachbar-Suche eine Suche nach visueller Ähnlichkeit bei den Objekten in dem Datensatz auf Grundlage eines neuronalen Netzwerkes, obwohl auch andere methodische Vorgehensweisen beim Suchen eingesetzt werden können. Obwohl hier die visuelle Ähnlichkeit erläutert wird, kann anstatt dessen ein beliebiger Typ von Ähnlichkeit zwischen zwei Knoten - sei es zwischen Knoten desselben Typs oder zwischen Knoten verschiedener Typen - bewertet werden. Die Einbettungskomponente 111 identifiziert einen oder mehrere Tags, die dem Objekt zugeordnet sind. Beispiele für Tags beinhalten ein oder mehrere Wörter, die Teil eines Objektes / von Objekten sein können, so beispielsweise Wörter, die in einem Bild eingebettet oder in einem Dokument beinhaltet sind, Wörter in Metadaten, die einem Bild oder Dokument zugeordnet sind, oder einen beliebigen anderen Typ von Beschreibung oder von identifizierenden Wörtern über ein Objekt.
  • Die Einbettungskomponente 111 identifiziert Verbindungen zwischen dem Anfrageobjekt und anderen Objekten in dem Graph. Bei einigen Implementierungen identifiziert die Einbettungskomponente 111 die Verbindungen auf derselben Grundlage unabhängig von der bestimmten Modalität beispielsweise durch Auswählen aller Verbindungen zu allen top-k ähnlichen Objekten. Bei anderen Implementierungen kann die Einbettungskomponente 111 selektiv Verbindungen auf Grundlage der bestimmten Modalität, wie vorstehend anhand 3. beschrieben worden ist, auswählen.
  • Das Anfrageobjekt und dessen Verbindungen werden sodann in das Modell 110 eingegeben, um eine Ausgabe, die eine. Anfangseinbettung 141 umfasst, zu erzeugen. Die Einbettungskomponente 111 kombiniert die Anfangseinbettung 141 mit einer Tag-Einbettung 143 auf Grundlage einer Gewichtung, die für die Modalität, die für die Suche von dem Modalitätsauswähler 112 bestimmt worden ist, spezifisch ist. Für den Fall einer konzeptuellen Suche misst die Modalität der Anfangseinbettung 141, die von dem Modell 110 erzeugt worden ist, weniger Gewichtung als andernfalls im Kontext einer visuellen Suche bei, wie es in dem Ausdruck w(t)c:> w(t)v dargestellt ist. Mit anderen Worten, eine konzeptuelle Suche misst der Tag-Einbettung eine größere Gewichtung als eine visuelle Suche bei. Die sich ergebende kombinierte Einbettung 146 weist daher ein gewisses Ausmaß an darin codierter konzeptueller Information auf, die davon abhängt, wie stark die Tag-Einbettung in der Kombination gewichtet ist.
  • Sobald die kombinierte Einbettung 146 generiert worden ist, wird sie an die Bewertungskomponente 121 übergeben. Die Bewertungskomponente 121 stellt die kombinierte Einbettung 146 als Eingabe für eine Suchfunktion 123 bereit, die die kombinierte Einbettung mit den Einbettungen, die dem Datensatz 105 zugeordnet sind, unter Nutzung einer maschinell lernenden Methode, einer regelbasierten Methode oder eines beliebigen anderen Typs von Suche vergleichen kann. Die Ergebnisse, die von der Suchfunktion 123 ausgegeben werden, sind die top-k Objekte, bei denen davon ausgegangen wird, dass sie zu dem Anfrageobjekt 113 mit Blick auf die Modalität der Suche am ähnlichsten sind. Die Ergebnisse 148 können beispielsweise Bilder, die zu einem Anfragebild ähnlich sind, Dokumente, die zu einem Anfragedokument ähnlich sind, Videoclips, die zu einem Anfragevideo ähnlich sind, oder Proteine, die zu einem Anfrageprotein ähnlich sind, sein.
  • 7A bis 7D zeigen ein Betriebsszenario 700 bei einer stark vereinfachten exemplarischen Implementierung der hier vorgeschlagenen verbesserten Ähnlichkeitssuche. Das Betriebsszenario 700 beginnt mit einem bestehenden Graph 710 von Objekten, Tags und deren Verbindungen. Der bestehende Graph 710 umfasst Knoten zur Darstellung von Bildern in einem Datensatz und Tags zur Beschreibung von Kohorten bzw. Gruppen der Bilder. Die Knoten beinhalten beispielsweise Bildknoten 701, 703, 705, 709, 711, 715, 719 und 721. Die Knoten beinhalten zudem Tag-Knoten 707, 713 und 717.
  • Bei einem Vorverarbeitungsschritt : sind bestimmte Paare von Knoten durch Kanten auf Grundlage ihrer Ähnlichkeit und/oder Anwendbarkeit verbunden worden. Der Bildknoten 701 ist beispielsweise mit dem Bildknoten 703 durch die Kante 704 verbunden, da beides Bilder mit einer oder mehreren Katzen sind. Der Bildknoten 701 ist wiederum mit dem Tag 707 durch die Kante 708 verbunden, und der Bildknoten 703 ist zudem mit dem Tag-Knoten 707 durch die Kante 706 verbunden, da der Tag-Knoten 707 die Beschreibung „Katze“ beinhaltet.
  • Der Tag-Knoten 707 ist zudem mit dem Bildknoten 705 verbunden, da auch hier eine Katze in dem Bild beinhaltet ist. Gleichwohl wird der Bildknoten 705 entweder zu dem Bildknoten 701 oder zu dem Bildknoten 703 als nicht ausreichend ähnlich, dass eine Verbindung hergestellt werden könnte, betrachtet. Der Bildknoten 705 ist mit dem Bildknoten 709 durch die Kante 714 verbunden, da beide Bilder eines Toasters beinhalten. Der Bildknoten 709 ist mit dem Tag 722 verbunden, da der Tag 722 die Beschreibung „Toaster“ beinhaltet, obwohl dies bei dem Bildknoten 705 nicht der Fall ist. Zudem ist der Bildknoten 709 mit dem Bildknoten 711 durch die Kante 720 verbunden, obwohl der Bildknoten 711 nicht mit dem Tag-Knoten 713 verbunden ist.
  • Der Bildknoten 715 eines Hundes und einer Katze ist sowohl mit dem Bildknoten 703 wie auch dem Tag-Knoten 717 durch die Kante 718 beziehungsweise die Kante 724 verbunden. Der Tag-Knoten 717 ist des Weiteren mit dem Bildknoten 719 und dem Bildknoten 721 durch die Kante 726 beziehungsweise die Kante 728 verbunden.
  • Die Gründe dafür, warum einige Bildknoten miteinander verbunden sein können, während sie mit anderen nicht verbunden sind, können eine Vielzahl von Faktoren beinhalten, die allgemein außerhalb des Umfangs der vorliegenden Offenbarung sind. Ein Grund besteht jedoch darin, dass Graphen verschieden aufgebaut sein und verschiedene Beurteilungen oder Schwellen im Vergleich zueinander aufweisen können. Dies führt zu anderen Schlussfolgerungen bei anderen Gegebenheiten dahingehend, welche Knoten durch Kanten verbunden werden sollten. Der Bildknoten 701 kann beim vorliegenden Beispiel mit dem Bildknoten 703, jedoch nicht mit dem Bildknoten 705 verbunden sein, obwohl beide Katzen beinhalten. Auf gleiche Weise gilt dies für die Bildknoten 715, 721 und 719, auch wenn alle drei Bilder Hunde beinhalten.
  • Im gleichen Sinne können viele Faktoren beeinflussen, warum einige Bildknoten mit einem Tag-Knoten verbunden sind, während es andere Knoten nicht sind, oder warum Bildknoten im Zusammenhang mit scheinbar ähnlichen Bildern nicht mit denselben Tags verbunden sind. Der Bildknoten 711 entspricht beispielsweise dem Bild eines Toasters, ist jedoch nicht mit dem Tag 713 verbunden. Dies kann daher rühren, dass das Bild, das dem Bildknoten 711 entspricht, über keine textartigen Daten oder über eine andere derartige Information verfügt hat, die es erlaubt hätte, es als Toaster zu erkennen und mit dem Tag zu verbinden.
  • Es sollte daher einsichtig sein, dass die meisten Graphen die wechselseitigen Verbindungen zwischen den Objekten und Tags in dem Datensatz nicht perfekt darstellen (und dies auch nicht können). Vielmehr ist eine nahezu unbeschränkte Anzahl von Verbindungen auf Grundlage der großen Vielfalt von Faktoren und Schwellen möglich, die in die Bestimmung dessen eingehen, ob ein Knoten mit einem anderen verbunden werden soll. Diese Gegebenheit ist genau der Grund dafür, warum die hier offenbarte verbesserte Ähnlichkeitssuche Vorteile gegenüber dem Stand der Technik bietet, nämlich weil sie ermöglicht, dass die Verbindungen in einem Graph gemeinsam in einem Modell dargestellt werden und sodann für das Modell in Richtung der einen Modalität oder der anderen Modalität selektiv eingesetzt werden können.
  • Bei dem Betriebsszenario 700 wird des Weiteren gemäß 7B ein Anfragebild 731 bereitgestellt. Das Anfragebild 731 ist scheinbar eine Katze, wobei das Ziel der Ähnlichkeitssuche darin besteht, die top-k ähnlichsten Bilder in dem bestehenden Graph 710 auf Grundlage einer gewählten Modalität ausfindig zu machen. Der erste Schritt besteht im Identifizieren der zu dem Anfragebild 731 nächsten Nachbarn in dem bestehenden Graph 710 auf Grundlage einer unabhängigen Ähnlichkeitssuche. Die Suche liefert den Bildknoten 701 und den Bildknoten 703 als die zwei zu dem Anfragebild 713 ähnlichsten.
  • Als Nächstes werden, siehe 7C, Kanten zwischen dem Anfragebild 731 und dessen nächsten Nachbarn entsprechend einer visuellen Modalität gezogen. Entsprechend der visuellen Modalitäten, sind bei diesem Beispiel überhaupt keine Objekt-Tag-Verbindungen beinhaltet. Daher sind nur die Kante 732 und die Kante 736 mit dem Anfragebild 731 beinhaltet, wenn Einbettungen für das Anfragebild generiert werden. Die Einbettungen werden von einem maschinell lernenden Modell (beispielsweise dem Modell 110) erzeugt, wobei das Anfragebild 731 und dessen Kanten 732, 736 als Eingaben genommen werden. Die sich ergebende Anfrageeinbettung wird sodann in eine Bewertungskomponente eingespeist, um die ähnlichsten Bilder in dem Graph relativ zu dem Anfragebild - und auf Grundlage von deren Einbettungen - zu identifizieren. Die Suchergebnisse 750 beinhalten den Bildknoten 701 und den Bildknoten 715 als die auf visueller Basis zu dem Anfragebild 731 ähnlichsten.
  • Im Gegensatz hierzu zeigt 7D ein Beispiel für eine konzeptuelle Modalität. Gemäß 7D sind Kanten zwischen dem Anfragebild 731 und dessen nächsten Nachbarn entsprechend einer visuellen Ähnlichkeit zwischen beiden gezogen. Entsprechend der konzeptuellen Modalität ist bei diesem Beispiel jedoch auch eine Kante 734 zu dem Tag-Knoten 707 beinhaltet. Daher sind die Kanten 732 und 736 - wie auch die Kante 734 - mit dem Anfragebild 731 beinhaltet, wenn Einbettungen für das Anfragebild generiert werden. Die Einbettungen werden von einem maschinell lernenden Modell (beispielsweise dem Modell 110) erzeugt, das das Anfragebild 731 und dessen Kanten 732, 734 und 736 als Eingabe nimmt. Die sich ergebende Anfrageeinbettung wird sodann in eine Bewertungskomponente eingespeist, um die ähnlichsten Bilder in dem Graph relativ zu dem Anfragebild - und auf Grundlage von deren Einbettungen - zu identifizieren. Die Suchergebnisse 755 beinhalten den Bildknoten 701 und den Bildknoten 705 als die auf visueller Basis zu dem Anfragebild 731 ähnlichsten.
  • Insbesondere sind die Suchergebnisse 755 von den Suchergebnissen 750 verschieden, da auch die Eingaben in den Einbettungsprozess verschieden sind. Dies bedeutet, dass, wie in 7C gezeigt ist, den Eingaben eine Objekt-Tag-Kante fehlt, wohingegen die Eingaben in 7D eine Objekt-Tag-Kante beinhalten. In dem einen Satz (Suchergebnisse . 750) kann das Bild des Hundes, das dem Bildknoten 715 zugeordnet ist, dem Anfragebild 731 visuell ähnlicher als das Bild der Katze und des Toasters, das dem Bildknoten 705 zugeordnet ist, sein. In dem anderen Satz (Suchergebnisse 755 ersetzt das Bild der Katze und des Toasters das Bild des Hundes, was von dessen Verbindung zu dem Tag-Knoten 707 herrühren kann. Mit anderen Worten, obwohl das Bild des mit der Katze kuschelnden Hundes (Bildknoten 715) für die maschinelle Erkennung visuell ähnlicher als das Bild der Katze und des Toasters ist, ist das Bild der Katze und des Trostes konzeptuell ähnlicher. Die verbesserte Ähnlichkeitssuche und das vereinheitlichte Framework der vorliegenden Offenbarung ermöglichen, dass ein Nutzer diese verschiedenen Ergebnisse erhält, ohne dass er mehrere Modelle aufwändig neu trainieren, vorhalten oder ersetzen müsste.
  • 8 zeigt ein Rechensystem 801, das ein beliebiges System oder eine Sammlung von Systemen darstellt, in denen die verschiedenen Komponenten, Module, Prozesse, Programme und Szenarien der vorliegenden Offenbarung implementiert sein können. Beispiele für das Rechensystem 801 beinhalten unter anderem Servercomputer, Cloudrechenplattformen und Geräte einer Datenzentrale wie auch einen beliebigen anderen Typ von physischer oder virtueller Servermaschine, Container sowie eine beliebige Abwandlung oder Kombination hiervon. Weitere Beispiele beinhalten Desktopcomputer, Laptopcomputer, Tabletcomputer, loT-Vorrichtungen (Internet of Things loT, Internet der Dinge), am Körper tragbare Vorrichtungen sowie beliebige andere physische oder virtuelle Kombinationen oder Abwandlungen hiervon.
  • Das Rechensystem 801 kann als einzelne Einrichtung, einzelnes System oder einzelne Vorrichtung implementiert sein oder kann als mehrere Einrichtungen, Systeme oder Vorrichtungen verteilt implementiert sein. Das Rechensystem 801 beinhaltet unter anderem ein Verarbeitungssystem 802, ein Speichersystem 803, eine Software 805, eine Kommunikationsschnittstellensystem 807 und ein Nutzerschnittstellensystem 809 (optional). Das Verarbeitungssystem 802 ist operativ mit dem Speichersystem 803, dem Kommunikationsschnittstellensystem 807 und dem Nutzerschnittstellensystem 809 gekoppelt.
  • Das Verarbeitungssystem 802 lädt die Software 805 aus dem Speichersystem 803 und führt diese aus. Die Software 805 beinhaltet und implementiert den Suchprozess 806, der die Suchprozesse, die anhand der vorstehenden Figuren erläutert worden sind, darstellt. Die Software 805 beinhaltet und implementiert zudem einen Einbettungsprozess 816, der die Einbettungsprozesse, die anhand der Figuren vorstehend erläutert worden sind, darstellt. Bei Ausführung durch das Verarbeitungssystem 802 leitet die Software 805 zur Bereitstellung einer verbesserten Ähnlichkeitssuche das Verarbeitungssystem 802 an, so zu arbeiten, wie vorstehend wenigstens für die verschiedenen Prozesse, Betriebsszenarien und Sequenzen, die bei den vorstehenden Implementierungen erläutert worden sind, beschrieben worden ist. Das Rechensystem 801 kann optional zusätzliche Vorrichtungen, Merkmale oder Funktionalitäten beinhalten, die hier der Kürze halber nicht erläutert worden sind.
  • Wie wiederum in 8 dargestellt ist, kann das Verarbeitungssystem 802 einen Mikroprozessor und andere Schaltungen umfassen, die Software 805 aus dem Speichersystem 803 abrufen und ausführen. Das Verarbeitungssystem 802 kann innerhalb einer einzigen Verarbeitungsvorrichtung implementiert sein, kann jedoch auch über mehrere Verarbeitungsvorrichtungen oder Teilsysteme, die beim Ausführen von Programmanweisungen zusammenarbeiten, verteilt sein. Beispiele für das Verarbeitungssystem 802 beinhalten zentrale Allzweckverarbeitungseinheiten, graphische Verarbeitungseinheiten, anwendungsspezifische Prozessoren und logische Vorrichtungen und einen beliebigen anderen Typ von Rechenvorrichtung sowie Kombinationen oder Abwandlungen hiervon.
  • Umfassen kann das Speichersystem 803 beliebige computerlesbare Speichermedien, die von dem Verarbeitungssystem 802 lesbar sind und die Software 805 speichern können. Beinhalten kann das Speichersystem 803 flüchtige und nichtflüchtige, entfernbare und nicht entfernbare Medien, die in einem beliebigen Verfahren oder einer Technologie zur Speicherung von Information implementiert sind, so beispielsweise computerlesbare Anweisungen, Datenstrukturen, Programmmodule oder andere Daten. Beispiele für Speichermedien beinhalten Speicher mit wahlfreiem Zugriff, Nur-Lese-Speicher, magnetische Platten, optische Platten, Flash-Speicher, virtuelle Speicher, nichtvirtuelle Speicher, Magnetkassetten, Magnetbänder, Magnetplattenspeicher oder andere magnetische Speichervorrichtungen oder beliebige andere geeignete Speichermedien. Keinesfalls sind computerlesbare Speichermedien ein sich ausbreitendes Signal.
  • Zusätzlich zu computerlesbaren Speichermedien kann das Speichersystem 803 bei einigen Implementierungen auch computerlesbare Kommunikationsmedien beinhalten, über die wenigstens ein Teil der Software 805 intern oder extern kommuniziert werden kann. Das Speichersystem 803 kann als einzelne Speichervorrichtung implementiert sein, kann jedoch auch über mehrere Speichervorrichtungen oder Teilsysteme, die zusammen angeordnet oder verteilt sind, implementiert sein. Das Speichersystem 803 kann zusätzliche Elemente beinhalten, so beispielsweise einen Controller, der mit dem Verarbeitungssystem 802 oder möglicherweise anderen Systemen kommunizieren kann.
  • Die Software 805 (beinhaltend den Suchprozess 806 und den Einbettungsprozess 816) kann in Programmanweisungen implementiert sein und kann neben anderen Funktionen bei Ausführung durch das Verarbeitungssystem 802 das Rechensystem 801 anleiten, so zu arbeiten, wie im Zusammenhang mit den verschiedenen Betriebsszenarien, Sequenzen und Prozessen der vorliegenden Darstellung beschrieben worden ist. Die Software 805 kann Programmanweisungen zum Implementieren einer verbesserten Ähnlichkeitssuche, wie sie hier beschrieben wird, beinhalten.
  • Insbesondere können die Programmanweisungen verschiedene Komponenten oder Module beinhalten, die zusammenarbeiten oder auf andere Weise interagieren, um die hier beschriebenen verschiedenen Prozesse und Betriebsszenarien auszuführen. Die verschiedenen Komponenten oder Module, können in kompilierten oder interpretierten Anweisungen oder in einer beliebigen anderen Abwandlung oder in einer Kombination von Anweisungen verkörpert sein. Die verschiedenen Komponenten oder Module können synchron oder asynchron, seriell oder parallel, in einer Single-Thread-Umgebung oder einer Multi-Thread-Umgebung oder entsprechend einem beliebigen anderen geeigneten Ausführungsparadigma, einer Abwandlung oder einer Kombination hieraus ausgeführt werden. Die Software 805 kann zusätzliche Prozesse, Programme oder Komponenten beinhalten, so beispielsweise eine Betriebssystemsoftware, eine Virtualisierungssoftware oder eine andere Anwendungssoftware. Die Software 805 kann zudem Firmware oder eine beliebige andere Form von maschinenlesbaren Verarbeitungsanweisungen, die durch das Verarbeitungssystem 802 ausführbar sind, umfassen.
  • Allgemein kann die Software 805, wenn sie in ein Verarbeitungssystem 802 geladen ist und dort ausgeführt wird, eine geeignete Einrichtung, ein geeignetes System oder eine geeignete Vorrichtung (die das Rechensystem 801 darstellt) insgesamt von einem Allzweckrechensystem in ein Spezialzweckrechensystem, das auf die Bereitstellung einer verbesserten Ähnlichkeitssuche eingestellt ist, umwandeln. Das Codieren der Software 805 auf dem Speichersystem 803 kann die physische Struktur des Speichersystems 803 umwandeln. Die spezifische Umwandlung der physischen Struktur kann bei verschiedenen Implementierungen von verschiedenen Faktoren in der vorliegenden Beschreibung abhängen. Beinhalten können Beispiele für derartige Faktoren unter anderem die Technologie, die zum Implementieren der Speichermedien des Speichersystems 803 benutzt wird, die Frage, ob die Computerspeichermedien als Primär- oder Sekundärspeicher zu charakterisieren sind, wie auch andere Faktoren.
  • Sind die computerlesbaren Speichermedien beispielsweise als halbleiterbasierte Speicher implementiert, so kann die Software 805 den physischen Zustand des Halbleiterspeichers umwandeln, wenn darin Programmanweisungen codiert sind, so beispielsweise durch Umwandeln des Zustandes von Transistoren, Kondensatoren oder anderen diskreten Schaltelementen, die den Halbleiterspeicher bilden. Eine ähnliche Umwandlung kann bei magnetischen oder optischen Medien auftreten. Andere Umwandlungen von physischen Medien sind möglich, ohne vom Umfang der vorliegenden Beschreibung abzugehen, wobei die vorstehenden Beispiele nur zur Vereinfachung der vorliegenden Diskussion aufgeführt sind.
  • Das Kommunikationsschnittstellensystem 807 kann Kommunikationsverbindungen und Vorrichtungen beinhalten, die eine Kommunikation mit anderen Rechenvorrichtungen (nicht gezeigt) über Kommunikationsnetzwerke (nicht gezeigt) ermöglichen. Beispiele für Verbindungen und Vorrichtungen, die gemeinsam eine Inter-System-Kommunikation ermöglichen, können Netzwerkschnittstellenkarten, Antennen, Leistungsverstärker, HF-Schaltungen, Senderempfänger und andere Kommunikationsschaltungen beinhalten. Die Verbindungen und Vorrichtungen können über Kommunikationsmedien kommunizieren, um Kommunikationen mit anderen Rechensystemen oder Netzwerken von Systemen, auszutauschen so beispielsweise über Metall, Glas, Luft oder beliebige andere geeignete Kommunikationsmedien. Die vorgenannten Medien, Verbindungen und Vorrichtungen sind allesamt bekannt und müssen nicht mehr ausführlich erläutert werden.
  • Die Kommunikation zwischen dem Rechensystem 801 und anderen Rechensystemen (nicht gezeigt) kann über ein Kommunikationsnetzwerk oder Netzwerke und in Entsprechung zu verschiedenen Kommunikationsprotokollen, Kombinationen von Protokollen oder Abwandlungen hiervon auftreten. Beispiele beinhalten Intranets, Internets, das Internet, Ortsbereichsnetzwerke, Großbereichsnetzwerke, Drahtlosnetzwerke, drahtgebundene Netzwerke, virtuelle Netzwerke, softwaredefinierte Netzwerke, Busse in Datenzentralen und Backplanes sowie eine beliebigen anderen Typ von Netzwerk, eine Kombination von Netzwerken oder eine Abwandlung hiervon. Die vorgenannten Kommunikationsnetzwerke und Protokolle sind bekannt und müssen nicht mehr ausführlich erläutert werden.
  • Die beinhalteten Beschreibungen und Figuren zeigen spezifische Ausführungsformen, die einen Fachmann auf dem Gebiet anleiten, wie er die optimale Ausführung erstellt und nutzt. Zum Zwecke der Darstellung der erfinderischen Prinzipien sind einige herkömmliche Aspekte vereinfacht oder weggelassen. Einem Fachmann auf dem Gebiet erschließen sich Abwandlungen an diesen Ausführungsformen, die im Umfang der Offenbarung enthalten sind. Einen Fachmann auf dem Gebiet erschließt sich zudem, dass die vorbeschriebenen Merkmale auf verschiedene Weisen kombiniert werden können und so weitere Ausführungsformen bilden. Im Ergebnis ist die Erfindung nicht auf die vorbeschriebenen spezifischen Ausführungsformen, sondern nur durch die Ansprüche und deren Äquivalente beschränkt.

Claims (20)

  1. Verfahren zum Durchführen einer Ähnlichkeitssuche in Bezug auf ein Anfrageobjekt und Objekte, die in einem Graph dargestellt sind, wobei das Verfahren umfasst: Identifizieren einer Modalität für die Ähnlichkeitssuche; Generieren einer Einbettung für das Anfrageobjekt auf Grundlage wenigstens der Modalität, die für die Ähnlichkeitssuche identifiziert wird, und des Weiteren auf Grundlage von neuen Verbindungen, die zwischen dem Anfrageobjekt und einem Teilsatz von bestehenden Knoten in dem Graph identifiziert werden; und Zuführen bzw. Einspeisen einer Eingabe in die Ähnlichkeitssuche, die die Einbettung für das Anfrageobjekt umfasst, um Ergebnisse zu beziehen, die ein oder mehrere ähnliche Objekte, die in dem Graph dargestellt sind, umfassen.
  2. Verfahren nach Anspruch 1, des Weiteren umfassend: Trainieren eines maschinell lernenden Modells an dem Graph, wobei der Graph umfasst: die bestehenden Knoten, wobei die bestehenden Knoten Objektknoten, die den Objekten entsprechen, und Tag-Knoten, die Tags entsprechen, umfassen; und bestehende Kanten, die bestehende Verbindungen darstellen, wobei die bestehenden Verbindungen Objekt-Objekt-Verbindungen zwischen ähnlichen Objekten und Objekt-Tag-Verbindungen zwischen wenigstens einigen der Objekte und der Tags umfassen.
  3. Verfahren nach Anspruch 1 oder 2, wobei das Generieren der Einbettung für das Objekt umfasst: Identifizieren der neuen Verbindungen zwischen dem Anfrageobjekt und dem Teilsatz der bestehenden Knoten in dem Graph auf Grundlage der Modalität, die für die Ähnlichkeitssuche identifiziert wird; Übergeben einer Eingabe an das maschinell lernende Modell, wobei die Eingabe das Anfrageobjekt und die neuen Verbindungen umfasst, und Beziehen einer Ausgabe von dem maschinell lernenden Modell, wobei die Ausgabe die Einbettung für das Anfrageobjekt umfasst.
  4. Verfahren nach Anspruch 3, wobei das Identifizieren der neuen Verbindungen zwischen dem Anfrageobjekt und dem Teilsatz der bestehenden Knoten in dem Graph umfasst: Identifizieren eines top-k-Teilsatzes der Objekte, die am meisten wie das Anfrageobjekt sind; Identifizieren eines oder mehrerer Tags, die dem top-k-Teilsatz der Objekte zugeordnet sind; und in die neuen Verbindungen erfolgendes Einbeziehen wenigstens einer von neuen Objekt-Objekt-Verbindungen zwischen dem Anfrageobjekt und dem top-k-Teilsatz der Objekte und einer oder mehreren neuen Objekt-Tag-Verbindungen zwischen dem Anfrageobjekt und dem einen oder den mehreren Tags, die dem top-k-Teilsatz der Objekte zugeordnet sind.
  5. Verfahren nach Anspruch 3 oder 4, wobei: dann, wenn die Modalität eine visuelle Modalität umfasst, die neuen Verbindungen die neuen Objekt-Objekt-Verbindungen beinhalten und die eine oder die mehreren neuen Objekt-Tag-Verbindungen ausschließen; und dann, wenn die Modalität eine konzeptuelle Modalität umfasst, die neuen Verbindungen eine oder mehrere der neuen Objekt-Objekt-Verbindungen und die eine oder die mehreren der neuen Objekt-Tag-Verbindungen beinhalten.
  6. Verfahren nach einem der vorhergehenden Ansprüche, wobei das Generieren der Einbettung für das Subjekt bzw. den Gegenstand umfasst: Identifizieren der neuen Verbindungen zwischen dem Anfrageobjekt und dem Teilsatz der bestehenden Knoten in dem Graph auf Grundlage einer Nächster-Nachbar-Suche der Objekte; Übergeben einer Eingabe an das maschinell lernende Modell, wobei die Eingabe das Anfrageobjekt und die neuen Verbindungen umfasst; Beziehen einer Ausgabe von dem maschinell lernenden Modell, wobei die Ausgabe eine Anfangseinbettung für das Anfrageobjekt umfasst; Generieren einer Tag-Einbettung für das Anfrageobjekt; und Kombinieren der Anfangseinbettung und der Tag-Einbettung zur Erzeugung der Einbettung auf Grundlage einer Gewichtung, die durch die Modalität spezifiziert wird.
  7. Verfahren nach Anspruch 6, wobei: dann, wenn die Modalität eine konzeptuelle Modalität umfasst, die Gewichtung die Tag-Einbettung beim Kombinieren der Anfangseinbettung mit der Tag-Einbettung mehr als dann, wenn die Modalität eine visuelle Modalität umfasst, hervorhebt; und dann, wenn die Modalität die visuelle Modalität umfasst, die Gewichtung die Tag-Einbettung beim Kombinieren der Anfangseinbettung mit der Tag-Einbettung weniger als dann, wenn die Modalität die konzeptuelle Modalität umfasst, hervorhebt.
  8. Verfahren nach einem der vorhergehenden Ansprüche, wobei das Identifizieren der Modalität umfasst: Empfangen einer Nutzereingabe, die eine Auswahl der Modalität aus einem Bereich von möglichen Modalitäten, der eine visuelle Modalität und eine konzeptuelle Modalität umfasst, umfasst.
  9. Verfahren nach einem der vorhergehenden Ansprüche, wobei: das Anfrageobjekt ein Anfragebild umfasst; die Objekte bestehende Bilder, die durch Knoten in dem Graph dargestellt werden, umfassen; und das eine oder die mehreren ähnlichen Objekte, die in dem Graph dargestellt sind, k-nächste Nachbarn des Anfragebildes in den bestehenden Bildern umfassen.
  10. Verfahren nach Anspruch 9, wobei das Verfahren des Weiteren umfasst: Durchführen der Ähnlichkeitssuche für die k-nächsten Nachbarn des Anfragebildes in den bestehenden Bildern auf Grundlage der Einbettung, die für das Anfragebild generiert wird.
  11. Recheneinrichtung, umfassend: ein oder mehrere computerlesbare Speichermedien; einen oder mehrere Prozessoren, die operativ mit dem einen oder den mehreren computerlesbaren Speichermedien gekoppelt sind; und Programmanweisungen, die auf dem einen oder den mehreren computerlesbaren Speichermedien gespeichert sind und bei Ausführung durch den einen oder die mehreren Prozessoren die Recheneinrichtung wenigstens anleiten zum: Bestimmen einer Modalität für eine Ähnlichkeitssuche, die in Bezug auf ein Anfrageobjekt und Objekte, die in einem Graph dargestellt sind, durchgeführt werden soll; Identifizieren von neuen Verbindungen zwischen dem Anfrageobjekt und einem Teilsatz von bestehenden Knoten in dem Graph auf Grundlage der Modalität, die für die Ähnlichkeitssuche bestimmt wird; Übergeben einer Eingabe an ein maschinell lernendes Modell, wobei die Eingabe das Anfrageobjekt und die neuen Verbindungen umfasst; Beziehen einer Ausgabe von dem maschinell lernenden Modell, wobei die Ausgabe eine Einbettung für das Anfrageobjekt umfasst; und Zuführen bzw. Einspeisen einer Eingabe in die Ähnlichkeitssuche, die die Einbettung für das Anfrageobjekt umfasst, um Ergebnisse zu beziehen, die ein oder mehrere ähnliche Objekte, die in dem Graph dargestellt sind, umfassen.
  12. Recheneinrichtung nach Anspruch 11, wobei der Graph umfasst: die bestehenden Knoten, wobei bestehende Knoten Objektknoten, die den Objekten entsprechen, und Tag-Knoten, die Tags entsprechen, umfassen; und bestehende Kanten, die bestehende Verbindungen darstellen, wobei die bestehenden Verbindungen Objekt-Objekt-Verbindungen zwischen ähnlichen Paaren der Objekte und Objekt-Tag-Verbindungen zwischen den Tags und wenigstens einigen der Objekte umfassen.
  13. Recheneinrichtung nach Anspruch 11 oder 12, wobei zum Identifizieren der neuen Verbindungen zwischen dem Anfrageobjekt und dem Teilsatz der bestehenden Knoten die Programmanweisungen die Recheneinrichtung anleiten zum: Identifizieren eines top-k-Teilsatzes der Objekte, die am meisten wie das Anfrageobjekt sind; und Identifizieren eines oder mehrerer Tags, die dem top-k-Teilsatz der Objekte zugeordnet sind; und in die neuen Verbindungen erfolgendes Einbeziehen einer oder mehrerer von neuen Objekt-Objekt-Verbindungen zwischen dem Anfrageobjekt und dem top-k-Teilsatz der Objekte und einer oder mehreren neuen Objekt-Tag-Verbindungen zwischen dem Anfrageobjekt und dem einen oder den mehreren Tags.
  14. Recheneinrichtung nach Anspruch 12 oder 13, wobei: dann, wenn die Modalität eine visuelle Modalität umfasst, die neuen Verbindungen die neuen Objekt-Objekt-Verbindungen beinhalten und die eine oder die mehreren neuen Objekt-Tag-Verbindungen ausschließen; und dann, wenn die Modalität eine konzeptuelle Modalität umfasst, die neuen Verbindungen eine oder mehrere der neuen Objekt-Objekt-Verbindungen und die eine oder die mehreren der neuen Objekt-Tag-Verbindungen beinhalten.
  15. Recheneinrichtung nach einem der Ansprüche 11 bis 14, wobei zum Identifizieren der Modalität die Programmanweisungen die Recheneinrichtung anleiten zum: Empfangen einer Nutzereingabe, die eine Auswahl der Modalität aus einem Satz von möglichen Modalitäten, der eine visuelle Modalität und eine konzeptuelle Modalität umfasst, umfasst.
  16. Recheneinrichtung nach einem der Ansprüche 11 bis 15, wobei: das Anfrageobjekt ein Anfragebild umfasst; die anderen Objekte bestehende Bilder, die durch die bestehenden Knoten in dem Graph dargestellt werden, umfassen; und das eine oder die mehreren ähnlichen Objekte, die in dem Graph dargestellt sind, einen k-nächsten Nachbarn bzw. k-nächste Nachbarn des Anfragebildes in den bestehenden Bildern umfassen.
  17. Recheneinrichtung nach Anspruch 16, wobei die Programmanweisungen die Recheneinrichtung des Weiteren anleiten zum: Durchführen der Ähnlichkeitssuche für die k-nächsten Nachbarn des Anfragebildes in den bestehenden Bildern auf Grundlage der Einbettung, die für das Anfragebild bezogen wird.
  18. Ein oder mehrere computerlesbare Speichermedien, auf denen Programmanweisungen gespeichert sind, die bei Ausführung durch ein Verarbeitungssystem eine Recheneinrichtung wenigstens anleiten zum: Bestimmen einer Modalität für eine Ähnlichkeitssuche, die in Bezug auf ein Anfrageobjekt durchgeführt werden soll; Identifizieren einer oder mehrerer Verbindungen zwischen dem Anfrageobjekt und einem Teilsatz der Objekte in dem Graph auf Grundlage einer Nächster-Nachbar-Suche von Objekten, die in einem Graph dargestellt sind, und auf Grundlage der Modalität, die für die Ähnlichkeitssuche bestimmt wird; Übergeben einer Eingabe an ein maschinell lernendes Modell, wobei die Eingabe das Anfrageobjekt und die Verbindungen zwischen dem Anfrageobjekt und dem Teilsatz der Objekte umfasst; Beziehen einer Ausgabe von dem maschinell lernenden Modell, wobei die Ausgabe eine Anfangseinbettung für das Anfrageobjekt umfasst; Beziehen einer Tag-Einbettung für wenigstens einen Tag, der dem Anfrageobjekt zugeordnet ist; Kombinieren der Anfangseinbettung und der Tag-Einbettung zur Erzeugung einer kombinierten Einbettung auf Grundlage einer Gewichtung, die durch die Modalität spezifiziert ist; und Einspeisen einer Eingabe in die Ähnlichkeitssuche, die die kombinierte Einbettung für das Anfrageobjekt umfasst, um Ergebnisse zu beziehen, die ein oder mehrere ähnliche Objekte, die in dem Graph dargestellt sind, umfassen.
  19. Ein oder mehrere computerlesbare Speichermedien nach Anspruch 18, wobei: dann, wenn die Modalität eine konzeptuelle Modalität umfasst, die Gewichtung die Tag-Einbettung beim Kombinieren der Anfangseinbettung mit der Tag-Einbettung mehr als dann, wenn die Modalität eine visuelle Modalität umfasst, hervorhebt; und dann, wenn die Modalität die visuelle Modalität umfasst, die Gewichtung die Tag-Einbettung beim Kombinieren der Anfangseinbettung mit der Tag-Einbettung weniger als dann, wenn die Modalität die konzeptuelle Modalität umfasst, hervorhebt.
  20. Ein oder mehrere computerlesbare Speichermedien nach Anspruch 18 oder 19, wobei: das Anfrageobjekt ein Anfragebild umfasst; die Objekte bestehende Bilder, die durch Knoten in dem Graph dargestellt sind, umfassen; und das eine oder die mehreren ähnlichen Objekte, die in dem Graph dargestellt sind, einen k-nächsten Nachbarn bzw. k-nächste Nachbarn des Anfragebildes in den bestehenden Bildern umfassen.
DE102021000950.9A 2020-04-21 2021-02-22 Vereinheitlichtes Framework zur multimodalen Ähnlichkeitssuche Pending DE102021000950A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/854,697 US11500939B2 (en) 2020-04-21 2020-04-21 Unified framework for multi-modal similarity search
US16/854,697 2020-04-21

Publications (1)

Publication Number Publication Date
DE102021000950A1 true DE102021000950A1 (de) 2021-10-21

Family

ID=74865279

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021000950.9A Pending DE102021000950A1 (de) 2020-04-21 2021-02-22 Vereinheitlichtes Framework zur multimodalen Ähnlichkeitssuche

Country Status (5)

Country Link
US (2) US11500939B2 (de)
CN (1) CN113535750A (de)
AU (1) AU2021201044B2 (de)
DE (1) DE102021000950A1 (de)
GB (1) GB2594347B (de)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11715022B2 (en) * 2020-07-01 2023-08-01 International Business Machines Corporation Managing the selection and presentation sequence of visual elements
US11756049B1 (en) * 2020-09-02 2023-09-12 Amazon Technologies, Inc. Detection of evasive item listings
US11720346B2 (en) * 2020-10-02 2023-08-08 International Business Machines Corporation Semantic code retrieval using graph matching
US11436865B1 (en) * 2021-03-19 2022-09-06 Adobe Inc. Finding similar persons in images
US11893346B2 (en) * 2021-05-05 2024-02-06 International Business Machines Corporation Transformer-based encoding incorporating metadata
CN113656678B (zh) * 2021-10-19 2022-03-01 杭州电子科技大学 一种基于近邻图的多模态搜索方法
WO2023220437A1 (en) * 2022-05-13 2023-11-16 PolyN Technology Limited Systems and methods for human activity recognition using analog neuromorphic computing hardware
CN115600600B (zh) * 2022-10-26 2023-10-17 中电金信软件有限公司 多对象标签体系的标签命名方法、装置、电子设备及介质

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7761265B2 (en) * 2002-05-06 2010-07-20 Drexel University Method for comparing solid models
US8171049B2 (en) * 2009-09-18 2012-05-01 Xerox Corporation System and method for information seeking in a multimedia collection
US20120117051A1 (en) 2010-11-05 2012-05-10 Microsoft Corporation Multi-modal approach to search query input
IL231862A (en) * 2014-04-01 2015-04-30 Superfish Ltd Image representation using a neural network
US9836671B2 (en) * 2015-08-28 2017-12-05 Microsoft Technology Licensing, Llc Discovery of semantic similarities between images and text
US10642887B2 (en) * 2016-12-27 2020-05-05 Adobe Inc. Multi-modal image ranking using neural networks
US20190114362A1 (en) 2017-10-12 2019-04-18 Facebook, Inc. Searching Online Social Networks Using Entity-based Embeddings
WO2020051704A1 (en) * 2018-09-12 2020-03-19 Avigilon Corporation System and method for improving speed of similarity based searches
US11631234B2 (en) * 2019-07-22 2023-04-18 Adobe, Inc. Automatically detecting user-requested objects in images
US20210158176A1 (en) * 2019-11-22 2021-05-27 Bank Of Montreal Machine learning based database search and knowledge mining

Also Published As

Publication number Publication date
CN113535750A (zh) 2021-10-22
GB2594347B (en) 2022-09-28
US20210326393A1 (en) 2021-10-21
GB2594347A (en) 2021-10-27
US20220391450A1 (en) 2022-12-08
US11500939B2 (en) 2022-11-15
GB202101493D0 (en) 2021-03-17
AU2021201044B2 (en) 2022-04-28
AU2021201044A1 (en) 2021-11-04

Similar Documents

Publication Publication Date Title
DE102021000950A1 (de) Vereinheitlichtes Framework zur multimodalen Ähnlichkeitssuche
DE102019008142A1 (de) Lernen von Darstellungen unter Nutzung gemeinsamer semantischer Vektoren
DE112016001796T5 (de) Feinkörnige bildklassifizierung durch erforschen von etiketten von einem bipartiten graphen
DE112020000281T5 (de) Vereinigen von modellen, die jeweilige zielklassen aufweisen, mit destillation
DE112017005651T5 (de) Vorrichtung zur Klassifizierung von Daten
DE112017006166T5 (de) Verfahren und system zur erzeugung eines multi-relevanten labels
DE102020005646A1 (de) Slot-Filling mit kontextbezogenen Informationen
DE102016014798A1 (de) Genaues Vorhersagen einer Etikettrelevanz bei einer Bildabfrage
DE112020000584T5 (de) Verfahren für unüberwachte bild-zu-bild-übersetzung mit wenigen aufnahmen
DE112005000569T5 (de) System und Verfahren zur Patientenidentifikation für klinische Untersuchungen unter Verwendung von inhaltsbasiertem Erlangen und Lernen
DE102020215942A1 (de) System und verfahren für unüberwachte domänenanpassung mit mischungstraining
EP3557487B1 (de) Generieren von validierungsdaten mit generativen kontradiktorischen netzwerken
DE102021109468A1 (de) Hardware beschleuniger mit analog-inhaltlichem adressierbarem speicher (a-cam) für entscheidungsbaumrechnung
DE112020002693T5 (de) Verringerung der berechnung in neuralen netzwerken mit selbstmodifizierendem code
DE102021205722A1 (de) System und verfahren für mehrskalenmodelle mit tiefem gleichgewicht
DE202022002901U1 (de) Text-Bild-Layout Transformer (TILT)
DE102021107510A1 (de) Training eines neuronalen netzwerks unter speicherbeschränkung
DE102013113377B4 (de) Schnelle Suche nächster Nachbarn unter Verwendung von KD-Farnen
Carvajal et al. Fine-tuning based deep convolutional networks for lepidopterous genus recognition
Rosello et al. Kurcuma: a kitchen utensil recognition collection for unsupervised domain adaptation
DE102016015536A1 (de) Organisieren von elektronisch gespeicherten Dateien unter Verwendung einer automatisch erzeugten Speicherhierarchie
DE102012025350A1 (de) Verarbeitungn eines elektronischen Dokuments
Meng et al. Hierarchical class grouping with orthogonal constraint for class activation map generation
DE102021002071A1 (de) Mehrdimensionale Digitalcontentsuche
DE112020001625T5 (de) Bildsuchsystem und Bildsuchverfahren

Legal Events

Date Code Title Description
R012 Request for examination validly filed