本發(fā)明涉及數據結構化技術領域,尤其涉及一種用于推薦系統的數據結構化處理方法。
背景技術:
隨著互聯網技術的發(fā)展,信息每天都在以驚人的速度增長,同時,信息的種類也在不斷地擴展,越來越多的非結構化信息不斷出現。據統計在社交媒體中大部分數據是非結構化數據,包括網絡日志及內容詳情描述等。
在推薦系統領域,現有方法都是基于單一業(yè)務系統的結構化數據進行推薦,因此,對于多業(yè)務系統的系統數據及非結構化數據的存在無法進行推薦的問題;而很多非結構化信息里包含了有價值的數據內容。
技術實現要素:
本發(fā)明目的在于克服目前推薦系統中存在的只能基于單一業(yè)務系統的結構化數據進行推薦的缺陷,提出了一種用于推薦系統的數據結構化處理方法,該方法可以從多個業(yè)務系統采集內容元數據、用戶屬性數據、用戶互動數據和用戶業(yè)務行為數據,將其結構化后的數據直接用于推薦系統,提供了更豐富更準確的推薦結果。
為了實現上述方法,本發(fā)明提供了一種用于推薦系統的數據結構化處理方法,所述方法包括:從多源業(yè)務系統中采集內容元數據、用戶屬性數據、用戶互動數據和用戶業(yè)務行為數據;根據內容元數據得到內容-內容關系矩陣ii;根據用戶屬性數據通過相似度對用戶進行合并,從而對所述用戶互動數據和用戶業(yè)務行為數據進行合并;根據合并后的用戶互動數據得到用戶-用戶關系矩陣uu;根據合并后的用戶業(yè)務行為數據得到初始的用戶-內容關系矩陣u-i,并將該矩陣重新調整行列順序得到排序后的用戶-內容關系矩陣ui;將uu矩陣、ui矩陣與ii矩陣進行相乘,得到結構化后的用戶-內容關系矩陣,用于內容推薦系統。
上述技術方案中,所述方法具體包括:
步驟1)從多源業(yè)務系統中采集內容元數據、用戶屬性數據、用戶互動數據和用戶業(yè)務行為數據;
步驟2)計算內容元數據的向量距離,并進行歸一化處理;通過內容合并,得到 內容-內容關系矩陣ii;
步驟3)將每條用戶屬性數據的數據項組成用戶屬性向量,將該用戶屬性向量轉換為用戶數值向量,兩兩計算用戶數值向量的相似度,通過相似度對用戶進行合并;并根據合并的用戶分別對步驟1)的用戶互動數據和用戶業(yè)務行為數據進行合并;
步驟4)根據合并后的用戶互動數據提取用戶關系,建立用戶-用戶關系矩陣uu;
步驟5)對合并后的用戶業(yè)務行為數據進行加權統計和歸一化,得到初始的用戶-內容關系矩陣u-i;將初始的用戶-內容關系矩陣u-i的行和列分別按照uu矩陣相同用戶的行順序、ii矩陣相同內容的列順序進行調整,得到排序后的用戶-內容關系矩陣ui;
步驟6)將uu矩陣、ui矩陣與ii矩陣進行相乘,得到結構化后的用戶-內容關系矩陣,用于內容推薦系統。
上述技術方案中,所述步驟1)中的
內容元數據包括:名稱、導演姓名、主演列表、上映日期、語言類型和發(fā)行商;
用戶屬性數據包括:姓名、qq號、手機號碼、郵箱地址和年齡;
用戶業(yè)務行為數據表示為業(yè)務行為三元組:(uid,content_id,action_id),其中uid為用戶id,content_id為本次業(yè)務行為操作的內容的id,action_id為本次業(yè)務行為類別編碼;所述業(yè)務行為類別包括:點播、評分、評論、分享和推薦,所述業(yè)務行為類別編碼為每種用戶業(yè)務行為類別進行的唯一性編碼;
用戶互動數據表示為互動三元組:(interaction_id,uid_1,uid_2),其中interaction_id為本次互動數據的唯一性標識符,uid_1、uid_2為互動雙方的uid。
上述技術方案中,所述步驟2)具體包括:
步驟2-1)將每條內容元數據的數據項組成該內容的屬性向量,將該屬性向量轉換為數值向量;并對數值向量進行歸一化處理;
步驟2-2)計算不同內容數值向量的相似度;如果相似度大于第一閾值時,則判定兩條內容元數據對應同一內容,將這兩條內容元數據進行合并;
步驟2-3)計算合并后的每條內容元數據間的相似度組成內容-內容關系矩陣ii。
上述技術方案中,根據業(yè)務系統特性設定第一閾值為0.85。
上述技術方案中,所述步驟3)具體包括:
步驟3-1)將每條用戶屬性數據組成該內容的屬性向量,將該屬性向量轉換為用戶數值向量;并對數值向量進行歸一化處理;
步驟3-2)計算不同用戶數值向量的相似度;如果相似度大于第二閾值時,則判定兩個用戶為同一用戶,將這兩個用戶進行合并;
步驟3-3)并根據合并的用戶分別對步驟1)的用戶互動數據和用戶業(yè)務行為數據進行合并。
上述技術方案中,根據業(yè)務系統特性設定第二閾值為0.76。
上述技術方案中,所述步驟4)的具體實現過程為:
用戶關系的計算公式如下:
其中,relationship_strength(a,b)為用戶a和用戶b的關系,|ea,b|為用戶a和用戶b之間的互動次數,|ea|為用戶a的互動總次數,|eb|為用戶b的互動總次數,|u|為用戶總數,|ua|為用戶a的互動用戶總數,|ub|為用戶b的互動用戶總數;
通過用戶關系的計算公式計算所有用戶間的用戶關系,建立用戶-用戶關系矩陣uu。
上述技術方案中,所述步驟5)具體包括:
步驟5-1)根據步驟1)采集的用戶業(yè)務行為數據,執(zhí)行聚合操作得到四元組
(uid,content_id,action_id,count(uid,content_id,action_id))
其中,count(uid,content_id,action_id)為用戶uid對content_id對象執(zhí)行action_id業(yè)務操作的次數;
步驟5-2)計算每個用戶uid對每個內容content_id的興趣度;
根據業(yè)務系統特性調整每種業(yè)務行為的權重weight(action_id),對聚合后的用戶業(yè)務行為四元組進行加權統計;得到用戶uid對內容content_id的興趣度inter_strength:
步驟5-3)選取興趣度的最大值作為歸一化系數,將所有的興趣度與歸一化系數的比值作為歸一化后的興趣度;
步驟5-4)建立初始的用戶-內容關系矩陣u-i;
用戶-內容關系矩陣u-i矩陣的行向量個數為用戶總數,列向量個數為內容總數;第i行第j列元素為:
inter_strength(i→uid,j→contentid)
其中i→uid表示行向量為i的用戶uid,j→content_id表示列向量為j的內容content_id;
步驟5-5)將初始的用戶-內容關系矩陣u-i的行和列分別按照uu矩陣相同用戶的行順序、ii矩陣相同內容的列順序進行調整,得到排序后的用戶-內容關系矩陣ui。
本發(fā)明的有益效果在于:本發(fā)明的方法能夠利用多業(yè)務系統數據及非結構化數據,并且結構化后的數據可直接用于推薦系統,提供更豐富更準確的推薦結果。
附圖說明
圖1是一種用于推薦系統的數據結構化處理方法的流程圖。
具體實施方式
以下結合附圖對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
如圖1所示,一種用于推薦系統的數據結構化處理方法,所述方法包括:
步驟1)從多源業(yè)務系統中采集內容元數據、用戶屬性數據、用戶業(yè)務行為數據和用戶互動數據;
在本實施例中,從優(yōu)酷、愛奇藝等視頻網站采集內容元數據,從視頻聚合業(yè)務系統采集用戶屬性數據及用戶業(yè)務行為數據,從qq空間、騰訊微博采集用戶互動數據。
內容元數據包括:名稱、導演姓名、主演列表、上映日期、語言類型和發(fā)行商。
用戶屬性數據包括:姓名、qq號、手機號碼、郵箱地址和年齡。
將用戶業(yè)務行為數據用三元組(uid,content_id,action_id)表示,其中uid為用戶id,content_id為本次業(yè)務行為操作的內容的id,action_id為本次業(yè)務行為類別編碼;所述業(yè)務行為類別包括:點播、評分、評論、分享和推薦,所述業(yè)務行為類別編碼為每種用戶業(yè)務行為類別進行的唯一性編碼;
將用戶互動數據表示為三元組:(interaction_id,uid_1,uid_2),其中interaction_id為本次互動數據的唯一性標識符,uid_1、uid_2為互動雙方的uid,在本實施例中為互動雙方的qq號。
步驟2)計算內容元數據的向量距離,并進行歸一化處理;通過內容合并,得到內容-內容關系矩陣ii;具體包括:
步驟2-1)將每條內容元數據的數據項組成該內容的屬性向量,將該屬性向量轉換為數值向量;并對數值向量進行歸一化處理;
在本實施例中,采用谷歌公司的word2vec工具將屬性向量轉換為數值向量;
步驟2-2)計算不同內容數值向量的相似度;如果相似度大于第一閾值時,則判定兩條內容元數據對應同一內容,將這兩條內容元數據進行合并;
在本實施例中,根據業(yè)務系統特性設定第一閾值為0.85。
步驟2-3)計算合并后的每條內容元數據間的相似度組成內容-內容關系矩陣ii;
步驟3)將每條用戶屬性數據的數據項組成用戶屬性向量,將該用戶屬性向量轉換為用戶數值向量,兩兩計算用戶數值向量的相似度,通過相似度對用戶進行合并;并根據合并的用戶分別對步驟1)的用戶屬性數據、用戶業(yè)務行為數據和用戶互動數據進行合并;
步驟3-1)將每條用戶屬性數據組成該內容的屬性向量,將該屬性向量轉換為用戶數值向量;并對數值向量進行歸一化處理;
在本實施例中,采用谷歌公司的word2vec工具將屬性向量轉換為數值向量;
步驟3-2)計算不同用戶數值向量的相似度;如果相似度大于第二閾值時,則判定兩個用戶為同一用戶,將這兩個用戶進行合并;
在本實施例中,根據業(yè)務系統特性設定第二閾值為0.76。
步驟3-3)并根據合并的用戶分別對步驟1)的用戶互動數據和用戶業(yè)務行為數據進行合并;
步驟4)根據合并后的用戶互動數據提取用戶關系,建立用戶-用戶關系矩陣uu;
用戶關系的計算公式如下:
其中,relationship_strength(a,b)為用戶a和用戶b的關系,|ea,b|為用戶a和用戶b之間的互動次數,|ea|為用戶a的互動總次數,|eb|為用戶b的互動總次數,|u|為用戶總數,|ua|為用戶a的互動用戶總數,|ub|為用戶b的互動用戶總數;
通過用戶關系計算公式計算所有用戶間的用戶關系,建立用戶-用戶關系矩陣uu;
步驟5)對合并后的用戶業(yè)務行為數據進行加權統計和歸一化,得到初始的用戶-內容關系矩陣u-i;將初始的用戶-內容關系矩陣u-i的行和列分別按照uu矩陣相同用戶的行順序、ii矩陣相同內容的列順序進行調整,得到排序后的用戶-內容關系矩陣ui;具體包括:
步驟5-1)根據步驟1)采集的用戶業(yè)務行為數據,執(zhí)行聚合操作得到四元組(uid,content_id,action_id,count(uid,content_id,action_id)),其中uid為用戶id, content_id為本次業(yè)務行為操作的對象的id,action_id為本次業(yè)務行為類別編碼,count(uid,content_id,action_id)為用戶uid對content_id對象執(zhí)行action_id業(yè)務操作的次數;
步驟5-2)計算每個用戶uid對每個內容content_id的興趣度;
根據業(yè)務系統特性調整每種業(yè)務行為的權重weight(action_id),對聚合后的用戶業(yè)務行為四元組進行加權統計;得到用戶uid對內容content_id的興趣度inter_strength:
步驟5-3)選取興趣度的最大值作為歸一化系數,將所有的興趣度與歸一化系數的比值作為歸一化后的興趣度;
步驟5-4)建立用戶-內容關系矩陣u-i;
用戶-內容關系矩陣u-i矩陣的行向量個數為用戶總數,列向量個數為內容總數;第i行第j列元素為:
inter_strength(i→uid,j→contentid)
其中i→uid表示行向量為i的用戶uid,j→content_id表示列向量為j的內容content_id。
步驟5-5)將用戶-內容關系矩陣u-i的行和列分別按照uu矩陣相同用戶的行順序、內容-內容關系矩陣ii相同內容的列順序進行調整,得到排序后的用戶-內容關系矩陣ui;
步驟6)將uu矩陣、ui矩陣與ii矩陣進行相乘,得到結構化后的用戶-內容關系矩陣,用于內容推薦系統。
用戶-用戶關系矩陣uu與用戶-內容關系矩陣ui與內容-內容關系矩陣ii進行矩陣相乘,得到修正后的用戶-內容關系矩陣,該矩陣可直接應用于內容推薦系統。