Skip to content

MichaelSeitz98/Multimodal-Deep-Fake-Detection

Repository files navigation

Erzeugung und Detektion multimodaler Deepfakes bei Online Rezensionen

Dieses Projekt beschäftigt sich mit der Erkennung von gefälschten Bewertungen (Fake-Reviews) auf Online-Plattformen. Hierbei wird ein multimodaler Ansatz verfolgt, der auf den verschiedenen Datenmodalitäten Text, Bild und tabellarische Metadaten basiert.

Architektur 🚧💡

it-artefakt

Wichtige Notebooks 📓

  1. nb_generate_dataset.ipynb: In diesem Notebook werden relevante Informationen aus den Daten extrahiert, verarbeiten, Daten herausgefiltert. Als Resultat wird der Basissätze real_base_sent_reduced.csv generiert.

  2. nb_generate_deepfakes.ipynb: Auf Basis der Kategorie aus Notebook 1 werden hier auf allen Modalitäten Fake-Reviews generiert. Hier werden der echte Datensatz base_....csv und der gefälschte Datensatz fake_base_gpt_3_... zusammengeführt zu merged_fake_real.csv. Dieser Datensatz dient als neue Ausgangsbasis für die Detektion.

  3. nb_feature_extraction.ipynb: Hier werden die Features für alle Modalitäten extrahiert und im Datensatz features_enrichted[..].csv gespeichert. Dieser Datensatz wird für die Detektion herangezogen.

  4. nb_fake_detection.ipnyb: Zuerst wird der Datensatz in Trainings-, Validierungs- und Testdatensatz aufgeteilt (detection_train.csv, detection_val.csv und detection_test.csv). Anschließend werden XGBoost, Random Forest und TabNet trainiert und die Hyperparameter anhand des Validierungsdatensatzes optimiert. Abschließend wird das Modell evaluiert.

  5. nb_generated_gpt3_finetune_datasets.ipynb: In diesem Notebook werden verschiedene GPT3 Finetunes vorbereitet und dafür benötigte Datensätze erzeugt.

  6. nb_frontend_showcase.ipynb: Hier für die Präsentation anhand einer prototypischen Frontend das Artefakt vorgestellt. Durch Auführen aller Zellen, kann die Frontendanwendung gestartet werden. Zum einen besteht diese aus einem Quiz: "Fake oder Echt", worin man testen kann ob man selbst erkennt ob es sich um eine Deepfake oder um eine echte Review handelt. Der zweite Teil der Frontend-Anwendung "Generierung mulitmodaler Deepfakes" verdeutlicht wie einfach multimodale Deepfakes mittels generativer KI erstellt werden können. Dies verdeutlich die (zukünftige) Relevanz von multimodalen Detektionsmethoden.

Wichtige Datensätze 📁

Die bedeutenden Datensätze sind im Order abgelegt 01_Data/data_cleaned_processed/ abgelegt. Die rohe (und leicht vorverarbeitete) Datensätz unter 01_Data/raw_data/. Für die Finetunes verwendeten Datensätze sind in 01_Data/gpt3_finetunes abgelegt.

  1. real_base_sent_reduced.csv: enthält Informationen von 704 echten multimodalen (Text, Bild, Metainformationen) echten Google Maps Reviews, zufällig ausgewählt aus über ca. 9000 multimodalen Reviews von l.01_Data\raw_data\dataset_weitere_forschung_relCols.csv Der Datensatz wurde schon auf wesentliche Spalten reduziert und wird im Notebook nb_generate_dataset.ipynb generiert.

  2. fake_gpt3_all_finetunes_sent__dalle_tab.csv: bildet die Fake-Reviews ab, alle Modalitäten mit unterschiedlichen Technologien erzeugt und als Spalte angehängt (GPT3 Finetune, DALL-E-2, CTGAN und Faker genutzt). Wird in Notebook nb_generate_deepfakes.ipynb erzeugt. Darüber lässt sich auch auf die künstliche genierten Bilder zugreifen. Hier sind auch die Ergebnisse der verschiendeenen Finetune-Varianten enthalten.

  3. base_for_feature_extraction.csv: bildet den zusammengesetzten Datensatz aus 704 multimodalen Fakes und 704 Echten Reviews ab, mit URL zu den echten und gefakten Bildern. Ist Grundlage für Feature Extraction und Detektion. Darüber lässt sich auch auf die künstliche genierten Bilder zugreifen. Als Text wird dazu die Finetune-Variante FT v4 verwendet.

  4. features_enriched_tab_img_text.csv: ist mit den extrahierten Features aller Modalitäten angereichert. Wird im Notebook nb_feature_extraction.ipynb erstellt. Nach einigen kleineren preprocessing Schritten nochmals in Form von features_enriched_tab_img_text_preproc.csv abgespeichert. Bildet die Basis für den Data Split bzw. die Detektion.

  5. Datensätze für den Data Split:

  • detection_train.csv
  • detection_test.csv
  • detection_val.csv

Es ist wichtig, dass alle Modelle und alle Modalitäten immer auf den gleichen Daten trainiert, getuned und evaluiert werden. Deshalb werden Datensätze mit 80:20 Split Train_Val:Test und nochmals 80:20 Split Train:Val erzeugt. Zu Beginn von Notebook nb_fake_detection.ipnyb werden diese abgespeichert.

  1. results_image_classifier.csv: Dort ist die separate Auswertung des alternativen "abgeschlossenen Bildklassifikator-Ansatzes" ist unter aus dem Notebook nb_generated_gpt3_finetune_datasets.ipynb abgespeichert

Weitere Informationen zur Handhabung ❓

  • Die künstlich generierten Bilder von DALL-E-2 können über die Datensätze base_for_feature_extraction.csv sowie fake_gpt3_all_finetunes_sent__dalle_tab.csv abgerufen werden. Um das zu ermöglichen sind die Bilder im Ordner 02_Images/ gehostet.
  • Die rohe Daten mit den unverarbeiteten Google Maps Reviews finden sich im Ordner 01_Data/raw_data. Je nach Kategorie (Restaurant,Hotel und Aktivität) findet sich auch eine Auflistung alle potenziell verfügbaren Spalten, z.B. Hier alle Spalten der gescrapten Aktivitäten.
  • Es wurden mehrere Varianten von GPT3 Finetunes entwickelt und auf den Datensatz angewendet. Die hierfür benötigte Datensätze (inkl. Prompt und Prompt-Completions) sind unter 01_Data/finetuning/ abgespeichert.
  • Die SHAP Graphiken sind im Ordner 02_Images/graphics abgelegt,
  • Visualisierungen des Bild-Features (durch Aktive Maximierung-Technologie) in 02_Images/visualizations_image_features
  • Einige nicht direkt verwendete Dateien, die evtl. für zukünftige Untersuchungen relevant bleiben könnten, sind im Ordner 09_outdated_archived_or_rejected_approaches abgelegt. Darunter fallen auch Ansätze mit anderen Technologien (Stable Diffusion, GPT-2, GPT-3.5 Turbo, AutoTrain), die letztendlich nicht verwendet wurden. Außerdem ist dort ein gescrapter Datensatz multimodaler Amazon-Reviews abgelegt. Ergebnisse von Zwischenschritte sind teilweise ebenfalls dort abgelegt.
  • comparison_finetune_variations_50sample.xlsx stellt einen übersichtlich für den Vergleich der Finetunes FT2-4dar (Anmerkung: FT3 in zwei Versionen, 3.2 auf Basis von 3.1 weitertrainiert)

Ergebnisse 📊

Die Ergebnisse der vergleichenden Untersuchung in Abhängigkeit der Modalitäten und der drei verwendeten ML-Methoden XGBoost, Random Forest und TabNet:

heatmap

Demo-Anwendung 👨‍💻

Zum Starten der Demoanwendung: Alle Zellen des Notebooks nb_frontend_showcase.ipynb ausführen. Für den "Ein-Klick-Deepfake-Generator" noch den eigenen OpenAI-Key reinladen.

Ein-Klick-Deepfake-Generator
demo_one_click_deepfake_generator.mp4

Demo-Anwendung zeigt nicht das finegetunte Modell, welches tatsächlich für die Textgenerieung des Datensatzes verwendet wurde, sondern ein abgewandelter, weniger trainierter Finetune davon.

Echt-oder-Fake-Quiz
demo_quiz.mp4

Erklärbare Vorhersagen mit SHAP-Analyse 💡

Für eine detaillierte Analyse wurden die Features für jede Modalität und Modalitätskombination mittels SHAP am Beispiel des XGBoost-Verfahren analysiert. Einige Plots sind hier aufgelistet:

Text

Text Modalität

Tabellarisch

Tab Modalität

Bild

Img Modalität

Kombination aus Tab + Text

Tab + Text Modalität

Kombination aus Tab + Img

Tab + Img Modalität

Alle Modalitäten

Tab + Text + Img Modalität

About

Multimodal Review Generation and Detection

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published