עיבוד שפות טבעיות – שיעור חמישי N-grams with smoothings

Post on 22-Jan-2016

45 views 0 download

description

עיבוד שפות טבעיות – שיעור חמישי N-grams with smoothings. יעל נצר מדעי המחשב אוניברסיטת בן גוריון. תזכורת. מסתכלים על ההסתברות של משפט כהסתברות של רצף מילים: P( I want to eat British food ) שימוש בחוק השרשרת: - PowerPoint PPT Presentation

Transcript of עיבוד שפות טבעיות – שיעור חמישי N-grams with smoothings

עיבוד שפות טבעיות – שיעור חמישיN-grams with smoothings

יעל נצר

מדעי המחשב

אוניברסיטת בן גוריון

תזכורת

מסתכלים על ההסתברות של משפט כהסתברות של רצף מילים:

P(I want to eat British food)שימוש בחוק השרשרת:

P(I)*P(want|I)*P(to|I want)*P(eat|I want to) *P(British|I want to eat)

*P(food|I want to eat British)

תזכורת – הנחה מרקובית

הנחה מרקובית מצמצמת את החישוב של הסתברות מילים )כלומר הנחה מרקובית Nהמשפט לרצף של

(.N-1מסדר P(I)*P(want|I)*P(to|I want)*

P(eat|want to) *P(British|to eat) *P(food|eat British)

ככל שמסתכלים על מספר מילים גדול יותר לפני המילה הנוכחית, ההערכה מדוייקת יותר.

ככל שמסתכלים על יותר מילים, קשה יותר לקבל נתונים סטטיסטיים מדוייקים.

Berkeley Restaurantדוגמא – Project - BERP

פרוייקט שנעשה באוניברסיטת ברקלי לייעוץ מסעדות מבוסס-קול

המערכת מציגה מידע רלוונטי מתוך בסיס נתונים על המסעדות המקומיות על פי שאילתות מסוג:

I’d like to eat dinner someplace nearby.I’m looking for a good place to eat breakfast.I’m looking for Cantonese food.

הערה על שימוש בלוגים

נניח כי נתונות ההסתברויות: P(<s>|I)*P(want|I)*P(to|want)*

P(eat|to) *P(British|eat) *P(food| British)=0.25*0.32*0.65*0.26*0.002*0.60 = 0.000016

מכפלתן קטנה ככל שמספר 1מכיוון שההסתברויות קטנות מ- numericalהמוכפלים גדל, מה שיכול להביא ל-

underflow.לכן, נהוג להעביר את החישוב למרחב לוג – )ברירת המחדל

( ואז, מחזירים את התוצאה למספר המקורי log2פה תהיה )האנטי-לוג(.

Bi-gram grammar from BERP

<s> I.25I want.32want to.65to eat.26British

food.60

<s>I’d.06I would.29want a.05to have.14British restauran

t

.15

<s>Tell

.04I don’t.08want some

.04to spend.09British cuisine

.01

<s>I’m

.02I have.04want thai.01to be.02British lunch

.01

Bi-gram counts of seven words

bi-grams frequency

כמה נקודות חשובות

איך ניתן לחשב הסתברות של אירוע שטרם נצפה?

training and testing setsקורפוס – Training set הקורפוס ממנו נלקחים –

התדירויות והנתונים. קב' אימון כמודל שפה – . וקב' הבחינה – n-gramsממנו נלקחות ספירת ה

עליה מעריכים את המודל שנבנה.

שיטה טובה יותר – חלוקה לשלוש

Training setDev Test Set נתונים עליהם מתבצעת –

של המודלfine-tuningההערכה וה-Test set הקבוצה הסופית לבחינת המודל –

והערכתועדיף: מכיוון שכאשר משתמשים בקבוצת

כדי לאפיין את המודל בעצמו, testingה-הופכים אותו בעצם לחלק מקבוצת האימון.

Cross validation

:cross validationאפשרות נוספת היא קבוצותNחלק את הנתונים ל-

תתי קבוצותN-1אמן את המודל על

-יתNובדוק על הקבוצה ה-

הקבוצותNחזור על הפעולה עבור כל אחת מ-

התוצאה תהיה הממוצע של המודלים.

Maximum Likelihood Estimation - MLE

הרעיון: תדירות הופעת מילה בקורפוס היא ה- MLE של הופעת המילה בשפה ככלל, או בשפה

40פשוטה: נראה הכי הגיוני שאם מילה מופיעה פעמים בתוך מליון מילים, אזי תדירותה בשפה

.0.00004היא

Bi-gram של MLEמדד ה-)מדוע מספיק לחלק את התוצאה במספר ההופעות

של מילה בקורפוס?(

Smoothing – 1 add-one

BERPטבלת ההופעות ב-

-ADD אחרי ה-BERPטבלת ההופעות ב-ONE

ADD_ONE בעיות ב-

שינוי חד מדי בהסתברויות שאינן אפס, מכיוון שמסה גדולה מדי הועברה להסתברויות האפס.

הערכה מוטעית משמעותית ביחס להסתברויות האפסיות.

לפעמים אפילו יותר גרוע מאשר בשיטות שהן .smoothingללא

Witten Bell Discounting

הרעיון הבסיסי הוא – מילה שלא נצפתה עדיין ( ההסתברות שלה לקרות היא כמו bi-gram)או

של התדירות של מילה/צירוף שטרם נראה בקורפוס.

מהו צירוף שטרם נראה?

בעצם צירוף שנצפה בפעם הראשונה.

של הצירופים typeכלומר – מספר ה'טיפוסים' בקורפוס בסך הכל.

בתוספת מספר tokensמנרמלים במספר ה- מכיוון שרואים את הקורפוס כרצף של typesה-

.type ואירוע לכל tokenאירועים – אירוע לכל

V הוא מספר הטיפוסים שכבר ראינו, ו-Tכאן – הוא סך הטיפוסים שנוכל לראות בסך הכל.

רוצים לראות מהי ההסתברות של כל אחד ואחד מהזוגות – וזאת על ידי חלוקה במספר הופעות האפסים.

המשך

פעמים, כל 0 שנספרו n-grams סך ה-Zיהי אחד כזה מקבל עכשיו את חלקו השווה במסת

ההסתברות החדשה:

-Nלשם כך מפחיתים את ההסתברות של ה-gramsשכבר נצפו

Discounting

קצת על אנטרופיה

Entropy -ו preplexity הם שני מדדים חשובים .N-gramsלחישוב מודלי

שייכים למה שנקרא – תורת האינפורמציהאנטרופיה היא מידה של אינפורמציה – ומדד חשוב

בעיבוד שפות טבעיות, כמו גם זיהוי קול.משמש להערכת הדמיון, למשל בין דקדוק או מודל נתון

ובין השפה שאותו מייצג.בהנתן, למשל, שני דקדוקים וקורפוס, ניתן להעריך בעזרת האנטרופיה מי מייצג טוב יותר את הקורפוס.

חישוב אנטרופיה

Xחישוב האנטרופיה מניח קיום משתנה אקראי שמקבל ערכים אפשריים )מילים, אותיות, חלקי דיבר

.p(x)וכו'(, ופונקצית הסתברות כלשהי

היא ע"פ ההגדרהXהאנטרופיה של משתנה אקראי

H(X)= -Σx in Xp(x)log2p(x)( 2אנטרופיה נמדדת בביטים )השימוש בלוג

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

דוגמא

רוצים להמר במירוץ סוסים, אבל לשלוח את ההודעות לסוכן מרחוק.

יש שמונה סוסים במירוץ.דרך אחת לקידוד היא שימוש בייצוג בינארי כלומר

– וכולי, 010 – 2 , סוס מספר 001 – 1 סוס מספר

.000 יהיה 8ואילו סוס מספר אם כל היום נהמר בקוד של שלושה ביטים, בממוצע

ביטים לכל מירוץ.3נשלח

האם ניתן לעשות טוב יותר?

נניח שההסתברות עבור כל אחד מהסוסים שונה –

– ½ 1סוס

– ¼ 2סוס

1/8 – 3סוס

1/16 – 4סוס

1/64 – 5,6,7,8סוסים

האנטרופיה עבור ההימור

משתנה אקראי שמקבל את ערכי הסוסים, Xעבור האנטרופיה נותנת לנו את החסם התחתון למספר הביטים:

H(X) = -i=1,8p(i)logp(i)= -1/2log1/2 – 1/4log1/4 – 1/8log1/8 –1/16log1/16 – 4(1/64log1/64) = 2 bits.כלומר בממוצע ניתן להשתמש בשני ביטים למירוץ וזאת ניתן לעשות על ידי בניית קידוד על פי ההסתברות – ככל שההסתברות נמוכה יותר מספר הביטים גדל

, ואחריו 0לסוס עם ההסתברות הגדולה ביותר יהיה הקוד –10 ,110 ,1110 ,111100 ,111101 ,111110 ,111111

במקרה של שוויון בהסתברויות

אם נסתכל על המקרה הראשון שלכל סוס ניתנה – האנטרופיה 1/8הסתברות שווה כלומר

בבחירת הסוס היא

H(X)= -i=1,81/8log1/8 =-log1/8=3 bits

כלומר, האנטרופיה כאן עקבית עם מה שכבר ידענו.

Preplexity

Preplexity 2 מוגדר כערךH

באופן אינטואיטיבי, זהו ממוצע "ממושקל“weighted של מספר ההחלטות הממוצע

שהמשתנה האקראי צריך להחליט – כלומר: סוסים, שלכל אחד מהם הסתברות 8בחירה בין

.8 כלומר 23 הוא preplexityשווה, ה-עבור הטבלה בה לכל סוס הסתברות שונה –

.4כלומר 22הערך הוא

אנטרופיה של רצף

כשמסתכלים למשל על מודל של שפה, מסתכלים על רצפים של מילים ומשתנה אקראי אחד לא

מספיק.

ניתן להניח קיום משתנה אחד שערכיו הם כל w1 w2….. wnהרצפים האפשריים

כאנטרופיה של הרצף entropy rateניתן להגדיר על ידי חלוקה של האנטרופיה במספר המילים ברצף

6.47 226עמ'

אבל כאשר מחשבים אנטרופיה של שפה, צריך להחשיב גם רצפים באורך אינסופי

Shanon-McMillan-Breiman theorem גורסת שאם שפה היא רגולרית באופן כלשהו, אזי ניתן להגדיר את

האנטרופיה כ-כלומר אם לוקחים רצף ארוך מספיק במקום לסכם את סך כל

הרצפים האפשריים.ההנחה כאן היא שאם לוקחים רצף ארוך מספיק, אזי הוא

יכול רצפים קצרים, וכל אחד מהרצפים הקצרים האלה יופיע בארוך באותו יחס על פי הסתברותו.

אם stationaryמודל הסתברותי נקרא קבוע ההסתברות שנתנות לרצף אינן משתנות ביחס לזמן

Time index .t+1 שקולות לאלה בזמן tכלומר, ההסתברויות בזמן מודלי מרקוב, הם קבועים.

מכיוון stationaryמצד שני שפה טבעית אינה שקיימות בשפה תלויות ממרחק גדול יותר ותלויות-זמן.

לכן, מודל סטטיסטי כזה נותן רק הערכה ביחס לתפוצות ולאנטרופיה של השפה.

לסיכום

קבלת החלטות שאינן נכונות או מדוייקות אך נוחות ומפשטות , ניתן לחשב אנטרופיה של

תהליך הסתברותי על ידי לקיחת דוגמא ארוכה הסתברות שלו.logמאוד של פלט, וחישוב ה

בשיעורים הבאים נראה למה רוצים לעשות את זה וגם איך לחשב.