利用上下文資訊推薦

2021-08-19 20:25:34 字數 1630 閱讀 4881

上下文包括使用者訪問推薦系統的時間、地點、心情等。

一、時間上下文資訊

1.  時間效應簡介

使用者興趣是變化的。因為使用者自身原因發生的變化。如小時候、長大了;工作時間增加等。若要準確使用者現在的興趣,應更關注使用者最近的行為。這樣只針對漸變的使用者興趣,對突變的使用者興趣很難起作用

物品有生命週期。如電影,受上映時間影響,受新聞事件影響。需考慮物品在該時刻是否已過時。

季節效應。反映時間本身對使用者興趣的影響。節日本身也有季節效應。

2.  系統時間特性的分析

推薦系統變成了時變系統,使用者的行為資料會變成時間序列。含時間資訊的使用者行為資料集由三元組(u,i,t)構成,表示使用者u在時刻t對物品i產生過行為。

1)物品的生存週期和系統的時效性

如新聞**中新聞的生存週期較短。可用如下指標度量物品的生存週期。

3.  推薦系統的實時性

使用者興趣的變化體現在使用者不斷增加的新行為中。亞馬遜並非每幾十秒重新整理隨機展示推薦列表,只在有了新顯性行為時,推薦列表才發生變化。

4.  推薦演算法的時間多樣性

推薦系統每天推薦結果的變化程度為推薦演算法的時間多樣性。主要的問題是如何在不損失精度的情況下提高推薦結果的時間多樣性。

提高推薦結果的時間多樣性需兩步解決:1)需保證推薦系統能在使用者有了新的行為後及時調整推薦結果,使推薦結果滿足使用者最近的興趣。2)需保證推薦系統在使用者沒有新的行為時也能經常變化一下結果,具有一定的時間多樣性。

對於2),有以下三種解決思路:在生成推薦結果時加入一定的隨機性,如從推薦列表前20個結果中隨機挑選10個結果展示給使用者,或按推薦物品的權重取樣10個結果展示給使用者;記錄使用者每天看到的推薦結果,然後在每天給使用者進行推薦時,對他前幾天看到過很多次的推薦結果進行適當的降權;每天給使用者使用不同的推薦演算法。

推薦系統需首先保證推薦的精度,在此基礎上適當考慮時間多樣性

5.  時間上下文推薦演算法

1)最近最熱門

2)時間上下文相關的itemcf演算法

3)時間上下文相關的usercf演算法

若兩個使用者同時喜歡相同的物品,則使用者應有更大的興趣相似度。給使用者推薦和他興趣相似的使用者最近喜歡的物品。

6.  時間段圖模型

將時間資訊建模到圖模型中

二、地點上下文資訊

與地點相關的資料分為三種:(使用者,使用者位置,物品,評分);(使用者,物品,物品位置,評分);(使用者,使用者位置,物品,物品位置,評分)。

基於只有使用者位置資訊的資料進行推薦:金字塔模型。位置資訊是乙個樹狀結構,從上到下可以為國家、省、市、縣等。到了葉子節點,就是與目標使用者u在同乙個位置的使用者。第一種做法就是根據葉子節點的使用者進行itemcf為目標使用者進行推薦。但是這種方法會導致每乙個使用者的資料比較稀疏。第二種方法就是從根節點開始到目標使用者u所在的葉子節點,每到乙個節點就生成乙個推薦列表,最後將所有列表加權。

對只有物品位置資訊的資料進行推薦:先忽略商品的位置資訊,通過itemcf的方法計算使用者u對商品i的分數,然後最位置做出懲罰。懲罰項就是:使用者u歷史評價過的商品距離商品i的位置的平均值(或者最小值)。讓pu(u,i)-penalty(i)作為最後的分數。這裡的位置不是歐式距離,而是經緯度距離,或者利用交通資訊得到的實際路程。

對同時具有物品位置資訊和使用者位置資訊的資料進行推薦

:可以先忽略使用者的位置資訊,按照第二種方法進行推薦,然後給使用者推薦距離其位置最近的物品。

推薦系統讀書筆記 五 利用上下文資訊

上下文包括使用者訪問推薦系統的時間 地點 心情等。5.1 時間上下文資訊 5.1.1 時間效應簡介 時間資訊對使用者興趣的影響表現在以下幾個方面 1.使用者興趣是變化 關注最近行為 2.物品也是有生命週期的 3.季節效應 5.1.2 時間效應舉例 5.1.3 系統時間特性的分析 包含時間資訊的使用者...

推薦系統8 利用時間上下文資訊

本節首先介紹各種不同的時間效應,然後研究如何將這些時間效應建模到推薦系統的模型中,最後通過實際資料集對比不同模型的效果。1.時間效應 時間資訊對使用者興趣的影響表現在以下幾個方面 使用者興趣是變化的 物品也是有生命週期的 季節效應。在給定時間資訊後,推薦系統從乙個靜態系統變成了乙個時變的系統,而使用...

Php中的呼叫上下文和解析上下文

在閱讀 深入php物件導向 模式與實踐 一書中的第4.5章節過程中,遇到了 呼叫上下文 解析上下文 兩個術語,自己想了半天,還是未能想通順,於是還是查閱了相關資料,一般情況下,這個時候囫圇吞棗的過去,以後遇到問題還是不會被解決。參考 事例1 classa class bextends a執行結果 b...