Π˜Π·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° пСрсонализирани систСми Π·Π° ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΠΊΠΈ с TensorFlow πŸ’»

Π—Π΄Ρ€Π°Π²Π΅ΠΉΡ‚Π΅! ΠšΠ°Ρ‚ΠΎ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΈ, трябва Π΄Π° стС забСлязали ΠΊΠ°ΠΊ Ρ‚Π΅Π·ΠΈ уСбсайтовС ΠΈ прилоТСния ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π²Π°Ρ‚ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈ, статии ΠΈΠ»ΠΈ Π²ΠΈΠ΄Π΅ΠΎΠΊΠ»ΠΈΠΏΠΎΠ²Π΅, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π²ΠΈ харСсат въз основа Π½Π° ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½ΠΎΡ‚ΠΎ Π²ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅.

Π’Π΅Π·ΠΈ ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΠΊΠΈ Π½Π΅ са ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ, Π° сС Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Ρ‚ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° слоТни Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΈ, извСстни ΠΊΠ°Ρ‚ΠΎ систСми Π·Π° ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΠΊΠΈ.

БистСма Π·Π° ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΠΊΠΈ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π° ΠΌΠΈΠ½Π°Π»ΠΎΡ‚ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, прСдпочитания ΠΈ интСрСси Π½Π° потрСбитСля, Π·Π° Π΄Π° ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄ΠΈ Π±ΡŠΠ΄Π΅Ρ‰ΠΎΡ‚ΠΎ ΠΈΠΌ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΈ Π΄Π° ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈ пСрсонализирани ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΠΊΠΈ.

ΠŸΡ€Π΅Π· послСднитС Π³ΠΎΠ΄ΠΈΠ½ΠΈ систСмитС Π·Π° ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΠΊΠΈ сС ΠΏΡ€Π΅Π²ΡŠΡ€Π½Π°Ρ…Π° Π² Ρ€Π΅ΡˆΠ°Π²Π°Ρ‰ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΠ½Π»Π°ΠΉΠ½ бизнСси, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π΅Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½Π° Ρ‚ΡŠΡ€Π³ΠΎΠ²ΠΈΡ, ΠΌΠ΅Π΄ΠΈΠΈ ΠΈ социални ΠΌΡ€Π΅ΠΆΠΈ. Π’Π΅Π·ΠΈ систСми Π½Π΅ само ΠΏΠΎΠ΄ΠΎΠ±Ρ€ΠΈΡ…Π° потрСбитСлското изТивяванС Ρ‡Ρ€Π΅Π· прСдоставянС Π½Π° пСрсонализирано ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅, Π½ΠΎ ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° ΠΏΠΎΠΌΠΎΠ³Π½Π°Ρ…Π° Π½Π° бизнСса Π΄Π° ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚Π΅ си Ρ‡Ρ€Π΅Π· ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π°Π½Π΅ Π½Π° ангаТираността ΠΈ удовлСтворСността Π½Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΈΡ‚Π΅.

Π’ Ρ‚Π°Π·ΠΈ статия Ρ‰Π΅ ΠΏΡ€ΠΎΡƒΡ‡ΠΈΠΌ ΠΊΠ°ΠΊ Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌ пСрсонализирана систСма Π·Π° ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΠΊΠΈ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° TensorFlow.

πŸ’» Π’ΠΈΠ΄ΠΎΠ²Π΅ систСми Π·Π° ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΠΊΠΈ

TensorFlow Π΅ популярна Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° с ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΠΊΠΎΠ΄, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π΅Π½Π° ΠΎΡ‚ Google, която позволява Π½Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈΡ‚Π΅ лСсно Π΄Π° ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π·Π° машинно ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅. Π©Π΅ обсъдим ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈΡ‚Π΅ Π²ΠΈΠ΄ΠΎΠ²Π΅ систСми Π·Π° ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΠΊΠΈ ΠΈ Ρ‚Π΅Ρ…Π½ΠΈΡ‚Π΅ прилоТСния.

Има основно Ρ‚Ρ€ΠΈ Π²ΠΈΠ΄Π° систСми Π·Π° ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΠΊΠΈ:

  1. Π‘Π°Π·ΠΈΡ€Π°Π½Π° Π½Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ систСма Π·Π° ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΠΊΠΈ
  2. БистСма Π·Π° ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΠΊΠΈ Π·Π° ΡΡŠΠ²ΠΌΠ΅ΡΡ‚Π½ΠΎ Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Π½Π΅
  3. Π₯ΠΈΠ±Ρ€ΠΈΠ΄Π½Π° систСма Π·Π° ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΠΊΠΈ

🎯 Π‘Π°Π·ΠΈΡ€Π°Π½Π° Π½Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ систСма Π·Π° ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΠΊΠΈ

БистСма Π·Π° ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΠΊΠΈ, Π±Π°Π·ΠΈΡ€Π°Π½Π° Π½Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅, ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π²Π° Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ са ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ Π½Π° Ρ‚Π΅Π·ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ потрСбитСлят ΠΏΡ€Π΅Π΄ΠΈ Ρ‚ΠΎΠ²Π° Π΅ харСсал ΠΈΠ»ΠΈ с ΠΊΠΎΠΈΡ‚ΠΎ Π΅ взаимодСйствал. БистСмата Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π° Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΈΡ‚Π΅ Π½Π° Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅, към ΠΊΠΎΠΈΡ‚ΠΎ потрСбитСлят Π΅ проявил интСрСс, ΠΊΠ°Ρ‚ΠΎ тСхния ΠΆΠ°Π½Ρ€, Ρ‚Π΅ΠΌΠ° ΠΈΠ»ΠΈ Π°Π²Ρ‚ΠΎΡ€, ΠΈ ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π²Π° Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ сподСлят ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΈ.

НапримСр, Π°ΠΊΠΎ Π΄Π°Π΄Π΅Π½ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» Π΅ Π³Π»Π΅Π΄Π°Π» няколко Скшън Ρ„ΠΈΠ»ΠΌΠ° Π½Π° стрийминг ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°, систСмата Π·Π° ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΠΊΠΈ, Π±Π°Π·ΠΈΡ€Π°Π½Π° Π½Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅, Ρ‰Π΅ ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π° ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ Скшън Ρ„ΠΈΠ»ΠΌΠΈ въз основа Π½Π° ΠΆΠ°Π½Ρ€Π°.

🎯 БистСма Π·Π° ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΠΊΠΈ Π·Π° ΡΡŠΠ²ΠΌΠ΅ΡΡ‚Π½ΠΎ Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Π½Π΅

БистСмитС Π·Π° ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΠΊΠΈ Π·Π° ΡΡŠΠ²ΠΌΠ΅ΡΡ‚Π½ΠΎ Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Π½Π΅ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°Ρ‚ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° мноТСство ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Ρ‚ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π² Ρ‚Π΅Ρ…Π½ΠΈΡ‚Π΅ прСдпочитания ΠΈ интСрСси. Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° систСмата ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π²Π° Π°Ρ€Ρ‚ΠΈΠΊΡƒΠ»ΠΈ Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» въз основа Π½Π° прСдпочитанията Π½Π° Π΄Ρ€ΡƒΠ³ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ с ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ интСрСси.

НапримСр, Π°ΠΊΠΎ Π΄Π²Π°ΠΌΠ° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ ΠΈΠΌΠ°Ρ‚ сходни интСрСси ΠΈ прСдпочитания, систСмата Ρ‰Π΅ ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π° Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ Π΅Π΄ΠΈΠ½ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» Π΅ харСсал Π½Π° другия ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π».

🎯 Π₯ΠΈΠ±Ρ€ΠΈΠ΄Π½Π° систСма Π·Π° ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΠΊΠΈ

Π₯ΠΈΠ±Ρ€ΠΈΠ΄Π½ΠΈΡ‚Π΅ систСми Π·Π° ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΠΊΠΈ ΡΡŠΡ‡Π΅Ρ‚Π°Π²Π°Ρ‚ силнитС страни Π½Π° систСмитС Π·Π° ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΠΊΠΈ Π·Π° Π±Π°Π·ΠΈΡ€Π°Π½ΠΎ Π½Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅ ΠΈ ΡΡŠΠ²ΠΌΠ΅ΡΡ‚Π½ΠΎ Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Π½Π΅, Π·Π° Π΄Π° прСдоставят ΠΏΠΎ-Ρ‚ΠΎΡ‡Π½ΠΈ ΠΈ пСрсонализирани ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΠΊΠΈ. БистСмата Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π° ΠΊΠ°ΠΊΡ‚ΠΎ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΈΡ‚Π΅ Π½Π° Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ‚Π΅, с ΠΊΠΎΠΈΡ‚ΠΎ потрСбитСлят Π΅ взаимодСйствал, Ρ‚Π°ΠΊΠ° ΠΈ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ с ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ прСдпочитания, Π·Π° Π΄Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΠΊΠΈ.

πŸ”§ Π˜Π·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° систСма Π·Π° ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΠΊΠΈ, Π±Π°Π·ΠΈΡ€Π°Π½Π° Π½Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅, с TensorFlow

Π’ Ρ‚ΠΎΠ·ΠΈ Ρ€Π°Π·Π΄Π΅Π» Ρ‰Π΅ дСмонстрирамС ΠΊΠ°ΠΊ Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌ систСма Π·Π° ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΠΊΠΈ, Π±Π°Π·ΠΈΡ€Π°Π½Π° Π½Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ TensorFlow. Π©Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅Π½ Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ Π·Π° Ρ„ΠΈΠ»ΠΌΠΈ ΠΈ Ρ‰Π΅ ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π²Π°ΠΌΠ΅ Ρ„ΠΈΠ»ΠΌΠΈ въз основа Π½Π° Ρ‚Π΅Ρ…Π½ΠΈΡ‚Π΅ ΠΆΠ°Π½Ρ€ΠΎΠ²Π΅.

πŸ”‘ Π‘Ρ‚ΡŠΠΏΠΊΠ° 1: Π˜ΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€Π°ΠΉΡ‚Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ Π·Π°Ρ€Π΅Π΄Π΅Ρ‚Π΅ Π΄Π°Π½Π½ΠΈ

Π—Π° Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌ систСма Π·Π° ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΠΊΠΈ, Π±Π°Π·ΠΈΡ€Π°Π½Π° Π½Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ TensorFlow, трябва Π΄Π° ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€Π°ΠΌΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ ΠΈ Π΄Π° Π·Π°Ρ€Π΅Π΄ΠΈΠΌ Π½Π°Π±ΠΎΡ€Π° ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ. Π©Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° Π½Π° pandas Π·Π° Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅ ΠΈ TensorFlow Π·Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΌΠΎΠ΄Π΅Π»Π°.

import pandas as pd
import tensorflow as tf

# Load the data
movies_df = pd.read_csv('movies.csv')

πŸ”‘ Π‘Ρ‚ΡŠΠΏΠΊΠ° 2: ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅

Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° трябва Π΄Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΈΠΌ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ Π΄Π°Π½Π½ΠΈΡ‚Π΅ ΠΈ Π΄Π° ΠΈΠ·Π²Π»Π΅Ρ‡Π΅ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π’ Ρ‚ΠΎΠ·ΠΈ случай Ρ‰Π΅ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅ΠΌ ΠΆΠ°Π½Ρ€ΠΎΠ²Π΅Ρ‚Π΅ Π½Π° Ρ„ΠΈΠ»ΠΌΠΈΡ‚Π΅ ΠΈ Ρ‰Π΅ създадСм Π΅Π΄Π½ΠΎ Π³ΠΎΡ€Π΅Ρ‰ΠΎ ΠΊΠΎΠ΄ΠΈΡ€Π°Π½Π΅ Π·Π° всСки ΠΆΠ°Π½Ρ€.

# Preprocess the data
genres = movies_df['genres'].str.get_dummies('|')

πŸ”‘ Π‘Ρ‚ΡŠΠΏΠΊΠ° 3: Π˜Π·Π³Ρ€Π°Π΄Π΅Ρ‚Π΅ ΠΌΠΎΠ΄Π΅Π»Π°

Π©Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ Keras API, ΠΊΠΎΠΉΡ‚ΠΎ Π΅ API ΠΎΡ‚ високо Π½ΠΈΠ²ΠΎ, ΠΊΠΎΠΉΡ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΈ Π²ΡŠΡ€Ρ…Ρƒ TensorFlow, Π·Π° Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌ ΠΌΠΎΠ΄Π΅Π»Π°. Π©Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ показатСля Π·Π° сходство ΠΏΠΎ косинус, Π·Π° Π΄Π° изчислим сходството ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ„ΠΈΠ»ΠΌΠΈΡ‚Π΅ въз основа Π½Π° Ρ‚Π΅Ρ…Π½ΠΈΡ‚Π΅ ΠΆΠ°Π½Ρ€ΠΎΠ²Π΅.

# Build the model
input_shape = genres.shape[1]
model = tf.keras.models.Sequential([
    tf.keras.layers.Dense(64, activation='relu', input_shape=(input_shape,)),
    tf.keras.layers.Dense(32, activation='relu'),
    tf.keras

.layers.Dense(input_shape, activation='softmax') ])
model.compile(optimizer='adam', loss='categorical_crossentropy')

πŸ”‘ Π‘Ρ‚ΡŠΠΏΠΊΠ° 4: ΠžΠ±ΡƒΡ‡Π΅Ρ‚Π΅ ΠΌΠΎΠ΄Π΅Π»Π°

Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌ ΠΌΠΎΠ΄Π΅Π»Π°, Π²Π΅Ρ‡Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π³ΠΎ ΠΎΠ±ΡƒΡ‡ΠΈΠΌ Π²ΡŠΡ€Ρ…Ρƒ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π΅Π½ΠΈΡ‚Π΅ Π΄Π°Π½Π½ΠΈ. Π©Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° fit(), Π·Π° Π΄Π° ΠΎΠ±ΡƒΡ‡ΠΈΠΌ ΠΌΠΎΠ΄Π΅Π»Π° Π·Π° 10 Π΅ΠΏΠΎΡ…ΠΈ.

# Train the model
model.fit(genres, genres, epochs=10)

πŸ”‘ Π‘Ρ‚ΡŠΠΏΠΊΠ° 5: НаправСтС ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΠΊΠΈ

Π‘Π»Π΅Π΄ ΠΊΠ°Ρ‚ΠΎ ΠΎΠ±ΡƒΡ‡ΠΈΠΌ ΠΌΠΎΠ΄Π΅Π»Π°, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π³ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅, Π·Π° Π΄Π° ΠΏΡ€Π°Π²ΠΈΠΌ ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΠΊΠΈ. Π©Π΅ ΠΈΠ·Π±Π΅Ρ€Π΅ΠΌ Ρ„ΠΈΠ»ΠΌ ΠΎΡ‚ Π½Π°Π±ΠΎΡ€Π° ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ ΠΈ Ρ‰Π΅ изчислим косинусното сходство ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ‚ΠΎΠ·ΠΈ Ρ„ΠΈΠ»ΠΌ ΠΈ всички останали Ρ„ΠΈΠ»ΠΌΠΈ Π² Π½Π°Π±ΠΎΡ€Π° ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ. Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° Ρ‰Π΅ ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π°ΠΌΠ΅ 5-Ρ‚Π΅ Π½Π°ΠΉ-Π΄ΠΎΠ±Ρ€ΠΈ Ρ„ΠΈΠ»ΠΌΠ° въз основа Π½Π° Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΠΈΡ‚Π΅ ΠΈΠΌ Π·Π° сходство.

# Make recommendations
movie_idx = 0
similarities = tf.keras.losses.cosine_similarity(model(genres[movie_idx:movie_idx+1]), genres)
similarities = similarities.numpy().flatten()
similarities_argsort = similarities.argsort()[::-1]
top_similar = similarities_argsort[1:6]

print(f"Top 5 recommended movies for {movies_df.iloc[movie_idx]['title']}:")
for idx in top_similar:
    print(f"- {movies_df.iloc[idx]['title']}")

Π•Ρ‚ΠΎ цСлия ΠΊΠΎΠ΄ΠΎΠ² Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ Π·Π° всички ΡΡ‚ΡŠΠΏΠΊΠΈ:

import pandas as pd
import tensorflow as tf

# Load the data
movies_df = pd.read_csv('movies.csv')
# Preprocess the data
genres = movies_df['genres'].str.get_dummies('|')
# Build the model
input_shape = genres.shape[1]
model = tf.keras.models.Sequential([
    tf.keras.layers.Dense(64, activation='relu', input_shape=(input_shape,)),
    tf.keras.layers.Dense(32, activation='relu'),
    tf.keras.layers.Dense(input_shape, activation='softmax')
])
model.compile(optimizer='adam', loss='categorical_crossentropy')
# Train the model
model.fit(genres, genres, epochs=10)
# Make recommendations
movie_idx = 0
similarities = tf.keras.losses.cosine_similarity(model(genres[movie_idx:movie_idx+1]), genres)
similarities = similarities.numpy().flatten()
similarities_argsort = similarities.argsort()[::-1]
top_similar = similarities_argsort[1:6]
print(f"Top 5 recommended movies for {movies_df.iloc[movie_idx]['title']}:")
for idx in top_similar:
    print(f"- {movies_df.iloc[idx]['title']}")

Π’ΠΎΠ·ΠΈ ΠΊΠΎΠ΄ΠΎΠ² Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Π·Π°Ρ€Π΅ΠΆΠ΄Π° Π½Π°Π±ΠΎΡ€Π° ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ Π·Π° Ρ„ΠΈΠ»ΠΌΠΈ, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π° ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ Π΄Π°Π½Π½ΠΈΡ‚Π΅ Ρ‡Ρ€Π΅Π· ΠΈΠ·Π²Π»ΠΈΡ‡Π°Π½Π΅ Π½Π° ΠΆΠ°Π½Ρ€ΠΎΠ²Π΅Ρ‚Π΅ ΠΈ създаванС Π½Π° Π΅Π΄Π½ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ ΠΊΠΎΠ΄ΠΈΡ€Π°Π½Π΅, ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π° ΠΌΠΎΠ΄Π΅Π»Π° с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Keras API, ΠΎΠ±ΡƒΡ‡Π°Π²Π° ΠΌΠΎΠ΄Π΅Π»Π° Π·Π° 10 Π΅ΠΏΠΎΡ…ΠΈ ΠΈ накрая ΠΏΡ€Π°Π²ΠΈ ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΠΊΠΈ Ρ‡Ρ€Π΅Π· изчисляванС косинусното сходство ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΈΠ·Π±Ρ€Π°Π½ Ρ„ΠΈΠ»ΠΌ ΠΈ всички Π΄Ρ€ΡƒΠ³ΠΈ Ρ„ΠΈΠ»ΠΌΠΈ Π² Π½Π°Π±ΠΎΡ€Π° ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ.

πŸ’‘ ПослСдни мисли

Π’ Ρ‚Π°Π·ΠΈ статия ΠΎΠ±ΡΡŠΠ΄ΠΈΡ…ΠΌΠ΅ ваТността Π½Π° систСмитС Π·Π° ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΠΊΠΈ Π² Π΅Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½Π°Ρ‚Π° Ρ‚ΡŠΡ€Π³ΠΎΠ²ΠΈΡ, ΠΌΠ΅Π΄ΠΈΠΈΡ‚Π΅ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈ индустрии. Π‘ΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° ΠΎΠ±ΡΡŠΠ΄ΠΈΡ…ΠΌΠ΅ Ρ‚Ρ€ΠΈΡ‚Π΅ основни Ρ‚ΠΈΠΏΠ° систСми Π·Π° ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΠΊΠΈ: Π±Π°Π·ΠΈΡ€Π°Π½ΠΈ Π½Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ, ΡΡŠΠ²ΠΌΠ΅ΡΡ‚Π½ΠΎ Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Π½Π΅ ΠΈ Ρ…ΠΈΠ±Ρ€ΠΈΠ΄Π½ΠΈ систСми Π·Π° ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΠΊΠΈ.

Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° дСмонстрирахмС ΠΊΠ°ΠΊ Π΄Π° ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΠΌ систСма Π·Π° ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΠΊΠΈ, Π±Π°Π·ΠΈΡ€Π°Π½Π° Π½Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ TensorFlow. Π˜Π·ΠΏΠΎΠ»Π·Π²Π°Ρ…ΠΌΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅Π½ Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ Π·Π° Ρ„ΠΈΠ»ΠΌΠΈ ΠΈ ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π°Ρ…ΠΌΠ΅ Ρ„ΠΈΠ»ΠΌΠΈ въз основа Π½Π° Ρ‚Π΅Ρ…Π½ΠΈΡ‚Π΅ ΠΆΠ°Π½Ρ€ΠΎΠ²Π΅. ΠŸΡ€Π΅ΠΌΠΈΠ½Π°Ρ…ΠΌΠ΅ ΠΏΡ€Π΅Π· ΡΡ‚ΡŠΠΏΠΊΠΈΡ‚Π΅ Π½Π° ΠΈΠΌΠΏΠΎΡ€Ρ‚ΠΈΡ€Π°Π½Π΅ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅, ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΌΠΎΠ΄Π΅Π»Π°, ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π½Π° ΠΌΠΎΠ΄Π΅Π»Π° ΠΈ изготвянС Π½Π° ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΠΊΠΈ.

НадявамС сС, Ρ‡Π΅ Ρ‚Π°Π·ΠΈ статия Π²ΠΈ Π΅ Π΄Π°Π»Π° ΠΏΠΎ-Π΄ΠΎΠ±Ρ€ΠΎ Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π½Π° систСмитС Π·Π° ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΠΊΠΈ ΠΈ ΠΊΠ°ΠΊ Π΄Π° Π³ΠΈ ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΡ‚Π΅ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° TensorFlow. ЧСстита сграда!

Π•Ρ‚ΠΎ някои ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΡ†ΠΈ, с ΠΊΠΎΠΈΡ‚ΠΎ сС консултирах, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ пиша Ρ‚Π°Π·ΠΈ статия:

  1. IBM Developer β€” БистСми Π·Π° ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΠΊΠΈ: https://developer.ibm.com/technologies/artificial-intelligence/articles/recommendation-system-overview/
  2. Neal Lathia β€” Π’ΠΈΠ΄ΠΎΠ²Π΅ Π΄Π²ΠΈΠ³Π°Ρ‚Π΅Π»ΠΈ Π·Π° ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΠΊΠΈ ΠΈ ΠΊΠ°ΠΊ Π΄Π° Π³ΠΈ ΠΈΠ·Π³Ρ€Π°Π΄ΠΈΡ‚Π΅: https://towardsdatascience.com/types-of-recommendation-engines-and-how-to-build-them-92af963bfcf5
  3. ΠœΠ°ΠΉΡΡ‚ΠΎΡ€ΡΡ‚Π²ΠΎ Π² ΠΌΠ°ΡˆΠΈΠ½Π½ΠΎΡ‚ΠΎ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ β€” БистСми Π·Π° ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π²Π°Π½Π΅, Π±Π°Π·ΠΈΡ€Π°Π½ΠΈ Π½Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅: https://machinelearningmastery.com/content-based-recommender-systems-in-python/
  4. ΠœΠ°ΠΉΡΡ‚ΠΎΡ€ΡΡ‚Π²ΠΎ Π² ΠΌΠ°ΡˆΠΈΠ½Π½ΠΎΡ‚ΠΎ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ β€” БистСми Π·Π° ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΠΊΠΈ Π·Π° ΡΡŠΠ²ΠΌΠ΅ΡΡ‚Π½ΠΎ Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π°Π½Π΅: https://machinelearningmastery.com/collaborative-filtering-for-recommendations-in-python/
  5. ΠœΠ°ΠΉΡΡ‚ΠΎΡ€ΡΡ‚Π²ΠΎ Π² ΠΌΠ°ΡˆΠΈΠ½Π½ΠΎΡ‚ΠΎ ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅ β€” Π₯ΠΈΠ±Ρ€ΠΈΠ΄Π½ΠΈ ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡ΠΈΡ‚Π΅Π»Π½ΠΈ систСми: https://machinelearningmastery.com/hybrid-recommender-systems-in-python/
  6. Rajalingappaa Shanmugamani β€” Π£Ρ€ΠΎΠΊ Π·Π° TensorFlow: Π˜Π·Π³Ρ€Π°Π΄Π΅Ρ‚Π΅ систСма Π·Π° ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΠΊΠΈ: https://heartbeat.fritz.ai/build-your-own-recommendation-system-with-tensorflow-cf8b6cfd1c7a
  7. ΠœΠ°Ρ€Ρ‚ΠΈΠ½ Абади ΠΈ Π΄Ρ€. β€” TensorFlow: БистСма Π·Π° ΡˆΠΈΡ€ΠΎΠΊΠΎΠΌΠ°Ρ‰Π°Π±Π½ΠΎ машинно ΠΎΠ±ΡƒΡ‡Π΅Π½ΠΈΠ΅: https://www.usenix.org/system/files/conference/osdi16/osdi16-abadi.pdf

Надявам сС Ρ‚Π°Π·ΠΈ статия Π΄Π° Π²ΠΈ Π΅ Π±ΠΈΠ»Π° ΠΏΠΎΠ»Π΅Π·Π½Π°. Π‘Π»Π°Π³ΠΎΠ΄Π°Ρ€ΠΈΠΌ Π²ΠΈ, Ρ‡Π΅ ΠΎΡ‚Π΄Π΅Π»ΠΈΡ…Ρ‚Π΅ Π²Ρ€Π΅ΠΌΠ΅ Π΄Π° Π³ΠΎ ΠΏΡ€ΠΎΡ‡Π΅Ρ‚Π΅Ρ‚Π΅.

Ако Π²ΠΈ Π΅ харСсала Ρ‚Π°Π·ΠΈ статия, ΠΈΠ·Ρ…Π²ΡŠΡ€Π»Π΅Ρ‚Π΅ ΠΌΠ°Π»ΠΊΠΎ срСдна любов...πŸ‘Ρ€ΡŠΠΊΠΎΠΏΠ»ΡΡΠΊΠ°Π½Π΅,πŸ’¬ΠΊΠΎΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°ΠΉΡ‚Π΅ ΠΈ Π½Π΅ забравяйтС Π΄Π°πŸ‘€+ слСдватС.

Кой съм Π°Π·? Аз съм Π“Π΅ΠΉΠ± А, ΠΎΠΏΠΈΡ‚Π΅Π½ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ ΠΈ писатСл Π·Π° визуализация Π½Π° Π΄Π°Π½Π½ΠΈ с ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ дСсСтилСтиС ΠΎΠΏΠΈΡ‚ Π² SQL, Π°Π½Π°Π»ΠΈΠ· Π½Π° Π΄Π°Π½Π½ΠΈ ΠΈ AI. Π—Π°ΠΏΠ°Π»Π΅Π½ ΠΏΠΎ Ρ‚Π΅ΠΌΠΈ ΠΊΠ°Ρ‚ΠΎ Python, финанси ΠΈ визуализация Π½Π° Π΄Π°Π½Π½ΠΈ, станах Π΄ΠΎΠ²Π΅Ρ€Π΅Π½ глас Π² индустрията Π·Π° Π½Π°ΡƒΠΊΠ° Π·Π° Π΄Π°Π½Π½ΠΈ.

Π˜Π·Ρ‡Π°ΠΊΠ°ΠΉΡ‚Π΅ ΠΌΠ°Π»ΠΊΠΎ. Π—Π° Π΄Π° ΠΏΠΈΡˆΠ΅Ρ‚Π΅ Π² Medium ΠΈ Π΄Π° ΠΏΠ΅Ρ‡Π΅Π»ΠΈΡ‚Π΅ пасивСн Π΄ΠΎΡ…ΠΎΠ΄, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ Ρ‚Π°Π·ΠΈ Ρ€Π΅Ρ„Π΅Ρ€Π°Π»Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠ°, Π·Π° Π΄Π° станСтС Ρ‡Π»Π΅Π½.

Π‘ΡŠΠ΄Π΅Ρ‚Π΅ Π² ΠΊΡ€Π°ΠΊ с новоститС. с послСднитС Π½ΠΎΠ²ΠΈΠ½ΠΈ ΠΈ Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π² творчСското пространство Π½Π° AI β€” слСдСтС публикацията AI Genesis.