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. ^ יצירת ייצוג מבוסס וקטורים למילים