251031更新
This commit is contained in:
parent
c6f19c630f
commit
d5fd39ad55
22
推荐系统/main.py
22
推荐系统/main.py
|
|
@ -27,8 +27,8 @@ from pydantic import BaseModel, Field, model_validator
|
||||||
class InitializationArguments(BaseModel):
|
class InitializationArguments(BaseModel):
|
||||||
"""推荐系统初始化参数数据模型"""
|
"""推荐系统初始化参数数据模型"""
|
||||||
|
|
||||||
# 时间窗口(单位为天),平衡实时性和运算效率
|
# 时间窗口(单位为天,默认无穷大)
|
||||||
time_window: int = Field(default=30, ge=5, le=360)
|
time_window: float = Field(default=float("inf"))
|
||||||
# 衰减因子兰布达系数,控制兴趣分数衰减速率(默认不衰减)
|
# 衰减因子兰布达系数,控制兴趣分数衰减速率(默认不衰减)
|
||||||
decay_lambda: float = Field(default=0, ge=0.00, le=10)
|
decay_lambda: float = Field(default=0, ge=0.00, le=10)
|
||||||
# 用户特征向量维度数
|
# 用户特征向量维度数
|
||||||
|
|
@ -299,11 +299,13 @@ class RecommenderSystem:
|
||||||
for item_recall in self.behaviors[user_heuristic]["history_items"]:
|
for item_recall in self.behaviors[user_heuristic]["history_items"]:
|
||||||
if item_recall not in items_heuristic:
|
if item_recall not in items_heuristic:
|
||||||
items_recall[item_recall]["counts"] += 1
|
items_recall[item_recall]["counts"] += 1
|
||||||
|
items_recall[item_recall]["scores"] += self.behaviors[user_heuristic]["scores"][item_recall]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# 计算余弦相似度
|
# 计算余弦相似度
|
||||||
for item_heuristic in items_heuristic:
|
for item_heuristic in items_heuristic:
|
||||||
users_heuristic = self.items_inversion[item_heuristic]
|
users_heuristic = self.items_inversion[item_heuristic]
|
||||||
|
|
||||||
for item_recall in items_recall:
|
for item_recall in items_recall:
|
||||||
users_recall = self.items_inversion[item_recall]
|
users_recall = self.items_inversion[item_recall]
|
||||||
|
|
||||||
|
|
@ -459,6 +461,20 @@ if __name__ == "__main__":
|
||||||
"timestamp": int(time.time() - 3200),
|
"timestamp": int(time.time() - 3200),
|
||||||
"rating": 3,
|
"rating": 3,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"user": "dddddd",
|
||||||
|
"item": "444444",
|
||||||
|
"type_": "rating",
|
||||||
|
"timestamp": int(time.time() - 3200),
|
||||||
|
"rating": 5,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"user": "dddddd",
|
||||||
|
"item": "111111",
|
||||||
|
"type_": "rating",
|
||||||
|
"timestamp": int(time.time() - 3200),
|
||||||
|
"rating": 5,
|
||||||
|
},
|
||||||
]
|
]
|
||||||
|
|
||||||
for feedback_record in feedback_records:
|
for feedback_record in feedback_records:
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue