Найти Ρ‚Π΅ΠΌΡƒ
9852 подписчика

🌐 Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ эмбСдинги Π² NLP. ΠŸΡ€ΠΈΠ²Π΅Π΄ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹.


Π­ΠΌΠ±Π΅Π΄Π΄ΠΈΠ½Π³ΠΈ - это модСль, которая позволяСт ΠΏΡ€Π΅Π΄ΡΠΊΠ°Π·Π°Ρ‚ΡŒ Π±Π»ΠΈΠ·ΠΊΠΈΠ΅ ΠΏΠΎ смыслу слова, ΠΈΠ»ΠΈ слова ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‡Π°Ρ‰Π΅ всСго ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π»ΡΡŽΡ‚ΡΡ Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ.

ΠŸΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ эту модСль ΠΌΠΎΠΆΠ½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

ВСкст Π½ΡƒΠΆΠ½ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π° словосочСтания ΠΈΠ· Π½Π΅Ρ‡Π΅Ρ‚Π½ΠΎΠ³ΠΎ количСства слов. НапримСр 3 ΠΈΠ»ΠΈ 5 слов. Π­Ρ‚ΠΎ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Context Window.
На Π²Ρ…ΠΎΠ΄ ΠΌΠΎΠ΄Π΅Π»ΠΈ подаСтся Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ΅ слово ΠΈΠ· Context Window Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ one-hot Π²Π΅ΠΊΡ‚ΠΎΡ€Π°.
На Π²Ρ‹Ρ…ΠΎΠ΄ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠΎΠ΄Π°ΡŽΡ‚ΡΡ слова ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ΄ΡƒΡ‚ слСдом ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π΄ Π½ΠΈΠΌ. Для Context Windows = 3, это Π±ΡƒΠ΄ΡƒΡ‚ 2 one hot Π²Π΅ΠΊΡ‚ΠΎΡ€Π° (ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π΅ слово ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ слово), Π»ΠΈΠ±ΠΎ сумма этих 2Ρ… Π²Π΅ΠΊΡ‚ΠΎΡ€ΠΎΠ² (bag of words). Если Context Window Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π²Π½Ρ‹ΠΌ 5, Ρ‚ΠΎ слов Π±ΡƒΠ΄Π΅Ρ‚ 4, Π° Π½Π΅ 2.
Π—Π°Ρ‚Π΅ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π²ΠΈΠ½ΡƒΡ‚ΡŒ Context Window Π½Π° ΠΎΠ΄ΠΈΠ½ шаг ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΡ‹ создадим датасСт для обучСния. Π­Ρ‚ΠΎΡ‚ датасСт ΠΌΡ‹ ΠΏΠΎΠ΄Π°Π΄ΠΈΠΌ Π² Π°Π²Ρ‚ΠΎΠ΅Π½ΠΊΠΎΠ΄Π΅Ρ€ для обучСния.

Вакая модСль называСтся Skip Gram (Когда Π½Π° Π²Ρ…ΠΎΠ΄Π΅ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ΅ слово, Π° Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅ Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ Π΅Π³ΠΎ ΠΎΠΊΡ€ΡƒΠΆΠ°Π΅Ρ‚). CBOW - это Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ Π² модСль ΠΏΠΎΠ΄Π°Π΅ΠΌ Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ ΠΎΠΊΡ€ΡƒΠΆΠ°Π΅Ρ‚ слово, Π° Π½Π° Π²Ρ‹Ρ…ΠΎΠ΄Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ΅ слово.

Π Π°Π·ΠΌΠ΅Ρ€ Π²Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ слоя ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ слоя Ρ€Π°Π²Π΅Π½ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρƒ словаря. Π’Ρ…ΠΎΠ΄Π½ΠΎΠΉ слой ΠΈ скрытый слой ΠΊΠΎΠ΄ΠΈΡ€ΡƒΡŽΡ‚ слово. Π‘ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΉ слой ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡ€ΡƒΡŽΡ‚ слово. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ, Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ one hot Π²Π΅ΠΊΡ‚ΠΎΡ€Π° Π² эмбСддинг. А Π²Π΅ΠΊΡ‚ΠΎΡ€ эмбСдинга Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΌΠ΅Ρ‚Π½ΠΎ мСньшС, Ρ‡Π΅ΠΌ one-hot Π²Π΅ΠΊΡ‚ΠΎΡ€. Π­ΠΌΠ±Π΅Π΄ΠΈΠ½Π³ΠΎΠΌ называСтся ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° вСсов ΠΌΠ΅ΠΆΠ΄Ρƒ Π²Ρ…ΠΎΠ΄ΠΎΠΌ ΠΈ скрытым слоСм. Или значСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ Π½Π° скрытом слоС, ΠΏΡ€ΠΈ ΠΏΠΎΠ΄Π°Ρ‡Π΅ one-hot Π²Π΅ΠΊΡ‚ΠΎΡ€Π° слова Π² модСль.

Π­ΠΌΠ±Π΅Π΄Π΄ΠΈΠ½Π³, Π² дальнСйшСм ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π² классификатор, вмСсто Bag of words. ДСлаСтся это ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π‘Π΅Ρ€Π΅Ρ‚ΡŒΡΡ строка ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ слову ставятся индСксы ΠΈΠ· словоря. ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ΡΡ Π²Π΅ΠΊΡ‚ΠΎΡ€ индСксов.
Π—Π°Ρ‚Π΅ΠΌ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ слова, Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ эмбСдинг ΠΏΠΎ индСксу слова. ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ΡΡ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ Π²Π΅ΠΊΡ‚ΠΎΡ€ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ [ Π΄Π»ΠΈΠ½Π° строки ] X [ Ρ€Π°Π·ΠΌΠ΅Ρ€ эмбСдинга ]. НапримСр, 300 x 50.
ПослС этого, этот Π²Π΅ΠΊΡ‚ΠΎΡ€ Π½Π°Π΄ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π² классификатор. Π’.ΠΊ. ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΡƒΠΆΠ΅ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹Π΅ слои, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ свСрточныС сСти.
Π­Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΡƒΠΆΠ΅ новая нСйронная ΡΠ΅Ρ‚ΡŒ, которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π½Π° Π²Ρ…ΠΎΠ΄ индСксы слов, ΠΏΡ€Π΅Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΈΡ… Π² Π²Π΅ΠΊΡ‚ΠΎΡ€ эмбСдинга, Π° послС ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π² классификатор. И Π΄Π°Π½Π½ΡƒΡŽ ΡΠ΅Ρ‚ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡƒΡ‡Π°Ρ‚ΡŒ, Π² Ρ‚ΠΎΠΌ числС ΠΎΠ±ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈ эмбСдинг. МоТно Π²Π·ΡΡ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ΠΉ эмбСдинг, Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΡƒΡ‡ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ.

model = ai.CustomModel(
model_name = "Model_embedding_1",
input_shape = input_shape,
module = nn.Sequential(

nn.Embedding(10000, 50),

Transform_Flat(),

nn.Linear(300*50, 1024),
nn.ReLU(inplace=True),

nn.Linear(1024, 256),
nn.ReLU(inplace=True),

nn.Linear(256, output_shape[0]),
nn.Softmax(dim=-1),
),
)

🌐 Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ эмбСдинги Π² NLP. ΠŸΡ€ΠΈΠ²Π΅Π΄ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹.  Π­ΠΌΠ±Π΅Π΄Π΄ΠΈΠ½Π³ΠΈ - это модСль, которая позволяСт ΠΏΡ€Π΅Π΄ΡΠΊΠ°Π·Π°Ρ‚ΡŒ Π±Π»ΠΈΠ·ΠΊΠΈΠ΅ ΠΏΠΎ смыслу слова, ΠΈΠ»ΠΈ слова ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‡Π°Ρ‰Π΅ всСго ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π»ΡΡŽΡ‚ΡΡ Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ.
2 ΠΌΠΈΠ½ΡƒΡ‚Ρ‹