Extraktion numerischer Attribute aus Produktbeschreibungen


Automatisches Extrahieren von numerischen Attributen aus Produktbeschreibungen, um die bestehende Datenbank anzureichern.

Input

Produktbeschreibung in Freitextform

Output

Extrahierte numerische Attribute

Ziel

Angereicherterer Produktkatalog mit mehr strukturierten Informationen für die Nutzenden


Einführung


idealo bietet eine Produkt- und Preisvergleichs-Website. Zu diesem Zweck aggregiert idealo die Produktkataloge von mehreren tausend Partnerhändlern. Um Artikel zwischen verschiedenen Händlern vergleichbar zu machen, wird ein vordefinierter und standardisierter Satz von Produktattributen aus allen Artikeln der Partnerkataloge extrahiert. 

Derzeit wird diese Attributextraktion durch ein regelbasiertes Matching-Verfahren durchgeführt. Gemeinsam mit idealo haben wir verschiedene Ansätze des maschinellen Lernens implementiert und analysiert, um das derzeitige regelbasierte Verfahren zu ersetzen bzw. zu erweitern. In der ersten Projektphase haben wir uns auf die Extraktion und Interpretation von numerischen Attributen konzentriert.


Herausforderungen


Aufgrund des großen Bestandes (mehr als 300 Millionen Artikel) und der vielschichtigen Klassifizierung dieser Artikel (mehr als tausend Kategorien, mehrere tausend Einzelattribute) wäre die manuelle Kennzeichnung repräsentativer Trainings- und Evaluierungsdatensätze ein unverhältnismäßiger Aufwand.


Lösungen


Labeling

In diesem Projekt haben wir einen manuell erstellten Datensatz mit einem Trainingsdatensatz ergänzt, der aus den Annotationen des regelbasierten Algorithmus von idealo erstellt wurde. Auf diese Weise erhielten wir zwei Arten von beschrifteten Daten: starke und schwache Beschriftungen.

Um die starken Labels zu erhalten, haben wir relevante Informationen (so genannte Attributwerte, z.B. "1 cm") innerhalb einer Produktbeschreibung im Katalog eines Händlers (ein so genannter Angebotstext) manuell dem jeweiligen Attribut (z.B. "Länge") zugeordnet. 

Da im idealo-Produktkatalog bereits verschiedene Produkte enthalten sind, konnten wir diese Informationen nutzen, um automatisch Millionen von zusätzlichen Labels zu erstellen. Diese automatisch generierten Labels werden als zusätzliche Trainingsdaten für unsere Modelle verwendet. Trotz des enormen Zuwachses an gelabelten Daten bezeichnen wir diese Labels als schwach, da sie nicht von menschlichen Lablern erstellt werden und daher anfällig für Unvollständigkeit sind und auch Fehler enthalten können, wie z.B. False Positives.

Models

Unsere beiden leistungsstärksten Modelle folgen jeweils einer bekannten Problemstellung aus der natürlichen Sprachverarbeitung (NLP): Während das erste Modell darauf abzielt, eine semantische Segmentierung in Bezug auf alle Klassen (alle Attribute plus eine Nicht-Attribut-Hintergrundklasse) auf einmal durchzuführen, geht das zweite Modell im Stil einer Frage-Antwort-Situation vor, um nach jedem einzelnen Attribut zu "fragen". Beide Modelle verwenden den modernsten Ansatz im Bereich des NLP: Bidirektionale Encoder-Repräsentationen von Transformatoren (BERT) (Blog-Artikel, Paper).

BERTseg model

Das erste Modell ist ein BERT-Segmentierungsmodell (BERTSeg). Wie in der Abbildung oben zu sehen ist, klassifiziert das Modell jedes "Textstück" (auch Token genannt) in Attribute - oder Nicht-Attribut-Hintergrund - unter Verwendung einer Klassifizierungsschicht, die für jede Produktkategorie trainiert wird. Während die kategoriespezifische Schicht aus den gelabelten Daten gelernt werden muss, profitieren wir von einem vortrainierten BERT-Encoder, der bereits ein semantisches "Verständnis" der verschiedenen Teile der gegebenen Angebotstexte liefert. Nach dem Training auf den schwach und stark gelabelten Daten können wir die Texte in die verschiedenen Kategorien segmentieren, wie in der Abbildung unten zu sehen ist.

BERTQ+A

Unser zweites BERT-Modell verwendet einen Frage-Antwort-Ansatz (BERTQ+A). Auch hier verwenden wir eine vortrainierte BERT-Architektur und stimmen das Modell auf unseren speziellen Anwendungsfall ab. Hier verwenden wir eine separate BERT-Einbettung für jedes Attribut-Anbieter-Text-Paar (wie in der Abbildung unten gezeigt, wird das Attribut "Spannung (V)" mit einem Angebotstext "Steckdose 220 Volt [...]" verkettet). 

 Für jedes "Textstück" (oder Token) und Attribut beantwortet das Modell die Ja/Nein-Frage "Ist dieses Token ein Attributwert dieses Attributs?". Diese Antwort wird in Form einer binären Wahrscheinlichkeit gegeben, dass das Token einen entsprechenden Attributwert darstellt. 

Die Tatsache, dass der Attributname (einschließlich seiner Einheit) die Einbettung von Angebotstexten beeinflusst, ermöglicht eine grundlegende Generalisierung auf ungesehene Attribute.

Im Folgenden wird ein typisches Ergebnis des BERTQ+A-Modells dargestellt, bei dem jedes Attribut separat ermittelt wurde. Das Modell BERTQ+A ist bei dieser Aufgabe leistungsfähiger als das Modell BERTSeg, aber aufgrund der Tatsache, dass für jedes Attribut-Anbieter-Paar eine separate Vorhersage erforderlich ist, auch langsamer.

Fazit

Die Extraktionsleistung unserer Lösung übertrifft die Leistung des bestehenden regelbasierten Matching-Verfahrens. Während wir die Genauigkeit des aktuellen Systems erreichen, übertreffen wir es in Bezug auf die Wiederauffindbarkeit um ein Vielfaches.

Dies ist eine beachtliche Leistung, da regelbasierte Verfahren sehr streng sind und daher von Natur aus eine hohe Genauigkeit aufweisen.

Die Tatsache, dass die Wiederauffindbarkeit unserer BERT-basierten Lösung höher ist als die des regelbasierten Ansatzes, zeigt den großen Vorteil von auf maschinellem Lernen basierenden Methoden im Bereich der Informationsextraktion: Es ist nicht notwendig, jeden zu extrahierenden Kantenfall explizit zu definieren. Stattdessen können Attributwerte über ihren Kontext identifiziert werden und somit mehr Werte gefunden werden.

Dies führt zu einem angereicherten Produktkatalog mit mehr strukturierten Informationen für die Benutzer.

Ähnliche Projekte