Answer to Question 1-1
Word Embeddings und TF-IDF berücksichtigen den Kontext auf unterschiedliche Weise bei der Erstellung von Wortrepräsentationen:

Word Embeddings (z.B. word2vec):
- Word Embeddings lernen die Wortrepräsentationen aus dem Kontext, in dem die Wörter in einem großen Textkorpus vorkommen.
- Wörter, die häufig in ähnlichen Kontexten auftreten, erhalten ähnliche Vektorrepräsentationen im hochdimensionalen Raum.
- Der Kontext wird durch die umgebenden Wörter in einem festgelegten Fenster (z.B. 5 Wörter vor und nach dem Zielwort) definiert.
- Durch das Training auf großen Textmengen können Word Embeddings semantische und syntaktische Beziehungen zwischen Wörtern erfassen.

TF-IDF:
- TF-IDF berücksichtigt den Kontext auf Dokumentenebene.
- Die TF (Term Frequency) misst, wie häufig ein Wort in einem bestimmten Dokument vorkommt, und spiegelt somit die Bedeutung des Wortes im Kontext dieses Dokuments wider.
- Die IDF (Inverse Document Frequency) berücksichtigt die Seltenheit eines Wortes über die gesamte Dokumentensammlung hinweg.
- Wörter, die in vielen Dokumenten vorkommen, erhalten ein geringeres Gewicht, da sie weniger diskriminativ sind.
- TF-IDF gewichtet Wörter höher, die in einem bestimmten Dokument häufig vorkommen, aber in der gesamten Dokumentensammlung selten sind.

Hauptunterschied:
- Word Embeddings berücksichtigen den lokalen Kontext auf Wortebene, indem sie die umgebenden Wörter in einem festgelegten Fenster betrachten.
- TF-IDF berücksichtigt den globalen Kontext auf Dokumentenebene, indem es die Häufigkeit eines Wortes in einem bestimmten Dokument im Verhältnis zu seiner Seltenheit in der gesamten Dokumentensammlung betrachtet.
- Word Embeddings erfassen semantische und syntaktische Beziehungen zwischen Wörtern, während TF-IDF hauptsächlich die Relevanz eines Wortes in einem bestimmten Dokument im Vergleich zu anderen Dokumenten misst.





****************************************************************************************
****************************************************************************************




Answer to Question 1-2
Hier ist die Segmentierung des Satzes "I love NLP a lot" mit den gegebenen BPE Codes in Teilwörter:

I lo ve N L P a lo t

Die Teilwörter sind:
I
lo
ve 
N
L
P
a
lo
t





****************************************************************************************
****************************************************************************************




Answer to Question 1-3
a) Die Ausgabeprojektion hat die Form einer Matrix mit den Dimensionen 10.000 x 300. Die Zeilenzahl entspricht der Größe des Vokabulars (10.000 Wörter) und die Spaltenzahl entspricht der Dimension der Wortvektoren (300).

b) Ich stimme Bart nicht zu, dass seine Trainingspipeline defekt ist. Der Grund, warum er keinen Unterschied bei den trainierten Wortvektoren festgestellt hat, liegt wahrscheinlich daran, dass die verwendeten Kontextfenstergrößen von 30, 40 und 50 Wörtern für Nachrichtenüberschriften zu groß sind. Nachrichtenüberschriften sind typischerweise kurz und prägnant formuliert und enthalten oft nur wenige Wörter. Daher ist es unwahrscheinlich, dass ein so großes Kontextfenster zusätzliche relevante Informationen für das Training der Wortvektoren liefert. Kleinere Kontextfenstergrößen, z.B. im Bereich von 2-10 Wörtern, wären für Nachrichtenüberschriften besser geeignet, um die lokale Wortumgebung zu erfassen und aussagekräftige Wortvektoren zu trainieren.





****************************************************************************************
****************************************************************************************




Answer to Question 1-4
Hier sind meine Antworten zu den Aussagen:

a) Richtig. Bei morphologisch reichhaltigen Sprachen mit vielen Wortformen und Flexionen ist es sinnvoller, Teilwörter (Subwords) statt ganzer Wörter zu verwenden, um die Abdeckung und Generalisierungsfähigkeit des Modells zu erhöhen.

b) Richtig. Mit den Häufigkeiten der einzelnen Wörter in einem Korpus lässt sich ein Unigramm-Sprachmodell ableiten, indem man die Wahrscheinlichkeit jedes Wortes durch Division der Worthäufigkeit durch die Gesamtzahl der Wörter berechnet.

c) Falsch. One-Hot-Wortrepräsentationen kodieren nur die Identität eines Wortes, enthalten aber keine semantischen Informationen. Daher eignen sie sich nicht, um semantische Unterschiede zwischen Wörtern zu messen.

d) Falsch. Bei LDA wird ein Dokument als Verteilung über Themen und jedes Thema als Verteilung über Wörter modelliert. Die Verteilung über Wörter liegt auf Ebene der Themen, nicht direkt auf Dokumentebene.

e) Falsch. Bei TF-IDF erhöht die Inverse Document Frequency (IDF) die Bedeutung von Wörtern, die in wenigen Dokumenten vorkommen. Die Term Frequency (TF) misst dagegen die Häufigkeit eines Terms in einem Dokument.

f) Falsch. Bei HMMs für POS-Tagging sind die verborgenen Zustände die POS-Tags. Die beobachtbaren Zustände bzw. Emissionen sind die Wörter selbst.





****************************************************************************************
****************************************************************************************




Answer to Question 2-1
a) Ein geeignetes Modell für die Satzklassifikation mit vortrainierten Word Embeddings könnte folgendermaßen aussehen:

Eingabe: Ein Satz, der in eine Sequenz von 300-dimensionalen Word Embedding Vektoren umgewandelt wird. Die Sequenzlänge sei n.

Zwischenoperationen:
1. Mittelwertbildung: Berechne den Mittelwert der n Word Embedding Vektoren, um einen einzelnen 300-dimensionalen Vektor zu erhalten.
2. Lineare Projektion: Projiziere den 300-dimensionalen Vektor mit einer linearen Schicht auf 3 Dimensionen. Die Gewichtsmatrix hat die Dimension 300x3, der Bias-Vektor ist 3-dimensional.

Ausgabe: Ein 3-dimensionaler Vektor, der die Scores für die 3 Klassen {happy, neutral, sad} enthält.

Parameterdimensionen: Die einzigen trainierbaren Parameter sind die Gewichtsmatrix (300x3) und der Bias-Vektor (3) der linearen Projektionsschicht. Insgesamt hat das Modell 903 trainierbare Parameter.

b) Zwei Gründe, warum das Modell aus a) nicht für die Klassifikation von Audio-Äußerungen geeignet ist:

1. Das Modell in a) erwartet als Eingabe eine Sequenz von Word Embeddings. Audio-Spektrogramme haben eine völlig andere Struktur und Bedeutung, daher ist das Modell nicht direkt anwendbar.

2. Durch die Mittelwertbildung über die gesamte Sequenz geht die zeitliche Information in den Audio-Daten verloren. Für Audio-Klassifikation ist aber oft die zeitliche Abfolge von Mustern entscheidend.

c) Ein verbessertes Modell für die Audio-Klassifikation:

Eingabe: Ein 80-dimensionales Spektrogramm der Audio-Äußerung mit Länge t.

Zwischenoperationen: 
1. Faltung: Wende nacheinander zwei 1D-Faltungsschichten mit jeweils 64 Filtern der Größe 3 an. Jede Faltungsschicht wird von einer ReLU-Aktivierung gefolgt. Die Ausgabe hat die Dimension 64 x (t-4). 
2. Max-Pooling: Wende eine 1D-Max-Pooling Schicht mit Größe 2 und Schrittweite 2 an. Die Ausgabe hat die Dimension 64 x ((t-4)/2).
3. Globales Max-Pooling: Aggregiere die Ausgabe zeitlich durch globales Max-Pooling, um einen einzelnen 64-dim. Vektor zu erhalten.
4. Lineare Projektion: Projiziere den 64-dim. Vektor mit einer linearen Schicht auf 3 Dimensionen.

Ausgabe: Ein 3-dim. Vektor mit den Scores für {happy, neutral, sad}.

Parameterdimensionen: Die Faltungsschichten haben jeweils 64*(3*80+1)=15424 Parameter. Die lineare Projektionsschicht hat 64*3+3=195 Parameter. Insgesamt hat das Modell 2*15424+195=31043 trainierbare Parameter.





****************************************************************************************
****************************************************************************************




Answer to Question 2-2
a) Der Ansatz der Sequenzklassifikation, bei dem nur die einzelne Äußerung als Eingabe verwendet wird, ist nicht optimal, da der Kontext des Dialogs für die korrekte Zuordnung des Dialog-Acts oft entscheidend ist. Anhand des Beispiels sieht man, dass die Äußerung "For a week, right?" sowohl vom Arzt als auch vom Patienten verwendet wird, aber unterschiedliche Dialog-Acts (symptom_kneeSwelling und medication) zugeordnet bekommt. Ohne den Kontext würde das Modell hier sicher einen Fehler machen und beiden Äußerungen denselben Dialog-Act zuweisen.

b) Ich würde die Aufgabe als Sequenz-Labeling-Problem modellieren. Bei der Sequenzgenerierung müsste das Modell die Dialog-Act-Labels selbst generieren, was unnötig komplex wäre, da wir eine feste Menge an Labels haben. Beim Sequenz-Labeling hingegen ordnet das Modell jeder Äußerung in der Eingabesequenz ein Label zu, was genau der Aufgabenstellung entspricht. Zudem kann das Modell beim Labeling den Kontext der vorherigen Äußerungen und zugewiesenen Labels berücksichtigen, was wie in a) gezeigt für diese Aufgabe wichtig ist.

c) Mein Modell für die Dialog-Act-Identifizierung als Sequenz-Labeling-Problem:

Eingabe: Eine Matrix der Dimension anzahl_der_äußerungen × d, wobei jede Zeile das d-dimensionale Embedding einer Äußerung im Dialog ist.

Zwischenoperationen:
1. Die Eingabematrix wird in ein bidirektionales LSTM-Netzwerk gegeben, das Kontextinformationen in beide Richtungen erfasst und einen Ausgabevektor pro Äußerung erzeugt. 
2. Die LSTM-Ausgaben werden in eine weitere Feed-Forward-Schicht gegeben, die die Vektoren in den Labelraum projiziert.
3. Auf die projizierten Vektoren wird eine Softmax-Funktion angewendet, um Wahrscheinlichkeiten über die Dialog-Act-Labels zu erhalten.

Ausgabe: Eine Sequenz von Dialog-Act-Labels, eines pro Eingabe-Äußerung. In jedem Schritt wird das Label mit der höchsten Wahrscheinlichkeit gewählt.





****************************************************************************************
****************************************************************************************




Answer to Question 3-1
a) "Autoregressiv" bedeutet in diesem Kontext, dass der Transformer-Decoder die bisher generierten Wörter als zusätzlichen Input verwendet, um das nächste Wort vorherzusagen. Das heißt, die Ausgabe des Decoders hängt nicht nur von der Eingabesequenz ab, sondern auch von den bereits generierten Wörtern.

b) Die Self-Attention des Transformer-Decoders muss während des Trainings teilweise ausgeblendet werden, um zu verhindern, dass der Decoder Zugriff auf zukünftige Informationen hat. Wenn der Decoder beim Training die nachfolgenden Wörter sehen könnte, würde er einfach lernen, diese zu kopieren, anstatt sie basierend auf dem Kontext vorherzusagen. Durch das Ausblenden der nachfolgenden Wörter wird sichergestellt, dass der Decoder nur die bisher generierten Wörter verwendet, um das nächste Wort vorherzusagen.

c) Die Gewichte, die ausgeblendet werden sollen, sind mit "x" markiert:

   BoS, E, F, G
BoS,  ,  ,  ,  
E  ,  , x, x
F  ,  ,  , x  
G  ,  ,  ,

d) In der Sequenz "John loves Mary" ist die Attention-Query für "Mary" gegeben als $\mathbf{q}_{Mary}$ und die Attention-Keys für "John", "loves" und "Mary" als $\mathbf{k}_{John}$, $\mathbf{k}_{loves}$ und $\mathbf{k}_{Mary}$. Die Attention-Gewichte $\bm{\alpha}_{Mary}$ werden berechnet als:

$\bm{\alpha}_{Mary} = softmax([\mathbf{q}_{Mary} \cdot \mathbf{k}_{John}, \mathbf{q}_{Mary} \cdot \mathbf{k}_{loves}, \mathbf{q}_{Mary} \cdot \mathbf{k}_{Mary}])$

In der Sequenz "Mary loves John" ist die Attention-Query für "Mary" immer noch $\mathbf{q}_{Mary}$ und die Attention-Keys für "Mary", "loves" und "John" sind $\mathbf{k}_{Mary}$, $\mathbf{k}_{loves}$ und $\mathbf{k}_{John}$. Die Attention-Gewichte $\bm{\alpha}_{Mary}$ werden berechnet als:

$\bm{\alpha}_{Mary} = softmax([\mathbf{q}_{Mary} \cdot \mathbf{k}_{Mary}, \mathbf{q}_{Mary} \cdot \mathbf{k}_{loves}, \mathbf{q}_{Mary} \cdot \mathbf{k}_{John}])$

Da die Reihenfolge der Skalarprodukte im Softmax-Argument keine Rolle spielt, sind die resultierenden Attention-Gewichte $\bm{\alpha}_{Mary}$ in beiden Fällen gleich.





****************************************************************************************
****************************************************************************************




Answer to Question 3-2
Hier sind meine Antworten zu den Unterfragen:

a) Zwei mögliche Lösungen für das Problem mit unbekannten Wörtern beim Anpassen eines Zusammenfassungsmodells an den medizinischen Bereich:

1. Verwenden eines größeren, domänenspezifischen Vokabulars: Trainieren Sie das Modell mit einem Vokabular, das speziell für den medizinischen Bereich erstellt wurde und die relevanten Fachbegriffe enthält. Dadurch kann das Modell die unbekannten Wörter besser darstellen und generieren.

2. Anwenden von Subword-Tokenisierung (z.B. Byte Pair Encoding oder WordPiece): Zerlegen Sie Wörter in kleinere Einheiten (Subwords), um unbekannte Wörter aus bekannten Teilen zusammenzusetzen. So kann das Modell auch mit Wörtern umgehen, die nicht im Vokabular enthalten sind.

b) ROUGE-n basiert auf der Überlappung von n-Grammen zwischen der generierten Zusammenfassung und einer oder mehreren Referenzzusammenfassungen. Ein n-Gramm ist eine Folge von n aufeinanderfolgenden Wörtern. ROUGE-1 betrachtet beispielsweise Uni-Gramme (einzelne Wörter), während ROUGE-2 Bi-Gramme (Wortpaare) vergleicht.

c) Das Modell erhält trotz der nicht-grammatischen Ausgabe mit Wiederholungen hohe ROUGE-2-Werte, weil ROUGE nur die Überlappung von n-Grammen zwischen der generierten Zusammenfassung und den Referenzen misst. Solange die wiederholten Bi-Gramme wie "amyloid angiopathy" in den Referenzen vorkommen, trägt dies zu einem hohen ROUGE-2-Wert bei, auch wenn die Ausgabe insgesamt nicht kohärent ist.

Um dieses Problem zu vermeiden, können wir eine Metrik wie BERTScore verwenden, die die semantische Ähnlichkeit zwischen der generierten Zusammenfassung und den Referenzen auf Basis kontextualisierter Worteinbettungen bewertet. BERTScore würde die Wiederholungen bestrafen, da sie nicht zu einer semantisch sinnvollen Zusammenfassung beitragen.

Zur Reduzierung von Wiederholungen bei der Generierung können wir Techniken wie Beam Search mit Strafterm für wiederholte n-Gramme oder Sampling mit Temperatur anwenden. Auch die Verwendung von Aufmerksamkeitsmechanismen mit Coverage-Vektoren kann helfen, den Fokus auf verschiedene Teile des Eingabetextes zu lenken und Wiederholungen zu vermeiden.





****************************************************************************************
****************************************************************************************




Answer to Question 3-3
a) Vorteil: BERT ist ein leistungsstarker vortrainierter Encoder für Text und erzeugt gute Repräsentationen für Texteingaben. Durch die Verwendung von BERT als Encoder könnte das Modell von diesem Vorwissen profitieren und möglicherweise bessere Übersetzungen liefern.

Nachteil: CTC ist hauptsächlich für Probleme wie Spracherkennung oder Handschrifterkennung geeignet, bei denen die Eingabe- und Ausgabesequenzen unterschiedliche Längen haben können. Bei der maschinellen Übersetzung haben Quell- und Zieltext oft ähnliche Längen, sodass CTC möglicherweise nicht der am besten geeignete Ansatz ist. CTC berücksichtigt auch nicht die langfristigen Abhängigkeiten zwischen den Wörtern, was für die Übersetzung wichtig sein kann.

b) Um das Modell zu verbessern, könnte man anstelle von CTC einen Sequenz-zu-Sequenz-Ansatz mit Attention-Mechanismus verwenden. Dabei würde BERT weiterhin als Encoder für den Quelltext dienen, aber der Decoder würde eine Attention-Schicht verwenden, um bei der Generierung jedes Zielwortes auf die relevanten Teile der BERT-Ausgabe zu fokussieren. Dies würde es dem Modell ermöglichen, langfristige Abhängigkeiten besser zu erfassen und die Übersetzungsqualität potenziell zu verbessern. Ein bekanntes Beispiel für diese Architektur ist der Transformer, bei dem sowohl Encoder als auch Decoder aus Attention-Schichten bestehen.





****************************************************************************************
****************************************************************************************




Answer to Question 3-4
a) Ein mögliches Modell für die Text-to-SQL-Aufgabe könnte wie folgt aussehen:
- Verwenden eines Encoder-Decoder-Ansatzes mit Attention-Mechanismus
- Der Encoder ist ein bidirektionales LSTM oder Transformer, der die Frage in natürlicher Sprache sowie die Tabellen- und Spaltennamen als Input erhält. Dabei werden die Wörter/Tokens in Vektoren eingebettet.
- Der Decoder ist ebenfalls ein LSTM oder Transformer, der schrittweise die SQL-Abfrage generiert. In jedem Schritt erhält er den vorherigen Output, die Encoder-Zustände und einen Kontext-Vektor aus dem Attention-Mechanismus.
- Der Attention-Mechanismus berechnet Gewichte, die angeben, wie relevant jedes Eingabe-Token für den aktuellen Decoder-Schritt ist. Damit kann sich der Decoder auf die wichtigen Informationen konzentrieren.
- Während des Trainings wird die Kreuzentropie zwischen der generierten und der Ziel-SQL-Abfrage als Verlustfunktion minimiert. Beim Inferieren wird Beam Search verwendet, um die wahrscheinlichste Abfrage zu finden.

b) Um mit unbeantwortbaren Fragen umzugehen, könnte man das Modell folgendermaßen anpassen:
- Dem Modell eine zusätzliche "Unanswerable"-Klasse beibringen. Wenn die Wahrscheinlichkeit für diese Klasse am Ende einen Schwellenwert überschreitet, gibt das Modell keine SQL-Abfrage aus, sondern eine Meldung wie "Frage kann anhand der gegebenen Informationen nicht beantwortet werden."
- Während des Trainings dem Modell auch Negativbeispiele präsentieren, d.h. Fragen, die nicht anhand der Tabelle beantwortet werden können. Diese werden der "Unanswerable"-Klasse zugeordnet.
- Eine Vorverarbeitungskomponente hinzufügen, die prüft, ob die Schlüsselwörter/Entitäten der Frage in den Tabellen- und Spaltennamen vorkommen. Wenn nicht, kann die Frage direkt als unbeantwortbar klassifiziert werden, ohne sie an das Modell weiterzuleiten.
Durch diese Anpassungen lernt das Modell zwischen beantwortbaren und unbeantwortbaren Fragen zu unterscheiden und gibt nur dann eine SQL-Abfrage aus, wenn die Frage anhand der Tabelleninformationen beantwortet werden kann.





****************************************************************************************
****************************************************************************************




Answer to Question 4-1
a) Der Vorteil dieses Ansatzes ist, dass die vortrainierten BERT-Parameter eingefroren bleiben und nicht verändert werden. Dadurch wird verhindert, dass das bereits erlernte Wissen verloren geht. Stattdessen werden nur die zusätzlichen Adapter-Parameter trainiert, was weniger Rechenaufwand erfordert und das Risiko einer Divergenz verringert.

b) Die Adapter würde ich an folgenden Stellen in der BERT-Architektur einsetzen:
- Nach der Ausgabe der BertSelfAttention, vor der BertSelfOutput-Schicht. Hier würde ich die Ausgabe der Selbstaufmerksamkeit durch die zwei linearen Projektionen (768 -> 256 -> 768) der Adapter leiten.
- Nach der Ausgabe der BertIntermediate-Schicht, vor der BertOutput-Schicht. Auch hier würde ich die Ausgabe der Intermediate-Schicht durch die Adapter-Projektionen (3072 -> 256 -> 3072) leiten.
Diese Adapter-Strukturen würden dann in jeder der 12 BERT-Schichten wiederholt werden.

c) Um die Anzahl der zusätzlichen Parameter durch die Adapter zu berechnen:
- Pro Adapter gibt es zwei lineare Projektionen, die jeweils eine Gewichtsmatrix und einen Bias-Vektor haben.
- Die Dimensionen der Matrizen sind:
  - Erste Projektion: 768 x 256 und 256 x 768
  - Zweite Projektion: 3072 x 256 und 256 x 3072
- Die Bias-Vektoren haben jeweils die Dimension der Ausgabe (256 bzw. 768 oder 3072).
- Es gibt insgesamt 12 BERT-Schichten, in denen jeweils zwei Adapter eingefügt werden.
- Die Gesamtzahl der zusätzlichen Parameter ergibt sich aus:
  12 * ((768 * 256 + 256) + (256 * 768 + 768) + (3072 * 256 + 256) + (256 * 3072 + 3072))





****************************************************************************************
****************************************************************************************




Answer to Question 4-2
a) Der Hauptunterschied zwischen der Verwendung des BERT-CLS-Tokens und Pooling-Ansätzen wie Mean- oder Max-Pooling liegt darin, dass das CLS-Token speziell trainiert wird, um die Gesamtbedeutung des Satzes zu erfassen. Bei Pooling-Ansätzen werden die Wortrepräsentationen einfach aggregiert, ohne explizit für die Satzrepräsentation optimiert zu werden.

Die Vorteile der Verwendung des CLS-Tokens sind:
- Es wird während des Pre-Trainings von BERT speziell darauf trainiert, die Semantik des gesamten Satzes zu kodieren. Dadurch ist es besser geeignet, den Satz als Ganzes zu repräsentieren.
- Das CLS-Token berücksichtigt die Reihenfolge und den Kontext der Wörter im Satz, während Pooling-Ansätze diese Informationen verlieren.
- Durch die spezielle Optimierung auf die Satzrepräsentation während des Trainings kann das CLS-Token potenziell aussagekräftigere und kompaktere Repräsentationen liefern.

b) Die Einbeziehung irrelevanter/negativer Paare in das Trainingsziel ist wichtig, um eine gute Unterscheidung zwischen relevanten und irrelevanten Passagen zu erreichen. Ohne die negativen Paare würde das Modell nur lernen, relevante Paare einander anzunähern, aber nicht, irrelevante Paare voneinander zu trennen.

Wenn wir die negativen Paare weglassen würden, hätte das folgende Auswirkungen:
- Das Modell könnte nicht richtig zwischen relevanten und irrelevanten Passagen unterscheiden. Es würde potenziell auch irrelevante Passagen als relevant einstufen.
- Die gelernten Repräsentationen wären weniger aussagekräftig, da das Modell nicht gelernt hat, die feinen Unterschiede zwischen relevanten und irrelevanten Inhalten zu erfassen.
- Bei der Abfrage würden möglicherweise viele irrelevante Passagen zurückgegeben, was die Qualität und Nutzbarkeit des Systems beeinträchtigt.

Die Einbeziehung negativer Paare ist daher entscheidend, um eine hohe Retrieval-Qualität und Unterscheidungsfähigkeit zwischen relevanten und irrelevanten Inhalten zu erreichen.





****************************************************************************************
****************************************************************************************




