gpt4 book ai didi

algorithm - 如何自动排除推荐算法中已经访问过的项目?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:12:06 25 4
gpt4 key购买 nike

我现在正在使用 slope One求推荐。

如何从结果中排除访问过的项目?

我不能简单地通过 not in (visited_id_list) 来过滤那些访问过的人,因为这对老用户来说会有可扩展性问题!

我想出了一个没有not in的解决方案:

select b.property,count(b.id) total from propertyviews a
left join propertyviews b on b.cookie=a.cookie
left join propertyviews c on c.cookie=0 and b.property=c.property
where a.property=1 and a.cookie!=0 and c.property is null
group by b.property order by total;

最佳答案

说真的,如果你正在使用 MySQL,请查看 12.2.10.3. Subqueries with ANY, IN, and SOME

例如:

SELECT s1 FROM t1 WHERE s1 IN    (SELECT s1 FROM t2);

这在我查看的所有版本的 MySQL 中都可用,尽管手册中的章节编号在旧版本中有所不同。

EDIT 回应 OP 的评论:

  1. 好的...像SELECT id FROM t1 WHERE ... AND NOT id IN (SELECT seen_id FROM user_seen_ids where user = ?) 怎么样。这种形式避免了在 SQL 语句中传递数千个 ID。

  2. 如果您想完全避免查询的“针对 id 列表进行测试”部分,我什至不认为这在理论上是可能的,更不用说您将如何实现它了。

关于algorithm - 如何自动排除推荐算法中已经访问过的项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2085233/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com