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