Word2vec

מתוך ויקיפדיה, האנציקלופדיה החופשית

Word2vec היא שיטה לשיכון מילים[א] (Word embeddings) המבוססת על זוג מודלים מבוססי רשתות נוירונים המאומנות לשחזר הקשרים לשוניים של מילים. Word2vec לוקח כקלט קורפוס גדול של טקסט ומייצר מרחב וקטורי, בדרך כלל של כמה מאות ממדים, כאשר לכל מילה ייחודית בקורפוס מוקצה וקטור במרחב. וקטורי המילים ממוקמים במרחב הווקטורי כך שמילים החולקות הקשרים משותפים בקורפוס ממוקמות קרוב זו לזו במרחב.

Word2vec נוצר ופורסם בשנת 2013 על ידי צוות חוקרים שהובל על ידי תומאש מיקולוב מגוגל ונכתב עליו פטנט. לאחר מכן נותח והוסבר האלגוריתם גם על ידי חוקרים אחרים.[1] לשיכוני מילים (embedding vectors) שנוצרו באמצעות אלגוריתם Word2vec יש יתרונות רבים בהשוואה לאלגוריתמים קודמים כמו ניתוח סמנטי סמוי (latent semantic analysis (אנ')).

CBOW ו-skip-grams[עריכת קוד מקור | עריכה]

Word2vec יכולה להשתמש באחת מבין שתי ארכיטקטורות של מודלים כדי לייצר ייצוג מבוזר של מילים: bag of words רציף (continuous bag-of-words (אנ'), CBOW) או skip gram רציף (אנ'). בארכיטקטורת CBOW, המודל חוזה את המילה הנוכחית מתוך "חלון" של מילות-הקשר הנמצאות מסביבה. סדר המילים בהקשר אינו משפיע על החיזוי (הנחת bag-of-words). בארכיטקטורת skip-gram הרציפה, המודל משתמש במילה הנוכחית כדי לחזות את החלון שמסביבה של מילות הקשר. ארכיטקטורת skip-gram ממשקלת בחיזוי מילות הקשר קרובות כיותר משמעותיות מאשר מילות הקשר רחוקות יותר. על פי הערת המחברים,[2] CBOW מהיר יותר בעוד ש-skip-gram עושה עבודה טובה יותר למילים נדירות.

פרמטריזציה[עריכת קוד מקור | עריכה]

תוצאות של אימון word2vec יכולות להיות רגישות לפי קביעת הפרמטרים. להלן כמה פרמטרים חשובים באימוני word2vec.

אלגוריתם האימון[עריכת קוד מקור | עריכה]

ניתן לאמן מודל Word2vec בעזרת softmax (אנ') היררכי או דגימה שלילית. כדי להתקרב לסבירות הלוגריתמית המותנית (conditional log-likelihood) שהמודל מבקש למקסם, שיטת הסופטמקס ההיררכית משתמשת בקוד האפמן כדי לצמצם את החישוב. לעומת זאת, שיטת הדגימה השלילית מתקרבת לבעיית המקסום על ידי צמצום פונקציית הנראות של מקרים שליליים שנדגמו. לטענת המחברים, softmax היררכי עובד טוב יותר למילים נדירות בעוד שדגימה שלילית עובדת טוב יותר למילים תכופות ויותר טובה עם וקטורים בממדים נמוכים.[2] ככל שמתארך משך האימון, הסופטמקס ההיררכי מפסיק להיות שימושי.[3]

דגימת משנה[עריכת קוד מקור | עריכה]

מילים בתדירות גבוהה מספקות לעיתים קרובות אינפורמציה מועטה בלבד. ייתכן שמילים עם תדירות גבוהה מסף מסוים, יידגמו באופן חלקי בלבד כדי לקצר את משך האימון.[4]

ממדיות[עריכת קוד מקור | עריכה]

איכות שיכוני המילים עולה עם ממדיות גבוהה יותר. אך לאחר שתגיע לנקודה מסוימת, הרווח השולי יקטן. בדרך כלל, ממדי הווקטורים מוגדרים כ־100 ל -1,000.

חלון ההקשר[עריכת קוד מקור | עריכה]

גודל חלון ההקשר קובע כמה מילים לפני ואחרי מילה נתונה ייכללו כמילות הקשר של המילה הנתונה. על פי הערת המחברים, הערך המומלץ הוא 10 עבור skip-gram ו-5 עבור CBOW.[2]

הרחבות[עריכת קוד מקור | עריכה]

הוצעה הרחבה של word2vec לבניית שיכוני ממסמכים שלמים (ולא ממילים בודדות). הרחבה זו נקראת paragraph2vec או doc2vec ויושמה בכלי C, Python[5][6] ו- Java / Scala[7] (ראה להלן), כאשר גרסאות ה- Java וה- Python תומכות גם בהקשר לשיכון של מסמך על מסמכים חדשים שטרם נראו.

וקטורי מילים לביואינפורמטיקה: BioVectors[עריכת קוד מקור | עריכה]

אסגארי ומופרד הציעו להרחיב את וקטורי המילים עבור n-gram גם עבור רצפים ביולוגיים (למשל DNA, RNA וחלבונים ) ליישומי ביואינפורמטיקה .[8] הם כינו את הווקטורים הללו ביו-וקטורים (BioVec) כאשר הם מתייחסים לרצפים ביולוגיים באופן כללי. וקטורים של חלבונים כונו ProtVec (רצפי חומצות אמינו) ווקטורי גנים כונו GeneVec, ניתן להשתמש בייצוג זה באופן נרחב ביישומים של למידת מכונה בפרוטאומיקה וגנומיקה. מהתוצאות עולה כי ביו-וקטורים יכולים לאפיין רצפים ביולוגיים מבחינת פרשנויות ביוכימיות וביו-פיזיות של התבניות הבסיסיות. גרסה דומה, dna2vec, הראתה כי יש קשר בין ציון הדמיון של Needleman -Wunsch לבין הדמיון הקוסיני (cosine similarity) של וקטורי המילים dna2vec.

מימושים[עריכת קוד מקור | עריכה]

הערות שוליים[עריכת קוד מקור | עריכה]

  1. ^ Řehůřek, Radim. Word2vec and friends (Youtube video). נבדק ב-2015-08-14.
  2. ^ 1 2 3 "Google Code Archive - Long-term storage for Google Code Project Hosting". code.google.com. נבדק ב-2016-06-13.
  3. ^ "Parameter (hs & negative)". Google Groups. נבדק ב-2016-06-13.
  4. ^ "Visualizing Data using t-SNE" (PDF). Journal of Machine Learning Research, 2008. Vol. 9, pg. 2595. נבדק ב-2017-03-18.
  5. ^ "Doc2Vec tutorial using Gensim". נבדק ב-2015-08-02.
  6. ^ "Doc2vec for IMDB sentiment analysis". נבדק ב-2016-02-18.
  7. ^ "Doc2Vec and Paragraph Vectors for Classification". אורכב מ-המקור ב-2015-12-31. נבדק ב-2016-01-13.
  8. ^ Asgari, Ehsaneddin; Mofrad, Mohammad R.K. (2015). "Continuous Distributed Representation of Biological Sequences for Deep Proteomics and Genomics". PLOS ONE. 10 (11): e0141287. arXiv:1503.05140. Bibcode:2015PLoSO..1041287A. doi:10.1371/journal.pone.0141287. PMC 4640716. PMID 26555596.

ביאורים[עריכת קוד מקור | עריכה]

  1. ^ יצירת ייצוג מבוסס וקטורים למילים