Xususiyatni xashlash - Feature hashing

Yilda mashinada o'rganish, xususiyatni aralashtirish, deb ham tanilgan xashrik fokusi (o'xshashligi bo'yicha yadro hiyla-nayrang ), bu vektorlashtirishning tezkor va kosmik jihatdan samarali usuli Xususiyatlari, ya'ni ixtiyoriy xususiyatlarni vektor yoki matritsada indekslarga aylantirish.[1][2] Bu qo'llash orqali ishlaydi xash funktsiyasi funktsiyalariga va ularning xash qiymatlarini indekslarni an-ga qarab emas, to'g'ridan-to'g'ri indeks sifatida ishlatishga assotsiativ qator. Ushbu hiyla-nayrang ko'pincha Weinberger va boshqalarga tegishli, ammo 1989 yilda Jon Moody tomonidan chop etilgan ushbu uslubning ancha oldinroq tavsifi mavjud.[2][1]

Rag'batlantiruvchi misol

Odatda hujjatlarning tasnifi vazifa, mashinani o'rganish algoritmiga kirish (o'rganish paytida ham, tasniflash paytida ham) bepul matndir. Bundan, a so'zlar sumkasi (BOW) vakolatxonasi qurilgan: individual nishonlar ajratib olinadi va sanaladi va o'quv to'plamidagi har bir alohida belgi a ni belgilaydi xususiyati (mustaqil o'zgaruvchi) har bir o'quv materialida ham, test to'plamlarida ham.

Mashinada o'qitish algoritmlari, odatda, raqamli vektorlar bo'yicha aniqlanadi. Shuning uchun hujjatlar to'plami uchun so'zlar sumkalari a deb hisoblanadi muddatli-hujjat matritsasi bu erda har bir satr bitta hujjat va har bir ustun bitta xususiyat / so'zdir; kirish men, j bunday matritsada ning chastotasini (yoki vaznini) ushlaydi jning muddati lug'at hujjatda men. (Muqobil konventsiya matritsaning qatorlari va ustunlarini almashtiradi, ammo bu farq ahamiyatsiz.) Odatda, bu vektorlar nihoyatda katta siyrak -ga binoan Zipf qonuni.

Umumiy yondashuv, o'rganish vaqtida yoki undan oldin, a lug'at o'quv to'plamining so'z boyligini aks ettirish va undan so'zlarni indekslarga solishtirish uchun foydalaning. Hash jadvallar va harakat qiladi lug'atni amalga oshirish uchun umumiy nomzodlardir. Masalan, uchta hujjat

  • Jon film tomosha qilishni yaxshi ko'radi.
  • Meri filmlarni ham yaxshi ko'radi.
  • Jon futbolni ham yaxshi ko'radi.

lug'at yordamida o'zgartirilishi mumkin

MuddatIndeks
Jon1
yoqadi2
ga3
tomosha qiling4
filmlar5
Meri6
ham7
shuningdek8
futbol9

muddatli hujjat matritsasiga

(Hujjatlarni tasniflash va klasterlashda odatdagidek tinish belgilari olib tashlandi.)

Ushbu jarayon bilan bog'liq muammo shundaki, bunday lug'atlar katta hajmdagi saqlash joyini egallaydi va o'quv to'plamining o'sishi bilan hajmi kattalashadi.[3] Aksincha, agar so'z boyligi doimiy ravishda saqlanib turilsa va tobora ko'payib borayotgan mashg'ulotlar to'plami bilan ko'paytirilsa, raqib mashina o'rgangan filtrni chetlab o'tish uchun saqlangan so'z tarkibida bo'lmagan yangi so'zlarni yoki xatolarni ixtiro qilishga urinishi mumkin. Bu qiyinchilik, shuning uchun xususiyatlarni xeshlash uchun sinab ko'rildi spam-filtrlash da Yahoo! Tadqiqot.[4]

E'tibor bering, xesh-hiyla faqat matnni tasniflash va hujjat darajasidagi shunga o'xshash vazifalar bilan cheklanib qolmasdan, balki katta (ehtimol cheksiz) funktsiyalarni o'z ichiga olgan har qanday muammoga nisbatan qo'llanilishi mumkin.

Xash-hiyla yordamida xususiyatni vektorlashtirish

Lug'atni yuritish o'rniga, xash-hiyla ishlatadigan xususiyat vektorlashtiruvchisi xash funktsiyasini qo'llash orqali oldindan belgilangan uzunlikdagi vektorni yaratishi mumkin. h funktsiyalarga (masalan, so'zlarga), so'ngra xash qiymatlarini to'g'ridan-to'g'ri xususiyat indekslari sifatida foydalaning va natijada paydo bo'lgan vektorni ushbu indekslarda yangilang. Bu erda biz aslida xususiyat vektorini bildiradi deb o'ylaymiz.

 funktsiya hashing_vectorizer(Xususiyatlari : qator ning mag'lubiyat, N : tamsayı):     x := yangi vektor[N]     uchun f yilda Xususiyatlari:         h := xash(f)         x[h mod N] += 1     qaytish x

Shunday qilib, agar bizning xususiyat vektorimiz ["mushuk", "it", "mushuk"] bo'lsa va xash funktsiyasi bu agar "mushuk" va agar "it". Chiqish xususiyati vektor o'lchamini olaylik (N) bo'lishi 4. Keyin chiqing x bo'ladi [0,2,1,0] .Bu ikkinchi, bitta bitli chiquvchi xesh funktsiyasi deb taklif qilingan ξ ta'sir qiymatiga qarshi turish uchun yangilanish qiymatining belgisini aniqlash uchun ishlatiladi xash to'qnashuvlari.[2] Agar bunday xash funktsiyasidan foydalanilsa, algoritm bo'ladi

 funktsiya hashing_vectorizer(Xususiyatlari : qator ning mag'lubiyat, N : tamsayı):     x := yangi vektor[N]     uchun f yilda Xususiyatlari:         h := xash(f)         idx := h mod N         agar ξ(f) == 1:             x[idx] += 1         boshqa:             x[idx] -= 1     qaytish x

Yuqoridagi psevdokod aslida har bir namunani vektorga aylantiradi. Optimallashtirilgan versiya buning o'rniga faqat (h,ξ) juftlashib, o'rganish va bashorat qilish algoritmlari bunday oqimlarni iste'mol qilishiga yo'l qo'ying; a chiziqli model keyin koeffitsient vektorini ifodalovchi bitta xash jadvali sifatida amalga oshirilishi mumkin.

Xususiyatlari

ξ(f₁)ξ(f₂)Yakuniy qiymat, ξ(f₁) + ξ(f₂)
-1-1-2
-110
1-10
112

Ikkinchi xash funktsiyasi bo'lganda ξ funktsiya qiymatining belgisini aniqlash uchun ishlatiladi kutilgan anglatadi chiqish qatoridagi har bir ustunning nolga aylanishi, chunki ξ ba'zi to'qnashuvlarning bekor qilinishiga olib keladi.[2] Masalan, kirish ikkita ramziy xususiyatni o'z ichiga oladi deylik f₁ va f₂ bir-biriga to'qnashadigan, lekin bitta kirishdagi boshqa xususiyatlar bilan to'qnashmaydigan; unda to'rtta imkoniyat bor, agar biz taxmin qilmasak ξ, o'ngdagi jadvalda keltirilganidek, teng ehtimollikka ega.

Ushbu misolda xash to'qnashuvini bekor qilish ehtimoli 50% mavjud. To'qnashuv xavfini yanada kamaytirish uchun bir nechta xash funktsiyalaridan foydalanish mumkin.[5]

Bundan tashqari, agar φ ishorasi bilan xash-hiyla bilan amalga oshirilgan transformatsiya ξ (ya'ni φ(x) namuna uchun ishlab chiqarilgan xususiyat vektori x), keyin ichki mahsulotlar bo'shliqda xolis:

bu erda kutish xeshlash funktsiyasini qabul qiladi φ.[2] Buni tasdiqlash mumkin a ijobiy yarim aniq yadro.[2][6]

Kengaytmalar va farqlar

Yaqinda olib borilgan ishlar xesh-hrickni nazorat ostidagi xaritalarni so'zlardan indeksgacha,[7]muhim atamalarning to'qnashuviga yo'l qo'ymaslik uchun aniq o'rganilgan.

Ilovalar va amaliy ishlash

Ganchev va Dredze shuni ko'rsatdiki, tasodifiy xash funktsiyalari va chiqish vektorlarida bir necha o'n minglab ustunlar mavjud bo'lgan matnlarni tasniflash dasturlarida xususiyatlarni xeshlash, hatto imzolangan xash funktsiyasiz ham tasniflash ishiga salbiy ta'sir ko'rsatmasligi kerak.[3]Vaynberger va boshq. muammosiga ularning aralashtirish variantini qo'lladilar spam-filtrlash, buni a sifatida shakllantirish ko'p vazifalarni o'rganish kirish funktsiyalari juftlik (foydalanuvchi, xususiyat) bo'lgan muammo, shuning uchun bitta parametrli vektor har bir foydalanuvchi uchun spam-filtrlarni, shuningdek bir necha yuz ming foydalanuvchilar uchun global filtrni qo'lga kiritdi va filtrning aniqligi oshdi.[2]

Amaliyotlar

Xash-hiyla-nayrangning amallari quyidagilardan iborat:

Shuningdek qarang

Adabiyotlar

  1. ^ a b Moody, Jon (1989). "Ko'p qarorli ierarxiyalarda tezkor o'rganish" (PDF). Asabli axborotni qayta ishlash tizimidagi yutuqlar.
  2. ^ a b v d e f g Kilian Vaynberger; Anirban Dasgupta; Jon Langford; Aleks Smola; Josh Attenberg (2009). Katta hajmdagi ko'p vazifali o'rganish uchun xususiyatlarni aralashtirish (PDF). Proc. ICML.
  3. ^ a b K. Ganchev; M. Dredze (2008). Tasodifiy xususiyatlarni aralashtirish orqali kichik statistik modellar (PDF). Proc. ACL08 HLT mobil tilini qayta ishlash bo'yicha seminar.
  4. ^ Josh Attenberg; Kilian Vaynberger; Aleks Smola; Anirban Dasgupta; Martin Zinkevich (2009). "Hash-hiyla bilan birgalikda spam-filtrlash". Virus byulleteni.
  5. ^ a b Ouen, Shon; Anil, Robin; Dunning, Ted; Fridman, Ellen (2012). Harakatda harakat qilish. Manning. 261-265 betlar.
  6. ^ Shi, Q .; Petterson J .; Dror G.; Langford J.; Smola A .; Strehl A .; Vishvanatan V. (2009). Xash yadrolari. AISTATS.
  7. ^ Bai, B .; Weston J .; Granjer D .; Kollobert R.; Sadamasa K.; Qi Y .; Chapelle O .; Vaynberger K. (2009). Semantik indekslash boshqariladi (PDF). CIKM. 187-196 betlar.
  8. ^ "gensim :orpora.hashdictionary - so'zni tuzing <-> id xaritalash". Radimrehurek.com. Olingan 2014-02-13.
  9. ^ "4.1. Xususiyatlarni chiqarish - scikit-learn 0.14 hujjatlari". Scikit-learn.org. Olingan 2014-02-13.
  10. ^ "sofia-ml - Mashinada o'rganish uchun tez o'sib boruvchi algoritmlar to'plami. Pegasos SVM, SGD-SVM, ROMMA, Passiv-Agressiv Perceptron, Chegaralari bilan Perceptron va Logistik Regressiya yordamida tasniflash va reyting modellarini o'rganish usullari.". Olingan 2014-02-13.
  11. ^ "Hashing TF". Olingan 4 sentyabr 2015. Hash-hiyla-nayrang yordamida terminlarning ketma-ketligini o'zlarining chastotalariga xaritalar.
  12. ^ "FeatureHashing: Formula interfeysi bilan xususiyatlarni aralashtirish orqali namunaviy matritsani yaratadi"..
  13. ^ "tf.keras.preprocessing.text.hashing_trick - TensorFlow Core v2.0.1". Olingan 2020-04-29. Matnni belgilangan kattalikdagi xeshlash maydonidagi indekslar ketma-ketligiga o'zgartiradi.

Tashqi havolalar