java头像交互式差分演变_一种基于交互式差分进化计算的用户知识需求获取方法与流程...
本發明屬于知識服務領域,具體涉及一種基于交互式差分進化計算的用戶知識需求獲取方法。
背景技術:
在多數企業擁有龐大的知識數量和優質的知識資源的情況下,如何利用推送系統將知識主動推送給設計人員以提高企業生產效率是目前知識密集型企業關注的重點。在知識推送系統中,依據用戶的任務和行為信息對產品設計人員進行推送。那么如何將合適的知識文檔推送給新用戶和如何將新的知識文檔(即新項目)推送給需要的人的問題,即用戶/項目(知識文檔)冷啟動問題,是知識推送系統發展的關鍵問題。現存的冷啟動解決方案大多需要已知用戶評分數據,而且只能解決用戶、項目冷啟動問題之一。對于產品設計領域的知識推送系統冷啟動而言,由于用戶-知識文檔-評分數據的缺失,現有的冷啟動解決方案并不適用。
技術實現要素:
有鑒于此,本發明提供了一種基于交互式差分進化計算的用戶知識需求獲取方法,能夠在缺失用戶-知識文檔-評分數據的條件下,同時解決用戶冷啟動和項目冷啟動問題。
實現本發明的技術方案如下:
一種基于交互式差分進化計算的用戶知識需求獲取方法,包括以下步驟:
步驟一、將知識文檔轉化為向量,構建向量數據庫;
步驟二、將向量數據庫中的向量聚為N類,從每類中隨機抽取一個向量,得到N個種群向量,記為{xi(g)},其中xi(g)表示種群中第g代的第i個向
量,i=1,2,…,N;g=0,1,2,……;
步驟三、將種群向量對應的知識文檔推送給用戶,設置用戶滿意度指標為點擊率,若用戶對所推送的知識文檔的點擊率不小于80%,執行步驟六,若點擊率小于80%,執行步驟四—步驟五;
步驟四、依次對第g代的N個種群向量分別進行變異、交叉得到新的N個向量{ui(g+1)};
利用貪婪算法從得到的{ui(g+1)}和{xi(g)}中選擇得到下一代種群個體;
其中,f(ui(g+1))表示個體ui(g+1)的適應度值;
步驟五、利用余弦相似度算法依次計算N個g+1代種群向量與向量數據庫中的向量的相似度,選取最相近的N個向量所對應的知識文檔,交互次數累加1,執行步驟三;
步驟六、將當前的N個種群向量作為用戶知識需求模型輸出。
進一步地,所述知識文檔包括pdf文檔,word文檔和txt文檔。
進一步地,步驟一中,采用doc2vec(文本向量轉化)技術將知識文檔轉化為向量。
進一步地,步驟二中,利用K-means方法將向量聚為N類。
有益效果:
本發明首次將進化算法與交互式方式結合來獲取用戶知識需求;根據用戶的點擊行為確定適應度函數并再次進行進化算子的計算,達到用戶滿意度時用戶點擊的文本數據,即可用來訓練用戶的知識需求模型,擬合用戶的知識需求。本發明實現了在缺失用戶-知識文檔-評分數據的條件下,同時解決用戶冷啟動和項目冷啟動問題。
附圖說明
圖1為本發明方法流程圖。
具體實施方式
下面結合附圖并舉實施例,對本發明進行詳細描述。
如圖1所示,本發明提供了一種基于交互式差分進化計算的用戶知識需求獲取方法,包括以下步驟:
步驟一、利用自然語言處理技術對知識文檔進行預處理,所述知識文檔包括pdf文檔,word文檔和txt文檔,所述預處理包括分詞和去除停用詞;然后利用doc2vec(文本向量轉化)技術將預處理后的知識文檔轉化為向量。構建知識文檔向量數據庫,該向量數據庫是底層處理的基礎數據,知識文檔是呈現給用戶的數據。
步驟二、確定用戶單次瀏覽條目數量N,設置交互次數初始值actNum=1。其中瀏覽條目數量N指呈現給用戶的界面所示的知識文檔個數。交互次數定義為:算法每生成一次推薦列表,便將知識文檔推送給用戶,用戶對推薦的知識文檔進行一系列的點擊,利用差分進化算法處理用戶點擊過的知識文檔并再次生成推薦列表。這樣的一次算法推送-用戶點擊的過程成為一次交互。將向量數據庫中的向量利用K-means方法聚為N類,從每類中隨機抽取一個向量,得到N個種群向量,每個向量為一個個體,參與后續的進化算法計算,記為{xi(g)},其中xi(g)表示種群中第g代的第i個向量,i=1,2,…,N;g=0,1,2,……;
步驟三、將種群向量對應的知識文檔推送給用戶,設置用戶滿意度指標為點擊率CTR(Click-Through-Rate),若用戶對所推送的知識文檔的點擊率不小于80%,執行步驟六,若點擊率小于80%,執行步驟四—步驟五;
步驟四、進行差分進化算子計算。其具體步驟為:
依次對第g代的N個種群向量分別進行變異操作得到中間體{vi(g+1)};
vi(g+1)=xr1(g)+F·xr2(g)-xr3(g)),i≠r1≠r2≠r3
其中,xr1(g)為第g代待變異向量,r1=1,2,…,N,xr2(g)和xr3(g)為第g代種群向量中兩個不同的向量,r2=1,2,…,N,r3=1,2,…,N,r1≠r2≠r3,F為縮放因子,是一個常數;
對種群中的所有向量{xi(g)}及變異得到的中間體{vi(g+1)}進行個體間交叉操作得到新的N個向量{ui(g+1)};其中,ui(g+1)中的各元素uj,(g+1)根據下式得到,j=1,2,…,D,其中D為向量元素總數:
其中,CR為交叉概率,為設定值;vj,i(g+1)為中間體vi(g+1)的第j個元素,xj,(g)為xi(g)的第j個元素;若隨機數rand(0,1)小于等于交叉概率CR,則第g+1代的第i個向量的第j個元素取中間體的第j個元素;反之,則取第g代的第i個向量的第j個元素;
利用貪婪算法從得到的{ui(g+1)}和{xi(g)}中選擇得到下一代種群個體;
其中,f(ui(g+1))表示個體ui(g+1)的適應度值;
f(i)將進化算法的迭代過程與用戶行為信息聯系起來,用戶對呈現的推薦列表進行點擊,被用戶點擊過得文檔對應適應度值1,未被點擊的文本對應的適應度值為0。
步驟五、利用余弦相似度算法依次計算N個g+1代種群向量與向量數據庫中的向量的相似度,選取最相近的N個向量所對應的知識文檔,交互次數累加1,執行步驟三;
步驟六、將當前的N個種群向量作為用戶知識需求模型輸出,并輸出當前交互次數。
上述步驟一—步驟六即為用戶知識需求獲取的具體過程,可以獲知用戶對哪些知識文檔感興趣。
本發明中,種群數量N、縮放因子F和交叉概率CR可根據實際數據集進行實驗,在最小交互次數內達到用戶滿意度的參數組合(種群數量N、縮放因子F和交叉概率CR)即為最佳優化策略值。
當新用戶進入系統時,可以通過本方法快速獲取其知識需求,訓練其知識需求模型,在后續的推薦過程中將合適的知識推送給新用戶,以解決新用戶冷啟動問題。當新項目進入系統時,可以利用已經訓練好的用戶知識需求模型判斷新項目(即新的知識文檔)為哪些用戶所需,并將新知識推送給合適的用戶,以解決新項目冷啟動問題。
綜上所述,以上僅為本發明的較佳實施例而已,并非用于限定本發明的保護范圍。凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護范圍之內。
總結
以上是生活随笔為你收集整理的java头像交互式差分演变_一种基于交互式差分进化计算的用户知识需求获取方法与流程...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java开发可重用代码包工具包_[Jav
- 下一篇: java最小访问原则_Android基础