
本發明屬于知識服務領域,尤其涉及一種基于高斯混合模型的用戶知識需求模型構建方法。
背景技術:
:隨著近幾年計算機運算能力的大幅提升和網絡急速擴張,無論是在開放的互聯網還是以企業為范圍的局域網內,知識資源已十分豐富。隨著知識的不斷增加,設計人員花費在知識管理系統中的知識查找時間越來越長,甚至很難查到符合要求的知識,這不利于設計知識的共享和重用,也阻礙了設計人員設計效率和設計水平的提高。知識主動推送的方式符合大多數設計企業的現狀,可以有效針對人員需求,實現知識的傳遞和推送服務,有效解決知識使用中的知識泛濫、知識迷航等問題,在企業內部和外部達到知識的共享和再創造。另一方面,主動推送的方式通過加快知識獲取速度、提高知識獲取準確率,加快企業內知識的有效傳播,為效率和質量的提高乃至企業市場競爭力的提升打下良好基礎。目前,知識推送系統在電子商務領域已經得到了廣泛的應用,但其在產品設計領域的發展仍未成熟。描述用戶的知識需求模型是發展面向知識推送系統的關鍵技術。然而,現有的模型構建技術主要利用關鍵詞及其權重構建用戶的知識需求模型,不能體現出知識內容的語義信息,本文提出一種基于功能詞匯語義的高斯混合模型用戶知識需求模型構建方法,以提高對用戶知識需求興趣擬合的準確度。技術實現要素:為解決上述問題,本發明提供一種基于高斯混合模型的用戶知識需求模型構建方法,本發明基于功能詞匯的語義信息,能夠快速準確的獲取用戶知識需求分布,并為面向的知識推送系統的發展奠定基礎。一種基于高斯混合模型的用戶知識需求模型構建方法,包括以下步驟:步驟1:在已有知識庫中提取功能詞匯,并生成功能詞匯集;步驟2:將功能詞匯集中的各個功能詞匯轉化為向量,具體方法為:基于知識庫訓練word2vec的skip-gram模型,并根據該模型生成功能詞匯的向量,其中一個功能詞匯對應一個向量,且向量間接體現功能詞匯的語義信息,功能詞匯對應的向量的相似度隨著功能詞匯語義信息的相似度增加而增大;步驟3:針對用戶瀏覽過的知識條目,統計所有知識條目中的功能詞匯的詞頻,然后根據詞頻計算各個功能詞匯對應的tf-idf權重;根據功能詞匯的tf-idf權重對功能詞匯進行排序,選取m個tf-idf權重最大的功能詞匯,其中功能詞匯為向量的表示形式,m為設定的數目;步驟4:基于步驟3選取出的m個功能詞匯,利用em算法求解高斯混合模型參數,得到描述功能詞匯分布的高斯混合模型;步驟5:向步驟4獲得的高斯混合模型輸入知識庫中除步驟3中m個以外的功能詞匯的向量,得到用戶選擇功能詞匯的概率,然后根據該概率計算用戶對知識庫中所有知識條目的需求概率,最終得到用戶對于知識條目的知識需求模型;步驟6:將步驟5中需求概率最高的設定數目的h個知識條目推送給用戶并生成知識條目集,其中h為設定的數目;基于用戶瀏覽的知識條目,實時更新用戶瀏覽過的知識條目集并更新步驟3中m個tf-idf權重最大的功能詞匯,然后基于更新過的m個tf-idf權重最大的功能詞匯,通過步驟4和步驟5重新計算用戶對于知識條目的知識需求模型。一種基于高斯混合模型的用戶知識需求模型構建方法,步驟1所述功能詞匯集的生成方法具體包括以下步驟:步驟11:采用中文分詞系統,結合領域詞典對知識庫進行分詞;步驟12:根據停用詞表,對分詞過后的知識庫中的無用的停用詞進行過濾;步驟13:詞性標注,保留過濾掉無用的停用詞后的知識庫中的功能詞匯,舍棄非功能詞匯,得到語料集;步驟14:詞頻統計,統計語料集中所有功能詞匯出現的頻率;步驟15:去除高頻率低區分度的功能詞匯;步驟16:整理功能詞匯,形成功能詞匯集。一種基于高斯混合模型的用戶知識需求模型構建方法,步驟1所述功能詞匯集的生成方法為:直接選取專家已經整理完成的功能詞匯。一種基于高斯混合模型的用戶知識需求模型構建方法,步驟4所述的利用em算法求解高斯混合模型參數具體步驟為:步驟41:初始化高斯混合模型參數,其中高斯混合模型具體為:其中,xt表示功能詞匯對應的向量,t=1,2,...,m,g(xt)是用戶選擇功能詞匯對應的向量xt的概率,αk是第k個高斯分布的權重,μk,σk分別是第k個高斯分布的均值和方差,n(xt|μk,σk)為向量xt符合均值μk和方差σk的正態分布,k至少為3,高斯分布的3個參數初始值分別設定為步驟42:采用em算法優化高斯混合模型的參數,具體的:e步:將高斯分布的3個初始參數以及代入公式(2),分別作為αk、μk以及σk的初始值,計算向量xt由第k個高斯分布生成的概率其中,αj是第j個高斯分布的權重,μj,σj分別是第j個高斯分布的均值和方差;m步:基于e步計算出的概率運用最大似然法估計高斯混合模型的參數αk、μk以及σk:步驟43:將m步計算的結果αk、μk以及σk代入公式(1),計算向量的概率g(xt),并判斷概率g(xt)與前一迭代結果的差值是否大于設定值ε,其中:如果用戶選擇任意向量的概率g(xt)與前一迭代結果的差值不大于設定值ε,則停止迭代,且αk、μk以及σk為最終的高斯混合模型參數;如果用戶選擇任意向量的概率g(xt)與前一迭代結果的差值大于設定值ε,則將m步的計算結果αk、μk以及σk取代初始參數以及再次代入公式(2),重新計算向量xt由第k個高斯分布生成的概率再根據新計算的概率代入m步的公式(3)、公式(4)以及公式(5),將得到的新的高斯分布的參數以及代入公式(1),計算向量的概率g(xt)*,并判斷概率g(xt)與前一迭代結果的差值是否大于設定值ε;以此類推,直到用戶選擇任意向量的概率與前一迭代結果的差值不大于設定值ε,則停止迭代,得到最終的高斯混合模型參數。一種基于高斯混合模型的用戶知識需求模型構建方法,步驟5所述的計算用戶選擇知識條目的概率具體步驟如下:知識條目di包含的功能詞匯對應的向量為xm,其中i=1,2,...,q,m=1,2,...,p,每個功能詞匯在知識條目di中出現的詞頻為tfi1,tfi2,...tfim...,tfip,對詞頻進行歸一化處理之后,得到每個功能詞匯在知識條目di中出現的的頻率為wi1,wi2,...wim...,wip,其中歸一化計算公式為:則用戶選擇知識條目di的概率g(di)為:其中公式(7)為用戶對于知識條目的知識需求模型。有益效果:本發明首次利用高斯混合模型來構建用戶知識需求的模型,本發明首先基于知識庫訓練word2vec的skip-gram模型,考慮功能詞匯的語義信息,生成功能詞匯的高維向量,然后利用選取的知識語料集訓練高斯混合模型,運用多個高斯分布描述用戶對于功能詞匯的知識需求概率分布,運用em方法優化高斯混合模型的參數;最后建立詞匯與條目之間的映射關系,獲取用戶對于知識條目的需求模型,以此為基礎計算知識庫中用戶最有可能感興趣的知識條目并將其推送給用戶;現有技術主要以知識條目評分等外部屬性或者知識條目關鍵詞及其權重為基礎構建用戶需求模型,而本發明充分考慮功能詞匯的語義信息,構建詞匯的高維向量表示式,并以此為基礎利用高斯混合模型擬合用戶對功能詞匯和知識條目的需求,本發明構建的高斯混合模型能更貼切的擬合用戶知識需求模型,并提升知識推送準確率。附圖說明圖1為本發明基于高斯混合模型的用戶知識需求模型預測方法示意圖;圖2為本發明具體實施方式中知識需求模型參數求解流程;圖3為本發明具體實施方式中功能詞匯與知識條目映射關系示意圖。具體實施方式下面結合附圖并舉實施例,對本發明進行詳細敘述。本發明提出了一種基于高斯混合模型的用戶知識需求模型的構建方法,示意圖如圖1所示。本發明構建的需求模型主要考慮用戶對功能詞匯和知識條目的需求。本發明可以實現:1)已知用戶瀏覽的知識條目推理出用戶對于功能詞匯的知識需求。由用戶瀏覽過的知識條目提取出代表用戶知識需求的功能詞匯,并訓練用戶對于功能詞匯的用戶知識需求模型。功能詞匯的表示為向量形式,反應了詞匯的語義信息。2)已知用戶對于功能詞匯的知識需求模型推理基于知識條目的知識需求模型,其具體關系如圖3所示。利用高斯混合模型表示用戶對于功能詞匯的知識需求,具體包括以下步驟:步驟1:對已有的知識庫進行功能詞匯提取,生成功能詞匯集。所述功能詞匯集的生成方法包括兩種。第一種所述功能詞匯集的生成方法:利用自然語言處理技術處理知識庫提取功能詞匯,具體包括以下步驟:步驟1.1:采用中文分詞系統,結合領域詞典對知識庫進行分詞;步驟1.2:根據停用詞表,對分詞過后的知識庫中的無用的停用詞進行過濾;步驟1.3:詞性標注,保留過濾掉無用的停用詞后的知識庫中的動詞詞匯,即功能詞匯,舍棄非動詞詞匯,即非功能詞匯;步驟1.4:詞頻統計,統計語料集中所有功能詞匯出現的頻率;步驟1.5:去除高頻率低區分度的功能詞匯;步驟1.6:整理功能詞匯,形成功能詞匯集。第二種功能詞匯集的生成方法:直接選取專家整理出的功能詞匯/特征詞匯作為功能詞匯集。步驟2:將功能詞匯轉化為維數至少為100的高維向量形式;具體步驟為:基于知識庫訓練word2vec的skip-gram模型,并根據該模型生成功能詞匯的高維向量,其中一個功能詞匯對應一個高維向量,高維向量間接體現功能詞匯的語義信息,且功能詞匯對應的高維向量的相似度隨著功能詞匯語義信息的相似度增加而增大;步驟3:針對用戶瀏覽過的知識條目,統計所有知識條目中的功能詞匯的詞頻,然后根據詞頻計算各個功能詞匯對應的tf-idf權重;根據功能詞匯的tf-idf權重對功能詞匯進行排序,選取m個tf-idf權重最大的功能詞匯,其中功能詞匯為高維向量的表示形式,其中m至少為1;具體步驟包括:步驟31:統計所有知識條目中出現的功能詞匯詞頻,如表1所示:表1x1x2…xt…xmd1tf11tf12…tf1t…tf1md2tf21tf22…tf2t…tf2m…………………ditfi1tfi2…tfit…tfim…………………dqtfq1tfq2…tfqt…tfqm其中,tfit為詞頻,即知識條目di中詞語xt出現的次數;步驟32:基于統計的詞頻,計算所有詞語對應的tf-idf權重,計算公式為:其中:q:所有知識條目的總數;df(xt):知識條目頻率,即包含詞匯xt的知識條目總數;tfidf(xt):詞語xt的tf-idf權重;步驟33:根據tf-idf權重大小對所有的功能詞匯進行排序,選取前m個tf-idf權重較大的功能詞匯。步驟4:將統計出的m個功能詞匯作為用戶最感興趣的詞匯,即用戶選取此m個功能詞匯的概率最大。基于m個功能詞匯的高維向量表示式,基于統計出的m個功能詞匯的高維向量集,利用em算法求解高斯混合模型參數,構建用戶對于功能詞匯的知識需求模型,得到描述功能詞匯分布的高斯混合模型;流程如圖2所示,具體步驟如下:步驟41:高斯混合模型參數初始化。使用高斯混合模型描述功能詞匯的分布,其中高斯混合模型表示為:其中,其中,xt表示功能詞匯對應的高維向量,t=1,2,...,m,g(xt)是用戶選擇功能詞匯對應的高維向量xt的概率,αk是第k個高斯分布的權重,μk,σk分別是第k個高斯分布的均值和方差,n(xt|μk,σk)為高維向量xt符合均值μk和方差σk的正態分布,k至少為3,初始化高斯分布的參數共3k個變量;步驟42:根據高斯分布的初始化參數采用em算法優化求出高斯混合模型的參數,具體的:e步:將高斯分布的3個初始參數以及代入公式(2),分別作為αk、μk以及σk的初始值,由公式(2)計算高維向量xt由第k個高斯分布生成的概率其中,αj是第j個高斯分布的權重,μj,σj分別是第j個高斯分布的均值和方差;m步:基于計算出的運用最大似然法估計高斯混合模型的參數:步驟43:將m步計算的結果αk、μk以及σk代入公式(1),計算高維向量的概率g(xt),并判斷概率g(xt)與前一迭代結果的差值是否大于設定值ε,其中:如果用戶選擇任意高維向量的概率g(xt)與前一迭代結果的差值不大于設定值ε,則停止迭代,且αk、μk以及σk為最終的高斯混合模型參數;如果用戶選擇任意高維向量的概率g(xt)與前一迭代結果的差值大于設定值ε,則將m步的計算結果αk、μk以及σk取代初始參數以及再次代入公式(2),重新計算高維向量xt由第k個高斯分布生成的概率再根據新計算的概率代入m步的公式(3)、公式(4)以及公式(5),將得到新的高斯分布的參數以及代入公式(1),計算高維向量的概率g(xt)*,并判斷概率g(xt)與前一迭代結果的差值是否大于設定值ε;以此類推,直到用戶選擇任意向量的概率與前一迭代結果的差值不大于設定值ε,則停止迭代,得到最終的高斯混合模型參數。將參數帶入公式(1),用戶對于功能詞匯的知識需求模型構建完成,輸入知識庫中其他功能詞匯的高維向量表示式,輸出為用戶選擇相應功能詞匯的概率。步驟5:向高斯混合模型輸入知識庫中其他功能詞匯的高維向量表示式,得到用戶選擇的該功能詞匯的概率;基于功能詞匯知識需求模型和用戶選擇的相應功能詞匯的概率,計算用戶對知識庫中所有知識條目的需求概率,構建基于知識條目的用戶知識需求模型,圖3為二者映射關系示意圖。具體計算方法為:條目di包含功能詞匯為xm(此處為高維向量形式),其中i=1,2,...,q,m=1,2,...,p,每個功能詞匯在條目di中出現的詞頻為tfi1,tfi2,...tfim...,tfip(如表1),歸一化處理之后得到每個功能詞匯的頻率為wi1,wi2,...wim...,wip,其中歸一化計算公式為:得到每個知識條目包含功能詞匯的頻率,如表2所示.表2x1x2…xm…xpd1w11w12…w1m…w1pd2w21w22…w2m…w2p…………………diwi1wi2…wim…wip…………………dqwq1wq2…wqm…wqp每個功能詞匯的頻率衡量了詞對條目的重要程度,即權重。因此用戶選擇條目di的概率為:即為用戶對于知識條目的知識需求模型。其中g(xm)為用戶選擇功能詞匯xm的概率,wim為知識條目di中功能詞匯xm出現的頻率;步驟6:計算用戶對知識庫中所有條目的需求概率,將需求概率高的h個條目推送給用戶,其中h至少為1;隨著用戶行為的累積,基于用戶瀏覽的條目,實時更新用戶瀏覽過的知識條目集并更新步驟3中m個tf-idf權重最大的功能詞匯,并基于更新過的m詞匯重新計算用戶對于功能詞匯以及知識條目的知識需求模型。當然,本發明還可有其他多種實施例,在不背離本發明精神及其實質的情況下,熟悉本領域的技術人員當可根據本發明作出各種相應的改變和變形,但這些相應的改變和變形都應屬于本發明所附的權利要求的保護范圍。當前第1頁12