Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära CBoW- och Skip-gram-modeller | Ordembeddingar
Introduktion till NLP

bookCBoW- och Skip-gram-modeller

Grundläggande förståelse för neurala nätverk rekommenderas för detta kapitel. Om du är obekant med ämnet, utforska gärna denna kurs:

Både CBoW- och Skip-gram-arkitekturer lär sig ordinbäddningar genom en neural nätverksstruktur som består av följande lager:

  • ett inmatningslager;
  • ett dolt lager;
  • ett utmatningslager.

Viktmatrisen mellan inmatnings- och dolt lager, betecknad som W1W^1 eller EE, fungerar som inbäddningsmatrisen. Varje rad i denna matris representerar en inbäddningsvektor för ett motsvarande ord, där den ii:te raden matchar det ii:te ordet i vokabulären.

Denna matris innehåller VV (vokabulärstorlek) inbäddningar, var och en av storlek NN, en dimension vi specificerar. Multiplikation av transponatet av denna matris (N×VN \times V matris) med en one-hot-kodad vektor (V×1V \times 1 vektor) hämtar inbäddningen för ett specifikt ord och producerar en N×1N \times 1 vektor.

Den andra viktmatrisen, mellan det dolda lagret och utgångslagret, har storleken N×VN \times V. Om man multiplicerar transponatet av denna matris (en V×NV \times N-matris) med det dolda lagrets N×1N \times 1-vektor erhålls en V×1V \times 1-vektor.

CBoW

Här följer ett exempel på användning av en CBoW-modell:

Först multipliceras transponatet av inbäddningsmatrisen med one-hot-vektorerna för kontextorden för att generera deras inbäddningar. Dessa inbäddningar summeras eller medelvärdesberäknas beroende på implementationen för att bilda en enda vektor. Denna vektor multipliceras med W2W^2-matrisen, vilket resulterar i en V×1V \times 1-vektor.

Slutligen passerar denna vektor genom softmax-aktiveringsfunktionen, vilket omvandlar den till en sannolikhetsfördelning där varje element representerar sannolikheten att ett vokabulärord är målordet.

Därefter beräknas förlusten och båda viktmatriserna uppdateras för att minimera denna förlust. Idealiskt vill vi att sannolikheten för målordet ska vara nära 1, medan sannolikheterna för alla andra ord närmar sig noll. Denna process upprepas för varje kombination av ett målord och dess kontextord.

När alla kombinationer har bearbetats är en epok slutförd. Vanligtvis tränas det neurala nätverket under flera epoker för att säkerställa noggrann inlärning. Slutligen kan raderna i den resulterande embedding-matrisen användas som våra word embeddings. Varje rad motsvarar vektorrepresentationen av ett specifikt ord i vokabulären och fångar effektivt dess semantiska egenskaper inom den tränade modellen.

Skip-gram

Låt oss nu titta på en skip-gram-modell:

Som du kan se är processen i stort sett liknande CBoW. Den börjar med att hämta embedding för målordet, vilket sedan används i det dolda lagret. Detta följs av att producera en V×1V \times 1-vektor i utgångslagret. Denna vektor, som erhålls genom att multiplicera målordets embedding med utgångslagrets viktmatris, omvandlas sedan av softmax-aktiveringsfunktionen till en sannolikhetsvektor.

Note
Notera

Även om denna resulterande sannolikhetsvektor är densamma för alla kontextord som är associerade med ett enskilt målord under ett enskilt träningssteg, beräknas förlusten för varje kontextord individuellt.

Förlusten för varje kontextord summeras, och viktmatriserna uppdateras därefter vid varje iteration för att minimera den totala förlusten. När det angivna antalet epoker är slutfört kan inbäddningsmatrisen användas för att erhålla ordbäddarna.

Note
Läs mer

I praktiken, särskilt med stora vokabulärer, kan softmax-funktionen vara alltför beräkningsintensiv. Därför används ofta approximationer såsom negativ sampling för att göra beräkningen mer effektiv.

1. Fyll i luckorna

2. Vad representerar den första viktmatrisen W1W^1 i det neurala nätverket?

question-icon

Fyll i luckorna

The architecture tries to predict the target word from its context.
The
architecture tries to predict the context of the target word.

Click or drag`n`drop items and fill in the blanks

question mark

Vad representerar den första viktmatrisen W1W^1 i det neurala nätverket?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. Kapitel 2

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Suggested prompts:

Can you explain the main difference between CBoW and Skip-gram?

How does the softmax function work in these models?

What is the purpose of the embeddings matrix in these architectures?

Awesome!

Completion rate improved to 3.45

bookCBoW- och Skip-gram-modeller

Svep för att visa menyn

Grundläggande förståelse för neurala nätverk rekommenderas för detta kapitel. Om du är obekant med ämnet, utforska gärna denna kurs:

Både CBoW- och Skip-gram-arkitekturer lär sig ordinbäddningar genom en neural nätverksstruktur som består av följande lager:

  • ett inmatningslager;
  • ett dolt lager;
  • ett utmatningslager.

Viktmatrisen mellan inmatnings- och dolt lager, betecknad som W1W^1 eller EE, fungerar som inbäddningsmatrisen. Varje rad i denna matris representerar en inbäddningsvektor för ett motsvarande ord, där den ii:te raden matchar det ii:te ordet i vokabulären.

Denna matris innehåller VV (vokabulärstorlek) inbäddningar, var och en av storlek NN, en dimension vi specificerar. Multiplikation av transponatet av denna matris (N×VN \times V matris) med en one-hot-kodad vektor (V×1V \times 1 vektor) hämtar inbäddningen för ett specifikt ord och producerar en N×1N \times 1 vektor.

Den andra viktmatrisen, mellan det dolda lagret och utgångslagret, har storleken N×VN \times V. Om man multiplicerar transponatet av denna matris (en V×NV \times N-matris) med det dolda lagrets N×1N \times 1-vektor erhålls en V×1V \times 1-vektor.

CBoW

Här följer ett exempel på användning av en CBoW-modell:

Först multipliceras transponatet av inbäddningsmatrisen med one-hot-vektorerna för kontextorden för att generera deras inbäddningar. Dessa inbäddningar summeras eller medelvärdesberäknas beroende på implementationen för att bilda en enda vektor. Denna vektor multipliceras med W2W^2-matrisen, vilket resulterar i en V×1V \times 1-vektor.

Slutligen passerar denna vektor genom softmax-aktiveringsfunktionen, vilket omvandlar den till en sannolikhetsfördelning där varje element representerar sannolikheten att ett vokabulärord är målordet.

Därefter beräknas förlusten och båda viktmatriserna uppdateras för att minimera denna förlust. Idealiskt vill vi att sannolikheten för målordet ska vara nära 1, medan sannolikheterna för alla andra ord närmar sig noll. Denna process upprepas för varje kombination av ett målord och dess kontextord.

När alla kombinationer har bearbetats är en epok slutförd. Vanligtvis tränas det neurala nätverket under flera epoker för att säkerställa noggrann inlärning. Slutligen kan raderna i den resulterande embedding-matrisen användas som våra word embeddings. Varje rad motsvarar vektorrepresentationen av ett specifikt ord i vokabulären och fångar effektivt dess semantiska egenskaper inom den tränade modellen.

Skip-gram

Låt oss nu titta på en skip-gram-modell:

Som du kan se är processen i stort sett liknande CBoW. Den börjar med att hämta embedding för målordet, vilket sedan används i det dolda lagret. Detta följs av att producera en V×1V \times 1-vektor i utgångslagret. Denna vektor, som erhålls genom att multiplicera målordets embedding med utgångslagrets viktmatris, omvandlas sedan av softmax-aktiveringsfunktionen till en sannolikhetsvektor.

Note
Notera

Även om denna resulterande sannolikhetsvektor är densamma för alla kontextord som är associerade med ett enskilt målord under ett enskilt träningssteg, beräknas förlusten för varje kontextord individuellt.

Förlusten för varje kontextord summeras, och viktmatriserna uppdateras därefter vid varje iteration för att minimera den totala förlusten. När det angivna antalet epoker är slutfört kan inbäddningsmatrisen användas för att erhålla ordbäddarna.

Note
Läs mer

I praktiken, särskilt med stora vokabulärer, kan softmax-funktionen vara alltför beräkningsintensiv. Därför används ofta approximationer såsom negativ sampling för att göra beräkningen mer effektiv.

1. Fyll i luckorna

2. Vad representerar den första viktmatrisen W1W^1 i det neurala nätverket?

question-icon

Fyll i luckorna

The architecture tries to predict the target word from its context.
The
architecture tries to predict the context of the target word.

Click or drag`n`drop items and fill in the blanks

question mark

Vad representerar den första viktmatrisen W1W^1 i det neurala nätverket?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 4. Kapitel 2
some-alt