{"id":163601,"date":"2022-09-13T17:56:12","date_gmt":"2022-09-13T16:56:12","guid":{"rendered":"https:\/\/liora.io\/de\/?p=163601"},"modified":"2026-02-23T08:46:55","modified_gmt":"2026-02-23T07:46:55","slug":"word-embedding","status":"publish","type":"post","link":"https:\/\/liora.io\/de\/word-embedding","title":{"rendered":"Das Word Embedding"},"content":{"rendered":"\n<p><strong>In <a href=\"https:\/\/liora.io\/de\/nlp-natural-language-processing-eine-einfuhrung\">einem fr\u00fcheren Artikel<\/a> haben wir den Begriff Natural Language Processing (NLP) definiert. In diesem Artikel besch\u00e4ftigen wir uns mit einer der wichtigsten NLP-Methoden, das Verfahren des Word Embedding (dt. Worteinbettung). Word Embedding bezeichnet eine Reihe von Lernmethoden, die darauf abzielen, W\u00f6rter in einem Text durch Vektoren reeller Zahlen zu repr\u00e4sentieren. In diesem Artikel entdeckst Du drei Hauptmethoden, um ein Wort als Vektor darzustellen:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter is-resized\"><img decoding=\"async\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2022\/09\/Frise.jpg\" alt=\"\" style=\"width:auto;height:400px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-one-hot-encoding\">One hot encoding<\/h2>\n\n\n\n<p>One hot encoding ist die klassische vektorielle Darstellung. Dabei wird jedem Wort des Wortschatzes eine Dimension zugewiesen. Jedes Wort des Wortschatzes wird als bin\u00e4rer Vektor dargestellt, wobei alle seine Werte mit Ausnahme des Wortindex 0 sind.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\" style=\"margin-top:var(--wp--preset--spacing--columns);margin-bottom:var(--wp--preset--spacing--columns)\"><img decoding=\"async\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2022\/09\/1.webp\" alt=\"\" \/><\/figure>\n\n\n\n<p>Nehmen wir diesen Satz als praktisches Beispiel:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">\"I think, therefore I am\".<\/pre>\n\n\n\n<div style=\"height:1px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Das Prinzip des One-Hot-Encodding besteht darin, jedem Wort des <b>Wortschatzes<\/b> einen Index zuzuweisen. Der Wortschatz sieht dann wie ein W\u00f6rterbuch aus:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">{'am': 0, 'i': 1, 'therefore': 2, 'think': 3}.<\/pre>\n\n\n\n<div style=\"height:1px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>In diesem Fall <b>besteht der Wortschatz aus den vier einzigartigen W\u00f6rtern unseres Korpus<\/b>. Die Methode besteht darin, das Wort des Wortschatzes als Vektor der Dimension 4 (Wortschatzgr\u00f6\u00dfe) darzustellen. Die Werte des Vektors sind alle 0 au\u00dfer dem Wortindex.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">Onehot('i')=0 1 0 0<\/pre>\n\n\n\n<div style=\"height:1px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Bei dieser Darstellung haben alle W\u00f6rter <b>den gleichen Abstand und die gleiche \u00c4hnlichkeit.<\/b> Das Verfahren des <b>One-Hot-Encoding<\/b> liefert also nur die Information, dass sich ein Wort <b>von einem anderen unterscheidet<\/b>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-image-embedding\">Image Embedding<\/h2>\n\n\n\n<p>Die Gr\u00f6\u00dfe eines Bildes wird durch seine Pixelzahl definiert. <b>Konvolutionen<\/b> werden benutzt, um Merkmale zu extrahieren, <b>die relevanter sind als der Wert der Pixel.<\/b> Beispielsweise k\u00f6nnten die Kerne, die zur Erkennung von Kanten dienen, n\u00fctzlich sein, um bestimmte geometrische Formen zu klassifizieren.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter is-resized\" style=\"margin-top:var(--wp--preset--spacing--columns);margin-bottom:var(--wp--preset--spacing--columns)\"><a href=\"https:\/\/towardsdatascience.com\/a-comprehensive-guide-to-convolutional-neural-networks-the-eli5-way-3bd2b1164a53\"><img decoding=\"async\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2022\/09\/2-1.webp\" alt=\"\" style=\"width:768px;height:auto\" \/><\/a><figcaption class=\"wp-element-caption\">Convolution Neuronal Network<\/figcaption><\/figure>\n\n\n\n<p>Mit Image embedding werden Convolutions\/Pooling angewendet, um das Bild zu kodieren und <b>Linearit\u00e4tsbeziehungen zwischen Eigenschaften (Kunststil, spezifische Form &#8230;) und neuen Merkmalen unseres Bildes zu extrahieren.<\/b><\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter is-resized\"><a href=\"https:\/\/www.oreilly.com\/library\/view\/practical-deep-learning\/9781492034858\/ch04.html\"><img decoding=\"async\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2022\/09\/3-1.webp\" alt=\"\" style=\"width:auto;height:500px\" \/><\/a><figcaption class=\"wp-element-caption\">Hauptkomponentenanalyse bei Image Embedding<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-word-embedding\">Word Embedding<\/h2>\n\n\n\n<p>Genauso kann man <b>mit Word Embedding durch Verringerung der Dimension den Kontext, die semantische und syntaktische \u00c4hnlichkeit (Genus, Synonyme, &#8230;) eines Wortes erfassen<\/b>. Beispielsweise w\u00fcrde man erwarten, dass die W\u00f6rter \u201eHund\u201c und \u201eKatze\u201c durch Vektoren dargestellt werden, die in dem Vektorraum, in dem diese Vektoren definiert sind, relativ wenig voneinander entfernt sind.<\/p>\n\n\n\n<p>Wie bei Bildern m\u00f6chten wir, dass <b>das Modell die relevantesten Merkmale ausw\u00e4hlt, die das Wort repr\u00e4sentieren<\/b>. Zum Beispiel k\u00f6nnte das Merkmal &#8222;Lebewesen&#8220; interessant sein, um &#8222;Hund&#8220; von &#8222;Computer&#8220; zu unterscheiden und &#8222;Hund&#8220; und &#8222;Katze&#8220; einander anzun\u00e4hern.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe title=\"Converting words to numbers, Word Embeddings | Deep Learning Tutorial 39 (Tensorflow &amp; Python)\" width=\"500\" height=\"281\" src=\"https:\/\/www.youtube.com\/embed\/sZGuyTLjsco?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-embedding-matrix\">Embedding-Matrix<\/h2>\n\n\n\n<p>Um die Dimension eines Vektors zu reduzieren, kann man das Ergebnis, das ein Dense Layer zur\u00fcckgibt, als Embedding verwenden, d. h. eine Embedding-Matrix W mit der \u201eOne-Hot\u201c-Darstellung des Wortes multiplizieren:<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter is-resized\" style=\"margin-top:var(--wp--preset--spacing--columns);margin-bottom:var(--wp--preset--spacing--columns)\"><img decoding=\"async\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2022\/09\/2-3.webp\" alt=\"\" style=\"width:auto;height:100px\" \/><\/figure>\n\n\n\n<p>Es gilt :<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter is-resized\"><img decoding=\"async\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2022\/09\/5.webp\" alt=\"\" style=\"width:auto;height:25px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image aligncenter is-resized is-style-not-rounded\" style=\"margin-top:var(--wp--preset--spacing--columns);margin-bottom:var(--wp--preset--spacing--columns)\"><img decoding=\"async\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2022\/09\/4.webp\" alt=\"\" style=\"width:auto;height:500px\" \/><\/figure>\n\n\n\n<p>Nachdem wir nun die Methode der Dimensionsreduktion (durch Informationskomprimierung) definiert haben, wie trainieren wir die Embedding-Matrix <b>W<\/b>?<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-embedding-matrix-und-klassifikationsproblem\">Embedding-Matrix und Klassifikationsproblem<\/h2>\n\n\n\n<p>Um die richtige Embedding-Matrix zu finden kann man sie auf ein \u00fcberwachtes Problem anwenden. Dementsprechend werden wir<b> die diese Wortdarstellung verwenden, um ein Problem der Sentiment Analysis<\/b> (auch Sentiment Detection) bei IMBD-Rezensionen zu l\u00f6sen. Der Datensatz umfasst 25.000 Filmkritiken (weitere Informationen zum Datensatz findest Du <a href=\"https:\/\/ai.stanford.edu\/~amaas\/data\/sentiment\/\">hier<\/a>).<\/p>\n\n\n\n<p>Es ist dann m\u00f6glich, die <b>W-Matrix des word embedding gleichzeitig mit dem Training des Klassifizierungsproblems zu trainieren<\/b>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"h-formatierung-der-daten\">Formatierung der Daten:<\/h3>\n\n\n\n<p>Um die Daten zu formatieren, muss der Textkorpus in eine Vektorgrafik umgewandelt werden, wobei jedes Review in eine Sequenz von ganzen Zahlen umgewandelt wird (jede ganze Zahl ist der Index eines Wortes):<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">tokenizer.texts_to_sequences(['hello my dear readers']) -&gt; [[4422, 10, 2974, 6117]]<\/pre>\n\n\n\n<figure class=\"wp-block-image aligncenter\" style=\"margin-top:var(--wp--preset--spacing--columns);margin-bottom:var(--wp--preset--spacing--columns)\"><img decoding=\"async\" src=\"https:\/\/liora.io\/app\/uploads\/sites\/8\/2022\/09\/2-2.webp\" alt=\"\" \/><\/figure>\n\n\n\n<p>Unser Modell wird ein einfaches bag of word mit einer Embedding-Methode sein:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Die embedding layer wird jeden Wortindex in einen Embedding-Vektor umwandeln. Die W-Matrix des Embeddings wird gelernt, w\u00e4hrend das Modell trainiert wird. Die resultierenden Dimensionen sind: (Batch, Sequenz, Embedding).<\/li>\n\n\n\n<li>Anschlie\u00dfend gibt die GlobalAveragePooling1D layer einen Ausgabevektor mit fester L\u00e4nge f\u00fcr jedes Beispiel zur\u00fcck, indem sie den Durchschnitt \u00fcber die Sequenzdimension bildet. Diese Transformation besteht aus einem bag of word und erm\u00f6glicht es dem Modell, mit Eingaben variabler L\u00e4nge umzugehen.<\/li>\n\n\n\n<li>Da wir schlie\u00dflich mit einem Klassifizierungsproblem zu tun haben (positive oder negative Rezension), m\u00fcssen wir Dense-Layer hinzuf\u00fcgen, um das <i>sentiment<\/i> der Rezension zu klassifizieren.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-und-in-der-praxis\">Und in der Praxis?<\/h2>\n\n\n\n<p>Auf diese Weise haben wir auf dem Testdatensatz eine Genauigkeit von 0,88 erreicht. Diese Punktzahl ist mit herk\u00f6mmlichen Methoden nur schwer zu erreichen. Au\u00dferdem h\u00e4tten wir auch ein <b>Tf-idf-Ma\u00df<\/b> (anstelle von bag of word) verwenden k\u00f6nnen, um unsere Sequenz in einen Vektor umzuwandeln.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-schlussfolgerungen\">Schlussfolgerungen:<\/h2>\n\n\n\n<p>So ein <strong>Modell<\/strong> liefert in der Regel bessere <strong>Ergebnisse<\/strong> als herk\u00f6mmliche <strong>Ans\u00e4tze<\/strong>. Es erm\u00f6glicht auch, die <strong>Dimension<\/strong> des <strong>Problems<\/strong> und damit die <strong>Lernaufgabe<\/strong> zu reduzieren. Da wir nur eine Information \u00fcber das <strong>Gef\u00fchl<\/strong> geben, erfasst jedoch das <strong>Word Embedding<\/strong> nur schwerlich eine andere <strong>Beziehung<\/strong> als diese.<\/p>\n\n\n\n<p>In einem n\u00e4chsten Artikel werden wir die <strong>Embedding-Matrix<\/strong> unbeaufsichtigt mithilfe des bekannten <strong>word2vec-Algorithmus<\/strong> trainieren. Da das Training <strong>un\u00fcberwacht<\/strong> erfolgt, werden wir die <strong>Verzerrung<\/strong> vermeiden, die mit der L\u00f6sung eines <strong>\u00fcberwachten Problems<\/strong> verbunden ist.<\/p>\n\n\n\n<p>Hat Dir dieser Artikel gefallen? M\u00f6chtest Du noch mehr \u00fcber <strong>Data Science<\/strong> lernen?<\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex is-content-justification-center\">\n<div class=\"wp-block-button\"><a class=\"wp-block-button__link wp-element-button\" href=\"https:\/\/liora.io\/de\/weiterbildung\/data-ki\">Starte jetzt eines unserer Trainings!<\/a><\/div>\n<\/div>\n\n\n\n<script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@type\": \"FAQPage\",\n  \"mainEntity\": [\n    {\n      \"@type\": \"Question\",\n      \"name\": \"One hot encoding\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"One hot encoding ist die klassische vektorielle Darstellung: Jedem Wort des Wortschatzes wird eine Dimension zugewiesen. Jedes Wort wird als bin\u00e4rer Vektor dargestellt, bei dem nur der Wert am Wortindex 1 ist, alle anderen 0. Alle W\u00f6rter haben denselben Abstand und dieselbe \u00c4hnlichkeit \u2013 die Methode liefert nur die Information, dass sich ein Wort von einem anderen unterscheidet.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Image Embedding\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Image Embedding nutzt Convolutions und Pooling, um relevante Merkmale aus Bildern zu extrahieren \u2013 z.B. Kantenerkennung f\u00fcr geometrische Formen. Dadurch werden Linearit\u00e4tsbeziehungen zwischen Eigenschaften (Kunststil, spezifische Formen) und neuen Bildmerkmalen hergestellt.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Word Embedding\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Word Embedding reduziert die Dimension und erfasst Kontext sowie semantische und syntaktische \u00c4hnlichkeiten (Genus, Synonyme). \u00c4hnliche W\u00f6rter wie 'Hund' und 'Katze' werden durch nahe beieinander liegende Vektoren dargestellt. Das Modell w\u00e4hlt die relevantesten Merkmale aus, z.B. 'Lebewesen' zur Unterscheidung von 'Hund' und 'Computer'.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Embedding-Matrix\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Die Embedding-Matrix W reduziert die Dimension eines Vektors durch Multiplikation mit der One-Hot-Darstellung eines Wortes. Das Ergebnis ist ein dichter Vektor, der als Embedding verwendet wird.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Embedding-Matrix und Klassifikationsproblem\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Die Embedding-Matrix kann durch \u00fcberwachtes Lernen trainiert werden, z.B. f\u00fcr Sentiment-Analyse von IMBD-Filmkritiken. Der Prozess: Daten formatieren (Texte in Integer-Sequenzen), Embedding-Layer wandelt Wortindizes in Vektoren um (W-Matrix wird mitgelernt), GlobalAveragePooling1D erzeugt Ausgabevektor fester L\u00e4nge (Bag of Words), Dense-Layer klassifizieren das Sentiment.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Und in der Praxis?\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Das Modell erreichte eine Genauigkeit von 0,88 auf dem Testdatensatz \u2013 mit herk\u00f6mmlichen Methoden schwer zu erreichen. Alternativ k\u00f6nnte ein Tf-idf-Ma\u00df anstelle von Bag of Words verwendet werden.\"\n      }\n    },\n    {\n      \"@type\": \"Question\",\n      \"name\": \"Schlussfolgerungen:\",\n      \"acceptedAnswer\": {\n        \"@type\": \"Answer\",\n        \"text\": \"Word Embedding liefert bessere Ergebnisse als traditionelle Ans\u00e4tze und reduziert die Dimension des Problems. Da nur Sentiment-Informationen gegeben werden, erfasst es andere Beziehungen nur schwer. In einem Folgeartikel wird die unbeaufsichtigte Embedding-Matrix mit word2vec trainiert, um Verzerrungen durch \u00fcberwachtes Lernen zu vermeiden.\"\n      }\n    }\n  ]\n}\n<\/script>\n","protected":false},"excerpt":{"rendered":"<p>In einem fr\u00fcheren Artikel haben wir den Begriff Natural Language Processing (NLP) definiert. In diesem Artikel besch\u00e4ftigen wir uns mit einer der wichtigsten NLP-Methoden, das Verfahren des Word Embedding (dt. Worteinbettung). Word Embedding bezeichnet eine Reihe von Lernmethoden, die darauf abzielen, W\u00f6rter in einem Text durch Vektoren reeller Zahlen zu repr\u00e4sentieren. In diesem Artikel entdeckst [&hellip;]<\/p>\n","protected":false},"author":47,"featured_media":219301,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"editor_notices":[],"footnotes":""},"categories":[2472],"class_list":["post-163601","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-data-ki"],"acf":[],"_links":{"self":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts\/163601","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/users\/47"}],"replies":[{"embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/comments?post=163601"}],"version-history":[{"count":3,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts\/163601\/revisions"}],"predecessor-version":[{"id":219304,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/posts\/163601\/revisions\/219304"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/media\/219301"}],"wp:attachment":[{"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/media?parent=163601"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/liora.io\/de\/wp-json\/wp\/v2\/categories?post=163601"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}