问题标签 [recommendation-engine]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
recommendation-engine - 编写一个基本的推荐引擎
我正在寻找一个基本的推荐引擎,它将获取并存储一个数字 ID 列表(与书籍相关),将它们与具有大量相同 ID 的其他用户进行比较,并根据这些发现推荐其他书籍。
经过一番谷歌搜索后,我找到了这篇文章,其中讨论了 Slope One 算法的实现,但似乎依赖于用户对所比较项目的评分。理想情况下,我希望在不需要用户提供评级的情况下实现这一目标。我假设如果用户在他们的收藏中拥有这本书,他们就会喜欢它。
虽然我可以默认每本书的评分为 10,但我想知道是否有更有效的算法可以使用。理想情况下,我想即时计算这些建议(避免批量计算)。任何建议,将不胜感激。
php - 用于 DJ 网站的 CMS
我正在为 DJ 建立一个网站。与其重新发明轮子,我想如果有任何可用的解决方案,我会去那里看看。我的要求是:
- 拥有自己的域名和定制设计的能力
- 听DJ歌曲的部分
- 照片部分
- 视频部分
- 用于管理静态页面(个人简历)的常用 CMS 功能
- 自托管和 PHP 是一大优势
- 开源/专有免费/付费无所谓
如果您使用更通用的 CMS(即 WordPress)回答,您能否指出一些有用的扩展。我也对不能满足所有要求但明确哪些要求不可用的 Web 应用程序持开放态度。
algorithm - 如何实现推荐引擎?
请耐心等待我的写作,因为我的英语不熟练。
作为一名程序员,我想了解在推荐系统或相关系统下实现的算法或机器学习智能。例如,最明显的例子来自亚马逊。他们有一个非常好的推荐系统。他们知道:如果你喜欢这个,你可能也喜欢那个,或者其他类似的东西:有多少人喜欢这个和那个。
当然,我知道亚马逊是一个大网站,他们在这些系统上投入了大量的精力和金钱。但是,在最基本的核心上,我们如何在我们的数据库中实现类似的东西?我们如何确定一个对象与另一个对象的关系?我们如何建立一个处理这种事情的统计单元?
如果有人能指出一些算法,我将不胜感激。或者,基本上,指出一些我们都可以学习的好的直接参考/书籍。谢谢你们!
php - PHP 中的个人资料搜索
我正在创建一个社交网络。我正在尝试实现配置文件搜索或搜索引擎,其中配置文件可以发现并连接到新配置文件。PHP中是否有任何算法或模块?是否有人对如何使搜索尽可能相关有任何建议,请提供 som 代码示例。
任何可以在有数千个相似名称的网络中按名称(名字和姓氏)对个人资料进行分类的算法。Facebook已经通过共同好友算法做到了这一点,但我认为他们已经申请了专利,所以我不能使用它。
我尝试实现一种算法,在该算法中,个人资料可以通过为他们提供最相关的搜索结果来发现一些新的个人资料,该搜索结果至少与 Facebook 的个人资料搜索一样好。有小费吗?
更新:我让问题更具体
非常感谢!woho87
c - 正则表达式解析器的 C 实现建议
我正在考虑在我正在开发的 C 库中实现正则表达式解析器。现在,问题是:有没有我可以逐字使用或尽可能少改动的开源代码?我对代码的期望是:
- 它需要用 C(不是 C++)编写
- 需要在gcc、mingw、M$VC下编译
- 它不能依赖于任何第三方或特定于操作系统的头文件/库(即,编译它所需的一切都必须通过 gcc、mingw、M$VC 的基本安装随时可用
- 如果它使用与 Perl 兼容的正则表达式语法(如 PHP 中的 PCRE),那就太好了。
- 理想情况下,代码应该尽可能紧凑
您可以推荐任何现成的解决方案吗?我正在研究 C 的 PCRE,它看起来拥有 PHP 中可用的所有内容(哪些规则),但大小(1.4MB DL)有点吓人。你认为这是一个可靠的赌注吗?或者还有其他值得考虑的选择吗?
[编辑]
我正在开发的库是开源的,BSD 许可证。
algorithm - 超越逐项推荐
简单的项目到项目推荐系统是众所周知的并且经常实现。一个例子是Slope One 算法. 如果用户还没有对很多项目进行评分,这很好,但是一旦他们有了,我想提供更细粒度的推荐。让我们以音乐推荐系统为例,因为它们非常流行。如果用户正在查看莫扎特的作品,则可能会给出另一部莫扎特作品或贝多芬的建议。但如果用户对古典音乐进行了多次评分,我们或许可以在这些项目之间建立关联,并看到用户不喜欢人声或某些乐器。我假设这将是一个两部分的过程,第一部分是找到每个用户评分之间的相关性,第二部分是从这些额外数据构建推荐矩阵。所以问题是,它们是否有任何可用于这些步骤的开源实现或论文?
cluster-analysis - 基于内容的项目推荐方法
我目前正在开发一个应用程序,我想在其中对类似项目进行分组。项目(如视频)可以由用户创建,并且它们的属性可以在以后更改或扩展(如新标签)。我不想像大多数协同过滤机制那样依赖用户的偏好,而是想根据项目的属性(如相似的长度、相似的颜色、相似的标签集等)比较项目的相似性。计算对于两个主要目的是必要的:x
为给定项目建议相似的项目以及将相似项目聚类成组。
到目前为止,我的应用程序遵循异步设计,我想尽可能地解耦这个集群组件。新项目的创建或为现有项目添加新属性将通过发布组件随后可以使用的事件来宣传。
可以尽最大努力和“快照”提供计算,这意味着我可以在给定时间点获得可能的最佳结果,尽管结果质量最终会提高。
所以我现在正在寻找合适的算法来计算相似的项目和集群。重要的约束是可扩展性。最初,应用程序必须处理几千个项目,但后来也可能处理数百万个项目。当然,计算将在其他节点上执行,但算法本身应该是可扩展的。如果算法在数据的部分更改上支持某种增量模式,那也很好。
我最初将每个项目相互比较并存储数值相似性的想法听起来有点粗糙。此外,它需要n*(n-1)/2
用于存储所有相似性的条目,任何更改或新项目最终都会导致n
相似性计算。
提前致谢!
更新 tl;博士
为了澄清我想要的,这是我的目标场景:
- 用户生成条目(想想文档)
- 用户编辑条目元数据(想想标签)
这是我的系统应该提供的:
- 作为推荐的给定项目的类似条目列表
- 相似条目的集群
两种计算都应基于:
- 条目的元数据/属性(即相似标签的使用)
- 因此,使用适当度量的两个条目的距离
- 不基于用户投票、偏好或操作(与协同过滤不同)。尽管用户可以创建条目和更改属性,但计算应该只考虑项目及其属性,而不是与之关联的用户(就像只有项目而没有用户存在的系统一样)。
理想情况下,该算法应支持:
- 条目属性的永久更改
- 增量计算类似的条目/集群的变化
- 规模
- 如果可能的话,比简单的距离表更好(因为 O(n²) 空间复杂度)
nosql - 跟踪浏览量并显示相关数据
我想跟踪用户在网站上阅读了哪些文章。
然后有了这些数据,就可以知道:
1) - 最近一小时/日/周/月阅读的前 N 篇文章
2) - 显示推荐(“读过这个的用户,也读过那个”)
3) - 与 (1) 相同,但针对网站上的特定部分
由于该站点的流量很高(> 100 万次浏览/天),我不能为此使用 RDBMS。
我开始研究 NoSQL(特别是 cassandra),因为它对我来说是全新的,我不确定它是否是我需要的。
我很肯定我不是第一个需要这样的东西但找不到链接/文章给我关于如何做这样的事情的指示的人。NoSQL 是最好的方法吗?关于数据模型的任何提示?
谢谢。
c# - 使用属性进行延迟初始化的方法
我目前正在更改一个广泛使用的类,以将尽可能多的昂贵初始化从类构造函数转移到惰性初始化属性中。下面是一个示例(在 c# 中):
前:
后:
在我正在更改的类中还有相当多的这些属性,有些在某些情况下没有使用(因此是懒惰),但如果它们被使用,它们很可能会被重复调用。
不幸的是,这些属性也经常在类内部使用。这意味着私有变量 (_b) 有可能直接由方法使用,而无需对其进行初始化。
有没有办法在类中只提供公共属性(B),或者甚至是在需要时具有相同初始化的替代方法?
这是从程序员转发的(显然不够主观): https ://softwareengineering.stackexchange.com/questions/34270/best-methods-for-lazy-initialization-with-properties
database-design - 如何存储“购买此商品的客户也购买了”
我正在构建一个功能,例如亚马逊的“购买此商品的客户也购买了”。我有大约 6 年的订单要挖掘这些数据,并且显然会继续使用来自新订单的数据进行更新。
想到几个问题:
- 我如何存储这些关系?我正在考虑一个包含 productA、productB 和计数(或排名)的简单表。这足够了吗?
- 我不认为旧数据与新数据一样重要。如何优先处理较新的数据?
编辑:这个网站只销售一种产品,所以几乎所有东西都是相关的,不需要过滤。我也希望尽可能简单——数据已经在我的数据库中,我正在寻找最简单的方法来计算和存储它。