cbiehl / wwi18dsa-nlp

Natural Language Processing Lecture Repo
3 stars 0 forks source link

fake news detection #2

Open FatManWalking opened 3 years ago

FatManWalking commented 3 years ago

ein modell zur fake news detection, in Zusammenarbeit mit einem "truth finder" projekt bei Michael Spengler. https://github.com/FatManWalking/data-science-project

FatManWalking commented 3 years ago

Mitglieder: Miriam Lorenz, Florian Gemmer, Klemens Gerber, Björn Bulkens (ich)

Mlorenz12 commented 3 years ago

Hallo Clemens, wir haben uns zur Fake News Detection informiert und sind auf Transformermodelle gestoßen. Bevor wir uns näher damit beschäftigen, wollten wir erstmal fragen, ob du Transformer für unsere Anwendung sinnvoll findest. Wir würden einen Score generieren, den wir auf einer Website mit Voting kombinieren (Michaels Projekt).

Sag gerne mal, was du dazu denkst und ob unsere generelle Richtung passt.

cbiehl commented 3 years ago

Es gibt verschiedene Ansätze für die Formalisierung von Fake News Erkennung (keine einfache Aufgabe), aber in allen mir bekannten braucht man auch einen Classifier (z.B. Transformer). Wenn ich es richtig verstehe möchtet ihr es als binäre Klassifikation umsetzen. Wenn ihr es mit einem Voting-Mechanismus kombiniert ist das für mich in Ordnung. Darüber können wir gerne auch am Donnerstag sprechen. Interessant ist dabei natürlich welche Trainingsdaten genutzt werden und inwieweit der Score am Ende verständlich ist. Hier könnt ihr eine Fehleranalyse machen und evtl. die Attention Heads im trainierten Modell nutzen, um einzelne Ausgaben des Modells annähernd zu erklären (beispielhaftes Tool zur Betrachtung der Attention Scores: https://github.com/jessevig/bertviz).

Hier einige hoffentlich nützliche Links:

michael-spengler commented 3 years ago

related issue: https://github.com/michael-spengler/wwi18dsa-semester-6/issues/10

cbiehl commented 3 years ago

Hier die Hinweise zum "Einfrieren" der Transformer Layer in BERT. Bei Initialisierung des Modells kann man mit PyTorch folgendes ausführen (self.bert ist hier eine Instanz von BERTModel):

for param in self.bert.embeddings.parameters():
  param.requires_grad = False
  for param in self.bert.parameters():
    param.requires_grad = False
FatManWalking commented 3 years ago

Ich verlinke hier nochmal kurz ein Issue zum Github, weil ich mir sonst vorstellen kann, dass man es schnell übersieht: https://github.com/FatManWalking/truth-finder/issues/25#issue-947543126