推荐系统中的评分计算与非个性化推荐
1. 隐式评分的实现
在计算用户对物品的评分时,隐式评分是一种重要的方式。前面的实现未考虑时间衰减因素,若旧行为的重要性低于近期活动,那么添加时间衰减因素是有必要的。
1.1 添加时间因素
添加时间衰减可以通过数据库中的 SQL 或代码来实现。有些公司倾向于用 SQL 完成一切,认为这是最佳环境;而另一些公司则觉得 SQL 超过 10 行就难以阅读,所以选择用代码实现。这里我们选择在代码中实现时间衰减。
获取特定用户的日志数据的 SQL 查询如下:
SELECT *
FROM collector_log log
WHERE user_id = {}
若日志数据量很大,可添加时间约束,如 created > 1 month ago ,并在 user_id 列上定义索引。
使用用户事件和时间衰减计算隐式评分的 Python 代码如下:
def calculate_implicit_ratings_w_timedecay(userid, conn):
data = query_log_data_for_user(userid, conn)
weights = {'buy': w1, 'moredetails': w2, 'details': w3}
ratings = dict()
for entry in data:
超级会员免费看
订阅专栏 解锁全文
10万+

被折叠的 条评论
为什么被折叠?



