Yerleştirme: Kategorik Giriş Verileri

Kategorik veri, belirli bir seçenek grubundan bir veya daha fazla ayrık öğeyi temsil eden giriş özelliklerini ifade eder. Örneğin, kullanıcının izlediği bir film dizisi, dokümandaki bir dizi kelime veya bir kişinin mesleği olabilir.

Kategorik veriler, en verimli şekilde az Tensörler aracılığıyla gösterilir. Bunlar, çok az sıfıra sahip elementler içeren tensörlerdir. Örneğin, bir film öneri modeli oluşturuyorsak, olası her filme benzersiz bir kimlik atayabilir ve ardından Şekil 3'te gösterildiği gibi, her bir kullanıcıyı, izledikleri filmlerin tarihsiz bir tenseri ile temsil edebiliriz.

Film önerisi sorunumuz için örnek bir giriş.

3. Şekil. Film önerisi sorunumuzla ilgili veriler.

Şekil 3'teki matrisin her bir satırı, kullanıcının film izleme geçmişini gösteren bir örnektir ve her kullanıcı olası tüm filmlerin yalnızca küçük bir kısmını izlediği için seyrek bir tensör olarak gösterilir. Son satır, film simgelerinin üzerinde gösterilen sözlük dizinlerini kullanan seyrek tensöre [1, 3, 999999] karşılık gelir.

Benzer şekilde, sözlükteki her kelime öneri örneğimizdeki filmlere benzer bir rol oynarken kelimeler, cümleler ve dokümanlar, seyrek vektörler olarak temsil edilebilir.

Makine öğrenimi sisteminde bu gibi beyanları kullanmak için her seyrek vektörü sayı vektörü olarak temsil edecek bir yönteme ihtiyacımız vardır. Böylece, benzer anlamlara sahip benzer öğelerin (film veya kelime) vektör alanında benzer mesafeler oluşur. Peki, bir kelimeyi sayı vektörü olarak nasıl temsil edersiniz?

En basit yöntem, sözlüğünüzdeki her kelime için bir düğüm içeren büyük bir giriş katmanı veya verilerinizde görünen her kelime için en az bir düğüm tanımlamaktır. Verilerinizde 500.000 benzersiz kelime görünüyorsa 500.000 vektör uzunluğunda bir kelimeyi temsil edebilir ve her bir kelimeyi vektörteki bir alana atayabilirsiniz.

Dizine 1247'ler için "at" atarsanız, ağınıza "at" beslemek için 1'i 1247. giriş düğümüne ve 0'ları diğer tüm düğümlere kopyalayabilirsiniz. Yalnızca bir dizinin sıfır olmayan bir değeri olduğu için bu tür temsile tek bir kodlama kodlaması denir.

Genellikle vektörünüz, daha büyük bir metin parçasındaki kelimelerin sayısını içerebilir. Bu, "kelime öbeği" temsili olarak bilinir. Bir kelime çantası vektöründe, 500.000 düğümün birkaçı sıfır olmayan bir değere sahip olacaktır.

Bununla birlikte, sıfır olmayan değerleri siz belirlersiniz. Ancak, kelime başına bir düğüm size çok az yetersiz giriş vektörü (sıfır olmayan değerlere sahip çok büyük vektörler) sağlar. Az temsillerde, bir modelin etkili bir şekilde öğrenmesini zorlaştıracak birkaç sorun vardır.

Ağın Boyutu

Büyük giriş vektörleri, bir nöral ağın aşırı büyük ağırlığı anlamına gelir. Sözlüğünüzde sözlüğünüzde M kelimeleri ve girişin ilk katmanında N düğümü varsa bu katman için eğitilecek MxN ağırlıklarınız var. Çok sayıda ağırlık olması daha fazla soruna neden olur:

  • Veri miktarı. Modelinizde ağırlıklar ne kadar fazlaysa etkili bir şekilde eğitmek için o kadar çok veriye ihtiyacınız olur.

  • İşlem tutarı. Daha fazla ağırlık, modeli eğitip kullanmak için daha fazla hesaplama gerekir. Donanımının kapasitesini aşmak çok kolay.

Vektörler Arasında Anlamlı İlişkiler Eksikliği

RGB kanallarının piksel değerlerini bir resim sınıflandırıcıya beslerseniz "yakın" değerler hakkında konuşmak mantıklı olur. Kırmızı mavi, hem semantik olarak hem de vektörler arasındaki geometrik mesafe açısından saf maviye yakındır. Ancak, 1247 numaralı dizinde 1 numaralı "ve" antelope için 50.430 numaralı endekse sahip bir vektöre, "televizyon" için 238 numaralı dizinde 1 bulunan bir vektöre yakın değildir.

Çözüm: Yerleştirme

Bu sorunların çözümü, yüksek yerleşik Vektörleri semantik ilişkileri koruyan daha küçük boyutlu bir alana dönüştüren yerleştirmeler kullanmaktır. Yerleştirmeyi sezgisel olarak, kavramsal ve programatik olarak bu modülün sonraki bölümlerinde keşfedeceğiz.